ajax是一个与服务器端语言无关的技术,可以使用在任何语言环境下的web项目(如JSP,PHP,ASP等)。

ajax优点:

1) 页面无刷新的动态数据交互

2) 局部刷新页面

3) 界面的美观

4) 对数据库的操作

ajax使用

第一步:创建ajax引擎(获取XMLHttpRequest对象)

不同浏览器内核,获取XMLHttpRequest对象方法不一样。所以在创建ajax引擎之前需要先判断浏览器内核。

主流浏览器内核有:IE浏览器,火狐浏览器(Firefox)

创建方法一:

  1. var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP’);
  2. //第一个适用于火狐内核(Firefox),第二个适用于IE

创建方法二:

  1. var xmlhttp;
  2. if (window.XMLHttpRequest)
  3. {// code for IE7+, Firefox, Chrome, Opera, Safari
  4. xmlhttp=new XMLHttpRequest();
  5. }
  6. else
  7. {// code for IE6, IE5
  8. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  9. }

第二步:通过创建的XMLHttpRequest对象准备发送请求到指定服务器页面

  1. if(xmlhttp){ //检测XMLHttpRequest对象是否创建成功(若对象为null对象返回false)
  2. xmlhttp.open("get/post","URL",true/false);
  3. //调用XMLHttpRequest对象的open方法准备向服务器发送请求
  4. //参数一:请求的方式;(string)
  5. //参数二:发送ajax请求的URL;(string)
  6. //参数三:是否使用异步机制处理;(bool)
  7. //回调函数得知数据是否返回完成(数据是否全部获取)
  8. xmlhttp.onreadystatechange = function(){
  9. //实时监测数据交互状态(状态改变的事件触发器)
  10. //该事件在数据交互时会被反复调用
  11. //调用过程中会实时返回当前执行的状态
  12. if(xmlhttp.readyState == 4){
  13. //通过readyState属性获取当前状态
  14. //若当前状态为4则表示数据全部返回
  15. if(xmlhttp.status == 200){ //通过status属性获取http返回的状态码(200表示成功)
  16. //第四步:开始处理返回的数据(结果)
  17. //根据具体需求进行处理
  18. //通过responseText属性获取返回报文
  19. }
  20. }
  21. }

第三步:向服务器发送请求

  1. xmlhttp.send(); //调用XMLHttpRequest对象的send()方法发送请求
  2. //send()方法的参数也可以用了传递数据(post请求下)

最后附上一个完整版 :

  1. function ajax(method, URLdata, dispose) {
  2. var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : ActiveXObject('Microsoft.XMLHTTP');
  3. xmlhttp.open(method, URLdata, true);
  4. xmlhttp.onreadystatechange = function () {
  5. if (xmlhttp.readyState == 4) {
  6. if (xmlhttp.status == 200 || xmlhttp.status == 300) {
  7. dispose(xmlhttp.responseText);
  8. }
  9. }
  10. }
  11. xmlhttp.send();
  12. }

扩展——ajax处理Json格式数据

使用JSON.parse()方法将Json字符串转换为JS对象。

var Json = JSON.parse(json字符串);

  1. var r = JSON.parse(xmlhttp.responseText);
  2. alert(r[0].Name);

转换为js对象的json可以直接点出对象的属性;如果是集合,使用下标取对象。

ajax学习笔记(原生js的ajax)的更多相关文章

  1. Ajax学习笔记2之使用Ajax和XML

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Using Ajax wit ...

  2. Ajax学习笔记之一----------第一个Ajax Demo[转载]

    原文地址: http://www.cnblogs.com/pjx412/archive/2011/05/04/2037014.html 一.核心推动力:XMLHttpRequest对象XMLHttpR ...

  3. AJAX学习笔记——jQuery中的AJAX

    用jQuery实现Ajax jQuery.ajax([settings]) 1.type:类型, "POST"或"GET" ,默认为"GET" ...

  4. 表单验证--通过原生js模仿ajax的异步交互

    今天给大家带来个福利,我也是刚刚学习的很实用的一个东西,通过原生js模仿ajax的异步交互. 我的博客只是给那些新手看的大神勿喷,写的不好可留言,请指出. 因为当初自己学的时候一个问题不会找人问,知道 ...

  5. 原生js实现ajax与jquery的ajax库,及json

    这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...

  6. jQuery学习笔记之jQuery的Ajax(3)

    jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...

  7. 原生js实现Ajax

    一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataT ...

  8. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  9. 使用原生js写ajax

    // 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined") ...

随机推荐

  1. HDU 2767:Proving Equivalences(强连通)

    http://acm.hdu.edu.cn/showproblem.php?pid=2767 题意:给出n个点m条边,问在m条边的基础上,最小再添加多少条边可以让图变成强连通.思路:强连通分量缩点后找 ...

  2. ACM题目————网格动物

    Lattice animal is a set of connected sites on a lattice. Lattice animals on a square lattice are esp ...

  3. [团队项目]----Math Calculator

    团队项目 ----Math Calculator 任务: 1.每个团队从Github上fork这个项目的源代码 https://github.com/RABITBABY/We-have-bing 2. ...

  4. 银行账户管理系统(oracle数据库连接池,数据库的链接,)

    /* * 银行账户管理系统: * 属性:账户id,姓名,金额salary,利息类型: *管理员模块实现的功能: * 1.给用户开户 * 2.查询所有账户信息 * 用户模块实现的功能: * 1.显示用户 ...

  5. JDBC的批量处理数据

    主要用到的方法有: preparedStatement.executeBatch();//积攒的数据执行 preparedStatement.clearBatch();//积攒的清除掉 prepare ...

  6. getopts

    http://blog.sina.com.cn/s/blog_81c2cf020100v0wh.html http://www.cnblogs.com/xiangzi888/archive/2012/ ...

  7. CSU 1325: A very hard problem 中南月赛的一道题。

    1325: A very hard problem Time Limit: 3 Sec  Memory Limit: 160 MBSubmit: 203  Solved: 53[Submit][Sta ...

  8. jquery easyui中文培训文档

    目  录 1.... Accordion(可折叠标签)... 2 1.1          实例... 2 1.2          参数... 3 2.... DateBox(日期框)... 4 2 ...

  9. linux Centos 6.5 FTP服务原理及vsfptd的安装、配置(转)

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  10. windows下mysql自动定时备份bat

    @echo off : basedataset ip=192.168.12.41set user=rootset password=12456 set databaseName=test set /a ...