我的代码如下:
form.submit();//synchronized submit, not asynchronous,the form is not a html form but created by javascript
some codes here;//Is this line executed, or it sometimes executed sometimes not
我在第2行有一些统计代码(向服务器发送http请求)并且真正获得了一些数据。因为统计数据与预期之间存在很大差距,我怀疑第二行总是被执行。
答案 0 :(得分:4)
这取决于表单提交时的内容:
如果表单正常提交,则代码可能运行。普通表单提交将浏览器重定向到action属性中定义的url。代码可能会运行,但页面已准备好离开,因此您可能无法看到form.submit()
之后的代码。
如果表单提交并被JavaScript捕获(可能是由事件处理程序),那么form.submit()
之后的代码可以运行,但取决于该事件处理程序的作用。如果处理程序不阻止正常表单提交,那么情况与第一个相同。如果处理程序阻止正常表单提交,则它可以运行。
我建议你为该表单构建一个处理程序,阻止使用return false
和/或event.preventDefault()
之类的技术提交正常的表单,并在那里运行代码。