JavaScript是否只在需要时加载?

时间:2011-01-06 14:59:58

标签: javascript

我正在为一个项目使用jQuery,并且可能有十几个额外的jQuery插件/插件(tipsy,uniform,jeditable,fancybox等等)。

作为最佳实践,我应该只在页面需要时加载它们吗?

或者我最好从一开始就加载它们,这样它们就可以在浏览器的缓存中完成,而不必在需要时以编程方式包含代码?

5 个答案:

答案 0 :(得分:1)

这取决于。您必须根据有和没有文件的负载大小和时间做出判断。如果整个文件的大小合理,您可以将它们全部包含在内。否则,在需要时包括它们。或者您甚至可能希望在用户浏览网站的不同时间将它们包含在内,这样当它们到达需要大量网页的页面时,它们并非都必须立即加载。除非你在谈论大量的文件大小(我怀疑),否则它可能不会产生很大的不同。

答案 1 :(得分:0)

通常,您应该只加载页面上所需的脚本。

您添加的每个文件都是对您的服务器的额外调用(假设没有缩小),添加到负载和流量。

在客户端,又是额外的流量,浏览器需要解析它。

将所有这些内容放在每个页面中可能更容易,但是,所有人都会访问所有页面并需要所有脚本吗?

这是一种权衡,您需要测试您的服务器和客户端,看看哪种情况最适合您的情况。

答案 2 :(得分:0)

取决于您所引用的分组,但是如果它的内容类似于5个脚本,只需将它们与minify请求串在一起并完成它。然后它被缓存,不必再检查服务器了。

你可以看到我用here做了什么:

<script type="text/javascript" src="http://www.tylerbel.com/workspace/min/f=workspace/js/jquery-1.4.2.min.js,workspace/js/jquery-ui-1.8.5.custom.min.js,workspace/js/main.js">

答案 3 :(得分:0)

或者,您可以查看模块加载,新hawtness:http://requirejs.org/docs/jquery.html

答案 4 :(得分:0)

对我来说,我发现如果您使用的是PHP,您可以轻松定义您想要的内容。我做的是我有一个预定义的标题,调用一个我已经制作PHP的js文件。在php js文件中,我在会话下有每个脚本,而不是在if语句中取消设置会话。在我正在使用的页面上调用我放在顶部的标题假设$ _SESSION ['chatjs'] ='1'; ...在php js上我会使用if(isset($ _ SESSION ['chatjs'] )){include('whatever.js);未设置($ _ SESSION [ 'chatjs']);这有助于我的网站从第二次加载时间加速到每页0.035加载时间,取决于页面上的内容。