我想使用localStorage
在主要用於移動設備(即帶寬限制)的Web應用中「緩存」一些JS和CSS文件。我想它的工作是這樣的:使用localStorage保存整個文件
- 該頁面加載一個小
setup.js
包含的代碼,檢查localStorage
,看是否bigScriptFile.js
已預存。- 如果沒有存儲,
bigScriptFile.js
被下載並存儲下次訪問。 - 如果已經存儲,然後
bigScriptFiles.js
從localStorage
讀取並加載/運行,如果它被下載像一個正常的文件(即<script src="http://example.com/bigScriptFile.js"></script>
)
- 如果沒有存儲,
我不知道怎麼什麼做的是步驟1.1 - 存儲JS文件。 (我知道,我只能存儲字符串localStorage
,我知道如何使用JSON.stringify()
。)
當然,它並不像使用轉義()一樣簡單:
localStorage.setItem('bigScriptFile', escape('myJScode'))
存儲,並
unescape(localStorage.getItem['bigScriptFile'])
檢索
即使這很容易,我該如何使用JS將bigScriptFile.js的內容作爲字符串來獲取?也許通過對返回內容的PHP腳本進行ajax調用?
如果我理解正確的話,清單隻控制在瀏覽器的緩存文件。如果清除緩存,則文件必須重新下載。由於此應用主要用於在iOS設備上運行,其中包括Safari中打開的頁面有時會刷新以回收內存,因此我正在尋找更持久的東西。我意識到這意味着我需要一種方法來檢查`localStorage`版本是否過時(如果是這樣,故意下載並存儲新版本),但這不應該太難。我更關心如何將整個JS文件可靠地存儲爲字符串 – craigpatik 2010-12-06 18:47:12
不,緩存清單中的文件存儲爲脫機/稍後使用。您可以關閉瀏覽器,並且正在重新下載的唯一文件是緩存清單文件。我保留這樣的權利,我不知道這是如何在Safari中實現的IOS – 2010-12-06 23:03:11