在Ajax查询运行时允许更改URL

时间:2015-04-08 18:28:54

标签: php ajax

我有一个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 + "&GT_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选项,那么还有什么可能是错的?

感谢

0 个答案:

没有答案