2011-10-28 9 views
2

重いasp.netページがあります。それがレンダリングされている間、最初にいくつかの画像が来て、次第に残りの画像が読み込まれます。我々はその行動を取り除きたい。ページは、すべてのコンテンツが準備ができてから表示され、一緒に表示されるはずです。どのように達成するのですか?ページが完全に準備ができるまで待つように求める方法はありますか?重いページのすべての要素(画像のような)がブラウザに一緒にロードされます

答えて

4

要素をページに埋め込むことができ、javascriptイベントonLoadが発生したときに非表示にすることができます。

<div id='loading' style='z-index:100; width:100%; height:100%; background:#FF0000'>Loading, please wait!</div> 

<script type='text/javascript'> 

window.onload = function() 
{ 
    document.getElementById('loading').style.display = 'none'; 
} 

</script> 
+1

UpvoteこれはLijoの質問に直接答える点で便利な答えです。しかし、私はまだそれが通常悪い習慣だと思っています。 –

5

これもできますが、お勧めします。 JavaScriptを使用して(@TJHeuvelレスポンスを参照)、DOMを準備するまで待つことができます(通常は隠れたコンテナを目に見えるコンテナに変更します)。

  1. 現在の方法:ページが読み込まれると、ユーザーは理論的に情報を取得し、ページのレイアウト方法を理解することができます。

  2. 提案された方法:ページがあなたの言うとおりに重い場合、ユーザーはURLに行き、5秒(またはそれ以上)の「読み込み中の」アニメーションGIFを見ますか?私は自分自身のためだけに話すことができますが、完全にはレンダリングされていない場合でも、むしろ何も表示されないコンテンツを見ることになります。

+1

Upvoteその真実のため! – TJHeuvel

2

はCSSのコンセプト画像スプライトを参照してください。このメソッドを使用してこの問題を解決することができます。ページ上のすべてのイメージを結合して1つのイメージのみを作成し、イメージスプライトを使用します。多くのWebサイトではこれを使用して、ページのコンテンツが一度に読み込まれます。

はRohalイメージスプライトは、CSSで最高です言うように、このhttp://www.w3schools.com/css/css_image_sprites.asp

+0

便利です。すべての画像に対して1つのスプライトだけでは効果的ではありませんが、確かに関連する画像(すべてのnav項目、ボタン、ウィジェットなど)をスプライトに入れて、HTTP要求の数を減らしてより大きな塊で画像を埋め込むことができます一度に。 –

1

について画像の問題を参照してくださいしかし、あなたはそれを使用することができないならば、適切にも、これをチェックしてください小さいサイズのリサイズされた画像を使用してみてくださいHanselman blogここで彼は本当に素晴らしいイメージレンダリングユーティリティについて教えてくれます....これが助けてくれるといいですか

関連する問題