js暂停一下,再继续进行
今天用jquery请求数据时,因为数据不能及时返回,而接下来的代码马上要用到这个数据,所以想在中间停顿一下,我是用了alert(),可以达到效果,但是不想弹出框,怎么办呢?
------解决方案--------------------function testJquery() {
//我要在这里暂停三秒钟再执行处理返回数据的代码
window.setTimeout("testJquery2()",3000);
}
function testJquery2(){
alert("--");
}
------解决方案--------------------
http://hi.baidu.com/robinkang/item/4755ee0ad24943e2fe240d0c
点击上面的链接、使用方案三、或者直接使用全局变量存储jquery返回的值!
------解决方案--------------------你可以直接打到后台吗?console.info();
------解决方案--------------------返回的json肯定能读取吧。
var ob=json;
var temp=true;
while(temp){
if((typeof(ob)!='undefined'))//或者进行非空判定
temp=false
}
------解决方案--------------------jquery 可以使用同步方式,当获取到数据后再执行下面的代码;
如: async:false,
function getAjaxReturn()
{
var bol=false;
$.ajax({
type:"POST",
async:false,
http://www.jb51.net/userexist.aspx",
data:"username="+vusername.value,
success:function(msg){
if(msg=="ok"){
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false)
// return true;
bol=true;
}
else
{
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false);
vusername.className="bigwrong";
//return false;
}
}
});
return bol;
}
------解决方案--------------------如果这个返回数据的时间比较短暂的话可以设置async:false使用同步方式。这种方式在浏览器下会出现锁屏。所以适用于短暂的返回数据时间。如果返回的时间比较长不得不等待的。在beforeSend:function()[}这个方法里,最好用等待框插件(屏幕背景变灰弹出等待框)。此时的效果就是类似于不能操作了。等到success时再消除等待框即可
------解决方案--------------------调试js吗,火狐的firebug可以
------解决方案--------------------可以async参数,默认是true(异步),可以设置为false(同步)
------解决方案--------------------有两种方法,1,按楼上说的ajax设置成同步。
2,“而
接下来的代码马上要用到这个数据",把你所说的接下来的代码放到ajax的回调函数中执行即可
------解决方案--------------------可以在JS 中自己写一个函数 停顿下
------解决方案--------------------你前台也可以用DEBUG进行调试