ajax
是用来处理前后端交互的技术,可以改善用户体验,其本质是
XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容
同步:任务一个一个的执行,只有前面的任务执行完才会执行下一个任务,如果前面的任务是耗时操作,则需要一直等待
异步:多条任务并发执行,也就是一个任务的开启,不需要等待其他任务执行结束,效率较高
ajax的语言载体是JavaScript,最大的特点是页面不刷新
1、获取ajax对象
主流浏览器获取方式:火狐、谷歌、safari、opera、IE7以上
var xhr = new XMLHttpRequest();
IE7以下
var xhr = new ActiveXObject("microsoft.XMLHttp");
2、发起请求
创建请求:xhr.open(请求方式get/post,请求地址);
发送请求:xhr.send(post请求数据/get设置null);
3、接收数据
ajax可以接收字符串、html标签、css样式、xml、json
通过监听onreadystatechange事件。来接收ajax状态的变化(readyState属性)
readyState:
-0:表示未初始化,对象已经建立,但是没调用onen方法
-1:对象已建立,但是未调用send方法
-2:发送数据,已调用send方法,但当前状态及http头未知
-3:已接收部分数据,但是数据不全
-4:数据接收完毕
4、常用属性和方法
属性:
-responseText:将响应的数据作为字符串返回,只读
-responseXML:将响应的数据格式化为xml格式并返回,只读
-status:当前请求的http状态码
方法:
-open
-send
-setRequestHeader:设置请求头
get请求
url以字符串形式传递数据,对中文、&、=需要特殊处理,可以使用encodeURIComponent()方法进行编码,编码后的内容在服务端不需要解码,可以正常接收,get多个参数之间用&连接,参数名和参数值用=连接
var xhr = null; //获取ajax对象 if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else{ xhr = new ActiveXObject("Microsoft.XMLHttp"); } xhr.onreadystatechange = function(){ console.log(xhr.readyState); switch (xhr.readyState){ case 0: console.log("尚未初始化"); break; case 1: console.log("尚未建立连接"); break; case 2: console.log("正在发送数据"); break; case 3: console.log("正在接受数据"); break; case 4: console.log("数据接收完成"); //处理接到的数据,这下面是重点 var text = xhr.responseText; break; } } //创建请求 xhr.open('get','http://localhost/PHP/ajax01.php"background-color: #ccffcc">post请求-给服务器传参数,需要将参数写在send方法中:参数1=值1&参数2=值2...
-需要调用setRequestHeader()方法,把传送的参数封装成xml格式(模仿form表单提交数据:application/x-www-form-urlencoded);
-传递的中文、特殊符号都需要编码
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if (xhr.readyState == 4) { console.log("登陆成功:"+xhr.responseText); } } //等到输入的用户名和密码, var uname = "uname="+ encodeURIComponent(document.getElementById("uname").value); var pwd = "pwd="+encodeURIComponent(document.getElementById("pwd").value); xhr.open("post","http://localhos/PHP/ajax01.php"); //设置头信息,需要在open方法之后设置 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //设置参数 var str = uname+"&"+pwd; xhr.send(str);get/post的区别:
-请求数据量,get最多2k,post没有限制
-安全方面,post更安全
-传递数据的形式:get是url和参数一起发送,post是参数单独发送
jquery ajax请求
//AJAX $.ajax({ url:"data.txt", type:'get', dataType:'json', data:null, async:true, timeout:1000,//设定超时时间 一般都是3000毫秒 cache:false,//设定GET请求的时候不走 缓存数据,原理其实就是在URL末尾加随机数,默认是true success:function(data){ console.log(data) }, }) //JSONP //JSONP都是GET和异步请求的,不存在其他的请求方式和同步请求,而且jquery默认会给JSONP的请求清楚缓存 $.ajax({ url:"http://matchweb.sports.qq.com/kbs/calendar", type:'get', dataType:'jsonp', jsonpCallback:"fn",//自定义传递给服务器的函数名,而不是使用jquery自动生成的 jsonp:'cb',//把传递函数名的那个形参callBack变为cb success:function(data){ console.log(data) }, })以上这篇原生js jquery ajax请求以及jsonp的调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
原生js,ajax,jsonp
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]