Есть ли специальная ветка для прокрутки в браузере?

Я пишу учебник по JavaScript для одного из своих классов и хотел проиллюстрировать, что стек вызовов может блокировать другие процессы, и пока это происходит, взаимодействие со страницей ставится в очередь до тех пор, пока стек вызовов не станет пустым.

const print = function(){
	console.info( "Hello World" );
}
setTimeout(print,0);
for(let i=0 ; i < 2000000000 ; i++);
console.info();

После запуска приведенного выше кода я заставляю их щелкать ссылки и изменять размер окна, чтобы увидеть, что страница не перерисовывается, но прокрутка работает нормально на многих веб-сайтах, таких как Stack Overflow. Он заблокирован на Reddit. Я протестировал это как в Chrome, так и в Firefox, чтобы дважды проверить, была ли какая-то оптимизация, но оно вело себя одинаково.

Я предполагаю, что если на сайте нет обработчиков событий, связанных с прокруткой, то есть специальный поток для базовой прокрутки. Это потому, что я заметил, что сайты с липкими заголовками разрешают прокрутку, но их липкий эффект не применяется до тех пор, пока цикл не завершится.

Под липкой вы имеете в виду версию CSS или JavaScript?

Praveen Kumar Purushothaman 31.01.2019 17:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
1
593
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сообщение в блоге Microsoft от Нолан Лоусон, на которое я ссылаюсь ниже, содержит много полезной информации по этому конкретному вопросу - прочитайте его. Вот фрагмент из этого сообщения в блоге:

As it turns out, the whole “browsers are single-threaded” story is largely true, but there are important exceptions. Scrolling, in all its various flavors, is one of those exceptions.

Over the years, browser vendors have recognized that offloading work to background threads can yield enormous improvements to smoothness and responsiveness. Scrolling, being so important to the core user experience of every browser, was quickly identified as a ripe target for such optimizations. Nowadays, every major browser engine (Blink, EdgeHTML, Gecko, WebKit) supports off-main-thread scrolling to one degree or another (with Firefox being the most recent member of the club, as of Firefox 46).

Источник: Прокрутка в Интернете: учебник для начинающих

Другие вопросы по теме