本文概述
- 1)如果以后需要查询, 可以将查询保存在变量中
- 2)当你的查询使用类选择器时, 请在有限的区域内进行搜索
- 3)尽可能链接你的jQuery函数
- 4)缩小你的javascript文件, 并将它们合并为1个文件
- 5)使用本地方法代替$ .each
- 你的代码效率如何
- 浏览器的JS解释器的效率如何
- 计算机运行代码的速度有多快
1)如果以后需要查询, 可以将查询保存在变量中假设你有一个按钮, 并且是应用某些CSS属性所必需的。
$("#button").css('color', 'white');
$("#button").css('width', '100%');
$("#button").css('background-color', 'green');
上一个示例对DOM搜索ID为’ button’ 的按钮执行了3次相同的查询, 肉眼看来还算不错。但是, 如果你在循环中执行该查询会发生什么?
for(var i = 0;
i <
100;
i++){$('#list').append("<
li>
"+i+"<
/li>
");
}
该查询已执行100次!你可以先缓存查询, 作为一种好习惯:
var list = $("#list");
for(var i = 0;
i <
100;
i++){list.append("<
li>
"+i+"<
/li>
");
}
2)当你的查询使用类选择器时, 请在有限的区域内进行搜索当使用类选择器时, 大概需要选择一个以上的DOM对象, 例如
$(".mydivision");
但是, 为你的查询提供上下文以快速进行搜索是一种很好的做法, 否则jQuery将在所有Document上查找我们类的对象, 而是应用:
$(".mydivision", "#mydivision-container");
这样, jQuery将仅关注给定的容器, 并且查询将更快地执行。
3)尽可能链接你的jQuery函数如果使用返回的对象而不是执行另一个查询, 则通过选择器执行的功能会快速运行
$("#button").css('color', 'white');
$("#button").addClass('greenButton');
$("#button").show('slow');
像提到的第一点一样, 该查询执行了3次, 因此你宁愿将这些函数链接在其位置:
$("#button").css('color', 'white').addClass('greenButton').show('slow');
4)缩小你的javascript文件, 并将它们合并为1个文件提高脚本的加载速度, 因此你可以花更多的时间来执行脚本。
5)使用本地方法代替$ .each在浏览器的控制台中执行以下示例。
var array = [];
//Adding an array with 1000 itemsfor (var i=0;
i<
10000;
i++) {array[i] = 0;
} console.time('nativeFor');
var l = array.length;
for (var i=0;
i<
l;
i++) {array[i] = i;
}console.timeEnd('nativeFor');
console.time('jqueryEach');
$.each (array, function (i) {array[i] = i;
});
console.timeEnd('jqueryEach');
你会注意到, for的本机速度比jQuery每个方法快约5倍。最后, 我们建议你始终加载可从官方jQuery网站获得的最新版本的jQuery。
推荐阅读
- 如何使用(WebKit)CSS自定义浏览器滚动条
- 如何在Laravel 5.4中为Guzzle创建PSR-6文件系统缓存
- jQuery中的事件委托是什么以及如何使用它
- 俗话说换个角度理解TCP的三次握手和四次挥手
- 短视频go研发框架实践
- #导入MD文档图片#信息收集这一篇就够了
- 浅谈 Gossipsub
- #导入MD文档图片#金融行业安全体系建设咨询实践-TOPIC 1
- ShardingSphere技术专题ShardingJDBC实现分库分表