我需要加快jquery mobile的ui加载时间。当我尝试使用head.js方法并行加载js文件时,在显示基本的html页面后,它将只显示3-5秒的jQuery移动UI。我也尝试过CDN托管的js文件,它与下载的js文件没有任何区别。
有没有办法缓存jquery移动js文件,以便加速ui渲染?
谢谢。
发布于 2013-05-20 18:06:41
压缩Javascript
当使用其他插件,甚至你的代码时,总是使用压缩的js文件。它们更小,加载速度更快。如果你看一下,你会发现jQuery和jQuery手机都提供了压缩版本。
您还应该压缩您的js文件。可以很容易地找到工具。
分析您的js文件加载
通过分析js文件初始化来发现有问题的文件。你可以使用像这样的插件。它显示了文件的细目-只需转到“Net”选项卡。您还可以按文件类型进行过滤。
使用正确的js文件源
如果你正在创建一个Phonegap应用程序,你所有的js文件都应该存储在本地,但是如果你正在使用它作为一个普通的web应用程序,那么就像问题中提到的那样使用CDN源。
优化Javascript放置
如果可能,将javascript放在HTML文件的末尾。注意Google analytic和其他统计数据跟踪软件是如何想要位于结束标签之前的。
这允许首先加载和呈现大多数页面内容(如图像、表格、文本)。用户看到内容正在加载,所以页面看起来很有响应性。此时,繁重的javascripts可以在接近尾声时开始加载。
基本上,在HTML末尾初始化javascript,就在标签之前。有时,这可能会给jQuery手机带来问题。在这种情况下,让jQuery和HTML在HEAD中初始化,在jQuery端初始化其他所有内容。
按需加载Javascript
所有不必要的js文件都应该在主要内容加载之后程序化地加载。
函数:
$import('http://example.com/myfile.js')
将在文档的头部添加一个元素,就像直接包含文件一样。
缓存您的文件:
如果您使用PHP作为服务器技术,则可以使用can来提高加载性能。基本上,您将设置浏览器的缓存过期时间。为此,您需要访问PHP或Apache的.htaccess,以便可以发回特定的缓存头(阅读有关缓存的更多信息)。
合并您的文件
最后,当其他一切都停止时,你应该把你的js代码组合成一个单独的文件。您的浏览器一次只能连接到打开的网站那么多-考虑到设置每个连接的开销,将几个小脚本组合成一个较大的脚本是有意义的。
Gzip一切
的好处,通常是文件大小减少了75%或更多,太好了,不容忽视:使用超文本传输协议压缩优化您的站点。这种方法在较旧的浏览器上不起作用,但是因为您使用的是jQuery Mobile,所以不需要担心较旧的浏览器。
发布于 2013-05-20 17:55:23
鼓励使用CDN是因为,如果相同的CDN在多个站点上共享,则文件将从缓存中使用。
如果您使用的是安卓或iPhone WebView,那么建议您不要使用CDN,因为它会禁用离线功能。
如果你的应用程序是基于web的应用程序,那么考虑使用可用的缓存机制。这个tutorial will get you started with caching。
发布于 2013-05-20 18:11:33
如果你使用的是Android WebView,你可以从android应用的assets文件夹中加载js。这是非常不鼓励的,因为你每次更新js时都需要更新app,但在某些情况下这是最好的解决方案。
https://stackoverflow.com/questions/16646651
复制相似问题