2012-09-24 34 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压缩包,并从中提供静态资产。它运行得非常好,并且完全消除了我们应用程序启动时的网络延迟。我们正在考虑在未来几个月内的某个时间点开源实施(即每当我接近它时)。 –