首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript --组合还是不组合,这就是问题所在

Javascript --组合还是不组合,这就是问题所在
EN

Stack Overflow用户
提问于 2010-09-07 04:19:07
回答 5查看 1.1K关注 0票数 10

好的,我知道为了提高效率,将所有页面Javascript合并到一个外部文件中是很明显的,但这并不是问题所在。

假设我有一个搜索字段的Default.htm,该字段附带了一些Javascript魔法。然后,我有一个Contact.htm与一个联系形式,有一些Javascript魔术附加到它。最后,我有一个FAQ.htm和一些jQuery面板显示答案..。你能拍到照片。

基本上,我有三个页面,它们都有“一些”javascript所需的内容,但是其他任何页面都没有使用Javascript。

最好将所有的Javascript合并成一个很小的文件,然后加载一次,然后存储在Cache中,还是最好在默认页面上使用单独的Javascript文件,而不是在联系人页面上使用.等?

在这种情况下,什么是最有效的?

备选方案:1

Default.htm

jquery.js

default.js Contact.htm

jquery.js

contact.js Faq.htm

jquery.js

faq.js

备选方案:2

Default.htm

jquery-default-contact-faq-min.js

Contact.htm

jquery-default-contact-faq-min.js

Faq.htm

jquery-default-contact-faq-min.js

PS:对于所有的asp.net家伙,我使用梳子组合,缩小,和版本我的Javascript文件

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-07 06:08:34

我绝对会投票把它们结合起来。如果您关心“未使用”Javascript的解析或设置时间,那么我建议使用闭包中的每个文件构造Javascript,然后在需要它们的页面上运行所需的闭包。例如:

代码语言:javascript
运行
复制
// File 1
window.closures = window.closures || {}
window.closures["page1"] = (function() {
  // Javascript for Page 1
});

// File 2
window.closures = window.closures || {}
window.closures["page2"] = (function() {
  // Javascript for Page 2
});    

// File 3
window.closures = window.closures || {}
window.closures["page2"] = (function() {
  // Javascript for Page 2
});

然后,在你的页面中:

代码语言:javascript
运行
复制
<!-- This one combined.js file will be downloaded once and cached //-->
<script type="text/javascript" src="combined.js"></script>
<script>
  // Run the Javascript in your combined.js intended for page2
  window.closures["page2"]()
</script>
票数 3
EN

Stack Overflow用户

发布于 2010-09-07 04:51:29

合并成一个文件。让它被缓存。它在任何页面上加载一次,对于以后的任何页面,它都可以使用缓存的副本。

票数 3
EN

Stack Overflow用户

发布于 2010-09-07 05:03:11

它总是平衡HTTP请求的数量,限制尚未真正需要的传输字节。

有三种可能性:

  1. 将所有内容合并到一个文件中,
  2. 有三个单独的文件,并按需要加载
  3. 有三个单独的文件,立即加载该页面所需的文件,然后(在时机合适时)预加载其他的

通过进行A负载测试,您将只知道什么是对您的情况最好的。

一切取决于传输数据的大小、所需功能的重叠以及需要某些功能的可能性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3655735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档