JQuery mobile:登录链接转到最后一个缓存页面

时间:2012-12-05 16:58:03

标签: jquery jquery-mobile

我正在尝试为我为公司制作的网络应用实施移动解决方案。基于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>

1 个答案:

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