我的应用程序有一个带有复选框的表单的主页; chk-bxs表示从MySQL数据库返回的列数据。
我想要实现的行为是:
我可以实现这一点如果我在getJSON调用的最后一个成员赋值处设置了一个断点并单步执行它。没有单步,getJSON调用似乎不会发生;所以chk-bxs值不会传输到服务器。 谁能解释这种行为?有没有更好的方法来解决这个问题?任何想法将不胜感激。
这是index.php文件头部分中的代码,它调用将执行getJSON调用的函数:
$(window).on('beforeunload', function(){
indexFormUnload(); // this saves the state of the SELECT check-boxes
});
这是构造getJSON调用的代码 - 它驻留在index.php文件中包含的单独文件中:
function indexFormUnload(){
var ckBxValues = $(":input").serializeArray();
$.getJSON("ajaxJQ_server.php", // server page called by jquery
{ // Data sent via ajaxJQ
"callingForm": "index",
"callingElementID" : null,
"locStorage": ckBxValues,
"callingState": "unload",
"tableName": null
}
);
}
答案 0 :(得分:0)
当浏览器关闭时,它会杀死所有打开的连接。他们这样做是为了表现。你有一个竞争条件,你不会赢得大部分时间。无法确保调用服务器。曾经有一种方法可以使用while循环来实现,但是浏览器杀死了它。