web-dev-qa-db-fra.com

jquery auto refresh sans clignoter

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

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

La page est maintenant en train de recharger chaque seconde, le seul problème son clignotant comment résoudre ce problème

16
Ivo

Vous pouvez utiliser un div et un .get avec jquery pour obtenir vos données à partir d'une autre page de votre site Web.

Vous pouvez utiliser setTimeOut (fonction, heure)

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

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

Si la page est en train de se recharger complètement et de se remplacer (y compris le script qui effectue le rechargement, essayez cette version:

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

Vous ne pouvez pas recharger une page de cette façon sans l'effet clignotant. Jetez un œil à AJAX pour récupérer le contenu mis à jour de la page et l'afficher de manière asynchrone dans la page "existante".

Jetez un œil à: http://www.brightcherry.co.uk/scribbles/jquery-auto-refresh-div-every-x-seconds/ , pour rafraîchir une partie de l'écran (la partie peut être l'unique <DIV> de la page).

4
Francois

Merci pour la réponse avec fonction, mais si je veux utiliser environ 1 minute de retard, je dois commencer à appeler la fonction avec le retard de cette façon:

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

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


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

//]]>
</script>

Sinon, les fonctions startRefresh se déclenchent très rapidement ou se répètent plusieurs fois.

1
Mareg