Это не ответ, а совет (он написан в комментариях к вопросу, обратите внимание). Пользоваться им или нет - это вам решать, но совет этот основан на личном опыте. Разработка хорошего визуального редактора даже у опытного разработчика займёт несколько месяцев.
Если вы пишете визуальный редактор не исключительно в целях обучения, вы зря тратите время - получится долго и плохо. Это огромная работа, которая требует глубокого понимания особенностей браузеров. Лучше возьмите готовый.
GennadyPHP, ну так у вас не абсолютно идентичный код, а внутри дива есть спан и пробельные символы => див не пустой => правило не подходит. :empty - это только когда между открывающим и закрывающим тегом вообще ничего нет, ни одного символа.
Вы вот в частностях правы, а в целом нет - от того, что перед fetch добавится return, код не заработает. Этот return выполнится сразу и там будет ровно тот же pending promise, потому что это return никак не связан с тем, что возвращается из последнего then (вернее, связан через этот самый promise).
Сделайте имена переменных в два раза короче, чтобы парсеру языка было меньше работы.
Ну а если серьёзно, такого скачка производительности можно добиться только оптимизацией кода, сетевой инфраструктуры, фронтенда. Ну или переходом на другой язык. У вас просто нет столько спичек, чтобы на них наэкономить такое ускорение.
Про 1% ускорения сказали вы, взяв его с потолка. А потом я с потолка взял генерацию страницы за 2 секунды. Если у вас страница генерируется такое длительное время, то нужно заниматься оптимизацией кода, а не экономить на спичках. Конкатенация 1% прироста скорости вам не даст, особенно, если используется opcache. А если не используется, то нужно не конкатенировать, а opcache включить.