jQuery_review之使用$.getScript()以及$.getJSON来与服务端进行异步信息交互

    jQuery还提供了两个非常实用的方法,分别是$.getScript()以及$.getJSON()。这个两个方法非常之重要,假设我们现在要编写一个框架,如果能在后台控制前台表格的动作,我们应该怎么做?肯定是要在后台向前台发送一个JavaScript,从而让前台的JavaScript执行,当然有很多方法,比如创建一个Script的节点放在DOM树中,或者是在HTML中增加一个<script>节点,都是解决这个问题的方法。但是getScript也不失是解决这个问题的一个很好地方案。

    此外,现在JSON由于书写简便,传输数据比较小,数据冗余度好,而慢慢的大有取代XML的形式。Google也提供了很多第三方的可靠的json转换的解决方案。所以json的威力还是不能小瞧的。

    使用jQuery的这两个方案,有几个要注意的点:这两个方法$.getScript()以及$.getJSON()都有两个参数,第一个参数是提供给jQuery向什么地址寻求资源,第二个就是资源返回之后,会提供什么样子的函数来调用上面的资源,第一个回调函数是用来执行上面的JavaScript方法中的函数,第二个回调函数则是用来解析刚刚获取的JSON的字符串。此外,JSON的格式是这样的{"name1":"value1","name2":"value2"},请注意里面的不是单引号,而是双引号,如果写成引号,可能会导致jquery无法解析上面的JSON字符串。最后,如何解析JSON?data[‘name1‘]以及使用$.each(data,function(idx,item){})来进行解析,要根据JSON的格式不同选择正确的解析方式。

前端的DEMO代码如下:
<%@ 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(){
			$("#getContent").click(function(){
				$.getScript("czz.js",function(){
					alertHtml($("#showText"));
				})
			});
			$("#getJson").click(function(){
				$.getJSON("test?name=czz&address=dszy",function(data){
					var str = data['name']+" "+data['address'];
					$("#showText").empty().text(str);
				});
			});
		});
  	</script>
  </head>
  <body>
  	<div id="showText"><span>He who hesitates is lost.</span></div>
  	<input type="button" id="getContent" value="getAjax">
  	<input type="button" id="getJson" value="getJson">
  </body>
</html>


后端的DEMO代码如下:
	@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("{\"name\":\"")
		  .append(name)
		  .append("_czz\",\"address\":\"")
		  .append(address)
		  .append("_czz\"}");
		resp.setContentType("html/JSON;charset=utf-8");
		resp.getWriter().print(sb.toString());
	}


程序中调用的JS代码如下:

function alertHtml(e){
	alert(e.html());
}



jQuery_review之使用$.getScript()以及$.getJSON来与服务端进行异步信息交互,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。