javascript – 如何使表单提交同步?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何使表单提交同步?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2056字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何使表单提交同步?](/upload/InfoBanner/zyjiaocheng/800/3dca2562babb47cb93dfdf8f0164a39c.jpg)
由于javascript(包括表单提交)是同步的,并且单线程模型除了ajax调用.是对的吗?但我面临一个问题.
我在第1行提交表单,然后关闭弹出窗口.会发生什么是在表单提交之前调用self.close.
所以这里它以异步模式运行.表单提交是异步过程吗?如果是,我怎么能在之后制作代码
表单提交同步?(我不想使用setTimeOut和ajax)
这是我的相关jsp代码
function clickSave()
{
document.form.action="customerAction.do";
document.form.submit();// line 1
self.close();// line 2
}
更新: – 看起来我需要更正自己表单提交是异步过程按照Is form submit synchronous or async?.所以问题是如何使self.close与表单提交同步
解决方法:
As javascript(including form submission) is synchronous and single
thread model except ajax calls. Is that right? But i am facing one
issue regarding this.
好吧,JS对于每个事件监听器都是异步的. Ajax允许异步模式,将结果作为事件返回.
JS主要不是并发的:一次只执行一个函数.过度,在最新版本中有方法创建背景“并发”JS(1)
JS在单个线程上运行. (背景JS除外)
I am submitting the form at line 1 and then closing the pop up. what
happens is self.close get called before form submission.
这是不可能的.
Is form submission a asynchronous process?
提交是异步的,也就是说,JS将继续运行和结束.
你可以测试这个例子(2).
If yes how can i make the code after form submission synchronous?(I
dont want to use setTimeOut and ajax)
提交将重新加载整个页面,因此您的JS将结束,之后,窗口将从服务器加载具有表单结果的新页面.您可以在此新页面中包含一个新的JS以“继续”.
如果您不想重新加载所有页面,则必须使用AJAX,在这种情况下,您有2个选项:
>异步:您可以设置一个事件监听器来接收和使用结果.
>同步:您的页面将阻塞,直到结果准备就绪.
(2):
<html>
<body>
<script type="text/javascript">
function click2()
{
document.getElementById('form1').submit();
for(var i=0; i < 1000000000; i++);
window.open('http://www.stackoverflow.com');
}
</script>
<button onclick="click2();"> click </button>
<br/><br/>
<form id="form1" action="http://www.duckduckgo.com" method="get">
<input type="text" value="hello"/>
</form>
</body>
</html>
内容总结
以上是互联网集市为您收集整理的javascript – 如何使表单提交同步?全部内容,希望文章能够帮你解决javascript – 如何使表单提交同步?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。