У меня есть веб-сайт, который очень прост, но очень длинный - много текста, который можно прокручивать. Это сайт документации, и, учитывая характер контента (много коротких похожих записей), я решил показать все сразу, поэтому пользователь мог либо прокручиваться от записи до входа, либо перемещаться по индексу боковой панели. Это общая модель документации, которая мне нравится (например, Underscore, Backbone и LoDash).
Сайт находится здесь: http://davidtheclark.github.io/scut/. Вы можете посмотреть здесь код предварительной обработки: https://github.com/davidtheclark/scut/tree/master/docs/dev.
И вот проблема: для ряда пользователей этот сайт последовательно разбивает свои iOS-браузеры. Не все пользователи (не я); но для тех, кто переживает крах, он, кажется, повторяется последовательно. (Возможно, сайт может также сбой некоторых телефонов Android Android, я не знаю: не слышал от пользователей Android.) Я надеюсь, что кто-то может помочь мне диагностировать и, возможно, исправить эту проблему.
Часть трудности, с которой я сталкиваюсь, заключается в том, что я не могу воспроизвести сам авария - не на своих устройствах iOS, а не на симуляторах Xcode. Поскольку сайт не является ресурсоемким (загрузка ~ 70 КБ) и включает очень мало JavaScript, и из-за эффектов нескольких предыдущих попыток исправить это, я предполагаю, что проблема связана с использованием памяти - это iOS-браузеры сбой, потому что сайт требует слишком много памяти. Но я не уверен, что проблема, и если это, я не уверен, как я могу это исправить.
Я не уверен, что делать дальше, и я надеюсь, что некоторые сообразительные подсказки StackOverflow будут иметь совет. Что это за сайт, который кажется таким простым и понятным для моих глаз, что делает его настолько требовательным к памяти, что он вредит браузерам?
Это слишком долго? Есть ли CSS, который слишком сложно сделать? Есть ли утечки памяти JavaScript?
Мне интересно как для этого конкретного сайта, так и для того, чтобы научиться предвидеть и предотвращать и/или диагностировать и исправлять подобные проблемы на других сайтах в будущем.
Не стесняйтесь рассматривать и вносить вклад в [проблему Github] (в этой проблеме Github.
Добавление
Вот некоторые сведения о сайте, которые могут иметь значение:
- HTML-документ большой по сравнению с документами HTML других сайтов. Unminified выглядит ~ 225KB. (Я замечаю, что документы LoDash еще больше - этот сайт разбивает телефоны людей?)
- Доработан используемый HTML-документ.
- Также применяются сервисные CSS и JS.
- Сайт использует Prism.js для подсветки синтаксиса.
- Сайт использует Overthrow, чтобы сделать макет с двумя прокручивающимися столбцами на планшетах.
-
<aside id="help-content">
фиксирован и переведен за пределы экрана; он скользит, когда вы нажимаете [?], как тот, который используется любой утилитой "use-name".
Журнал сбоев iOS
Мне кажется, что это потенциально релевантные строки отчета о сбоях от iPhone, работающего под управлением Chrome, и сбоя на сайте (я не уверен, действительно ли они актуальны или нет, потому что я не разработал приложения для iOS и не не знаю, какие из этих отчетов есть):
Free pages: 5674
Active pages: 117674
Inactive pages: 55121
Speculative pages: 3429
Throttled pages: 0
Purgeable pages: 0
Wired pages: 60906
File-backed pages: 23821
Anonymous pages: 152403
Compressions: 356216
Decompressions: 121241
Compressor Size: 16403
Uncompressed Pages in Compressor: 49228
Largest process: Chrome
[...]
Chrome <2a759438c2253e3baededaa0d13feb56> 166479 166479 200 [per-process-limit] (frontmost) (resume)