extJs 2.1学习笔记(Ext.data.Connection篇二)
来源:互联网 发布:广东历年相对湿度数据 编辑:程序博客网 时间:2024/05/01 07:10
上一篇主要是扎扎实实地翻译了一下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=' + (newDate().getTime());
}
原来是加个时间参数。拜托了。搞得我们一头的雾水啊。
至此,关于Ext.data.Connection的相关问题都差不多扫清,它的使用例子,前面的“通信篇”中有代码。可以参见。
- extJs 2.1学习笔记(Ext.data.Connection篇二)
- extJs 2.1学习笔记(Ext.data.Connection篇二)
- extJs 2.1学习笔记(Ext.data.Connection篇一)
- extJs 2.1学习笔记(Ext.data.Connection篇一)
- extJs 2.1学习笔记(Ext.data.JsonReader篇二)
- extJs 2.1学习笔记(Ext.data.JsonReader篇二)
- extJs 2.1学习笔记(Ext.data.JsonReader篇二)
- extJs 2.1 学习笔记(Ext.data.HttpProxy篇)
- extJs 2.1学习笔记(Ext.data.JsonReader篇一)
- extJs 2.1学习笔记(Ext.data.Store篇)
- extJs 2.1 学习笔记(Ext.data.HttpProxy篇)
- extJs 2.1学习笔记(Ext.data.JsonReader篇一)
- extJs 2.1学习笔记(Ext.data.Store篇)
- extJs 2.1学习笔记(Ext.data.JsonReader篇一)
- extJs 2.1学习笔记(Ext.Updater篇二)
- extJs 2.1学习笔记(Ext.Updater篇二)
- extJs 2.0学习笔记(Ext.data序论篇)
- extJs 2.0学习笔记(Ext.data序论篇)
- 邮件接收服务器(pop3)与发送服务器(smtp)大全
- extJs 2.1学习笔记(Ext.data.Connection篇一)
- 七律.桃花
- extJs 2.1学习笔记(Ext.Updater篇一)
- SVN命令大全
- extJs 2.1学习笔记(Ext.data.Connection篇二)
- extJs 2.1学习笔记(Ext.Updater篇二)
- js动态加载flash(ie only)
- Spring Mail实现发送邮件
- 儒豹公布2009年5月手机搜索热门关键词排行榜
- extJs 2.1 学习笔记(Ext.data.HttpProxy篇)
- 监控Oracle数据库的常用shell脚本
- dup/dup2 标准输入输出重定向
- extJs 2.1学习笔记(Ext.data.JsonReader篇一)