我正在构建一个使用Soundcloud和Instagram宝石的单页Rails 4应用程序。我注意到有时这些API请求会降低我的应用程序速度。我不确定处理此类请求的最佳方法/做法是什么,以便它们不会对我的应用程序的性能产生负面影响?我查看了异步请求,sidekiq,并且还找到了这个示例:http://www.jonb.org/2013/01/25/async-rails.html
我的索引控制器如下所示:
require 'soundcloud'
class HomeController < ApplicationController
def index
# register a new client, which will exchange the username, password for an access_token
soundcloud_client = Soundcloud.new(
:client_id => ENV['SOUNDCLOUD_ID'],
:client_secret => ENV['SOUNDCLOUD_SECRET'],
:username => ENV['SOUNDCLOUD_USERNAME'],
:password => ENV['SOUNDCLOUD_PASSWORD']
)
# Soundcloud
@activity = soundcloud_client.get('/me/favorites').first(12)
# Instagram
@instagram = Instagram.user_recent_media("1111111", {:count => 12})
end
end
答案 0 :(得分:0)
可能更好的解决方法是加载索引,但不要从声明上加载该索引的列表。
而是在您的视图上调用一个Ajax调用,在您的控制器中调用纯JSON操作,这样做可以快速地为页面提供服务,而不是阻塞在soundclock上。您可以在视图上放置一个微调器,指示页面仍在加载。研究jquery加载方法。
祝你好运。