0

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

4

3 回答 3

2

除非您的应用程序出现重大问题,否则您所描述的都是正常情况。

虽然页面转换可能需要很长时间(桌面浏览器上的页面加载/转换时间通常为 670 毫秒),但页面加载到该页面DOM只需几毫秒(通常为 3-5 毫秒)。AJAX只有当页面加载(进入DOM)需要超过 10 毫秒时,加载程序才会显示。其他页面转换动作不计入AJAX调用,因此页面加载到DOM.

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

  • 页面加载和处理:3ms(AJAX加载器仅在此操作期间显示,如果需要超过 10ms)
  • 页面增强:45ms
  • 过渡:604ms

要了解更多信息,请查看我的其他文章,或在此处找到它,搜索名为:页面更改时间的章节

还有一件事,除非您使用正常的页面加载AJAX加载器,否则不会显示(如果您的链接具有属性rel="external"data-ajax="false")。

于 2013-03-04T15:15:17.217 回答
0

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

或者,您可以在某些链接和按钮中将 rel="external" 作为属性,从而禁用 ajax 导航。

如果您可以更具体,即发布您的问题的 jsfiddle 示例,我可以给您一个更好的解释。另请提及您使用的 Jquery Mobile 版本。

于 2013-03-04T15:11:00.570 回答
0

当你这样做时:

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

添加这个:

$.mobile.showPageLoadingMsg();

不要忘记添加

$.mobile.hidePageLoadingMsg();

在 pageLoad 函数的末尾

于 2013-03-04T19:37:47.287 回答