Javascript JQuery开发标准

Javascript JQuery开发标准,javascript,jquery,Javascript,Jquery,我正在研究JavaScript的开发标准。我以前使用过Doulgas Crockfords Javascript标准和。然而,现在我更多地使用JQuery,我也在寻找更面向JQuery的东西 理想情况下,一个合理的检查表和一个自动化的验证工具。然而,实际上,仅仅一套合理的指导方针是一个很好的起点一些建议: 不要依赖于“$”作为jQuery对象 使用“jQuery”或像这样包装: (function($) { // your code })(jQuery); 将“选项”对象传递给函数 就像j

我正在研究JavaScript的开发标准。我以前使用过Doulgas Crockfords Javascript标准和。然而,现在我更多地使用JQuery,我也在寻找更面向JQuery的东西

理想情况下,一个合理的检查表和一个自动化的验证工具。然而,实际上,仅仅一套合理的指导方针是一个很好的起点

一些建议:

不要依赖于“$”作为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对象 使用“
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字符串:
//坏的
$('');
//更好
$('指定上下文:
扣上你的锁链!
没有大量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});当然……?:)