• Ajax


      全称:异步javascript和XML

    使用jax的优势

    • 不需要安装插件支持
    • 通过适当的AJAX应用能达到更好的客户体验
    • 减轻服务器和带宽的负担

    Ajax工作原理

    在用户与服务器之间加了一个中间层,使用户操作与服务器响应异步化

    XMLHttpRequest对象实现异步交互

    XMLHttpRequest对象

    1.如何创建 XMLHttpRequest

          IE5,IE6    

    XMLHttpReq=new ActiveXObject("*****")

      其他

         原生XMLHttpRequest对象

    XMLHttpReq=new XMLHttpRequest();

    格式:

    var xmlHttp//声明一个保存XMLHttpRequest的变量
    
    function  CreatXHR(){
        if(window.ActiveXObject){
          xmlHttp=new ActiveXObject("******");//IE5,IE6
        }else{
          xmlHttp=new XMLHttpRequest();//IE7+以及其他浏览器
        }
    {

    2.创建好XHR对象后准备启动一个请求

    xhr.open(method,url,asynchronous);

    method:设置请求类型:get和post请求

    url:  请求地址

    asynchronous:  默认为true异步  false为同步

    3.设置请求头

    xhr.setRequestHeader(key,value);//可以设置多个头信息

    4.发送Get请求

    Get请求直接将输入的数据放入到异步请求的URL地址中,而send方法不发送任何数据.

    xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true);
    xmlhttp.send();

    5.发送POST 请求

    Post请求将数据统一放在send()方法中发送,请求地址没有任何信息.

    如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据

    xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("fname=Henry&lname=Ford");

    数据不多采用Get 否则  Post

    注册回调事件处理函数

    onreadystatechange 事件

    当请求被发送到服务器时,我们需要执行一些基于响应的任务。

    每当 readyState 改变时,就会触发 onreadystatechange 事件。

    readyState 属性存有 XMLHttpRequest 的状态信息。

     if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("***").innerHTML=xmlhttp.responseText;
        }

    注意: onreadystatechange 事件被触发 4 次(0 - 4), 分别是: 0-1、1-2、2-3、3-4,对应着 readyState 的每个变化

     处理服务端响应的内容

     如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性

    responseText 属性

    如果来自服务器的响应并非 XML,请使用 responseText 属性。

    responseText 属性返回字符串形式的响应,因此您可以这样使用:

    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

    responseXML 属性

    如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:

    xmlDoc=xmlhttp.responseXML;
    txt="";
    x=xmlDoc.getElementsByTagName("ARTIST");
    for (i=0;i<x.length;i++)
    {
        txt=txt + x[i].childNodes[0].nodeValue + "<br>";
    }
    document.getElementById("myDiv").innerHTML=txt;
  • 相关阅读:
    shutil模块详解
    pycharm连接服务器
    python中__name__属性的使用
    ORM学习笔记
    ORM连表操作
    python操作mysql实例
    python登录项目
    pycharm建立第一个django工程-----windows中
    打印顺序
    shell脚本
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/10074491.html
Copyright © 2020-2023  润新知