我有一個應用程序正在使用AppCache將資源存儲在瀏覽器的緩存中。我已經能夠在PHP文件上設置清單,以便自動寫入所有必須緩存(正確過濾)的文件。此文件的標題如下:HTML5 - ApplicationCache不更新(僅)某些文件
header('Content-Type: text/cache-manifest');
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
這就是所謂的appcache.php
和它在我的HTML正確引用:
<html manifest="appcache.php">
每次我更新清單,應用程序檢測更新和事件被正確觸發,更新緩存並刷新頁面以便重新加載。
但是,某些文件(主要是Javascript和CSS文件)沒有正確刷新。有時需要幾個清單更新(與整個過程),有時它只需要一個,有時它需要永遠,我必須刪除瀏覽器緩存或去隱身模式。
該應用程序檢測到更新,所以清單沒有得到捕獲,它得到正確更新。問題是,即使文件被再次下載,它們仍舊在舊版本中服務。主要問題是,這隻發生在一些文件中(有時它們是一些css文件,有時它們是js,依此類推:未更新的文件是隨機的)。
實際上,我使用的是Chrome v59,在我的Android設備上使用Chrome v60發生的情況也是如此。
有沒有任何解釋爲什麼他們不刷新正確?這是一個已知的錯誤?我能做些什麼來解決它?
UPDATE
看來,它發生的最當我已經做了一些與他們之間很短的時間更新。等待24小時左右後,它會在第一次嘗試中起作用。也許這可以幫助你猜出爲什麼會發生。
謝謝。
它正確地做的全過程,並清單被更新(或事件將不會被觸發)沒有錯誤,也不。而且它沒有得到擦肩而過,因爲應用程序檢測到它已經改變了。問題是,一些文件的更新,而其他(主要是js和css)沒有。 – Unapedra