jQuery:缓存可以防止页面正确加载

时间:2013-01-02 23:59:01

标签: jquery caching jquery-mobile

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

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

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

  3. 这些问题似乎都来自缓存。如果有一个有效的解决方案,我会喜欢,但如果我需要关闭缓存,我明白这将影响速度,这是现在的好。我尝试使用以下方法关闭缓存:

    <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>
    

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

1 个答案:

答案 0 :(得分:0)

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

你不包括你的ajax电话,但我有时需要诉诸这个。

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

我可以引用自己的权利吗?