2013-10-01 106 views
1

我有一個簡單的網站頭,左側菜單和主要內容。
我已經有一個靜態頁面(index.php)然後用jquery通過點擊菜單項來改變主要內容使其:php包括vs jquery負載

$('#divR').load('chapters/abc.php'); 

我的某處告知,我應該改變這種安排(不解釋 - 爲什麼)使用單獨的每個主要內容的頁面,然後使用php include在每個頁面上包括頁眉和左側菜單。

有人可以幫助解決這個困境嗎?

+1

這有兩個原因可能是一個改進:它會減少頁面加載時間,它將允許直接鏈接 – jantimon

+1

如果客戶端禁用了JavaScript,該怎麼辦? – Mark

+0

@jantimon,謝謝,但是怎麼可能呢?使用'load'整個頁面'index.php'已經被加載。每次都不需要加載整個頁面,就像使用'php include'一樣? – bonaca

回答

3

這兩個載入與AJAX或包括在PHP頁面將工作。但是,爲了顯示新的包含頁面,您需要整頁刷新。如果您使用jquery請求頁面,它將加載異步,而不刷新頁面。

請記住,您必須選擇最適合的選項來增強用戶體驗。我從來沒有使用ajax來加載整個頁面,因爲有傳言說谷歌沒有索引這些異步鏈接。不過有人說谷歌機器人是一種功能齊全的瀏覽器,不會跳過Ajax調用。我不知道,所以我通過整頁刷新保存並加載重要的「主要」內容,訪問其他網址。這也將使瀏覽器返回和下一個(歷史)按鈕的工作。它不會與ajax調用,因爲它們是異步的。

例如,我使用Ajax來加載我的圖片庫的新縮略圖,或新的項目(重新)填充表,或顯示usermessages,或更新一些變量,...

+0

謝謝,卡斯珀,也許這就夠了 – bonaca

1

我用<?php include "file.html"; ?> VERY通常現在,因爲它只比jQuery .load有一些優勢。

我在網站上有很多其他的腳本,如果我使用.load,與這個內容交互的jQuery不起作用,因爲它之後加載我認爲。即使是在<head>和你不使用$(document).ready(function() { CODE });,它應該首先被加載中...

但是如果你使用<?php include "file.html"; ?>,內容將您的jQuery加載之前加載,因此JavaScript可以與互動在此文件中加載的內容。

我不知道如何解釋,但至少它不適合我,因爲它應該,也許是因爲php是一種服務器端語言。