2012-04-13 9 views
0

img srcが存在しないファイルを指している場合、キャッシュ内の404を防ぐことはできますか?jgeryを使用してimgタグを削除()しても、ブラウザは引き続き検索しますか?

ありがとうございます!

+0

醜い画像が見つからないアイコン、または画像が表示されるべきなんらかの種類の疑問符のアイコンが表示されると思います。 – nmagerko

+0

あなたの質問はあなたのタイトルと同じですか? – Jashwant

+0

nah、それは起こるべきではありません。そして、私はこれらのimgs表示を持っています:無負荷時。私はネットワークの待ち時間を考えています。 – hzane

答えて

1

なぜテストしないのですか?

ここでフィドルだ:http://jsfiddle.net/atFtS/とソース:

<img src="http://www.asdfghjkl.com/qwerty.png" style="display:none" />​ 

は、ネットワーク]タブに移動し、(私はChromeを使用しています)お使いのブラウザのインス​​ペクタを開き、そして何が起こるかを参照してください。

イメージがレンダリングされなくても、イメージをロードしようとしました。私は追加http://jsfiddle.net/atFtS/1/:それは、静止画像をロードして、おそらく404ヒットをキャッシュされた

$('img').remove();​ 

はここで別のフィドルです。

+0

これは行く方法です。 +1: – Jashwant

+0

ありがとう、私は404のjavascriptを使用して防止するための挑戦は面白いと思った。だから、それを試してみるのではなく、stackoverflowに投稿されました。 – hzane

0

おそらくありません。 Javascriptは、すべての要素が準備完了した後、ドキュメントのロード時に実行されます。

+0

それは完全に真実ではありません。それは何のためのdocument.onreadyです。 –

+1

はい、それはちょうどJavascriptですが、jQueryはそれが指示されたときに実行されます。 –

+0

JQueryはjavascriptです。あなたはJQueryがバニラのjavascriptを使って行うすべてを行うことができます。 –

2

DOMからイメージを削除するためにjavascriptを実行するまでに、イメージタグはすでに解析されており、イメージURLの読み込み要求は少なくともキューに入れられている可能性があります。

イメージタグが削除されたときにまだ完了していない場合、イメージの読み込みを中断するのにブラウザがスマートになるかどうかは、ブラウザ固有の動作になります。すでに完成しているかもしれません。

DOMが解析されるまで、javascriptはDOMを変更できないことに気づかなければなりません。つまり、画像タグのようなものは、javascriptで変更する前にすでに動いているということです。これは、ブラウザの設計の事実または制限にすぎません。

HTMLを制御し、その場所に別のイメージが必要な場合は、イメージタグをHTMLに入れない方がよいでしょう。コードが実行され、必要な画像が決定されると、適切な画像タグを作成してDOMに挿入できます。その後、ブラウザーは不要なイメージをロードするために時間を費やすことはありません。

余分な画像を読み込み、正しい画像を設定する前に間違った画像が表示されないようにしたい場合は、画像タグをdisplay: noneまたはvisibility: hiddenとマークします正しいimg URLが適切な場所にあることを確認してから、それを表示させることができます。 CSSはタグが解析される前に処理されるので、タグが作成されるときに適用されます。

+0

yea - 希望的な考え。詳細説明については – hzane

+0

+1 – Jashwant

0
  1. 私はあなたが求めているのかわからないですが、あなたはDOMでimgをロードすると、ブラウザでもそのdisplay:noneた場合、それを取得しようとしています。 (すべてのブラウザについてはよく分からますが、スライドショーで画像をキャッシュするその方法ではありません)

  2. また、あなたはDOMにそれをロードしたら、あなたはそれを削除するに関係なく、それはあなたのキャッシュに存在します。

関連する問題