ajax学习心得
来源:互联网 发布:卡巴斯基官网软件 编辑:程序博客网 时间:2024/06/06 03:56
本文为学习慕课网视频http://www.imooc.com/learn/250的学习心得
一、ajax基本概念
ajax即“Asynchronous Javascript And XML”(异步JavaScript和XML),利用回调机制来实现异步请求。
ajax的核心是XmlHttpRequest对象。
一个ajax的实现原理为:
1、利用html和CSS来实现页面,表达信息
2、运用XmlHttpRequest对象来和服务器进行数据交换
3、JavaScript操作DOM,实现局部刷新
二、XMLHttpRequest对象的创建
var request;if(window.XmlHttpRequest){ request = new XmlHttpRequest;//IE7+、FireFox、 Chrome···}else{ request = new ActiveXObject('Microsoft.XmlHttp');//IE6、IE5}
三、XmlHttpRequest发送请求
//请求方式,请求地址,是否异步open(method,url,async);/*请求内容,get请求的请求内容已经拼接在了url后面,所以send没有参数,post请求一定要有参数。*/send(string);
请求方式分为get请求和post请求
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
他们之间的区别参见以上这篇文章,我觉得讲得不错。
例子
request.open('get','get.php',true);request.send();
request.open('post','post.php',true);//设置http头信息request.setRequestHeader('Content-type','application/x-www-form-urlencoded');request.send('name=王二狗&sex=男’);
在请求的过程中,需要监听readyState的变化,它的变化代表着请求响应的变化。
readyState
0:请求尚未初始化,open还没有调用
1:服务器连接已建立,open方法已经调用
2:请求已经接收,已经接收到头信息了
3:请求处理中,已经接收到响应的主体了
4:请求已完成,且响应已就绪,就是响应完成了
var request;if(window.XmlHttpRequest){ request = new XmlHttpRequest;//IE7+、FireFox、 Chrome···}else{ request = new ActiveXObject('Microsoft.XmlHttp');//IE6、IE5} request.open('get' , 'get.php' , true); request.send() request.onreadyStateChange = function(){ if(request.readyState === 4 && request.status === 200){ //JS操作DOM局部刷新内容 } }
三、JSON数据格式
JSON,JavaScript对象表示法(JavaScriptObjectNotation)
JSON和XML比较
1、JSON 长度和XML比起来很短小
2、JSON的读写速度更快,数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
3、JSON可以直接用JavaScript内建的方法进行解析,转化成JavaScript对象。
4、······
JSON解析:eval和JSON.parse
eval
var jsonObi = eval('(' + jsonData + )');
JSON.parse
var jsonObj = JSON.parse(jsonData);
http://www.zhihu.com/question/20591877
四、ajax跨域
JavaScript出于同源策略的限制,不允许跨域的调用其它页面的对象。
跨域的解决方法
1、代理
其实是后端处理的方法
2、JSONP
JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。
- ajax学习心得
- ajax学习心得。。。
- ajax学习心得
- Ajax学习心得
- Ajax学习心得
- ajax学习心得
- Ajax学习心得
- AJAX学习心得
- Ajax学习心得
- Ajax 的学习心得
- Ajax 的学习心得2
- ajax学习心得(1)
- ajax轮询 学习心得
- AJAX学习心得分享----(一)AJAX初识+原生态AJAX
- AJAX学习心得分享----(二)使用JQuery实现AJAX效果
- 学习心得
- 学习心得
- 学习心得
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny(转)
- Nginx反向代理设置总结
- iOS 视图控制器转场详解(上)
- ThreadPool用法与优势
- Ubuntu Thunderbird Exchange Server
- ajax学习心得
- fmt:formatDate标签的输出格式
- Linux CPU affinity
- struts2导出excel
- iOS 视图控制器转场详解(下)
- 高性能后台服务器架构设计
- 动态规划算法 决策树(ID3 C4.5)
- AlphaGo背后的搜索算法:蒙特卡罗树搜索 && alphago 代码
- scala函数