脚本文件应该放在哪里?

3
我已经将页面的各个组件分成了不同的php文件。在导航php文件中,我有我想在javascript中使用的对象。 我应该把这个javascript <script ...> 放在哪里才能让它正常加载?现在我正在将它放在完全不同的文件header.php中,但我不认为javascript会从nav.php中选取对象。 希望我表达清楚了 ;)
5个回答

1
无论在 PHP 渲染过程中放置在哪里,重要的是在输出 HTML 和 JavaScript 组合时,HTML 元素存在于您尝试在 JavaScript 中访问它们之前。

正因为这个原因,大多数 JavaScript 工具包都有一个用于在页面元素加载后执行 JavaScript 的函数,例如 jQuery 的 document.ready 函数。


1

也许没有标准,但当可能时,将js放在页面底部肯定是一种常见的明智做法。 - Strae

0

0

我的理解是,将脚本放在页面末尾可以获得最佳速度?

http://developer.yahoo.com/performance/rules.html

将脚本放在底部 脚本引起的问题在于它们会阻止并行下载。HTTP/1.1规范建议浏览器每个主机名最多下载两个组件。如果您从多个主机名服务图片,则可以并行进行更多次下载。然而,在下载脚本时,浏览器不会启动任何其他下载,即使是在不同的主机名上。
在某些情况下,将脚本移动到底部并不容易。例如,如果脚本使用document.write插入页面内容的一部分,则无法将其向下移动。可能还存在作用域问题。在许多情况下,有方法可以解决这些情况。
另一个常见的建议是使用延迟脚本。DEFER属性表示脚本不包含document.write,并提示浏览器它们可以继续呈现。不幸的是,Firefox不支持DEFER属性。在Internet Explorer中,脚本可以被延迟,但延迟的程度不如期望的那么大。如果可以延迟脚本,则也可以将其移到页面底部。这将加快网页加载速度。

0
请注意,通过重新定位标签(或使用更奇特的方法来避免阻塞)获得的性能优势与正确缓存它们在浏览器中获得的好处相比非常小。
C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接