mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 03:53:44 +08:00
FIX: remove slow platform detection from server side
Historically due to https://meta.discourse.org/t/why-is-discourse-so-slow-on-android/8823 we decreased page sizes of both home page and topic page on android by half. This was done on the server side and as a side effect and caused page sizes on android to mismatch between Android and non Android. Unfortunately about a year ago googlebot started pretending it is Android, this cause Google to start indexing pages as what android would see. So it saw double the amount of pages in the index as what exists on desktop. This in turn caused double the amount of indexing work and a large amount of broken links on long topics. This fix removes all special behavior which is no longer needed due to other performance work in Discourse including raw handlebars on home page and virtual dom on topic pages. I tested we do not need this on Blu Advance 5.0 it has 1.3 GHZ mediatec mt6580 This phone retails for around $50 USD. If we decide long term that we want any hacks like this we will shift them to the client side. It can just hold data in memory without rendering.
This commit is contained in:
parent
7828c1156c
commit
1b34a8b48a
|
@ -101,10 +101,6 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
end
|
||||
|
||||
def slow_platform?
|
||||
request.user_agent =~ /Android/
|
||||
end
|
||||
|
||||
def set_layout
|
||||
use_crawler_layout? ? 'crawler' : 'application'
|
||||
end
|
||||
|
|
|
@ -381,7 +381,6 @@ class ListController < ApplicationController
|
|||
# hacky columns get special handling
|
||||
options[:topic_ids] = param_to_integer_list(:topic_ids)
|
||||
options[:no_subcategories] = options[:no_subcategories] == 'true'
|
||||
options[:slow_platform] = slow_platform?
|
||||
|
||||
options
|
||||
end
|
||||
|
|
|
@ -305,7 +305,6 @@ class TagsController < ::ApplicationController
|
|||
q: params[:q]
|
||||
}
|
||||
options[:no_subcategories] = true if params[:no_subcategories] == 'true'
|
||||
options[:slow_platform] = true if slow_platform?
|
||||
|
||||
if params[:tag_id] == 'none'
|
||||
options[:no_tags] = true
|
||||
|
|
|
@ -64,7 +64,6 @@ class TopicsController < ApplicationController
|
|||
opts = params.slice(:username_filters, :filter, :page, :post_number, :show_deleted)
|
||||
username_filters = opts[:username_filters]
|
||||
|
||||
opts[:slow_platform] = true if slow_platform?
|
||||
opts[:print] = true if params[:print].present?
|
||||
opts[:username_filters] = username_filters.split(',') if username_filters.is_a?(String)
|
||||
|
||||
|
|
|
@ -71,7 +71,6 @@ class TopicQuery
|
|||
tags
|
||||
match_all_tags
|
||||
no_subcategories
|
||||
slow_platform
|
||||
no_tags)
|
||||
end
|
||||
|
||||
|
@ -464,7 +463,7 @@ class TopicQuery
|
|||
protected
|
||||
|
||||
def per_page_setting
|
||||
@options[:slow_platform] ? 15 : 30
|
||||
30
|
||||
end
|
||||
|
||||
def private_messages_for(user, type)
|
||||
|
|
|
@ -9,10 +9,6 @@ class TopicView
|
|||
attr_reader :topic, :posts, :guardian, :filtered_posts, :chunk_size, :print, :message_bus_last_id
|
||||
attr_accessor :draft, :draft_key, :draft_sequence, :user_custom_fields, :post_custom_fields, :post_number
|
||||
|
||||
def self.slow_chunk_size
|
||||
10
|
||||
end
|
||||
|
||||
def self.print_chunk_size
|
||||
1000
|
||||
end
|
||||
|
@ -57,7 +53,6 @@ class TopicView
|
|||
|
||||
@chunk_size =
|
||||
case
|
||||
when options[:slow_platform] then TopicView.slow_chunk_size
|
||||
when @print then TopicView.print_chunk_size
|
||||
else TopicView.chunk_size
|
||||
end
|
||||
|
|
|
@ -36,11 +36,6 @@ describe TopicView do
|
|||
expect(TopicView.new(topic.id, evil_trout).chunk_size).to eq(TopicView.chunk_size)
|
||||
end
|
||||
|
||||
it "returns `slow_chunk_size` when slow_platform is true" do
|
||||
tv = TopicView.new(topic.id, evil_trout, slow_platform: true)
|
||||
expect(tv.chunk_size).to eq(TopicView.slow_chunk_size)
|
||||
end
|
||||
|
||||
it "returns `print_chunk_size` when print param is true" do
|
||||
tv = TopicView.new(topic.id, evil_trout, print: true)
|
||||
expect(tv.chunk_size).to eq(TopicView.print_chunk_size)
|
||||
|
|
Loading…
Reference in New Issue
Block a user