当前位置: 代码迷 >> Java Web开发 >> js暂停一上,再继续进行
  详细解决方案

js暂停一上,再继续进行

热度:7995   发布时间:2013-02-25 21:06:23.0
js暂停一下,再继续进行
今天用jquery请求数据时,因为数据不能及时返回,而接下来的代码马上要用到这个数据,所以想在中间停顿一下,我是用了alert(),可以达到效果,但是不想弹出框,怎么办呢?可以在JS 中自己写一个函数   停顿下你前台也可以用DEBUG进行调试返回的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;
} 你可以直接打到后台吗?console.info();
function testJquery() {
            //我要在这里暂停三秒钟再执行处理返回数据的代码
    window.setTimeout("testJquery2()",3000); 
}
function testJquery2(){
        alert("--");  
        }
有两种方法,1,按楼上说的ajax设置成同步。
2,“而接下来的代码马上要用到这个数据",把你所说的接下来的代码放到ajax的回调函数中执行即可调试js吗,火狐的firebug可以可以async参数,默认是true(异步),可以设置为false(同步)
引用:
引用:JavaScript code?1234567function testJquery() {            //我要在这里暂停三秒钟再执行处理返回数据的代码               window.setTimeout("testJquery2()",3000);         }        function test……


http://hi.baidu.com/robinkang/item/4755ee0ad24943e2fe240d0c
点击上面的链接、使用方案三、或者直接使用全局变量存储jquery返回的值!如果这个返回数据的时间比较短暂的话可以设置async:false使用同步方式。这种方式在浏览器下会出现锁屏。所以适用于短暂的返回数据时间。如果返回的时间比较长不得不等待的。在beforeSend:function()[}这个方法里,最好用等待框插件(屏幕背景变灰弹出等待框)。此时的效果就是类似于不能操作了。等到success时再消除等待框即可
  相关解决方案