1

テーブルトップを使用して jQuery Mobile アプリのテキスト/コンテンツを Google Doc に保存しているため、誰かがアプリにアクセスすると、最初にコンテンツを取得する必要があります (JSONP リクエスト)。

JSONP リクエストが完了する前に jQuery Mobile がロード/レンダリングすると仮定すると (必ずしもそうであるとは限りません)、リクエストが完了するまでロード インジケーターを表示する必要があります。その後、リクエスト コールバックがデータをレンダリングし、要素などを強化するための再レンダリング<ul>

タイミングがjQuery Mobileのロード/レンダリングと一致するようにするにはどうすればよいですか?

(イベント内ではなく)で JSONP 要求を実行し、完了時に<head>データをコンテンツにレンダリングすること<div>を考えていましたが、再レンダリングをトリガーする必要があり、jQuery Mobile がレンダリングされる前にそれをトリガーすると、壊れる、など。

それが意味をなさない場合のために、より関連性のある例を次に示します。たとえば、フロント ページに特定のアカウントの最新のツイートを表示したいとします。ページをロードすると、ツイートが取得されます。フェッチが完了したときに適切にレンダリングできるように、どのように時間を計りますか?

4

1 に答える 1

1

イベントにバインドしてpageinit、AJAX 要求を行うことができます。これにより、AJAX 要求が返されるまでに jQuery Mobile 擬似ページが初期化されることが保証されます。動的に追加されたコードの状態がわかるので、それは素晴らしいことです。初期化されていません。

例えば:

$(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 に答える