2013-08-30 52 views
1

我想知道是否最好使用PHP或JS加載子頁面。到目前爲止,我一直在使用JS(jQuery,嚴格來說)爲了提供一些花哨的加載動畫,但是這種技術有一個嚴重的缺點 - 它不能改變URL地址,所以用戶沒有使用瀏覽器後退按鈕,也不能共享確切的子頁面的URL。此外,我不確定搜索引擎殭屍程序是否會識別基於JS的子頁面。或者,也許我錯了,這與JS的所有可能?加載子頁面的最佳方式是什麼? PHP還是JS?

如果不是,那麼什麼是「正確的方式」來組織子頁面的PHP?我是否有義務使用框架甚至是小型網站?到目前爲止,我一直只使用PHP的include()方法來達到這個目的。

+2

爲什麼人們會在任何情況下都使用* both *,如果其中一個明顯優於任何情況?這就像問塑料是否比鋼材好。 –

回答

1

是JavaScript可以更新瀏覽器的URL,但它只能在兼容HTML5的瀏覽器中使用。

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history

replaceState的函數改變的URL在瀏覽器(沒有後退按鈕); pushState函數會將新URL推送到瀏覽器,以便使用後退按鈕。

例子:

history.pushState({}, 'Title', 'foo.html'); 

這可能與您的問題幫助你。

+0

不錯,'pushState'改變了URL,但是後退按鈕仍然沒用 - 它不加載前一頁,只改變URL返回 –

+0

@OverdrivenFall你可以閱讀https://developer.mozilla.org/en -US/docs/Web/Guide/DOM/Manipulating_the_browser_history#小心謹慎地舉例。 – stackunderflow

1

好方法(有沒有最好的方法):使用服務器端語言(如PHP)的模板。把Javascript/jQuery放在上面 - 這樣你就可以擁有兩個世界中最好的,用於javascript的用戶的幻想動畫和一個仍在工作的頁面作爲後備。還有jQuery歷史插件,可以在ajax加載後啓用瀏覽器中的書籤/歷史記錄。

您不需要小型站點的框架。但是,如果您想根據用戶輸入來加載內容,則需要驗證請求變量的方法,而框架可能有助於實現這一點。

至於JavaScript的方法搜索引擎優化,搜索引擎通常不執行的JavaScript。然而,他們會propably索引你通過javascript拉入的文件(我猜你將內容存儲在文本文件或HTML文件將被索引)。

0

使用JS加載子頁面對動態內容有意義。 對於靜態頁面,我會推薦使用PHP。

你真的不需要使用框架,但一定不要包括使用不受控制的GET/POST變量(出於安全原因)的文件。

0

我使用的方法是讓子的形式寫在PHP和加載通過Ajax調用使用jQuery做。

在現實中,AJAX調用的PHP響應,並通過與窗體名稱的值。該表格被檢索到[使用include(...)],並使用輸出緩衝捕獲結果HTML。

我所用的文件夾的佈局是:

lib 
| 
+-subforms 
| | 
| +-admin 
| | +-aform1.php 
| | +-aform2.php 
| | + : 
| | + aformn.php 
| | 
| +-client 
| | +-cform1.php 
| | +-cform2.php 
| | + : 
| | + cformn.php 
| 
+-supportFunctions.php 

其中lib指包括路徑爲應用程序

的AJAX調用傳遞在下拉框中選擇的值,該值相關於形式名稱來檢索。

相關問題