Ext 自带的 Stroe 是不支持同步 ajax 访问的
但是 很多是否 又需要用 同步得到数据 所以 没事的 时候 扩展 一下Store 支持ajax同步
Ext.data.AjaxStore = Ext.extend(Ext.data.Store,{
loadAjaxData:function(url,bol){
if(bol==""||bol=="undefined"||bol==null) bol=false
var _sUrl=url;
if(url!=""&&url!="undefined"&&url!=null){
_sUrl=url;
}else if(this.url!=""&&this.url!="undefined"&&this.url!=null){
_sUrl=this.url;
}else if(this.proxy!=null&&this.proxy!=""&&this.proxy!="undefined"){
if(this.proxy.url==null||this.proxy.url==""||this.proxy.url=="undefined")
return;
else
_sUrl=this.proxy.url;
}else{
return;
}
this.loadData(this.getAjaxData(_sUrl),bol)
},
getAjaxData:function(url){
//if(url==""||url=="undefined") return {}
//alert(url)
var request= Ext.lib.Ajax.getConnectionObject().conn;
request.open("GET", url, false);
request.send(null)
try
{
return Ext.util.JSON.decode(request.responseText)
}
catch (e)
{
return [];
}
}
})
使用方法
var store=new Ext.data.AjaxStore({url:yourUrl,reader:yourReader})
store.loadAjaxData()
或者 store.loadAjaxData(yourUrl,boolen) //boolean 是说 是不是 累加 url得到的数据 ture 累加起来 false 为 覆盖 不累加
转自http://hi.baidu.com/zhoudz_jxdy/blog/item/c8f8b7eea78e9dfdb3fb953f.html
这篇文章比较古老了,反正我是没有成功。哎,extjs提供一个循环,我一看原来是线程睡眠。
extjs 所有的提交方式都是异步的(就我知道的),要用它实现同步,还真有点囧