我只有firefox遇到麻烦。我的页面显示了当用户单击要扩展的节点时通过ajax加载的树结构。我与firefox,只有firefox的问题是它将扩展第一页加载的节点。但是之后,firefox缓存它很奇怪,ajax请求的节点头,而不是子节点,被转移到新页面。这是一个问题,因为结转的节点标头包含确定节点是否已检索到其子节点的信息。
<div class="node topbar"
<input type="hidden" id="foo" name="hasretrievedchildren" value="1"/>
...
</div>
它应该与第一页加载时一样。
<div class="node topbar"
<input type="hidden" id="foo" name="hasretrievedchildren" value="0"/>
...
</div>
我的Javascript检查该输入上的非零值以进行AJAX调用。
这是一个bfcache问题吗? 我认为这不是因为我添加了
window.onunload = function();
到js文件和脚本标签中并没有修复它本文的内容 https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching 说应该使bfcache无效。
我正在使用asp.net MVC 4,我尝试使用MVCdonutcaching将此页面和部分视图设置为不缓存。但那也不起作用。
答案 0 :(得分:0)
也许是bfcache,也许不是。 前段时间我不得不面对同样的问题。浏览器缓存在我们的表单上引起了一些奇怪的行为,并且它影响了页面的预期结果。 无论如何要解决它为了使程序加载始终正确的值(假设你正在加载它),你可以做的就是通过你的Javascript初始化值。
如果您使用JQuery,则应使用:
<script type="text/javascript">
$(document).ready(){
//Assign your items values here
}
<script>
您也可以在JS中使用onload处理程序。
希望这有帮助。
答案 1 :(得分:0)
我能够解决问题。 Firefox缓存所有表单数据甚至隐藏的输入。由于我使用隐藏字段来存储启用AJAX请求的标志,因此它将使用标志集重新加载表单数据。我将它移动到自定义属性,它的工作原理完全正确。