1

困境是这样的:

如果我尝试在母版页上放置所有脚本块(包括某些框架中的页面),每个页面都会获得每个脚本的副本(包括它们不需要的脚本),这些脚本会迅速加起来并增大页面大小。

如果我在需要的地方包含/插入脚本块,javascript 将遍布整个项目。

我正在努力在哪里保持正确的平衡。任何人?

4

5 回答 5

1

包含所有 JS 文件不是主要问题(除非它们在加载时运行缓慢的代码),并且不会使页面膨胀太多:一旦加载,浏览器无论如何都会缓存它们,因此会导致 0 负载下一页的时间。

只要不把JS文件的内容放到页面本身,当然可以!:-)

于 2009-05-14T16:44:42.493 回答
1

如果您的页面大小膨胀是一个问题,那么也许您应该将您的 Javascript 移出到需要它的页面引用的单独的 js 文件(甚至多个)中。这确实意味着您将对首次访问者有更多的 HTTP 请求,但它使浏览器可以缓存 Javascript,以便它不需要为您网站上的每个页面再次获取它。

于 2009-05-14T16:45:38.093 回答
1

我会尽可能多地将 JavaScript 提取到外部.js文件中。在母版页中包含最常用的库,但如果任何单个页面需要特定于该页面的 JavaScript,我建议仅在该页面上加载它。保留哪些页面加载了哪些文件的交叉引用,.js如果您看到一个库被很多页面引用,请将其移至母版页。

请务必使用YUI Compressor之类的工具或您使用什么来最小化和压缩 JavaScript 库?.

于 2009-05-14T16:51:09.343 回答
0

如果你缩小你的脚本,这不是什么大问题,像 jquery 这样大的东西在缩小后大约是 50k。

于 2009-05-14T16:47:24.860 回答
0

我们对站点范围的 JS 进行压缩、合并和 gzip 压缩(实际上是将大约 17 个文件合并为两个文件,一个用于我们所有的代码,一个用于库代码,如 mootools 和 clientcide)。这大大减少了下载脚本所需的时间。压缩和合并已经完成,并且在服务器上运行并缓存,因此开发根本不会减慢。如上所述,一旦全部压缩,我们用于站点范围内的好东西的总 JS 约为 50K。

我们还在文件上设置了一个较长的过期时间,这些文件都有一个版本号,所以当我们进行更改时,我们会增加版本号(我们有一个全站范围的版本号以使其更容易)并且用户被迫获得一个新版本,并且一次下载它们被浏览器缓存。

除此之外,我们已经将我们的 JS 放在页面的页脚,这样可以更快地呈现所有内容,并在我们下载 JS 时为用户提供一些可以查看的内容。

一些单独的页面有他们需要的一次性脚本(搜索表单等),它们得到与上面相同的处理(即所有需要的文件都将被合并、缩小、压缩),但站点范围内的代码保持不变,因此我们可以制作缓存的使用。因此,在这种情况下,我们可以为该页面下载 3 个 JS 文件、站点范围、库和自定义代码。

于 2009-07-14T11:47:41.677 回答