`
laodaobazi
  • 浏览: 276955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ex的Ajax请求实现同步

阅读更多

Ext2,.x的Ajax实现同步

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(){}
});    

 

 

Ext3.x的Ajax实现同步

<script type="text/javascript" src="../extjs/ext-base.js"></script>
<script type="text/javascript" src="../extjs/ext-basex.js"></script>
//引入另一个JS文件,在附件中。

 

 

分享到:
评论

相关推荐

    ajax原理文档说明txt格式

    - **事件绑定**:为页面元素绑定事件监听器,以便在特定情况下触发AJAX请求。 #### 五、总结 AJAX技术通过使用`XMLHttpRequest`对象实现了浏览器与服务器之间高效、低延迟的数据交互,极大地改善了用户的交互体验...

    ajax原理,xmlHttpRequest

    `XMLHttpRequest`是实现AJAX的关键技术之一,它允许JavaScript以异步方式向服务器发起请求并接收响应,从而避免了页面的重新加载。接下来,我们将详细了解`XMLHttpRequest`的各种属性和方法。 ##### 1. ...

    Ajax和XMLHttp原理

    总结起来,Ajax通过XMLHttpRequest对象实现了页面的异步更新,它在Web开发中扮演着关键角色,尤其是在构建动态交互式的网页应用时。理解和掌握Ajax的工作原理以及XMLHttpRequest的使用是现代Web开发者必备的技能之一...

    jquery+ajax+text文本框实现智能提示完整实例

    通过这种方式,我们可以构建一个智能提示系统,当用户在文本框中输入时,系统会实时发送Ajax请求,获取匹配的建议,并在文本框下方显示。用户可以通过鼠标选择建议项,或者继续输入以更新提示。这个例子展示了jQuery...

    ext 同步和异步示例代码

    然后,使用`Ext.lib.Ajax.getConnectionObject().conn`获取了一个连接对象,这是一个同步的AJAX请求,其`open`方法的第三个参数设为`false`,表示这是一个同步请求。请求的URL是`/base/business/SysPublicAction.do?...

    JS-家庭作业-03-05-20-ex3

    8. **异步编程**:使用回调函数、Promise或async/await处理非同步任务,如AJAX请求获取远程数据。 9. **错误处理**:添加适当的错误检查和异常处理,以确保代码的健壮性。 10. **实践应用**:可能涉及到实际问题的...

    asp.net mvc 实现文件上传带进度条的思路与方法

    *** MVC中,常见的进度条的实现方式有两种,一种是使用Ajax异步上传结合客户端JavaScript进行进度显示,另一种是使用WebSocket技术。 1. **使用Ajax异步上传与轮询技术**: 在客户端,利用JavaScript库(如jQuery...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    浅谈PHP实现大流量下抢购方案

    通常,我们会使用JavaScript在客户端实现倒计时,因为频繁地通过Ajax向服务器请求时间会增加服务器负载。然而,这种方法可能会因网络延迟导致几秒钟的误差。为了解决这个问题,可以在用户首次加载页面时,通过PHP...

    asp.net下判断用户什么时候离开,以什么方式离开

    在ASP.NET中,准确地跟踪用户何时离开网站并以何种方式离开是一项挑战。通常,Web服务器依赖于Session来判断用户是否仍然活跃,因为Session会在...同时,为了防止恶意攻击,应该对AJAX请求进行适当的验证和权限检查。

    phoenix_live_controller:控制器样式的抽象,用于在Phoenix.LiveView之上构建多动作实时视图。

    LiveView通过WebSocket连接将服务器端的状态与客户端保持同步,减少了对AJAX请求的依赖。 **Phoenix.LiveController的作用** `phoenix_live_controller`是基于Phoenix.LiveView的一个扩展,它引入了类似传统...

    关于extjs treepanel复选框选中父节点与子节点的问题

    此外,我们定义了一个名为`authorityTree`的函数,它使用EXTJS的Ajax请求功能从'authorityTree.ashx'获取数据,然后将返回的数据附加到TreePanel的根节点,并展开所有的子节点。 整个过程的核心在于`checkchange`...

Global site tag (gtag.js) - Google Analytics