jQuery_review之通过$.get()和$.post()方法来实现异步加载

$.get()和$.post()这两个方法,顾名思义,一个就是通过get方法来获取数据,另外一个通过post方法来获取数据。这两个方法在具体有什么区别呢?重点有三个方面的区别,第一个get传送的数据理论在2KB之内,post方法原则上是不受限制的。第二个方面,一个在地址栏上会显示当前的请求内容,这种在有用户名和密码的时候就不好了。另外一个是在请求体当中,这个虽然也不是很安全,但是至少要比GET方法要安全那么一点点了。第三个,其实get方法最初是用来设计请求静态内容的,而POST则是用来提交增删改数据的,只是后来的这个区分没那么明显而已了。

回头来说    $.get()和$.post这两个方法。这个两个方法都可以接受四个参数,第一个参数是告诉jQuery我要到什么地方去请求数据,第二个参数,是可选参数,是告诉jQuery我的请求数据是什么,这些请求数据会变成请求数据的一部分,主要是用于传递key/value的值到服务端进行处理。第三个参数是回调参数,回调参数只有在调用成功的时候才会调用。这里就有一个问题,如果回调不成功的话,应该怎么办?这时候就应该参考jQuery的全局方法中对于返回异常的处理了。最后一个参数,就是期望服务器传递回来的数据类型,这些数据类型包括但是不限于xml,html,json,script等等内容。尤其注意的是xml,xml这个东西其实和html是同源的,他们的老祖宗估计都是一个。所以,很多原本用于html的jquery方法,都是可以使用到xml上的,比如使用$()这个万能工厂,将返回的xml数据变成一个object对象,使用.find()来找到子元素,使用attr找到属性的值,使用.text()找到元素中的文本值。

还有一个要注意的是,前端写了期望后端发送的数据是xml,那么后端就应该按照前端的约定来发送数据:response.setContentType("text/xml;charset=UTF-8");

Server端的代码如下:

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String name = req.getParameter("name");
		String address = req.getParameter("address");
		StringBuffer sb = new StringBuffer();
		sb.append("<div><span>hi! nice to meet you! ");
		sb.append(name).append(",(");
		sb.append(address).append("),");
		sb.append("how are you getting along?</span></div>");

		StringBuffer xmlSb = new StringBuffer();
		xmlSb.append("<book>")
			 .append("<title>")
			 .append("No ventured No gained")
			 .append("</title>")
			 .append("<publish>")
			 .append("Chinses publish")
			 .append("</publish>")
			 .append("</book>");
		//resp.setContentType("text/html;charset=utf-8");
		resp.setContentType("text/xml;charset=utf-8");
		resp.getWriter().print(xmlSb.toString());
	}

前端的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<script type="text/javascript" src="jquery-1.8.3.js"></script>
	<script type="text/javascript">
		$(function(){
			$("#getContentByAjax").click(function(){
				//$.post("test",{name:"czz",address:"address"},callBack,"html");
				//$.get("test",{name:"czz",address:"address"},callBack,"html");
				$.get("test",{name:"czz",address:"address"},callBack,"xml");
			});
			function callBack(data,textStatus){
				//$("#showText").html(data);
				var title=$(data).find("title").text();
				var publish = $(data).find("publish").text();
				$("#showText").text(title+" "+publish);
			}
		});
  	</script>
  </head>
  <body>
  	<div id="showText"></div>
  	<input type="button" id="getContentByAjax" value="sendAjax">
  </body>
</html>

jQuery_review之通过$.get()和$.post()方法来实现异步加载,布布扣,bubuko.com

时间: 2024-10-22 17:16:42

jQuery_review之通过$.get()和$.post()方法来实现异步加载的相关文章

jQuery_review 之 通过.load()方法来实现异步加载HTML文档

原生的ajax编写起来是相当麻烦的一件事情,我们不仅仅要处理不同浏览器下的XMLHttpRequest对象不同的初始化,还需要识记大量的XMLHttpRequest对象的属性和方法,而且做的很多都是重复性的工作,就如同jdbc的实现方式是一样的,JDBC有很多固定的模式,所以不管是Hibernate还是Ibatis亦或是Spring都使用模板模式来封装了大量相同的调用,让整个方法变得更加容易使用.对于程序员来说,这些都是一些非常好的事情,因为再也不用重复造轮子了,重复造轮子,成本高,性能也未必与

Ajax的ActionLink方法(适用于异步加载)

8.2.1  AJAX的ActionLink方法 在Razor视图中,AJAX辅助方法可以通过Ajax属性访问.和HTML辅助方法类似,Ajax属性上的大部分AJAX辅助方法都是扩展方法(除了AjaxHelper类型之外). Ajax属性的ActionLink方法可以创建一个具有异步行为的锚标签.假如要在打开的页面的底部为MVC Music Store添加一个"daily deal"链接,要求在用户单击链接时是在当前页面上显示打折扣的专辑的详细信息,而不是在一个新的页面中显示. 为了实

Unreal Engine 4 —— 异步加载关卡的实现方法及思考

这篇文章介绍了在ue4中实现异步加载关卡的方法,以及我对应的思考. 背景 在很多游戏中都有用到关卡的异步加载,关卡的异步加载指的是在游戏的某个阶段,使用多线程的方法进行新关卡对应的内容加载.从而能够免去直接的Loading阶段,提升游戏体验的效果. 目前这种方法被广泛运用于各种游戏,例如在游戏战神Ⅲ中,主角有时会走过一段长长的山道,在此时实际上游戏就已经在开始加载下一个关卡了(当主角走出山道时如果还没有加载完,则会显示Loading界面):又例如在游戏暗黑血统Ⅱ中,主角解开谜题从一个房间进入下一

Android异步加载图像(含线程池,缓存方法)

研究了android从网络上异步加载图像: (1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法. 在主线程中new 一个Handler对象,加载图像方法如下所示 [java] view plaincopyprint? private void loadImage(final String url, final int id) { handler.post(new Runnable() { public void run()

SDWebImage, 关于第三方异步加载图片的一些方法

SDWebImage, 关于第三方异步加载图片的一些方法 1.首先将第三方文件(SDWebImage)添加到工程里 2.修改ARC            3.在viewControl中添加一个imageView, 添加一个tap点击手势, 用来展示下载的图片 a.  sd_setImageWithURL 引入头文件  #import "UIImageView+WebCache.h"  - (IBAction)tap:(UITapGestureRecognizer *)sender {

使用getJSON()方法异步加载JSON格式数据

使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery.getJSON(url,[data],[callback])或$.getJSON(url,[data],[callback]) 其中,url参数为请求加载json格式文件的服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数. 1 <!DOCTYPE

使用getScript()方法异步加载并执行js文件

使用getScript()方法异步加载并执行js文件 使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(url,[callback])或$.getScript(url,[callback]) 参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数. 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

关于异步加载的 javascript 不出现在 chrome 开发者工具的 source 中的解决方法

首先,当你看到这篇文章时,我相信你已经是一个中级甚至是高级的前端开发了. 因为异步加载 javascript 这样的做法,在一些中小型项目几乎是看不到的. 而异步加载 javascript 归根到底,是为了性能优化,防止 JS 加载造成页面阻塞. 会注意到性能,说明你已经不再是一个停留在实现层面的前端开发了,而是一个有着更高追求的人. 在此,向所有有追求的人点赞~~~ 昨天为公司的项目做前端优化,其中一项就是做脚本异步加载. 但是奇怪的是,异步加载的 js 出现在 chrome 开发者工具的 n

Unity3D异步加载方法

异步加载的方法很多,这里我介绍一下我前段时间学到的一个异步加载方法,感觉挺好用,有兴趣的可以看看,下面就直接贴代码: /// <summary> /// Async to load. /// Created By Hong Youwei /// 2015.3.25 /// </summary> using UnityEngine; using System.Collections; public class AsyncToLoad : MonoBehaviour { public