【问题标题】:jQuery: Caching prevents pages from loading correctlyjQuery:缓存阻止页面正确加载
【发布时间】:2012-12-17 08:35:39
【问题描述】:

我正在开发的网站/应用程序有问题。这实际上是两个问题,有一个共同的原因。我正在使用 jQuery、jQueryMobile 和 PHP。

  1. 我有一个使用 PHP 会话的登录系统,用户输入用户名和密码然后登录。在下一页上,检查以确保他们以授权用户身份登录(例如,如果他们只使用 URL)和“注销”按钮。如果他们注销并尝试通过它拒绝访问的 URL 访问该页面,但是当按下“注销”时,它会将他们带到登录表单,如果他们使用浏览器的“后退”按钮,它会将他们带回到“已登录” " 页面,因为它被缓存了。

  2. 我在下拉列表中提交了一个 onChange 表单,该表单将在 PHP 中执行一些操作,然后将它们链接到带有标题的另一个页面(“位置:site/page.php”)。如果用户按下浏览器的后退按钮,页面将从缓存中加载,并且当前下拉值设置为他们之前选择的值。现在,要再次在同一选项上触发 onChange 事件,他们必须将下拉菜单更改为默认的“选择一个”选项,然后返回到他们想要的选项。

这两个问题似乎都是由缓存引起的。如果有一个有效的解决方案,我会喜欢的,但如果我需要关闭缓存,我知道这会影响速度,现在没问题。我尝试使用以下方法关闭缓存:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <link rel="stylesheet" href="/css/themes/CLIPTheme.css" />
    <script language="text/javascript">
        $(document).bind("mobileinit", function () {
            $.mobile.ajaxEnabled = false;
        });
    </script>
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <script>
    $.ajaxSetup ({
            // Disable caching of AJAX responses
            cache: false
    });
    </script>

...但这不起作用。如果有人可以帮助我,我将不胜感激!

【问题讨论】:

    标签: jquery caching jquery-mobile


    【解决方案1】:

    我没有完全了解您的问题的原因,但我发现 Safari 对它的缓存非常激进。考虑一下:https://stackoverflow.com/a/13365356/64262

    您不包括您的 ajax 调用,但我有时需要诉诸于此。

    $.post("/MyService/", { timestamp: new Date().getTime() }, ...)

    我可以引用自己对吗?

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多