`

Ext JS 4的性能与学习之我见——《Ext JS权威指南》后记

 
阅读更多

《Ext JS 权威指南》终于出版了,心情相当激动,这书可谓是好事多磨,前前后后花了1年多的时间。原来计划是在2011年年底与读者见面的,当时4.0正式版已出,正是需要参考书的时候。但是一个性能问题,让Sencha作出了一个艰难的决定,重构架构,于是就在无奈中等待着4.1版本的出现,然后根据4.1的源代码将书修改了一遍,现在终于可以出版了,心情难免有点过于激动。

Ext JS 4最大的改动是架构上的改变,而这架构的变动主要是规范类的定义与创建,从而使类更符合规范,也让用户扩展起来更便利了。从笔者的使用感受来说,Ext JS 4的新架构确实很优秀,不但更易于理解,而且条理更清晰、易于使用。但这新架构唯一的缺点就是影响性能,类的创建过程因为太过于规范,因而其生成过程必然会导致性能上的损失,就算每个类的创建过程多0.02秒,200多个类,那就是4秒时间的性能损失了,这对于新的经过进一步优化的JavaScript引擎来说,是一点难度没有,但是对于IE 6或IE 7这样的古董级引擎来说,慢是没有办法的。就因为这个原因,Sencha还是决定重新架构Ext JS 4的渲染引擎,从而改善其性能,因而就有了别于4.07的4.1版本,与4.0.x版本最大的区别就是渲染引擎的不同,为了优化渲染引擎,最大的变化就是使用批量渲染,而这也促成了常用的BorderLayout布局的改变,而这一改变,让Ext JS 4在使用上更灵活、更方便了。应该说,这样的修改是相当值得的。

对于性能,笔者的看法是,随着计算机硬件和系统的升级,必然带来浏览器的升级换代,在古董级的浏览器中的表现,基本可以忽略,但是性能的改善,还是应该改善的。对于客户来说,要摒弃的只是使用习惯上的改变,但是这是可以引导的,就比如一个刚使用电脑的普通用户,如果你给他的是一台Linux,没关系的,他只要能实现自己的目的,可以浏览网页和玩游戏就行了。Windows的发展历程正好证明了用户是可塑的,并不是死板一块,最典型的例子就是随着Windows 98升级为XP,古董级的IE 4已经销声匿迹了。而随着新一轮操作系统的升级和微软的推动,古董级的IE 6和IE 7估计也会很快消失的。因而,老纠结于在这些古董级浏览器的性能,而止步不前,对项目来说,开发人员来说,是无益的,因为Ext JS 4对于Ext JS 3来说,在架构上,规范化项目上,项目的可持续扩展来说,确实是非常优势,而且优势是相当明显的。真正好的项目,在于其功能是否满足用户的需要,符合用户的需求,对于更换浏览器这类小问题,客户是不会太在意的,如果客户很在意,笔者认为是你的项目还没有足够吸引人的地方。

对于Javascript框架,笔者有个习惯,就是喜欢研究一下它的源代码,这样,不但可以深入了解框架,从而加深其理解,在使用上带来便利,更重要的是可以从中学到编写Javascript代码好的习惯,提高自己的Javascript的水平。毕竟,一个框架,是一个团队或作者的心血结晶,在不断的升级过程中,团队中的成员或作者本身也在不断的进步与提高,因而,在框架的源代码中,可以看到团队或作者的好习惯,已经高水平的代码,对自身的提高来说,是不可多得的学习范本。不过,研究源代码,不能照本宣科,从头到尾的看,那太费时间和精力了,如Ext JS框架,其源代码(ext-all-debug.js文件)有11万行,要一行行的把代码看完,并理解其机制,那是相当大的工程,也很费时间。因而,看源代码,要抓住其要点、重点,有选择的看。Javascript语言的特点就是,它最终的目的就是修改HTML标记的样式,在HTML标记内添加HTML代码,并为HTML标签绑定事件,实现交互。因而,看Javascript源代码,重点就是它是如何生成HTML代码,如何修改HTML标记,如何为HTML标记绑定事件,以实现交互。这样,就可做到有的放矢,在有限的时间内学到更多的知识。因而,对于Ext JS这样框架,研究其源代码,重点要掌握的就是其渲染引擎、事件机制。有了这样的明确思路,才能更好对其进行分析研究,并在使用中做到随心所欲。而这,也正是笔者在《Ext JS权威指南》一书中想与大家分享与探讨的东西。

学习一门语言或框架,除了看书之外,最好的办法就是看示例,这样起码可以做到,不会做来也会抄。不过抄,也不是真的照抄,而是根据自己的需要对其进行改造,而这离不开对该语言或框架整体的理解与认识。因而,看示例,不单要看它怎么写,还要问为什么要这样写,然后自己去求证一下,不这样写,会怎样,而这,就需要自己动手去试。而这,是学习必不可少的过程,因为,笔者就是这么过来的。想当初,笔者初接触Ext JS,无资料,无文档,完全是靠分析示例和看API文档走过来的,而这,更多的是要敢于去实践,去验证。当然,这与自身的知识结构有很大的关系,而这,就得多看书,多掌握不同方面的知识。还有一个很重要的东西,就是好的的工具,如Firebug。笔者也是从使用Ext JS后,才开始接触和使用Firebug的,而在不断的学习与使用中,逐步加深对它的了解,所谓熟能生巧,关键还是要去用。在书中,对于Firebug,囿于篇幅,只能浅尝即止,如果真要深入,那估计可以写另外一本叫Firebug调试的书了。因而,书只是带你入门,能到什么程度,还得靠自己去实践。

以上是笔者对《Ext JS权威指南》一书的一点小小总结,但囿于篇幅与笔者水平,书中难免有错漏与不当的地方,敬请大家见谅,也希望大家能从中有所收益。


分享到:
评论

相关推荐

    Ext Js权威指南5

    Ext Js权威指南Ext Js权威指南 分5卷 不错的学习ExtJs的书籍

    JavaScript凌厉开发——Ext JS3详解与实践

    JavaScript凌厉开发——Ext JS3详解与实践JavaScript凌厉开发——Ext JS3详解与实践

    Ext JS权威指南

    Ext JS权威指南

    Ext Js权威指南

    共3个PDF压缩文件,Ext Js权威指南非常详细

    Ext Js权威指南3

    Ext Js权威指南 分5卷 不错的学习ExtJs的书籍

    Ext Js权威指南完整版4

    《Ext JS权威指南》有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对...

    Ext Js权威指南(jb51.net)2

    Ext Js权威指南503-1004页

    Ext Js权威指南完整版5

    《Ext JS权威指南》有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对...

    Ext JS 权威指南.PDF 附带源代码

    Ext JS 权威指南.PDF 附带源代码 ,基于ExtJs 4.x版本,书签方便学习阅读,附带源代码方便学习调试。

    JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3

    JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3 因为源代码比较大,压缩后76M左右 所以分为四个包上传

    [ExtJS] Ext JS 4 学习指南 (英文版)

    [Packt Publishing] Ext JS 4 学习指南 (英文版) [Packt Publishing] Learning Ext JS 4 (E-Book) ☆ 出版信息:☆ [作者信息] Crysfel Villa, Armando Gonzalez [出版机构] Packt Publishing [出版日期] 2013...

    Ext Js权威指南4

    Ext Js权威指南 分5卷 不错的学习ExtJs的书籍

    Ext Js权威指南完整版1

    《Ext JS权威指南》有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对...

    Ext Js权威指南完整版3

    《Ext JS权威指南》有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对...

    Ext Js权威指南完整版2

    《Ext JS权威指南》有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对...

    Ext JS 权威指南

    本书有两大特点:第一,授人以鱼,根据ext js的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对ext js的整体...

    Ext Js4 权威指南

    完整版共3个PDF文件,Ext Js4 权威指南非常详细

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

Global site tag (gtag.js) - Google Analytics