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

Ext Ajax 同步的方法

阅读更多
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(){}
});   


分享到:
评论
2 楼 piaoyaohou 2009-10-27  
我用这个方法,测试始终failure

郁闷!我是使用的Ext3.0

    function syncRequest(method, uri, callback, postData) {
             var o = getConnectionObject() || null;

            if (o) {
                o.conn.open(method, uri, true);

                if (pub.useDefaultXhrHeader) {                    
                	initHeader('X-Requested-With', pub.defaultXhrHeader);
                }

                if(postData && pub.useDefaultHeader && (!pub.headers || !pub.headers[CONTENTTYPE])){
                    initHeader(CONTENTTYPE, pub.defaultPostHeader);
                }

                if (pub.defaultHeaders || pub.headers) {
                    setHeader(o);
                }

                //handleReadyState(o, callback);
                o.conn.send(postData || null);
                handleTransactionResponse(o, callback);
            }
            return o;
        }
        

1 楼 techiewang 2009-09-23  
ext ajax 同步官方网址:
http://www.extjs.com/forum/showthread.php?p=195659

相关推荐

    Ext AJAx的同步请求方法

    这是一个对Ext中的AJAx进行扩展了的方法,使其可以支持同步访问

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    extjs ajax同步请求所需js

    标题中提到的"extjs ajax同步请求所需js"是指ExtJS框架中用于执行同步Ajax请求的相关JavaScript代码。在ExtJS中,Ajax请求通常通过`Ext.Ajax`对象来实现。与传统的异步请求不同,同步请求会阻塞浏览器,直到请求完成...

    ext-basex.js 进行Ext.Ajax.request 同步请求 FF无法正常

    标题提到的"ext-basex.js进行Ext.Ajax.request同步请求 FF无法正常"问题,涉及到浏览器兼容性和异步/同步请求的理解。 `Ext.Ajax.request`是ExtJS中的一个方法,用于发起Ajax(异步JavaScript和XML)请求。它可以...

    EXT中文文档,EXT简明教程(Ajax框架)

    首先,`Ext 中文文档.chm`是EXT的中文参考手册,包含了EXT的各种类库、方法、事件和配置选项的详细介绍。在学习EXT时,这是一个不可或缺的参考资料。你可以通过这个文档了解到EXT的基础组件,如表格(Grid)、面板...

    Ext3.1 Ajax 精简包以及使用方法

    下面将详细介绍`Ext.Ajax`的一些关键方法和使用场景: 1. **发送请求:** `Ext.Ajax.request`是核心方法,用于发起HTTP请求。你可以设置参数如URL、方法(GET或POST)、数据、回调函数等。例如: ```javascript ...

    ExtJs Ajax 同步问题

    `Ext.Ajax.request()`方法是进行Ajax请求的核心函数,它接受一系列参数,包括URL、方法(GET或POST)、请求数据、回调函数等。同步与异步的控制则通过`async`参数来决定。默认情况下,`async`设置为`true`,意味着...

    Ext.Ajax.request 小问题收集

    在EXTJS框架中,`Ext.Ajax.request`是进行异步AJAX通信的核心方法,它提供了与服务器端交互的能力,支持GET、POST等多种HTTP请求方式。这篇文章将深入探讨`Ext.Ajax.request`的使用,以及在实际应用中可能遇到的小...

    ajax-ext框架

    2. **数据绑定**:Ajax-ext支持双向数据绑定,使得UI状态与后台数据同步,降低了处理用户交互的复杂性。 3. **Ajax操作**:提供简便的Ajax接口,可以轻松实现异步请求,获取或更新服务器端数据。 4. **事件驱动**...

    ext/ajax开发资料

    EXT的Ajax功能还支持配置各种选项,如设置请求头、超时时间、同步/异步请求、数据编码方式等。例如,你可以设定请求头来添加自定义的HTTP头部信息: ```javascript headers: { 'Content-Type': 'application/json' ...

    extjs3.0 ajax 同步请求

    在 ExtJS 3.0 中,可以使用 `Ext.Ajax.request` 方法来发起 AJAX 请求。通过将 `async` 参数设置为 `false` 来实现同步请求。此外,还可以通过回调函数来处理请求成功或失败的情况。 #### 四、兼容性问题及解决方案...

    ext ajax框架

    2. **数据绑定**:EXT通过数据绑定机制实现了视图与模型的自动同步,数据变化时界面会自动更新,反之亦然,极大地提高了开发效率。 3. **AJAX支持**:EXT内置了AJAX功能,可以方便地进行异步数据交互,通过JSON或...

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...

    EXT4 自己整理的一些常用方法

    EXT4的数据管理组件提供了强大的数据绑定机制,能轻松地将数据与视图进行同步。 4. **Util**: Util通常代表实用工具或通用函数库,这部分可能包括EXT4中的各种辅助函数,用于提高开发效率,如日期时间处理、字符...

    Ext 操作数据库,对数据的增删改查,包括数据库,Ajax请求和store请求的设置

    这个压缩包文件“ExtProject”显然是一个基于Ext框架的项目,它涵盖了数据库操作、Ajax请求以及Store的使用,是初学者学习Ext的理想资源。 首先,让我们深入了解一下Ext中的"增删改查"(CRUD)操作。CRUD代表创建...

    完成的 Ajax 提交表单

    `Ext.form.Basic`对象提供了`getValues()`方法来获取表单字段的值,而`Ext.Ajax.serializeForm()`可以将表单数据转换为URL编码的字符串,适用于POST请求的data参数。 5. **错误处理和提示**:在`failure`回调中,你...

    EXT最新使用手册(中文)

    通过`Ext.Ajax.request()`方法,开发者可以发送GET、POST等类型的请求,并处理返回的数据。 8. EXT源码概述: 手册可能深入讲解EXT的源码结构,帮助开发者了解EXT如何工作,这对于自定义组件或优化性能很有帮助。 ...

    Extjs ajax同步请求时post方式参数发送方式

    本文将主要探讨Extjs框架下实现Ajax同步POST请求时参数的发送方式。 首先,了解Extjs框架中的Ajax请求机制是非常重要的。Extjs提供了一个便捷的Ajax调用方式,通过Ext.Ajax.request方法,开发者可以非常方便地发起...

    Ext JS 4.2.1.883_前端ajax框架

    它通过内置的Ajax类(如`Ext.Ajax`)提供异步通信,使得后台数据交换变得轻松。开发者可以通过配置URL、方法(GET或POST)、参数等,实现与服务器的数据交互,并处理返回的结果。此外,它还支持JSONP(JSON with ...

Global site tag (gtag.js) - Google Analytics