2012-11-24 31 views
5

我一直在單獨的.js文件中編寫javascript函數。在我上一個項目中,javascript文件的數量越來越多,因此頁面加載速度較慢,因爲請求數量更多。因此,爲了實驗目的,我用.php擴展名轉換了幾個.js文件,並用include語句添加了它們。這種方式的加載時間表現更好。在.php文件中編寫JavaScript有很多優點。我可以訪問php變量並輕鬆地將它們傳遞給javascript。使用.php擴展名創建JavaScript文件

我的疑問是,在.php文件中編寫JavaScript,然後包括它們有什麼缺點?

我的理解是,當一個頁面加載時,它調用JavaScript文件並行執行php部分。所以我們編寫onload函數。

回答

3

大多數瀏覽器可以使用2個或更多同時連接來加載資源。因此,將javascript保存在單獨的文件中可能會使瀏覽器充分利用所有連接。您應該儘可能在HTML中儘可能包含<script>標記,以便在任何JS甚至開始加載之前寫入頁面內容。

使用PHP的一個優勢是可以將JS文件gzip縮小尺寸。

如果JavaScript文件的大小很小,比如說說< 100 KB,那麼在一個PHP腳本中包含大量文件可能會更快。但是,如果JavaScript文件較大,比如500 KB,則將它們分開可能會更快。

實驗和調整將幫助您找到答案。這裏沒有普遍的道理。

+0

的關鍵這裏是試驗。並行下載與將文件作爲一個文件的好處取決於這些文件的大小。 – Brad

+0

同意你的觀點。沒有具體的解決辦法。 gzip是一個好方法。我不知道提供同時連接的瀏覽器。謝謝。 +1 –

7

如果你想編譯多個JavaScript文件合併成一個與PHP服務器端,你可以做這樣的事情:

<?php 
// script.js 
header('Content-Type: text/javascript'); // Tell browser to treat file as Javascript 

$files = array(
    'script-1.js', 
    'script-2.js', 
    'script-3.js' 
); 

foreach($files as $file){ 
    // Import each file 
    echo file_get_contents($file).PHP_EOL; 
} 

然後,在你的頁面,只是引用該文件,就好像它是一個JavaScript文件:加載JS文件

... 
<script src="script.php"></script> 
... 
+0

謝謝@亞當。這是組合文件並使用它們的好方法。 +1 –

1

問題從PHP是你增加你的,因爲你的頁面會慢慢呈現在瀏覽器響應的大小。另一方面,如果瀏覽器加載你的js文件,瀏覽器發送不同的js文件請求,所以如果你不希望你的初始頁面加載速度慢,不要把js放在php中。

如果你想加快你的js文件加載做以下事情

  1. 縮減大小你所有的JS使用的工具文件,如javascriptCompressorjsmini
  2. 放在其他服務器這些縮小的文件,其中有CDN支持,你可以在一些免費的cdn上免費託管你的文件,從cdn加載總是更快,瀏覽器可以一次下載多個文件

  3. 加載文件,如jQuery或其他庫從谷歌CDN網址,或各網站 使用過期標頭讓瀏覽器,讓您的JS文件的時間長,所以它不會加載上很要求

,如果你遵循這些技巧,您的網頁加載速度更快