深入剖析ExtJS 2.2实现及应用连载(2):为什么要学习ExtJS

1 Ext概述

深入剖析EXT 2.2及应用连载  版权所有,谢绝转载  作者:彭仁夔 QQ546711211

Ext以其绚丽的样式吸引了web开发者的眼球,以其丰富的文档和实例诱使开发者投身其中。从YUI-ExtExt2.0这期间吸引了无数的开发者,形成了用户众多,文档丰富的JS框架。同进也奠定了Ext的成功。本章将针对于Ext进行宏观性的概述,使读者对Ext有个整体的认识。

 

本章主要内容:

 

u       认识和如何学习Ext

u       Ext的功能及说明

 

 


1.1 Ajax模式

前二年,Ajax异军突起,web2.0风靡一时。各式各样的Js类库如雨后春笋般涌出。这些框架可以分成两类,一类是以prototypejquery为主的辅助类库。另一类以qooxdooExt为主的Ajax富客户端类库。辅助类库主要为传统的web开发方式提供方便的JS开发。而富客户端类库则是完全采用Javascript来构建客户端的表现效果。 

Ajax是新名词,但不是新技术。它是DOMCSSjavascript,XML等众多成熟技术的集合。然而这个新名词的出现,引起众多的程序开发者关心,在web开发中掀起重重波澜,其主要原因是它在在web开发中扮演了一个全新角色。它改变了web开发模式,推动了web2.0的发展。

传统的web开发模式是一种请求-刷新-响应的模式。即每当用户通过单击按钮或链接向服务器发送请求时,都由服务器接收并处理。处理完毕后服务器将信息发送至浏览器进行显示。在服务器的处理时间里,浏览器是处在loading中,显示空白且处在无响应状态。用户唯一能做的就是等待,导致极差的用户体验。

 在传统的web开发模式中,用户每个请求返回的都是一个显示的页面,即使是交互式的(form)的web设计。其浏览器只是被动地接收并显示页面的工具,它不能决定需要什么,请求什么,仅仅是显示服务器端传输过来的页面。而在很多情况下,请求的操作仅仅是对页面中小部分内容的修改。根本用不上抛弃当前的页面,而重新请求修改之后的新页面。

Ajax开发模式给了浏览器主动权,它可以主动地有选择地向服务器请求它所需要的数据。通过Ajax的模式,开发者可以进行一个页面对应一个完整的应用系统的设计。浏览器在得到服务器的响应之后,它可以根据响应的数据来动态修改页面的局部显示。减少网络传输。加快浏览速度,同时还提高了用户体验,不用再对着空间的loading状态发呆。

按理说Ajax模式是先进的,优秀的。但是在现实的应用中,还是有一些问题,如利于搜索引擎的搜索,用户的习惯改变等方面。于是在应用中出现了两种形式。

一种是Ajax模式和传统的web开发相结合。基本上采用传统的web开发模式,而在需要较好的用户体验的(如交互)时候就采用Ajax模式。日常用得较多的几种有:输入前提示和关连下拉选择,相片的lightBox。这样就没有改变用户形成的习惯,同时也提供了较好的用户体验。一般来讲,这种模式适用于网站开发,它主要是提供客户的浏览信息。且交互不多。

第二种形式是富客户端表现。它不像网站一样主要提供浏览的信息,而是提供给用户强大的交互功能。典型的应用有网络办公系统。这种B/S结构的应用是从C/S结构迁移过来的。用户要求是如C/S一样操作方便且UI富有表现力。在Ajax没有出现之前,Flashapplet就是为了实现这个目标。但是它们还是要客户端上装有flash,java等工具。而Ajax却是轻量级的。只需要浏览器。

现在网页的表现的处理从服务器端转移到客户端上的浏览器上,那么对于浏览器的展现的CSSDOMJavaScript技术就应该受到应有的重视。但是各大厂家的浏览器并不兼容。这就给于开发者一个巨大的难题,难道开发应用系统还要去精通各个浏览器吗?为了解决这个问题,同时又能方便开发者使用javascript,大量的jS框架或类库出现了。

对于ajax模式和传统的web开发相结合的web应用,我们可以通过采用prototypejquery等在简化客户端表现层的开发。那么对富客户端呢? YUI类库采用组件的形式构建网页的小模块。但是它只是一个松散组件集。而我们需要的是如桌面应用开发那样的UI

Dojo看是一个很前途的框架,背后有大公司支持,但是其效率等各方面不敢让人恭维。Qooxdoo是一个完全的类桌面的框架,却没有发展起来。Ext的缔造者Jack Slocum看到这个市场,在YUI基础上进一步的构建,加上绚丽的样式形成了YUI-EXT,吸引了web开发者的眼球,同时它也走上javascript类库的大舞台。

Ext的发展初期,开源社区的高涨的热情的作用,Ext形成丰富的多国语言文档和使用实例,渐渐得到广大开发者的认可。从1.1稳定版本到2.0版本,Ext经历了脱胎换骨过程。把YUI-Ext更名为Ext,把依赖YUI的部分整理形成自己的类库,独立门户。而且在2.0.2之后把之前的开源GPL licence也改成LGPLlicence 不管怎么样,它能这样做,可以看出其推广的成功性。

1.2 为什么要使用Ext

java开发中,选择适合项目的框架是件为难的事情,要从团队开发成员的技术使用和项目的需求等各方面的考量。选择太多,而javascript类库的选择也是面临同样的情形,prototypejquerymootools,YUIdojo等等。

上面是对于开发者在选择框架方面,那么对于学习者,选择学习框架的使用也会面临这种选择。学会流行且好框架能使读者找到更好工作或在技术方面更进一步。

Ext值不值得学习呢,值不值得在项目中选用呢?学习它要花多大的成本呢?每一种框架都有其适用范围,Ext并不是设计成为通用的js框架,它仅仅是为了开发者在开发富客户的B/S应用中提供丰富的UI组件,便于快速开发,提供效率。由此可以看出它并不适合网站的开发,只适合于富客户端的B/S系统的开发应用。

下面我们就Ext的优点做一个简单的说明

u       统一的主题(theme

通过主题,样式能从UI组件中解耦分离出来。对于应用而言,可以根据不同的主题来统一改变风格。解耦的优点就是组件和主题能各自单独开发。使用UI组件时,可以不必关心主题。完成之后根据需求或喜好选择套用主题。Ext提供2套主题模板,开发者在一般情况下,不太需要CSSphotoshop等美工方面的知识就可以开发出绚丽的应用系统。

u       UI与数据解耦

众多java框架都采用MVC模式作为其架构模式。Ext在架构时也借鉴了MVC思想,它把主题与UI组件解耦,把UI组件和数据解耦。在设计UI时候,可以不必考虑各种各样的数据形式,可以采用统一的数据访问接口的形式去访问操作数据。  

u       丰富的UI组件

Ext的主要目的是构建UI组件,并提供给开发者使用。它提供众多功能强大、使用简单方便的UI组。同时在其论坛和例子中也提供了众多的扩展的组件。开发者能很方便利用这些组件来进行开发,同时这些UI组件还有着无与伦比的扩展性,开发者完全可以形成自己的UI组件库。  

u       方便测试与调试

JS调试一直都是个问题。一些浏览器也有着插件来完成调试工作。但是它们在准确度,精度上都或多或少有些问题。Ext采用log的形式提供了开发时调试的使用,在使用Ext调试时就可以跟踪进入Ext类库的内面,分析其运行的状态以及发生错误的原因。  

u       优秀的源码

Ext的源码设计精妙,结构清晰。匠心独用。其源码的文档丰富,是学习JavaScript的最好的教科书。其代码中的拦截思想和编译的实现,我们可以看作是天才之作。如能分析其源码,对于在javaScript的领域中水平能迅速提高。

光是其功能的优秀是不够的,有很多优秀的框架并没有什么人气,那么Ext呢?在选择类库的时候,还得考虑其人气,人气高一是公司招人容易,成本低,二是碰到问题时,在论坛或其它的地方,人家可以早就碰过交解决或很早地帮助解决。

Extjs的官方网站就列出差不多100家的大公司在使用的Ext。其中著名的公司有:

AdobeAIGMicrosoftBorlandCNNSAPSunSonyHPIBM等。国内也有大量的公司在使用Ext。因为很多都是运行在内网中,不便于统计。但是金蝶公司就在它的软件中容入Ext的早期版本。  我们只要进入一个JS的论坛就可以了解Ext的使用情况。很多论坛都是讨论Ext的贴子占绝大多数。

  如果从其功能,人气还不够的话,那么其丰富的文档绝对是可以打动人的。我们下载了Ext的源码包中,其不但是包括了Ext的使用文档。该使用文档对Ext的每个功能,每个属性,每个事件都进行了一清二楚地说明。更让我叫妙的它还提供了日常开发的经常使用的例子。很多时间只要通过对其例子进行改写,一个不懂JS的人都可以完成非常备强大的功能出来。

深入剖析EXT 2.2及应用连载  版权所有,谢绝转载  作者:彭仁夔 QQ546711211

转载于:https://www.cnblogs.com/jxnuprk/archive/2008/12/07/1349640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值