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

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

阅读更多
上一篇主要是扎扎实实地翻译了一下Ext.data.Connection的官文档。尽管网上有位大侠也搞了个中文文档,但是,有不少遗漏的地方。这篇主要是研究一下文档中有些语焉不详的地方,这些问题只能透过研究代码来解释了。

  一、Ext.data.Connection是否有依赖的模块

  有。它建立在一个适配器类:Ext.lib.Ajax的基础之上,有人看了Ext.js的代码,发现,Ext貌似没有什么底层适配器,事实上,是有的,Ext.lib.Ajax提供了对XMLHttpRequest对象的底层的封装(我直接用ext-base.js)。

  二、在options中哪些东西会被编码到url后面

  params、extraParams、form。

  三、url参数与jsonData、xmlData的关系

  这是个非常重大的问题,且见Connection的代码:

  if((method == 'GET' || o.xmlData || o.jsonData) && p){
    url += (url.indexOf('?') != -1 ? '&' : '?') + p;
    p = '';
  }

  看这三行代码,觉得实在讲不清啦。但是,至少一件事是明白的:如果定义了xmlData、jsonData,且又定义了params/extraParams/form,那么并不会造成参数无用。还是照样传过去了的。

  至于xmlData与jsonData的优先级关系,这个要看Ext.lib.Ajax的源码了。源码如下:

                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;
                }

  可见,如果同时定义了xmlData和jsonData,那么将按发送xmlData中的数据,jsonData中的数据被忽略。

  四、那个disableCaching倒底有什么鸟用?

  貌似是否使用缓存的意思?文档让人郁闷,且见代码:

  if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){
    url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime());
  }

  原来是加个时间参数。拜托了。搞得我们一头的雾水啊。

  
分享到:
评论

相关推荐

    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

    14. **extJs 2.0 学习笔记(Ext.data序论篇)** 这部分介绍了Ext.data模块的基础,包括DataModel、Reader和Writer,是理解数据绑定和数据管理的关键。 15. **extJs 2.0 学习笔记(Ext.Panel终结篇)** Panel是...

    Ext.data.Store的基本用法

    `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。本文将详细介绍`Ext.data.Store`的基本用法。 #### 二、创建Ext....

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

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

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

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    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 3.4.0中的 ext.jsb2 文件

    在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...

    ExtJS ToolTip功能

    var store = Ext.create('Ext.data.ArrayStore',{ fields:['company','price','change'], data:[ ['3mCo',71.72,0.02], ... ] }); ``` 创建了一个数组类型的存储器(`ArrayStore`),用于存储公司的名称、...

    extjs2.1库文件

    ExtJS 2.1 库文件是Web应用程序开发的一个重要工具,主要用于构建富客户端界面。这个版本的ExtJS提供了一套完整的组件模型、布局管理、数据绑定和事件处理机制,帮助开发者快速创建交互性强、用户体验良好的网页应用...

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

    var store = new Ext.data.JsonStore({ url: 'jsonDataPerson.asp', root: 'rows', fields: ['name', 'age', 'sex'] }); store.load(); grid.store = store; ``` 这里创建了一个JsonStore,指定数据来源URL和...

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

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

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

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

    Ext2.1中文文档

    EXTJS 2.1中文文档提供了对EXTJS这一JavaScript库的详细解读,是开发者学习和理解EXTJS的重要参考资料。EXTJS是一种用于构建富客户端Web应用的框架,它以组件化和可扩展性著称,提供了丰富的用户界面组件,如表格、...

    extjs2.1 开发包

    EXTJS 2.1 是一个历史悠久但依然备受推崇的JavaScript框架,主要用于构建富客户端Web应用程序。这个开发包因其强大的功能和灵活性,使得开发者能够创建出与Windows操作系统界面类似的交互式用户体验。EXTJS的核心...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    store: Ext.create('Ext.data.TreeStore', { model: 'Department', root: { text: '所有部门', expanded: true, children: [ /* ... */ ] } }), displayField: 'text', valueField: 'id', mode: '...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    ### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...

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

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

    Ext.ux.UploadDialog.zip

    开发者可以通过EXT的API文档学习如何配置和使用UploadDialog,包括添加按钮、监听事件、设置参数等。对于初次接触EXTjs UploadDialog的开发者来说,理解EXT的组件体系结构、事件模型和配置选项是非常重要的。 通过...

Global site tag (gtag.js) - Google Analytics