2012-07-10 51 views
2

我想弄清楚如何加載內容,而不像刷新導航欄像Facebook一樣。PHP的 - 如何加載內容,而無需刷新導航欄

如果你尋找到一個Facebook的個人資料(沒有時間表),存在一種具有「牆」,「信息」,「照片」,「朋友」等左列導航條..

例如,當您點擊「牆」時,網址將變爲www.facebook.com/yourid?sk=wall,中間列會刷新並加載內容。但是,這種情況發生時無需刷新左側導航欄(也是頂部菜單欄)。

這是如何工作的?

我正在一個php網站上有這樣的網址,www.example.com/profile.php?id=1234,這是帶有導航欄的主頁面,當用戶創建一個頁面時,url變成www.example.com/profile.php?id=1234&page=1。如何在不刷新導航欄部分的情況下加載&page=1內容?

======================================

我把(沒有javascript)的標題。我認爲Facebook沒有JavaScript,但我錯了。

+0

爲什麼你肯定facebook不使用js? – Daedalus 2012-07-10 06:22:21

+0

@Daedalus我在瀏覽器上試用了javascript,導航欄仍然沒有刷新。也許我錯了.. – Peter 2012-07-10 06:28:12

+0

導航欄_didn't_刷新js關閉?我坦率地失去了這意味着js沒有被使用。 – Daedalus 2012-07-10 06:29:16

回答

6

首先,我相當肯定Facebook使用JavaScript,因爲它是客戶端,這就是你如何做你想做的。通過在瀏覽器中禁用JavaScript來測試它,然後再次嘗試。

PHP是服務器端,因此如果你想刷新一頁的頁面,整​​個頁面必須被髮送回服務器,因爲這是決定刷新哪個部分的地方。

你可以做的是使用iframe。帶有菜單的iframe,帶有內容的iframe,則只能刷新iframe的內容。儘管如此,由於種種原因,我並不是很喜歡畫框。使用Jscript腳本會更好:)

UPDATE

由於幾年,單頁的應用程序(即在瀏覽器中運行整個web應用,而無需做服務器上的刷新)都增加了很受歡迎。

基本上,您使用前端JavaScript框架像Angular或React來編寫您的應用程序。結果將是一個非重載單頁網站。

1

我認爲你可以使用iframe的做到這一點 - 你的主要的個人資料頁面將包含一個iframe - 主要的URL將被www.example.com/profile.php?id=1234當用戶點擊您的鏈接,只有IFRAME將網址加載www.example.com/profile.php?id=1234&page=1

的導航鏈接將保持不變。

2

由於它已經被評論,這是用JavaScript來完成的。 PHP是一種服務器端語言,所以你的客戶端處理這樣的效果。 Facebook使用JavaScript,並且大量使用JavaScript來完成他們網站上的各種效果。

0
var iDiv = document.createElement('div'); 
iDiv.id = 'newDiv';//give u'r div an id 
document.getElementsByTagName('body')[0].appendChild(iDiv); //append the div to your html body 
$("#newDiv").insertAfter($("#nameOfDiv")); 
       //moving it after your desired div(which is nameOfDiv here) 
$('#newDiv').load('somePage.php'); //load desired page in newDiv 
//or 
$('#newDiv').html('some text here') 

你想看看你的網址是www.example.com/profile.php?id=1234&page=1。請看看 http://tutorialzine.com/2009/09/simple-ajax-website-jquery/這非常有幫助。

相關問題