jQuery Find速度很慢的调试.

最近发现一个页面速度很慢,IE8 下报脚本运行时间太长,是否要停止的警告.  定位到

$(d).find(":text,textarea,:hidden,:password,:radio:checked") .

在其它浏览器里没有问题, 只有 IE8 .

继续查找,发现它会执行如下代码.

在 jQuery 上执行 : sortOrder 函数 .

 

                // Otherwise they're somewhere else in the tree so we need
                // to build up a full list of the parentNodes for comparison
                while (cur) {
                    ap.unshift(cur);
                    cur = cur.parentNode;
                }

比较两个对象, 需要遍历整个父级对象树!!

简单来说,两个对象没有可比性. 返回什么无所谓.

直接返回 0

 

后来猜想,作者可能是因为:

$(".class").method() ; 有些方法,只对第一个元素有效,比较 width, height 等. 选择器结果列表,是按 DOM 出现的位置来排序的.

OK. 这是jQuery定出的业务规则.

而且,为了排序, 查询需要 0.1 秒. 而排序需要 1分钟, 实在不值得.

业务自己定, 针对上述结果的不确定性.jQuery不做处理也无所谓.

posted @   NewSea  阅读(1557)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
历史上的今天:
2009-01-04 [转]什么是 SOA?
点击右上角即可分享
微信分享提示