zoukankan      html  css  js  c++  java
  • 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不做处理也无所谓.

    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    oracle
    mysql的必知技巧
    sql_update
    sql查询
    Java 动态页面技术 之 jsp
    Java 会话技术 之 session
    Java 会话技术 之cookie
    Java HttpServletRequest
    Java HttpServletResponse
    Java Servlet接口、web.xml配置、HttpServlet父类
  • 原文地址:https://www.cnblogs.com/newsea/p/2312358.html
Copyright © 2011-2022 走看看