2012-10-18 41 views
0

我正在開發一個網站,我希望左側菜單保持修復狀態,同時加載點擊選項的內容。在沒有AJAX的情況下加載頁面的一部分

其實,我所做的是每個菜單鏈接使用AJAX它會返回請求的內容。一切工作正常,但我想避免它,因爲統計很難遵循(在其他一些事情,如谷歌的靴子)。

如何在不使用javascript的情況下執行相同的影響/類似操作(http://www.foundcrelamps.com/)?

+0

像[this](http://www.rocknrun.in/#/index)? – bhb

+0

如何嚴重緩存頁面,並根據hashtag做ajax?等一下,索引問題就會發生。我認爲這是非常有理由的人不要標籤 – Prasanth

回答

1

我會做的是有點不同。我會製作指向內容的菜單有效鏈接上的鏈接。例如Contacte指向http://www.foundcrelamps.com/contacte,這樣如果您將該鏈接粘貼到瀏覽器中,它將直接加載頁面。

然後保留ajax,以便用戶在每次點擊時不會重新加載整個頁面。

您可以使用History.js來保留瀏覽器歷史記錄並修改URL,以便返回/下一個按鈕可以工作,即使使用ajax。

編輯,如果使用傳統的a元素與標準href它可能是這樣的:

$('a').click(function(){ 
    $('YOUR CONTAINER').load($(this).attr('href')); 
    return false; // so that it does not load the whole page 
}); 

然後在服務器上,你應該做這樣的事情:

/* AJAX check */ 
$isAjax = false; 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest') { 
    $isAjax = true; 
} 

if (!$isAjax) { 
    outputHeader(); 
} 

outputMainContent(); 

if (!$isAjax) { 
    outputFooter(); 
} 

這樣,當你做阿賈克斯,你只會加載內部內容。如果不是,則會加載整個頁面。

還有一種替代方法 - 您可能會使用jQuery加載整個頁面,但只能使用html的內部部分替換原始內容。

+0

如果我這樣做,然後點擊菜單將加載所有的頁面,我不想。 – nachovall

+0

以便Google正確地抓取頁面。如果有人在鏈接上覆制/粘貼,下一個用戶將能夠訪問該頁面。 – ddinchev

相關問題