J'essaie de trouver un moyen de générer automatiquement un fichier manifeste ApplicationCache à partir de tous les fichiers HTML, CSS, JavaScript et images utilisés par notre site Web.Trouver tous les fichiers chargés dans le site Web pour créer le manifeste ApplicationCache
Nous en avons besoin car nous devons prendre en charge l'utilisation hors ligne du site Web. Plus précisément, utilisation hors ligne d'une API Web ArcGIS pour JavaScript. Nous n'utilisons pas de personnel de service au lieu de l'application ApplicationCache, car la prise en charge d'iOS est une exigence critique et les techniciens de service ne sont pas pris en charge du tout sur iOS, sur n'importe quel navigateur.
L'idée est que je vais appeler manuellement une fonction après que le site soit complètement chargé, ce qui créera de façon dynamique le texte à utiliser pour le nouveau manifeste. Ensuite, copiez-le manuellement dans le fichier manifeste. C'est donc quelque chose que je ferais seulement quand quelque chose dans le site change et que le fichier manifeste doit être mis à jour.
Cet outil, ManifestR, est très proche: http://westciv.com/tools/manifestR/ mais a deux problèmes avec elle:
1- Il ne gère pas les URL de fichiers d'images trouvées dans les fichiers CSS correctement. Par exemple, s'il trouve url (../ images/myimage.png), il ajoutera le lien relatif ../images/myimage.png directement dans le fichier manifeste au lieu d'ajouter le lien non relatif comme www.mysite.com/ images/myimage.png.
2- Il ne répertorie aucun des scripts chargés via dojo.require (modules AMD).
Je pense utiliser un code similaire pour résoudre ces problèmes et compiler la liste des fichiers. Je vois déjà comment réparer # 1, mais ne peux pas comprendre comment réparer # 2. Donc, en utilisant JavaScript, comment puis-je trouver la liste de toutes les URL de script utilisées par le site web, pas seulement les balises auge chargées (trouvées dans l'objet window.scripts), mais aussi celles chargées en utilisant les modules AMD?
Fondamentalement, je veux compiler la même liste que Chrome me montre pour le site Web dans le volet Sources.
Ex:
Je pense que si ce n'est pas disponible partout, je pourrais peut-être créer une fonction proxy pour dojo.require qui maintient les pistes de tous les fichiers chargés par AMD.
Mais je voulais demander ici d'abord, peut-être que j'ai raté un outil de script qui fait déjà cela? Ou peut-être que mon plan n'est pas bon?
Merci
J'ai trouvé que je peux obtenir la liste de tous les modules chargés dans require.modules – greenkarmic
Encore mieux, j'ai trouvé que je peux obtenir une liste de toutes les ressources chargées via l'API Resource Timing. Définissez d'abord la taille de la mémoire tampon avec performance.setResourceTimingBufferSize (some_value); utilisez ensuite window.performance.getEntriesByType ('resource') pour obtenir la liste des fichiers. Beaucoup plus simple. – greenkarmic