置顶文章:《纯CSS打造银色MacBook Air(完整版)》

上一篇:《TCP的三次握手和四次挥手》

作者主页:myvin
博主QQ:851399101(点击QQ和博主发起临时会话)

::selection{ background:blue; color:red; } span{ color:red; }


JavaScript实现Ajax小结

Ajax大家应该都很熟悉,在此总结一下备忘。

至于Ajax的优点就不多说了,实现动态刷新,提升用户体验,缺点也还不少,比如破坏了浏览器的back功能,同一个URL打开的界面并不是完全相同,还有安全性能等方面,但是这些也阻挡不了我们使用Ajax的脚步~~~

这里以表单为例说一下实现Ajax的步骤:

  1. 先从表单中获取我们需要的数据
  2. 然后建立相应的URL
  3. 设置onreadystatechange函数
  4. 打开连接
  5. 发送请求

以上就是Ajax的实现步骤,接下来简单分步总结下。

首先是关于xrh对象的建立。

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

稍完整的可以这样写:

function creatXhr(){
    var xhr=null;
    try{
      xhr=new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try {
        xhr=new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e2){
        xhr=false;
      }
    }
    if(!xmlHttp && typeof XMLHttpRequest != 'undefined') {
      xhr=new XMLHttpRequest();
    }
}

以上对ie和非ie浏览器多做了兼容处理。

然后就该发送Ajax请求了,下面以一个表单项country为例:

function callReqest(){
    var country=document.getElementById('country').value;
    if((country==null)||(country==''))
        return;
    var url='example.php?country='+encodeURIComponent(country);
    xhr.onreadystatechange=update;
    xhr.open('GET',url,true);
    xhr.send(null);
}

以上获取了一个country表单项,onreadystatechange函数是readystate发生变化时触发的事件,可以以此来判断是否需要发生动作。

onreadystatechange函数如下:

function onreadystatechange(){
    if((xhr.readystatechange==4)&&((xhr.state==200)||((xhr.state>200)&&(xhr.state<300)))){
        document.getElementById('countryCode').value=xhr.responseText;
    }
}

readystatechange等于4的时候,说明资源已然完全下载到客户端了,可以使用了,同时查看状态码,在200到300之间,左闭右开,即可进行刷新,这里只是简单的将responseText给了一个表单项,当然也可以返回XML等相关数据,相关内容可查看其他相关介绍。

最后,至于触发Ajax,可以在表单的country里面添加onChange事件,这样用户在输入表单时就会触发Ajax了。



转载请记得说明作者和出处哦-.-
作者:myvin
原文出处:http://www.cnblogs.com/myvin/p/4865364.html


下一篇:《由外边距合并到BFC》

置顶文章:《纯CSS打造银色MacBook Air(完整版)》


JavaScript实现Ajax小结的更多相关文章

  1. DOM笔记(五):JavaScript的常见事件和Ajax小结

    一.常见事件类型 1.鼠标事件 事件名称 说明 onclick 鼠标单击时触发 ondbclick 鼠标双击时触发 onmousedown 鼠标左键按下时触发 onmouseup 鼠标释放时触发 on ...

  2. JavaScript的常见事件和Ajax小结

    一.常见事件类型 1.鼠标事件 事件名称 说明 onclick 鼠标单击时触发 ondbclick 鼠标双击时触发 onmousedown 鼠标左键按下时触发 onmouseup 鼠标释放时触发 on ...

  3. JavaScript之Ajax Util

    ajax(即:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML))经常在用,却经常忽略了底层的实现机制,今日写个小工具,大家也可拿去使用,如果写 ...

  4. Javascript本地存储小结

    前言 总括:详细讲述Cookie,LocalStorge,SesstionStorge的区别和用法. 人生如画,岁月如歌. 原文博客地址:Javascript本地存储小结 知乎专栏&& ...

  5. 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

    其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新htm ...

  6. 初识JavaScript,Ajax,jQuery,并比较三者关系

    一.基本认识 1.JavaScript 定义: javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态 ...

  7. 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求

    转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 ...

  8. javascript版Ajax请求

    什么是Ajax请求,Ajax也就是“Asynchronous JavaScript and XML”(异步JavaScript和XML),无刷新数据读取.能减少流量的消耗,也提高了浏览的流畅性,给用户 ...

  9. Javascript与Ajax

    不使用jquery来处理ajax请求该怎么做? 首先要明确html中的某些数据需要从服务端获得,也就是客户端向服务端请求(request)数据,服务端就响应(response)这个请求,把客户端要的数 ...

随机推荐

  1. C#调用C++ DLL 文件

    说来惭愧,都注册一年多了,却没有发表过一篇正式的博文,中间很多学习的过程也没有记录下来.如今到了一个新的环境,也有了学习的机会,一定要把每天的收获记录一下. 要做的东西需要引用C++编写的DLL,刚开 ...

  2. MongoDB学习笔记——集合管理

    创建集合 使用db.createCollection(name, options) 方法创建集合 name 所创建的集合名称必选! options 可选.指定有关内存大小及索引的选项 db.creat ...

  3. statement和preparedstatement用法区别

    1. PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象.   2.作为 ...

  4. 2012年 蓝桥杯预赛 java 本科 题目

    2012年 蓝桥杯预赛 java 本科 考生须知: l  考试时间为4小时. l  参赛选手切勿修改机器自动生成的[考生文件夹]的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答 ...

  5. ELK 信息统计分析-2

    Range 按数值类型的字段聚合统计 { "query": { "match_all": {} }, "aggs": { "ter ...

  6. [部署]CentOS yum源

    安装yum源 一般的软件都会提供一个.rpm的软件包,使用rpm指令安装了这个包后会自动添加一个yum仓库源,之后用yum就可以安装该软件了. 安装rpm包 rpm -ivh http://repo. ...

  7. TCP连接与关闭

    1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和S ...

  8. java9-6 内部类

    1. 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. B:外部类要访问内 ...

  9. Python进阶-面向对象

    类的成员 类的成员可以分为三类:字段.方法.属性 一:字段: 普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同 普通字段属于对象 静态字段属于类 字段的定义和使用 ...

  10. 补鞋匠---Cobbler 服务器自动搭建

    Cobbler 服务器自动搭建http://tshare365.com/archives/439.html