Ext同步与异步请求(转自garnettcwm)
同步方式请求:
- var?conn?=?Ext.lib.Ajax.getConnectionObject().conn;conn.open("GET",?'your?url',false);conn.send(null);alert(conn.responseText);var respText = Ext.decode(conn.responseText);?//若符合JSON规范,转化为JSON数组
或者
- var conn =Ext.lib.Ajax.getConnectionObject().conn;conn.open("POST", url, false);conn.send("发送到服务器端的信息");data = conn.responseText;alert(data);var respText =Ext.decode(conn.responseText);?//若符合JSON规范,转化为JSON数组
关键是要设置false这个参数
异步方式请求:
- Ext.Ajax.request({????????????url?:?'listpublishersms.action',????????????success?:?function(response,?options)?{??????????????????????????var?temp?=?"<chart?caption='"????????????????????????????+?startField.getValue().dateFormat("Y-m-d")????????????????????????????+?"至"????????????????????????????+?endField.getValue().dateFormat("Y-m-d")????????????????????????????+?"'?baseFontSize='12'?formatNumberScale='0'?showBorder='1'>";????????????????????????????var?responseArray?=?Ext.util.JSON????????????????????????????????????.decode(response.responseText);????????????????????????????alert(responseArray.list.length);????????????????????????????for?(var?i?=?0;i?<?responseArray.list.length?;i++)?{???????????????????????????????????????var?pname?=?responseArray.list[i].pname;????????????????????????????????????????var?count?=?responseArray.list[i].count;????????????????????????????????????????temp?+=?"<set?label='"?+?pname????????????????????????????????????????????+?"'?value='"?+?count?+?"'/>";????????????????????????????}????????????????????????????temp?+=?"</chart>";????????????????????????????chart_chart.setDataXML(temp);????????????????????????}????????????????????});?
Ext.decode()是将json字符串转换成对象;Ext.encode()是将对象转换成json字符串