3

我正在做一个网站项目。项目负责人告诉我,保留两个或多个$(document).ready是不对的,会影响性能吗?我更喜欢保留多个$(document).ready,因为我有很多 jquery 代码,这是划分代码块的好方法。

4

3 回答 3

6

这是一个额外的函数调用,所以当然会影响性能。

它不会以任何重大方式影响它。它甚至可能不会以任何可衡量的方式影响它(考虑到典型计算机上影响浏览器中 JS 性能的所有其他变量)。

于 2013-08-08T15:45:14.120 回答
2

只要您的$(document).ready处理程序不重复功能,那么第二个处理程序的性能影响可能是难以察觉的。

根据这个 jsperf 基准 - http://jsperf.com/ready-callback-function-vs-document-ready-function/6 - 我运行 Chrome 的机器每秒可以分配大约 325,000 个文档就绪处理程序。

于 2013-08-08T15:55:45.967 回答
1

这是更多的函数调用(其中的ready方法、函数和处理程序本身),但这不会显着影响性能。

这是划分代码块的好方法。

这就是为什么应该使用它。不仅为了可读性和可维护性,而且处理程序将具有不同的范围,垃圾收集可以更高效地工作,从而可以提高性能。

当然,可能有更好的方法来实现这一目标。这些部门应该使用模块模式(将工作从ready事件加载到解释声明的位置),然后您不妨init在一个就绪处理程序中调用所有模块的函数,而不是让每个模块都安装自己的处理程序。

于 2013-08-08T15:52:20.423 回答