JQuery адрозніваць загрузкі старонкі і абнаўлення

Мне трэба адрозніваць загрузкі старонкі і абнаўлення старонкі ў JQuery. Я паняцця не маю, як рэалізаваць наступны код.

if( /* this page is loaded reffered */ )
    ++count ;
else if( /* this paged is refreshed */ )
    alert("refreshed");
1
Гэта, па сутнасці, тое ж самае. Але ў asp.net вы можаце паспрабаваць свой поспех з IsPostBack ўласцівасць, калі абнаўленне/перазагружаць ініцыюецца якім-небудзь кантролем (кнопка як). У адваротным выпадку вы павінны падтрымліваць некаторы лічыльнік/сцяг у сесіі, каб даведацца, калі старонка загружаецца першы раз у гэтай сесіі.
дададзена аўтар TheVillageIdiot, крыніца
Гэта таму, што вы павінны захоўвацца нейкі стан паміж абнаўленнямі? Калі так, то вы маглі б выкарыстоўваць якой-то на баку сервера сеансу кіравання. У адваротным выпадку, вы можаце выкарыстоўваць печыва на баку кліента.
дададзена аўтар Thor Jacobsen, крыніца

2 адказы

Выкарыстоўваючы просты лічыльнік не будзе працаваць. Я паспрабую праілюстраваць яго ў паў-псеўда-кода

$(document).ready(function(){
  if(isPageLoadCookiePresent){
     //this is a page load
     setPageLoadCookie();
  }else{
     //this is a page refresh
  } 
});

У якасці альтэрнатывы, замест таго, каб печыва, вы можаце выкарыстоўваць HTML5 вэб захоўвання API.

saveButton.addEventListener('click', function() {
  window.localStorage.setItem('value', area.value);
  window.localStorage.setItem('timestamp', (new Date()).getTime());
}, false);
textarea.value = window.localStorage.getItem('value');

Taken from here

3
дададзена

Вы можаце выкарыстоўваць хэш для рэалізацыі гэтага:

var loc = window.location,
    isLoad = false;
if (String(loc.hash).indexOf('loaded') === -1) {
    loc.hash += 'loaded';
    isLoad = true;
}

Тады проста праверыць isLoad, каб убачыць, калі гэта абнаўленне ці не.

1
дададзена