2011-01-30 11 views
1

私はこれを行う正しい方法があるかどうか疑問に思っていました。AJAXを使ってスクリプトを動的に読み込んでいるときに、サーバのスクリプトにURLを返信してから、<script src = response.url ></script>またはスクリプト自体を返すだけです。動的ロード:スクリプトにURLを返すか、スクリプト自体を返すか?

私は2回ではなく1回のラウンドトリップを行うと考えていたので、コンテンツスクリプト自体を返すアプローチを行った。また、私はいくつかのCSSや他の資産を戻したいからです。しかし、facebookがURLをCDNリソースに返すことに気がついたので、私のアプローチにいくつかの結果があるかどうかは分かりません。

ありがとうございます! Matt

答えて

2

あなたがFacebookになっているとき、あなたはかなり独特な交通パターンを見ている。 20KBのスクリプトと動的サーバーから30文字を送信することは、それらのサーバーに多くの負荷をもたらします。さらに、大規模なコンテンツをすばやく配信することができない可能性があります。

対照的に、CDNサーバーはスピードと規模に合わせて設計された栄光の静的なプロキシです。だからfacebookの観点から言えば、追加のラウンドトリップは理にかなっています。それは全体的なページ速度を改善し、サーバーのトラフィックパターンを確実に改善するからです。

今戻ってください。この方法は、サイトの残りの部分と同じサーバーからスクリプトをロードする場合には意味がありません。 CDNにもアクセスできる場合は、ユーザーに関するさまざまな前提条件(待ち時間、場所)、サイトに関する事実(スクリプトのサイズ、スクリプトの読み込みタイミング)を使用して数学を行う必要があります。あなたのメインサーバにこれらのスクリプトを提供させ、余分なラウンドトリップとそれらのスクリプトを配布するCDNサーバとを比較します。

ラウンドトリップに関するもう1つの考え方:私がFacebookの場合、実際にページに実際にスクリプトをロードする必要がある前に、これらのCDN URLを早期に配布している可能性があります。理想的には、もう少し余計なデータを入れておきたいという別の要求にピギーバックしたいと思っています。それは余分な往復の問題をほとんど解決するでしょう。

+0

素晴らしい帳簿。あなたは、「この方法は、あなたが*行っていなければ理にかなっていません...」という意味ですか?または私は何かを逃している? – Matt

+1

いいえ、2段階のアプローチの主な利点は、汎用の動的サーバーより静的なコンテンツを提供する方が優れているサーバーからスクリプトを取得することです。同じサーバーセットですべてを実行している場合、このアプローチにはほとんど利点がありません。 – Metal

+0

ああ私はつかまった。あなたは私のアプローチではなく、私にとってFacebookのアプローチにほとんど利益をもたらさなかった。ありがとう! – Matt

0

Hm、AJAXにはいくつかのクロスドメインセキュリティの問題があります。つまり、外部のCDNからスクリプトのコンテンツを動的に読み込もうとしている場合は、そのような

+0

ご回答ありがとうございます。申し訳ありませんが、私はそれをもっと明確にすべきでした:それはFacebookのサブドメインですが、それは本当に質問の関連部分ではありません。編集:彼らはまた、AJAXの代わりに読み込むiframeを使用するので、私はかなり確信している問題を回避します。 – Matt

関連する問題