1

ページネーションを追加しましたが、20 の場所が表示されてから 2 秒待機し、さらに 20 の場所が表示され、再び数秒待機します。Google が nextPage 呼び出しの間に遅延を追加することを読みました。その遅延を取り除き、一度に 60 か所を表示する方法があれば、私はうろたえます

this.service.search(request, function(results, status, pagination) {
            self.addPlaces(results, status, pagination);

            if (pagination.hasNextPage) {
                // sleep:0; this doesn't effect anything
                pagination.nextPage();
            }                           
});
4

3 に答える 3

2

この遅延を取り除く方法はありませんが、進行状況バーをユーザーに表示するか、ユーザーに表示する前にプリフェッチすることで、ターンアラウンドが行われます。あなたは私の答えを見ることができます.AsyncTaskを使用してバックグラウンドでリクエストメソッドを呼び出し、60の結果をすべて取得するまでprogressBarを表示しています.

于 2012-10-10T17:19:15.550 に答える
1

追加のページリクエスト間の2秒の遅延を取り除く方法はありません。これは、ユーザーがさらに結果を要求しない限り、開発者が一度に20件の結果のみを表示するように制限するデータプロバイダーの制限のために導入されました。

Google Maps Javascript API v3 Places Libraryのドキュメントに記載されているとおり:

「結果の次のページを表示する前に、結果の各ページを表示する必要があります。」

于 2012-09-17T07:22:26.583 に答える
0

呼び出しを減らして 20 件の結果を保持するだけでなく、クエリに遅延を追加することを検討することも有益です。私が取り組んでいるプロジェクトでは、500 ミリ秒の遅延を追加することで、リクエストが 20% 減少しました。

于 2012-10-02T14:27:25.517 に答える