相关疑难解决方法(0)

为什么Safari不尊重我的缓存控制指令?

有一个特定的页面,我希望浏览器始终加载,特别是当用户按下浏览器后退按钮才能访问它.

所以我在这个页面的标题中使用了以下'Cache-Control'指令(直接从我的代码中获取PHP).

$headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, max-age=0';
Run Code Online (Sandbox Code Playgroud)

这适用于FF,IE和Chrome,但Safari(5.0.1)似乎忽略该指令并且无法重新加载页面(跨多个用户,因此它似乎不是特定于设置的问题).搜索没有发现任何已知的错误,所以我假设我的结果有些不对劲.

任何指针都将非常感激.

更新:刚刚在SO上找到了这个答案.

Safari浏览器忽略了我的无缓存

尚未尝试过,但看起来很有希望.很奇怪它是身体标签的补充,所以我持怀疑态度.

safari cache-control

9
推荐指数
1
解决办法
2万
查看次数

如何通过浏览器后退按钮处理用户到达页面?

  1. 用户访问页面A并点击几次,随着他/她的进展调整页面状态.
  2. 页面A最终将用户重定向到页面B.
  3. 用户点击浏览器后退按钮,再次在浏览器中看到页面A.

我需要在第3步执行一些界面清理.

如何在页面A中捕获此事件?

javascript asp.net jquery

9
推荐指数
1
解决办法
2002
查看次数

用户从后退按钮到达时重新加载页面

我有一个通用的错误页面,任何处理的错误将重定向到.我有一个管理页面,当用户调用错误,并且用户被带到错误页面时,从错误页面点击后退按钮会导致管理页面加载不正确.

所以我需要的是一种在我来自错误页面时重新加载管理页面的方法.我已尝试在管理页面上设置无缓存等,并检查回发,但没有任何作用.设置无缓存似乎什么都不做,管理页面的document.ready函数上的任何javascript也不会被调用.有没有其他方法可以实现这一目标?

编辑:

我还要提一下,我注意到我最近添加了一个表缺少2个单元格.这让我相信在某个地方有一个旧的状态被缓存,虽然清除浏览器缓存并重新启动我的服务器根本没有帮助.

EDIT2:

此外,当我回到管理页面时,设置window.onload()会被激活

html javascript asp.net

8
推荐指数
1
解决办法
1824
查看次数

jQuery页面转换和浏览器历史记录

我正在使用jQuery在我的html页面上有一个淡入效果,效果很好.但是,当我点击浏览器中的后退按钮时,我会转到正确的URL,但会得到一个空白页面.这是一个浏览器缓存的东西吗?我对jQuery比较陌生,我不确定如何解决这个问题.这是网站:http://www.e-preview.be/huyzewaterloos/nl/index.html

我正在使用的代码是这样的:

//page transition
    $("body").css("display", "none");
    $("body").fadeIn(1500);
  $("a.transition").click(function(event){
   event.preventDefault();
   linkLocation = this.href;
   $("body").fadeOut(500, redirectPage);
  });

 function redirectPage() {
  window.location = linkLocation;
 }
Run Code Online (Sandbox Code Playgroud)

jquery

7
推荐指数
1
解决办法
9375
查看次数

在Firefox中使用"后退"按钮时,表单提交按钮保持禁用状

我点击后使用了一些jquery来禁用表单提交按钮,以防止意外重复点击.这适用于除Firefox以外的所有浏览器.在Firefox中,如果用户使用浏览器"后退"按钮在发生提交按钮禁用后返回页面,则仍会禁用提交按钮.有没有解决这个问题的方法?

firefox jquery back-button submit-button

6
推荐指数
2
解决办法
4084
查看次数

在Chrome和IE中单击后退按钮时,防止重新加载Ajax数据

我目前正在一个网站上,主页显示最近的10个博客条目.当我向下滚动时,当我几乎到达屏幕上最后一项的末尾时,会自动加载另外10个博客条目,依此类推(这是无限滚动功能).

如果用户单击任何博客条目,则他/她将被带到另一个页面以显示有关该博客条目的详细信息.当用户单击后退按钮时,他/她将被带到显示条目的主页.

请注意,主页使用Ajax加载数据.

假设以下场景:

  1. 用户进入站点,并加载条目1到10(通过Ajax).

  2. 用户向下滚动,然后加载下一个10个,特别是条目11到20(也通过Ajax).请注意,页面现在显示为1到20.

  3. 用户向下滚动,现在加载条目21到30,在页面上显示总共1到30个博客条目.

  4. 用户点击条目25,显示条目25的页面.

  5. 用户单击后退按钮,将显示所有项目1到30.

现在,如果用户使用火狐,Opera或Safari浏览器,当用户执行步骤5(即,单击后退按钮返回到主页),那么博客条目只是显示在屏幕上,并没有被重新加载.但是,使用IE和Chrome时,当用户单击后退按钮时,将重新加载页面,并且仅显示项目1到10.

我不喜欢IE和Chrome的行为.用户应该看到第1项到第30项.我如何确保所有浏览器都像FireFox一样?

谢谢.

更新

这是我正在使用的代码

首先,她是我的HTML

<html>
    <body>

        <section id="content">
            <section id="articles">
                <!-- This section is filled by jQuery/Ajax -->
            </section>

            <section id="loading-spinner">
                <img src="ajax-loader.gif" />
            </section>

        </section>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的jQuery

/**
 * 
 * This file uses a bunch of programming concepts, but the most important one is ensuring ajax calls run as a critical section
 * ... (this means if ajax is already called, then another instance of JavaScript cannot …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery back-button infinite-scroll

6
推荐指数
1
解决办法
3596
查看次数

在什么情况下,$(文件)..已经在后退按钮点击触发?

我正在使用一些使用JQuery的$(document).ready功能来设置jqGrid实例的代码.即使通过后退按钮单击返回页面,似乎也会触发代码.

在精简测试页面中,通过后退按钮点击时不会调用类似的就绪函数:

<html>
<head>
    <script type="text/javascript" src="/JQuery/jquery-1.4.2.min.js"></script>

    <script type="text/javascript">

    $(document).ready(function(){
        alert('ready');
    })

    </script>
</head>
<body>
    <p>Index View</p>

    <a href="detail.html">Detail</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

你能给我一些关于在哪里寻找导致这种行为差异的原因的提示吗?

我在这个问题的答案中找到了一些相关信息,但是带有过度活动就绪事件的页面没有为卸载注册的事件处理程序.

jquery back-button document-ready

5
推荐指数
0
解决办法
2万
查看次数

如何处理所有浏览器中的就绪事件和页面显示事件,以在按下后退按钮时提供帮助

我是 jquery 的新手,刚刚意识到.ready当您使用浏览器的“后退”按钮返回页面时,函数中的代码并不总是会运行。从阅读 stackoverflow 上两年前的帖子来看,似乎并非所有浏览器都以相同的方式工作,并且没有单一的 jquery 函数可以解决问题。现在还是这样吗?检测页面是第一次运行还是在用户按“BACK”后再次显示的最佳方法(2012 年!)是什么?

需要明确的是:假设我有一个红色文本页面,点击后用 javascript/jquery 将单词更改为蓝色......如果我导航到新的 URL,然后按“返回”,则会发生以下情况:
Firefox - 单词仍然蓝色
IE/Chrome - 文字变回红色

Firefox
我了解 Firefox 和其他一些浏览器实现了pageshow和事件,并且在显示“bfcache”中的页面时pagehide不会触发该事件。ready在此功能中,您可以检查event.originalEvent.persisted 情况

IE/Chrome
我知道一个技巧,用于<input type="hidden" id="dirty">跟踪页面是否在 IE/Chrome 中首次加载。不确定这有多可靠。我想我也可以尝试一块饼干。

为完全无知而道歉...

编辑:为什么这么做?
我自己的情况需要很长时间才能解释清楚,但这里有一个愚蠢的例子,也有同样的问题:想象一个显示 10 张扑克牌的页面,用户可以选择一张牌,使其在屏幕上向上移动。当您选择一张卡时,会触发一个 ajax 请求,将该卡的详细信息发送到服务器。现在想象一下您离开该页面,然后使用 BACK 返回该页面。可能会发生三种情况:
1. 浏览器可能会调用服务器来获取页面,并且服务器(数据库)知道选择了哪张卡,因此可以输出相关的 HTML/脚本
2. Firefox 将使用 bfcache 来显示您的页面 -所选择的卡片仍将被选择(向上移动),因为 DOM 的状态被准确保留(事件ready不会被命中)
3. IE/Chrome 将从缓存中重新加载原始 HTML 并调用ready事件的脚本.... .显示所有处于“未选择”位置的扑克牌。您选择的卡丢失了!

jquery cross-browser browser-cache

5
推荐指数
1
解决办法
3266
查看次数

复选框仍选中后退按钮,但没有“已选中”属性

我正在为电子商务使用基于复选框的过滤器。一切正常,但是当我尝试通过“后退”按钮返回时,复选框仍处于选中状态,而没有任何选中的属性。

我注意到此“问题”发生在:

  • 苹果浏览器

我发现的唯一方法就是重新加载页面。但是“用户回退”事件似乎不是可捕获的,而且我不想刷新每个页面。

将我的所有复选框都设置为默认设置没有任何意义。

禁用Chrome缓存无效。


我不知道我的代码示例是否有用

编辑:这是我的第一篇文章,所以请务必告诉我为什么我的问题似乎不清楚

php checkbox state input checked

3
推荐指数
1
解决办法
1719
查看次数

每次加载页面后运行 JavaScript

我有一个简单的问题,但它困扰了我很多天,而且我找不到解决方案。我想在每次加载或呈现页面时触发 JavaScript 事件。

有任何机构可以帮忙吗?

javascript jquery jquery-events

0
推荐指数
1
解决办法
1万
查看次数