文档章节

使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转

赵小宾
 赵小宾
发布于 2013/10/20 09:55
字数 826
阅读 133
收藏 3


今天,有人请教我处理办法,问题是:

一个Grid,选择某条记录后,单击编辑后,弹出编辑窗口(带编辑表单),编辑完成后单击保存按钮保存表单,并关闭窗口,刷新Grid。


这,本来是很简单的,但囿于开发人员对Ext JS的理解不到位,搞得相当的复杂了。


主要复杂的地方在以下几点:

  • 为了实现编辑表单的可重用,把表单做成了页面,然后在Window中套IFRAME打开页面。
  • 表单的提交不是用Ajax提交,而是使用习惯的页面跳转方式提交,于是,一切都复杂起来了。


要这样实现,也不是不可以,在最后的提交页面,调用parent对象操作父页面的对象关闭窗口并刷新Grid。不过,这样实在太复杂了。


这里存在的问题是对Ext JS的开发理解不到位,还是根据老的开发方式去来写Ext JS的应用程序,因而本来简单的东西一下子就复杂化了,这也是很多初学者经常犯的错误。

要很好的使用Ext JS进行开发,要牢记以下几点:

  • Ext JS的数据交互,基本上是以Ajax为工具,以JSON或XML格式数据进行交互,这个过程,不需要任何的页面跳转来实行,数据的处理都以一种很标准化的数据格式进行处理,如错误处理、成功保存等等信息,都可通过JSON或XML格式的数据来告诉客户端,让客户端去进行处理。
  • 使用Ext JS(尤其是4)编写自己的扩展,实现组件的重用,非常的方便,不需要把重用部分做成一个页面那么麻烦。
  • 使用Ext JS 4可以很容易实现单页面的应用程序,也就是只需要一个页面就行了,客户端与服务器端的数据交互都是遵循第一点来处理的。当然,担心性能问题的,也会以IFRAME形式来实现多页面的应用程序,但是,必须明白的是,这也是以单页面为基础的,意思就是,一个IFRAME页面的流程,基本就是一个单页面的应用程序的流程,不需要类似习惯的Web开发方式那样进行多个页面的控制。理解这点很重要,不然,还真不如不用Ext JS,直接使用习惯的Web开发方式来开发。
  • Ext JS在客户端也是数据与UI分离的,千万别在UI中找数据。
  • 使用Ext JS,是基于组件形式来组织UI的,而不是以HTML代码来组织UI的,尽管最终生成的都是HTML代码。一般情况下,是不需要直接编写HTML代码就能实现应用程序的,如果确实需要使用使用HTML代码,那就要考虑为什么要用、是否有替代办法、怎么用这样问题。

本文转载自:http://blog.csdn.net/tianxiaode/article/details/9207649

共有 人打赏支持
赵小宾
粉丝 7
博文 57
码字总数 8001
作品 0
浦东
私信 提问
extjs和shiro结合的问题

@江南白衣 你好,想跟你请教个问题: 我想使用您的springside4的架构,前台换成extjs。但是extjs和shiro的结合过程我发现很多问题。extjs是单页面的应用,前台只有一个页面,而shiro是一个配...

呆萌
2013/04/26
1K
3
ExtJS 开发总结

不知不觉2008已经走到了尽头,在这近一年中,一直不断的尝试用ExtJS做项目,从1.1到现在的2.2,吃了不少苦头,也有不少收获,总结一下,一起分享! 1. ExtJS的定位是RIA,和Prototype、jQuer...

晨曦之光
2012/04/26
885
1
ExtJS4.2学习 php版(二)

ExtJS使用命名空间 和 自己构建类的方法 写出了许多可以重用 高效的方法 所以使用ExtJS 类必须了解。 ExtJS4对新的类系统进行了大量的比较彻底的重构,新的架构建立在写在Extjs4库中每一个单...

lbc19920615
2014/03/31
0
0
ssh+extjs,使用拦截器做权限控制的问题?

做一个系统,使用ssh+extjs搭建项目框架,extjs作为前台界面,现在需要做权限控制,打算使用Interceptor拦截action,然后将action作为最小权限放在数据库,用登录用户账号关联。权限验证过程...

小薇
2012/09/19
1K
5
360UI 界面框架 即QUI框架与EXT比较

EXTJS框架是非常全面和成熟的,这是因为它发展的年头久远,并且有全世界的EXTJS爱好者为其出谋献策,它的组件库尤其是DataGrid组件无人能出其右。我在最初也考虑过使用EXTJS来做项目,学习了...

阿东2020
2013/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3.系统和内存架构

在设计程序或并发系统时,需要考虑不同的系统和内存架构风格。 支持并发的计算机系统体系结构 1972年,迈克尔弗林(Michael Flynn)给出了用于分类不同风格计算机系统体系结构的分类法。 该分类...

Eappo_Geng
24分钟前
4
0
今天的学习

1,getimagesize:获得目标图像的大小 2,image_type_to_extension:获得目标文件的后缀信息 3,imagealphablending:设定目标图像混色的模式 4,imagechar:水平的画出一个字符 5,imagecharup...

墨冥
27分钟前
1
0
Java线程中yield与join方法的区别

长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。...

飓风2000
51分钟前
4
0
Python的 is 和 == 弄懂了吗?

在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是: id(身份标识) type(数据类型) value(值) 对象之间比较是否相等可以用 == ,也可以用 is 。 is 和 == 都是对对象进行比较...

上海小胖
51分钟前
2
0
angularJS 路由加载js controller 未定义 解决方案

说明 本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案。 路由 $routeProvider 异步加载js 路由的基本用法,请查看官方文档,下面实例只说明,懒加载...

DrChenXX
59分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部