PHP JSON_ENCODE 进程被 ESCAPE 键中止

PHP JSON_ENCODE Process Gets Aborted by ESCAPE key

我的网页使用 bootstrap 和 jquery,在相当长的页面加载过程中,使用 JSON_ENCODE 读取一些 PHP 会话变量,按 ESCAPE 键似乎停止了进程,中止读取,并导致页面加载失败。

这在 Chrome 和 Firefox 中都会发生。

可能是什么原因造成的,有什么办法可以防止这种情况发生吗?

谢谢。

编辑 *(添加了 ignore_user_abort 但 ESCAPE 仍然中止):

<?php ignore_user_abort(true); ?>
var db = <?php echo (isset($_SESSION["data"])) ? 
  json_encode($_SESSION["data"], JSON_PRETTY_PRINT) : 0 ; ?>;
if (!db) db = {};

我得到了使用以下代码控制“ F5 、 Esc 、 BackSpace(BS) ”键的解决方案。

我的 Java 脚本代码将是,

document.attachEvent("onkeydown", win_onkeydown_handler);

function win_onkeydown_handler() {
    switch (event.keyCode) {

    case 116 : // 'F5'
         event.returnValue = false;
         event.keyCode = 0;
         break;  

    case 27: // 'Esc'
        event.returnValue = false;
        event.keyCode = 0;
        break;

    case 08: // 'BackSpace'
        if (event.srcElement.tagName == "INPUT"
                || event.srcElement.tagName == "TEXTAREA") {
        } else {
            event.returnValue = false;
            event.keyCode = 0;
        }
        break;

    }
}

感谢所有支持我这样做的人和您的建议。

问题是 ESC 键会阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否对您有帮助。如果不方便发表评论,我会删除它。希望我能帮到你。