|
4
|
| Gary Stanton · 技术社区 · 17 年前 |
|
|
1
3
您是否100%确定数据库记录不会更改?如果火狐两次调用脚本,一次在页面呈现之前,一次在页面呈现之后,您可能会受到这种影响。 因此,产品被设置为禁用,然后在页面发送到浏览器后,它将再次更新(因为它已经被禁用,所以它将被重新启用)。 如果您已经向数据库中添加了最后一个更新字段,并在每次修改产品时更新该字段,那么您就可以知道情况是否如此。 编辑:响应下面的评论,一个快速+肮脏的修复方法是首先检查最后一个更新时间戳,如果它在当前时间的n秒内取消更新。 你有没有火狐中的插件可以重新调用页面?也许是为了开发?一个简单的测试,看看它是你的脚本还是火狐中的一个怪癖,就是用post方法把你的get url改成一个表单,因为浏览器/插件不应该重新调用post请求。 |
|
|
2
3
我找到了问题的原因…萤火虫。 我一点都不知道Firebug认为它在做什么,如果我从脚本中删除“cflocation”标记(将用户带回摘要页的标记),那么它就可以正常工作。但是如果我把它放在里面,Firebug似乎在将浏览器转发到摘要页之前再次运行了这个函数。 没有理由这样做。 难以置信。 至少不会发生在客户的机器上。 |
|
|
3
2
您发布的代码并不是导致错误的原因,因为它都是服务器端代码——其中的客户机上没有发生任何事情。 我将打开CF调试(包括数据库活动),并在结束标记之后和任何重定向回产品视图页面之前粘贴一个标记。运行代码并查看SQL调试输出。 我的猜测是,当使用Firefox时,包含查询的代码块不会被调用。 |
|
|
4
2
这可能是浏览器缓存问题。直接的CF代码不可能受到正在使用的浏览器的影响。如果刷新显示产品的页面,会发生什么情况?您还需要直接查看数据库,以查看值是否正在更改。 在一点切线上,你可以用一点简单的数学来消除对if语句的需求。
|
|
|
5
0
尝试删除SQL代码中WHERE子句末尾的分号。
|
|
|
6
0
所有这些不同的答案,没有一个对我有用。我不得不去另一个论坛,有人说它是火狐中的Skype扩展插件,它会导致ColdFusion数据库疯狂或无法运行。我卸载了Skype扩展(谢谢,Skype),一切都恢复正常。希望这对其他人也有用。 |