gpt4 book ai didi

javascript - 查找网站中所有已加载的文件以创建 ApplicationCache list

转载 作者:太空宇宙 更新时间:2023-11-04 16:08:18 25 4
gpt4 key购买 nike

我正在尝试找出一种方法,从我们网站使用的所有 HTML、CSS、JavaScript 和图像文件自动生成 ApplicationCache list 文件。

我们需要这个,因为我们需要支持网站的离线使用。更准确地说,是离线使用 ArcGIS API for JavaScript Web 应用程序。

我们没有使用 Service Worker 来代替 ApplicationCache,因为支持 iOS 是一项关键要求,而 iOS 上的任何浏览器都根本不支持 Service Worker。

这个想法是,我将在网站完全加载后手动调用一个函数,该函数将动态创建用于新 list 的文本。然后手动将其复制/粘贴到 list 文件中。因此,只有当网站中的某些内容发生变化并且 list 文件需要更新时我才会这样做。

ManifestR 这个工具非常接近:http://westciv.com/tools/manifestR/但有两个问题:

1- 它无法正确处理 CSS 文件中找到的图像文件 URL。例如,如果它找到 url(../images/myimage.png) ,它将直接在 list 文件中添加相对链接 ../images/myimage.png,而不是添加像 www.mysite.com/这样的非相对链接图片/myimage.png。

2-它没有列出通过 dojo.require(AMD 模块)加载的任何脚本。

我正在考虑使用类似的代码来解决这些问题并编译文件列表。我已经知道如何修复#1,但不知道如何修复#2。

那么,使用 JavaScript,我怎样才能找到网站使用的所有脚本 URL 的列表,而不仅仅是那些加载的槽标签(在 window.scripts 对象中找到),还有那些使用 AMD 模块加载的脚本 URL?

基本上,我想编译 Chrome 在“源” Pane 中向我显示的网站的相同列表。

例如:

enter image description here

我在想,如果这在任何地方都不可用,也许我可以为 dojo.require 创建一个代理函数,以跟踪通过 AMD 加载的所有文件。

但我想先问一下,也许我错过了一个已经可以做到这一点的脚本工具?还是我的计划不好?

谢谢

最佳答案

我从未将 ApplicationCache 用于 ArcGIS API for JavaScript 应用程序,但我建议您首先提供 a custom Dojo build of your application为了将您的代码捆绑到一个或多个构建层中。如果正确配置 Dojo 构建(不小的壮举),您应该知道所需的确切脚本。

此外,我怀疑一旦您弄清楚如何获取脚本列表,您可能需要特殊考虑才能让 Dojo AMD 加载器能够使用缓存的文件。请参阅:dojo and the offline application cache

祝你好运。

关于javascript - 查找网站中所有已加载的文件以创建 ApplicationCache list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com