diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-09-03 19:05:09 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-10-26 14:14:57 +0900 |
commit | c5872e664ee6a56151654a5c02ddacbf78558881 (patch) | |
tree | c2a8e9747f92325564732f6e7d6903932dca5c27 | |
parent | e212e60f9697d01471cf26b6386f5921057ff35b (diff) | |
download | mikutter-c5872e664ee6a56151654a5c02ddacbf78558881.tar.gz |
大量にユーザータブを開いている場合の起動を速くする
-rw-r--r-- | core/plugin/user_detail_view/user_detail_view.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/core/plugin/user_detail_view/user_detail_view.rb b/core/plugin/user_detail_view/user_detail_view.rb index a4dcd291..af25029d 100644 --- a/core/plugin/user_detail_view/user_detail_view.rb +++ b/core/plugin/user_detail_view/user_detail_view.rb @@ -14,11 +14,13 @@ Plugin.create :user_detail_view do @timeline_storage ||= {} end Delayer.new do - (UserConfig[:profile_opened_tabs] || []).uniq.each do |user_id| - retrieve_user(user_id).next{|user| - user ||= User.findbyid(user_id) - show_profile(user, true) if user - }.terminate end end + # ids が全て凍結・削除されてる場合以外は失敗しない + (UserConfig[:profile_opened_tabs] || []).uniq.each_slice(100) {|ids| + Service.services.sample.user_lookup(id: ids.join(",".freeze)).next {|users| + users.each do |user| + show_profile(user, true) if user + end + }.terminate } end def retrieve_user(user_id, services = Service.services.shuffle) if services.nil? or services.empty? |