我正在体验Google购物车页面上Google Chrome和Safari的缓存问题。购物车中有2个下拉列表。当您在更改下拉列表中的值后点击结账按钮时,它会将列表中选定的内容提交到数据库。ASP.NET - Chrome浏览器缓存DropDownList选择
解释意外行为有点难,所以我会尝试一步一步写出我的问题。
比方说第一个下拉列表具有的价值:
- VALUE1
- VALUE2
- VALUE3
而第二个下拉列表具有的价值:
- DUMBO1
- DUMBO2
- DUMBO3
我添加项目到我的车。
屏幕说:VALUE1,DUMBO1
数据库云:VALUE1,DUMBO1
我打结帐。
数据库说:VALUE1,DUMBO1(我无法看到的下拉列表,我打结账后,因为我的购物车页面可不是)
我打的后退按钮。
屏幕说:VALUE1,DUMBO1
数据库说:VALUE1,DUMBO1
我下拉VALUE1组合和选择VALUE2,VALUE2瞬间被选择,然后网站会回和VALUE1在下拉菜单中重新选择下拉列表(从DB被重新加载)
瞬间屏幕说:VALUE2,DUMBO1
数据库云:VALUE1,DUMBO1
再经过回发FROM DROPDOWNLIST_SELECTIONCHANGED事件
屏幕说:VALUE1,DUMBO1
数据库云:VALUE1,DUMBO1
命中查看。
数据库VALUE1说,DUMBO1(我无法看到的下拉列表,我打结账后,因为我的购物车页面可不是)
回去。
屏幕说:VALUE2,DUMBO1
数据库云:VALUE1,DUMBO1
所以看起来它想起我的选择VALUE2的,即使它跳回到VALUE1之前我检查了。
这似乎是一个缓存问题,但我有一些没有缓存代码,以防止该页面的缓存,在firefox和Internet Explorer中效果很好,但似乎在Chrome和Safari中失败。我基本上在购物车页面的标题中返回:no-cache,no-store,并且必须重新验证以尝试防止缓存,但基于这种情况,它似乎是缓存页面,而不是在我重新加载时点击后退按钮。
我很乐意接受任何解决方案或建议。谢谢!
是的,我正在设置PageLoad上的下拉列表值,并且我只是在设置值不是回发时就像您建议的那样。 – Fake 2010-05-21 20:48:05
你可以把它归结为一个非常简单的测试用例(你有很多步骤)和代码,然后人们可以更好地重现它。 – Kinlan 2010-05-24 18:47:24