我有一个基于$.ajax
post循环的简单承诺。代码按预期工作,所以我很好奇。 (执行done()
功能后,所有数据都显示在控制台中)。但是,Firebug在输出done()
方法后显示PHP脚本中的数据。为什么是这样? Firebug是否在代码继续运行时执行某些操作?
的jQuery
var promises = [];
for (i = 0; i < tochange.length; i++) {
var promise = $.ajax({
type:"POST",
url:"updateLevel.php",
data: { graph_plot: tochange[i], new_plot:changeto[i]}
}).done(function(data){
console.log(data);
});
promises.push(promise);
}
$.when.apply(null, promises).done(function() {
console.log('All done')
});
PHP
require_once(dirname(__FILE__) . '/../services/FirePHP.class.php');
require_once(dirname(__FILE__) . '/../services/fb.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$graph_plot = $_POST['graph_plot'];
$new_plot = $_POST['new_plot'];
if ($graph_plot && $new_plot) {
fb("$graph_plot, $new_plot");
}