站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题Javascript: 关注JSVM

Javascript: 关注JSVM

摘要: Javascript: 关注JSVM
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible">

JSVM -http://jsvm.homolo.com/default.html

JSVM-介绍

我们在 JSVM1.x 中尝试了一种较传统方式不同的 JavaScript(基于web中的JS) 开发模式。一年多的时间中,得到了大量积极有效的反馈和建议,在这些基础上今天我们正式推出 JSVM2。
JavaScript 一直以来扮演着Web端“小脚本”的角色,开发者用它来在web上制作一些动态特效,? 以及表单提交前对数据的预校验等等,随着客户端处理能力日益提升,DHTML在表示层的动态特征和丰富表现力,以及XmlHttp,XmlDom等HTTP工具的出现, 另外一种应用模式开始引起人们的关注:基于 JavaScript + DHTML + XML + XmlHttp/XmlDom 的 RIA (Rich Internet Application),更确切地说,应称为:RWA (Rich Web Application)。这类应用给用户带来的良好体验远胜于传统 Web 中依赖 Form 提交数据的方式,并且较大程度减小了服务器的负载和网络流量,提高了系统综合性能。后来一个老外提出了 Ajax 这个名词,关于这个概念我不再冗余复述。
如今Ajax Framework 像雨后春笋一般涌现很多,其中不乏优秀之作。但在此并不多作介绍。 因为 JSVM 和他们定位不同,JSVM不仅仅是一个 Ajax 框架,也并非仅仅为了实现 Ajax 而产生。它作为一个更底层更抽象的 JavaScript 框架,为我们实现类似Ajax应用提供了一个基础平台。我曾经拿jsvm1到51js上与许多js爱好者共同讨论,其中有两种比较典型的不同看法是:

  1. JavaScript 需要框架吗,是不是把简单的事情复杂化了? 短小精干才是脚本之道。
  2. 非要借鉴 JAVA 的架构吗?是否有更好的解决方案。

对于第一种意见,我认为某种条件下还是有道理的。例如:我仅仅是想打印一句 Hello, world! 直接 alert()就可以了,何必要弄一个 Framework 出来,岂非劳民伤财,小题大做。 确实,对于一些简单的web应用,js 在整个体系中充当的角色很小,我觉得是可以不用框架的。但对于一个RIA模式的Web应用,尤其是企业级的应用,系统复杂程度和JS代码规模相当庞大的情况下,没有框架带来的后果是可以预见的。对于第二种观点:赞成框架的必要性,但对jsvm一些“模仿”java的做法抱有怀疑态度。我不能说这种看法不对,也许确实有更好API架构。但是,本人认为这个不是关键所在,jsvm提供了对多种语法解析器的支持,有兴趣的人完全可以根据自己喜好在jsvm下开发出另外一套API。类C#,类VB的语法都可以实现。
简单的说,JSVM 根本目的是为了规范浏览器端JavaScript脚本开发,更好的实现代码复用。传统面向过程型的JavaScript开发方式已经明显不能满足大规模软件开发的需要。大部分迹象表明? 随着 RIA 的发展,客户端都将承担更多的逻辑处理工作,企业级应用的代码规模和复杂度都是相当大的。有效的代码组织结构,合理的模块粒度,低耦合高内聚的设计原则等等如何引入到JavaScript的开发上来?相信当你了解 JSVM2 之后,会有一些答案。
作为一个框架,JSVM要解决的问题不是提供某一种应用的解决方案,而是针对各种场景提供广泛的支持。另外一个需要说明的是:jsvm2并不是jsvm1的一个升级版,几乎是在jsvm1上完全重构。且不提供对原jsvm1.x中的类的支持。(当然,原jsvm1.x下的类需要经过做一些小改动即能在jsvm2下正常工作)较jsvm1.x,jsvm2 有了几处明显的变化:

  1. 性能上有了明显的提升。
  2. 每个类文件拥有独立的语法域。
  3. 几种常见的web运行模式在Framework中将直接被支持。
  4. 编译引擎支持多语法解析器,并缺省提供了一个名为"jsvm2"的语法解析器。从语法层面提供了一些OO关键字的支持,使jsvm下的面向对象的javascript开发更为直观和方便。
  5. 具有更灵活的扩展性。二次开发者可以很方便的扩展其功能。

</textarea>
↑返回目录
前一篇: JAVASCRIPT加密解密终级指南
后一篇: 以一个最简单的例子把OO的JavaScript说明白