Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá...
Estou desenvolvendo um sistema que toda vida que é inserido um registro ele apareça no mesmo instante na página...
Eu estava usando o código dessa forma:
function atualiza(){
$(".nProd").each(function(){
var dIym = $('#dIym').text();
var id = $(this).attr('id').replace("nProd","");
var getSituaProd = '#fnt'+id;
if ($(getSituaProd).text()!="00:00:00") {
var tProd = 'tProd'+id; var getStatusProd = '#getStatusProd'+id;
if ($(getStatusProd).text()=='1') { var urlClock='clockHome&idProduto='+id+'&dIym='+dIym; Load(urlClock,tProd); }}});
setTimeout("atualiza()",900); }
$(function(){atualiza()});
Só que desse jeito ele fica abrindo conexão a cada 1 segundo. E isso sobrecarrega o servidor. Porque se tiverem 400 pessoas, são 400 por segundo, se tiver 10mil, são 10mil requisições.
Como eu posso resolver isso? Usar algum metodo que atualize apenas quando é inserido um novo registro.
procure por server-push e comet (ajax reverso)
Não dá :( Só desse jeito mesmo.
É site de leilões? Se for, quando o produto for cadastro e seu intervalo de tempo também, registre no banco quando ele irá acabar, daí você pode fazer uma subtração, definir uma variável em JS e disparar o contador, daí, quando o contador chegar a 0s, o AJAX é disparado.