上山打老虎 发表于 2021-7-22 17:28:41

jQuery 性能调优

常见jQuery 性能调优:


[*]:eq 选择器性能低下.
我在 flexigrid 中扩展了树型展示功能.发现 :eq 选择器效率非常低下(不是 .eq function.)
[*] 带有容器的选择器也很低下
如: var row = $("#row1", jt ) ;性能比: var row = $("#row1") 差很多。
[*]Dom 查找是公认的慢,所以要缓存
[*]:visible:hidden 也非常慢。5700 次,需要 1800 毫秒。 看源码,它进行多次DOM 取值。
jQuery.expr.filters.hidden = function (elem) {
var width = elem.offsetWidth,
height = elem.offsetHeight;

return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css(elem, "display")) === "none");
};严重怀疑所有 : 开始的查找,都很慢。
[*]datetimepicker 代码非常臃肿。 其中它扩展的 remove 方法性能是非常之差。
remove: function(selector, keepData) {
return this.each(function() {
if ( !keepData ) {
if ( !selector || $.filter( selector, [ this ] ).length ) {
$( "*", this ).add( this ).each(function() {
$( this ).triggerHandler( "remove" );
});
}
}
return _remove.call( $(this), selector, keepData );
});
}作者:NewSea   如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
文档来源:51CTO技术博客https://blog.51cto.com/u_15309889/3169080
页: [1]
查看完整版本: jQuery 性能调优