【问题标题】:How bad is it to put javascript outside of the header?将javascript放在标题之外有多糟糕?
【发布时间】:2010-10-09 17:11:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript design-patterns coding-style


    【解决方案1】:
    【解决方案2】:

    将 Javascript 放入正文中是非常好的。甚至还有“内联”Javascript 之类的东西。只是不要过度。如果你可以将你的脚本打包到一个单独的文件中(这并不总是可行的),它将使你的代码更易于维护。

    【讨论】:

      【解决方案3】:

      这样做有好有坏。

      GOOD) 如果脚本对构建页面 DOM 并不重要,最好按照 Jim Puls 的建议尽可能晚地执行,通常位于页面的最底部根 BODY 节点中。这很好,因为它允许 XHTML 立即呈现,从而产生页面“加载速度更快”的心理效果。实际上,它以相同的速度加载,只是当用户盯着白色的浏览器窗口时,浏览器不会花费 CPU 周期来下载、解释和运行 JS。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-01
        • 2010-11-24
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多