做一个瀑布流照片墙效果的时候出现的问题。通过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 ajax 同步异步的执行 return值不能取得的解决方案,需要的朋友可以参考下。
jquery异步请求例子jquery异步请求例子
之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX...
jquery ajax 同步异步的执行示例代码,需要的朋友可以参考下。
添加async:false.即修改为同步了,什么意思?按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用
本文实例讲述了jQuery同步提交的方法。分享给大家供大家参考,具体如下: 使用jQuery 框架,同步提交演示 在一些严格检测或者递归、循环调用的情况下,如果不能同步返回数据则可能会出现错误结果,所以需要使用同步...
改资源为web项目代码实例,导入myeclipse中就可使用。项目中包含各种jquery、json等的包
例1、jquery+ajax/” target=”_blank”>jquery ajax同步方式 代码如下:$.ajax({url : ‘test.php’,type : ‘post’,async: false,//使用同步的方式,true为异步方式data : {‘act’:’addvideo’, ‘videoname’:...
async在jquery ajax中是一个同步参数。本篇文章给大家介绍jq中的ajax async同步和异步,小伙伴跟着小编一起学习吧
点我下载工程代码 由于项目需求,在处理文件上传时需要使用到文件的异步上传。这里使用Jquery Ajax File Uploader这个组件下载地址:http://www.phpletter.com/download_project_version.php?version_id=6 服务器端...
延迟对象 延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。...
改进了jquery。tree中的只可异步造成异步加载慢时,加载不成功的问题;
之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX...
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分钟后...
async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend ...
jQuery.ajax( url, [ settings ] ) 返回: jqXHR 执行一个异步的HTTP(Ajax)的请求。 version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串。 settings一个以"{键:值}...
本篇文章主要是对Jquery Ajax解析XML数据(同步及异步调用)的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助