這可能會產生問題,因爲您最終會將頁面的小碎片放入索引。
如果你可以避開它,用簡單的舊的DHTML「僞造」ajax會容易得多。
<div id="content-display"></div>
<div id="content-1">Some content</div>
<div id="content-2">Some other content</div>
<style>
#content-1 { display:none; }
#content-2 { display:none; }
</style>
<script>
displayContent = function(contentId){
$('#content-display').update($(contentId).innerHTML);
}
</script>
現在你已經得到了所有的內容可見,搜索引擎,都在相同的(正確)的URI,但對於啓用JavaScript的用戶,它的作用類似於AJAX的解決方案(但速度更快,初始後加載,這有點慢)。
現在,如果你有一個TON的內容,你必須考慮更聰明的東西。但是,如果你的所有內容相對較少(不要忘記確保你的服務器對內容進行了gzip編碼),那麼這種設置是可取的。
否則,如果您擁有數百千字節(或更多)的文本內容,則必須使用更復雜的技術。你最初的想法是非常正確的。
<a href="/some/page.html" onclick="$('#content').load('/some/page.html')">
LinkyText
</a>
通常會做你認爲它會。當然,問題在於'/some/page.html'最終會在搜索引擎中出現。你可以嘗試做一些棘手的服務器端的事情(比如檢查引用者並重定向回「主」頁面),但我不相信這不是潘多拉的盒子。
希望有人會與解決這個問題的另一個答案一起。如果我想到什麼,我會編輯這一個。
好吧,如果我使用site.come/content/somecontent風格呢?我可以使用JavaScript更新嗎?這樣,無論何時我動態加載內容,我都可以更新URL以反映顯示的內容,因此獲取該內容的永久鏈接也更容易? – 2009-10-05 02:44:51
您無法更改地址欄中的位置。如果你這樣做,它會導致該位置加載。您只能更改散列符號後的地址部分。 – Joel 2009-10-05 02:48:15
那麼,堅持使用AJAX這些評論中的小部分信息會更好?看起來你發佈了評論而沒有重新加載頁面?對我來說,我認爲漂亮的URL比動態加載內容頁面要重得多...... – 2009-10-05 02:51:06