官方教程--查看文章
 
Manual:Core:Ext.Ajax 类
发布时间:2008-3-6

Ext.Ajax类

Ext.Ajax类是一个简单而清晰的XHR封装器,允许你快速而有效地执行AJAX请求。在本教程中,我们将会讨论除了公共方法request()外,还有怎么使用明文报码(Cleat Text)或解码JSON对象的强大扩展方法。

配置项对象

已经全部归档到Ext.Ajax Class Doc

配置项类型  
url 字符类型 必须的
params 已编码JSON的对象 可选的
method 'GET' 或 'POST' 可选的
success 匿名函数对象或已声明好的函数 必须的
failure 匿名函数对象或已声明好的函数 必须的
timeout XHR超时的毫秒数 可选的

成功、失败的条件

success和failure这两个函数对象由配置项参数config负责传入。简单地说,我们会调用第一个 result 和第二个request

结果对象产生的属性

result.responseText是由web服务器根据响应返回的明文报码。如果你有返回文本的100%控制权,并且是JSON格式的数据,那么你应该通过Ext.util.JSON.decode()函数来解码对象。个人更倾向于从服务器返回JSON数据。

如果服务器的响应的由类自动检测的话,result.responseXML 多用于包含有效的XML数据。

Image:Djliquidice.ajax.responseObject.JPG

请求对象之属性

执行不同的动作(Action)会使用所有列出的属性。此时我还没需要用到这些属性。

Image:Djliquidice.ajax.requestObject.JPG

简单的例子

下面的例子会执行一个请求和完成Ext.MessageBox.alert

JavaScript:

Ext.Ajax.request({
url : 'ajax.php' ,
params : { action : 'getDate' },
method: 'GET',
success: function ( result, request ) {
Ext.MessageBox.alert('Success', 'Data return from the server: '+
result.responseText);
},
failure: function ( result, request) {
Ext.MessageBox.alert('Failed', 'Successfully posted form: '+action.date);
}
});

PHP服务器端:

// ajax.php
<?php
 
if ($_REQUEST['action'] == 'getDate') {
echo date('l dS \of F Y h:i:s A');
}
 
?>

进阶例子 - 转换.responseText结果到JSON

HTML + javascript

<div>
这里是一个简单的请求。
</div>
<div id="subButton"></div>
<textarea id="log" cols="40" rows="10"></textarea>
 
<script type="text/javascript">
function doJSON(stringData) {
try {
var jsonData = Ext.util.JSON.decode(stringData);
Ext.MessageBox.alert('Success', 'Decode of stringData OK<br />jsonData.date = ' + jsonData.date);
}
catch (err) {
Ext.MessageBox.alert('ERROR', 'Could not decode ' + stringData);
}
}
 
function doAjax() {
Ext.Ajax.request({
url : 'ajax.php' ,
params : { action : 'getDate' },
method: 'GET',
success: function ( result, request) {
var textArea = Ext.get('log').dom;
textArea.value += result.responseText + "\n";
//Ext.MessageBox.alert('Success', 'Data return from the server: '+ result.responseText);
doJSON(result.responseText);
},
failure: function ( result, request) {
Ext.MessageBox.alert('Failed', 'Successfully posted form: '+result.date);
}
});
}
 
var button = new Ext.Button('subButton', {
text: 'Click to submit an AJAX Request',
handler: doAjax
});
</script>

PHP 服务器端

<?
 
if ($_REQUEST['action'] == 'getDate') {
echo "{date: '" . date('l dS \of F Y h:i:s A') . "'}";
}
 
?>

--Djliquidice 14:15, 3 August 2007 (CDT)



 [官方教程]Ext源码概览(Ext Source Overview) (未知,09-20)
1 入门导向 2 揭示源代码 3 发布Ext源码时的一些细节 4 我应该从哪里开始? 5 适配器Adapters 6 核心Core入门导向Ext的新手用户可以通过下列不同的途径获取学习资源:API文档、维基百科全书、日益丰富的教程、论坛、IRC频道等……

 [官方教程]ext 的布局 (佚名,03-06)
Ext的layout布局对于建立WEB程序尤为有用。关于布局引擎(layout engine),区域管理器(region manager)的教程将分为几部分,本文是第一篇,为您介绍如何创建区域,如何增加版面到这些区域。布局引擎(layout engine)这一功能早已在EXT前个ALPHA实现了。 ……

 [官方教程]ExtJs:如何合理地规划一个应用程序 (未知,01-10)
事前准备 本教程假设你已经安装好ExtJS库。安装的目录是extjs 并位于你程序的上一级目录。如果安装在其它地方你必须更改路径,更改示例文件中script标签的src的属性。 需要些什么?除ExtJS库本身外,我们还需要两个文件: applayout.html applayout.js 先看看一……

 [官方教程]Tutorial: Grid组件的简易分页 (佚名,03-06)
Grid的分页必须依靠服务端(Server Side)来划分好每一页的数据才可以完成。 本例中的服务端事PHP,数据库是MySQL,用来导出一些随机的数据。下列脚本的作用是,获取我们想要的数据,同时这些数据事已分好页的数据。分页的参数是由Page Toolbar传入的变量limit……

 [官方教程]首届Ext JS研讨会 美国 佛罗里达 2009 Fall (myext整理,11-28)
官方组织举行的见面会之类的,,,宣布3.0的发布,地点选在佛罗里达。来到这个会场,听说是一间豪华的星级酒店(具体星数未知!估计也不弱滴,,,)。呵呵 首先看到的是指示牌,那么大酒店迷路的是可能的事,弄两个贴心的牌子,让第一次来的与会者感到清晰 嘿嘿    &n……

 


©2008 MyExt.cn
本站文章来自互联网,仅供学习和研究使用,如有版权问题,请发送Email:myext@126.com.