在24小时内学习jQuery +最佳实践

Dim*_*off 11 jquery

这可能听起来不可能,但继续阅读.

我需要学习jQuery以保持最新状态并能够说服雇主我能在不到2天的时间内处理它.

现在,我应该提一下,我其实知道javascript.这是一个有点暧昧样的说法,但-而我不是道格·克罗克福德-我当然我的意思不是使用内嵌代码我只是切换元素的可见性.我甚至可以说我非常熟悉MooTools,在过去的3年中已经阅读了它的源代码以及无数的MooTools插件.

现在,通过帮助了解MooTools标签,我无意中也收集了很多jQuery代码.还有API文档页面,这很公平 - 只要我想使用DOM,AJAX,事件等,我就能找到自己的方式.这不是帖子的内容.

我正在寻找非常具体的资源和指南/ jQuery组织良好和编写良好的代码示例.例如,我感兴趣的事情(但不限于):

  • 与API有关的特殊情况,例如..bind!= ECMA绑定
  • 限制,如元素属性(.attr?)+属性和其他陷阱的变通方法
  • 选择器性能(如果Sizzle与Slick不同)和......
  • ...缓存选择器 - 它是否有效,jQuery如何返回自身.
  • 关于可读性和写作的最佳实践易于遵循和理解意大利面条代码
  • 编写插件的最佳实践 - 如何构造,是否有任何通用/接受/首选命名法等,即jQuery相当于这个mootools指南
  • 在经典的OOP意义上有没有更好的方法来处理继承?我知道moo4q,但让我们假设我想在mootools的帮助下暂时这样做.是的,我知道我仍然可以使用纯javascript作为基本的东西.
  • API中是否有任何特定的差异(除了++ changelog)我需要注意不同的jQuery版本?
  • GC.你做了什么,你删除事件,节点等?
  • 要避免的比特.例如,我看到ppl在twitter上抱怨元素存储很慢.
  • 关于构建适当的'企业级或近乎足够'的基于jQuery的_application__的建议(我知道,我知道 - Dojo,ExtJS,甚至是MooTools,但jQuery可以实现,对吧?很多人发誓并声称做到了...)
  • 无论你怎么想我都需要阅读才能开始

考虑到这一点,我想只是链接到SO上的教程或文章甚至帖子,可以涵盖所提到的领域和高级jQuery开发.

一些由尊敬/知名作者撰写的精选插件也将受到赞赏,特别是那些在组织方式和易于扩展方面不同的插件.由于有这么多人可供选择,大多数人可能都没有超过hello spaghetti world阶段,因此我不想将它们作为基于我自己工作的例子.我不是在设计师投资的插件之后,因为它们有很好的效果,我想要漂亮的代码示例.

就是这样.任何帮助表示赞赏 - 将在周日开始阅读,并且需要能够编写一个可扩展的插件,比如几天前我在2-3小时内编写的mootools模式/灯箱类.我想将它转换为jQuery作为一种练习,不会使它变得不那么模块化/可扩展:http://jsfiddle.net/dimitar/6creP/

在此先感谢,将尝试回答每个回复的人

Anu*_*rag 3

jQuery 与 MooTools 提供的功能非常相似,但提供这些功能的方式却截然不同。MooTools 非常明确,需要更深入地了解某些事物在幕后如何工作,而 jQuery 则隐藏了这种复杂性。在我看来,隐藏复杂性遵循 80-20 原则,当抽象泄漏 20% 的时候,理解内部工作原理就变得很重要。

深入掌握 MooTools 应该会让您很容易掌握 jQuery。这种显式行为的一些例子是 jQuery 如何将单个和多个元素包装在保护伞下,而 MooTools 为 with和$提供显式接口。$$$

当使用 JSONP 对自己的域或外部域进行 AJAX 调用时,jQuery 通过该函数$.ajax路由所有内容,而 MooTools 再次为Request和中的内容提供单独的接口Request.JSONP

这两种方法都没有好坏之分,但重复使用大多数人已经熟悉的相同界面可以缩短学习曲线。

深入研究 jQuery 的一些很好的资源是,

在代码组织方面,大多数为 jQuery 编写的代码与 MooTools 非常不同。虽然 MooTools 使用对象的非常经典的风格,但 jQuery 代码大多是以 DOM 为中心的。因此,即使使用自定义插件,您也会将数据附加到 DOM 元素。要查看以 DOM 为中心的方法的一些几乎真实的示例,您可以观看此答案中链接的视频。

我不会太担心选择器引擎的性能,因为这主要是转移注意力,除非您正在编写用于网络的 Excel 或其他东西。