2009-11-11 87 views
0

你們都知道如何構建帶有300ms觸發器的AJAX站點來檢查URL中的錨點(哈希鏈接),然後使用AJAX加載適當的頁面。但是,這些鏈接對搜索引擎沒有任何作用=(錨定AJAX和SEO解決方法?

我想過做一些解決方法。所有JS代碼都保持不變,但是,這個小東西(我用JQuery,對不起):

$('a').live("click",function(){ 
    var lnk = $(this).attr("href"); 
    document.location.hash = lnk; 
    return false; 
}) 

然後,你用普通的鏈接取代體內的錨鏈接,建立相應的普通網頁(仍包含所有的JS代碼)非JavaScript用戶和搜索引擎。對於普通遊客,你將有普通鏈接轉換進入哈希,並立即加載AJAX內容對於那些正在嘗試加載通過搜索引擎找到的某些頁面 - 他們會,然後訪問者將繼續移動Ajax導航......不知何故(請記住,那些純直接頁面仍然包含JS代碼)。

我只是想確保我的假設是正確的。他們?

更新:糟糕的是,當用戶直接進入一些內部頁面與例如。 /portfolio地址,他會繼續/檔案#聯繫人或類似的URL不是很漂亮,但仍然有效(我的意思是/portfolio#contacts會顯示聯繫人)。

回答

0

聽起來很有聲音......只有我建議你的300ms定時器的回調也在上面的事件中被調用,這樣當你點擊一個鏈接時你有一個即時結果(並且用戶可以轉到鏈接在地址欄中並獲得相同效果)

1

這似乎不是一個好方法,主要是因爲您最終會觸發每個鏈接的click事件的功能,即使是那些您做不是想要使用你的AJAX方法來加載內容,例如鏈接到其他網站或javascript:...

如果您將所有的AJAX-y鏈接放在同一個類下,或者使用另一個屬性來區分它們,然後調整您在那裏使用的jQuery選擇器,那麼它將起作用,這將是一個好方法,因爲不是它只會對搜索引擎優化友好,但它也提供了優雅的降級,也就是說,即使用戶在未允許JavaScript的環境中運行,用戶仍然可以訪問內容。

除此之外,如果SEO是你唯一關心的問題,你可以在網上搜索sitemap.xml文件是什麼以及如何使用它。維基百科有一個article on it,可能值得一讀。

+0

是的,指定這些鏈接的類是絕對必要的。 – Supercharged 2009-11-11 19:12:19

0

嘿夥計,你可能想看看jQuery Ajaxy。它優雅地將網站升級到豐富的ajax應用程序,所以您的網站仍然適用於搜索引擎優化和Javascript禁用用戶。

您可以在行動in this upcoming website中看到此功能。注意,如果網站不是Ajax應用程序,所有鏈接都是相同的 - 如果您在新窗口中右鍵單擊並打開,它們仍然可以正常工作!

該功能在其演示頁面中有詳細說明。您還可以在其中找到其他示例和使用說明: http://www.balupton.com/sandbox/jquery-ajaxy/demo/

總體而言,使用它非常簡單明瞭(特別是考慮它允許您執行的操作!),並且支持非常棒。