2015-06-27 59 views
0

我使用稱爲'yourub'的寶石來獲取由特定關鍵字縮小的多個視頻的信息。爲什麼取得記錄太慢?

我的代碼就像這樣,它工作正常,但速度太慢,直到結果開始顯示在頁面上。
是因爲我在使用寶石嗎?如果我用本地方式使用「google-api-client」gem做同樣的事情,它會變得更快嗎?如果是這樣,我該如何更換我的原件?

P.S.據「yourub」的文件,它只能賣到50個視頻:( ,它甚至不能選擇分頁功能選擇:(

我的代碼(查看)

顯示其結果的頁面
<% client = Yourub::Client.new %> 

<% client.search(query: "cat", order: "date", max_results: 30) do |video| %> 

Video ID:<%= video["id"] %> <br /> 
Title: <%= video["snippet"]["title"] %><br /> 
<img src="<%= video["snippet"]["thumbnails"]["high"]["url"] %>" with="480" height="360"><br /> 
----------------------------------------------------------------------------------------------<br /> 
    <br /> 
<% end %> 
+0

也許,您應該對通話進行Ajax化。也許測試服務器很慢。我懷疑寶石是什麼造成延遲 –

+0

@ HithamS.AlQadheeb感謝您的評論。所以你認爲即使我使用google-api-client本地執行操作,也不會有太大的區別嗎?其實,我正在採用我的生產模式。好吧,我可能會實現ajax加載。但是如何選擇結果頁和此寶石的特定頁面不會獲取超過50個結果? – HUSTEN

+1

爲什麼不直接使用yt?檢查http://www.sitepoint.com/youtube-api-version-3-rails/我認爲它會使用谷歌的API,它似乎要走的路 –

回答

2

你可以嘗試YouTube的原生API,看到一個搜索查詢需要多長時間通過一個返回。如果它是照明快,那麼它可能是這種寶石造成的延遲。

考慮使用子彈gem(https://github.com/flyerhzm/bullet)和mini profiler(https://github.com/jaigouk/miniprofiler)到獲取有關應用程序中發生的更多數據。尋找其他速度評估寶石,看看有什麼可行的。

最後,這純粹是一種感知中的魔術,考慮發出一個啞巴「獲取結果......」類型的加載指示符。如果人們沒有看到任何變化,人們會覺得你的過程需要更長的時間。但是,如果您說「正在讀取...」,「正在編譯...」,「正在呈現...」,那麼沒有人會耽誤時間:)

+0

有沒有其他替代方法可以用這種方式進行比較? – HUSTEN