特怪异的问题,高手过来瞧瞧

山雨欲来-风满楼 2003-12-12 10:27:17
我在一个网页a1里按一个按钮后弹出一个新窗口b1,并将a1里用户所选的关键字传递通过querystring传递给b1,b1再向一个表新增记录。
现在的问题是b1每次都会双倍插入记录(即每条记录会重复一次),我已经查过了,insert语句只有单倍,并非双倍(这就排除了代码多写或循环多一倍的问题)。
同时,我在弹出的新窗口里按f5刷新时是正常的,这也证明了我的代码没错。
并且,只要你手工刷新过的那个弹出窗口未关闭,你再点击那个按钮再弹出一个窗口。则一切正常,但一旦关闭刷新过的窗口且打开后未再手工刷新,则又为二倍:(

没办法,现在只有将点击按钮弹出窗口的方式改为,点击按钮直接在本窗口跳转了,这倒是解决了问题:p

但实在不明白是什么导致这问题的呀,高手有没有经历过的呀?
...全文
14 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
即你看到的网页还是上次访问的页面,即使是通过访问ASP产生的结果页面!
  • 打赏
  • 举报
回复
rayuser1314520 2003-12-12
同意楼上的.....
  • 打赏
  • 举报
回复
大白菜芯 2003-12-12
用个笨办法把,我估计你的插入命令再页面种没有作条件判断,结果一打开页面就自动插入一行,你可以判断POST的值是否为空,如果是就RESPONSE.END一次,虽然说这对系统不太好,但是因改没有问题的。
  • 打赏
  • 举报
回复
qwater 2003-12-12
肯定是b1中的插入代码执行了2次,估计是打开b1本身执行1次,a1提交还有1次
  • 打赏
  • 举报
回复
Tal 2003-12-12
input type="button"
  • 打赏
  • 举报
回复
chmask 2003-12-12
你的bl有一个插入语句,而页面打开同样会执行一边这个语句。当然就成两遍了!
可以用一个控制条件来限制运行!
  • 打赏
  • 举报
回复
patchclass 2003-12-12
b1本身就插入记录,而打开b1也插入记录
造成插入两次?
  • 打赏
  • 举报
回复
a_zhe_20 2003-12-12
估计是你的页面 a1中的按钮事件写的有问题

即可能提交两次。
<input type="submit" onclick="window.open(....);document.form1.submit();" value="提交">
  • 打赏
  • 举报
回复
a_zhe_20 2003-12-12
如何打开某个网页还是本地缓存?
按照楼主的代码
明显是a-resendmail.asp页面执行了2次

第一次window.open了
第二次location.href又重新链接了一次
function doview(url)
{
var nwin1;
nwin1=window.open(url,"_blank","width=790,height=580, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no");
//nwin1.moveTo(100,100);
nwin1.location.href=nwin1.location.href;
}
  • 打赏
  • 举报
回复
不过,还是无法解释为何已经手工刷新弹出的窗口后,再弹出的新窗口却又正常工作了。
  • 打赏
  • 举报
回复
同一个页面被刷新了二次,等于是提交了二次,但我们只能看到最后一次的INSERT:)
  • 打赏
  • 举报
回复
别乱猜啦,我都说过了,INSERT代码只执行了一遍!(因为我是放在子函数中的,所以我在此函数显示出SQL代码,则无论什么情况,只要是执行过二遍,就应该是会显示两遍的)!

<input type="button" name="Submit6" value="重发邮件" onClick="dosubmit('resend')">

case "resend"
doview("a-resendmail.asp?"&checkedwhat)
exit function

function doview(url)
{
var nwin1;
nwin1=window.open(url,"_blank","width=790,height=580, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no");
//nwin1.moveTo(100,100);
nwin1.location.href=nwin1.location.href;
}

哇,哈哈,我知道啦,原来是最后一句搞的鬼
nwin1.location.href=nwin1.location.href;
原来的本意是,在有些情况下,打开某个网页后竟然还是在本地缓存的,所以强制它再次刷新以从服务器得到最新的东东。对了,这也是个很怪的问题,原来一直不会的,后来突然就会打开某个网页后竟然还是在本地缓存的结果(实际上跳转的那个网址是ASP呀)
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
申请成为版主
帖子事件
创建了帖子
2003-12-12 10:27
社区公告
暂无公告