Ajax技术 - (Asynchronous JavaScript + XML)
Ajax
Ajax = 异步JavaScript和XML,Ajax是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。可以再网页不重新加载的情况下,对网页的某部分进行更新。
传统网页(不使用Ajax)如果需要更新内容,必须重新加载整个网页。
注意:Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的web应用程序技术。
Ajax所包含的技术:
① 使用CSS和XHTML来表示
② 使用DOM模型来交互和动态显示
③ 使用XMLHttpRequest来和服务器进行异步通信
④ 使用JavaScript来绑定和调用
AJAX核心是XMLHTTPRequest对象,不同的浏览器创建XMLHTTPRequest对象方法是有差异的。
IE使用ActiveXObject,而其它的浏览器使用XMLHTTPRequest的JavaScript内建对象;
XMLHTTPRequest对象属性:
● onreadystatechange:状态改变的事件触发器,每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
● readySteat:请求的状态(0-1-2-3-4)
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用
● responseText:服务器的响应,返回数据的文本(内容)
● responseXML:服务器的响应,返回数据的兼容DOM的XML文档对象,这个对象可以解析为一个DOM对象
● responseBody:服务器返回的主题(非文本格式)
● responseStream:服务器返回的数据流
● status:服务器的HTTP状态码(如:404="文件未找到"、200="成功",等等)
● statusText:服务器返回的状态文本信息,HTTP状态码的相应文本(OK或Not Found(未找到) 等等)
XMLHttpRequset对象方法:
● abort():停止当前请求
● getAllResponseHeaders():把HTTP请求的所有响应首部作为键/值对返回
● getResponseHeaders("header"):返回指定首部的串值
● open(method,url,asyncFlag):初始化一个请求,建立对服务器的调用;xmlHttp.open("GET","test.jsp",true)
参数1:设置请求类型(GET或POST),参数2:文件在服务器上的位置;参数3:是否异步处理请求。
● send(content):向服务器发送请求
● setRequestHeaders("header","value"):把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。设置header并和请求一起发送('post')方法一定要
Ajax使用步骤:
① 创建XMLHttpRequest对象
② 设置请求方式
③ 调用回调函数
④ 发送请求
XMLHttpRequest写法:
//创建XMLHttpRequest对象
var xmlHttp ;
if(window.XMLHttpRequest){ //非IE
xmlHttp = = new XMLHttpRequest();
}else if(window.ActiveXObject){ //IE
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//设置请求方式
xmlHttpxhr.open('POST', '/hello.json', true)
//发送. psot数据要放在send里面
xmlHttp.send('username=luoshushu&passwore=123')
xmlHttp.addEventListener('load', function () {
if((xmlHttp.status >= 200 && xmlHttp.status < 300) || xmlHttp.status === 304){
var data = xmlHttp.responseText
console.log(data)
}else{
console.log('出错了')
}
})
ajax标准写法:
$.ajax({
url:"http://www.microsoft.com", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
data:{"id":"value"}, //参数值
type:"POST", //请求方式
beforeSend:function(){
//请求前的处理
},
success:function(req){
//请求成功时处理
},
complete:function(){
//请求完成的处理
},
error:function(){
//请求出错处理
}
});
Ajax技术 - (Asynchronous JavaScript + XML)的更多相关文章
- Ajax:一种网页开发技术(Asynchronous Javascript + XML)
创建新的 XMLHttpRequest 对象(Ajax 应用程序的核心): <script language="javascript" type="text/jav ...
- AJAX(Asynchronous JavaScript And XML)
AJAX(Asynchronous JavaScript And XML):异步的javascript和xml技术 作用:在不刷新整个页面的情况下,通过XMLHttpRequest向后台偷偷发起请求, ...
- 第18天 ajax技术和javascript加强(json)
第18天 ajax技术和javascript加强(json) 复习: B/S架构实现文件上传的思路? 使用a标签实现文件下载功能,有什么问题? 使用Servlet实现文件下载的思路? 今日任务 ...
- Web应用程序开发,基于Ajax技术的JavaScript树形控件
感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用, ...
- Ajax(Asynchronous JavaScript )and xml
JavaScript的两种任务执行模式--同步(synchronous)和异步(Asynchronous) 同步模式 JavaScript的执行环境是单线程的,意味着一次只能执行一个任务,如果有多个任 ...
- AJAX(Asynchronous JavaScript and XML)学习笔记
基本概念: 1.AJAX不是一种新的编程语言,而是一种使用现有标准的新方法. 2.AJAX最大的优点是在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容,用于创建快速动态网页(传统网页如 ...
- Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释
前端 <script type="text/javascript"> $(function(){ $("#tid").keyup(function( ...
- jQuery和ajax【“Asynchronous Javascript And XML】
环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...
- 用AJAX技术聚合RSS
有时候,你的Blog可能需要这样的功能: 在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blog和文章. 这个功能你可以叫它 ...
随机推荐
- python paramiko模块学习分享
python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...
- vue中的data用return返回
为什么在大型项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件. ...
- Python Flask高级编程之从0到1开发《鱼书》精品项目 ✍✍✍
Python Flask高级编程之从0到1开发<鱼书>精品项目 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数据迁移 ...
- js 获取指定字符串个数
参考:https://blog.csdn.net/maqinqin/article/details/5323824 function getStrCount(scrstr,armstr) { //sc ...
- 2019个人计划与Flag与期望
突然发现写博客是真的好. 希望未来能在其他地方写上日记. 总结2018中的个人缺陷: 1.忘掉了学习方法或者说学习方法不正确 2.偶尔就会去偷下懒,对自己不够严格,自控能力差. 3.心态虽比以前好很多 ...
- 【珍惜时间】vuepro
老规矩放上大大的github开源地址:https://github.com/goodheart222/vuepro 我们再来看看项目的效果,初步根据效果做到心中有数 看到效果的话,我们会发现,肯定是有 ...
- ansible 安装及基本使用
1.yum 安装 yum -y install epel-releaseyum -y install ansible ansible 配置秘钥 ssh-keygen -t rsa #直接回车不用设置密 ...
- 用shell编写小九九乘法表程序
1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo ...
- leetcode-80-删除排序数组中的重复项②
题目描述: 第一次提交: class Solution: def removeDuplicates(self, nums: List[int]) -> int: nums.reverse() f ...
- Lydsy2017省队十连测
5215: [Lydsy2017省队十连测]商店购物 可能FFT学傻了,第一反应是前面300*300背包,后面FFT... 实际上前面背包,后面组合数即可.只是这是一道卡常题,需要注意常数.. //A ...