【问题标题】:Firefox bfcache issue?Firefox bfcache 问题?
【发布时间】:2013-06-24 17:00:09
【问题描述】:

我只使用 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 将此页面和部分视图设置为不缓存。但这也没有用。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 firefox browser-cache


    【解决方案1】:

    也许是 bfcache,也许不是。 前段时间我不得不面对同样的问题。浏览器缓存在我们的表单上造成了一些奇怪的行为,并且影响了页面的预期结果。 以某种方式解决它为了使程序加载始终正确的值(假设您从 加载它)您可以做的事情是通过您的 Javascript 初始化该值。

    如果你使用 JQuery,你应该使用:

    <script type="text/javascript">
        $(document).ready(){
          //Assign your items values here
        }
    <script>
    

    您也可以在 JS 中使用 onload 处理程序。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我能够解决问题。 Firefox 缓存所有表单数据,甚至是隐藏的输入。由于我使用隐藏字段来存储启用 AJAX 请求的标志,因此它将重新加载带有标志集的表单数据。我将它移到了一个自定义属性中,它完全可以正常工作。

      【讨论】:

        猜你喜欢
        • 2011-12-11
        • 1970-01-01
        • 2011-02-17
        • 2016-09-16
        • 2011-03-04
        • 2010-12-05
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多