Yahoo!开源 Mojito,一款承诺“编写一次,到处运行”的 JavaScript 框架

  • Abel Avram
  • 吴宇

2012 年 4 月 4 日

话题:Web框架开源JavaScript移动语言 & 开发

Yahoo!开源其Mojito——一款用来创建可重用微件(widget)的框架,能在各种 web 应用中使用,且无需修改代码就能在客户端或服务器端运行。

Yahoo!似乎很热衷于开源。继不久前刚开源了YSlow,Yahoo!已决定再对Mojito开源,这是一款用于构建 MVC web 应用的 JavaScript web 框架。Mojito 是Yahoo! Cocktails的一部分,这款 JavaScript 平台,它所开发的 web 应用代码能够运行在多种设备——如 PC 机、平板电脑、智能手机等——无需考虑每种设备的外观因素去修改代码。Yahoo! Cocktails 另一个主要的组成部分是 Manhattan,一款支持在云中运行 Mojito 应用的服务器端 JavaScript 环境。此平台环境构建在YUI(Yahoo!用户界面)类库之上,而 YUI 类库又是另一款开源框架,它提供了一些通用的 API,能够跨所有主流浏览器和设备(包括服务器端环境)运行 web 应用。

Yahoo! Cocktails 旨在为由可重用组件创建的 web 应用提供支持,这些组件可以在各种设备上显示,并且能在浏览器端或服务器端运行。该平台仅仅使用 HTML5、JavaScript 和 CSS。

Mojito 是以展现为中心的框架。其基本元素是Mojit——一种 Mojito 微件,或者说是一种能够作为不同 web 应用的一部分来部署的 MVC 组件。在创建以 Mojito 为基础的应用时,开发者可以一起使用其他开发者开发的微件。这种应用的一个例子是Yahoo! OMG,其页面上的每一个组件都是这样一种微件。在客户端呈现之前,微件被用来展现所需的界面外观(look and feel)。我们甚至可以展望将来会出现一个专门针对这种微件的市场。

Mojito 的基本特性之一是设备无关性。Mojits 能够在任何桌面或移动设备上使用一款主流浏览器展示,而其控制代码可以在客户端或基于 Node.js 之上的服务器端运行。这样的话,开发者就无需针对不同的客户端和服务器开发单独的代码,同一套代码在两端都可以使用。

Yahoo!想要进一步增强 Mojito,引入这样一种机制——能够按需透明地在客户端和服务器端切换代码执行。比如,如果在某个设备上执行某个处理太慢,代码将被发送到服务器端执行而无需由开发者指定或引入应用的用户界面。

Mojito 运行在被用于依赖管理的 YUI3 之上,但 Mojito 并不和 YUI3 捆绑,它可以运行在 jQuery 或 DOJO 之上。选择 YUI3 是因为其可以运行在任何主流浏览器以及 Node.js 之上。

Mojito 目前被用于 Yahoo!的LivestandFantasy FinanceFantasy Premier League Football

你可以在遵循 BSD许可下在 GitHub 上得到 Mojito源码。而Mojito:双运行时纪事这篇演讲更详细地解释了 Mojito 微件是如何被创建和执行的。

查看英文原文:Yahoo! Open Sources Mojito, a JavaScript Framework Promising Write Once, Run Anywhere

Web框架开源JavaScript移动语言 & 开发