我正在开发一个网络应用程序来管理产品 SKUS。其中一部分是将 SKU 与产品名称相关联。在表的每一行上,我列出一个 SKU 并显示一个包含产品名称的 <select>
框。当前与数据库中的 SKU 相关联的产品被赋予一个类似于 selected="selected"
的属性。这可以通过 AJAX 进行更改和更新。
有一个 很多的产品 <option>
s-103是准确的-这个名单是重复的 <select>
在每一行。
在页面的另一个输入中,我使用 jQuery AJAX 请求来添加新的 SKU/产品关联,为了清楚地表明它们是即时添加的,我将它们插入到表的 头儿中,并使用了一点高亮效果。随着 SKU 数量增加到10个左右,如果我刷新页面(从按产品名称排序的数据库中加载所有内容) ,Firefox 开始显示一些默认选择的错误选项。关于显示的是哪个不正确的选项并不一致,但是它似乎混淆了页面重新加载之前存在的选项。
如果我使用 Firebug 检查 <select>
,那么 select="selected"
在正确的 <option>
标记上。刷新页面(或者离开并键入该页面的 URL 返回)不会使其正确显示,但是会显示 硬刷新(Ctrl + F5)。
首先,Chrome 和 IE7都正确地显示了这一点。
我的理论是这是 Firefox 缓存策略错误的结果。听起来对吗?有没有什么方法可以让我在代码中说“如果这个页面被刷新了,就让它成为一个难以刷新的页面——从头开始重新加载所有内容?”
为了解决这个问题,我改变了策略。
<select>
,其中包含一个长长的 <option>
列表,并将当前值设置为缺省值<span>
中。如果用户单击“ change”按钮,我将 <span>
替换为 <select>
,而“ change”按钮将变成“ sure”按钮。如果他们改变选项并点击确认,AJAX 会更新数据库,而且 <select>
会回到 <span>
,这次是新的值。这有两个好处:
<option>
)