JavaScript脚本语言:JavaScript是一种具有丰富的面向对象特性的程序设计语言,利用它能执行许多复杂的任务,例如:jax就是利用JavaScript将DOM、XHTML(或HTML)、XML以及CSS等技术综合起来,并控制它们的行为。因此,要开发一个复杂高效的ajax应用程序,就必须对JavaScript有深入的了解。
XMLHttpRequest:是ajax技术中的核心技术。是一个具有应用程序接口的JavaScript对象,能够利用超文本传输协议(HTTP)连接服务器。通过XMLHttpRequest对象,ajax可以像桌面应用程序一样只同服务器端进行数据层面的交互,而不用每次都刷新页面,也不用每次都将数据的处理工作交给服务器来做,这样既减轻了服务器的负担又加快了相应速度,从而缩短了用户的等待时间。
使用XMLHttpRequet对象发送请求和处理相应之前,首先需要初始化该对象,由于XMLHttpRequest不是一个W3C标准,所以对于不同的浏览器,初始化的方法也不同。
IE浏览器:将XMLHttpRequest对象实例化为一个ActiveX对象。
var http_request=new ActiveXObject("Msxml2.XMLHTTP");
//或者
var http_request=new ActiveXObject("Microsoft.XMLHTTP");
Mozilla、Safari等其他浏览器:会将其实例化为本地的一个JavaScript对象。
var http_request=new XMLHttpRequest();
创建一个跨浏览器的XMLHttpRequest对象:
if (window.XMLHttpRequest){
http_request=new XMLHttpRequest();
}elseif (window.ActiveXObject){
try {
http_request=new ActiveXObject("Msxml2.XMLHttp");
} catch (e) {
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
1、XMLHttpRequest对象的常用方法
(1)open()方法:用于设置进行异步请求目标的URL、请求方法以及其他参数信息。
open("method","URL"[,asyncFlag[,"userName"[,"password"]]])
meshod:请求类型,get或post。
URL:用于指定请求地址,可以是绝对路径或相对路径,也可以传递查询字符串。
asyncFlag:可选参数,指定请求方式,true为同步请求,false为异步请求,默认为true。
userName:可选参数,指定用户名,没有时可省略。
password:可选参数,指定请求密码,没有时可省略。
具体用法可参考如下代码:
function Post(){
var name=document.form1.name.value;
var sex=document.form1.sex.value;
var Ajax=createXMLHttps();//---这是创建XMLHttps对象的函数,就不写了
var url="Ajax_Post.asp";//--接收数据的页面
var sendData="v_name="+escape(name);//包含中文的值,需要escape进行编码
sendData+="&sex="+escape(sex);
Ajax.onreadystatechange=function(){
if (4==Ajax.readyState){
//在这里进行你需要的一些操作
}
}
Ajax.open("GET",url,true);
//如果是POST方式提交数据,下两行必不可少
Ajax.setrequestheader("content-length",sendData.length);
Ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Ajax.send(sendData);//要POST的数据
}
接收数据时,直接使用request.form("name")即可获得name的值,为防止出错,也可对获取到的值再进行反编码
name=unescape(request.form("name"))'---用unescape函数
(2)send()方法:用于向服务器发送请求。如果请求声明为异步,该方法将立即返回,否则将直到接收到响应为止,
send(content)
content:指定发送的数据,可以是DOM对象的实例、输入流或字符串,如果没有参数,需要传递时可以设置为null。
用法举例:
<!--[if !supportLists]-->1 <!--[endif]-->var url = "login.jsp?user=XXX&pwd=XXX";
<!--[if !supportLists]-->2 <!--[endif]-->xmlHttpRequest.open("GET",url,true);
<!--[if !supportLists]-->3 <!--[endif]-->xmlHttpRequset.send(null);
此外,也可以使用send方法传递参数。使用send方法传递参数使用的是POST方法,需要设定Content-Type头信息,模拟HTTP POST方法发送一个表单,这样服务器才会知道如何处理上传的内容。参数的提交格式和GET方法中url的写法一样。设置头信息前必须先调用open方 法。
例如:
<!--[if !supportLists]-->1 <!--[endif]-->xmlHttpRequest.open("POST","login.jsp",true);
<!--[if !supportLists]-->2 <!--[endif]-->xmlHttpRequest.setRequestHeder("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
<!--[if !supportLists]-->3 <!--[endif]-->xmlHttpRequest.send("user="+username+"&pwd="+password);
需要注意的是根据提交方式的不同,两种提交方式分别调用后台的doGet方法和doPost方法。
(3)setRequestHeader()方法:为请求的http头设置值。
切记要放到open()之下。
setRequestHeader("label","value")
label:指定http头。
value:为指定的http头设置值。
(4)abort()方法:用于停止当前的异步请求。
(5)getAllResponseHeaders()方法:用于以字符串形式返回完整的http头信息,当存在参数时,表示以字符串形式返回有该参数指定的http头信息。
2、XMLHttpRequest对象的常用属性:
onreadystatechange:每个状态改变时都会触发这个事件的处理器,通常会调用一个JavaScript函数。
readyState:请求的状态,具体为:0=未初始化
1=正在加载
2=已加载
3=交互中
4=完成
responseText:服务器的响应,具体表现为字符串。
responseXML:服务器的响应,表示为XML。这个对象可以解析为一个DOM对象。
status:返回服务器的http状态码,如:200=”成功“
202=”请求被接收,但尚未成功“
400=”错误的请求“
404=”文件未找到“
500=”内部服务器错误“
statusText:返回http状态码对应的文本
3、xml语言
是eXtensible Markup Language(可扩展的标记语言)的缩写,它提供了用于表述结构化数据的格式。XMLHttpRequest对象与服务器交换的数据,通常采用xml格式,但也可以是基于文本的其他格式。
4、DOM
是Document Object Model(文档对象模型)的简称,它为xml文档的解析定义了一组接口。在ajax应用中,通过JavaScript操作DOM,可以达到不刷新页面的情况下实时修改用户界面的目的。
5、CSS
是Cascading Style Sheet(层叠样式表)的缩写,用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。在ajax中,通常使用css进行页面布局,并通过改变文档对象的css属性控制页面的外观和行为。
分享到:
相关推荐
Ajax(Asynchronous JavaScript and XML)是Web2.0的关键技术之一,它并非单一的新技术,而是将现有的技术(如JavaScript、XML、CSS、DOM等)以创新的方式组合使用,以实现更加高效、响应式的Web应用。Ajax的核心...
### Ajax和jQuery学习笔记 #### 一、Ajax基础与原理 **1.1 什么是Ajax?** Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用来创建快速动态网页的技术,通过在后台与服务器进行少量数据...
具体来说,AJAX技术允许在不刷新整个网页的情况下获取或发送数据到服务器。这一特性使得AJAX成为了Web2.0时代的关键技术之一。 #### 三、核心组件:XMLHttpRequest AJAX技术的核心组件是`XMLHttpRequest`对象。这个...
**AJAX笔记** 在网页开发中,AJAX(Asynchronous JavaScript and XML)是一种不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新,...
**Ajax技术详解** Ajax,全称为"Asynchronous JavaScript and XML",即异步JavaScript与XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现...
在本套PHP培训课程中,韩顺平老师深入浅出地讲解了PHP语言以及与之相关的Ajax技术。作为一位在IT教育领域有着丰富经验的讲师,韩顺平老师以其独特的教学方式,帮助学员掌握PHP的核心概念和实际应用,同时对Ajax技术...
- **桌面客户端化:** Ajax技术使得Web应用具备类似桌面客户端软件的灵活性,实现了加载动态化和操作客户端化,极大地提高了用户体验。 - **无需刷新整个页面:** 传统Web应用在用户提交数据后会刷新整个页面,而Ajax...
### Ajax学习笔记个人总结 #### 一、XMLHttpRequest对象简介 **XMLHttpRequest** 对象是 AJAX 技术的核心,它负责在客户端与服务器之间发送异步请求,无需刷新整个页面即可实现局部数据更新。要使用 ...
- **异步操作**:使用Ajax技术,可以发送异步请求,用户无需等待服务器响应即可继续进行其他操作。这种操作的特点是返回页面的局部内容,实现局部刷新,极大地提升了用户体验。 ### Ajax请求对象的创建与使用 在...
**AJAX 应用笔记(1) - 深入理解AJAX技术** 在Web开发领域,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许页面在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。本...
Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...对于想要深入理解和应用Ajax技术的开发者来说,是一份宝贵的资源。
4. **Ajax(Asynchronous JavaScript and XML)**:Ajax技术使得Web应用可以在不刷新整个页面的情况下,与服务器进行异步数据交换,提高了用户体验。它主要依赖于JavaScript的XMLHttpRequest对象,通过创建后台请求...
### AJAX学习笔记 #### 一、引言 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。...
**Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它使得网页更加互动、响应更快,提高了用户体验。本学习笔记将从基础概念、核心组成部分、工作原理...
JSON格式通常用于传输数据,特别是在Web应用程序中,作为Ajax技术的重要组成部分。它的优点在于结构清晰、易于理解,且在多种编程语言中都支持解析和生成JSON。 **Ajax与JSON的结合** 在Ajax应用中,JSON经常被...
在本篇Java相关课程系列笔记之十一中,我们聚焦于Ajax的学习,这是一项在Web开发中广泛使用的技术,用于创建动态、无刷新的用户界面。Ajax全称Asynchronous JavaScript and XML,即异步JavaScript和XML,它允许网页...
**Ajax(Asynchronous JavaScript and XML)技术详解** Ajax,全称异步JavaScript和XML,是一种在无需刷新整个网页的情况...同时,随着Fetch API和Web APIs的发展,Ajax技术也在持续演进,为开发者提供了更多可能性。
- **省市联动**:利用AJAX技术动态加载省市区数据,提供更友好的用户界面体验。 - **黄金价格波动图**:通过定时向服务器发送请求获取最新的黄金价格数据,绘制实时价格曲线图,增强图表的实时性和互动性。 #### ...
云笔记项目主要用于客户在线学习时记录笔记,在该功能基础上又扩展了分享,收藏,活动等功能,该项目采用MVC设计模式,Spring+MyBatis,Ajax,jQuery框架开发,在此技术上实现项目的登录模块,笔记本模块,笔记模块,...