我想從緩存中顯示很長時間,並且我希望頁面呈現與從緩存中加載頁面時的行爲稍有不同。有沒有簡單的方法,我可以用JavaScript來確定這一點?如何使用JavaScript來檢測我是否在緩存頁面
回答
你可以做到這一點的一種方法是在頁面中包含生成頁面的時間,然後使用一些javascript來比較本地時間與生成頁面的時間。如果時間與閾值不同,則頁面來自緩存。問題在於,如果客戶端計算機的時間設置不正確,雖然可以通過使客戶端在生成頁面的請求中包含當前系統時間來解決此問題,然後將該值發送回客戶端。
不是直接的,一些瀏覽器可能會有一些自定義命令。
有一個解決方法,可以做你想做的。使用cookie存儲第一次訪問的timestamp
,然後使用META HTTP-EQUIV設置文件緩存的時間長度(cacheLength
)。如果當前時間在從timestamp
到timestamp+cacheLength
的時間段內,則視爲從緩存加載。緩存過期後,重置cookie時間。
使用XmlHttpRequest,您可以拉起當前頁面,然後檢查響應的http標頭。
最好的情況是隻做一個HEAD請求,然後檢查頭文件。
我正要提出同樣的問題,但問題表明他想查看當前加載的頁面是否被緩存,如果您關閉了XHR,那麼這將表示下一個請求,而不是當前的請求。 – 2008-11-03 21:56:18
我開始與答案「丹尼爾」上面了,但我擔心,通過慢速連接我可能會遇到一些延遲問題的一些例子。
這是最終爲我工作的解決方案。在服務器端,我添加一個cookie refCount並將其值設置爲0.在java腳本中的文檔加載中,我首先檢查refCount,然後增加它。當檢查refCount是否大於1時,我知道該頁面被緩存。所以這個作品就像一個魅力。
感謝大家帶領我到這個解決方案。
雖然這個問題已經4歲了。我想我會使用jQuery和History插件添加我的2美分。
$(document).ready(function()
{
$('body').append('<div class="is_cached"></div>');
});
History.Adapter.bind(window,'statechange',function(){
if($('.is_cached').length >= 1)
{
alert('this page is cached');
}
});
當文檔第一次加載時。附加一個新的div.is_cached。加載緩存頁面時沒有兼容的方式來執行JavaScript,但您可以監視歷史記錄更改。當歷史記錄發生變化並且存在div.is_cached時,用戶正在查看已緩存的分頁。
- 1. 如何檢查頁面是否存在使用Javascript?
- 2. 使用cookie緩存頁面是否好?
- 3. 如何檢查頁面是否存在?
- 4. 我如何檢測我是否在論壇頁面
- 5. 如何檢測用戶是否是我的頁面的粉絲
- 6. 如何檢測原則查詢是否來自緩存?
- 7. 如何檢測JavaScript文件是否被緩存?
- 8. 如何檢測頁面是否由於第三方javascript而緩慢?
- 9. 檢查我的頁面是否被緩存
- 10. 我如何使用Cocoa的Accessibility API來檢測窗口是否在前面?
- 11. 使用Javascript來檢查頁面是否包含特定字詞
- 12. 如何檢查頁面是否爲啓用緩存的Magento 1.8.0.1的主頁?
- 13. 如何知道我的頁面是否被緩存?
- 14. 如何使用Selenium檢測頁面上的SSL是否損壞
- 15. 如何使用coldFusion 8檢查緩存是否存在?
- 16. 如何檢測頁面是否大量使用JavaScript,Python,Scrapy和Selenium?
- 17. 如何檢測localStorage存儲事件是否來自IE中的相同頁面?
- 18. JavaScript檢測圖像是否在緩存中
- 19. 使用Selenium2,我如何檢查頁面上是否存在某些文本?
- 20. 我需要檢測javascript是否啓用或不在asp.net頁面加載在c#
- 21. 使用cloudflare來緩存動態頁面
- 22. 檢查頁面是否從bfcache,HTTP緩存或新檢索的頁面加載
- 23. Firebase如何檢測緩存數據是否可用
- 24. Facebook Javascript,如何檢測用戶是否是我的Facebook頁面的粉絲?在我的網站上?
- 25. 如何檢測Vimscript中是否存在特定的緩衝區?
- 26. Javascript代碼來檢測當前頁面
- 27. 如何檢測我的頁面是否使用後退按鈕「復活」?
- 28. 如何使用HTML5的應用程序緩存(appcache)來緩存動態頁面?
- 29. 如何使用AngularJS RouteProvider緩存頁面?
- 30. 如何檢查一個頁面是否被Google緩存在Perl中?
該死的,你打我吧,豎起大拇指! – Bogdan 2008-11-03 21:46:21
我真的在想這個解決方案。我希望在文檔中更容易一些,但也許它不存在:) – 2008-11-03 21:52:36
如果您正在尋找它以符合任何一致性,這不是一個好的答案。在緩慢加載時間,服務器本地時間與客戶端本地時間或客戶端系統日期不正確之間,您無法保證該測試的準確性。 – 2016-11-04 13:03:38