Ext.Ajax.request参数中并没有同步这个参数,但是很多时候需要同步请求来提供Componnet中的数据,而且没有add方法,比如 checkboxgroup 中动态的check选项,所以应该修改Ext.Ajax.request真正的请求方法Ext.lib.Ajax.request
具体代码来自EXT官方论坛:
Ext.lib.Ajax.request = function(method, uri, cb, data, options) {
if(options){
var hs = options.headers;
if(hs){
for(var h in hs){
if(hs.hasOwnProperty(h)){
this.initHeader(h, hs[h], false);
}
}
}
if(options.xmlData){
if (!hs || !hs['Content-Type']){
this.initHeader('Content-Type', 'text/xml', false);
}
method = (method ? method : (options.method ? options.method : 'POST'));
data = options.xmlData;
}else if(options.jsonData){
if (!hs || !hs['Content-Type']){
this.initHeader('Content-Type', 'application/json', false);
}
method = (method ? method : (options.method ? options.method : 'POST'));
data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
}
}
return this["sync" in options ? "syncRequest" : "asyncRequest"](method, uri, cb, data);//这句制定调用的方法,如果sync传递了就调用syncRequest, 否则调用原来的方法asyncRequest};
syncRequest方法如下:
Ext.lib.Ajax.syncRequest = function(method, uri, callback, postData)
{
var o = this.getConnectionObject();
if (!o) {
return null;
}
else {
o.conn.open(method, uri, false);
if (this.useDefaultXhrHeader) {
if (!this.defaultHeaders['X-Requested-With']) {
this.initHeader('X-Requested-With', this.defaultXhrHeader, true);
}
}
if(postData && this.useDefaultHeader && (!this.hasHeaders || !this.headers['Content-Type'])){
this.initHeader('Content-Type', this.defaultPostHeader);
}
if (this.hasDefaultHeaders || this.hasHeaders) {
this.setHeader(o);
}
o.conn.send(postData || null);
this.handleTransactionResponse(o, callback);
return o;
}
};
调用:
Ext.Ajax.request({
url:'',
scope:this,
sync:true,
success:function(){}
});
分享到:
相关推荐
这是一个对Ext中的AJAx进行扩展了的方法,使其可以支持同步访问
NULL 博文链接:https://linwei-211.iteye.com/blog/1567277
extjs ajax同步请求所需js extjs ajax同步请求所需js
NULL 博文链接:https://lingf.iteye.com/blog/1821225
Ext.Ajax.request同步请求包 博文链接:https://lingf.iteye.com/blog/1195912
ajax同步请求一般下面这样: 代码如下: var conn = Ext.lib.Ajax.getConnectionObject().conn; conn.open(“POST”, ‘http://localhost:8080/struts2study/TreeDDGet?node=-1’,false); // 这里的conn对象其实就是 ...
使用同步ajax B. 修改日志 C. 后记 C.1. 2007年12月5日,迷茫阶段 C.1.1. 仇恨 C.1.2. 反省 C.2. 关于ext与dwr整合部分的讨论 C.3. 怎么看文档附件里的范例 C.4. ext开发计划 D. 贡献者列表 D.1. 感谢[飘]的大力...
本例子采用ext3.0+java开发的树结构,完全的动态管理,树结构一旦形成,支持右键菜单,进行增删改,增加,就在树当前节点下创建一个新的节点,利用ajax同步到数据库,总之类似于资源管理器的增删改,由于本人是初学...
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
起初以为是Ext 框架设置了ajax同步造成的。后来发现时session 死锁造成其他控制器在等待session 完成后才能操作。(主要是用户登录判断需要更新session)当PHP 处理大数据量操作时 不能及时操作完成 这时候又有访问...
这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。 var html = $.ajax({ url: "some.php", async: false }).responseText;向服务器发送xml文档数据。通过设置processData选项为false...
该组件是单线程非阻塞式的,类似于JS中的ajax请求。都使用单线程异步回调的方式。目前该组件已经初步测试通过。如果大家也需要这样的组件,可以下载尝试一下。所有关键注释都已经写了,如有不明白可以发送邮件 ath....
- 拖动url——创建ext app - 文件管理,树目录变化后(增删改)自动同步到文件列表 - 文件管理,文件列表变化后(增删改)自动同步到树目录 - 中文用户名限制 - 对话框打开关闭动画 - 其他多处优化 ####fix ...