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

extJs 2.1学习笔记(Ext.data.Connection篇一)

阅读更多
  ExtJs之所以能异步请求数据,全依赖于Ext.data.Connection。而Ext.Ajax只不过是Ext.data.Connection的一个实例罢了。当然Ext.Ajax比Ext.data.Connection多了一个函数:serializeForm(form),这个函数的作用是把一个表单里面的表单元素序列化。结果形式为:name1=value1&name2=value2……不过,如果是我的话,一般不会用这个东西,因为平常都是传json数据的,当然,如果不是请求WebService,而是请求aspx页面,那么这个东西还是有点用的。

  先把它的官方文档翻译一下吧。

全  称:Ext.data.Connection
命名空间:Ext.data
定义 于:Connection.js
类  名:Connection
子  类:Ajax
父  类:Observable

  这个类封装了到页面所在主机的连接,允许通过一个配置好的URL来请求数据,也可以临时在请求时传递一个URL。

  通过这个类获得的请求都是异步的,并且马上返回,调用request后,它并不马上返回数据,要处理数据,要在调用request时传入的 options对象中,配置callback或者是success、failure。这三个是回调函数。其区别将在下文具体交待。当然,你也可以使用 Connection的事件处理来做一些事情。

  注意:如果你是要上传文件,你的回调、事件处理函数将不会获得通常意义上的response对象。上传通过IFrame来捕获,所以就没有 XMLHttpRequest了。这时,response还是被创建,不过,它的responseText等于IFrame的 document.innerHTML,responseXML等于IFrame的document中的xml数据。当然,这个前提是它们存在的时候。


  这意味着必面回一个合法的XML或HTML document。如果返回的是JSON数据,那么建议你把数据放到<textarea>标记中,返回时通过正则表达式从 responseText中取出来了。如果返回的是XML数据,建议放到CDATA里面,通过标准DOM方法从responseXMl中取得数据。


Options:
autoAbort : Boolean
取消当前请求,不管当前请求是不是存在。默认值为false。


defaultHeaders : Object
默认头部,每个HTTP请求分成两部:头部、数据。数据就是post的部分,头部包含了请求的一些基本属性,此对象定义了用当前connection对象发起的请求的默认头部,默认值为undefined。


disableCaching : Boolean
是否为GET请求加入一个唯一标志的参数缓存。

extraParams : Object
一般情况下,加在encodeURL(params)后面。默认值为:undefined。

method : String
就是http请求的method属性。默认情况下是未定义的(undefined);如果没有设置,但是调用request时设了params,那么将使用POST方式,否则使用GET。


timeout : Number
请求超时,默认值为:30000。单位是millisecond(毫秒?)。


url : String
用此connection对象发起的请求的默认URL。默认值为:undefined。


无公共属性


公共函数(只讲connection自身的,不包括从Observable中继承来的):
Connection( Object config )
构造函数,没有悬念。


abort( [Number transactionId] ) : void
取消指定id的请求,如果没有指定则取消当前请求。


isLoading( [Number transactionId] ) : Boolean
判断指定id的请求是不是正在请求中(?)。


request( [Object options] ) : Number
发送一个HTTP请求到远程主机上。
重点:Ajax服务请求都是异步的,并且这个请求将在response(响应)返回之前返回,也就是说,你绝对无法通过此函数来直接返回数据,你得通过定义回调函数来处理返回的数据。

参数:
  options : Object
    一个可能包含下面属性的对象:

        url : String (Optional)
        请求对应的URL,默认值是connection的options配置的那个url。

    params : Object/String/Function (Optional)
    用于提供url后面的请求参数(俗称查询字符串),可以是json对象,可以是直接的字符串,可以是一个函数。

    method : String (Optional)
    此http请求的method。默认值为connection的options中配置的method。如果没有设置它,那么就要看params是否设了,如果设了就以POST方式请求,如果没有就以GET方式请求,注意:method名是大小敏感的,必须全面大写。

    callback : Function (Optional)
    无论请求成功还是失败它都被执行,其参数如下:
       options : Object
       不用说了。
       success : Boolean
       是否请求成功了。
       response : Object
       一个包含响应数据的XMLHttpRequest对象。

    success : Function (Optional)
    请求成功时执行的回调。它的参数如下:
       response : Object
       一个包含响应数据的XMLHttpRequest对象。
       options : Object
       不用说了。

    failure : Function (Optional)
    请求失败时执行的回调。它的参数如下:
       response : Object
       一个包含响应数据的XMLHttpRequest对象。
       options : Object
       不用说了。

    scope : Object (Optional)
    回调函数执行时所使用的scope。

    form : Object/String (Optional)
    将用于构造查询字符串的form的引用或id。

    isUpload : Boolean (Optional)
    当前请求是否是在上传文件(通常是自动检测的)。
    文件上传不是通过通常的Ajax技术实现,它们通过在form提交时动态插入一个iframe,返回时又移除这个iframe来实现,一通的英文,就是说响应数据是直接交给浏览器的,这时,就有点能理解为什么要用iframe了。因为它返回的东西会被浏览器直接插入到document对象下面,直给放当前页,那么页面当前内容将消失。所以,只有放一个iframe中了。且这个iframe得隐藏起来。
    如果返回结果是json,那么头部要设一下content-type:text/html。

    headers : Object (Optional)
    请求的头部。

    xmlData : Object (Optional)
    如果有它,那么params就不会起作用。

    jsonData : Object/String (Optional)
    如果有它,那么params就不会起作用。

    disableCaching : Boolean (Optional)
    为真时为Get请求创建一个param缓存。

    这个options对象也可以包含其他你需要用于回调的属性,大伙都晓得,这个options最后回被传给回调函数的,所以,也可以加入自己想要的东西。

    返回值:
    一个请求的id。它用于取消请求。。


事件:
  beforerequest : ( Connection conn, Object options )
  在请求发生之前触发。

  requestcomplete : ( Connection conn, Object response, Object options )
  请求结束时触发。

  requestexception : ( Connection conn, Object response, Object options )
  当http请求处于错误状态时触发。
分享到:
评论

相关推荐

    extJs 2.1学习笔记

    17. extJs 2.0学习笔记(Ext.data序论篇) 39 18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二)...

    extJs+2.1学习笔记.pdf

    extJs+2.1学习笔记.pdfextJs+2.1学习笔记.pdfextJs+2.1学习笔记.pdfextJs+2.1学习笔记.pdfextJs+2.1学习笔记.pdfextJs+2.1学习笔记.pdf

    ExtJs学习笔记,共30讲

    17. extJs 2.0学习笔记(Ext.data序论篇) 39 18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二)...

    extjs-Ext.ux.form.LovCombo下拉框

    extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题

    Extjs 继承Ext.data.Store不起作用原因分析及解决

    关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....

    Extjs4.0学习笔记大全.pdf

    Extjs4.0学习笔记大全.pdf,供大家学习

    ExtJs学习资料28-Ext.data.JsonStore数据存储器.doc

    ExtJs学习资料28-Ext.data.JsonStore数据存储器

    2828-Extjs4.0学习笔记大全.pdf

    ExtJS4 学习笔记(一)---window 的创建 Extjs4,创建 Ext 组件有了新的方式,就是 Ext.create(....),而且可以使用动态加载 JS 的方式 来加快组件的渲染,我们再也不必一次加载已经达到 1MB 的 ext-all.js 了,本文...

    ExtJS 3.4.0中的 ext.jsb2 文件

    该ext.jsb2文件是ExtJS3.4.0中的,因ExtJS4.0.0中没有这个文件,但可以与4.0.0版本共用。

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

    主要介绍了ExtJs的Ext.Ajax.request实现waitMsg等待提示效果,需要的朋友可以参考下

    精通JS脚本之ExtJS框架.part2.rar

    最后利用一个商品信息管理系统和一个企业任务管理系统,向读者演示了ExtJS在实际项目中的应用以及实现流程。  《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以...

    精通JS脚本之ExtJS框架.part1.rar

    最后利用一个商品信息管理系统和一个企业任务管理系统,向读者演示了ExtJS在实际项目中的应用以及实现流程。  《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以...

    Ext2.1中文文档

    extjs 2.1 中文文档\电子文档extjs 2.1 中文文档\电子文档

    Ext.ux.UploadDialog.zip

    EXTjs的上传组件

    ExtJs 学习笔记 Ext.Panle Ext.TabPanel Ext.Viewport第1/3页

    ExtJs 学习笔记基础篇 面板的使用(Ext.Panle、Ext.TabPanel、Ext.Viewport)

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    NULL 博文链接:https://maoyi606.iteye.com/blog/1782825

    Extjs4.0学习笔记

    ExtJS4学习笔记(一)---window的创建 ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(三)---VBox的使 ExtJS4学习笔记(四)---Grid的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(六)---多表头Grid ...

    ExtJs4_笔记.docx

    一、ExtJs中的Ajax:Ext.Ajax.request 23 二、元素对象Ajax式更新:Ext.Updater,[已弃用] 29 第四章 Ext.XTemplate 模板 31 一、使用标签tpl和操作符for 33 二、在子模板的范围内访问父元素对象 34 三、数组元素索引...

Global site tag (gtag.js) - Google Analytics