【ExtJS 4.x学习教程】(0)简介
来源:互联网 发布:手游数据分析 编辑:程序博客网 时间:2024/06/16 00:54
Email:zhoubangtao@gmail.com
转载请注明出处: http://blog.csdn.net/zhoubangtao/article/details/26577735
1. 简介
Ext JS是一款由Javascript写的开发Web前端用户界面的Ajax框架,它可以用来开发RIA(富客户端)的AJAX应用,ExtJS最初基于YUI(Yahoo! UI)技术,由开发人员Jack Slocum开发,通过参考Java Swing等机制来组织可视化组件,为开发者屏蔽了大量跨浏览器方面的处理,让开发人员可以像开发桌面程序一样开发出复杂的用户界面!比起直接采用DOM开发UI组件轻松很多。ExtJS的发展经历了多个版本,2011年4月22日4.0版本发布,我这里主要研究的就是4.x版本。
2. ExtJS开发入门
这里主要讲述Ext JS 4 开发的环境需要,项目结构等。
2.1 环境要求
2.1.1 浏览器要求
Ext JS 4 支持所有的主流浏览器,从IE6到最新的Google Chrome版本,但是在开发阶段,为了便于调试,推荐使用以下浏览器:
1. Google Chrome 10+
2. Apple Safari 5+
3. Mozilla FirFox 4+(使用FireBug插件)
2.1.2 Web服务器要求
使用ExtJS 4时,其实并不需要Web服务器,但是由于本地的file://协议在大部分浏览器上有跨域问题,所以还是推荐你安装一款Web服务器进行开发,你可以任选一款你喜欢的开发用Web服务器,如Apache HTTP Server,Nginx,Tomcat,Resin
附:如果你只为了查看ExtJS 4的API文档,可以采用任意一款浏览器,打开index.html即可,但是部分例子使用PHP获取数据,所以这些例子会运行不正常,不过不影响
2.1.3 Ext JS 4 SDK 部署
将ExtJS 4 SDK 部署在你安装的服务器上很简单,按照你自己使用的服务器配置,这里不多说。
2.2 项目结构
2.2.1 基本结构
下边要说的项目结构并不是强制的,只是一种保持项目组织性,可扩展性和可维护性的最佳实践,下边是Ext JS4的项目结构:
- appname - app - namespace - Class1.js - Class2.js - ... - extjs - resources - css - images - ... - app.js - index.html
- appname 是包含所有应用源代码文件的目录
- app 包含所有的ExtJS类,命名规范请参考类系统一文
- extjs 包含Ext JS 4 SDK文件
- resources 包含CSS和images,以及一些其他的资源文件(如XML,JSON等等)
- index.html 是项目入口
- app.js 包含应用逻辑,是应用的入口
下边做一个最简单的例子Hello Ext,先在你的Web服务器目录下创建下边的目录和文件
- helloext - app.js - index.html解压Ext JS 4 SDK到helloext下extjs目录中,然后打开index.html,添加如下代码:
<html><head> <title>Hello Ext</title> <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"> <script type="text/javascript" src="extjs/ext-debug.js"></script> <script type="text/javascript" src="app.js"></script></head><body></body></html>
- extjs/resources/css/ext-all.css 包含Ext JS框架所有的所有CSS信息
- extjs/ext-debug.js 包含Ext JS 4核心库中的类
- app.js 包含你自己的应用代码
然后打开app.js,并插入一下代码
Ext.application({ name: 'HelloExt', launch: function() { Ext.create('Ext.container.Viewport', { layout: 'fit', items: [ { title: 'Hello Ext', html : 'Hello! Welcome to Ext JS.' } ] }); }});现在就可以打开浏览器进行访问了。
2.2.2 动态加载
Ext JS 4自带了动态加载系统,只有程序运行时需要的JavaScript资源才会被加载(这样有效降低网络传输,提高用户体验)。上边的例子中Ext.create创建了一个Ext.container.Viewport实例,当Ext.create被调用时,在真正创建出Ext.container.Viewport的实例之前,类加载器会首先检查Ext.container.Viewport是否已经定义。如果没有定义类加载器就会加载包含Ext.container.Viewport定义代码的JavaScript文件,在上边的例子中就是Viewport.js文件,但是类加载器并不是以一种最理想的方式检测哪些文件需要被加载。由于只有当我们需要创建Ext.container.Viewport实例的时候,Viewport.js才会被加载,并且代码会停止执行直到需要的文件被成功加载,这样就导致了一个小的延时。由于应用程序只能在一个文件成功加载后才能加载下一个,也就是说如果我们多次调用Ext.create的话,延时还会叠加。
怎么修复这个问题呢?我们只需要在调用Ext.application之前添加下边一行即可
Ext.require('Ext.container.Viewport');
这样我们就能保证包含Ext.container.Viewport定义的JavaScript文件在应用程序跑起来之前就已经被加载。
2.2.3 Ext JS类库介绍
1. ext-debug.js 这个文件仅仅用在开发环境。 它提供了能使一个应用运行起来的Ext JS的核心类。任何其他额外的类都需要动态加载进来才能使用
2. ext.js 和ext-debug.js功能一样,只是压缩了一下,可以用在生产环境
3. ext-all-debug.js 这个文件包含了Ext JS的整个类库。 这样有助于缩短你的学习曲线,尽管在实际开发中ext-debug.js才是首选
4. ext-all.js 这个ext-all-debug.js的压缩版本,它可以在生产环境使用,但是这样并不推荐,因为大部分应用不会用到它包含的所有的类,最好是ext.js,然后将需要使用的其他文件一同压缩到另一个文件中,例如app-classes.js
3. 本系列教程主要涉及的内容
我准备把Ext JS 4这块作为一个系列教程,该教程主要包含以下部分:
1. 基础内容:包括类系统,MVC介绍,布局和容器等
2. 核心部分:Ext类、util类、component包的讲解
3. 专项内容:Window,Panel,Grid的使用
4. 源码研究:针对一些特殊应用,可能找不到解决办法,翻看源码才是王道,这部分会带大家看一些通过看源码解决问题的几个例子。
4. 参考资料
- http://dev.sencha.com/deploy/ext-4.1.0-gpl/docs/index.html
Email:zhoubangtao@gmail.com
转载请注明出处: http://blog.csdn.net/zhoubangtao/article/details/26577735
- 【ExtJS 4.x学习教程】(0)简介
- 【ExtJS 4.x学习教程】(4)组件(Components)
- 【ExtJS 4.x学习教程】(2)MVC结构
- 【Lucene 4.x 学习教程】(0)简介
- 【ExtJS 4.x学习教程】(1)类系统(Class System)
- 【ExtJS 4.x学习教程】(3)布局和容器(Layouts and Containers)
- 【ExtJS 4.x学习教程】(5)数据包(The Data Package)
- 【ExtJs学习系列】Ext简介(一)
- ExtJS学习教程
- 《ExtJS2.0实用简明教程》之ExtJS简介
- extjs学习教程一--什么是extjs
- ExtJs 4.x 学习小记:隐藏panel的标题栏
- ExtJs 4.x 学习小记:Ext.PagingToolbar的使用
- ExtJs 4.x 学习小记:json数据中的引号
- Struts1.x系列教程(22):Tiles框架简介
- Struts1.x系列教程(22):Tiles框架简介
- ExtJS教程(1)---初窥ExtJs
- extjs学习08——extjs的ajax初步简介
- URL重写:RewriteCond指令与RewriteRule 指令格式
- Android重写ViewPager修改滑动灵敏度
- codeforces 431B - Shower Line
- dxdfdfdfhdf
- Ubuntu 12.04.04 LTS server版本FTP server功能配置
- 【ExtJS 4.x学习教程】(0)简介
- win 8 虚拟wifi bat
- 奔五的人,准备学习iOS开发
- Android中关于JNI 的学习(四)简单的例子,温故而知新
- 人生学会随缘,才能活得自在。随不是跟随,是顺其自然
- INSTALL PKG-CONFIG FOR MAC OSX
- OpenGL基础图形编程
- HTTP响应代码
- 设计模式 - 策略模式(Strategy Pattern) 详解