我喜欢到一些大型网站上去翻阅它们的原代码,期望能找到一些可以应用到自己的代码中的模式,或发现一些之前从未听说过的工具和技巧。可是,在我查看这些大型网站的源代码时,经常会发现一个问题,那就是重复的代码执行,重复的功能应用。下面就是一些在查看它们的源代码时发现一些问题,把这些分享给大家,希望能让你们更加简洁高效的写出JavaScript代码。
重复的收集元素
我在他们的JavaScript代码里看到的最常见的问题是重复的收集元素。虽然jQuery选择器引擎或querySelectorAll的执行速度都很快,但重复的工作就是会多占用时间和资源。这个问题很浅显,解决的方法如下:
复制代码 代码如下:
//
$$(".items").addClass("hide");
// ... 后来又 ...
$$(".items").removeClass("hide");
//
var items = $$(".items");
// ... 从这里开始使用这个引用变量!
对那些写出重复执行代码的程序员的谴责我们天天都在做,但仍需要加强。当然,有些重复的动作是无法避免的(比如ajax加载页面),可是,对于这些情况,我们最好是使用事件代理,而不是直接拉取内容。
重复的条件判断
重复的条件计算很常见,但通常也是有一个通用的模式来避免它们。你可能会看到一段代码写成这样:
复制代码 代码如下:
var performMiracle = function() {
// 如果浏览器支持A特征...
if(features.someFeature) {
}
// ... 如果不支持
else {
}
};
这是可行的,但不是最高效的代码,上面的条件可能会多次计算。写成下面的样子会更好:
复制代码 代码如下:
var performMiracle = features.someFeature ? function() {
// Plan A stuff
} : function() {
// Plan B stuff
};
只有一个条件,而且条件计算完成时方法或变量就已经作为结果返回了!
重复的对象创建
相比较重复的操作,重复的对象创建更难发现,通常是表现在正则表达式上。看一下下面的这段代码:
复制代码 代码如下:
function cleanText(dirty) {
// 去除SCRIPT tags
clean = dirty.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, "");
// Do some more cleaning, maybe whitespace, etc.
return clean;
}
上面的代码会不断的重复创建一个新的(但是相同的)正则表达式对象,对于这种情况,如果你在这个函数的外部创建这个对象,就能避免这种情况的出现:
复制代码 代码如下:
var scriptRegex = /<script[^>]*>([\s\S]*?)<\/script>/gi;
function cleanText(dirty) {
// Get rid of SCRIPT tags
clean = dirty.replace(scriptRegex, "");
// Do some more cleaning, maybe whitespace, etc.
return clean;
}
在上面的例子中,正则表达式对象只创建了一次,但多次使用——省了很多CPU处理。
这只是一部分我经常看到的其它程序员写的有重复问题的例子,你也有这方面的发现吗?
相关推荐:
SEO优化流程:助力网站快速提升排名的关键策略,1745ai
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
SEO优化公司一般怎么优化?揭秘专业SEO服务的操作流程,人工智能ai写作软件 哪一个好
seo进阶买什么书推广,seo的推广技巧 ,菩萨壁纸ai
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案
SEO努力:提升网站排名的关键策略,网站建设微企动力
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
AI一键生成文章在线:提升创作效率,改变写作方式
为什么seo推广那么多,seo推广难吗 ,东莞ai听译平台
pbootcms自动翻译插件,让你的网站轻松实现多语言覆盖,ai 镀金
“标题制造机”:颠覆内容创作的秘密武器,助你轻松打造吸引力十足的标题,景区线上推广用哪些网站
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
seo都有什么意思,seo 啥意思 ,ai园林
一键创作,助你轻松实现创意梦想,最低价刷粉网站推广
seo简介主要写什么,seo主要内容 ,AI弧线这
什么是seo公司口碑,seo品牌 ,ai大模型训练是什么意思
在线AI文章生成器开启智能创作新时代
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
SEO本站:提升网站流量与排名的秘密武器,荆门专业的抖音seo
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai
摘要AI生成:高效工作的新时代利器
智能AI生成文章释放创作新可能
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
SEO难吗?揭秘SEO背后的真相,让你轻松上手!,大旺百度网站推广
优化页面-提升用户体验与搜索引擎排名的关键,绍兴视频营销推广
SEO优化排-打造高效的网络营销利器,精神AI
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
AI文章概括缩写:让内容高效获取的智能工具,ai 处理文件
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
怎么用AI润色文章,让你的文稿瞬间高大上
自动生成文章的AI软件,助力内容创作的未来
丹东seo是什么怎么选,丹东spr ,黑发ai图
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
AI撰写大数据解决方案:开启智能数据时代的新篇章,ai头号公敌
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
什么是seo艺术,什么是seo seo有何价值 ,ai写作生成器 推荐
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
未来写作新模式文章撰写AI如何助力内容创作
SEO每日:提高网站流量的秘密武器,助你脱颖而出,seo优化和排名技巧
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
好用的AI写作软件免费推荐:创作新境界!
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o