我想迫使我的網頁顯示任何東西之前加載所有數據......如何在顯示任何內容之前強制頁面加載所有內容?
這是我的網站: http://vinarakar.si/sl/
我想在PHP中做到這一點,但我開放給其他建議:)
謝謝你幫我
我想迫使我的網頁顯示任何東西之前加載所有數據......如何在顯示任何內容之前強制頁面加載所有內容?
這是我的網站: http://vinarakar.si/sl/
我想在PHP中做到這一點,但我開放給其他建議:)
謝謝你幫我
簡短回答,不耽誤IT
首先,我會建議反對。我們生活在互聯網上一個非常快節奏的社區。如果您花費很長時間來顯示網站(或者用戶覺得沒有任何事情發生),他們可能會離開。這對你想要完成的事情會產生不利影響。
更好地問:如何加快我的網站頁面加載?
更好的問題是How do I speed up my website?
這裏有一些建議可以幫助你。遵循這些準則以提高性能。 http://developer.yahoo.com/yslow/help/
這個建議真的幫了我,只是幾個變化,我的網站運行得更快:) 現在我會盡量讓它更快:P – Wolfy 2010-09-04 06:59:02
太棒了!很高興聽到。有時候,我們都需要朝正確的方向推動。 ;) – 2010-09-04 14:49:15
你需要這樣做使用Javascript,而不是PHP。
PHP是一種服務器端語言,所以一旦輸出發送到瀏覽器後,它不能改變用戶體驗。
嘗試這樣的事情,使用身體的visibility: hidden
從一開始就隱藏它。然後onload()
將觸發一次頁面加載(我認爲),然後將其設置爲visibility: visible
<body style="visibility:hidden" onload="this.style.visibility = 'visible' ">
這裏的一個更大的問題是,爲什麼啊,爲什麼!這只是意味着用戶需要等待更長時間才能開始使用您的網站?它不是一個大網站,它沒有大量的Js庫,在用戶開始使用網站之前需要加載。
我從來沒有這樣做過整個頁面,但我認爲'可見性:隱藏'在這裏會更好,這樣,元素的所有位置和內部大小都可以在頁面加載時計算出來 - 它們只是沒有沒有顯示。 – prodigitalson 2010-09-03 08:07:42
@prodigitalson好點 - 回答修正 – 2010-09-03 08:08:23
這個解決方案的問題是,如果用戶禁用了JS,那麼他們將不會看到任何東西。將身體中的第一個元素設置爲無內容的DIV可能更好,該DIV帶有一個onload函數,用於將主體的可見性設置爲隱藏,然後在主體上進行onload以將所有內容設置爲可見。 DIV將在其他任何東西之前加載,如果用戶擁有JS將隱藏所有內容,那麼當頁面加載時,所有內容都會顯示。 – nhinkle 2010-09-03 08:52:00
實際上你需要CSS,你必須放一個隱藏內容的整個頁面覆蓋(也許它會顯示「加載」,以使用戶意識到該頁面正在加載),然後隱藏那個onload
,以便鞋子內容在下面。看看the solution here
請注意,以任何方式使用JavaScript可能不適用於每個訪問者完全相同。你應該使用像jQuery或MooTools這樣的跨瀏覽器的JS引擎。
這樣,您至少可以嘗試跨瀏覽器有效。其次,由於我已經說過,我不會建議你使用jakenoble給你的解決方案。如果用戶因任何原因禁用了JS,他將永遠無法看到您的頁面。
如果您希望禁用JS的用戶看到您的網站,您必須同時使用JS隱藏和顯示您的頁面。使用完整頁面覆蓋可能是一個好方法,但一定要檢查你的頁面仍然有效,而不需要激活JS。
例如如果用戶禁用JS,則可以將CSS代碼寫入標籤,以隱藏疊加層並顯示頁面。
的某些代碼示例
<body class="body">
<div class="overlay">
<!-- Your page content -->
</div>
</body>
<script type="text/javascript">
$(document).ready(function(){
$(".overlay").css("visibility", "hidden");
$(".body").css("visibility", "visible");
});
</script>
<noscript>
<style type="text/css">
.body { visibility: visible; }
.overlay { visibility: hidden; }
</style>
</noscript>
我能給你不會喜歡一個建議?
如果你真的想讓你的頁面顯示得更快,那就減少JavaScript的噱頭吧。您正在包含 JavaScript文件和大多數加載時間都會丟失,以供它們初始化。
更重要的是,對於沒有JavaScript的用戶而言,您的網頁完全被破壞。
實際上你可以通過使用Ajax來實現。
考慮如果你不得不加載index.php,只需寫身體標籤,並調用身體負載上的Ajax函數,並獲得身體標記內的Ajax響應。使用這種做法將花費兩倍的時間爲你的頁面加載。
您是否在使用任何CMS?例如。 WordPress的? – Steven 2010-09-03 08:01:51