我有一个Apache2服务器,它呈现三页项目,分析和结果
当用户进入analysis.php页面时,他可以设置一些参数并单击带有此代码的提交按钮
$('#run_analysis_btn').on('click', function() {
$("#results_txt").append("<h3>Your job is running now</h3>");
$("#results_txt").append("<img src='../images/loading.gif'> </img>");
var cov_min = $('#cov_min').val();
var reference = $('#reference').val();
var alt_fwd = $('#alt_fwd').val();
var alt_rev = $('#alt_rev').val();
var ref_fwd = $('#ref_fwd').val();
var ref_rev = $('#ref_rev').val();
var gt_qual = $('#gt_qual').val();
var reference = $('#reference').val();
var dataString = "MIN_COV=" + cov_min + "&ALT_FWD=" + alt_fwd + "&ALT_REV=" + alt_rev + "&REF_FWD=" + ref_fwd + "&REF_REV=" + ref_rev + ">_QUAL=" + gt_qual + "&REF=" + reference;
$.ajax({
type: "POST",
url: "../php/run_analysis.php",
async: true,
format: "json",
data: dataString,
success: function(response) {
$("#results_txt").append(response);
}
});
});
run_analysis.php脚本有两个选项,所以如果用户更改页面,即他们不想去project.php o results.php页面,脚本结束他的工作
<?php
// Ignore user aborts and allow the script
// To run X time
ignore_user_abort(true);
set_time_limit(0);
... work here
?>
然后开始调用perl脚本并运行一些二进制文件来处理文件,比如3分钟。
问题是,如果用户想要将页面从analysis.php更改为project.php,则页面等待直到ajax调用结束, 我把async:true选项,那么还有什么可能是错的?
感谢