文档库

最新最全的文档下载
当前位置:文档库 > ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

《回到系列目录

本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事件操作封装,还有扩展的常用函数等。Ajax服务端交互式操作是提交到.NET MVC。后续服务端交互都采用这一方式实现。

一、ExtJs中的Ajax:Ext.Ajax.request

通过客户端向服务端发送Ajax请求,可以“直接”调用MVC的action方法,并传递参数,action 返回值可以是普通字符串,也可以是json对象。请求可以添加自定义头信息。看下面例子:

1.异步请求,发送自定义请求头:

html页面如下:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

我们先通过一个按钮单击事件触发ajax请求,服务端返回string到客户端,异步请求时,为请求添加自定义头“userHeader”,并在服务端获取。如下是js代码:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

服务端MVC 接受请求的action 代码:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

然后我们在火狐中调试:自定义请求头已被添加。

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

查看执行结果:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

2.异步请求,返回json :

如果要返回json 到客户端,MVC 需要使用JsonResult 的acton

,自动将C#对象转换为json 格式。

客户端代码如下:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

服务端代码:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

查看执行结果,我们先看看火狐调试响应的结果,可以查看返回的json内容:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

界面执行结果:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

3.异步文件上传

ExtJs通过强大的内部封装,使ajax请求看起来可以直接提交二进制流数据。每当提交文件数据时,ExtJs会自动创建iframe,在iframe中提交。提交完成后又自动移去,一切显得天衣无缝。下面演示一个通过异步请求无刷新文件上传的例子:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

提交后我们发现,上传的文本文件内容已经被正确读取。

4.异步请求事件

事件时,都会把计算器+1:

当发起ajax请求之前,可以监听beforerequest事件,本例每当发起ajax

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

二、元素对象Ajax式更新:Ext.Updater,[已弃用]

ExtJs为我们提供了异步方式更新dom元素内容的支持。这可以用在一些异步交互性比较强的地方,例如webgame等。我们来看看具体实现方式。

我们先在视图中写这样的html:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

1.单个元素的及时更新

现在,我要通过c#在服务端计算a+b 的值,然后将结果填到div1元素里面:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

页面加载后,将自动更新div1。再看看另外一种写法:

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

2.通过提交表单更新

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

效果一样,只不过提交的参数来源于表单,参数名为对应的

name 值。

3.周期性更新

ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

这段代码运行后将每隔5秒钟更新一次div1,用于需要适时核对服务端和客户端状态的情形。