我有一个使用Backbone.js的混合Web应用程序和大约20个供应商库(JQuery,Paper.js,...)。此Web应用程序可直接在不同的浏览器上使用,在Android的Webview内部和iOS中的Webview内(不是最新的iOS webview WKWebView)。
我尝试优化静态资产投放,以避免iOS和Android应用中的延迟。 在制作时我创建了3个包: - 我的JS文件为1(383kB) - 1为所有供应商JS文件(918kB) - 1表示我的CSS文件和供应商CSS文件(209kB)
每个捆绑包都经过缩小和版本化。
我想知道从CDN直接使用供应商文件或从我的CDN直接使用大型供应商文件是否更有效?
通过从我的CDN提供3个捆绑包,我减少了请求数量,但加载和解析这个庞大的文件需要时间。
通过从他们的CDN调用每个供应商,我为每个文件发出1个请求,但是大多数访问者已经在内存中拥有JQuery和其他一些库,因此他们不会再次下载它。
优化Webview的最佳方法是什么?
答案 0 :(得分:1)
您可以像处理针对移动设备优化的常规网页一样处理此情况。首先,如果您的目标受众是移动的,那么您的JS和CSS资产的大约1.5MB。旧设备不仅解析JS和CSS较慢,网络延迟也是一个问题。如果可能的话,尝试减少您使用的库的数量。例如,您可能不需要所有JQuery,并且可以使用像zepto.js这样的较小的库。
您的访问者可能只有缓存中最受欢迎的库(jQuery,Backbone等)。无论如何,可能需要加载更多利基库,例如Paper.js。最重要的是,您需要使用多个CDN来传递您的内容,因为像Paper.js这样不太受欢迎的图书馆不会托管在Google等上。这意味着您依赖更多的第三方。因此,在这种情况下,我将从您自己的服务器提供所有资产。您最好通过Cloudfront等CDN提供文件。