如何在jquery mobile中进行页面转换时让ajax加载显示?

时间:2013-03-04 14:57:06

标签: jquery-mobile

有时,它会显示,有时候,不会,如何确保ajax加载指示器在jquery mobile中显示?

3 个答案:

答案 0 :(得分:2)

除非您的应用中存在重大问题,否则您所描述的是正常情况。

虽然页面转换可能需要花费大量时间(桌面浏览器上的常规页面加载/转换时间为670毫秒),但加载到 DOM 的页面只需几毫秒(通常为3毫秒) -5毫秒)。仅当页面加载(进入 AJAX )需要超过10毫秒时,才会显示 DOM 加载程序。其他页面转换操作不计入 AJAX 调用,因此在将页面加载到 DOM 后,动画将不会显示。

页面加载/转换期间的操作:

  • 页面加载和处理:3ms( AJAX 加载程序仅在此操作期间显示,如果它需要超过10毫秒)
  • 页面增强:45ms
  • 转型:604毫秒

要详细了解这一点,请查看我的其他 ARTICLE ,或找到 HERE ,搜索名为:<的章节strong>页面更改时间

还有一件事,除非您使用普通页面加载,否则 AJAX 加载程序将无法显示(如果您的链接具有 rel="external" 属性或 data-ajax="false" )。

答案 1 :(得分:0)

为了确保默认情况下完成ajax导航,只要不向链接和按钮添加data-ajax =“false”属性,Jquery Mobile就会向加载到DOM中的页面添加ajax导航。否则,您可能添加了在某些页面上禁用了ajax导航的全局修改。

或者您可以将rel =“external”作为某些链接和按钮中的属性,这会禁用ajax导航。

如果你可以更具体,即发布你问题的一个例子,我可以给你一个更好的解释。另请注意您正在使用的Jquery Mobile版本。

答案 2 :(得分:0)

当你这样做时:

$.mobile.changePage( "#page-home", { transition: "none"} );

添加:

$.mobile.showPageLoadingMsg();

不要忘记添加

$.mobile.hidePageLoadingMsg();

在pageLoad函数的末尾