getJSON顺序执行时间问题 function test(){ var str = ""; $.getJSON ( url, {}, function(json) { //....操作代码 str = ...; } ); $().html(str);}现在遇到的问题是,getJSON执行的时候由于readystate还没有等于4,他会先把 $().html();执行完。然后到readystate=4的时候才执行操作代码。这样str的值就赋不上了。请问解决方法是怎么样?这是什么原因呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把$().html(str);放在getJSON的function里去,你放外面干嘛?ajax本来就有延迟 这是异步操作。//写在回调函数里function test(){ var str = ""; $.getJSON ( url, {}, function(json) { //....操作代码 str = ...; $().html(str); } ); } 你把 $().html(); 放在 callback里面不就好了 1、将异步改为同步2、将html赋值操作放在json异步交互方法中3、用setTimeout延时,或是用setTimeout在一定时间内赋值。直到返回的str不为null为止原因是异步交互的时候,不会等待$.getJSON请求执行完了才执行下面的代码。而是执行后,直接运行后面的代码。$.getJSON ( url, {}, function(json) { //....操作代码 str = ...; $().html(str); } ); //$().html(str);//放到里面去 同情楼主。。getjson是异步执行的 用$.ajaxSettings.async = false改成同步之后。是否需要$.ajaxSettings.async = true改回来,还是只是修改当次有效的? 简单的图片轮换的问题 javascript 缺少对象 请求高手帮助 confirm 怎样添加按钮??在线等。。。。。。。。。。。。。 如何改变Window.ShowModalDialog()弹出框的title?? 框架页面中,怎样取一个页面高度 如何用js得到Caps Lock的状态,谢谢! 屏蔽按键 关与在IE下的输入法问题? javascript中window.open后在子窗体中怎么得到父窗体的值? 求一问卷调查系统 有点复杂,通过js 求和 望高手指点 两个$$符号表示什么意思
放在getJSON的function里去,你放外面干嘛?ajax本来就有延迟
{
var str = "";
$.getJSON
(
url,
{},
function(json)
{
//....操作代码
str = ...;
$().html(str);
}
);
}
1、将异步改为同步
2、将html赋值操作放在json异步交互方法中
3、用setTimeout延时,或是用setTimeout在一定时间内赋值。直到返回的str不为null为止原因是异步交互的时候,不会等待$.getJSON请求执行完了才执行下面的代码。而是执行后,直接运行后面的代码。$.getJSON
(
url,
{},
function(json)
{
//....操作代码
str = ...;
$().html(str);
}
);
//$().html(str);//放到里面去
$.ajaxSettings.async = true改回来,
还是只是修改当次有效的?