admin管理员组

文章数量:1532656

2024年7月11日发(作者:)

第一章 起步

在这章里,我们将介绍ExtJS的基本功能。如果你对web开发熟悉的话,您会

惊诧于ExtJS框架的优雅!不同其他的JavaScript库,ExtJS为您的开发夯实了基础,只

需几行代码,你就可以制作出丰富的用户界面。

本章包括:

1. ExtJS的功能和您将会喜爱上它的原因;

2. 如何获得Ext并在web应用中采用它;

3. 采用”适配器(adapters)“使得Ext和其他的JavaScript库共存;

4. 充分利用AJAX技术;

5. 在您的语言中展示ExtJS对象;

关于Ext:

我们采用最新的的Ext 2.x版本,1.x版本到2.x版本的是一个重组的过程,包括

添加新的组件、重命名组件用来重新组织结构等等。这使得1.x和2.x兼容性很低。3.x

版 本则不然,他对2.x有很强的兼容性,可以很好的联合本书中所设计的内容。Ext的

开发组决定在日后的版本发布中都做到向前兼容。

Ext库是对雅虎YUI的一个拓展,提供了它所不支持的特性:良好的API,真实

的控件。虽然YUI致力于用户界面,但是它却没有提供许多有用的功能。

Ext的产生源自于开发者、开源贡献者们将YUI扩展成一个强大的客户端应用程

序库的努力。

Ext提供了一个简单丰富的用户界面,如同桌面程序一般。这使得开发者能够

把精力更多的转移到实现应用的功能上。Ext官网上的示例会让你知道它是如何的不可

思议:/deploy/dev/examples/。

其中最引人注目的一个例子就是Feed Viewer,它展示了r提供的多

种特性,对于学习来说它可能太复杂了,所以现在只需你感受它带给你的精彩。

另外一个精彩的例子就是Simple Task任务跟踪程序,它加载了Google Gears的

数据库。

Ext: 不仅仅是另一个JS库:

Ext不仅仅是另一个JS库,实际上它可以通过适配器(adapter)和其它JS库一

起工作。我们将在本章的稍后来介绍适配器。

通常来说,我们使用Ext的目的是满足高层次的用户交互——要比我们传统概

念上的站点交互性更强。一个采用了工作流和任务管理的网站就是一个很好的示例,

否则Ext只能带给您的上司惊奇的喘息。

Ext让通过如下的方式来让web应用的开发变的十分简单:

 提供简单的,跨浏览器的控件,如:窗口、表格、表单。这些组件都是能

够适应市场上的主流浏览器的。我们不需要做任何改动。

 用户是通过EventManager来和浏览器做交互的,相应的事件有:用户的键

盘输入,鼠标击打,浏览器监听(窗口改变大小,改变字体)等等;

 在和用户交互时不需要刷新页面,一切在后台进行。它允许你从服务器通

过AJAX来获取或者提交数据并且在第一时间执行你的反馈。

跨浏览器DOM:

我确定不需要在解释浏览器兼容带来的问题了。一个有着自定义样式的

不同的浏览器的显示是不同的。但当我们使用Ext的控件时,Ext库会很好地控制这种

浏览器的兼容性,所以在不同浏览器中控件的显示是几乎相同的。这些浏览器包括:

Internet Explorer 6+

Firefox 1.5+ (PC, Mac)

Safari 2+

Opera 9+ (PC, Mac)

事件驱动接口:

事件是用来描述某种动作的发生。一个事件可以是用户的动作,例如单击某个

元素或者对AJAX请求的相应。当用户对一个按钮进行操作的时候,会产生很多而不是

一个事件,包括:鼠标指向按钮,点击按钮和离开按钮。我们可以添加监听器

(listener)来监听这些事件,并调用相应代码采取相应。

对事件的监听并不完全依靠用户界面,系统事件随时随刻发生,当你发起AJAX

请求,和AJAX状态相关的事件也就产生了,它们是:开始,完成和失败等等。

Ext和AJAX:

AJAX用来描述同服务器的异步交互,你可以在同服务器交互的同时来进行其他

的任务。一个用户可以在加载一个表格数据的同时填写自己的表单——它们并行不悖,

不用等待页面的刷新。

获得Ext:

所有你所需的东西都可以从Ext官网上获得:

/download。下载

包含大量示例和API的Ext SDK, 它最重要的功能是带给你使Ext正确运行的资源。

如何安置Ext:

当你获得SDK文件,把它解压到你的硬盘上,最好放在你自己的文件夹中。我

访问文件的方式是按照linux规则来的,为了很好地运行本书示例,我把所有文件解压

到命名为lib的文件夹中。

当一切处理好后,你的目录结构应该如下所示:

为了使Ext容易升级到最新版本,我把解压后的文件夹ext-2.0.1重新命名为

extjs。

SDK里有一个包含所以Ext的JS代码的文件,名字为ext-all。它还有一个可供

调试代码的副本,由于进行了代码的格式化和反混淆等操作,该文件可以您准确定位

到错误的行数和具体位置。开发时您可以使用ext-all-debug,发布时转换为ext-all,一

切就是这么的简单以及过度自然。

在SDK中包含着依赖说明、文档、示例等内容。adapter和resources是Ext工

作所必须的,其他资源则是为开发准备的。

adapter:包含能够使其他库和Ext共用的文件;

build:可以自定义的文件;

docs:文档中心(必须在服务器上查看);

examples:大量精彩深刻的示例;

resources:Ext运行的各种资源(如CSS和图片等);

 source:Ext完全而详细的源代码。

在创建站点主目录后,您需要上传adapter和resources文件夹。

在页面中引入:

在我们使用Ext之前,需要引入Ext库文件。在HEAD标签加入SDK中提供的几

个文件,如下所示:

Getting Started Example

href="lib/extjs/resources/css/" />

到Ext的路径一定要保证正确,和你的HTML文件的相对路径关系一定要调整

好。这些文件需要按照如下的顺序引入:

:Ext依赖的全部CSS;

其他的js库(参阅本章”适配器“一节);

:Ext的”adapter“——我们将在后面学习;

或者:主要的Ext库文件;

 主题文件(CSS)在此引入,或者在引入玩Ext的CSS文件后任何位置引入。

这些文件是用来干什么的:

我们需要添加一下三个文件:

 :这是一个样式表文件,用来控制组件的显示。改文件不需要进

行修改,任何改动将影响日后的升级。如果真的想改动样式的话,可以在

引入该样式文件后再做覆盖。

 :这个文件提供了Ext的核心功能。如果Ext是一部车,它就是

车的引擎。这个文件我们可以修改以用来采用其他的库,如jQuery,让它

和Ext共存。

 /:所有的组件都蕴含在这个文件里面。前者用来调试

开发,后者在发布的时候采用。

当这些文件都准备好后,我们就可以真正开始享受Ext带给我们的快乐。

N:如果你在同时使用后台语言(如PHP、等),你可以选择动态的加

载这些行。对于本书中的大部分示例来讲,我们假定其运行在静态HTML页面中。

使用Ext库:

现在我们在页面中加入了Ext库,我们可以在页面中添加Ext代码了。在第一

个例子中,我们使用Ext来显示消息对话框。可能满足不了您的胃口,但是这只是个

开始。

动作的时间:

我们可以通过在文件的头部添加script段来加入Ext代码,当然得添加到Ext文

件引入之后。我们的例子会弹出一个Ext风格的警告对话框:

Getting Started Example

href="lib/extjs/resources/css/" />

我们现在先不详细解释脚本。首先,我们要确定Ext库被成功的引用。当我们

打开页面,我们应该能看到这样的警告消息:

如同一个真的对话框一样,你可以任意拖拽它,但只局限有浏览器中,因为它

并不是一个真正的对话框,只是如同罢了。它是有很多

堆砌而成,你可以看到

Close和Ok按钮在鼠标移近时高亮显示——一切只不过是一句话的事情。Ext为您搞定

了一切,我们来看看如何能做的更多。

N:你可能已经发现我们的文档的body中没有任何元素。Ext实现其功能不需

要事先存在的标记,它只是按照需要来产生一切内容。

这个示例:

我们来研究下代码。Ext组件需要以“Ext”开头并且经常要包含onReady函数,

这个我们将在下章做详细介绍。

y(function(){

});

Ext包含很多易懂的接口,大部分只是一句话,当准备好Ext后,它可以展示一

个警告窗口,让Hello作为标题,让World作为主体。

我们的消息窗口源自于,它是所有消息窗体的前缀,是“MessageBox”

的简称。alert部分告诉我们消息窗口的类型。

('Hello', 'World');

不工作了?

当库未准备好时,我们会接收到一个'Ext' is undefined的错误。

这个消息代表Ext并没有被加载。可能是一个或者多个文件的引用路径不对,

复核一下路径让他们指定到已存在的文件。如果一切都正常的话,你应该可以看到

adapter文件夹和以及ext-all-bug在lib/extjs文件夹下。

另外一个常见的问题是,CSS文件的丢失或者不正常的引用。这样的话,显示会不

正常,如下:

如果发生这样的状况,请检查你是否从SDK中获得了CSS文件,以及路径是否

正确。resources文件夹需要在lib/extjs文件夹下。

适配器(Adapters):

Ext开发之初,需要YUI库来做“幕后”的工作。随后,Ext采用了2个新的框

架——jQuery和scriptaculous(Protaculous)。

这意味着当你已经采用了其他的库或者其他的库可以刚好地满足你的需求是,

我们可以使用适配器来连接这一切。Ext还可以保证它的功能,组件还如之前一样,不

论你选择何种适配器。

Ext也有它自己的适配器,如果你对其他的库或者框架没有偏爱的话,就用Ext

的内建适配器吧。

使用适配器:

为了使用适配器,你需要先引入扩展的库,再加入Ext SDK中相关的适配器文

件。我们的示例用的是Ext适配器。如果使用其他库,只要把Ext默认的适配器引入脚

本行置换为新的库,如下所示:

对于jQuery,引入如下文件:

对于YUI,把如下文件加入head:

对于“Prototype + Scriptaculous”:

在引入适配器和基本库之后,我们只需在引入或者文

件。

我是异步的!

web1.0代码的运行点是建立在完成的基础上的——一直等到每一行代码都执行

完全后再进行下一个任务。如同建造一个房子一样,必须在砌墙前打地基,之后才能

盖房顶。

在Ext中我们可以先盖房顶后打地基。想象一下,房顶正在工厂中制造,而地

基此时正在夯实,接下来是筑墙。当一切就绪后,房顶会立刻安置在墙的上方。

这里的介绍我们事先可能没有接触过,也没必要弄得很清楚,像房顶在墙筑好

前建造完。我们不需要再一行一行地进行web开发了。

Ext给我们提供了事件和句柄来实现功能。我们可以设计事件来监视墙何时能

建好,这样我们就可以第一时间安上房顶。这种思想可能让很多web开发者难以接收,

但是您一定会很快掌握的。

N:传统的JS警告框会阻止代码的执行,将带来不可预期的结果。你不可以采

用传统的警告框,这样可以让显示MessageBox的同时不产生暂停。

地方化:

Ext可以在按照您的语言来查看,现在有40种翻译(遗憾的是,克林贡文不在

其内)。所有的翻译来自用户的贡献——我们需要在自己的母语中使用Ext。所以我们

可以选择自己语言的版本,并把它拷贝到lib文件夹下。通过复制语言文件到lib文件

夹,我们可以编辑它并添加翻译到其中,但要保证在升级时不要覆盖了它。

有三种地方化的方案,对应三种不同的方法:

 只有英语

 非英语的单一语种

 多语言

只有英语:

这种方案不需要做任何改动,也不需要添加任何文件,因为英语的翻译已经存在于

文件当中了。

一种非英语语言:

第二种方案需要从build/locale文件夹中引入一个语言文件。是通过重写英语文

本来实现此方案的,所以,它需要在其他所有的库文件引入后才能引入,如下所示:

在此例中我已经加入了西班牙语的翻译,我们来看看效果:

部分UI界面被本地化了——大概包括日历文本、错误信息、tooltip信息,分页

信息以及加载指示。在你的程序中指定的信息,如Hi标题以及Hello World Example文

本则可以对其进行翻译并加到文件中(“XX”是你语言的缩写)或者添

加到一个你自定义的语言文件中。推荐的方式是建立一个你自己的语言文件来用来记

录改动和增加的内容。这样可以使方便我们准备升级以及修复主要的语言文件。

多语言:

第三种方案是对第二种方案的一点点改动。我们只需要添加一些服务端脚本来

使得页面可以在语言之间切换。遗憾的是,语言间的切换并不是完全动态的,换句话

说,我们不可能第一时间感受到改动在屏幕上的显示效果。

Ext在线社区:

Ext在线社区云集了一大批高手,Ext开发者也会经常性在论坛上回复大家的问

题:

/forum/

如果你遇到了困难,可以在论坛上搜索你需要的回答。我建议你使用在Learn

板块中Google论坛搜索工具,该板块位于:

/learn/

H:在论坛提问之前,您最好附上详细的错误信息,以及错误代码和消息。这

是 您获得良好反馈的关键所在。

总结:

在这章里,我们们介绍了如何正常运行Ext的基础知识以及简单的脚本。我们经

常会因为落下了一些细节从而导致在某些错误上浪费宝贵的时间。但是现在你应该准

备好了去克服将要出现的错误。

本章的示例让我们看到了Ext的核心所在:提供用户界面。我们只使用了一个对

话框,但是,如你所见,展现Ext组件只需要简单的几行代码。这章的主要目的在于让

您知道如何获得并安装Ext使其工作。所以,我们可以开始亲手做一些真正精彩的控件。

本文标签: 文件需要引入语言

更多相关文章

xp系统

移动硬盘损坏:文件或目录已损坏(修复实录)

11小时前

一、问题描述 移动硬盘读取过程中损坏,提示 “文件或目录已损坏且无法读取” (windows下) 解决方法在第三部分 二、事情起因 我在工作站上往移动硬盘里备份一个73G数

苹果电脑怎么删除移动硬盘里的文件,苹果电脑无法删除移动硬盘文件

11小时前

苹果电脑怎么删除移动硬盘里的文件?也不能进行复制、编辑、移动等操作,只能够打开文件进行查阅,是因为移动硬盘是NTFS格式的,这种格式在Mac电脑上只允许

计算机D盘无法读取,D盘目录或文件被损坏且无法读取的愿意以及解决办法

11小时前

在硬盘上出现"文件或目录损坏且无法读取"问题,首先不要想到格式化那个分区,因为代价太高,并且要备份文件,太麻烦了. 故障现象 不管是移动硬盘还是优盘,包括本地电脑上的硬盘分区,

从移动硬盘恢复已删除的文件的6个有效方法分享

10小时前

移动硬盘驱动器提供了一种扩展计算机存储能力或与其他用户共享数据的好方法。它们与任何其他类型的基于磁盘的存储介质一样容易丢失数据。 如果您大量使用便携式驱动器,那么有时您可能需要执行移动硬盘驱动器数据恢复。当遇到丢失或

苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘

10小时前

如果我们使用的是Mac电脑,刚好需要将一些文件从Mac复制到NTFS外置硬盘,那么,苹果电脑的文件怎么复制到移动硬盘? 一、如何将文件从Mac电脑上复制

mac电脑里的文件如何复制到移动硬盘里面教程

10小时前

相信很多Mac用户都遇到过Mac里的文件无法复制到移动硬盘的情况,可能是因为Mac的系统文件格式和Windows是不兼容造成的,其次还有可能是因为复制的文件超过了4GB,恰巧

解决OS X移动硬盘中文件呈灰白色且无法读取的问题

10小时前

初用Mac电脑的人总会遇到这样或那样的问题。其中一个就是读写移动硬盘。Windows下的文件系统NTFS在OS X下是不能使用的!通常,如果你移动硬盘的文件系统是NTFS,那么你只能读文件,却不能写文件。 要想让你的Mac电脑能够自

win7计算机桌面文件位置更改,Win7小技巧:更改用户文件夹位置方法汇总

9小时前

Win7之家( www.win7china):Win7小技巧:更改用户文件夹位置方法汇总 相信很多人都在感慨“C盘空间怎么越来越小”,作为系统盘,其实很

程序设计综合实践——京东管理系统(C语言实现)

9小时前

废话不多说直接上代码&#xff01; #include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>

LLMs之Lamini-1:《Banishing LLM Hallucinations Requires Rethinking Generalization消除大型语言模型幻觉需要重新思考》翻译与解读

9小时前

LLMs之Lamini-1&#xff1a;《Banishing LLM Hallucinations Requires Rethinking Generalization消除大型语言模型幻觉需要重新思考泛化问题》翻译与解读 导读&a

挂载iso文件_如何在Windows XP,7、8、10和Server中挂载ISO文件和图像?

8小时前

挂载iso文件 ISO files are used to store multiple files and folders into a single structured file system named ISO or iso-966

SACD ISO镜像中提取DSDIFF(DFF)、DSF文件

7小时前

听语音|浏览:5620|更新:2015-08-25 11:46|标签:硬件 1 2 3

虚拟光驱下载安装和使用,Windows系统如何直接打开iso文件

7小时前

window10的文件管理器已经可以直接打开.iso文件&#xff0c;无需另外安装虚拟光驱软件&#xff0c;低版本的Window系统可以通过下载本文介绍的Daemon Tools Lite来实现直接打开iso镜像文件。

如何打开iso文件

7小时前

iso文件用什么打开? iso文件用什么打开①使用光驱可以打开iso文件 iso文件是一种光盘(CD)上的系统文件格式&#xff0c;因此我们只需要将iso文件写入到光盘当中&#xff0c;然后用光驱打开光盘即可安

探索技术深处,ChatGPT带你解析Go语言源码——explain-source-code-by-chatgpt

5小时前

探索技术深处&#xff0c;ChatGPT带你解析Go语言源码——explain-source-code-by-chatgpt 1. 项目介绍 explain-source-code-by-chatgpt 是一个独特的开源项目&

计算机还原桌面的文件会不会丢失,在用系统还原后会丢失文件吗?谢谢

3小时前

2006-10-03 系统还原还原的是什么内容,什么样的情况需要系统还原,系统还原后哪部分内容会丢失,尽量讲详细点,谢谢~ 系统还原是一个类似于还原精灵的系统关键信息恢复工具&#xff0c;其实早在WinMe时代&#xff0

windows,mysql导入还原数据命令,恢复sql文件数据方法

3小时前

1、打开CMD命令输入框&#xff0c;输入&#xff1a;mysql -u root -p&#xff0c;然后回车 2、输入数据库密码 3、选择需要操作的数据库&#xff1a;use 数据库 4、然后使用s

点计算机管理 显示文件缺失,电脑开机显示文件丢失怎么回事

1小时前

电脑在日常生活当中扮演着非常重要的角色&#xff0c;那么大家知道电脑开机显示文件丢失是怎么回事,应该如何解决吗?今天学习啦小编就和大家说说电脑开机显示文件丢失的解决方法。 电脑开机显示文件丢失解决方法一 电脑开机后黑屏&#

计算机开机 桌面文件丢失,“XP系统启动后,桌面个人文件夹丢失的解决方案”的解决方案...

1小时前

解决方案&#xff1a; 此方案适用于桌面看不到用户创建的文档和个人文件&#xff0c;但是在 “C:\Documents and Settings用户名桌面(C为系统所在分区)”中可以看到用户的文件。如果在此文件夹中也没

计算机中的没有文件怎么处理方法,电脑重启后桌面上文件没有了怎么办

59分钟前

电脑上每次开机都发现电脑桌面文件或者图标好像不见&#xff0c;感觉中病毒了&#xff0c;怎么才能解决?学习啦小编为大家整理的电脑重启后桌面上文件没有了的相关资料&#xff0c;希望能帮助到大家! 电脑重启后桌面上

发表评论

全部评论 0
暂无评论