2014-05-07 78 views
1

這是一個完全基於我自己的好奇心的問題。我沒有需要回答的問題,我也不知道如何做到這一點。從PHP的另一頁獲取內容

我不知道是否會使用PHP來獲取其它頁面的內容,並在地方,你正在瀏覽的網頁上的當前內容的顯示,纔有可能。在某種程度上,要儘量避免刷新頁面。

例如:

說我有我的「主頁」,採用了滑蓋和一些主要的信息,但沒有更多。

然後,我點擊「關於」,而不是移動到另一個頁面和刷新,它只是抓住「關於」的主要包含div內的元素,並替換「主頁」上的現有內容,保持一切而且即使使用網址,您似乎也已移動網頁,但實際上並未移動。

請問這是可能的,如果是的話會有人能夠給一個小的解釋/某處一個鏈接,我將能夠學習Web開發的這一邊(我的下一個目標去學習)。更重要的是,這是一件好事嗎?或者這樣做有一些限制/問題嗎?

+2

您將需要一個PHP(或任何其他後端語言)的JavaScript調用,並與PHP腳本的結果替換某一個元素。阿賈克斯將是一個很好的搜索術語:) – jvv

+0

你可能會在這裏找到一個領導:http://stackoverflow.com/questions/16601139/loading-content-via-ajax – OpenStark

+0

這是AJAX的基本原理。 – WillardSolutions

回答

2

是的,但沒有使用PHP。

讓我們假設你有<div id="content">包裝您的網頁內容。

您可以使用AJAX加載about.php,然後解析響應以找到<div id="content">,獲取其內容並將其放入當前文檔的內容區域。

但請記住,這種方法存在問題。例如,如果在新頁面加載之前單擊多次,會發生什麼情況?如果用戶重新加載頁面,URL會發生什麼變化?

+0

感謝您的快速響應!我有一種感覺,這是可能的。所以,除非有很多反制措施來確保用戶不能「發現」它,否則這不是最好的做法嗎? – Mallander

+0

只是除了改變URL而不重新打開頁面的問題:http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page – MSadura

+0

謝謝,@MarkS我會給它一個閱讀! – Mallander

1

很多網站做的這些天:中,微博的Youtube等天色大男孩,因爲它是很難得到正確。

技術:

  • AJAX來得到下一個頁面
  • history.pushState()的內容更改URL

後端語言(如PHP)沒有關係。

我不知道在整體上的教程,但發現AJAX或pushState的解釋很簡單。

雖然這不是一個好習慣。存在頁面加載的原因。瀏覽器喜歡明確的頁面加載。

+0

你提到不刷新你的頁面不是一個好的做法。這不是真的。我一直在開發SPA。它是管理軟件的理想選擇。你唯一需要注意的是你沒有內存泄漏,你必須在一個體面的Javascript級別。 – GuyT

+0

對於只在數據中加載的應用程序,它可能非常有用。對於有很多上下文變化的普通網站來說,這很愚蠢。做對很困難。即使YT和Twitter的實施也受到打擊。沒有加載指示等 – Rudie

+0

我在說的應用程序是一個普通的網站。唯一的區別是人們只用它來進行管理,因此是一種煩人的刷新(和減慢的方式)。恕我直言,我更喜歡SPA而不是普通的網站。唯一困難的部分是搜索引擎優化,但Google試圖通過在網址中使用標籤來減少這個問題。 「大男孩」面臨的問題是他們不使用企業JS工具包(如Dojo)。 FB有一個很好的SPA! – GuyT

1

PHP是服務器端,所以它已經被加載到瀏覽器後,可以做到沒有任何頁面的操作。您必須使用JavaScript(AJAX)以用戶操作加載頁面的部分內容。

看看jQuery

+0

感謝您的回覆,我已經很熟悉jQuery,很快就會深入研究AJAX! – Mallander