我正在尝试为我为公司制作的网络应用实施移动解决方案。基于PC的主要应用程序运行良好,但移动设备表现得很奇怪。
目前,用户注销的唯一方法是让他们访问应用程序主页并选择注销(这最终会改变,但我们仍处于早期开发阶段)。当用户退出应用程序时,我调用一个控制器(index.php)来刷新PHP会话数据,创建一个页面(form.html.php),然后用户可以单击一个链接重新登录。链接将调用主控制器,它将检查是否设置了特定的会话变量,如果没有,则重定向到登录控制器/页面。由于注销表单会刷新所有数据,因此应将用户重定向到登录页面。如前所述,使用PC浏览器,这很好。
移动设备上发生的事情是,当用户点击链接重新登录时,移动设备会转到登出的主页面。由于所有会话数据都处于非活动状态,因此页面实际上已经死亡。
如何让Mobile app(或JQuery mobile)停止缓存上一页?任何帮助表示赞赏。仅供参考:我刚学习移动应用程序基础架构。
的index.php:
<?php
session_start();
$url = $_SESSION['myurl'];
$root = $_SESSION['myroot'];
$formTitle = 'Exit NSI CRM';
$formHeading = 'NSI CRM System - Goodbye';
$m = $_SESSION['mobile'];
session_destroy();
($m?include ('m_form.html.php'):include ('form.html.php'));
exit();
?>
m_form.html.php:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="<?php print 'http://'.$_SERVER['HTTP_HOST'].'/crm/css/m_crm.css';?>">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script type="text/javascript">
google.load("jquery", "1");
</script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<?php include $root.'/inc/favicon.php'; ?>
<title><?php print $formTitle; ?></title>
</head>
<body>
<div data-role="page">
<div>
<br>
<img src="<?php print 'http://'.$_SERVER['HTTP_HOST'].'/crm/img/handshake.jpg';?>">
<h3>
You have been logged out of the NSI CRM System. Good-bye!
<br>
To log back in, click <a style="font-size: larger;" href="<?php echo 'http://'.$_SERVER['HTTP_HOST'].'/crm/'; ?>">here.</a>
</h3>
</div>
</div><!-- /page -->
</body>
</html>
答案 0 :(得分:3)
您是否尝试过禁用jquery mobile的ajax功能?
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
});
在jquery移动框架加载之前调用它。
或者您可以修改链接,添加其中一个属性
rel="external", data-ajax="false"
e.g。 <a href="somepage.html" rel="external">Link</a>
参考:http://jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html