1、js中ajax实现流程:

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

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

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

  (4) 发送HTTP请求。

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

  (6) 使用JavaScript和DOM实现局部刷新.

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:文件在服务器上的位置

  async:true(异步)或 false(同步)

post和 get:

  与 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;

浅谈AJAX基本实现流程的更多相关文章

  1. 浅谈AJAX的基本原理和原生AJAX的基础用法

    一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...

  2. 浅谈ajax

    Ajax 回顾 最本质的 ajax 其实是这样的: function Ajax(){ var xmlHttpReq = null; if (window.ActiveXObject){//IE5 IE ...

  3. 浅谈ajax的优点与缺点

    AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,A ...

  4. 浅谈Ajax 异步的几点细节

    1.浏览器执行到Ajax代码的这行语句的时候,发出了一个HTTP请求,欲想请求服务器上的数据.服务器此时开始I/O,所谓的I/O就是磁盘的读写,需要花费一些时间,所以不会立即产生下行的HTTP报文: ...

  5. 浅谈ajax同步、异步的问题

    最近实习的时候看到过firefox的同步.异步的警告,想着概念不是那么清楚,于是整理了一下ajax同步异步方面的知识.我是小白,做个笔记. 首先就是概念问题,ajax根据async进行区分同步和异步过 ...

  6. 浅谈HTTP与其工作流程

    一.什么是HTTP协议 HTTP协议(Hyper Text Transfer Protocol)翻译过来是超文本传输协议,也是一种restful风格的协议,在web开发和APP接口开发都很常用. HT ...

  7. 浅谈JS之AJAX

    0x00:什么是Ajax? Ajax是Asynchronous Javascript And Xml 的缩写(异步javascript及xml),Ajax是使用javascript在浏览器后台操作HT ...

  8. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

  9. 浅谈Websocket、Ajax轮询和长轮询(long polling)

    浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...

随机推荐

  1. 新版的K8S中的flannel.yaml文件中要注意的细节

    部署flannel作为k8s中的网络插件,yaml文件都大小同异. 但在要注意以下细节. 以前,只需要前面master判断. 现在也需要有not-ready状态了. tolerations: - ke ...

  2. MySQL Windows 下的安装

    my.ini ####################配置文件开始################### # For advice on how to change settings please s ...

  3. UICollectionView的常用方法

    class UICollectionView : UIScrollView //初始化,位置,风格 init(frame: CGRect, collectionViewLayout layout: U ...

  4. 基于Postman的API自动化测试

    https://segmentfault.com/a/1190000005055899 1. 安装 两种安装方式,我热衷于以chrome插件形式安装 Chrome插件 Mac App 2. 发送请求 ...

  5. python全栈开发day56-mysql

    1.数据库和表 show总结 SHOW DATABASES;返回可用数据库的一个列表. SHOW TABLES;返回当前选择的数据库内可用表的列表. SHOW COLUMNS FROM custome ...

  6. ifconf家族命令

    1  ifconfig 命令: ifconfig 命令用来查看和配置网络设备.当网络环境发生改变时可通过此命令对网络进行相应的配置. 查看: ifconfig : 显示正在激活中的网卡 ifconfi ...

  7. HDU2853 Assignment KM

    原文链接http://www.cnblogs.com/zhouzhendong/p/8284105.html 题目传送门 - HDU2853 题意概括 (来自谷歌翻译) 题解 这是一道好题. 我们首先 ...

  8. Java中字符串比较的问题

    package com.hxl; import java.util.Scanner; public class Test { public static void main(String[] args ...

  9. 爬虫3 requests基础2 代理 证书 重定向 响应时间

    import requests # 代理 # proxy = { # 'http':'http://182.61.29.114.6868' # } # res = requests.get('http ...

  10. JavaScript深拷贝实现原理简析

    原文:http://www.cnblogs.com/xie-zhan/p/6020954.html JavaScript实现继承的时候,需要进行对象的拷贝:而为了不影响拷贝后的数据对原数据造成影响,也 ...