Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DunkMask

Atualização automática

Recommended Posts

Olá, bom dia.

 

Estou com um problema em uma função que fiz. Ela recebe dados de um streaming de audio, so que preciso de uma forma que esta informação seja passada em tempo real e ao mesmo tempo que não exija tanto do servidor.

 

Atualmente uso o JS para fazer esta atualização em uma DIV, mas ela durante a noite esta abusando muito do servidor fazendo com que o site fique fora do ar, cheguei a pensar que alguém esta me prejudicando de proposito, pois durante o dia a função trabalha normalmente, mas durante a noite os problemas voltam.

 

Alguém pode me ajudar com uma solução para isso?

 

Desde já agradeço pelo tempo gasto lendo este tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq acha que o js esta prejudicando você? veja bem você tem q logar, fazer log de td o q acontece no seu site pra ver o que de fato esta acontecendo, computadores trabalham em cliclos, ciclos iguais, portanto pode-se concluir que nao eh conputador que esteja lhe prejudicando, o que pode estar havendo sim, um acesso maior na parte da noite, bom vejamos....onde as pessoas estao em casa e podem acessar o que bem entendem, e no serviço nao, ja analisou esta possibilidade?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem não é o JS que está me prejudicando, possivelmente alguém deve estar executando um reload abusivo em cima da minha função, como eu disse isso so acontece a noite.

 

mas quanto ao problema, ontem tive a mesma quantidade de visitas o dia inteiro, ou seja... um numero razoável de ouvintes online, a noite continuo a mesma coisa, a diferença é que do nada a função começa a ser executada exageradamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

concordo com você, precisa de solucao, mas pra ter uma solucao você pre cisa de um problema, o q você tb tem, mas pra ter problema precisa da causa....o q você nao sabe...posta o codigo pra avalizacao...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos la entao.

o arquivo que esta sedo atualizado em um determinado tempo é esse.

arquivo function.php

if($_GET['function'] == "agora"){

require ("configPlayer.php");

if (!$scfp) {
	// If server is off line show template (no connect)
 		echo 'Rádio offline, aguarde um momento...';
}
else {
	// If server is on line show template (Off Line / On-Line)
 		if ($streamstatus == "1") {
		// On-line
   		echo ''. $song[0] .'';
 		}
 		else {
		// Off-Line

   		echo 'Servidor ligado mas sem transmissão, aguarde o próximo locutor!';
 		}
}
} // FIM IF AGORA

 

arquivo JS

$(document).ready(function() {
	 $("#musicaon").load("classes/function.php?function=agora");
  var refreshId = setInterval(function() {
     $("#musicaon").load('classes/function.php?function=agora');
  }, 3000);
});

 

alem deste existe no mesmo arquivo outras linhas encarregadas de puxar o nome do locutor, nome do programa e a temática do programa.

 

Resumindo, as informações são apenas textos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah sim, pois entao, você esta usando o setInterval.....so q o uso desta funcao geralmente, nao sempre, eh junto com outra funcao, a clearInterval...da uma pesquisada e testada....pode ser que você precise limpar os intervalos, ja que o setinterval deve estar acumulando requisicoes, outra coisa, o mesmo usuario pode estar acumulando requisicoes na maquina dele toda vez que solicita...da uma estudada....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu dei uma pesquisada no que você disse ai, mas ao utilizar o clearInterval ele não recebe os dados de que preciso na index do site. mas veja se eu fiz certo.

$(document).ready(function() {
        $("#musicaon").load("classes/function.php?function=agora");
  var refreshId = setInterval(function() {
     $("#musicaon").load('classes/function.php?function=agora');
  }, 3000);
  clearInterval(refreshId);
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, vamos la, no seu script o load do jquery eh executado, e você faz com q ele seja executado a cara 3 segundos, nao sera isto nao? pq do primeiro momento q a pagina for carregada a musica on tb sera carregada...outra coisa ao utilizar o clearinterval você limpa o setinterval 3 segundos depois..e faz com q ele pare....você so precisa carregar a radio uma vez apos a pagina ser carregada, ou to enganado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, a pagina é carregada apenas uma vez, mas conforme a musica vai passando esta informação precisa ser atualizada automaticamente.

 

Para ser mais exato eu não sei muito sobre jquery, por isso dessa dificuldade enorme com este arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo, minha rádio é em shoutcast, o problema é que eu estou pegando os dados de quem esta online automaticamente. Desta forma cada locutor não precisa logar em um sistema e setar que esta locutando.

 

Bom, mas eu mudei por completo essa questão ai, para sanar o meu problema e exigir menos do servidor, eu criei um arquivo que pega todos esses dados do streaming que antes era em tempo real e jogo em uma tabela no banco dedados.

 

Resumindo, somente o servidor estará usando o socket, e todos os dados serão passados via php mesmo. Mas nesta minha ideia ate certo ponto esta funcionando perfeito. o problema que eu encontrei é que eu não estou consegui puxar os dados para dentro desta div como antes.

 

Abaixo segue o arquivo que puxa os dados do banco de dados:

status.php

<?php
require  "dbconect.php";
$query = mysql_query("SELECT * FROM shoutcast");
$shout = mysql_fetch_object($query);

if($_GET['action'] == 'programa'){
	echo ''.$shout->programa.'';
}

if($_GET['action'] == 'avatar'){
	echo '<img src="images/dj/'.$shout->dj.'.jpg" width="75" height="90" alt="'.$shout->dj.'" />';
}

if($_GET['action'] == 'dj'){
	echo ''.$shout->dj.'';
}

if($_GET['action'] == 'online'){
	echo ''.$shout->ouvintes.'';
}

if($_GET['action'] == 'pico'){
	echo ''.$shout->pico.'';
}

if($_GET['action'] == 'musicaon'){
	echo ''.$shout->musicaon.'';
}

if($_GET['action'] == 'genero'){
	echo ''.$shout->genero.'';
}
?>

 

e usei o mesmo load que postei acima para chamar cada dado.

$(document).ready(function() {
        $("#musicaon").load("classes/status.php?action=musicaon");
  var refreshId = setInterval(function() {
     $("#musicaon").load('classes/status.php?action=musicaon');
  }, 3000);
});

 

agora o problema que apareceu é que a DIV que possui a id #musicaon não recebe os dados. Alguma outra ideia para que eu possa receber esses dados executando um refresh ao mesmo tempo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não conheço muito bem, pode me ajudar com isso?

 

Corrigindo o que eu disse, eu estou usando o load do jquery, o problema é que ele nao esta pegando as informações do arquivo status. conforme o código acima

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.