2012-09-24 44 views
2

我們有一個包含多個靜態資產的移動應用程序。尤其相關的是「供應商」JavaScript的440k ......像Backbone和jQuery之類的東西以及上述的各種插件和附加組件。供應商的東西比ios應用程序本身更少發生變化...也許每隔幾個月更換一次。因此它是預先加載到我們通過Apple分發的應用程序映像中的主要候選者。我的問題是:我如何預先加載NSURLCache作爲資產,我有位?將資產預加載到NSURLCache中

理想的情況下,我想:

1)束vendor_assets.js到我的應用在推出分配

2),調用像[NSURLCache preloadAsset: 「vendor_assets.js」,[NSData的FROMFILE: 「vendor_assets.js]

3)加載的UIWebView,然後請求 」vendor_assets.js「(以及所有其他文件

4),因爲」 vendor_assets.js已經在緩存中,我們將用戶440k的下載帶寬。更快的發射時間。更多錢。促銷活動。香檳酒。榮耀。永恆的實現。所有這些shtuff。

我到底怎麼做到這一點?我一整天都撞着我的頭撞牆,到目前爲止,我所擁有的只是一個血淋淋的額頭。

回答

3

我剛剛爲這種情況創建了一個NSurLCache子類。你可以在:https://github.com/evermeer/EVURLCache

+0

我最終做了一些相當廣泛的基礎上創建一個自定義的NSURLProtocol。它從一個衆所周知的路徑中提取一個gzip壓縮包,並從中提供靜態資產。它運行得非常好,並且完全消除了我們應用程序啓動時的網絡延遲。我們正在考慮在未來幾個月內的某個時間點開源實施(即每當我接近它時)。 –