`

ExtJS编程思想和开发方式|ExtJS单页面系统|ExtJS单页面应用

阅读更多
唠叨几句:不要认为 EXTJS 就是一个界面改良,在项目中,我仍然用 N 张页面,在 N 张页面部署 EXTJS .这个我不用多讲,效率问题大家都看得出来, EXTJS 是一个集成开发工具,注定他的开发包很大,一个 600 多 K 的 JS 文件,打算让它下载多少次呢?应该说, EXTJS 不仅是一个 AJAX 开发框架,也是一个富客户端开发平台, AJAX 是可以部署到多个页面,而完整的 EXTJS 是不能这样的做的,但是,他却能和 FLEX 一样,在一张页面中,完成项目中所有事件。

一、单页面
目前的应用方式:一个 Viewport ,点击每个菜单在 Viewport 的 center 区域生成一个 tab ,这个 tab 就是一个 panel , panel 中用 html 属性放置一个 iframe ,用 iframe 去加载另外一个全新的页面。

单页面方式:还是一个 Viewport ,点击每个菜单在 Viewport 的 center 区域生成一个 tab ,这个 tab 就是一个 panel ,但是 panel 中不使用 iframe ,而是将原来用 iframe 方式加载的内容,直接“画”在 panel 中。

目前的应用方式的问题:
1.  占用内存超高:每个 tab 都会用 iframe 加载一个全新的页面,每个页面都会载入一套完整的 ExtJS 的运行环境,由于浏览器的原因,这些 tab 关闭的时候内存不会完全释放,这样随着 tab 的开关,内存占用越来越多,占用几百 M 都没问题。
2.  center 区域内部的宽高,无法随浏览器宽高变化,无法自适应
3.  iframe 内外相互控制,内外沟通非常困难
4. 需要消耗额外的 js 解析时间,速度慢,重新加载要消耗解析 js 的时间
5.  用 iframe 有时候会导致一些莫名其妙的变形问题,滚动条问题



单页面方式:
1. 不用 iframe 加载, ExtJS 自己会释放无用的对象、事件占用的内存,一般一个应用只占用几十 M 内存
2.  由于是在一个页面内, ExtJS 自己可以掌控宽高自适应
3. 单一页面无此问题
4. 只需要第一次载入页面的时候加载 ExtJS 运行库
5.  很容易控制,无此问题


二、组件化
编写 ExtJS 程序,应该像搭积木一样,在 Viewport 这样一个框架中,我们添加各种积木块进去得到我们想要的形状。 Extjs 给我们提供了很多最小块的积木,每一块都是一个组件,我们可以将几个最小的组件组合成一个稍微大一点的组件,我们不可能每个功能都从最小的组件从头搭建,我们可以收集一些更大一些的组件,实现这个层面的组件复用,组件是可大可小的,组件的复用也是可大可小的。组件化编程是一个思想,而不是一门技术,这个思想可以用在任何地方。

三、 UI 与逻辑分离
可能大家都已近习惯了将 handler 和 listeners 与一大堆 Config Options 写在一起了。不能说这是一种错误的用法,但是这绝对不是好用法。类似下面这种代码是不是随处可见呢?
 

这种写法,再加上全集变量泛滥,就会导致整个 js 文件混乱不堪,一个 js 文件 3000 行代码,全局变量满天飞,想要的时候找不到,我想大家都遇到过吧。


再看一下下面这段代码,不会不感觉清爽很多呢 




UI 与逻辑分离,就是在设计一个组件的时候,将 UI 写成一个类,将事件处理和其他逻辑写成另外一个类,两个类存放在两个不同的 js 文件中 ( 非必须 ) 。这样子的好处:
1.  改动 UI 和逻辑,几乎不会相互影响
2.  代码清晰规范,提高开发速度,降低维护成本
3.  组件可以重用,界面可以重用
4.  有利于开发规范的统一
5.  因为使用继承,内存开销减少,运行速度加快
分享到:
评论

相关推荐

    extjs hibernate spring java direct开发的单页面应用

    本项目是一个使用EXTJS、Hibernate、Spring和Java Direct技术栈开发的单页面应用程序(SPA),它提供了全面的企业级功能,如产品管理、库存控制以及用户和角色管理。下面将详细解析这些技术及其在该项目中的应用。 ...

    ExtJS Web应用程序开发指南(第2版).pdf 高清下载

    尽管给定的部分内容主要涉及的是一个重复的链接到一个Java学习社区,并没有直接提供关于ExtJS的任何信息,但是基于标题“ExtJS Web应用程序开发指南(第2版).pdf高清下载”和描述,我们可以围绕ExtJS框架进行深入...

    ExtJS Web应用程序开发指南(第2版)

    利用ExtJS构建的RIA Web应用具有与桌面程序一样的标准用户界面和操作方式,并且能够跨不同的浏览器平台使用。ExtJS已经成为开发具有完美用户体验的Web应用选择。许多程序员在RIA Web开发的征途中选择ExtJS作为...

    EXTjs图开编程EXTJS

    EXTJS是一种基于JavaScript的前端开发框架,专用于构建富客户端应用程序。它由Sencha公司开发,提供了丰富的组件库,能够创建具有复杂用户界面的Web应用。EXTJS的主要特点包括高度可定制、响应式布局以及强大的数据...

    ExtJS Web应用程序开发指南(第2版).zip

    ExtJS是一种基于JavaScript的开源富客户端框架,专用于构建交互式和桌面级的Web应用程序。在《ExtJS Web应用程序开发指南(第2版)》中,开发者可以深入了解如何利用这个强大的框架来创建功能丰富的Web应用。这本书...

    ExtJS Web应用程序开发指南(第2版)

    卫军、夏慧军、孟腊春编著的《ExtJS Web应用程序开发指南(第2版)》共18章和1个附录,是对第1版的全面升级,增补了大量ExtJS 4.0中的新特性。从基本的ExtJS功能开始讲解RIA Web开发,从而引出用户体验丰富的ExtJS...

    《Extjs Web应用程序开发指南》代码(全)

    《Extjs Web应用程序开发指南》是一本专注于使用Extjs框架进行Web应用开发的专业书籍,而提供的压缩包文件包含了书中各个章节的源代码示例。这些示例代码是学习Extjs框架的重要参考资料,可以帮助读者深入理解Extjs...

    Extjs5.0从入门到实战开发信息管理系统

    Spring是一个全面的Java企业级应用框架,它提供了依赖注入、面向切面编程等功能,简化了应用开发。Spring MVC是Spring框架的一部分,专门用于处理Web请求,它将模型、视图和控制器分离,使代码结构更加清晰。 ...

    Extjs应用案例--<酒店管理系统>

    Extjs应用案例: 本酒店管理系统采用三层架构,SQL Server数据库。最主要的是采用了Extjs框架。 酒店系统实现了部分功能。aspx后台页面几乎无代码。业务逻辑处理全部采用Extjs自带的函数。对于学习Extjs的框架的...

    Extjs WEB 应用程序开发指南

    extjs web 应用开发程序指南的源码 适合初学者学习

    ExtJS+Web应用程序开发指南(第2版).pdf

    ExtJS是一款使用JavaScript语言编写的开源前端框架,特别适用于创建单页面应用程序。它为开发者提供了丰富的组件库,使得开发者可以快速构建出具有丰富界面效果的Web应用程序。ExtJS支持MVC架构,即Model-View-...

    EXTJS应用EXTJS应用EXTJS应用EXTJS应用

    EXTJS的应用开发不仅涉及到前端JavaScript代码,还涵盖了后端的ASP.NET技术、数据库管理和用户体验设计等多个方面。深入理解EXTJS的组件模型、事件处理机制,以及如何与服务器端进行有效交互,对于构建高效且用户...

    ExtJS+Web应用程序开发指南

    主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好。可以自己写扩展,自己定义命名空间。 主要包括三个大的文件:ext-all.css,ext-base.js,...

    ExtJS与.NET结合开发实例

    ExtJS与.NET结合开发实例ExtJS与.NET结合开发实例

    Extjs web应用程序开发指南.pdf

    Extjs web应用程序开发指南.pdf

    VS Code 搭配 Sencha Plugin 插件简直不要太好用.用于开发 ExtJS/ExtAngular

    而ExtAngular则是Sencha公司推出的用于构建现代单页应用(SPA)的框架,它将Angular的声明式编程与ExtJS的UI组件结合在一起,为开发者带来高效且灵活的开发体验。 Sencha Plugin是专门为VS Code设计的一款插件,它...

    EXTJS图书管理系统页面(JAVA)

    在"EXTJS图书管理系统页面(JAVA)"这个项目中,我们主要关注的是EXTJS在图书管理系统中的应用,以及它与Java后端的交互。 EXTJS提供了一套完整的组件库,包括表格、表单、面板、窗口、菜单等,使得开发者可以方便...

    基于ExtJS开发的酒店管理系统C#源码

    【基于ExtJS开发的酒店管理系统C#源码】 在当今的信息化时代,酒店管理系统的开发已经成为提高酒店运营效率的关键工具。本系统采用先进的Web技术,特别是JavaScript库ExtJS,结合后端C#语言,构建了一个功能完备、...

Global site tag (gtag.js) - Google Analytics