ajax学习笔记(原生js的ajax)
ajax是一个与服务器端语言无关的技术,可以使用在任何语言环境下的web项目(如JSP,PHP,ASP等)。
ajax优点:
1) 页面无刷新的动态数据交互
2) 局部刷新页面
3) 界面的美观
4) 对数据库的操作
ajax使用
第一步:创建ajax引擎(获取XMLHttpRequest对象)
不同浏览器内核,获取XMLHttpRequest对象方法不一样。所以在创建ajax引擎之前需要先判断浏览器内核。
主流浏览器内核有:IE浏览器,火狐浏览器(Firefox)
创建方法一:
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP’);
//第一个适用于火狐内核(Firefox),第二个适用于IE
创建方法二:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
第二步:通过创建的XMLHttpRequest对象准备发送请求到指定服务器页面
if(xmlhttp){ //检测XMLHttpRequest对象是否创建成功(若对象为null对象返回false)
xmlhttp.open("get/post","URL",true/false);
//调用XMLHttpRequest对象的open方法准备向服务器发送请求
//参数一:请求的方式;(string)
//参数二:发送ajax请求的URL;(string)
//参数三:是否使用异步机制处理;(bool)
//回调函数得知数据是否返回完成(数据是否全部获取)
xmlhttp.onreadystatechange = function(){
//实时监测数据交互状态(状态改变的事件触发器)
//该事件在数据交互时会被反复调用
//调用过程中会实时返回当前执行的状态
if(xmlhttp.readyState == 4){
//通过readyState属性获取当前状态
//若当前状态为4则表示数据全部返回
if(xmlhttp.status == 200){ //通过status属性获取http返回的状态码(200表示成功)
//第四步:开始处理返回的数据(结果)
//根据具体需求进行处理
//通过responseText属性获取返回报文
}
}
}
第三步:向服务器发送请求
xmlhttp.send(); //调用XMLHttpRequest对象的send()方法发送请求
//send()方法的参数也可以用了传递数据(post请求下)
最后附上一个完整版 :
function ajax(method, URLdata, dispose) {
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : ActiveXObject('Microsoft.XMLHTTP');
xmlhttp.open(method, URLdata, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200 || xmlhttp.status == 300) {
dispose(xmlhttp.responseText);
}
}
}
xmlhttp.send();
}
扩展——ajax处理Json格式数据
使用JSON.parse()方法将Json字符串转换为JS对象。
var Json = JSON.parse(json字符串);
var r = JSON.parse(xmlhttp.responseText);
alert(r[0].Name);
转换为js对象的json可以直接点出对象的属性;如果是集合,使用下标取对象。
ajax学习笔记(原生js的ajax)的更多相关文章
- Ajax学习笔记2之使用Ajax和XML
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Using Ajax wit ...
- Ajax学习笔记之一----------第一个Ajax Demo[转载]
原文地址: http://www.cnblogs.com/pjx412/archive/2011/05/04/2037014.html 一.核心推动力:XMLHttpRequest对象XMLHttpR ...
- AJAX学习笔记——jQuery中的AJAX
用jQuery实现Ajax jQuery.ajax([settings]) 1.type:类型, "POST"或"GET" ,默认为"GET" ...
- 表单验证--通过原生js模仿ajax的异步交互
今天给大家带来个福利,我也是刚刚学习的很实用的一个东西,通过原生js模仿ajax的异步交互. 我的博客只是给那些新手看的大神勿喷,写的不好可留言,请指出. 因为当初自己学的时候一个问题不会找人问,知道 ...
- 原生js实现ajax与jquery的ajax库,及json
这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...
- jQuery学习笔记之jQuery的Ajax(3)
jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...
- 原生js实现Ajax
一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataT ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- 使用原生js写ajax
// 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined") ...
随机推荐
- “wsimport -keep ”生成客户端报错“Use of SOAP Encoding is not supported.”
本来想用 “wsimport -keep ” 生成客户端,结果报错“Use of SOAP Encoding is not supported.” 应该是缺jar包, 闲麻烦就发现了百度经验上的 这个 ...
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 ...
- 以雅酷网为实例从技术上说说dedecms的seo优化要注意哪些?
目前在做雅酷网 ,雅酷卡是雅酷时空公司的产品,我个人感觉用雅酷卡消费还是比较实惠的,而雅酷卡的特色便是雅酷健身卡,很多站长成天的趴电脑上,可以考虑办一张这样的卡,在周末的时候去健身中心活动活动,还是比 ...
- destoon短信接口修改方法
destoon是很优秀的B2B行业站程序.程序模块化开发契合度很高,二次开发起来也很顺畅.数据缓存,权限分配,SEO功能方面都不错. 但是在使用这套程序的时候,常常要用到发送短信的功能,而destoo ...
- jqeury之轮播图
$(document).ready(function(){ var sWidth = $('#pic1').width(); var len = $('#pic1 .sildebar li').len ...
- Unity中实现List类型的自定义GUI(ReorderableList)
感谢韩同学提供的资源 Unity本身提供了float,int,vector3..等类型字段的gui接口,而对于集合类型一般要自己硬写. 官方提供了一个List的自定义GUI,但使用起来非常复杂 Uni ...
- CurrentHashMap的实现原理
转载:http://wiki.jikexueyuan.com/project/java-collection/concurrenthashmap.html 概述 我们在之前的博文中了解到关于 Hash ...
- git总结
1.先画个图,先对git的操作有个直观了解 2.分析下git中文件是怎么存储的 正如下面所示git存储不是每次更改就会产生一个新的文件,而是产生一个版本,这个版本对应着记录每个文件的不同情况 具体的存 ...
- CentOS搭建Redis集群
集群原理-redis-cluster架构图 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的 ...
- key可以重复的Map集合:IdentityHashMap
所有Map操作中key的值是不能重复的,例如,HashMap操作时key是不能重复的,如果重复则肯定会覆盖之前的内容,如下代码所示. 范例:Map中的key不允许重复,重复就是覆盖 package o ...