我想解僱一些代碼,只要在瀏覽器中顯示的頁面:緩存頁面上的就緒事件?
$(function() {
console.log('got ready event!');
});
此事件被解僱,只有當瀏覽器下載頁面。如果我導航到其他頁面,則返回,上面的代碼片段不會被觸發。看起來,瀏覽器緩存頁面狀態,因爲服務器在顯示頁面時沒有收到任何請求。 因此,當我回到頁面時,它會恢復緩存頁面狀態而不觸發ready
事件。
無論頁面是否被緩存,是否有一個事件可以在頁面顯示時收聽?
我想解僱一些代碼,只要在瀏覽器中顯示的頁面:緩存頁面上的就緒事件?
$(function() {
console.log('got ready event!');
});
此事件被解僱,只有當瀏覽器下載頁面。如果我導航到其他頁面,則返回,上面的代碼片段不會被觸發。看起來,瀏覽器緩存頁面狀態,因爲服務器在顯示頁面時沒有收到任何請求。 因此,當我回到頁面時,它會恢復緩存頁面狀態而不觸發ready
事件。
無論頁面是否被緩存,是否有一個事件可以在頁面顯示時收聽?
嘗試此操作,指令cashe-control:no-cashe
指示不應使用緩存的信息,而應將請求轉發到原始服務器。
<meta http-equiv="cashe-control" content="no-cashe">
pageshow
事件:
此事件的工作方式相同的負載情況下,不同之處在於它激發每個頁面加載時間。頁面首次加載時,頁面顯示事件在加載事件觸發後立即觸發。 pageshow事件使用稱爲persisted的布爾屬性,該屬性在初始加載時設置爲false。如果它不是初始加載,則設置爲true(換句話說,當頁面被緩存時,它被設置爲true)。
$(document).bind('pageshow', function(){
})
我知道這是一個古老的情況下,但我已經對這個掙扎了。 「pageshow」可以完成這項工作,但似乎必須將此事件綁定到窗口而不是文檔。因此,代碼必須如下所示:
$(window).on('pageshow', function(){ alert('page show'); });
我很高興瀏覽器緩存頁面。這將節省大量不必要的流量。但是,即使頁面被緩存,我也想開啓'ready'事件。 –
@SamadLotia你有沒有試過['pageshow'](https://developer.mozilla.org/en/using_firefox_1.5_caching#pageshow_event)事件? – undefined
在Chrome和FF上,$(document).bind('pageshow',function(){...})不起作用,但'window.onpageshow = function(){...} –