1

这是我对所有这些魔法如何运作的理解(如果我错了,请纠正我):

在 PHP/JS/HTML/CSS 网站中,当请求页面时,服务器会读取文件(用于引用此问题的 index.php),执行任何<?php ?>标记/结构并完成工作。然后它将完成的工作作为一个完整的页面发送给请求者。然后请求者读取文件(通过浏览器)并以“正常”顺序执行文件(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底部或任何其他特定位置以优化加载时间?

4

3 回答 3

1

如果可能,是否最好将这些包含在页面底部,或者库应该在底部,onLoad 在顶部,在底部准备好,或者加载时间优化的任何其他特定位置?

要么将所有 JS 包装在文档就绪回调函数中,要么简单地将标签放在底部。否则,您将依赖 defer 或 async 标记属性来阻止页面加载,并且这两个 attr 尚不全面支持。

关于 JS 包括优化:

虽然您正在考虑如何重用 JS 包含的代码是一件好事,但正如您在上面所做的那样,这是在资产文件中管理它们的良好第一步。

但是,在 php 性能方面存在一个缺点,因为您需要处理更多的代码才能呈现页面。

这就是为什么一些开发人员选择使用像 require.js 等客户端资产管理器的原因。

于 2012-11-12T20:38:50.107 回答
0

我个人不建议将 javascript 放在最底层,即使您经常听到这个建议。它主要与加载性能和脚本阻塞有关,这对于当今的现代浏览器来说已经不是什么大问题了。

为了组织起见,我喜欢将我的脚本放在脑海中,但最后,这取决于您的个人喜好。甚至雅虎也建议将脚本放在底部,所以它不会是错误的。

使用jQuery$(document.ready时(立即触发,因为 DOM 树被完全解析并且在图像完全加载之前)并在加载 jQuery 本身之后放置 init 代码 - 无论您决定放置它。

除此之外,您对网页的请求-响应结构的基本理解是正确的;)。

于 2012-11-12T20:27:03.367 回答
0

onLoad 和 ready 几乎是相同的功能,您应该在页面底部包含所有 javascript,因为它会在页面加载后加载 javascript。

于 2012-11-12T20:06:10.840 回答