在缓存页面上触发Javascript?

时间:2010-04-15 14:49:06

标签: javascript caching

我很确定我不能做我实际要求的事情,但我想知道这个问题是否有某种解决方法。

我有一个页面,其中包含一个包含多个选项的下拉SELECT表单元素。如果选择了一个特定选项(在这种情况下,第一个项目),我们将显示其他内容(通过jQuery)。这很好。

但是,如果我选择第2项,那么附加内容就会消失。然后我转到另一页然后点击BACK。在这一点上,页面正确地保留了隐藏的附加内容(因为它是最后一个状态),但SELECT菜单已被重置为第一个项目。然后我必须单击SELECT,选择一个不同的选项,然后再次选择它,选择第一个选项,最后将其他内容带回来。

我无法从缓存页面上的内容中触发Javascript(或者有办法吗?)还有其他聪明的选择吗?

我提出的一个选项是对包含快速“重置元素”检查的SELECT菜单的区域应用某种鼠标悬停操作。这看起来有点hacky,当然,会为人们产生奇怪的屏幕重绘。

2 个答案:

答案 0 :(得分:0)

您可以记录用户操作已发生并使用JavaScript重新执行。您可以将其存储在cookie中,然后在页面加载时检查它并重置所需的元素。

答案 1 :(得分:0)

根据您的具体情况,here的答案就足够了:

现在大多数浏览器都支持导航时间(ie9 +):http://www.w3.org/TR/navigation-timing/#sec-navigation-info-interface

你可以像这样使用它:

 if (!!window.performance && window.performance.navigation.type === 2) {
    // page has been hit using back or forward buttons
  } else {
    // regular page hit
 }