Extjs4.0的Ajax

 

Extjs4.0的Ajax

Ext.Ajax 是Ext.data.Connection的一个子类,提供了用简单的方式进行Ajax的功能实现

1.  主要方法

Abort :终止一个没有完成Ajax请求

inLoading:判断指定的Ajax请求是不是正在运行

paresStatus:返回请求响应的代码

2.  Ext.ElementLoader

方便我们重新构建页面

Load方法

startAutoRefresh方法

 

 

1.            Ajax的基本应用

2. (function(){

3. Ext.onReady(function(){

4.     Ext.Ajax.request({

5.         url : 'extLession/ajax08/person.jsp',

6.         params :{ id : '01'},//params是一个对象,{}代表的是对象

7.         method : 'POST',

8.         timeout : 300,

9.         success : function(response,options){

10.                    //疑问:为什么response.responseText得到的是一个对象,用点不能去调用呢,弹出的对话框时undifined,而把jsp页面中的改成数组,在js中用eval去调用就可以

11.                    alert(eval(response.responseText)[0].name);

12.                 },

13.                 failure  : function(response,options){

14.                    //alert(response.responseText+"  "+options);

15.                 }

16.             });

17.          });

18.              })();

 

 

 

2.            Ajax中form属性的应用

3. (function(){

4. Ext.onReady(function(){

5.     Ext.get("btn").on("click",function(){

6.         Ext.Ajax.request({

7.            url : 'extLession/ajax08/person.jsp',

8.            params :{ id : '01'},//params是一个对象,{}代表的是对象

9.            method : 'POST',

10.                    timeout : 300,

11.                    form : 'myform',

12.                    success : function(response,options){

13.                        //疑问:为什么response.responseText得到的是一个对象,用点不能去调用呢,弹出的对话框时undifined,而把jsp页面中的改成数组,在js中用eval去调用就可以

14.                        alert(eval(response.responseText)[0].name);

15.                    },

16.                    failure  : function(response,options){

17.                        //alert(response.responseText+"  "+options);

18.                    }

19.                 });

20.             });

21.          });

22.      })();

23.      //以上讲的是ajax中form的应用,form的使用在ajax中的request中,当使用form属性时,表单中不用写action和submit按钮,

24.      //直接用form可以把表单中的东西传到后台,但要注意要在单击事件的情况下

25.              //优点是把控制层和显示层彻底的分开

 

 

 

 

3.     学习elementLoder,当点击按钮的时候,把系统时间显示到文本框中

4. (function(){

5. Ext.onReady(function(){

6.     Ext.get("btn").on("click",function(){

7.         Ext.Ajax.request({

8.            url : 'extLession/ajax08/person.jsp',

9.            params :{ id : '01'},//params是一个对象,{}代表的是对象

10.                    method : 'POST',

11.                    timeout : 300,

12.                    form : 'myform',

13.                    success : function(response,options){

14.                        //疑问:为什么response.responseText得到的是一个对象,用点不能去调用呢,弹出的对话框时undifined,而把jsp页面中的改成数组,在js中用eval去调用就可以

15.                        alert(eval(response.responseText)[0].name);

16.                    },

17.                    failure  : function(response,options){

18.                        //alert(response.responseText+"  "+options);

19.                    }

20.                 });

21.             });

22.          });

23.      })();

24.      //以上讲的是ajax中form的应用,form的使用在ajax中的request中,当使用form属性时,表单中不用写action和submit按钮,

25.      //直接用form可以把表单中的东西传到后台,但要注意要在单击事件的情况下

26.      //优点是把控制层和显示层彻底的分开

 

 

 

4.二级联动菜单,用 ajax

(function(){

    Ext.onReady(function(){

       //二级菜单的联动,在日常的开发过程中要有前台的缓存

      

       //增加一个辅助函数,把对象变成dom

       function createChild(value,name){

           var el = document.createElement("option");

           el.setAttribute("value",value);

           el.appendChild(document.createTextNode("name"));

           return el;

       }

      

       //1.得到city这个dom对象,是Element对象

       var cityObj = Ext.get("city");

       //2.我们未这个city对象注册一个change

       cityObj.on("change",function(e,select){

           //3.得到的是改变后的value值

           var ids = select.options[select.selectedIndex].value;

           //4.ajax 请求把后台数据拿过来

           Ext.Ajax.request({

              url : '/extjs/extjs!menu.action',//把所对应的城市的路径写上

              params : {ids:ids},//ids是时刻变化的

              method : 'post',

              timeout : 4000,

              success : function(response,opts){

                  var obj  = eval(response.responseText);//得到对象,用eval变成数组

                  //5.得到地区的那个area 的dom

                  var oldObj = Ext.get("area").dom;

                  //6.清楚里面项

                  while(oldObj.length>0){

                      oldObj.options.remove(oldObj.length-1);

                  }

                  //7.加入新的项

                  Ext.Array.each(obj,function(o){

                     Ext.get('area').dom.appendChild(createChild(o.value,o.name));//得到的是一个对象

                  });

              }

             

           });

       });

    });

})();

你可能感兴趣的:(Extjs4.0的Ajax)