Javascript JQuery开发标准
我正在研究JavaScript的开发标准。我以前使用过Doulgas Crockfords Javascript标准和。然而,现在我更多地使用JQuery,我也在寻找更面向JQuery的东西 理想情况下,一个合理的检查表和一个自动化的验证工具。然而,实际上,仅仅一套合理的指导方针是一个很好的起点一些建议: 不要依赖于“$”作为jQuery对象 使用“Javascript JQuery开发标准,javascript,jquery,Javascript,Jquery,我正在研究JavaScript的开发标准。我以前使用过Doulgas Crockfords Javascript标准和。然而,现在我更多地使用JQuery,我也在寻找更面向JQuery的东西 理想情况下,一个合理的检查表和一个自动化的验证工具。然而,实际上,仅仅一套合理的指导方针是一个很好的起点一些建议: 不要依赖于“$”作为jQuery对象 使用“jQuery”或像这样包装: (function($) { // your code })(jQuery); 将“选项”对象传递给函数 就像j
jQuery
”或像这样包装:
(function($) {
// your code
})(jQuery);
将“选项”对象传递给函数
就像jQuery的API一样。当您有2个或3个以上的参数时,这一点很重要
// define
function myFunc(options) {
alert(options.foo);
alert(options.bar);
}
// call
myFunc({
foo: 1,
bar: "xxx"
});
单元测试你的代码
例如,一些建议:
不要依赖于“$”作为jQuery对象
使用“jQuery
”或像这样包装:
(function($) {
// your code
})(jQuery);
将“选项”对象传递给函数
就像jQuery的API一样。当您有2个或3个以上的参数时,这一点很重要
// define
function myFunc(options) {
alert(options.foo);
alert(options.bar);
}
// call
myFunc({
foo: 1,
bar: "xxx"
});
单元测试你的代码
例如,我会在想到它们的时候再加上一句,但我脑子里有几句话:
- 在jQuery对象变量前面加$,例如:
var$doc_list=$('.documents')代码>这将帮助您避免在试图记住当前是否在该变量中保存id字符串、元素或jQuery对象时感到困惑
- 使用UICSS框架。这是一个很好的入门教程
- 通读这本书
- 在jQuery对象变量前面加$,例如:
var$doc_list=$('.documents')代码>这将帮助您避免在试图记住当前是否在该变量中保存id字符串、元素或jQuery对象时感到困惑
- 使用UICSS框架。这是一个很好的入门教程
- 通读这本书
//坏的
$('');
//更好
$('指定上下文:
扣上你的锁链!
没有大量HTML字符串:
//坏的
$('');
//更好
$('缓存对象:
$('#id').show();
...
$('#id').remove();
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo('body');
}
var $myDiv = $('<div></div>').bind('contentUpdate', function() { // hello! });
...
$myDiv.trigger('contentUpdate');
...
$myDiv.remove();
var $myDiv = $('#id');
myDiv
.find('.className')
.show();
myDiv.css('top', 0);
更好:
不要过多地操纵DOM:
$('#id').show();
...
$('#id').remove();
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo('body');
}
var $myDiv = $('<div></div>').bind('contentUpdate', function() { // hello! });
...
$myDiv.trigger('contentUpdate');
...
$myDiv.remove();
var $myDiv = $('#id');
myDiv
.find('.className')
.show();
myDiv.css('top', 0);
更好:
**使用jQuery文档就绪包装器:(+$obfuscator)**
等
HF缓存您的对象:
$('#id').show();
...
$('#id').remove();
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo('body');
}
var $myDiv = $('<div></div>').bind('contentUpdate', function() { // hello! });
...
$myDiv.trigger('contentUpdate');
...
$myDiv.remove();
var $myDiv = $('#id');
myDiv
.find('.className')
.show();
myDiv.css('top', 0);
更好:
不要过多地操纵DOM:
$('#id').show();
...
$('#id').remove();
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo('body');
}
var $myDiv = $('<div></div>').bind('contentUpdate', function() { // hello! });
...
$myDiv.trigger('contentUpdate');
...
$myDiv.remove();
var $myDiv = $('#id');
myDiv
.find('.className')
.show();
myDiv.css('top', 0);
更好:
**使用jQuery文档就绪包装器:(+$obfuscator)**
等
HF+1关于使用自调用函数封装代码以防止与其他库(如mootools和prototype)冲突的第一点,这将使您的jQuery代码在更多上下文中可重用。如果有人使用jQuery.noConflict(),让代码停止工作是一件很糟糕的事情。+1是用自调用函数封装代码以防止与其他库(如mootools和prototype)发生冲突的第一点,这使您的jQuery代码在更多上下文中可重用。如果有人使用jQuery.noConflict(),让你的代码停止工作是一件很糟糕的事。其实没什么。只要遵循一般的JavaScript最佳实践,你就应该很好。其实没什么。只要遵循一般的JavaScript最佳实践,你就应该很好。甚至更好:完全用$.tempest之类的东西来模板化你的HTML-有什么区别在HTML字符串和attr'ed版本之间?这样更容易理解和总结如果你必须更改一个,也很容易!除此之外,更容易理解和总结。attr()+选项卡,任何关于速度差异的信息?$('');x 1000将比$('')快。attr({id:'something',src:'path/img.jpg',高度:300,宽度:300});当然……?:)更好的方法是:完全使用$.tempest之类的东西对HTML进行模板化-HTML字符串和属性版本之间有什么区别?这样更容易理解和总结,如果必须更改,也很容易!除此之外,更容易理解和总结。attr()+选项卡式,有关于速度差异的信息吗?$(“”);x1000将比$('').attr快({id:'something',src:'path/img.jpg',高度:300,宽度:300});当然……?:)