2013-09-01 56 views
0

我正在嘗試使用Ruby on Rails實現一個工具,該工具應該爬網並搜索超鏈接。有一個問題:如果網站有大量的鏈接,用戶需要等待很長時間。如何顯示結果並仍然在Ruby on Rails中執行任務

這可能是一個天真的問題:如何顯示結果(例如10個結果)並且爬網過程仍在運行?

然後,用戶點擊「下一步」,它會顯示下一個10個鏈接,依此類推。

+1

爬行的背景下,結果保存到數據庫並刷新頁面它們顯示給用戶定期? –

+0

是的,我的問題是:如何在後臺抓取?我可以使用「向下滾動」來從數據庫加載新結果嗎?謝謝! –

+0

YOu問廣泛的通用問題,所以你有一個廣泛的,通用的答案。請明確點! –

回答

0

想象一下,頁面上有一個鏈接列表。

  1. 在你的控制器中實現一個動作,給定鏈接列表中的一個位置,給出接下來的10個鏈接,並從要顯示的數據返回一個json。
  2. 使用javascript,用零調用剛剛實現的動作,獲取json,解析並顯示在屏幕上。
  3. 重複號2添加鏈接作爲參數傳遞給Ajax調用次數,直到接收零個鏈接

這將是方式更有效,如果你在一個呼叫網頁上的所有鏈接,展示給用戶,然後重複給用戶。像下面這樣:

  1. 對於給定的頁面,添加返回所有環節而進行的訴訟在JSON
  2. 做一個Ajax調用的行動,採取的鏈接,顯示,然後用每一個給定的鏈接作爲參數,以抓取這些鏈接。
  3. 這樣做,而你沒有更多的鏈接。保留鏈接黑名單以避免週期。

如果你沒有得到的AJAX部分,檢查the definition of ajax on wikipediathis question

相關問題