2012-11-10 12 views
16
<script type="text/javascript"> 
window.onload = setupRefresh; 

function setupRefresh() { 
    setTimeout("refreshPage();", 1000); 
} 
function refreshPage() { 
    window.location = location.href; 
} 

jquery senza battere ciglio

La pagina è ora ricaricando ogni secondo l'unico problema suo lampeggiante come risolvere questo problema

+0

è necessario utilizzare Ajax e applicare il contenuto direttamente in dom – Ankur

+1

Sembra fa quello che dovrebbe, no? Perché vuoi ricaricare la pagina ogni secondo ??? – frenchie

+1

ovviamente lampeggerà .. la pagina deve ricaricare e ciò richiede un po 'di tempo. Inoltre non c'è bisogno di fare quello che stai facendo con javascript, basta usare un tag 'meta' – charlietfl

risposta

31

È possibile utilizzare un div e un .get con jquery per ottenere i dati da un'altra pagina sul proprio sito Web.

È possibile utilizzare setTimeOut (funzione, tempo)

$(function() { 
    startRefresh(); 
}); 

function startRefresh() { 
    setTimeout(startRefresh,1000); 
    $.get('pagelink.php', function(data) { 
     $('#content_div_id').html(data);  
    }); 
} 
4

non è possibile ricaricare una pagina in questo modo senza l'effetto lampeggio. Dai un'occhiata ad AJAX per recuperare il contenuto aggiornato della pagina e visualizzarlo in modo asincrono nella pagina "esistente".

Dai un'occhiata a: http://www.brightcherry.co.uk/scribbles/jquery-auto-refresh-div-every-x-seconds/, per aggiornare parte dello schermo (la parte può essere l'unica <DIV> della pagina).

1

Grazie per la risposta con la funzione, ma se voglio usare ritardo di circa 1 minuto, devo iniziare a chiamare della funzione con il ritardo in questo modo:

<script type="text/javascript"> 
//<![CDATA[ 
var vTimeOut; 

$(function() { 
    vTimeOut= setTimeout(startRefresh, 60000) 
}); 


function startRefresh() { 
    clearInterval(vTimeOut); 
    vTimeOut= setTimeout(startRefresh, 60000); 
    $(<#div>).load(<loadURL>); 
} 

//]]> 
</script> 

In caso contrario, le funzioni startRefresh vengono attivate molto rapidamente o ripetute più volte.

4

Se la pagina è completamente ricaricando e sovrascrivendo stessa (tra cui lo script che sta facendo la ricarica, quindi provare questa versione:

function startRefresh() { 
    $.get('', function(data) { 
     $(document.body).html(data);  
    }); 
} 
$(function() { 
    setTimeout(startRefresh,1000); 
});