AJAX介绍

通过 AJAX,你可以创建更好、更快以及更友好的 WEB 应用程序。

AJAX 基于 JavaScript 和 JavaScript的XMLHttpRequest对象。

AJAX 应用程序独立于浏览器和平台,是浏览器端技术非服务器端.

AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

它可以实现在不重载页面的情况下, 比如:用户名注册检测、动态load或创建某块内容。

AJAX 使用 Http 请求

传统的HTTP请求,是每当用户提交输入后服务器都会返回一张新的页面,可有时我们需要的只是更新部分页面.

XMLHttpRequest对象:

通过使用 XMLHttpRequest 对象,web 开发者可以做到在页面已加载后从服务器更新页面!

用户可以停留在同一个页面,他不会注意到脚本在后台请求过页面,或向服务器发送过数据。 服务器处理完后会回传结果然后更新页面。

基础语法

var xmlHttp;
function createXmlHttp() {// code for IE7+, Firefox, Chrome, Opera, Safariif (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();} else { // code for IE6, IE5xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}
}//使用ActiveXObject,其他浏览器使用XMLHttpRequest内建对象

XMLHttpRequest对象三个属性

onreadystatechange 属性

存有处理服务器响应的函数xmlHttp.onreadystatechange=function() { // 我们需要在这里写一些代码 }

readyState 属性

存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange后面的函数就会被执行。

responseText 属性

可以通过 responseText 属性来取回由服务器返回的数据。

  xmlHttp.onreadystatechange = function() { //服务器的HTTP状态码==200即响应成功if(xmlHttp.readyState==4 && xmlHttp.status==200) { // 从服务器的response获得数据 alert(xmlHttp.responseText);} else{                 document.getElementById(“div1”).innerHTML=“<img src=‘loadding.gif’/>”}} 

向服务器发送一个请求

要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。

open() 方法:

第一个参数定义发送请求所使用的方法(GET 还是 POST)。第二个参数规定服务器端脚本的 URL。第三个参数规定应当对请求进行异步地处理。

send() 方法:

可将请求送往服务器。如:

  xmlHttp.open("GET","time.jsp?username=tom",true); xmlHttp.send(null); 

完整代码 (校验用户名唯一性)

//校验用户名唯一性
function NameOnly(){
//  alert(1);createXmlHttp();var username = document.getElementById("username").value;var url = "http://192.168.8.4:8080/reg.jsp?username=" + username + "&date=" + new Date();//当对象的状态发生改变,就执行一次回调函数//alert(22);//alert(url);xmlHttp.onreadystatechange = function(){//   alert(xmlHttp.readyState);if(xmlHttp.readyState == 4) {//代表服务器已经处理完该请求//  alert(xmlHttp.status);//        if(xmlHttp.status==200 || xmlHttp.status==0) {//状态码==200 代表状态码是正常的(404 500不正常)//如果在本地运行(如:C:\\ajax\\ helloworld.htm),那么status属性不管是在”成功”还是”页面未找到”的情况下,都返回的是0。//也就是说没有通过Web服务器形式的Ajax请求返回值都是0;//       alert(22);var msg = xmlHttp.responseText; //获取服务器端的响应文本if(msg==1){alert("被注册!!");} else alert("该账号可以注册");xmlHttp.responseXml();//如果服务器端返回的是xml文档//     }}};xmlHttp.open("GET", url, true);    xmlHttp.send(null);
}

转载于:https://www.cnblogs.com/suncoolcat/p/3285666.html

【JavaScript】AJAX总结(异步JavaScript和XML)相关推荐

  1. 雷神javaweb缺失--》Ajax:异步 JavaScript 和 XML

    AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML). 通过 AJAX,JavaScript 无需等待服务器的响应,而是: 在等待服 ...

  2. Ajax:异步js和xml

    如果通过之前的转发,或者重定向,很多问题没法解决 比如我给某个视频点个赞,你经过转发或者重定向,最后虽然点赞成功了,但页面刷新了,视频从头开始放了. 异步刷新:如果网页某一个地方需要修改,异步刷新可以 ...

  3. AJAX (异步 javascript 和 xml)

    用 form 可以发请求,但是会刷新页面或新开页面 用 a 可以发 get 请求,但是也会刷新页面或新开页面 用 img 可以发 get 请求,但是只能以图片的形式展示 用 link 可以发 get ...

  4. AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页

    参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...

  5. 14 Flask mega-tutorial 第14章 Ajax(百度翻译API):异步JavaScript和XML的缩写(Asynchronous Javascript And XML)

    如需转载请注明出处. win10 64位.Python 3.6.3.Notepad++.Chrome 67.0.3396.99(正式版本)(64 位) 注:作者编写时间2018-03-07,linux ...

  6. [转]掌握Ajax 第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 [IBM]

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

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

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

  8. AJAX(Asynchronous JavaScript And XML)

    AJAX(Asynchronous JavaScript And XML):异步的javascript和xml技术 作用:在不刷新整个页面的情况下,通过XMLHttpRequest向后台偷偷发起请求, ...

  9. WEB前端 深入了解JavaScript ajax—XHR对象

    前面的话 1999年,微软公司发布IE5,第一次引入新功能:允许javascript脚本向服务器发起HTTP请求.这个功能当时并没有引起注意,直到2004年Gmail发布和2005年Google Ma ...

  10. JavaScript Ajax

    AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语 ...

最新文章

  1. .NET深入学习笔记(3):垃圾回收与内存管理
  2. 将UTC日期时间转换为本地日期时间
  3. 蓝桥杯练习系统习题-基础训练2
  4. 《现代前端技术解析》读后鬼扯
  5. mysql 1030 error:Got error 28 from storage engine
  6. 微信小程序入门四: 导航栏样式、tabBar导航栏
  7. 取消选中目标CALL
  8. 为什么大部分的婚姻都是凑合?数据告诉你真相
  9. 中国百亿富人达315位:马云身价超3千亿,每小时净赚超上市公司高管年薪
  10. python map什么意思_Python中map是什么意思
  11. spring boot 源码_springboot源码架构解析listener
  12. python+freetype+opencv 图片中文(汉字)显示 详细图文教程和项目完整源代码
  13. codeblocks16.01 中配置Opencv3 姿势
  14. Python进程池使用
  15. ToneBoosters Plugins Bundle for Mac(音频效果器插件包)
  16. [00011]-[2015-08-26]-[00]-[Windows 程序设计 ---MFC 截屏---BMP格式 ---JPG格式]
  17. LabVIEW编程LabVIEW开发 控制雷赛运动控制器SMC604A例程与相关资料
  18. SOSO发布国内首家高清街景地图 引领地图换代
  19. GET 和POST的用法
  20. 暴雪-关于坚持的故事(转)

热门文章

  1. 图文解说:Discuz论坛基础设置第一弹
  2. 很好的一款监控web请求的工具,fiddler.
  3. 《Solution-Centric Organization》解决方案导向型组织 节选 IV
  4. javaeye怎么打不开了?当前!2010,10,24,23:08
  5. [导入]七大千年数学难题
  6. PMP项目管理认证体系
  7. 位域(Bit-fields)分析
  8. L1-070 吃火锅 (15 分)-PAT 团体程序设计天梯赛 GPLT
  9. 蓝桥杯 ALGO-123 算法训练 A+B problem
  10. 蓝桥杯 ALGO-92 算法训练 前缀表达式