jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – $(document).ready()检查是否会降低IE的速度?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在与一家名为 Catchpoint的公司合作,以解决客户端代码指标中的一些不一致问题.它们会触发一些事件来测量页面加载过程中的里程碑.他们为我们提供的指标是在IE8中.

现在,他们声称JQuery在IE中确定DOM准备的方式实际上会严重损害页面性能,我们应该不惜一切代价避免它.我知道JQuery使用doScrollcheck()方法和documentElement上的1ms递归setTimeout blast做了什么,我发现它们可能有一个有效的声明.

他们说每个$(文件).ready()块的性能都会成倍地受到伤害.

我的问题是,他们是否有任何统计数据来验证这一说法,如果是这样,我将如何实现一个IE友好的解决方案,而无需为我的需求重新编写JQuery源代码.

解决方法

根据JSperf的说法,多个DOM就绪函数确实会减慢所有浏览器中页面的速度,足以让我重构我自己的很多代码以适应这个新发现.当然IE浏览器速度慢得多,但是测试并不像我希望的那样信息丰富,因为即使没有DOM就绪检查它也会慢得多.要做的就是尽可能减少这些DOM就绪函数的使用.

Chrome中的结果:

>单$(文件).ready():734,811 ops / sec
>多个$(文档).ready()的[4块]:151,989 ops / sec
>没有$(文件).ready():208,965,555 ops / sec

IE8中的结果:

>单$(文件).ready():26,349 ops / sec
>多个$(文档).ready()的[4块]:5,971次/秒
> No $(document).ready():5,000,159 ops / sec

分析这些指标:

>在Chrome中,没有DOM准备检查占用DOM准备的0.35%的时间
检查
>在IE中,没有DOM就绪检查占用DOM的0.53%的时间
准备好检查

数据就告诉我们doScrollcheck()函数可以大大降低性能.

如此:

> Chrome的DOM就绪检查比IE快27.98倍
>在Chrome上,进行4次DOM就绪检查的速度比IE快25.45倍
>缺少DOM就绪检查在Chrome上比IE快41.79倍

从表面上看,这看起来毫无希望 – 但是如果你虑一下,没有DOM就绪功能的IE页面执行超过500万次操作/秒,Chrome上的单个DOM就绪功能执行不到一百万.这告诉我你是否设法告诉JQuery使用更友好的doScrollcheck()函数,比如检查documentElement是否每100毫秒可滚动而不是每1毫秒你可能会看到页面加载时间与chrome更具竞争力.

这个基准测试真正告诉我的是,即使是DOMContentLoaded检查也很慢 – 在Chrome上没有任何借口可以从2.09亿操作/秒降到100万以下.

http://jsperf.com/docready/3

大佬总结

以上是大佬教程为你收集整理的jquery – $(document).ready()检查是否会降低IE的速度?全部内容,希望文章能够帮你解决jquery – $(document).ready()检查是否会降低IE的速度?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。