¿Cómo puedo detectar una actualización de página usando jquery?

¿Cómo podría capturar el evento de recarga de la página?

Tengo un sistema de mensajería que pierde toda su información cuando el usuario actualiza la página. Quiero usar ajax para volver a poblar, de ahí mi necesidad de detectar cuándo la página se ha actualizado / recargado.

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

Pero esto no guardará ninguna información para más adelante, a menos que esté planeando guardar eso en una cookie en algún lugar (o almacenamiento local) y el evento de unload no siempre se activará en todos los navegadores.


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

Código:

 $(window).bind('beforeunload',function(){ //save info somewhere return 'are you sure you want to leave?'; }); 

si quieres reservar algunas variables antes de actualizar la página

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

si quieres o cargar alguna base de contenido en alguna condición

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

Todo el código es del lado del cliente, espero que sea útil:

Primero hay 3 funciones que usaremos:

  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;'; } 

Ahora comenzaremos con la carga de la página:

 $(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); } }) 

Hay dos eventos en el lado del cliente como se indica a continuación.

1. window.onbeforeunload (llamadas en el navegador / pestaña Cerrar y carga de página)

2. window.onload (llamadas en la carga de la página)

En el lado del servidor

 public JsonResult TestAjax( string IsRefresh) { JsonResult result = new JsonResult(); return result = Json("Called", JsonRequestBehavior.AllowGet); } 

En el lado del cliente