2012-04-27 14 views
0

50 KBのサイズのページをロードしていて、その中にWebサービスコールがあります。私がここで直面している問題は、初期ロード中にかなりの時間がかかり、ページがレンダリングされる前に少しハングしていることです。jQueryロード機能がハングする問題

これを解決するには?さもなければ、より良い性能を発揮できるロード機能の代替品がありますか?

+0

loadと言うとき、ページ上の呼び出し中にjQuery.load関数を使用して、このWebサービス呼び出しをAJAX経由でロードしていますか?または、ページの最初のレンダリング中にWebサービスを呼び出すと言っていますか? –

+0

第2のもの。 –

答えて

3

私が正しく理解している場合、あなたのページの読み込みは、効果的にあなたのボトルの首であるこのWebサービスに依存しています。

基本的に2つのオプションがあります。

オプション1 - キャッシュ

あなたが持っていない呼び出しているWebサービスは、すべての負荷の日付に100%アップする場合は、あなたが潜在的に応答をキャッシュできます。現時点でどうしているのか分かりませんが、サードパーティのサービスであれば、毎分呼び出してディスクへのレスポンスを保存する短いプロキシプログラムを作成して、ページがそれを受け取るようにすることができますから。

また、独自のプロキシサービスを作成したくない場合は、内部ネットワーク接続をキャッシュできるSquidのようなものを使用することができます。そのため、アプリケーションがSquid経由で何かを照会すると、 t期間。

オプション2 - AJAX

それがキャッシュできない何か(Webページ上のメンバーシップの詳細を行うには、すなわち何か)だ場合、あなたはjQueryを使って非同期にページをロードする時に見ることができます。

Webサービスの事前レンダリングの詳細をロードするのではなく、$ .ajax();を使用できます。関数を読み込んでから、JavaScriptが完全に読み込まれた後にJavaScriptでページを更新します。

サードパーティのドメインが異なる場合は、サイトのAJAX URLを呼び出してWebサービスを呼び出すことができるように、自分のシステムにプロキシを構築する必要があります。彼ら二人のうち


、私は真剣にあなたができる場合はオプション1のために行く検討します。応答をキャッシュすると、アプリケーションの速度が向上し、トラフィックが多いアプリケーションの場合は、Webサービスにかかる負荷を軽減できます。

オプション2はまだ良好です。これらの問題に対処するためにAmazonなどの多くの大手ブランドで使用されています。

関連する問題