簡體   English   中英

如何確保在頁面加載之前顯示背景圖像?

[英]How can I make sure a background image displays before the page loads?

有沒有辦法確保在頁面上顯示任何其他內容之前始終先顯示(大300K)背景圖片?

在服務器上,我們可以訪問PHP。

所有html內容都將在開始獲取圖像之前被提供並解析,因此在開始之前會遇到問題。

您可以通過以編程方式隱藏內容,然后在加載圖像時觸發內容的“顯示”來規避此問題。

即:

<html>
  <body>
    <image here/>
    <div id="content" style="display:none;" >

    </div>
    <script type="psudocode"> 
     when(image.loaded){ 
          $("#content").show();
     }
    </script>
  </body>
</html>

如果您將所有內容都放在一個容器中,則使用此技術可能會非常接近。 如果javascript被禁用/不可用,它也會正常失敗。

因此,如果您由於經理或其他原因而必須這樣做,這就是我要使用的方法。

<html><head><!-- head section --></head>
<body>
    <div id="container">
       <script type="text/javascript">
       <!--
         document.getElementById('container').style.display = 'none';
       -->
       </script>
       Content goes here
    </div>
    <script type="text/javascript">
    <!--
      document.getElementById('container').style.display = 'block';
    -->
    </script>
</body></html>

但是,如果您的內容很少,則可能效果不佳。 您當然可以在第二個javascript塊上添加一個計時器,以將其延遲一秒鍾左右:P

<html><head>
<script type="text/javascript">
//Hide on load
onload=function(){
    document.body.style.display="none";
    var imag = new Image();

    imag.onload=function(){
        var main = document.body;
        main.style.backgroundImage="url("+this.src+")";
        main.style.display="";

    };
    imag.src="http://dayton.hq.nasa.gov/IMAGES/MEDIUM/GPN-2000-001935.jpg";
}
</script>
</head>
<body>
    YOU CAN' T SEE MEE!!
</body>
</html>

如果您不想依靠JavaScript,則可能的方法是制作僅包含背景圖像的虛擬頁面。 幾秒鍾后,它將重定向到實際頁面,並且后台將很快加載,因為它已經在緩存中。

我認為這不是一個超級有吸引力的解決方案,如果時機固定的話。
請注意,對於背景圖片,300KB很大。 我看到的情況更糟,有人使用的是1MB的圖像:即使連接速度相對較快,我也可以在頁面元素之后看到背景加載方式。

我認為您唯一能夠做到這一點的方法就是使用javascript-向用戶HTML發送僅包含背景圖片和一些javascript的javascript,這些javascript需要等待一段時間才能顯示其余內容,或者使用AJAX來檢索其余內容(基本上是同一件事)。

您可以將頁面內的圖像作為base64圖像加載,然后該圖像將隨頁面一起加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM