0

我正在开发的网站/应用程序有问题。这实际上是两个问题,有一个共同的原因。我正在使用 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>

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

4

1 回答 1

0

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

你不包括你的 ajax 调用,但我有时需要求助于这个。

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

我可以引用自己对吗?

于 2013-01-03T05:26:51.597 回答