zoukankan      html  css  js  c++  java
  • AJAX运行原理

    AJAX在不重新加载整个网页的情况下,对网页某部分进行更新

    技术核心是XMLHttpRequest对象(简称XHR)

    1、XHR 创建对象(跨浏览器)

    if(window.XMLHttpRequest){
        var xhr = new XMLHttpRequest();
    }else{
        var xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    2、XHR 请求

    get 和 post

    *大部分情况下都用get请求,因为get比post更

    以下情况使用post请求:

    1、无法使用缓存文件(更新服务器上的文件或数据库)

    2、向服务器发送大量数据

    3、发送包含未知字符的用户输入时,post比get更稳定可靠

     

    问题1、 IE浏览器第一次会向服务器端请求,获取最新数据,而第二次它就默认获取的缓存数据,导致数据不更新

    解决方法:使用js随机字符串让每次请求都要数据更新

    xhr.open('get','demo.php?rand='+Math.random(),false);

    GET一般是url提交请求”demo.php?name=Lee&age=100“;

    POST一般是web表单提交,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

    xhr.open("POST","ajax_test.asp",true);
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xhr.send("fname=Bill&lname=Gates");

    3、XHR 服务器响应

     

    4、XHR readyState

     当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
             alert(xhr.responseText);       //打印服务器端返回回来的数据
        }
      }
  • 相关阅读:
    box-sizing: border-box的作用
    什么时候用created,什么时候用mounted
    圣杯布局
    关闭浏览器 清除session
    js this
    js 深拷贝
    经常犯的一些小错误
    语法:c++对关于空指针0/NULL/nullptr三者的演变
    常用的函数
    C++一些小技巧
  • 原文地址:https://www.cnblogs.com/hynb/p/5855096.html
Copyright © 2011-2022 走看看