Всем привет! Хочу сообщить об ошибке.
Воспроизводится в версиях v2.4.5, v2.5.0.
Предварительные условия
Создайте пост с загрузкой видео/аудио.
Я тестировал с безопасной загрузкой медиа, но ошибка должна воспроизводиться и при небезопасной загрузке.
Начните редактировать пост.
Откройте консоль разработчика браузера. По желанию, установите фильтр для API загрузки.
Дождитесь завершения всех запросов и очистите консоль.
Шаги для воспроизведения
Введите любой текст в левой области (редактирование).
Проверьте консоль разработчика браузера.
Фактический результат
Каждое нажатие клавиши воспринимается как изменение, поэтому при простом наборе текста постоянно создаются события загрузки видео.
Большое количество изменений приводит к отправке множества запросов, после чего происходит отклонение запросов из-за ограничения частоты API и автоматический выход из форума.
Ожидаемый результат
Никаких запросов на загрузку аудио/видео при редактировании поста.
Эта строка вызывает ошибку. Она вызывает функцию load элемента DOM <video>/<audio> каждый раз при рендеринге превью, фактически при каждом изменении поста.
Это странно. Я могу воспроизвести проблему только при выборе флажка «Отключить кэш» на вкладке «Сеть» в инструментах разработчика браузера. Когда я снимаю этот флажок, результаты становятся ожидаемыми. Я использую Chrome на Ubuntu. Судя по вашему видео, у вас не выбран флажок «Отключить кэш», поэтому я не уверен, что вызывает эту разницу.
“Отключение кэша” не должно влиять на отправку запросов. Оно влияет только на источник получения результата запроса — из кэша браузера или из реального источника.
Эти запросы на загрузку отправляются кодом, который перерисовывает предпросмотр при каждом нажатии клавиши, что приводит к созданию нового DOM-элемента для видео/аудио. Поэтому для нового DOM-элемента обязательно вызывается load, что непременно должно инициировать отправку запроса.
Даже если бы использовался «кэшированный» (не всегда создаваемый заново) DOM-элемент, запрос отправлялся бы только один раз, независимо от настройки «Отключить кэш».
Я изучил это и могу частично воспроизвести проблему как с безопасными, так и с небезопасными загрузками видео. На определённом этапе система, похоже, начинает кэшировать и прекращает спамить такими запросами, но проблема всё ещё сохраняется. Строка, на которую вы указали:
была добавлена мной, но сейчас она, похоже, ни на что не влияет. Если я её удалю, превью видео всё ещё будут работать корректно. Я знаю, что мы уже проделали другую работу с эскизами видео и т. д., которая, вероятно, устранила ту проблему, ради которой я изначально добавил эту строку. Поэтому я думаю, что просто удалю её, что решит проблему с множественными запросами.