我正在开发一个网站/应用程序的问题。实际上这是两个共同原因的问题。我正在使用jQuery,jQueryMobile和PHP。
我有一个使用PHP会话的登录系统,用户输入用户名和密码然后登录。在下一页上,检查以确保他们以授权用户身份登录(如果他们只使用URL,例如)和“注销”按钮。如果他们注销并尝试通过URL访问该页面它拒绝访问,但是当按下“注销”时它会将它们带到登录表单,如果他们使用浏览器的“后退”按钮,它将把它们带回“登录” “页面,因为它被缓存。
我有一个提交onChange的表单的下拉列表,表单将在PHP中执行一些操作,然后将它们链接到另一个带有标题的页面(“location: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>
......但这不起作用。如果有人可以帮助我,我会非常感激!
答案 0 :(得分:0)
我没有完全关注你的问题,但我发现Safari的缓存非常激进。考虑一下:https://stackoverflow.com/a/13365356/64262
你不包括你的ajax电话,但我有时需要诉诸这个。
$.post("/MyService/", { timestamp: new Date().getTime() }, ...)
我可以引用自己的权利吗?