今天,有人请教我处理办法,问题是:
一个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代码,那就要考虑为什么要用、是否有替代办法、怎么用这样问题。
以上纯个人观点,可能还有没考虑到的地方,忘大家斧正。
- 前言
- extjs 4 tree 的text不显示
- 窗口显示时让字段获得焦点
- 如何编写一个使用Store更新复选框的CheckboxGroup的插件
- 如何了解事件中回调函数的参数
- 很多人需要的,带时间的日期选择器
- 一个网上找到的,在Grid中嵌套Grid的示例:Nested Grids Example
- 修改Ext.ux.GroupTabPanel让它支持延迟渲染
- 初学者比较容易犯的布局错误(手风琴布局)
- Ext JS添加子组件的误区
- 使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转
- 【翻译】十大要避免的Ext JS开发方法
- 一个不错的扩展:Ext.ux.container.ButtonSegment
- 在VS2012中实现Ext JS的智能提示太简单了
- 为什么要使用“var me=this”这样的写法
- 一个很不错的支持Ext JS 4的上传按钮
- 【翻译】热门支持小提示:2013年12月
- 【翻译】在Ext JS应用程序中使用自定义图标
- 演练Ext JS 4.2自定义主题
- 【翻译】培训提示:解决常见编码问题的简单技巧
- 【翻译】从Store生成Checkbox Group
- 【翻译】将Ext JS Grid转换为Excel表格
- 【翻译】Ext JS 5:为不同设备设置不同的主题