form.submit时序如何工作?

时间:2012-02-06 16:37:52

标签: javascript

我在代码库中遇到了一些对我来说很危险的javascript代码。

function SaveAndClose()
{
  //etc etc some validation
  TheForm.submit();
  window.close();
}

也许我误解了表单提交时间的工作原理。我希望有人可以启发我: 1)表单提交何时发生? 2)关闭如何影响表单提交?这里是否存在竞争条件?

我最初期望关闭不会执行(执行将在提交时终止),但我看到的行为是提交和关闭正在执行(在FF中) - 数据被持久化到数据库(通过表格的帖子动作的页面,窗口确实被关闭。

1 个答案:

答案 0 :(得分:3)

submit()是异步调用 它在后台启动HTTP请求,然后继续在页面上运行代码。

我不知道关闭浏览器窗口是否会中止HTTP请求 但是,如果这是在弹出窗口中,表单可能会提交到父窗口(使用target属性),所以没关系。