2013-12-19 26 views
2

將html頁面內容加載到另一個網頁的最佳方式是什麼? 可以說我有一個頭版(的index.php),在那裏我可以PHP和JavaScript之間進行選擇和我沒有在意compatibiliy,移動用戶等加載/包含內容的最佳方式? (jQuery的負載()與PHP的include())

在過去,我用的包括()/ include_once在PHP()函數做這樣的事情來加載我的內容,我已經把在content.html,到DIV容器在我的index.php的內容:

<div id="content"> 
    <?php include("content.html"); ?> 
</div> 

,但我可以做使用javascript/jquery幾乎相同的東西:

$("#content").load("content.html"); 

但是,最好的辦法是什麼? 我知道你真的不能比較PHP與JavaScript。通常我只會使用JavaScript進行用戶界面的工作。特別是使用jquery的load()函數,它很容易將文件中的內容加載到div中並替換PHP的include()。但僅僅因爲它可以完成,並不意味着應該完成。

有什麼樣的最佳做法?對此使用javascript有什麼優點/缺點?

+5

這不是語言,它是關於服務器端包含(PHP)或客戶端(JavaScript)。 – David

+0

Jquery的方法會給你的服務器帶來額外的請求... – Cthulhu

+0

如果你正在準備你的內容服務器端然後包括使用,如果使用客戶端負載,但它不是一個好習慣使用負載.. –

回答

1

假設您包含的HTML文件不是動態的(不是在PHP中創建的,只是靜態標記),那麼PHP包含是首選方法。

通過使用PHP include(),當瀏覽器首次加載內容時,內容將在頁面上,而在瀏覽器讀取頁面數據後加載$ .load()調用,然後javascript開始渲染,然後加載jQuery,那麼$ .load()是異步觸發的。另外,$ .load()需要jQuery,其中PHP include()是一個內置的函數,它比加載jQuery和通過$ .load()啓動異步請求要快得多。

如果您需要在頁面第一次呈現後(即作爲用戶交互的結果)加載內容,則需要$ .load()。我會建議您閱讀有關同步(即包括(),$ .ajax({asynch:false}))和異步(即$ .load(),$ .ajax())資源之間的差異加載或網絡請求。

這裏有一個地方,你可以看看:http://www.w3schools.com/ajax/ajax_intro.asp