0

始终建议(例如参见this)将 JS 链接放在页脚中。PHP页面的一个典型例子是

include 'header.php'
Page Content
include 'footer.php'

Page Content我们为特定页面添加自定义 jQuery 代码,同时在页脚加载 jQuery 库。这将导致问题,因为 jQuery 库必须在 jQuery 代码之前加载。

QUESTION 1:如何将jQuery库放在页脚中,并在每个对应的案例中放置自定义代码?

一种可能的解决方案是在页脚中包含所有 jQuery 代码(对于所有网站页面)。在这种情况下,所有 jQuery 代码都可以添加到 JS 文件中,而不是内联 JavaScript。这将是类似的

$(document).ready(function(){
$('.div1').click ....
$('.div2').click ....
.....
$('.div99').click ....

问题2:它不会减慢JavaScript进程,因为在每个页面中,JS必须监听当前页面中不存在的DOM元素的可能事件?例如,JS 必须照顾 99 个 DIV,而我们在每个页面中都有几个 DIV。

4

2 回答 2

0

You want to load JS as late as possible and preferably from one file - if you're using something like modernizer it will still need to go in the head.

As far as deferring jQuery goes @samsaffron wrote a pretty definitive post on it - http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax

于 2012-05-22T17:38:59.203 回答
0

对问题 1 的回答 标准做法是将大型脚本放在自己的文件中,并在标题中添加脚本标签。只要您调用 $(document).ready,您就不会对性能造成任何影响,因为该脚本只会在加载文档时运行。

将 JS 放在页脚中的目的是让它在整个页面加载后执行,但对于 body onload 事件不再需要。

如果您真的打算将 JS 留在页脚中,那么使用您要加载的脚本名称创建一个页面变量并将其传递给您的页脚脚本是一项相当简单的任务。

对问题 2 的回答 否,页面没有变慢。如果 jquery 没有找到匹配的标签,它不会绑定任何事件。即使页面上有 99 个 div,也不会影响性能,因为事件是通过引用存储的,并且只会触发调用的 DOM 项及其事件。

于 2012-05-21T13:34:49.300 回答