2011-10-28 131 views
1

我需要區分jQuery中的頁面加載和頁面刷新。我不知道如何實現下面的代碼。jQuery區分頁面加載和刷新

if(/* this page is loaded reffered */) 
    ++count ; 
else if(/* this paged is refreshed */) 
    alert("refreshed"); 
+0

是因爲你需要在刷新之間持續某種狀態?如果是這樣,你可以使用某種服務器端的會話控制。否則,你可以使用cookie客戶端。 –

+0

它基本上是一樣的東西。但在asp.net中,如果刷新/重新加載是由某個控件(如按鈕)啓動的,則可以使用'IsPostback'屬性嘗試運氣。否則,您需要在會話中保留一些計數器/標誌,以確定此會話中是否第一次加載頁面。 – TheVillageIdiot

回答

3

使用一個簡單的計數器將無法正常工作。我將嘗試用半僞代碼來說明它

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

或者,您可以使用HTML5網絡存儲API代替Cookie,而不是設置cookie。

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

here

1

兩者你可以使用哈希來實現這一點:

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

然後,只需檢查isLoad,看它是否是一個刷新與否。