2012-05-01 25 views
7

私のサイトにはトラッキングピクセルがいくつかありますが、サーバーがダウンしたり遅い場合にユーザーエクスペリエンスに影響を及ぼすことを防ぐため、ブラウザが指定したimgを読み込もうとする最大時間を指定する最も簡単な方法は何ですか?つまり、100ms試してから放棄しますか? (私は、サードパーティのサーバーにサーバーがハングアップするのではなく、特定の顧客を追跡するのではなく、サイトに影響を与えます)。<img src>(タイムアウトありですか?

答えて

2

文書の準備が整うと、読み込む必要があります。 またはlastline(html内)にあります。この方法では、ユーザーエクスペリエンスを損なうことはありません。 ドキュメントの準備はjQueryでも使用できます。

でも、window.loadを使用できます。

(必ずしもそうではありません) - すべてのスクリプトはページの最後にある必要があります。

あなたがKILL時間を強制する場合:

imgタグを作成します。

はSRCを設定し;

は、(= 1ダウンロードこの関数はフラグを設定します)IMGにloadイベントを取り付けます。

setTimeout機能あなたはimgを殺すつもりです。

どのようにですか?

X MSの後にダウンロードされた場合は、== 0が殺されます。

so:各ロードイベント(IMgから)はフラグ(downloaded = 1)を設定しています。

タイムアウト機能は何も気にしません! x MSの後に彼女はimgを殺すつもりだ - ダウンロードされた場合は== 0。

+0

ええ、ステータスバーにはまだデータがダウンロードされていると表示されているため、未完了のようです。私は本当にタイムアウトを定義する実際の方法を持っていたいと思います。 –

+0

@MichaelReston私の編集を参照してください。 –

+1

とにかく ''を削除するのではなく、条件を気にするのはなぜですか? – Electro

-1

IMGタグでサーバープロセスを呼び出すことができます。負荷のタイムアウトを心配しましょう。

+0

タグにはすでにサーバープロセスがあります。これは「イメージ」を提供します。それは時間を費やしているものであり、それはクライアントで取り消される必要があります。キャンセルがサーバーに引き渡されると、キャンセルにも時間がかかります。 –

+0

それをスレッドし、時計を見てください。 – ethrbunny

3

JavaScriptを使用して<img>を挿入し、100ms後にsetTimeout()を使用して削除することができます。 jQueryを使って

例:あなたがこれを行うにはJavaScriptを使用しなければならないでしょう

var tracker = $("<img>", { src: trackingUrl }).appendTo(document.body); 
setTimeout(function() { tracker.remove(); }, 100); 
0

は、ページ単位でこれを行うだろうHTML/HTTPにネイティブは何もありません。 Googleは "HTML IMGタイムアウト"の周り。

関連する問題