在html标记之前运行脚本和DOM是不是很糟糕?我在使用div和表创建的页面上有一个浮动窗口脚本,它会损害搜索引擎抓取网站吗?这是不好的编码吗?
答案 0 :(得分:1)
不仅不好,代码无效,代码无效也会对搜索引擎优化产生不利影响。
始终验证您的代码,您可以在 http://validator.w3.org 处执行此操作。
<script>
元素位于<head>
和/或<body>
元素内的任何位置,放置位置会严重影响代码的运行方式或运行代码。
浏览器从左到右,从上到下阅读网页内容。如果script
包含对尚未被浏览器读取的元素的引用,则脚本将失败。通过在结束<script>
标记(body
)之前放置</body>
元素,您可以确保浏览器已经在脚本执行时读取了所有相关的HTML,或者您可以放置你的脚本在它引用的元素之前,但是你必须将你的代码包装在一个事件处理函数中,该函数在元素被解析到内存之后才会触发。 / p>
通常,一个script
元素中的代码将依赖于另一个script
元素的代码。在这些情况下,必须按正确顺序将脚本包含在文档中。一个很好的例子是使用流行的JQuery JavaScript库。在打算使用该库的任何其他脚本之前,您必须具有引用JQuery的script
。
此外,当浏览器遇到script
元素(其上没有放置async
或defer
属性)时,它会开始执行脚本&#39; s内容同步,这意味着在脚本运行时,您的页面不会发生任何其他事情。这可能导致用户界面被阻止&#34; (冻结)。这是脚本经常放在body
末尾的另一个原因,因为此时至少页面的主要内容已经被解析并且对用户可见,并且他们通常甚至不知道阻碍发生。