0

我使用多页模板创建我的页面,我读到加载时每个页面中只有起始页(例如 index.aspx)仍然保留在 Dom 中。但是现在在我的另一个页面(例如 child.aspx)中,它是页面 parent.aspx 的子页面,我可以看到 parent.aspx 页面的 dom 元素。面包屑如下:索引--->父--->子,也许我应该只看到索引dom内容而不是父。这让我想知道为什么页面是这样的以及我如何处理它。谢谢

更新:

我只想在每次显示时重新加载每个页面,我的意思是完全清除 DOM 并从头开始加载内容。就像当您按下 ctrl+f5 并加载没有缓存的页面时一样。这在 JQM 中可能吗?

索引.aspx:

    <form id="form1" runat="server" dir="rtl">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
            <ContentTemplate>
        <asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
        <uc2:MblMyMessageBox ID="MblMyMessageBoxInfo" runat="server" ShowCloseButton="true" /> 
    <div data-role="page" id="home"> 
        <div data-role="header">
            <h1>header</h1>
        </div>
        <div data-role="content">   
            <ul data-role="listview" data-inset="true" data-filter="false">
                <li data-icon="false"><a href="AccountStatus.aspx">AccountStatus</a></li>
                <li data-icon="false"><a href="ConfirmPayment.aspx">ConfirmPayment</a></li>
            </ul>   
        </div>
    </div>
            </ContentTemplate>
    </asp:UpdatePanel>
</form>

帐户状态.aspx:

 <div data-role="page" id="accountStatus">
    <div data-role="header">
        <h1>Header</h1>
    </div><!-- /header -->
    <div data-role="content">   
        <ul data-role="listview" data-inset="true" data-filter="false">
            <li data-icon="false"><a href="BalancePage.aspx" data-prefetch="true">balance</a></li>
            <li data-icon="false"><a href="InvoicePage.aspx">invoice</a></li>
        </ul>           
    </div><!-- /content -->
    <div data-role="footer">
        <p><a href="Index.aspx">back</a></p>
    </div><!-- /footer -->
 </div><!-- /page -->   

从 accountStatus 页面 dom 元素中删除索引的内容是我的目的。

4

1 回答 1

2

用户导航到的所有页面都将添加到 dom 中。请参阅文档。然而,jQM 也有一种机制来防止 DOM 变大并减慢浏览器的速度。它可能会也可能不会从 DOM 中删除旧元素。我建议你不要相信 DOM 元素会被自动删除。如果您真的想删除您要离开的页面,您可以绑定例如以下内容:

$(document).one("pageshow",function(){
     $(document).one("pagehide",function(){
          $("#pageId").remove();
     });
});

其中 pageId 是您提供给<div data-role="page" id="pageId">.

编辑更新的问题:在以下链接时重新加载整个页面:

指向其他域或具有 rel="external"、data-ajax="false" 或 target 属性的链接将不会被 Ajax 加载。相反,这些链接将导致整个页面刷新而没有动画过渡。

来源:jQuery Mobile 文档

或者您可以使用以下全局变量更改它:

$.mobile.ajaxEnabled = false;
于 2012-09-29T09:53:18.123 回答