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 键会阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否对您有帮助。如果不方便发表评论,我会删除它。希望我能帮到你。
我的网页使用 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 键会阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否对您有帮助。如果不方便发表评论,我会删除它。希望我能帮到你。