2012-01-18 48 views
0

我的網站設置如下:當頁面加載時,模板中出現一個jQuery動畫 - 在完成時,進一步製作一個Ajax調用來獲取頁面的內容。現在,我想部署hashbang,如http://com-address/#!page,我還需要在頁面加載時保留動畫。但我認爲這個設置的問題是;當網絡爬蟲訪問該頁面時,它不會等待動畫完成並進行Ajax調用。它需要具有加載內容的頁面狀態(在我的情況下是在動畫完成後獲取的)。帶有溢出碎片URL的jQuery動畫(hash-bang,#!)

鑑於上述情況,哪種方式更好:

  1. 改變整個流程,並搶先加載頁面內容和隱藏 直到播放動畫。

  2. 只有當哈希爆炸或_escaped_fragment在URL中發現:

    一個。請按照步驟1.

    b。用沒有動畫的內容加載頁面。

  3. 我對網絡爬蟲的假設是不正確的&讓 電流照原樣。

任何單挑的建議?

編輯

@kdzwinel,感謝有關文本的瀏覽器的提示!

第二個想法是,我將使用選項2(a),因爲當抓取工具訪問具有分段URL的資源時,它應該在頁面上獲取完整的結果內容。如果用戶直接導航到分段URL,用戶體驗動畫也將保持不變(通過從頁面加載和動畫開始之間刪除動態內容片段上的內容)。

對於所有其他場景,我們將繼續舊的流(因爲我們不想刷新頁面,因爲用戶已經訪問了該網站並嘗試順利/無縫地導航錨定帶有碎片的URL(綁定它們的點擊事件以開始動畫)。

回答

1

網絡爬蟲不要執行JavaScript的(webmaster guidelines -

如果因應用了Javascript,Cookie,會話ID,框架,DHTML或Flash等您無法在文本瀏覽器中查看整個網站,那麼搜索引擎蜘蛛可能無法抓取你的網站。

),如果你不想你的內容索引去與選項#1。在打開頁面時加載內容並且瀏覽器支持JavaScript - 隱藏內容並顯示動畫。

+0

感謝您的意見。但是,hash-bang實際上不應該是這樣,因爲如果文本瀏覽器遇到像#!頁面那樣的href錨定標記,它將不會導航到com-address /#!頁面,而是會查找指定的錨點(!頁面)。然後,只有導航到hash-bang的方法是刷新頁面(如果您已經在同一頁面上或使用javascript來獲取窗口。通過Ajax提供loacation.hash請求)儘管如此,谷歌發現了通過逃逸碎片化URL製作AJAX驅動的應用程序Crawlable的想法。 – 2012-01-18 12:09:28

+0

很酷,我不知道。它不會改變javascript不會被webcrawler執行的事實,所以當爬蟲訪問它時,你的主頁上沒有任何東西會被編入索引。我仍然認爲你應該選擇#1。 – 2012-01-18 12:31:23

+0

查看我的文章中的編輯部分並感謝您的幫助! – 2012-01-18 13:37:41