仿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动画还是选择器重开发人员