选择一个JS框架(从Mootools切换到Closure或Dojo)

Choosing a JS framework (switch from Mootools to Closure or Dojo)

本文关键字:Closure Mootools Dojo 框架 一个 JS 选择      更新时间:2023-09-26

我正在进行的项目是一个非常特定类型的b2b网站的"框架"。目前,我在iOS和PC上几乎可以使用任何浏览器。它为不同的平台提供了不同的布局和代码,一切都很好,但我遇到的是一个维护问题:我有用于UI对象、布局(因此在iPhone和PC上以全高清分辨率运行都没有问题)、ajax数据等的JS模块。有些模块是通用的,有些模块依赖于平台,我想将它们"编译"成几个包,类似于:

  • iOS
  • 任何带有Flash 10(甚至IE6)的浏览器
  • PC/Mac上的IE9-Opera12-FF5-Safari(令我惊讶的是,Chrome缺少一些功能)
  • 故障保护配置(无Flash或JS)
  • Android/WP7/Bada(还没有,但将在两个月后准备好)

所有内容都是使用Mootools编写的。90%的is代码是唯一的,因为我想使用的几乎任何库都无法在iOS或IE 6-8上工作。

问题是Mootools不能很好地与Closue编译器配合使用。我现在使用的是gnu make+谷歌闭包编译器+doxygen,然后它得到了rpm并部署在服务器上。它是有效的,但我仍然无法让闭包编译器在高级级别上工作(因为我定义需要mootools的Class模块)。另一个问题是,我必须自己合并js和css文件(订单是在makefile中硬编码的)。

问题是,我应该选择什么:

  • 是否值得尝试根据闭包库重写所有代码,以使闭包编译器正常工作(因此,我将进行缩小、某种模糊处理,并最终将我的脚本合并为一个脚本)
  • 继续使用Mootools,并在编译时尝试使用require.js+Rhino,例如ACE(Cloud9)Editor
  • 选择Dojo,但我对它一无所知,关于条件编译、缩小和模糊处理
  • 您了解的其他工具链

我最后想提的是,我想得到一个abstract数据模型,类似于ExtJs中的数据包。但我只需要"MVC"中的"M",没有更多。

我对我的后端很满意,任何服务器端支持对我来说都不是优势。

提前Thx。

另一个选项:您可以在没有高级模式的情况下使用闭包,并且仍然可以获得很多好处。Dojo就是这样做OOTB的。让闭包在高级模式下工作对于任何库以及您自己的代码来说都是一件棘手的事情。Dojo有一个工具链,它将处理大量的缩小/模糊处理/连接等。——我不知道工具链与mootools相比如何,但我认为在mootools中优化代码也是可能的,即使你必须编写脚本或使用其他工具。仅仅为了实现这一点而更改工具包是没有意义的。你可能需要重写很多代码。因为需要新功能而更改/利用工具包是另一回事,尽管您应该能够组合工具包。包括Dojo在内的许多工具包都有MVC抽象——也许mootools也有。