Я опубликовал это сообщение на форуме, использующем Discourse:
Также мне удалось воспроизвести эту проблему на демонстрационном форуме.
В том сообщении содержатся длинные фрагменты скопированного кода — если быть точным, это не совсем код, а скорее вывод команд. Это довольно типичный случай в форумах поддержки по вопросам программного обеспечения и компьютерной техники.
По мере написания сообщения, после вставки длинных блоков текста (которые даже не так уж велики — всего несколько сотен строк), редактор становился всё более медлительным при обычном наборе текста. Появление на экране букв, которые я ввожу, занимало время (речь не о живом предпросмотре, а именно о том текстовом поле, в которое вы вводите текст). В итоге он становится практически непригодным для использования.
Интересно, мне не удаётся воспроизвести это здесь:
Я вижу, что этот форум отстаёт в обновлениях. На прошлой неделе я объединил изменение, обновляющее библиотеку HighlightJS до её последней версии, что значительно ускорит работу.
Кроме того, на экземпляре https://forum.manjaro.org включена настройка autohighlight all code, что не является хорошей идеей для форума поддержки, где большинство постов с блоками кода содержат простые логи, а не настоящий код. Я бы предложил их команде как можно скорее отключить это.
Помимо этого, подсветка более 10 000 строк кода в основном потоке браузера будет ощутимо медленной на некоторых устройствах, что легко заметить при открытии GitHub-разницы на Android-телефоне. У нас есть планы реализовать это в фоновом JS-воркере, но это имеет некоторые недостатки, и мы ещё не добрались до этого.
О, моя ошибка. На главной странице я увидел большую кнопку «попробовать бесплатно», что создавало впечатление, будто бесплатно можно лишь попробовать, а в разделе «Цены» не было упоминания о бесплатном плане. Наверное, мне стоило изучить вопрос глубже; возможно, речь идёт о хостинг-планах или чём-то подобном.
Да, я уже заметил это и предположил, что, вероятно, это ошибка конфигурации с их стороны, но это не имеет отношения к проблеме. Я мог бы вставить столь же длинный фрагмент легитимного JavaScript-кода. И даже если проблема действительно возникает только при подсветке синтаксиса с неправильным языком, это не оправдывает замедление работы редактора вне блока кода.
подсветка более 10 000 строк кода в основном потоке браузера будет ощутимо медленной на некоторых устройствах
Да, но нет причин, по которым это должно происходить, когда я редактирую остальную часть поста вне блока кода, который подсвечивается. Независимо от того, выполняется ли это в основном потоке (очевидно, неправильно — рад слышать, что вы работаете над исправлением) или в фоновом режиме, после того как код уже подсвечен и я больше не редактирую его, не должно выполняться никакой работы, связанной с подсветкой. Любая парсинг, вычисления и т. п., связанные с подсветкой, должны выполняться заново только в том случае, если изменяется содержимое блока кода.