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

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

jquery Auto-Refresh ohne

Die Seite jetzt blinkt jede Sekunde das einzige Problem Nachladen seiner blinkt, wie diese

beheben
+0

Sie brauchen Ajax zu verwenden und den Inhalt direkt in dom – Ankur

+1

Es ist wie anwenden sieht es tut, was es sollte zu nein? Warum möchten Sie die Seite jede Sekunde neu laden ?? – frenchie

+1

natürlich wird es blinken .. die Seite muss neu geladen werden, und das erfordert ein wenig Zeit. Auch keine Notwendigkeit zu tun, was Sie tun mit Javascript, verwenden Sie einfach ein 'Meta'-Tag – charlietfl

Antwort

31

Sie können ein div und ein .get mit jquery verwenden, um Ihre Daten von einer anderen Seite Ihrer Website zu erhalten.

können Sie verwenden setTimeOut (Funktion, Zeit)

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

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

Sie können nicht eine Seite, die Art und Weise, ohne Blinkeffekt neu zu laden. Werfen Sie einen Blick auf AJAX, um den aktualisierten Inhalt der Seite abzurufen und asynchron auf der Seite "existing" anzuzeigen.

Werfen Sie einen Blick auf: http://www.brightcherry.co.uk/scribbles/jquery-auto-refresh-div-every-x-seconds/, um einen Teil des Bildschirms zu aktualisieren (der Teil kann der einzigartige <DIV> der Seite sein).

1

Vielen Dank für Antwort mit der Funktion, aber wenn ich etwa 1 Minute Verzögerung verwenden möchte, muss ich auf diese Weise mit der Verzögerung Aufruf der Funktion starten:

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

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


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

//]]> 
</script> 

Ansonsten werden die startRefresh-Funktionen sehr schnell ausgelöst oder mehrmals wiederholt.

4

Wenn die Seite vollständig neu zu laden und zu überschreiben selbst (einschließlich dem Skript, das das Nachladen tut, dann diese Version versuchen:

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