2012-04-27 5 views
0

隠しdiv(display:none)を再生した後、そのdivにある画像/フラッシュファイルをダウンロードしてもブラウザが気にしないように見える可視に変更されました。ブラウザで隠しdivsコンテンツを事前にダウンロードする方法

ほとんどのユーザーのマシンでは、隠しdivを表示すると、ブラウザが画像やswfファイルなどをダウンロードするのに待ち時間が数秒かかるようです... ==幸せなユーザー。

隠しdivのコンテンツをブラウザにダウンロードさせる方法はありますか?表示されていないときは非表示にしますか?

JSまたはjQueryでおそらく?

おかげ

+0

私を信じて、あなたはおそらくこのためにectを使用して幸せではないでしょう。 –

答えて

0

は、いくつかのオプションがあります:

  • DIVが表示されている状態から開始し、ページが読み込まれた後、またはブラウザがすでにイメージを取得した後にjQueryを使用して非表示のスタイルを追加します。これは誰もが気づいていないのですばやく起こりそうです。
  • 物事が読み込まれている間は最初にDIVをオフにし、DIV(高さ/幅)のサイズは目に見えるスペースを占めないように非常に小さく修正します。
  • DIVのコンテンツをロードしたいときに、jQueryを使用して、必要に応じてイメージを取得します。すなわち$('#yourDivId').html('[html goes here]');
  • display:noneの代わりにvisible:hiddenを使用してください(ただし、まだスペースを占有していますので、すべての状況で機能するとは限りません)。レイアウトの影響を受けないページの下部に画像のコピーを配置することができますが、他の場所を表示するときには引き続き取り出され、ブラウザにキャッシュされます。
+0

(divが表示される前に)どのようにして4番目のポイントがダウンロードするコンテンツをトリガーしますか? –

+0

visible:hiddenは要素がまだ領域を占めるが、画面には表示されないことを意味する。高さ/幅が固定されていない画像をお持ちの場合は、ブラウザがそれをダウンロードする必要があります。それで、要素を隠すのと同じ効果が得られますが、まだそれをダウンロードします。 http://stackoverflow.com/questions/4718342/lots-of-dom-hidden-vs-display-noneも参照してください。 – Shawn

2

は、画像を非表示にするdisplay:none;を使用しないでください。

コンテンツを非表示にするには、次の設定をお試しください。

height:0; 
width:0; 
overflow:hidden; 

また、絶対位置を指定してコンテンツを画面から外してみることもできます。あなたが試すことができます

position:absolute; 
left:-1000px; 
0

一つの方法である、代わりに大きな負の左の位置とし、最小寸法で絶対位置にそれらを隠してはかもしれここで1または0

関連する問題