1

我正在尝试为我为我的公司制作的网络应用程序实施移动解决方案。主要的基于 PC 的应用程序运行良好,但移动部分的行为很奇怪。

目前,用户退出的唯一方法是访问应用程序主页并选择退出(这最终会改变,但我们仍处于早期开发阶段)。当用户退出应用程序时,我调用一个控制器 (index.php),它将刷新 PHP 会话数据,创建一个页面 (form.html.php),用户可以在其中单击链接重新登录。这链接将调用主控制器,它将检查是否设置了特定的会话变量,如果没有,则重定向到登录控制器/页面。由于注销表单会刷新所有这些数据,因此应将用户重定向到登录页面。如前所述,使用 PC 浏览器可以正常工作。

移动设备上发生的情况是,当用户单击链接重新登录时,移动设备会转到注销的主页。由于所有会话数据都处于非活动状态,因此页面实际上是死的。

如何让移动应用(或 JQuery 移动)停止缓存上一页?任何帮助表示赞赏。仅供参考:我只是在学习移动应用基础设施。

索引.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>
4

1 回答 1

3

您是否尝试过禁用 jquery mobile 的 ajax 功能?

$(document).bind("mobileinit", function () {
  $.mobile.ajaxEnabled = false;
});

在 jquery 移动框架加载之前调用它。

或者你可以修改你的链接添加这些属性之一

rel="external", data-ajax="false"

例如<a href="somepage.html" rel="external">Link</a>

参考:http: //jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html

于 2012-12-05T17:23:09.883 回答