
var bool = true; while(bool){ var ret=''; $.ajaxSettings.async = false; $.getJSON(Url, requestData, function (rv) { var respOnse= rv.Value; ret = response.Process; if (ret == 100) { console.log("Done!"); bool = false; } }); console.log('已完成:'+ret+'%!'); $.ajaxSettings.async = true; } var getPrecent = function(){ $.getJSON(Url, requestData, function (rv) { var respOnse= rv.Value; ret = response.Process; if (ret == 100) { console.log("Done!,已完成100%"); }else{ console.log("已完成"+ret+"%"); setTimeout(getPrecent,200); } }); }; getPrecent(); 1 loy6491 2017-07-14 21:39:41 +08:00 1. 看看请求成功了没 2. 看看 ret 是 100 么 3. 不要用同步的 ajax 这也能调一下午 |
2 boogiefer 2017-07-14 21:42:42 +08:00 via iPhone while 必须 写到回调里去 |
3 sunsai 2017-07-14 21:43:13 +08:00 via Android while 循环是同步的,getjson 是异步的,而且 js 是单线程的,这样就会一直 while 循环,都没有机会执行回调,也就无法退出循环了 |
4 sunsai 2017-07-14 21:44:39 +08:00 via Android 我的错了 |
5 lanwairen123 OP |
6 lanwairen123 OP @boogiefer while 循环需要在外面,因为要不断调用 getjson 获取返回值。 |
7 lanwairen123 OP @sunsai $.ajaxSettings.async = false; 设置成同步模式了。 |
8 wly19960911 2017-07-14 21:50:14 +08:00 via Android 打断点不能出来? 另外采取二楼意见,把 while 循环调用改成递归回调 if ( ret ==100 ){ … }else{ 再执行一次 getjson 的 function } (手机码,不要介意。) |
9 lanwairen123 OP @wly19960911 如果可以的话,能给个示范的代码吗,之前学过点 php,遇到 Javascript 彻底懵了,各种变量的作用域,各种 undefined ……比如上面代码里面 ret 在回调里面有值,但是到外面又取不到值了,不知道怎么回事。 |
10 tsotsi 2017-07-14 22:01:22 +08:00 ```Javascript var bool = true; var ret=''; $.ajaxSettings.async = false; while(bool){ $.getJSON(Url, requestData, function (rv) { var respOnse= rv.Value; ret = response.Process; if (ret == 100) { console.log("Done!"); bool = false; } }); } console.log('已完成:'+ret+'%!'); $.ajaxSettings.async = true; ;!function(){ var dOneCallback= function(){console.log('已完成:100%!');}; var getPrecent = function(){ $.getJSON(Url, requestData, function (rv) { var respOnse= rv.Value; ret = response.Process; if (ret == 100) { console.log("Done!"); doneCallback(); }else{ setTimeout(getPrecent,200); } }); }; }(); ``` |
11 wly19960911 2017-07-14 22:03:49 +08:00 via Android @lanwairen123 10 楼演示了,手机不好码代码,你把他的格式化下就好, |
12 lanwairen123 OP |
13 ode 2017-07-14 22:25:25 +08:00 via iPhone 槽点太多 先把基础看了再说 不要以为会 php 就可以直接上手 js 否则会掉进坑里 |
14 lanwairen123 OP @ode 已经掉坑里了,正在学怎么爬出来…… |
15 LioMore 2017-07-15 00:34:21 +08:00 哈哈哈哈哈哈哈哈哈哈哈 “不要以为会 php 就可以直接上手” 赞成 |
17 lavawong 2017-07-25 08:00:34 +08:00 via iPhone 又一个掉坑里的 |