• 浅谈AJAX基本实现流程


    1、jsajax实现流程:

      (1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象.

      (2) 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

      (3) 设置响应HTTP请求状态变化的函数.

      (4) 发送HTTP请求。

      (5) 获取异步调用返回的数据.

      (6) 使用JavaScriptDOM实现局部刷新.

    2、创建XMLHttpRequest

      XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    创建XMLHttpRequest对象:

      var xmlhttp;

      if (window.XMLHttpRequest)

         {//兼容IE7+, Firefox, Chrome, Opera, Safari

         xmlhttp=new XMLHttpRequest(); }

      else

        {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  // 兼容 IE6, IE5}

    3、向服务器发送请求:

      将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() send() 方法

      open(method,url,async);

      send(string);

      例如:

      xmlhttp.open("GET","test1.txt",true);

      xmlhttp.send();

      method:请求的类型;GET POST

      url:文件在服务器上的位置

      asynctrue(异步)或 false(同步)

    postget

      与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:

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

      b) 向服务器发送大量数据(POST 没有数据量限制)

      c) 发送包含未知字符的用户输入时,POST GET 更稳定也更可靠

    4、设置响应HTTP请求状态变化的函数

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

    当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:

      xmlhttp.onreadystatechange=function()

        {

        if (xmlhttp.readyState==4 && xmlhttp.status==200)

          {

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

          }

        }

     

    5、服务器响应

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

    来自服务器的响应并非XML时用responseText

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

    来自服务器的响应是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;

  • 相关阅读:
    NodeJS NPM 镜像使用方法
    用for; while...do; do...while; 写出九九乘法表
    create-react-app创建的项目中registerServiceWorker.js文件的作用
    前端应该从哪些方面优化网站?
    JS基础整理面试题
    netcore实践:跨平台动态加载native组件
    iOS开发--Swift RAC响应式编程初探
    算法导论学习笔记 (页码:9 ~ 16)
    iOS开发-- 通过runtime kvc 移除导航栏下方的阴影效果线条
    iOS开发--面试
  • 原文地址:https://www.cnblogs.com/flower-qh/p/7116309.html
Copyright © 2020-2023  润新知