我是javaScript的新手,几天前开始学习它。所以我正在学习功能和 我正在阅读的大多数教程都说应该将函数放在head标记中的脚本标记中,以便可以先加载它们。那是什么意思 ?因为我写了这段代码
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
function1();
function function1 () {
document.getElementById("demo").innerHTML="HEY";
}
</script>
</body>
</html>
并且代码有效。事情是我不明白怎么做。你如何称呼一个没有被加载的功能&#34;然而?浏览器是否以与HTML文档其余部分不同的方式读取脚本标记?任何人都可以解释它是如何工作的?
答案 0 :(得分:1)
您编码的方式是正确的脚本必须位于底部
根据雅虎加快网站的最佳做法
将脚本放在底部标记: javascript引起的问题 脚本是他们阻止并行下载。 HTTP / 1.1 规范建议浏览器下载不超过两个 每个主机名并行的组件。如果你提供的图像 多个主机名,您可以获得两次以上的下载 平行。但是,在下载脚本时,浏览器不会 即使在不同的主机名上,也可以启动任何其他下载。在一些 在将脚本移到底部并不容易的情况下。如果,为 例如,该脚本使用document.write插入页面的一部分 内容,它不能在页面中移动较低。可能还有 范围问题。在许多情况下,有办法解决这些问题 的情况。经常出现的另一种建议是使用 延迟脚本。 DEFER属性表示脚本有 不包含document.write,并且是浏览器的线索 继续渲染。不幸的是,Firefox不支持DEFER 属性。在Internet Explorer中,脚本可能会延迟,但不会延迟 尽可能多。如果可以延迟脚本,也可以移动它 到页面底部。这将使您的网页加载速度更快。 顶部|讨论这条规则
来源:Best Practices for Speeding Up Your Web Site
根据Google Apps脚本最佳做法
最后加载JavaScript 。许多Web开发人员建议在底部加载JavaScript代码 提高响应能力的页面,这一点更为重要 使用HTML服务。在NATIVE沙箱模式中,您可以使用所有脚本 负载被扫描并消毒客户端,这可能需要几个 秒。将标记移动到页面末尾即可 HTML内容在处理JavaScript之前呈现,允许您 向用户呈现微调器或其他消息。
<script>
function function1 () {
document.getElementById("demo").innerHTML="HEY";
}
function1();
</script>
答案 1 :(得分:1)
这主要是一种优化,script
标签可以放在很多地方(不仅仅是head
)。在过去,它们被放置在body
的末尾以优化页面的加载,因此浏览器可以在解析javascript之前显示页面,因此页面看起来响应更快。
现在,javascript通常放在一个单独的文件中,建议将它们放在head
中并使用async
或defer
标记添加到它们(你不能async
或defer
内嵌javascript)。
声明如下函数:
myFuncName(); //Valid
function myFuncName () {}
使其可以在定义它的整个范围内调用。同时为变量分配函数不允许这种情况发生:
myFuncName(); //Invalid
var myFuncName = function () {};
来源和进一步阅读:
答案 2 :(得分:1)
脚本标记是整个块。在加载整个脚本标记后调用funtion1()。