延迟页面内容的加载,直到在多页模板中单击菜单项

时间:2015-05-08 11:16:55

标签: jquery-mobile

我不确定我是否理解JQM中多页模板的可能性,所以我需要一些帮助。我使用的是1.4.5版本。

假设我的应用只有两页(页面A和B)由多页模板生成。服务器需要几秒钟来生成每个页面,因为它们需要许多数据库调用和数据处理。目前,这个多页面模板是由服务器上的单个脚本index.pl。

生成的

用户可以通过导航栏访问这两个页面。页面A是模板中的第一页,因此首先对用户可见。

为了加快应用程序的速度,我希望只有在用户点击页面B的导航栏菜单项后,才能从服务器生成和提取页面B的HTML。

页面B加载后,用户现在应该能够立即在页面之间切换,因为两个页面的内容都已加载到DOM中。

实现这一理想结果的正确方法是什么?

我是否将页面B上的导航栏点击绑定到ajax调用并将服务器响应注入页面B?这似乎很糟糕。

我在想我错过了一些关于JQM的基本知识,但我不确定是什么。有人可以帮忙吗?

SERVER-SIDE SCRIPT PSEUDOCODE:

<!-- PAGE A -->
output <div data-role="page" id="page_a">

output <div data-role="navbar">
  output <ul><li><a href="#page_a">Page A</a></li><a href="#page_b">Page B</a><li></ul>
output </div>

output <div role="main" class="ui-content">
          generate_html_page_a();
output </div>
output </div>

<!-- PAGE B -->    
output <div data-role="page" id="page_b">

output <div data-role="navbar">
  output <ul><li><a href="#page_a">Page A</a></li><a href="#page_b">Page B</a><li></ul>
output </div>

output <div role="main" class="ui-content">
          generate_html_page_b();
output </div>
output </div>

1 个答案:

答案 0 :(得分:0)

对于您的架构,最好的方法是单页面模板,但您可以使用pagecontainer API以编程方式加载任何页面。

$(":mobile-pagecontainer").pagecontainer("load", "about.html", { role: "dialog" });

查看jQM docs以获取更多信息。