webentwicklung-frage-antwort-db.com.de

JQuery Auto Refresh ohne zu blinken

<script type="text/javascript">
window.onload = setupRefresh;

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

Die Seite wird jetzt jede Sekunde neu geladen. Das einzige Problem, das zu blinken beginnt, ist, wie dies behoben werden kann

16
Ivo

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

Sie können setTimeOut (Funktion, Zeit) verwenden

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

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

Wenn die Seite sich selbst vollständig neu lädt und überschreibt (einschließlich des Skripts, das das Neuladen ausführt), versuchen Sie diese Version:

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

Sie können eine Seite ohne den Blink-Effekt nicht neu laden. Schauen Sie sich AJAX an, um den aktualisierten Inhalt der Seite abzurufen und asynchron auf der "vorhandenen" Seite anzuzeigen.

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

4
Francois

Danke für die Antwort mit Funktion, aber wenn ich etwa 1 Minute Verzögerung verwenden möchte, muss ich den Funktionsaufruf mit der Verzögerung auf folgende Weise 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>

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

1
Mareg