将javascript放在标题之外有多糟糕?

时间:2009-02-25 00:32:47

标签: javascript design-patterns coding-style

这个问题几乎已经说明了一切。

我开始向weekend project添加一些功能。这对我和几个朋友来说都是一个小应用程序,因为我们交换学生对我们有用。

但事情如下,我在php中这样做并使用includes构建所有内容,因此我可以将代码分开。其中一些代码依赖于javascripts snipets,那么将javascript放在正文中间有多糟糕?或者我应该制作双重包含,以便javascript保留在标题中?

3 个答案:

答案 0 :(得分:24)

答案 1 :(得分:2)

将Javascript放入正文是完全可以的。甚至有“内联”Javascript这样的东西。只是不要过头了。如果您可以将脚本打包到一个单独的文件中(这并不总是可行),它将使您的代码更易于维护。

答案 2 :(得分:1)

这样做有很好的理由。

GOOD)如果脚本对于构建页面DOM并不重要,那么最好像Jim Puls建议的那样尽可能晚地完成,通常在根BODY节点的页面底部。这很好,因为它允许XHTML立即渲染,产生心理效果,页面“加载速度更快”。实际上,除了在用户盯着白色浏览器窗口时浏览器没有花费CPU周期下载,解释和运行JS时,它以相同的速度加载。

BAD)脚本标签通常按照它们所包含的顺序下载。这意味着您需要仔细管理它们的包含顺序。此外,因为它们是串行加载的(一次一个),所以你为引用的每个附加文件支付高额费用,因为浏览器必须建立连接,检查缓存,下载等。诸如IE的“DEFFER”之类的技巧不是标准的。出于这个原因,我强烈建议您在从开发到生产时将javascript打包到单个文件中,这样用户就不必连续进行多个连接。还要确保已打开gzip压缩。

GOOD)有一种使用AJAX延迟加载脚本的方法 - 你调用你的服务器要求JS,并在加载文件时引发一个事件。然后,您可以在其上调用eval(或更安全的变体),将其符号放入范围。这允许并行下载脚本。

好& BAD)在IE中,您必须避免在DOM完全加载之前操作DOM树。为此查找'dom:loaded'事件。