Ajax与jQuery的介绍和简单使用(一)

认识Ajax

互联网的发展,基于B/S架构的Web应用程序越来越受推崇。但是b/s的架构的应用在界面效果及操控的方面比C/S的应用程序差很多,这也是Web应用程序普通存在一个问题。
Ajax就是为了弥补频发刷新界面导致浏览器一片空白的不足而诞生的。Ajax应用使用JavaScript异步发送请求,不用每次请求都重新加载页面,发送请求时可以继续其他的操作,在服务期响应完成后,再使用JavaScript将响应展示给用户。
使用Ajax技术,从用户发送请求到获得响应,当前用户界面在整个过程中不会受到干扰。而且我们可以在必要的时候只更新页面的一小部分,而不用刷新整个页面,即“无刷新”技术。这样就避免了重复加载。

问题:传统的Web开发技术和Ajax技术有什么区别?
解答:无论使用哪种技术开发,流程都是先由客户端发送HTTP请求,然后由服务器对请求生成响应。但传统的web开发技术和Ajax技术之间还是有不同很多差异的。
差异1:发送请求方式不同
传统的web程序通过浏览器发送请求,而ajax技术则是通过JavaScript的XMLHTTPRequest对象。
差异2:服务器响应不同
针对传统Web应用,服务器的响应是一个完整的页面,而采用Ajax技术后,服务器的响应只是需要的数据。
差异3:客户端处理的响应方式不同
传统的Web应用发送请求后,浏览器将等待服务器响应完成后重新加载整个页面。而采用Ajax技术后,浏览器不再空闲等待请求的响应,而只是通过JavaScript动态更新页面中需要更新的部分。

Ajax简介

Ajax技术可以通过JavaScript发送请求到服务器,在服务器响应结束后,可以根据返回的结果只更新局部的页面,提供连续的客户体验,那么什么是ajax呢?
Ajax(Asynchronous javaScript and XML)并不是一种全新的技术,而是有JavaScript.XML.CSS等几种现有技术整合而成的。Ajax的执行流程是,用户界面触发时间调用JavaScript,通过Ajax引擎–XMLHTTPRequest对象异步发送请求到服务器,服务器返回XML,JSON,或HTML等格式的数据,然后利用返回的数据使用DOM和CSS技术局部更新用户界面。图如下。
在这里插入图片描述
javaScript语言:Ajax技术的主要开发语言。
XML/JSON/HTML等:用来封装请求或响应的数据格式。
DOM(文档对象模型):通过DOM属性或方法修改页面元素,实现局部刷新。
CSS:改变样式,美化页面效果,提升用户体验度。
Ajax引擎:即XMLHTTPRequest对象,以异步方式在客户端与服务器之间传递数据。
Ajax大多数的技术之前都已经使用过了,没接触过的只有XMLHTTPRequest和JSON格式。下面我们先来认识XMLHTTPRequest及其常用方法和属性。

XMLHttpRequest

XMLHttpRequest对象可以在不刷新当前页面的情况下向服务器端发送异步请求,并接收服务器端的响应结果,从而实现局部更新当前页面的功能。尽管名为XMLHttpRequest,但它并不限于和XML文档一起使用,它还可以接受JSON和HTML等格式的文档的数据。XMLHttpRequest得到了目前所有浏览器的比较好支持,但它的创建方式在不同浏览器下还具有一定的差别。

1.创建XMLHttpRequest对象

在老版本IE浏览器(IE5和IE6)中创建XMLHttpRequest对象的方式比较新的版本的IE(IE7)以上及其它大部分浏览器中创建方式是不同的。为了更好的兼容,就需要了解他们语法的 区别。

语法: 老版本:

XMLHttpRequest =new ActiveXObject("Microsoft.XMLHTTP");

新版本

XMLHttpRequest=new XMLHttpRequest();

2.XMLHttpRequest对象常用属性和方法

对于Ajax技术而言,主要就是XMLHttpRequest的使用。XMLHttpRequest的常用的方法和属性如下。
XMLHttpRequest 常用的方法

方法名称说明
open(String method,String url,boolean async,String user,String password)创建一个新的HTTP请求 参数method:设置HTTP请求方法,如POST GET等 ,对大小写不敏感 参数URL:请求URL地址 参数async:可选,指定请求是否为异步方法,默认为true 参数user:可选,如果服务器需要验证,此处需要指定用户名;否则,会弹出验证窗口 参数password:可选,验证信息中的密码,如果用户名为空,此值将被忽略
send(String data)发送请求到服务器端 参数data:字符串,通过此请求发送的数据。此参数值取决于Open方法中的method参数。如果method值为“POST”,可以指定该参数。如果method值为“GET”,该参数为null
abort()取消当前请求
setRequestHeader(String header,String value)单独设置请求的某个HTTP头信息 参数header:要指定的HTTP头名称,参数value:要指定的HTT头名称所对应的值
getResponseHeader(String header)从相应中获取指定的HTTP头信息 参数header:要获取的指定HTTP头
getAllResponseHeader()获得响应的所有HTTP头信息

XMLHttpRequest常用属性

属性名称说明
onreadystatechage设置回调函数
readyState返回请求的当前状态 常用值:0-未初始化 1-开始发送请求 2-请求发送完成 3-开始读取响应 4-读取响应结束
status返回当前请求的HTTP状态码 常用值:200-正确返回 404-找不到访问对象
statusText返回当前请求的响应行状态
responseText以文本形式获取响应值
responseXML以XML形式获取响应值,并解析成DOM对象返回

提示: 由于XMLHttpRequest的常用属性和方法内容比较多,记住常用的属性和方法即可,其他的参数可在需要时查阅相关资料。
下面介绍如何使用。
实现Ajax的过程分为发送请求和处理响应两个步骤,发送请求可以分为两种方式即GET方式和POST方式;处理响应也分两种方式,即处理文本响应和处理XML响应,这里以处理文本响应为例进行。

使用Ajax发送Get请求即处理响应

使用Ajax技术实现下列功能。
在用户名验证页面,当用户名文本框焦点时,发送请求到服务器,判断用户名是否存在。如果已经存在则提示“用户名已被使用”。在完成这个功能中页面不会刷新。

代码—

//1.创建xmlHttpRequest对象
if(window.XMLHttpRequest){//返回值为true时说明是新版本或者其他浏览器
	xmlHttpRequest=new XMLHttpRequest();
}else{//返回false则表示是老版本的ie
	XMLHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
//2.设置回调函数
xmlHttpRequest.onreadystatechange=callBack;
//3.初始化xmlHttpRequest组件
var url="userServlet?name="+name;//服务器端URL地址,name为用户名文本框获取的值
//4.发送请求
xmlHttpRequest.send(null);
//回调函数callBack()中处理服务器响应的关键代码
function callBack(){
	if(xmlHttpRequest.readyState==4 $$ xmlHttpRequest.status == 200){
		var data=xmlHttpRequest.responseText;
		if(data == 'true'){
			$("#nameid").html("用户名已经被使用!");//nameid为显示的消息
		}else{
			$("#nameid").html("用户名可以使用!");/
		}
	}
}

在Servlet中·的代码如下:

doGet(HttpServletRequest request,HttpServletResponse response)throws Exception{
	String name=request.getParameter("name");
	boolean used =false;
	if("ajax".equals(name)){
		used=true;
	}else{
		used=false;
	}
	response.setContentType("text/html;charset=UTF-8");
	PrintWriter out = response.getWriter();
	out.print(used);
	out.flush();
	out.close();
}

在上面的示例中就是基本步骤。

使用Ajax 发送POST请求及处理响应

刚才实现了GET方式发送请求及处理文本方式响应,接下来我们来看一下POST方式的实现。实际上POST方式的实现跟GET方式类似,基本步骤相同,关键代码如下。


//1.创建xmlHttpRequest对象
if(window.XMLHttpRequest){//返回值为true时说明是新版本或者其他浏览器
	xmlHttpRequest=new XMLHttpRequest();
}else{//返回false则表示是老版本的ie
	XMLHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
//2.设置回调函数
xmlHttpRequest.onreadystatechange=callBack;
//3.初始XMLHttpRequest对象
var url="userServlet";//服务器端URL地址
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//4.发送请求
var data ="name"+name;//需要发送的数据信息,name为用户名文本框取得值
xmlHttpRequest.send(data);

function callBack(){
	if(xmlHttpRequest.readyState==4 $$ xmlHttpRequest.status == 200){
		var data=xmlHttpRequest.responseText;
			//省略将服务器返回的文本数据显示到页面的代码
		}
	}

对比使用Ajax发送GET请求与发送POSt请求的关键代码,可以发现它们的不同之处主要在下面。

发送方式步骤三:初始化XMLHTTPRequest对象步骤四
GET指定XMLHttpRequest 对象的open()方法中的method参数为“GET”指定XMLHttpRequest 对象的send()方法中的data参数为‘null’
POST(1)指定XMLHTTPRequest对象的open()方法中method参数为“POST” (2)指定XMLHTTPRequest对象要请求的HTTP头信息,该HTTP请求头信息为固定写法可以指定XMLHttpRequest对象的send()方法中的data参数的值,即该请求需要携带的具体数据。多个名/值对使用&连接

需要注意的是,采用GET方式发送请求时,通常会将需要携带的参数附加在URL路径后面一起发送,XMLHTTPRequest.send()方法不能传递参数,data参数设置为null即可;而采用POST方式发送请求时,则可以在XMLHTTPRequest.send()方法中指定传递的参数。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用AjaxjQuery实现的试衣系统是一种非常实用的技术,它允许用户通过浏览器进行试穿衣服,而无需离开当前页面。以下是一个简单介绍: 1. **用户交互**:用户可以在系统提供的服装列表中选择他们想要试穿的衣服。这个过程通常通过Ajax异步请求来实现,以便在用户选择服装时实时更新页面。 2. **数据获取**:Ajax请求通常用于从后端服务器获取服装的数据,包括尺寸、颜色、价格等。这些数据通常存储在数据库中。 3. **样式展示**:当用户选择一件衣服后,系统需要将该衣服的样式展示在页面上。这通常通过使用CSS和jQuery来实现。 4. **模拟试穿**:为了实现试衣效果,可以使用图像或动画技术来模拟用户穿上衣服后的效果。例如,可以将衣服放置在用户的虚拟模特上,或者通过动画来展示衣服穿在用户身上的效果。 5. **响应反馈**:如果用户对试穿的衣服满意,可以通过Ajax请求将购买信息发送到服务器。服务器处理这些信息并返回确认或错误消息。 下面是一个简单使用jQueryAjax实现的试衣系统的示例代码: HTML: ```html <div id="try-on-area"> <img id="model" src="model.jpg" /> <div id="try-on" data-size="S" data-color="blue">Size S, Color Blue</div> <div class="try-on" data-size="M" data-color="red">Size M, Color Red</div> <!-- More clothes --> </div> </div> ``` JavaScript (jQuery): ```javascript $(document).ready(function() { $('.try-on').click(function() { var size = $(this).data('size'); var color = $(this).data('color'); $.ajax({ url: 'fetch_clothes_data.php', // Your PHP script to fetch clothes data method: 'POST', data: { size: size, color: color }, success: function(response) { // Update model image with fetched data $('#model').attr('src', response); }, error: function() { alert('Failed to fetch data'); } }); }); }); ``` 这个示例代码中,当用户点击一件衣服时,会触发一个Ajax请求,将所选衣服的数据发送到服务器。服务器处理这些数据并返回一个新的图像URL,该图像将替换页面上的模特图像,以展示所选衣服的效果。 请注意,这只是一个简单的示例,实际的试衣系统可能需要更多的功能和优化,例如动态加载更多衣服、实时更新模特图像、处理用户交互等。同时,后端服务器也需要相应地处理来自客户端的请求,提供适当的数据和反馈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值