zoukankan      html  css  js  c++  java
  • 整理一个自己用的Ajax例子,封装,调用!

    什么是Ajax?

    也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

    核心机制为:XMLHttpRequest

    XMLHttpRequest属性:

     onreadystatechange  每次状态改变所触发事件的事件处理程序。
      responseText    
    从服务器进程返回数据的字符串形式。
      responseXML  
    从服务器进程返回的DOM兼容的文档数据对象。
      status                
    从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
      status Text        
    伴随状态码的字符串信息
      readyState        
    对象状态值,0—未初始化 1—正在加载  2—加载完毕 3—交互 4—完成。

    JS:

    function Ajax() {
         
    var xmlHttpReq = null;
         
    if (window.XMLHttpRequest) {
             xmlHttpReq 
    = new XMLHttpRequest();
         } 
    else {
             
    if (window.ActiveXObject) {
                  xmlHttpReq 
    = new ActiveXObject("Microsoft.XMLHTTP");
             }
         }
         
    var handler = null;
         
    this.invoke = function (url, mode, synchro, _handler) {
             handler 
    = _handler;
             xmlHttpReq.open(mode, url, synchro);
             xmlHttpReq.onreadystatechange 
    = this.callback;
             xmlHttpReq.send(
    null);
         };
         
    this.callback = function () {
             
    if (xmlHttpReq.readyState == 4) {
                  
    if (xmlHttpReq.status == 200) {
                       handler(xmlHttpReq.responseText);
                  } 
    else {
                       alert(
    "There was a problem retrieving the XML data:\n" + xmlHttpReq.statusText);
                  }
             }
         };
    }


     调用方式:

     

    var ajax = new Ajax();

    ajax.invoke(
    "http://www.xx.com/getlist.aspx?type=1&id=1","GET",true,function(response){
        
    var json = eval("(" + response + ")");
    });

    Jquery方式:

     

        //参数设置,设置的格式为key:value,如果{"cl":"check","dd":"dd"},获取的格式为cl=check&dd=dd
        var params = $.param({"il":Math.random()});
        
    //验证是否登录
        $.ajax({
            type:
    "POST",
            url:
    "Control/Login.aspx",
            data:encodeURI(params),
            success:
    function(response){
                
    var json = eval("("+response+")");
                
    //操作JSON,json[0];json.Table[0].id;
            }
        });


    //---------------
            $.getJSON("Control/GetData.aspx",{t:Math.random()},function(json){
                alert(json.ok);
                
    if(json.ok==true){
                    alert(json.Table[
    0].ID);
                }
            });

    //遍历JSON
    $.each( { name: "John", lang: "JS" }, function(i, n){
      alert( 
    "Name: " + i + ", Value: " + n );
    });

     

  • 相关阅读:
    DHCP Option 60 的理解
    程序中的魔鬼数字
    开源GUI-Microwindows之程序入口分析
    http报错之return error code:401 unauthorized
    内存泄漏以及常见的解决方法
    怎样对ListView的项进行排序
    getline函数
    JavaFx初探
    ListBox控件的操作与实现
    SQLite的SQL语法
  • 原文地址:https://www.cnblogs.com/xiaopin/p/1929019.html
Copyright © 2011-2022 走看看