【发布时间】:2012-02-25 03:54:09
【问题描述】:
我有一个关于 getJSON 的脚本,请帮忙解决。
$.getJSON('data1_get.php', {dbase: 'file1', param: '0'}, function(data_1) {
$.getJSON('data2_get.php', {dbase: 'file2', param: '1'}, function(data_2) {
for (var i=0; i<data_1.length; i++) { // about 4 rows
for (var k=0; k<data_2.length; k++) { // about 7 rows
if (data_1[i].type == data_2[k].type) {
if (data_2[k].switch=="1") { // possible many process
// check.php needed time about 3 seconds for 1 process
$.getJSON('check.php', {param: data_2[k].turnOn}, function(data_3) {
// not work
if (data.status) {
alert('working for '+data_2[k].title);\n";
}
});
}
}
}
}
});
});
我的问题是:如何强制它等待而不继续,直到我们从 ajax 请求中获得所有回调?
谢谢!
【问题讨论】:
-
为什么要强制它等待?如果你这样做,你会冻结浏览器直到它完成。
-
是的,因为该脚本在第一次运行时只运行一次。
-
第一次运行 ajax 又何必呢?为什么不在你调用的 php 文件中执行操作,jsut 会在文档头部吐出 json 结果,如:
<script> <?php echo 'var '. json_encode($data1Result) . ';'; ?></script> -
我第一次使用 PHP 操作,但使用的一些 PHP 数组(mySQL 数据)使用 javascript 操作。并由 jQuery 处理更多的统治。