javascript - javascript 的最佳位置包括

标签 javascript performance browser

我读到最好将您的 <script> 放在文档末尾的标签。这样做的理由似乎是,浏览器将停止呈现脚本标签下方的页面,直到它加载并执行了脚本。如果您的脚本标记位于页面顶部,渲染会暂停一段时间,这很糟糕。

但是,我不确定这是不是真的。

环顾四周,我通常会看到以下位置......

<head>页面的或就在 <body> 内标签

Stackoverflow 是将脚本标签放在 head 中的网站示例,并且由于他们通常对性能相当着迷,所以我开始怀疑页面中的位置是否重要。

body 中的最后一件事元素

另一个放置 javascript 的常见位置似乎是在 <body> 的最后。元素。我假设这意味着页面可以在 javascript 下载并继续执行它的操作时呈现。

但哪个更好呢?

有没有人对此有任何想法或建议?我希望尽快让我们的页面运行并显示给用户。

重要吗? 位于页面顶部有哪些优势?页面底部?

最佳答案

这真的取决于。

对此没有包罗万象的答案,因为它取决于您的 javascript 正在执行的操作。

如果您对需要加载脚本才能运行的 DOM 元素执行操作,有时需要将脚本放在页面末尾。假设您想专注于一个控件,您的脚本是:

var mytext = document.getElementById("mytext2"); 
mytext.focus();

在这种情况下,您会希望它在页面末尾执行,即在浏览器加载 mytext2 控件之后。这对于仅包含由事件调用的函数的脚本 block 来说不太重要。

如果你有一个包含函数库的大 .js 文件,你可能还想将它放在页面的末尾,这样浏览器将在加载大的 .js 文件之前更快地加载页面。

Google Analytics 建议将他们的跟踪器放在末尾,以确保在计算点击次数之前页面已交付,但在某些情况下,它建议也将脚本放在标题中,这两种方式都有效。

因此,对我来说,经验法则是,除了内联执行和作用于 DOM 对象的东西,或者你想在页面后加载的大型脚本之外,所有东西都使用 HEAD 脚本。

Rick Strahl 刚刚在 placement of Javascript 上写了一篇很棒的博客在 .net 中也是如此:

关于javascript - javascript 的最佳位置包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007323/

相关文章:

JavaScript 对象 - 数字键文字未定义

java - 在 Java 代码中的 javascript 函数中使用变量

c# - 如何在 WPF 中延迟创建 UI 元素?

javascript - 尝试使用 Ajax 获取图像时出现访问控制源问题

java - 防止用户使用不同浏览器(IE和FF)登录同一系统

python - 我如何在不实际打开浏览器并获取表格内容的情况下使用 selenium? Python

Javascript:如何取消 surroundContents 范围

performance - Web 服务器的理论性能限制是多少?

java - Java 中的错误处理权衡

javascript - 如何创建可以接受三个字符串数组的ajersey Restful方法