javascript:关注jsvm-java基础

来源:互联网 发布:mac 安装xcode 编辑:程序博客网 时间:2024/04/26 04:22

  介绍 

  我们在 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爱好者共同讨论,其中有两种比较典型的不同看法是: 

  javascript 需要框架吗,是不是把简单的事情复杂化了? 短小精干才是脚本之道。非要借鉴 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 有了几处明显的变化性能上有了明显的提升。
 
  每个类文件拥有独立的语法域。 

  几种常见的web运行模式在framework中将直接被支持。 

  编译引擎支持多语法解析器,并缺省提供了一个名为"jsvm2"的语法解析器。从语法层面提供了一些oo关键字的支持,使jsvm下的面向对象的javascript开发更为直观和方便。 

  具有更灵活的扩展性。二次开发者可以很方便的扩展其功能。

原创粉丝点击