Javascript 从jQuery切换到Dojo的缺点

Javascript 从jQuery切换到Dojo的缺点,javascript,jquery,refactoring,dojo,Javascript,Jquery,Refactoring,Dojo,我正在考虑在一些新项目中使用Dojo(或者至少包括它),部分原因是它将(希望)完全删除所有未使用的代码 我会失去什么?(除了熟悉语法之外) (另外,一般来说,任何关于不同之处的提示都可能会有所帮助)我自己使用jQuery,但总而言之,jQuery似乎有更好的文档记录,更容易“开箱即用”。如果您知道自己在做什么,Dojo似乎更容易扩展。我从以下网站获得了这些信息: jQuery 快速 有据可查 易于使用 锁链 与之不同的是,如果您没有明确要求,它不会扩展对象(尝试在原型中循环数组) 易于使用的A

我正在考虑在一些新项目中使用Dojo(或者至少包括它),部分原因是它将(希望)完全删除所有未使用的代码

我会失去什么?(除了熟悉语法之外)


(另外,一般来说,任何关于不同之处的提示都可能会有所帮助)

我自己使用jQuery,但总而言之,jQuery似乎有更好的文档记录,更容易“开箱即用”。如果您知道自己在做什么,Dojo似乎更容易扩展。我从以下网站获得了这些信息:

jQuery

  • 快速
  • 有据可查
  • 易于使用
  • 锁链
  • 与之不同的是,如果您没有明确要求,它不会扩展对象(尝试在原型中循环数组)
  • 易于使用的Ajax(我喜欢$.ajaxSetup()函数)
  • 漂亮的事件处理程序
  • CSS选择器
  • 筛选您的选择
  • 我提到过锁链吗
  • 小(仅30KB)
  • 漂亮的小内置效果
  • 插件
Dojo

作为一名Dojo开发人员,我推荐Dojo。虽然我的选择并不令人惊讶,但我之所以成为一名Dojo开发人员,是因为我发现了以下几点,它们比其他JavaScript框架做得更好:

  • OOP(和其他范例)做得很好
  • Widget基础设施做得很好
  • 使用所有必要的物品正确完成模块:
    • 动态延迟加载模块
    • 可能只提取必要的模块,并建立一个自定义的单文件配置文件
    • 如果需要,异步加载模块
    • 与CDN的简单集成,用于重型web应用程序
  • DojoX中可用模块的绝对宽度,包括图形、图表、网格等
  • 能够在非浏览器环境中使用它
  • 注意小部件中的细节:
    • 支持i18n(包括LTR和RTL语言)
    • 支持l10n(包括标准日期、货币、数字格式)
    • 针对有特殊需要的人的规定(自动高对比度模式、仅支持键盘等)——对普通用户也很有用,对大多数政府合同都是强制性的
  • 社区中的聪明人(最后但并非最不重要的一点)——正如我非常喜欢新手在某个时候手握一样,每个开发人员都会变得“老练”,需要的远不止这些
“社区中的聪明人(最后但并非最不重要)——我非常喜欢新手在某个时候手握,每个开发人员都变得“老练”,需要的远不止这些。
如果您只想编写一行程序并向现有web应用程序添加简单的渐进式增强功能,那么几乎可以使用任何框架,甚至可以使用纯JavaScript。但一旦您的web应用程序变得更大或更复杂,良好的打包、对您喜爱的方法的良好支持、良好的构建块和abi制作您自己的构建块的能力变得越来越重要。这就是为什么我选择Dojo,并且从不回头。”

Dojo的完整源代码版本附带了ShrinkSafe。我不熟悉它与闭包编译器之间的任何性能比较,但我发现dojo的模块管理和打包工具(包括ShrinkSafe)非常有用。

如果我现在需要说些什么,我会说jquery和dojo之间没有什么区别,因为我不同时使用这两种工具。我使用的是纯javascript,我对它做了更深入的研究,我不需要任何库,我创建了自己的框架,我自己的东西更快速、更纯、更容易修复

我会说我讨厌所有的库,因为它让我更加不了解javascript的神奇和它的美丽


我不建议使用任何库,如果需要,在真正了解javascript之后再使用。

jQuery的社区比Dojo社区更大。我想是吧。(例如,在StackOverflow上有69k+jQuery问题,Dojo只有1200个问题。)我不确定我是否理解这里的目的。如果您正在转换以便可以使用Dojo中的功能,那么就太好了。然而,如果你只是因为想要添加编译器选项而进行转换,我看不出有什么意义。。。除非你已经在压缩当前应用程序的最后一个字节。。。节省一些额外的字节将为您的数百万请求节省1000美元……如果有人真的想知道这些事情,只要您使用客户端代码,他们就能够找到答案。压缩javascript代码只会让它变得更难,但决不是不可能。@George,但为什么呢?这将是相当直截了当的人复制你的网站的工作方式,即使不直接撕扯代码。如果您的JavaScript源代码对于盈利至关重要,那么您将面临比保护它更大的问题@乔治贝利:默默无闻的安全不是安全。你的网站是什么?我将在周末之前建立它的克隆。Dojo的社区通常已经从自己的Shrinksafe转移到Close,Shrinksafe是基于Rhino的原始模糊器之一,也许是YUI和Close的灵感来源。闭包确实有更高级的特性。目前,我认为在高级模式下运行closure(使用提示删除死代码等)不适用于OOTB,但有人正在研究它。dojo贡献者列表中有一条关于这一点的线索(哎呀……我看到你已经引用了Stephen的作品)在使用jQuery之前,我已经突破了动画的极限。我很感激任何一个学会手动操作,然后使用框架的人。我想强调的是,有些人应该对框架是如何工作的有一个大致的了解,但我不会说他们应该学会在没有框架的情况下工作。当图书馆为我处理浏览器特性时,我是一个快乐得多的人。