`
feidaozhou
  • 浏览: 14021 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

为ExtJS添加超时跳转

阅读更多
这篇文章大部分内容是从其他地方看到的,只是自己添加了些内容。

对于普通的http请求,可以通过拦截器判断session超时,然后跳转到登录页面;但是对于Ajax请求,则不会如期待的那样自动转到登录页面,若想实现,必须特殊处理。
不论是普通http请求还是ajax请求,都可以通过拦截器来将请求捕获,而且区分这两种请求在于头部信息的不同:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。

个人呢认为Ext的Ajax请求分为这么几种,Ext.Ajax类、Ext.data.Connection类、Ext.data.HttpProxy类,其中Ext.Ajax类是对Ext.data.Connection类封装的单一实例,Ext.data.HttpProxy内部引用的还是Ext.Ajax类,所以我们需要为Ext.data.Connection类设置统一的超时处理。

我在Ext.data.Connection的源码中直接为其添加个监听,让它在发生异常时实现跳转
listeners:{
	'requestcomplete':{
		fn:function(conn,response,options){
			 if(response.getResponseHeader.sessionstatus){ 
	        window.location.href='error.jsp';  
	    } 
		}
	}
},	


Action中拦截器的处理和原来几乎一样,只是在超时的处理上添加一个分支
if (request.getHeader("x-requested-with") != null
		&& request.getHeader("x-requested-with").equalsIgnoreCase(//ajax超时处理
				"XMLHttpRequest")) {
	response.addHeader("sessionstatus", "timeout");
}else{//http超时的处理
}
分享到:
评论
1 楼 AnDong 2010-04-02  
这个判断逻辑有问题,当遇到文件上传表单时,Ext是不会添加该header信息的,不知道是不是Ext的一个bug。

相关推荐

    ExtJs 动态添加表单

    在ExtJS中,我们可以使用`Ext.container.Container`类来创建一个容器,然后设置布局为`form`,以便容纳表单字段。例如: ```javascript var formPanel = Ext.create('Ext.form.Panel', { layout: 'form', items...

    Extjs4添加tooltip

    Extjs4的textfield控件竟然没有tooltip悬浮提示,这应该算是个bug吧。网上查了很多,也没有方案。后来自己通过查询并整理出这个方案,终于实现了。 思想如下: 在textfield渲染时注册mouseover事件,然后在其中调用...

    extjs加水印

    "extjs加水印"这一主题涉及到如何在EXTJS框架构建的系统中添加水印功能,以增强数据的安全性,防止敏感信息非法传播。EXTJS是一个强大的JavaScript库,用于构建富客户端的Web应用程序,而水印则是一种有效的方法,...

    extjs+s2页面跳转

    这里,`<result type="json">`指定了当`execute()`方法被调用时,返回的数据格式为JSON,这与ExtJS的异步请求相匹配,使得前端可以直接解析并处理服务器返回的数据。 ### 2. User实体类设计 在代码片段中,`User`...

    在vs2008中添加对extjs的智能提示

    ### 在VS 2008中为ExtJS添加智能提示的方法 #### 一、背景介绍与准备工作 在软件开发过程中,提升开发效率是每个开发者所追求的目标之一。Visual Studio 2008作为一款功能强大的集成开发环境(IDE),虽然其主要支持...

    Extjs 4.11 重写 Panel 添加 click事件

    2. **添加事件监听器**:接着,我们需要为这个Panel实例添加`click`事件监听器。监听器可以是一个函数,当指定的事件触发时,该函数会被调用。例如: ```javascript panel.addListener('click', function(event, ...

    EXTJS实例 EXTJS树,可以编辑的EXTJS,EXTJS3.0

    6. **监听事件**:为TreePanel和TreeEditor添加事件监听器,例如`beforeedit`、`validateedit`和`afteredit`,以控制编辑过程,如验证输入、保存更改等。 7. **自定义行为**:根据需求,可能还需要实现自定义的行为...

    Extjs 重写Panel添加click事件

    在这个场景中,我们将深入探讨如何在Ext JS中重写Panel并为其添加click事件。 首先,理解Panel的基本结构是至关重要的。一个Panel由多个部分组成,包括头部(header)、主体(body)和脚部(footer)。我们可以通过...

    Struts2与extjs整合例子

    4. **JSON数据交换**:由于Struts2支持JSON插件,可以方便地将Java对象转换为JSON格式,然后发送到前端。ExtJS可以解析这些JSON数据,填充到Grid或其他组件中。 5. **Action与View的绑定**:在Struts2 Action中处理...

    extjs4动态添加表头

    extjs4动态添加表头字段、删除、增加记录!

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    extjs4.2 desktop 拓展

    最后,"加了几个桌面图标"意味着拓展不仅限于基础功能,还增加了更多可自定义的元素,用户可以根据需求添加自己的应用快捷方式,进一步个性化他们的桌面环境。 总结来说,ExtJS 4.2 Desktop 拓展是一个集成了多种...

    extjs动态添加tabpanel标签页支持pannel嵌入

    extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    基于ExtJS的工作流设计器,利用了ExtJS的强大组件模型和交互性,为用户提供了一个直观的方式来创建和编辑流程图。这样的设计器通常包括以下关键组成部分: 1. **组件库**:设计师需要一个包含各种工作流元素(如...

    EXTJS单元格变色、行变色

    EXTJS单元格变色、行变色实现方法详解 EXTJS是一个功能强大且流行的JavaScript框架,用于构建复杂的Web应用程序。其中,Grid Panel是EXTJS中最常用的组件之一,用于展示和编辑数据。本文将详细介绍EXTJS实现单元格...

    ExtJS验证上传文件类型

    ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...

    Extjs 2.2 Extjs 3.21 js

    不过,需要注意的是,从2.2升级到3.x可能需要对代码进行一定的调整,因为API有了一些变化,但这也为应用程序的扩展性和可维护性打下了更好的基础。 在实际项目中,选择ExtJS 2.2还是3.2.1,通常取决于项目需求、...

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...

    FCKeditor结合extjs实例

    2. 在ExtJS组件(如`Ext.form.TextArea`)中替换为FCKeditor的实例,这通常涉及到自定义ExtJS的组件或者在渲染后调用FCKeditor的初始化方法。 3. 配置FCKeditor的设置,如工具栏、样式集等,以适应应用需求。 4. ...

    包含各种类型的extjs小图标,Extjs4小图标

    - 在ExtJS应用中,可以使用`Icon`配置项在按钮、菜单项或其他组件上添加图标。例如,`{iconCls: 'add'}`将添加一个指定类名的图标,类名对应于CSS中的背景图像,通常存储在CSS文件中。 4. **图标集**: - "5000个...

Global site tag (gtag.js) - Google Analytics