Я пытаюсь выяснить способ автоматического создания файла манифеста ApplicationCache из всех файлов HTML, CSS, JavaScript и изображений, используемых нашим сайтом.Найти все загруженные файлы на веб-сайте для создания манифеста ApplicationCache
Нам это нужно, потому что нам необходимо поддерживать автономное использование веб-сайта. Точнее, автономное использование ArcGIS API для JavaScript webapp.
Мы не используем сервис-работников вместо ApplicationCache, потому что поддержка iOS является критическим требованием, а работники служб вообще не поддерживаются в iOS, в любом браузере.
Идея состоит в том, что я буду вручную вызывать функцию после полной загрузки сайта, которая будет динамически создавать текст, который будет использоваться для нового манифеста. Затем вручную скопируйте/вставьте его в файл манифеста. Так что это то, что я сделал бы только тогда, когда что-то на сайте изменилось, и файл манифеста должен быть обновлен.
Этот инструмент, ManifestR, очень близко: http://westciv.com/tools/manifestR/ , но есть две проблемы с ним:
1- Это не обрабатывает URL-файла изображения, найденные в CSS файлах должным образом. Например, если он находит url (../ images/myimage.png), он добавит относительную ссылку ../images/myimage.png непосредственно в файл манифеста вместо добавления не относительной ссылки, например, www.mysite.com/ изображения/myimage.png.
2- В нем нет списка скриптов, загружаемых через dojo.require (модули AMD).
Я думаю использовать аналогичный код, чтобы исправить эти проблемы и скомпилировать список файлов. Я уже вижу, как исправить # 1, но не могу понять, как исправить # 2.
Итак, используя JavaScript, как я могу найти список всех URL-адресов скриптов, используемых веб-сайтом, а не только те загруженные теги прокси (найденные в объекте window.scripts), но и загруженные с использованием модулей AMD?
В принципе, я хочу скомпилировать тот же список, который Chrome показывает мне для веб-сайта в панели «Источники».
Ex:
Я имею в виду, что если это не доступны в любом месте, может быть, я мог бы создать функцию прокси для dojo.require, которая хранит следы всех файлов, загруженных через AMD.
Но я хотел спросить здесь сначала, возможно, я пропустил инструмент сценария, который уже делает это? Или, может быть, мой план не очень хорош?
Благодаря
Я обнаружил, что могу получить список всех загруженных модулей в требовании.модули – greenkarmic
Еще лучше, я обнаружил, что могу получить список всех ресурсов, загружаемых через API синхронизации времени. Сначала задайте размер буфера с помощью performance.setResourceTimingBufferSize (some_value); затем используйте window.performance.getEntriesByType ('resource'), чтобы получить список файлов. Гораздо проще. – greenkarmic