2012-08-30 73 views
1

我遇到了jquery mobile的问题,当我加载页面时,它从JSon格式的公开API中提取数据,解析它,然后将数据插入到DOM中以显示页面,但是页面显示的是什么,然后在解析数据的时候传递了2-4秒,然后将数据插入到页面中,并且它看起来不是非常令人愉快,只是想知道如何预加载DOM并在pageChange动画触发之前解析JSON。Jquery Mobile预加载页面

回答

2

在JQuery Mobile中处理动态生成页面的正确方法是将页面检索绑定到文档的beforepagechange事件。一旦页面被恢复,您可以继续进行适当的更改页面。

例如,具有getPageFromAPI功能检索与URL“newPageURL”

$(document).bind("pagebeforechange", function(e, data) { 
    if ((typeof data.toPage === "string") && (data.toPage == "newPageURL") ) { 
     e.preventDefault(); //to make sure we prevent standard page change 
     getPageFromAPI({success: function (newPage) { 
       $.mobile.changePage(newPage) 
      } 
     }); 
    } 
}); 
+0

HMM访问你的页面的完整的jQuery对象,我做的是,IM之后的jQuery Mobile的文档中的例子,但由于某种原因,$ .getJSON没有被解雇,也没有从API中抽取任何东西 – flaiks

+0

我得到了这种工作方式,它在第一次触发页面时不起作用,由于某种原因它没有加载到DOM中,我甚至试过$ .mobile.loadPage(“desired_pa​​ge.html”);和我的getPageFromAPI函数的开始,但是,它加载页面,然后加载JSON到页面中,我希望它显示加载轮类型,直到整个函数完成,因此用户看不到空白页面填满。 – flaiks