49 votes

Comment détecter une actualisation de page à l'aide de jquery ?

Comment puis-je capturer l'événement de rechargement de la page ?

J'ai un système de messagerie qui perd toutes ses entrées lorsque l'utilisateur actualise la page. Je souhaite utiliser ajax pour me repeupler, d'où mon besoin de détecter quand la page a été actualisée/rechargée.

42voto

Neal Points 68710
$('body').bind('beforeunload',function(){
   //do something
});

Mais cela n'enregistrera aucune information pour plus tard, à moins que vous ne prévoyiez de l'enregistrer dans un cookie quelque part (ou dans un stockage local) et que l' unload ne se déclenche pas toujours dans tous les navigateurs.


Exemple : http://jsfiddle.net/maniator/qpK7Y/

Code:

 $(window).bind('beforeunload',function(){

     //save info somewhere

    return 'are you sure you want to leave?';

});

25voto

Uzair Points 586

si vous voulez garder une variable avant l'actualisation de la page

 $(window).on('beforeunload', function(){
    // your logic here
});

si vous voulez charger une base de contenu sous certaines conditions

 $(window).on('load', function(){
    // your logic here`enter code here`
});

9voto

Arrabi Points 1556

Tout le code est côté client, j'espère que cela vous sera utile :

Tout d'abord, nous utiliserons 3 fonctions :

     function setCookie(c_name, value, exdays) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + exdays);
            var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
            document.cookie = c_name + "=" + c_value;
        }

    function getCookie(c_name) {
        var i, x, y, ARRcookies = document.cookie.split(";");
        for (i = 0; i < ARRcookies.length; i++) {
            x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
            y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
            x = x.replace(/^\s+|\s+$/g, "");
            if (x == c_name) {
                return unescape(y);
            }
        }
    }

    function DeleteCookie(name) {
            document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
        }

Nous allons maintenant commencer par le chargement de la page :

 $(window).load(function () {
 //if IsRefresh cookie exists
 var IsRefresh = getCookie("IsRefresh");
 if (IsRefresh != null && IsRefresh != "") {
    //cookie exists then you refreshed this page(F5, reload button or right click and reload)
    //SOME CODE
    DeleteCookie("IsRefresh");
 }
 else {
    //cookie doesnt exists then you landed on this page
    //SOME CODE
    setCookie("IsRefresh", "true", 1);
 }
})

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X