我的购物车页面上的 Google Chrome 和 Safari 似乎遇到了缓存问题。购物车中有 2 个下拉列表。当您在更改下拉列表中的值后点击结帐按钮时,它会将列表中选择的内容提交到数据库。
解释意外的行为有点困难,所以我会尝试一步一步地写出来,并说明我的问题。
假设第一个下拉列表的值为:
第二个下拉列表的值为:
我将一件商品添加到我的购物车。
屏幕显示:VALUE1、DUMBO1
数据库显示:VALUE1,DUMBO1
我点击“结帐”。
数据库显示:VALUE1,DUMBO1(点击结帐后我看不到下拉列表,因为我不在购物车页面)
我按下后退按钮。
屏幕显示:VALUE1、DUMBO1
数据库显示:VALUE1,DUMBO1
我下拉 VALUE1 组合并选择 VALUE2,VALUE2 立即被选中,然后站点回发并在下拉列表中重新选择 VALUE1(从数据库重新加载)
屏幕瞬间显示:VALUE2,DUMBO1
数据库显示:VALUE1,DUMBO1
然后从 DROPDOWNLIST_SELECTIONCHANGED 事件回发后
屏幕显示:VALUE1、DUMBO1
数据库显示:VALUE1,DUMBO1
点击结帐。
数据库显示 VALUE1 ,DUMBO1 (点击结帐后我看不到下拉列表,因为我不在购物车页面)
Go back.
屏幕说:VALUE2, DUMBO1
数据库显示:VALUE1,DUMBO1
因此,它似乎记住了我对 VALUE2 的选择,尽管它在我签出之前跳回了 VALUE1。
这似乎是一个缓存问题,但是我有一些无缓存代码来防止缓存该页面,该页面在 Firefox 和 Internet Explorer 中运行良好,但在 Chrome 和 Safari 中似乎失败。我基本上是在购物车页面的标题中返回:无缓存、无存储和必须重新验证以尝试防止缓存,但基于这种情况,它似乎无论如何都会缓存页面,并且当我时不会重新加载它按后退按钮。
目前我愿意接受任何解决方案或建议。谢谢!
我遇到了类似的问题,我花了几天的时间进行测试,但没有找到答案。
假设我们有一个填充颜色的下拉列表。每次我更改值时,我都会使用 ajax 进行部分回发以保存值并执行更多操作,例如检查库存。
我选择(按顺序):红、白、蓝、绿。
然后我点击结帐,当我返回时,我惊讶地发现红色被选择了。我再回去,我被选为白色。返回四次后,然后是蓝色,最后是绿色。
我在 IE 和 FF 上尝试过,发现它工作正常,所以这不是代码中的错误。它必须与镀铬有关。
有人可以帮忙吗?
编辑:我尝试使用我正在制作的另一个网页,它工作正常,但我找不到它们之间可能导致它的任何差异。
Edit2: 我找到了“解决”这个问题的方法 using ScriptManager.RegisterStartupScript
在导航事件中编写一个正确设置值的脚本,而不是在codebehind
。这不是一种非常优雅的方式,但它对我有用,我希望对其他有类似问题的人也有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)