2010-01-28 131 views
3

我已經在不同的php文件中劃分了頁面的各個組件。在導航php文件中,我有我想在javascript中使用的對象。 我應該在哪裏放置javascript <script ...>,以便它可以正常加載?現在我把它放在一個完全獨立的文件header.php中?但我不認爲JavaScript是從nav.php中挑選對象 我希望我是有道理的;)在哪裏包含腳本文件

回答

1

標準的建議是,你應該把你的關閉BODY標籤之前的所有SCRIPT鏈接放在文檔底部。這簡化網絡連接:

http://developer.yahoo.com/performance/rules.html

+0

這個 –

+0

沒有標準,也許沒有標準,但肯定有一個通俗智能的把js放在頁面底部,*儘可能* – Strae

1

無論你在哪裏放置PHP渲染過程,它只在輸出HTML和javascript是結合在一起的,HTML元素在你嘗試在javascript中訪問它們之前就已經存在了。

因爲這個原因,大多數JavaScript工具包都有一個函數,用於在頁面元素加載後執行javascript,比如jquery的document.ready函數。

+0

正是我的想法。我使用$(document).ready。 – amit

0

我的理解是最好的速度來自於把腳本在頁面的結束?在底部 造成腳本的問題

http://developer.yahoo.com/performance/rules.html

認沽腳本是他們阻止並行下載。 HTTP/1.1規範建議瀏覽器每個主機名並行下載至少兩個組件。如果您從多個主機名提供圖像,則可以同時發生兩個以上的下載。然而,當腳本正在下載時,瀏覽器將不會啓動任何其他下載,即使是在不同的主機名上。

在某些情況下,將腳本移動到底部並不容易。例如,如果腳本使用document.write插入頁面內容的一部分,則不能在頁面中移動較小的內容。也可能存在範圍問題。在很多情況下,有辦法解決這些情況。

另一個經常出現的建議是使用延遲腳本。 DEFER屬性指示該腳本不包含document.write,並且是瀏覽器可以繼續呈現的線索。不幸的是,Firefox不支持DEFER屬性。在Internet Explorer中,該腳本可能會延遲,但不如預期的那麼多。如果腳本可以被延期,它也可以被移動到頁面的底部。這會讓你的網頁加載速度更快。

0

通過重新定位標籤(或使用更深奧的方法來避免阻塞),您獲得的性能優勢與獲得它們在瀏覽器中正確緩存的好處相比非常小。

C.