我正在使用名为"yourub"的gem来获取按特定关键字缩小的多个视频的信息。
我的代码就是这样,它工作得很好,但速度太慢,直到结果开始出现在页面上
是因为我在用宝石吗?如果我用"googleapi客户端"gem的原生方式做同样的事情,它会更快吗?如果是,我该如何替换我的原件?
附言:根据"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 %>
您可以尝试YouTube的原生API,看看通过该API返回搜索查询需要多长时间。如果它发光很快,那么可能是这块宝石造成了延迟。
考虑使用子弹宝石(https://github.com/flyerhzm/bullet)和迷你轮廓仪(https://github.com/jaigouk/miniprofiler)以获取有关应用程序中正在发生的事情的更多数据。寻找其他速度评估宝石,看看哪些可能有效。
最后,这纯粹是一个感知魔术,可以考虑发布一个愚蠢的"获取结果…"类型的加载指示器。如果人类没有看到任何变化,他们就会觉得你的过程需要更长的时间。然而,如果你说"正在获取…"、"正在编译…"one_answers"正在呈现…",甚至没有人会对延迟眨眼:)