1

我正在使用桌面将我的 jQuery Mobile 应用程序的文本/内容存储在 Google Doc 中,因此当有人访问我的应用程序时,它应该做的第一件事就是获取内容(JSONP 请求)。

假设 jQuery Mobile 在 JSONP 请求完成之前加载/渲染(不一定是这种情况),它应该显示一个加载指示器,直到请求完成,然后请求回调将渲染数据,它需要触发一个重新渲染以增强<ul>元素之类的东西。

我该怎么做才能使时间与 jQuery Mobile 加载/渲染一致?

我正在考虑在<head>(而不是在事件内部)执行 JSONP 请求并在完成时将数据渲染到内容中<div>,但是我需要触发重新渲染,如果我在渲染 jQuery Mobile 之前触发它,它会破裂等。

如果这没有意义,这里有一个更相关的示例:假设您希望您的首页显示特定帐户的最新推文。当您加载页面时,它会获取推文。您如何计时,以便在获取完成后可以正确呈现?

4

1 回答 1

1

您可以绑定到pageinit事件以发出 AJAX 请求。这确保了 jQuery Mobile 伪页面将在 AJAX 请求返回时被初始化。这很好,因为这样您就知道动态添加的代码的状态,它没有被初始化。

例如:

$(document).on('pageinit', '#myLandingPage', function () {
    $.ajax({
        ...,
        success : function (response) {
            //do your work on the response

            //then when you add the HTML output to the DOM just initialize it
            $("#some-container").html(htmlOutput).trigger("create");
        }
    });
});

我建议您使用服务器端语言执行初始 JSONP 请求,因为您的服务器很可能具有非常好的带宽,而您的用户可能没有(特别是如果他们在移动设备上)。

于 2012-11-08T22:33:32.227 回答