`
a303896522
  • 浏览: 8199 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jquery的同步异步问题

 
阅读更多

做一个瀑布流照片墙效果的时候出现的问题。通过jquery的post方法调用php url,根据返回的json数据循环生成html代码。在给str变量赋值的时候,发现在post匿名函数里alert str有值,在post匿名函数外打印没值。

代码如下:

var str = '';
$.post(base_url+'/index.php/pic/ajaxGetPic/',{cat_id:1,page:1},function(data) {
			var obj = eval("("+data+")");
			if(obj.length == 0) {
				alert("没有数据了!");
			}else {
				$.each(obj,function(key,val) {
					str += '<div class="cell"><img src="'+val['pic_path']+'" /><p>'+val['pic_id']+'</p></div>';
				});
			}
			alert(str);
		});
alert(str);

 经朋友提醒,是因为ajax同步异步的问题,也就是post中的内容尚未执行完毕,就已经往下开始执行了。所以会出现这种情况。

解决方法:

var str = '';
	   var cat_id = $('#id').val();
	   $.ajax({  
	        type:"POST",  
	        url:base_url+'/index.php/pic/ajaxGetPic/',  
	        data:{cat_id:cat_id,page:index+1},  
	        async:false,  
	        dataType:"json",  
	        success:function(data){
				if(data.length == 0) {
					alert("没有数据了!");
				}else {
					$.each(data,function(key,val) {
						str += '<div class="cell"><img src="'+val['pic_path']+'" /><p>'+val['pic_id']+'</p></div>';
					});
				}
	        }  
	    });

 

使用jquery的ajax方法,其中async设置为false则同步,true则异步。

分享到:
评论

相关推荐

    关于解决jquery同步异步的问题

    在jquery中给后台交互时默认是异步调用回调函数,有时需要根据从后台获得的值来判断,就需要同步才行。

    jquery ajax 同步异步的执行 return值不能取得的解决方案

    jquery ajax 同步异步的执行 return值不能取得的解决方案,需要的朋友可以参考下。

    jquery异步请求例子

    jquery异步请求例子jquery异步请求例子

    jquery的ajax同步和异步的理解及示例

    之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX...

    jquery ajax 同步异步的执行示例代码

    jquery ajax 同步异步的执行示例代码,需要的朋友可以参考下。

    jquery ajax同步异步的执行最终解决方案

    添加async:false.即修改为同步了,什么意思?按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用

    jQuery同步提交示例代码

    本文实例讲述了jQuery同步提交的方法。分享给大家供大家参考,具体如下: 使用jQuery 框架,同步提交演示 在一些严格检测或者递归、循环调用的情况下,如果不能同步返回数据则可能会出现错误结果,所以需要使用同步...

    Jquery 封装下的ajax异步加载

    改资源为web项目代码实例,导入myeclipse中就可使用。项目中包含各种jquery、json等的包

    jquery ajax属性async(同步异步)示例

    例1、jquery+ajax/” target=”_blank”&gt;jquery ajax同步方式 代码如下:$.ajax({url : ‘test.php’,type : ‘post’,async: false,//使用同步的方式,true为异步方式data : {‘act’:’addvideo’, ‘videoname’:...

    jQuery中的ajax async同步和异步详解

    async在jquery ajax中是一个同步参数。本篇文章给大家介绍jq中的ajax async同步和异步,小伙伴跟着小编一起学习吧

    jquery之ajaxfileupload异步上传插件(附工程代码)

    点我下载工程代码 由于项目需求,在处理文件上传时需要使用到文件的异步上传。这里使用Jquery Ajax File Uploader这个组件下载地址:http://www.phpletter.com/download_project_version.php?version_id=6 服务器端...

    jquery插件使用方法大全

    延迟对象 延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。...

    jquery.tree同步改进

    改进了jquery。tree中的只可异步造成异步加载慢时,加载不成功的问题;

    jquery中的ajax同步和异步详解

    之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX...

    超实用的jQuery代码段

    11.4 解决jQuery版本冲突问题 11.5 如何设置IE特有的功能 11.6 判断浏览器类型并设置HTML元素内容 11.7 加载Google CDN的jQuery库 11.8 Cookies应用方法 11.9 使用cookie.js管理Cookies 11.10 让Cookies在N分钟后...

    jquery电子文档chm

    async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend ...

    jQuery 1.6 API 中文版

    jQuery.ajax( url, [ settings ] ) 返回: jqXHR 执行一个异步的HTTP(Ajax)的请求。 version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串。 settings一个以"{键:值}...

    Jquery Ajax解析XML数据(同步及异步调用)简单实例

    本篇文章主要是对Jquery Ajax解析XML数据(同步及异步调用)的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

Global site tag (gtag.js) - Google Analytics