爱生活爱拼搏!一起学习----有错误请大虾们指点下。。。。。。。。。
今天遇到个问题,于是写了个简单的实例:JQuery实现Ajax实现JSON方式显示获取的数据:
关键代码如下:
//接收json
var s="";
$("#button").click(
function(){
//通过jQuery请求JsonServlet
$.post("JsonServlet",function(data){
s+=data.name+"\n"+data.sex+"\n"+data.age;
alert(s);//第一次显示s消息框
},"json");
alert(s);//接着显示
}
);
页面代码一句:
<input type="button" value="test3" id="button"/>
Servlet代码:
JSONObject j = new JSONObject();
j.put("name", "admin");
j.put("sex", "boy");
j.put("age", 16);
PrintWriter out = response.getWriter();
out.println(j.toString());
out.flush();
运行第一次点击按钮页面跳出两个消息框:
第一次点击时候------------>
显示获取json里面的数据:
接着第二个消息框----------->
接着第二次点击按钮页面跳出两个消息框:
第一个依然是接受json中的数据--->
接着第二个消息框-------------->
假如代码是这样-------------------->
//接收json
$("#button").click(
function(){
var s="";
//通过jQuery请求JsonServlet
$.post("JsonServlet",function(data){
s+=data.name+"\n"+data.sex+"\n"+data.age;
alert(s);
},"json");
alert(s);
}
);
则不论点击多久都只会出现上面第一次点击的效果,第二个消息框总是为空;
我想这就是Ajax异步机制的原理么,如果把这当成线程看待:
异步消息处理线程是指:线程启动后会进入一个无限循环体之中,每执行一次,从线程内部的消息队列中取出一个消息,并回调相应的消息处理函数,执行完一个消息后则继续循环。。。
我想如果放在同一作用域里面,第一次获取数据时候第二个消息显示框没来得及去获取就默认显示s=“”了,在第一个实例里面,由于s的作用域相当于全局,所以当第二次点击按钮时候,数据把第一次获取的数据放入s里面了,以此类推,第二个消息显示框比第一个显示框里面的数据都会少获取一次数据。。。。。。
不知道大虾们是怎么理解的,我理解错误没? 有错误请指出来啊! 谢谢了哈,共同学习,爱生活爱拼搏!
- 大小: 5.5 KB
- 大小: 4.6 KB
- 大小: 6.5 KB
- 大小: 5.5 KB
分享到:
相关推荐
初学ajax的可以看看,Jquery实现AJAX 应用
struts2+json+jquery实现ajax数据的存取
jquery实现ajax上传文件asp.net版
jquery 实现ajax用户登陆 php
Jquery实现ajax三级联动
使用jquery实现ajax分页含源码使用jquery实现ajax分页含源码使用jquery实现ajax分页含源码
php视频实现验证码图_用jQuery实现ajax验证 含源码
Asp.net 用jQuery 实现Ajax的效果方法 有写好的代码 可以自己看一下
springmvc利用jquery实现ajax的例子,jar包都在里面,导入即可运行,代码不是我写的,我从网上下载的
这是一个java的web样例工程,实现的是jquery+ajax传输
jQuery-ajax-json实现自动轮播图.rar
基于Jquery+Ajax+Json实现分页显示附效果图
本人亲自写的jQuery+ajax实现登录验证,内含两个项目,注释清晰,特来和大家分享
Struts2整合jQuery实现Ajax功能
jsp中使用jquery实现ajax源码,tomcat上使用
jquery实现ajax搜索框下拉提示小插件jSuggest
通过Jquery实现Ajax传值,视图在向控制器传值时候 ,用表单不方便 时候 变可以使用Ajax 向数据库传值 代码思想 为MVC 思想
JQuery实现ajax上传文件示例源码
jquery实现的ajax选项卡tab特效插件代码
jQuery_AJAX网页系统jQuery_AJAX网页系统