Обнаружение оплавления/перекрашивания: возможно ли это сегодня? Возможно в будущем?

Я хотел бы знать, есть ли в современных веб-браузерах надежный способ обнаружения переформатирования и/или перерисовки документов, или есть ли какой-либо насущный интерес к такой вещи, которая может поместить ее в спецификацию W3.

Я также хотел бы знать, как это можно сделать вообще, используя трюки, специфичные для поставщика (например, у Mozilla, по-видимому, есть событие MozAfterRepaint), если это невозможно стандартным или кросс-браузерным способом.

Спасибо.


person Gui Prá    schedule 15.04.2014    source источник
comment
Нет реальной причины захватывать это событие, поскольку оно непредсказуемо, поскольку частота кадров варьируется. Используйте requestAnimationFrame, чтобы приблизиться к циклу перерисовки.   -  person Populus    schedule 15.04.2014
comment
возможный обман stackoverflow.com/questions/7006152/   -  person Patrick    schedule 15.04.2014


Ответы (1)


Вы не можете точно измерить, но вы можете предсказать, просмотрев любой javascript, который является геттером или сеттером/изменителем стиля, анимации, добавления/удаления классов в элементах. Это можно сделать, используя javascript для ajax всего javascript на странице, чтобы получить строки javascript, а затем использовать регулярные выражения, чтобы определить, где они находятся. Создайте объект всех имен методов, которые вы найдете, которые делают это.

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

person Steve Tomlin    schedule 03.05.2015
comment
Статический анализ кода для обнаружения перерисовок и/или перекомпоновок? Кто пойдет так далеко? Кроме того, это даст только кодовые точки, которые могут вызвать перерисовку и/или перекомпоновку, но вам все равно придется как-то предсказывать, когда такие кодовые точки будут достигнуты. Другими словами, вам придется изменить код, чтобы добавить триггеры событий. И, кроме того, JavaScript — не единственное, что может вызвать перерисовку/перекомпоновку. Извините, но это безумное предложение. - person Gui Prá; 04.05.2015
comment
Я бы пошел так далеко, потому что верю в лучшую отладку, лучшую производительность и свободу от плохих фреймворков. Как только вы узнаете, что вызывает перекомпоновки, тогда работа будет сделана. Javascript может определять css на странице - также вычисляется. У вас есть полный доступ к Дому. Это возможно, но я не говорил, что это будет легко. это зависит от опыта разработчика. - person Steve Tomlin; 05.05.2015