Ajax(异步JavaScript和XML)

  ajax主要用于异步加载页面,可以使用户在不刷新页面的情况下进行更新。

  ajax的主要优势是对页面的请求以异步的方式发送到服务器。而服务器不会再用整个页面来响应请求,它会在后台来处理请求,与此同时,用户可以继续与页面进行交互。你的脚本也可以按需加载和创建页面内容,而不会打断用户的浏览体验。

1.XMLHttpRequest对象

  Ajax的核心技术就是XMLHttpRequest对象。这个对象充当着服务器与浏览器脚本之间的中间人的角色。

  但不同浏览器实现XMLHttpRequest对象的方式也不同,所以我们要为其写一个兼容的js。

  在IE浏览器中创建XMLHttpRequest对象,而且要注意,不同的IE浏览器使用的XMLHTTP对象也一样,为了兼容所有的对象,代码如下:

  function getHTTPObject(){

    if(typeof XMLHttpRequest == "undefined"){

      XMLHttpRequest = function(){

        try{ return new ActiveXObject("Msxml.XMLHTTP.6.0");}

          catch(e){}

        try{ return new ActiveXObject("Msxml.XMLHTTP.3.0");}

          catch(e){}

        try{ return new ActiveXObject("Msxml.XMLHTTP");}

          catch(e){}

        return false;

      }   

    }

    return new XMLHttpRequest;

  }  

如果想要使用XMLHttpRequest对象,直接赋值给一个变量就行了:var request = getHTTPObject();

XMLHttpRequest对象有许多方法,其中最有效的是open方法:

function getNewContent(){

  var request = getHTTPObject();

  if(request) {
    request.open("GET","example.txt",true);

    request.onreadystatechange = function(){

      if(request.readyState == 4){

        var oDiv = document.createElement("div");

        oDiv.innerHTML = request.responseText;

        document.getElementsByTagName("body")[0].appendChild(oDiv);

      }

    }

    request.send(null);

  }else{

    alert("对不起,你的浏览器不支持XMLHttpRequest");

  }

}

getNewContent();

open方法的三个参数分别是:指定请求类型GET,POST,SEND;获取文件的路径;指定请求是否异步。

onreadystatechange 是一个事件处理函数,在服务器给XMLHttpRequest对象送回相应的时候触发。

readyState 是服务器给XMLHttpRequest发回响应时,XMLHttpRequest的一个属性,浏览器再不同阶段更新readyState 的值:

0:表示未初始化;

1:表示正在加载;

2:表示加载完毕;

3:表示正在交互;

4:表示完成;

responseText用于保存从服务器返回的数据,格式为String类型;

在制定了请求目标,也明确了如何处理响应后,就可以用send方法发送请求了:

request.send(null);

关于AJAX的更多相关文章

  1. jQuery之ajax实现篇

    jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

  2. Ajax及跨域

    概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...

  3. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  4. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  5. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  6. 调用AJAX做登陆和注册

    先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...

  7. Ajax 概念 分析 举例

    Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...

  8. ajax

    常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...

  9. 学习笔记之MVC级联及Ajax操作

    由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...

  10. javascript表单的Ajax 提交插件的使用

    Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...

随机推荐

  1. python3+ 模块学习 之 re

    re 模块 参考:Python3 如何优雅地使用正则表达式(详解系列) Python3 正则表达式特殊符号及用法(详细列表)    (出处: 鱼C论坛) 正则表达式 常用元字符:. ^ $ * + ? ...

  2. onethink入门笔记(一)

    由于公司需求所以大概花了一个星期搞了一个一个基于onethink的数据管理平台demo不得不说onethink这个基于thinkphp3.2.3的框架还是很棒的 让我这个没基础过php的人也能在一星期 ...

  3. 可变参数宏__VA_ARGS__和...

    __VA_ARGS__ 是一个可变参数的宏(gcc支持).实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点).这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所 ...

  4. 2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟

    通过此次实验,明白了多线程的设置和启动.synchronized代码块的用法.线程的优先级使用方法.知道了那几类资源是线程共享的. 我现在理解的多线程是:实例化一个继承了Thread类或实现了Runn ...

  5. awk 命令

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  6. SQL Server复制情况下的高可用方案(一)镜像+复制

    数据库镜像可以与事务复制一起使用实现数据库整体的高可用性和高性能,其中镜像可以提供故障检测和故障转移,复制则用于实现读写分离. 数据库镜像涉及一个数据库的两个副本,这两个副本通常驻留在不同的计算机上. ...

  7. C# dev开发过程中的山炮问题汇总

    1. 后台注册控件,页面form提交,后台获取控件方法  Request.Form["name"]:

  8. 关于shape_trans (ConnectedRegions, ConvexRegions, 'convex')的作用于对比

    * crystal.hdev: extraction of hexagonally shaped crystals via local thresholding and region post-pro ...

  9. Git分支的前世今生

    摘自Jack__CJ  CSDN博客,写得很好,保存一下. 导读 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系 ...

  10. XML.04-dom4j和XPath

    body,td { font-family: calibri; font-size: 10pt } XML.04-dom4j和XPath dom4j的基本使用 XPath 啥是XPath XPath语 ...