亚洲欧美成人综合一区_国产精品一区二区无码_亚洲风情偷拍区_成?人免费无码视频在线看

在線客服與您一對一交流
當前位置: 主頁 > 行業(yè)新聞 > seo >

如何讓搜索引擎抓取AJAX內容?

  越來越多的網站,開始采用"單頁面結構"(Single-page application)。

  整個網站只有一張網頁,采用Ajax技術,根據用戶的輸入,加載不同的內容。

  

  這種做法的好處是用戶體驗好、節(jié)省流量,缺點是AJAX內容無法被搜索引擎抓取。舉例來說,你有一個網站。

 http://example.com

  用戶通過井號結構的URL,看到不同的內容。

 http://example.com#1 http://example.com#2 http://example.com#3

  但是,搜索引擎只抓取example.com,不會理會井號,因此也就無法索引內容。

  為了解決這個問題,Google提出了"井號+感嘆號"的結構。

 http://example.com#!1

  當Google發(fā)現上面這樣的URL,就自動抓取另一個網址:

 http://example.com/?_escaped_fragment_=1

  只要你把AJAX內容放在這個網址,Google就會收錄。但是問題是,"井號+感嘆號"非常難看且煩瑣。Twitter曾經采用這種結構,它把

 http://twitter.com/ruanyf

  改成

 http://twitter.com/#!/ruanyf

  結果用戶抱怨連連,只用了半年就廢除了。

  那么,有沒有什么方法,可以在保持比較直觀的URL的同時,還讓搜索引擎能夠抓取AJAX內容?西安做網站推薦閱讀>>> 織夢dedecms 首頁列表點擊加載更多AJAX實現瀑布流效果,

  我一直以為沒有辦法做到,直到前兩天看到了Discourse創(chuàng)始人之一的Robin Ward的解決方法,不禁拍案叫絕。

  

  Discourse是一個論壇程序,嚴重依賴Ajax,但是又必須讓Google收錄內容。它的解決方法就是放棄井號結構,采用 History API。西安做網站推薦閱讀>>> 輔助移動站點被百度抓取的工具——移動化培訓長沙視頻8,

  所謂 History API,指的是不刷新頁面的情況下,改變?yōu)g覽器地址欄顯示的URL(準確說,是改變網頁的當前狀態(tài))。這里有一個例子,你點擊上方的按鈕,開始播放音樂。然后,再點擊下面的鏈接,看看發(fā)生了什么事?

  

  地址欄的URL變了,但是音樂播放沒有中斷!

  History API 的詳細介紹,超出這篇文章的范圍。這里只簡單說,它的作用就是在瀏覽器的History對象中,添加一條記錄。

 window.history.pushState(state object, title, url);

  上面這行命令,可以讓地址欄出現新的URL。History對象的pushState方法接受三個參數,新的URL就是第三個參數,前兩個參數都可以是null。

 window.history.pushState(null, null, newURL);

  目前,各大瀏覽器都支持這個方法:Chrome(26.0+),Firefox(20.0+),IE(10.0+),Safari(5.1+),Opera(12.1+)。

  下面就是Robin Ward的方法。

  首先,用History API替代井號結構,讓每個井號都變成正常路徑的URL,這樣搜索引擎就會抓取每一個網頁。

 example.com/1 example.com/2 example.com/3

  然后,定義一個JavaScript函數,處理Ajax部分,根據網址抓取內容(假定使用jQuery)。

 function anchorClick(link) { var linkSplit = link.split('/').pop(); $.get('api/' + linkSplit, function(data) { $('#content').html(data); }); }

  再定義鼠標的click事件。

 $('#container').on('click', 'a', function(e) { window.history.pushState(null, null, $(this).attr('href')); anchorClick($(this).attr('href')); e.preventDefault(); });

  還要考慮到用戶點擊瀏覽器的"前進 / 后退"按鈕。這時會觸發(fā)History對象的popstate事件。

 window.addEventListener('popstate', function(e) { anchorClick(location.pathname); 	 });

  定義完上面三段代碼,就能在不刷新頁面的情況下,顯示正常路徑URL和AJAX內容。

  最后,設置服務器端。

  因為不使用井號結構,每個URL都是一個不同的請求。所以,要求服務器端對所有這些請求,都返回如下結構的網頁,防止出現404錯誤。西安網站建設推薦閱讀>>> 如何查看網站被百度抓取的情況?,

 <html> <body> <section id='container'></section> <noscript> ... ... </noscript> </body> </html>

  仔細看上面這段代碼,你會發(fā)現有一個noscript標簽,這就是奧妙所在。

  我們把所有要讓搜索引擎收錄的內容,都放在noscript標簽之中。這樣的話,用戶依然可以執(zhí)行AJAX操作,不用刷新頁面,但是搜索引擎會收錄每個網頁的主要內容!

  -- 阮一峰

相關文章:

  • 西安網站建設_西安做網站_西安網站制作——西安網絡公司...

  • 從企業(yè)建站角度講,最便捷、最適合企業(yè)的建站系統(tǒng)莫過于自助建站系統(tǒng),市場上可供選擇的自助建站平臺也是一搜一大把。這些自助建站平臺采用傻瓜式建站風格,容易上手,操作簡單方便...

  • 現在想做一個網站成本很低了,買個域名,買個幾十塊空間,弄個網站建設程序就可以開始你的玩耍了,如果你還想找成本更低的,可以看下面的分享。 如何創(chuàng)建網站一直都是很多朋友想要知...

  • 商城網站建設如何將吸引力提升 在信息如此豐富多樣的今天,商城網站建設如何才能夠在眾多的同類當中脫穎而出,獲得大眾的吸引和青睞呢?這其實是相關網站建設人員一直在思考的一個問...

  • 現在越來越多的企業(yè)重視網站的運營推廣,那怎樣推廣效果更好呢?西安蟠龍網絡小編認為沒用永恒不變得,而且要根據企業(yè)的具體情況選擇合適的推廣方式才是最好的,如果你又運營推廣的...

  • 隨著互聯網的發(fā)展,人們每時每刻已經離不開網絡,而網站是網絡的基本組成部分,可以這么說,網絡是由各種各樣的網站組成的,當下,網站是每個企業(yè)的標配,很多個人都有自己的網站,...

  • 網站現在是一個企業(yè)的標配,很多沒有網站的企業(yè)不清楚網站對企業(yè)有什么作用,那么今天西安蟠龍小編總結一下網站對企業(yè)都有哪些好處,希望看完之后您對網站有更深一層的認識。 一、低...

  • 現在網站對一個企業(yè)越來越重要了,網站不僅是一個公司必備的名片,而且有利于提升企業(yè)的品牌形象,低成本擴大公司銷售的一個重要渠道,可以將公司的業(yè)務和產品推向全國,那么公司想...

  • 在互聯網發(fā)展至今天,網站對于一個企業(yè)越來越重要,網站不僅能有效的提升企業(yè)品牌知名度,企業(yè)形象,也是一個企業(yè)的有力的銷售渠道,網絡營銷推廣做好了可以做全國的業(yè)務,那一個企...

  • 隨著互聯網發(fā)展的迅猛,網站建設市場競爭越來越大,魚龍混雜,出現智能建站、模板建站、定制建站等服務,很多朋友搞不清楚他們的區(qū)別,以及定制型網站有什么優(yōu)勢,今天西安蟠龍小編...

  • 公司:西安蟠龍網絡科技有限公司
  • 聯系人:張經理
  • 手機/微信:
  • Q Q: 點擊這里給我發(fā)消息
  • 地址:西安市雁塔區(qū)唐延南路11號逸翠園i都會