2012-01-20 63 views
2

我正在開發一個ajax網站,我知道將所有鏈接保留爲普通鏈接(即「貓/」)是一種很好的做法,並且,如果啓用javascript,則將它們(「#cats」)加以哈希值。我的網站可以被搜索引擎完全抓取,並且所有網頁都被索引。我應該使用從可抓取的JavaScript重定向到ajax網站嗎?

我的問題是:當用戶通過Google登錄「www.example.com/cats」頁面時,如果他的瀏覽器啓用了JavaScript,是否可以自動將他重定向到「www.example.com/#貓「與一個簡單的JavaScript重定向(location.href = ...)?

+0

如果/貓和/#貓不會導致不同的內容,則無需執行此操作。一般來說,散列可以處理類似/ animals#cats的地方,其中#cats將用戶帶到/ animals頁面的cat部分。 – scottm

回答

0

不要這樣做。它會導致頁面的HTML被加載兩次!普通用戶無論如何都不關心地址欄。

0

當你的頁面加載時,如果/cats存在,使用javascript檢查url只需運行你的ajxy函數,不需要重定向。

+0

你的意思是說,當一個用戶登陸頁面/貓,他必須留在這裏,導航必須從這個頁面的Ajax完成?這是否意味着我的所有頁面都必須基於相同的模板(有一些靜態差異)? – user1161554

+0

網址可能受到污染:www.example.com/cats/#dogs ...因此,HTML5 pushState是一個很好的解決方案,可以簡化網址,並將#:www.example.com/cats/#dogs移除到www.example。 COM /狗。但我必須在www.example.com/dogs上創建一個真正的靜態網頁,以歡迎登錄此頁面的用戶(從書籤,外部鏈接...)。我是否正確? – user1161554

1

我知道這是一個很好的做法,以保持所有的鏈接,正常的鏈路中(即「貓/」)

它。

如果javascript已啓用,請將它們(「#cats」)ajaxify。

不,使用片段標識符有serious drawbacks。這是一個很好的做法,可以將它們作爲正常鏈接,或者(如果它將顯着改善網站的可用性)使用pushState and friends對它們進行Ajax化。

使用pushState和朋友使你的問題的最後一段沒有爭議 - 因爲你只有一個URI代表內容而不是兩個。

+0

重定向我的用戶的唯一好處是隻保留一個頁面(網站索引)來提供ajax內容。所有其他頁面都是自動生成的靜態頁面。 – user1161554

相關問題