以下是我对所有这些魔法如何运作的理解(如果我错了,请纠正我):
在PHP / JS / HTML / CSS网站中,当请求页面时,服务器读取文件(index.php以引用此问题),执行任何<?php ?>
标记/构造并执行工作。然后它将完成的工作作为一个完整的页面发送给请求者。请求者然后(通过浏览器)读取文件并以“normal”顺序执行文件(index.php)。如果我想要几个页面包含相同的JS脚本和库,我是否可以包含(安全和通过约定)JS:
<script type="text/javascript" src="LIBRARY/1.js"></script>
<script type="text/javascript" src="LIBRARY/2.js"></script>
// etc... for libraries, then also include inline scripts like:
<script type="text/javascript">
$(document).onLoad(function(){
});
</script>
<script type="text/javascript">
$(document).ready(function(){
});
</script>
通过PHP包括:
<!-- JS -->
<?php include ("component/js.php"); ?>
如果可以,最好在页面底部包含这些内容,或者库应位于底部,onLoad
位于顶部,ready
位于底部,或者加载时间优化的任何其他特定位置?
答案 0 :(得分:1)
如果可以,最好将这些包含在底部 页面,或者库应该在底部,onLoad在顶部, 在底部或任何其他特定位置准备加载时间 优化
将所有JS包装在文档就绪回调函数中,或者只是将标记放在底部。否则你将依赖于defer或async标签属性来阻止页面加载,而且这两个attr都不是全面支持的。
关于JS包括优化:
虽然您正在考虑如何重用JS包含的代码,这是一件好事,但这是在资产文件中管理它们的第一步,正如您在上面所做的那样。
然而,在PHP性能方面存在一个缺点,因为为了呈现页面而需要处理更多的代码。
这就是为什么一些开发人员选择使用像require.js等客户端资产管理器的原因。
答案 1 :(得分:0)
onLoad和ready几乎是相同的函数,你应该在页面底部包含所有的javascript,因为它会在页面加载后加载javascript。
答案 2 :(得分:0)
我个人不会建议将javascript放到最底层,即使你经常听到这个建议。它主要与加载性能和脚本阻塞有关,这对于当今的现代浏览器来说不再是一个大问题。
为了组织起见,我喜欢把我的剧本放在头脑中,但最后,这取决于你的个人偏好。即使雅虎recommends将脚本放在底部,也不会出错。
使用jQuery时需要$(document.ready
(因为DOM树被完全解析并且BEFORE图像完全加载后会立即触发)并在加载jQuery之后放入init代码 - 无论你决定放入它。
除此之外,您对网页请求 - 响应解剖的基本理解是正确的;)。