2011-09-12 81 views
1

緩存的項目我有一個web application,我認爲是非常適合於使用應用程序緩存,棋盤遊戲我玩的工具。更新的HTML5應用程序緩存器(Chrome)

我經歷了應用程序緩存中的教程,它運行得很好......有點太好了。

大多數我的應用程序的腳本是鞏固和最小化部署我的過程中,唯一的例外是jQuery的。對於jQuery,我使用Google託管的副本。

這導致問題,當我加載頁面的第二次,它已經被緩存後,在jQuery沒有緩存,它不會加載它。

我改變了它,以便jQuery將與其他最小化腳本集成,但我仍然有問題。我修改了清單,並且據我所知,Chrome下載了更新的清單,但未下載其中的任何更新資源。

我甚至從HTML標籤中刪除了清單屬性,但它仍然不會刷新頁面。我必須從清單中實際註釋掉/index.html以刷新頁面。

因此,只要您仍在緩存相同的資源,更新清單似乎不會執行任何操作。有什麼我失蹤?如果緩存項目比特定日期早,清單文件中是否有強制再次下載的內容?

編輯補充:我正在做Chrome(stable)的測試。

+0

想提一下,我已經嘗試使用腳本來檢查window.applicationCache.status和swapCache()如果它是UPDATEREADY。 Chrome始終停留在狀態= 1(緩存)。 – Asmor

+0

你是否在資源文件上設置了過期標題?我的猜測是瀏覽器正在從網絡緩存中填充appcache,而不是再次從服務器加載內容。 – robertc

+0

瞭解到我沒有配置我的Web服務器(共享主機),我只是檢查了Fiddler,並且沒有啓用任何緩存頭。也就是說,瀏覽器正在緩存事物(發送if-modified-since和if-none-header在請求上)。是否有可能更新的清單可能抓取「網絡緩存」副本而不檢查它們是否是最新的? – Asmor

回答

0

我設法通過在清單文件上顯式設置緩存頭來實現它的工作,以強制清單文件不被緩存。我說這對我的.htaccess:

<Files ~ "\.mf"> 
    ExpiresActive On 
    ExpiresDefault "access" 
</Files> 

請注意,我用的,即.mf我的文件擴展名...如果你正在使用.appcache,改變MF到應用程序緩存。

相關問題