使用Jquery和文档就绪功能时,每页一个JavaScript文件或组合

时间:2011-02-28 17:16:04

标签: javascript jquery performance

好的所以我知道它总是取决于具体情况,但到目前为止,我已将我的jquery文件/插件合并到一个压缩文件中。

现在我想知道我应该用我的页面特定的js / jQuery代码做什么。我应该有一个文件,一个Document.Ready函数和我的entires网站js代码吗?或者将其拆分为每页单独的js文件,每个文件都有一个文档就绪调用?

这些文件将包含诸如.Click特定于某些页面的处理程序和其他jquery代码之类的内容。

这里的最佳做法是优化加载时间和可维护性吗?

4 个答案:

答案 0 :(得分:8)

一种方法是使用require.js,然后使用包含文件和页面类型的数组。为每个body标签提供一个ID,并使用它来引用应加载的文件。

<body id="pageName">

使您的全局文件保持核心功能所需的一切,然后延迟加载网站运行速度不快所需的功能。我已经看到了这种技术的巨大速度提升。

http://requirejs.org/

答案 1 :(得分:2)

因为您几乎肯定想要在Document.Ready函数中执行不同的操作,具体取决于您所在的页面,我不认为在每个页面上执行一个函数是有帮助的。

我个人将我的$ .ready调用与我的HTML混合在一起。这些是对存储在单个,最小化javascript文件中的函数的简单调用,因此不占用太多字节,并且防止每页需要单独的Javascript文件。它还允许我启动我创建标记的Javascript,所以它都在一个地方。

如果您最大限度地减少了javascript并使用正确的标头提供了javascript,那么您已经获得了大部分好处,请不要过多地牺牲可读性。

答案 2 :(得分:2)

我们可以通过多种方式做到这一点,我的确如下。

之后广泛汇总您的文件

1)聚合所有页面所需的所有文件 2)聚合特定于页面的页面。

包含所有页面的所有常用聚合文件,并在页面上有条件地包含其他聚合文件

1)jquery和所有页面共有的其他插件所以//它将转到所有文件 2)主页聚合///主页 3)gallerypage-aggregation //用于图库页面。

如果您为所有页面包含相同的文件,则可能不需要所有文件。

我最近做了,如果你还需要其他的话,请告诉我

答案 3 :(得分:1)

它还取决于您使用的服务器端技术。您可以找到帮助您完成此任务的工具。如果您正在编写Java服务器端,则可以尝试JAWR。它允许创建分离的JS / CSS文件,在服务器端合并和压缩它们,将所有单独的文件转换为单个文件。

关于Document.Ready,我更喜欢将特定代码页保存在单独的文件中,避免错误的代码执行和行为。它也更清洁,更易于维护。