2011-11-09 17 views
4

私たちは、訪問者に関する統計情報を収集するために、当社のウェブサイト上のトラッキングピクセル数を使用しています。しかし、しばしば、私たちがコードに埋め込んでいるサードパーティ製のJavaScriptのいくつかは、彼らのサーバからの応答を待っています。多くの場合、サーバーが適切に応答していないため、エラーメッセージが表示されるだけでなく、WebサイトのHTML要素を適時にレンダリングする際に問題が発生し、パフォーマンス上の問題が発生します。遅いサードパーティ製のjavascriptリクエストの検出と終了

サードパーティ製のJavaScriptが希望の時間内に返されないときを検出する方法はありますか?私たちは何とか自分のサーバーへの呼び出しを終了し、次のコード行に進むことができますか? JQuery.delay()を使用することは、実際にこの問題の解決策ではないことに注意してください。

私たちが使用できるサーバから返されたエラーメッセージを処理してみてください。&キャッチ(エラー)ですが、外部サーバへのjavascript呼び出しの強制終了をどのように強制できるのか分かりません。

+1

9質問 - 0受け入れられた回答。以前の質問で回答を受け入れてください。 – epascarello

答えて

2

あなたは代わりにキャッシュを使用してスクリプトを読み込むことができます。

var scriptTag = document.createElement("script"); 
scriptTag.type = "text/cache"; 
scriptTag.src = "http://thirdparty.com/foo.js"; 
scriptTag.onreadystatechange = scriptTag.onload = function() { 
    if (scriptTag.readyState == "loaded" || scriptTag.readyState == "complete") 
    { 
     // it's done loading 
    } 
} 

このスクリプトは、画像のようにバックグラウンドでロードするようになります。それらがロードされると直接呼び出すことができます。注意しなければならないのは、複数のタイムアウトがある場合、使用可能なすべての発信接続を消費する可能性があるということです。サードパーティ製のJavascriptのみをシリアル化する場合、最大で1つの接続を使用する必要があります。

これはhead.jsによって使用される技術です。たぶんhead.jsを使用することもできますが、タイムアウトなどを行うための余分なロジックを追加することができます。

+0

あなたの返事をありがとう、私はそれを試してみると私は密接にhead.js見てみましょう – partizan

関連する問題