当前位置:  开发笔记 > 编程语言 > 正文

提高jQuery函数的效率

如何解决《提高jQuery函数的效率》经验,为你挑选了1个好方法。

在IE/firefox中,此函数中的while语句运行速度太慢(阻止页面加载4-5秒),但在safari中运行速度很快...

它测量页面上文本的像素宽度并截断,直到文本达到理想宽度:

function constrain(text, ideal_width){

    $('.temp_item').html(text);
    var item_width = $('span.temp_item').width();
    var ideal = parseInt(ideal_width);
    var smaller_text = text;
    var original = text.length;

    while (item_width > ideal) {
        smaller_text = smaller_text.substr(0, (smaller_text.length-1));
        $('.temp_item').html(smaller_text);
        item_width = $('span.temp_item').width();
    }

    var final_length = smaller_text.length;
    if (final_length != original) {
        return (smaller_text + '…');
    } else {
       return text;
    }
}

有什么方法可以提高性能?我如何将其转换为冒泡排序功能?

谢谢!



1> Breton..:

将调用移到循环外的$(),并将其结果存储在临时变量中.除了调用.html()之外,运行该函数将是代码中最慢的函数.

他们非常努力地在库中快速制作选择器引擎,但与普通的javascript操作(比如在本地范围内查找变量)相比,它仍然很慢,因为它必须与dom交互.特别是如果你正在使用这样的类选择器,jquery必须遍历文档中的每个元素,查看每个类属性并在其上运行正则表达式.每个环绕循环!尽可能多地从紧密循环中获取这些东西.Webkit快速运行它,因为它有.getElementsByClassName而其他浏览器没有.getElementsByClassName.(然而).

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有