aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-09-03 19:05:09 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-10-26 14:14:57 +0900
commitc5872e664ee6a56151654a5c02ddacbf78558881 (patch)
treec2a8e9747f92325564732f6e7d6903932dca5c27
parente212e60f9697d01471cf26b6386f5921057ff35b (diff)
downloadmikutter-c5872e664ee6a56151654a5c02ddacbf78558881.tar.gz
大量にユーザータブを開いている場合の起動を速くする
-rw-r--r--core/plugin/user_detail_view/user_detail_view.rb12
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?