setTimeout导致页面重复提交

yongtang 2008-06-12 11:11:02
现在我有一个A页面,填写完信息后通过form post到B页面
然后B页面里有存到数据库的逻辑,在静态的HTML代码里有一段javascript的setTimeout函数,目的是在1秒钟后自动跳转到C页面。

问题就出来了,我发现通过这样的过程会导致数据库里存了两条一模一样的数据,就好像B页面被连续调用了两次。
查来查去始终没有结果,数据却是指存储了一次,但是表里却有两条结果,表上也没有触发器之类的东西。

偶然发现,当我去掉setTimeout函数后,页面不自动跳转,但是数据存储就正确了,只存了一次。

请问各位前辈,这到底是怎么回事?
...全文
222 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongtang 2008-06-12
  • 打赏
  • 举报
回复
谢谢大家,我晚上试一下,先感谢LS几位
s_liangchao1s 2008-06-12
  • 打赏
  • 举报
回复

<script language="javascript" type="text/javascript">
function ReturnBack()
{
window.navigate("C.asp");
clearTimeout(obj);//清下
}

var obj=setTimeout("ReturnBack()",1000);
</script>


s_liangchao1s 2008-06-12
  • 打赏
  • 举报
回复


<script language="javascript" type="text/javascript">
function ReturnBack()
{
window.navigate("C.asp");
clearTimeour(obj);//清下
}

var obj=setTimeout("ReturnBack()",1000);
</script>

littlelam 2008-06-12
  • 打赏
  • 举报
回复
function ReturnBack()
{
//window.navigate("C.asp");
window.location.href="c.asp"; //先试试这样,看看是不是navigate的问题,或者是c页面有问题,或是在a页面提交了两次,你也可以用抓包工具看看是那个页面提交了两次
}

yongtang 2008-06-12
  • 打赏
  • 举报
回复

<%
option explicit
%>

<html>
<body>
<form name="MyForm" method="post" action="B.asp">
Value:<input type="text" name="ValueControl" size="10">
<input type="submit" name="SubmitForm" value="提交">
</form>
</body>
</html>


这是A页面,很简单的
sportboy2008 2008-06-12
  • 打赏
  • 举报
回复
ding!!!
littlelam 2008-06-12
  • 打赏
  • 举报
回复
a页面呢?
yongtang 2008-06-12
  • 打赏
  • 举报
回复

<%
'Page B:
option explicit

dim sql
sql="INSERT INTO MyTable(MyValue) VALUES('" & request.form("ValueControl") & "')"

dim rsExecute

'MyConnection对象已经创建,是连接数据库的connection对象

set rsExecute=MyConnection.execute(sql)
%>

<html>
<body>
页面将会在1秒钟后自动返回
<script language="javascript" type="text/javascript">
function ReturnBack()
{
window.navigate("C.asp");
}

var obj=setTimeout("ReturnBack()",1000);
</script>
</body>
</html>


这是B页面的代码逻辑,请大家帮忙,谢谢!
jhwcd 2008-06-12
  • 打赏
  • 举报
回复
代码贴出来看看。
s_liangchao1s 2008-06-12
  • 打赏
  • 举报
回复
恩 看下代码 有可能是你的函数重复调用
littlelam 2008-06-12
  • 打赏
  • 举报
回复
贴出代码才知道问题啊
limuque 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chinmo 的回复:]
VBScript code<%
'Page B:
option explicit

dim sql
sql="INSERT INTO MyTable(MyValue) VALUES('" & request.form("ValueControl") & "')"

dim rsExecute

'MyConnection对象已经创建,是连接数据库的connection对象

set rsExecute=MyConnection.execute(sql)
response.Write"<meta http-equiv='refresh' content='1;url=index.asp'>"
%>



这样就行了
为什么还要用JS的setTimeout
[/Quote]
  • 打赏
  • 举报
回复
<%
'Page B:
option explicit

dim sql
sql="INSERT INTO MyTable(MyValue) VALUES('" & request.form("ValueControl") & "')"

dim rsExecute

'MyConnection对象已经创建,是连接数据库的connection对象

set rsExecute=MyConnection.execute(sql)
response.Write"<meta http-equiv='refresh' content='1;url=C.asp'>"
%>
  • 打赏
  • 举报
回复
<%
'Page B:
option explicit

dim sql
sql="INSERT INTO MyTable(MyValue) VALUES('" & request.form("ValueControl") & "')"

dim rsExecute

'MyConnection对象已经创建,是连接数据库的connection对象

set rsExecute=MyConnection.execute(sql)
response.Write"<meta http-equiv='refresh' content='1;url=index.asp'>"
%>


这样就行了
为什么还要用JS的setTimeout
  • 打赏
  • 举报
回复
汗!!一秒后跳转为什么要用这种方式啊?
浴火_凤凰 2008-06-12
  • 打赏
  • 举报
回复
贴出代码才知道问题

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧