Я использую javascript-библиотеку html2canvas, чтобы снимать снимок экрана несколько раз в секунду, но это значительно замедляет сеанс браузера. Функция библиотеки в основном принимает элемент DOM, проходит через него и воспроизводит его как элемент холста. Я хочу каждый раз передавать тело документа веб-работнику, где он будет отдельно выполнять функцию. Я понимаю, что у рабочих нет доступа к DOM, но есть ли способ, которым я могу сериализовать тело, чтобы успешно передать его как аргумент postMessage?Передача тела документа без его редактирования в веб-работнике
ответ
можно ли каким-либо образом сериализировать тело, чтобы успешно передать его как аргумент postMessage?
Да, используя (например) outerHTML
var worker = new Worker("worker.js");
document.addEventListener("DOMContentLoaded", function(event) {
worker.postMessage(document.body.outerHTML);
});
и worker.js
self.onmessage = function(e) {
console.log('In worker', e.data);
};
Что можно увидеть на https://plnkr.co/edit/M0OoIEiarr0HsOiSANUs?p=preview
Однако как Томаш Zato указывает , html2canvas
может не работать в веб-работнике.
Спасибо! Я обязательно попробую это. –
Можно ли сериализовать DOM? Все, включая html, inline css, скрипты в документе + любые скрипты/ссылки, добавленные на страницу? – hipkiss
Вы можете сериализовать DOM, но не DOM-методы и любые функции, которые вы добавили. Поскольку html2canvas сильно зависит от методов холста, он не будет работать (легко). – Nick
- 1. открытие документа и ожидание завершения его редактирования.
- 2. Отключение части документа от редактирования
- 3. Использование jQuery для редактирования тела
- 4. Синтаксический Json из тела документа
- 5. Как отключить прокрутку тела документа?
- 6. Замена тела документа на iPhone
- 7. PHP/JavaScript Печать документа без его открытия
- 8. Запуск Powerpoint в WP7 для редактирования документа
- 9. Отображение состояния массива в закрытии без разрешения его редактирования извне
- 10. Добавление текста в JTextPane без его редактирования пользователем?
- 11. Передача модели с помощью другого действия без редактирования
- 12. ручка POST без тела
- 13. Передача объекта документа функции JavaScript
- 14. Печать PDF-документа в ASP MVC без его отображения
- 15. Анализ XML-документа в Perl без знания его структуры
- 16. У браузеров максимальная высота для тела/документа?
- 17. Проблемы с переливом тела документа, чтобы скрытый
- 18. функции без тела
- 19. POST без тела
- 20. Websocket без редактирования сервера
- 21. Получить общее время редактирования слова документа
- 22. Передача метода в качестве аргумента без преобразования его в функцию
- 23. Передача объекта документа веб-работнику
- 24. Java библиотека для редактирования документа атрибутов
- 25. Как я могу переопределить несколько параметров плагина без его редактирования
- 26. Прокрутка без редактирования в UITextField
- 27. Загрузка тела документа в SharePoint из CRM-заметок C#
- 28. DD_belatedPNG без редактирования разметки
- 29. Как напечатать документ слова после редактирования его
- 30. Symfony: передача переменных в шаблоне без его рендеринга
Вы можете отправить тело как обычный HTML-текст. Но проблема в том, что у рабочих также нет доступа к элементу холста и методам рисования. Библиотека AFAIK, html2canvas использует SVG, который нарисован на холсте. –