【问题标题】:JQM - JQuery Mobile 1.4.2 infinite refresh, is it a bug?JQM - JQuery Mobile 1.4.2 无限刷新,是bug吗?
【发布时间】:2014-05-02 16:03:15
【问题描述】:

我找不到任何其他有此问题的人的信息...我没有在任何地方使用 .page(),我什至取消了我的外部 javascript 文件的链接,但它仍然会发生。

我使用导航栏进行导航,并且随机(并非总是)它会开始无限循环重新加载页面。并且有这 1 页,如果我按 f5 重新加载它,它并没有什么特别之处,但如果我来自另一个页面......它不会发生 o O 这太奇怪了。

我将 php 和 jqm 1.4.2 与 jquery 1.10.2 一起使用。我会发布代码,但无法真正确定任何内容。

在我可以按 f5/refresh 并且它总是出现此错误的页面上,我尝试删除所有内容和 php,除了包含/页眉/页脚部分之外,它仍然会发生....,删除我的 js标题,它仍然会发生,我能得出的唯一结论是 jqm 1.4.2 jquery 或我的 php 设置,我不知道该怎么做。任何想法?这个网站以前是jqm 1.2.0的,当时不记得有这个问题了。

编辑:似乎删除 _footer.php 部分停止了错误,这是它的内容:

<?php
$navCSS = "ui-btn-active ui-state-persist";
?>
<div data-role="footer" data-position="fixed" data-tap-toggle="false">
    <div data-role="navbar" data-iconpos="top">
        <ul>
            <li><a href="quarts.php" class="cui-icon ui-nodisc-icon <?php echo($pageID == "quarts")?$navCSS:""; ?>" data-icon="quarts" data-prefetch="true" data-transition="fade">Quarts</a></li>
            <li><a href="nouvelle.php" class="cui-icon ui-nodisc-icon <?php echo($pageID == "nouv")?$navCSS:""; ?>" data-icon="nouv" data-prefetch="true" data-transition="fade">Nouvelle</a></li>
            <li><a href="disponible.php" class="cui-icon ui-nodisc-icon <?php echo($pageID == "disponible")?$navCSS:""; ?>" data-icon="dispo" data-prefetch="true" data-transition="fade">Dispo.</a></li>
            <li><a href="paies.php" class="cui-icon ui-nodisc-icon <?php echo($pageID == "paie")?$navCSS:""; ?>" data-icon="paie" data-prefetch="true" data-transition="fade">Paies</a></li>
            <li><a href="#pushMenu" id="push" class="cui-icon ui-nodisc-icon <?php echo($pageID == "code" || $pageID == "docs" || $pageID == "profil")?$navCSS:""; ?>" data-icon="autre" data-transition="slide">Autres...</a></li>
        </ul>
    </div>
</div>

<!-- page end -->
</div>
</body>
</html>

编辑:删除 data-prefetch 可以解决问题,但我想预取页面以实现流畅导航并让它感觉像一个应用程序,为什么会导致这个问题?

【问题讨论】:

  • 请添加更多细节和代码。
  • 尝试删除链接中的预取。
  • 我删除了预取,这停止了此页面上的刷新问题,但后来我注意到我的页面都搞砸了,有些页面有 2 个页面,有些页面有上一个页面的标题页或上一页的内容。我不知道是怎么回事。重新添加预取可修复该问题。
  • 在这种情况下,创建一个外部页脚。当您使用预取的每个页面都有相同的页脚时,它将多次预取相同的页面/链接。
  • 这个页脚是外部的,我使用 php require_once 在 ui-content 关闭 div 之后的每个页面上包含它。还是你的意思是别的?

标签: php jquery jquery-mobile


【解决方案1】:

外部页面/链接被预取多次,因为您在内部为每个页面使用相同的导航栏。您的解决方案是使用可从任何内部或外部页面访问的 External 页脚和 navbar

<body> <!-- or page container div -->
  <div data-role="page">
  </div>

  <!-- external footer -->
  <div data-role="footer" data-theme="a">
     <div data-role="navbar">
     </div>
  </div>

当使用外部小部件时,您需要手动初始化它们,方法是调用.toolbar(),然后调用.enhanceWithin()初始化内部小部件。

$(function () {
  $("[data-role=footer]").toolbar().enhanceWithin();
});

【讨论】:

  • 实际上,一旦我修复了标签(来自我的另一个问题),这个问题就不会再发生了。你认为我还应该把它放在外部吗?
  • @user 由您决定。相反,如果向每个页面添加相同的 html 标记,则只需添加一次。
  • 别在意我之前的评论,它似乎可以正常工作,因为我使用的是绝对路径作为链接,现在我删除了绝对路径并使用了正常链接,它回来了,所以我把它从页面中取出div,它又可以工作了!
猜你喜欢
  • 2014-07-21
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
相关资源
最近更新 更多