getJSON调用失败,除非单步执行

时间:2012-11-20 16:20:22

标签: jquery ajax hyperlink getjson

我的应用程序有一个带有复选框的表单的主页; chk-bxs表示从MySQL数据库返回的列数据。

我想要实现的行为是:

  1. 用户检查/取消选中主页上的框
  2. 用户点击指向将运行查询的网页的链接
  3. 服务器通过getJSON调用接收复选框状态, 由卸载主页触发。 PHP加载$ _SESSION [] w / chk-bxs states
  4. Server然后使用$ _SESSION []中的数据处理链接调用 确定要返回的列数据并在结果中显示a 表
  5. 我可以实现这一点如果我在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
    }
    );
    } 
    

1 个答案:

答案 0 :(得分:0)

当浏览器关闭时,它会杀死所有打开的连接。他们这样做是为了表现。你有一个竞争条件,你不会赢得大部分时间。无法确保调用服务器。曾经有一种方法可以使用while循环来实现,但是浏览器杀死了它。

相关问题