仿jQuery编写高效代码的一些技术jslite
这是不寻常的讨论jQuery和Javascript的性能。不过,我打算教你提高你的jslite和Javascript代码的基础上对速度的技能和其他人总结了jQuery的一些建议。好的代码会带来速度。快速渲染和响应意味着更好的用户体验。首先,请记住,jslite是Javascript。这意味着我们应该采取相同的编码规范,风格指南和最佳实践。
首先,如果你是一个Javascript新手并且没有使用jQuery,我建议你先阅读官方文档的语法介绍。这是一个高质量的Javascript教程,这意味着您已经使用jQuery一段时间了。
当你准备使用jslite,我强烈建议你按照下面的指引:
缓存变量
DOM遍历是昂贵的,因此元素缓存将尽可能重用。
复制代码代码如下所示:
H = $(#元),Height();
$(#元),Css('height,H-20型);
建议
$元=美元(#元);
H = $()element.height;
element.css美元('height,H-20型);
避免使用全局变量
jslite是Javascript一样,在一般情况下,最好确保你的变量是在函数范围。
复制代码代码如下所示:
$元=美元(#元);
H = $()element.height;
element.css美元('height,H-20型);
建议
VaR(#美元美元元=元);
H = $()element.height VaR;
element.css美元('height,H-20型);
使用匈牙利命名方法
的jslite对象是通过在变量添加为前缀很容易识别。
复制代码代码如下所示:
第一组(# VaR美元第一);
无功二=美元(' #二);
VaR值= $()first.val;
/ /建议在jslite对象前添加前缀美元
VaR(#第一=美元美元第一);
VaR(#美元美元二=二),
VaR值= $()first.val;
使用var链(单var模式)
合并多个变量声明为一个声明,我建议把未赋值的变量在后面。
复制代码代码如下所示:
VaR(#第一=美元美元第一),
二美元美元=(#二),
价值= $()first.val,
k=3,
cookiestring = 'somecookiesplease,
我,
J,
MyArray = { };
请使用
在jslite新版本,短时间(点击)是一个用来代替功能像click()。在以前的版本中,对()进行绑定(),()附加事件处理程序的首选方法。然而,为保持一致,你可以简单地使用在()在一个简单的方法。
复制代码代码如下所示:
first.click美元(函数(){()
first.css美元('border','1px固体红);
first.css美元(颜色','蓝色');
});
first.hover美元(函数(){()
first.css美元('border','1px固体红);
})
建议
在此一美元(,函数(){(){
first.css美元('border','1px固体红);
first.css美元(颜色','蓝色');
})
在此美元('hover,函数(){(){
first.css美元('border','1px固体红);
})
简化Javascript
一般来说,尽可能多地合并函数是更好的。
复制代码代码如下所示:
first.click美元(函数(){()
first.css美元('border','1px固体红);
first.css美元(颜色','蓝色');
});
建议
在此一美元(,函数(){(){
first.css美元({
边境:'1px固体红',
'色':'蓝色'
});
});
连锁经营
该方法jslite实施连锁经营是很容易的。其次,利用这一点。
复制代码代码如下所示:
second.html美元(价值);
second.on美元(听到咔哒声,函数(){(){
警报(hello大家);
});
second.fadein美元(慢的);
second.animate美元({身高:'120px},500);
建议
second.html美元(价值);
second.on美元(听到咔哒声,函数(){(){
警报(hello大家);
})。FadeIn(慢的),动画({身高:'120px},500);
保持代码的可读性
随着代码的简化和链的使用,代码很难阅读。可以起到增加紧缩和换行效果很好。
复制代码代码如下所示:
second.html美元(价值);
second.on美元(听到咔哒声,函数(){(){
警报(hello大家);
})。FadeIn(慢的),动画({身高:'120px},500);
建议
second.html美元(价值);
二美元
,(听到咔哒声,函数(){ alert(你好大家');})
渐显(慢的)。
。动画({身高:'120px},500);
短路评估的选择
短路求值是一个表达式从左到右的评价,与(逻辑与)或| |(逻辑或运算符)。
复制代码代码如下所示:
功能initvar($ myVar){
如果(!$ myVar){
$ myVar =美元(' #选择器);
}
}
建议
功能initvar($ myVar){
$ myVar =美元(' #选择器)| | myVar美元;
}
选择快捷方式
简化代码的方法之一是使用编码快捷方式。
复制代码代码如下所示:
如果(collection.length > 0){等}
建议
如果(集合,长度){ }
重作业中元素的分离
如果要对DOM元素进行大量操作(在一行中设置多个属性或CSS样式),建议首先分离元素并添加它。
复制代码代码如下所示:
VaR
集装箱= $(美元#容器),
containerli = $(美元#容器里),
$ = null;
containerli.first美元美元元=();
许多复杂的操作…
/更好
VaR
集装箱= $(美元#容器),
containerli = container.find美元美元(礼),
$ = null;
containerli.first美元美元元=()将();
许多复杂的操作…
container.append美元($元);
记忆技巧
你可能缺乏的使用方法jslite经验,文档必须查看,并可能有一个更好更快的方法来使用它。
复制代码代码如下所示:
$(# ID)数据(键,值);
建议(效率)
美元。数据(# ID,关键值);
使用查询缓存父元素
正如前面提到的,DOM遍历是一种昂贵的操作,典型的方法是在选择子元素时缓存父元素并重用缓存元素。
复制代码代码如下所示:
VaR
集装箱=(#美元美元的集装箱),
containerli = $(美元的#容器里),
containerlispan = $(美元的#容器里跨度);
建议(效率)
VaR
集装箱=(#美元美元的集装箱),
containerli = $(美元container.find李),
containerlispan = $(美元containerli.find 'span);
避免通用选择器
子选择器中泛型选择器的性能非常糟糕。
复制代码代码如下所示:
$(容器> *);
建议
$(容器);
避免隐式通用选择器
一般选择器有时是隐式的,不容易找到。
复制代码代码如下所示:
$('。someclass:收音机);
建议
$('。someclass输入:收音机);
最佳的选择
例如,id选择器应该是唯一的,因此不需要添加其他选择器。
复制代码代码如下所示:
$('div #身份识别码);
$('div #页脚a.mylink);
建议
$(#身份识别码);
$(#页脚。MyLink);
避免多个ID选择器
强调ID选择器应该是唯一的,而不是添加额外的选择器,而不需要多个后代ID选择器。
复制代码代码如下所示:
$(#外#内');
建议
$(#内');
坚持最新版本
新版本通常是更好的:重量轻,效率更高,更多的方法,更全面覆盖的jQuery方法。显然,你需要考虑你想要支持的代码的兼容性。例如,项目是否在HTML5和CSS3支持运行良好
结合jslite和Javascript原生代码如果需要
如上所述,jslite是Javascript,这意味着事情可以做jslite也可以使用本机代码,可读性和本机代码的可维护性可能不jslite一样好,和代码较长,但它也意味着更高效的(通常是较低的代码,更糟的可读性,高性能,例如,汇编语言,当然,更强大的人才的需要)。记住,没有框架是更小,更轻,比本地代码更有效(注:测试环节都失败了,在网上搜索测试代码)。
最后的建议
最后,我记录下这篇文章的目的提高jslite性能和其他一些好的建议。如果你想对这一课题的深入研究,你会发现很多乐趣。记住,jslite不是必不可少的,只有一个选择。想想你为什么要使用it.dom操作吗Ajax吗模板CSS动画还是选择器重开发人员