zoukankan      html  css  js  c++  java
  • 关于AJAX

    Ajax(异步JavaScript和XML)

      ajax主要用于异步加载页面,可以使用户在不刷新页面的情况下进行更新。

      ajax的主要优势是对页面的请求以异步的方式发送到服务器。而服务器不会再用整个页面来响应请求,它会在后台来处理请求,与此同时,用户可以继续与页面进行交互。你的脚本也可以按需加载和创建页面内容,而不会打断用户的浏览体验。

    1.XMLHttpRequest对象

      Ajax的核心技术就是XMLHttpRequest对象。这个对象充当着服务器与浏览器脚本之间的中间人的角色。

      但不同浏览器实现XMLHttpRequest对象的方式也不同,所以我们要为其写一个兼容的js。

      在IE浏览器中创建XMLHttpRequest对象,而且要注意,不同的IE浏览器使用的XMLHTTP对象也一样,为了兼容所有的对象,代码如下:

      function getHTTPObject(){

        if(typeof XMLHttpRequest == "undefined"){

          XMLHttpRequest = function(){

            try{ return new ActiveXObject("Msxml.XMLHTTP.6.0");}

              catch(e){}

            try{ return new ActiveXObject("Msxml.XMLHTTP.3.0");}

              catch(e){}

            try{ return new ActiveXObject("Msxml.XMLHTTP");}

              catch(e){}

            return false;

          }   

        }

        return new XMLHttpRequest;

      }  

    如果想要使用XMLHttpRequest对象,直接赋值给一个变量就行了:var request = getHTTPObject();

    XMLHttpRequest对象有许多方法,其中最有效的是open方法:

    function getNewContent(){

      var request = getHTTPObject();

      if(request) {
        request.open("GET","example.txt",true);

        request.onreadystatechange = function(){

          if(request.readyState == 4){

            var oDiv = document.createElement("div");

            oDiv.innerHTML = request.responseText;

            document.getElementsByTagName("body")[0].appendChild(oDiv);

          }

        }

        request.send(null);

      }else{

        alert("对不起,你的浏览器不支持XMLHttpRequest");

      }

    }

    getNewContent();

    open方法的三个参数分别是:指定请求类型GET,POST,SEND;获取文件的路径;指定请求是否异步。

    onreadystatechange 是一个事件处理函数,在服务器给XMLHttpRequest对象送回相应的时候触发。

    readyState 是服务器给XMLHttpRequest发回响应时,XMLHttpRequest的一个属性,浏览器再不同阶段更新readyState 的值:

    0:表示未初始化;

    1:表示正在加载;

    2:表示加载完毕;

    3:表示正在交互;

    4:表示完成;

    responseText用于保存从服务器返回的数据,格式为String类型;

    在制定了请求目标,也明确了如何处理响应后,就可以用send方法发送请求了:

    request.send(null);

  • 相关阅读:
    subprocess 子进程模块
    3.5 魔法方法
    ThinkPHP中,display和assign用法详解
    linux常用指令
    退出当前Mysql使用的db_name 的方式
    PHP中GD库是做什么用的? PHP GD库介绍11111111
    include跟include_once 以及跟require的区别
    全局变量跟局部变量
    关于define
    创建、删除索引---高级部分
  • 原文地址:https://www.cnblogs.com/rongy/p/6058883.html
Copyright © 2011-2022 走看看