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!的Livestand、Fantasy Finance和Fantasy Premier League Football。

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