3

所以我最近从 ThemeForest 购买并下载了一个模板。我在本地服务器上设置了模板。我使用 codeigniter 生成了具有下拉菜单的导航。我将菜单中的所有内容都正确编码。我只生成了标题并进行了测试,并意识到下拉菜单不起作用。我花了大约两个小时试图找出我的代码出了什么问题。然后我终于意识到 JavaScript 文件包含在模板的页脚中……我还没有生成。

所以我的问题是......为什么有人会将 JavaScript 文件放在 HTML 页面的页脚中?我认为 JS 只应该位于文件的标题中。正确的?

4

3 回答 3

14

有多种方法可以将脚本文件加载到网页。

但是在页面底部加载脚本具有以下优点。

  1. 不会阻止任何要加载的 DOM 内容。
  2. 所有 DOM 元素都可用于正在加载的脚本。
  3. 如果您正在使用第三方库(例如 jQuery),则可以跳过 DOM,$(document).ready(function () {...});因为 DOM 已经加载。

希望这可以帮助。

于 2013-05-06T03:06:44.140 回答
4

Javascript 可以在您页面的任何位置运行。不仅在标题中!

但是,最适合您的页面速度的是将脚本放在底部(在正文结束标记之前)。

脚本引起的问题是它们会阻止并行下载。HTTP/1.1 规范建议浏览器每个主机名并行下载不超过两个组件。如果您从多个主机名提供图像,则可以同时进行两次以上的下载。但是,在下载脚本时,浏览器不会启动任何其他下载,即使在不同的主机名上也是如此。

阅读更多:http : //developer.yahoo.com/performance/rules.html#js_bottom

于 2013-05-06T03:02:26.560 回答
-2

底部脚本的一个大问题是页面中间不能有任何脚本(这是动态生成的页面的问题)以及要应用于页面上的元素的任何特定于页面的脚本需要放置加载到您的库后。例如,如果您需要加载一些 ajax 内容,则只能在加载底部 JS 之后执行此操作。因此,出于许多原因,人们更喜欢将库至少加载在顶部(头部),然后只将操作 JS 放在脚下

于 2017-08-29T22:01:05.640 回答