2010-09-03 73 views

回答

0

簡短回答,不耽誤IT

首先,我會建議反對。我們生活在互聯網上一個非常快節奏的社區。如果您花費很長時間來顯示網站(或者用戶覺得沒有任何事情發生),他們可能會離開。這對你想要完成的事情會產生不利影響。

更好地問:如何加快我的網站頁面加載?

更好的問題是How do I speed up my website?這裏有一些建議可以幫助你。遵循這些準則以提高性能。 http://developer.yahoo.com/yslow/help/

+0

這個建議真的幫了我,只是幾個變化,我的網站運行得更快:) 現在我會盡量讓它更快:P – Wolfy 2010-09-04 06:59:02

+0

太棒了!很高興聽到。有時候,我們都需要朝正確的方向推動。 ;) – 2010-09-04 14:49:15

2

你需要這樣做使用Javascript,而不是PHP。

PHP是一種服務器端語言,所以一旦輸出發送到瀏覽器後,它不能改變用戶體驗。

嘗試這樣的事情,使用身體的visibility: hidden從一開始就隱藏它。然後onload()將觸發一次頁面加載(我認爲),然後將其設置爲visibility: visible

<body style="visibility:hidden" onload="this.style.visibility = 'visible' "> 

這裏的一個更大的問題是,爲什麼啊,爲什麼!這只是意味着用戶需要等待更長時間才能開始使用您的網站?它不是一個大網站,它沒有大量的Js庫,在用戶開始使用網站之前需要加載。

+2

我從來沒有這樣做過整個頁面,但我認爲'可見性:隱藏'在這裏會更好,這樣,元素的所有位置和內部大小都可以在頁面加載時計算出來 - 它們只是沒有沒有顯示。 – prodigitalson 2010-09-03 08:07:42

+0

@prodigitalson好點 - 回答修正 – 2010-09-03 08:08:23

+0

這個解決方案的問題是,如果用戶禁用了JS,那麼他們將不會看到任何東西。將身體中的第一個元素設置爲無內容的DIV可能更好,該DIV帶有一個onload函數,用於將主體的可見性設置爲隱藏,然後在主體上進行onload以將所有內容設置爲可見。 DIV將在其他任何東西之前加載,如果用戶擁有JS將隱藏所有內容,那麼當頁面加載時,所有內容都會顯示。 – nhinkle 2010-09-03 08:52:00

0

實際上你需要CSS,你必須放一個隱藏內容的整個頁面覆蓋(也許它會顯示「加載」,以使用戶意識到該頁面正在加載),然後隱藏那個onload,以便鞋子內容在下面。看看the solution here

1

請注意,以任何方式使用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> 
3

我能給你不會喜歡一個建議?

如果你真的想讓你的頁面顯示得更快,那就減少JavaScript的噱頭吧。您正在包含 JavaScript文件和大多數加載時間都會丟失,以供它們初始化。

更重要的是,對於沒有JavaScript的用戶而言,您的網頁完全被破壞。

+0

很好。 Politer比大多數人都會認爲! – 2010-09-03 14:09:57

+0

這裏最大的問題是圖片(加載1.02秒)和文檔(加載1.20秒)...腳本只需要670ms ... – Wolfy 2010-09-04 06:41:19

+0

@Wolfy我不是指加載時間,而是執行時間初始化。 – RoToRa 2010-09-05 09:11:02

0

實際上你可以通過使用Ajax來實現。

考慮如果你不得不加載index.php,只需寫身體標籤,並調用身體負載上的Ajax函數,並獲得身體標記內的Ajax響應。使用這種做法將花費兩倍的時間爲你的頁面加載。

相關問題