【发布时间】:2009-11-10 20:07:46
【问题描述】:
对不起,这个神秘的标题。
我想知道使用 HTML5 清单功能的一个 iPhone webapp 的缓存文件是否可以提供给同一域中的另一个 webapp;就像在 javascript 代码或常见图像徽标的共享库中一样。有人吗?
谢谢,
格雷格
【问题讨论】:
标签: iphone html web-applications manifest
对不起,这个神秘的标题。
我想知道使用 HTML5 清单功能的一个 iPhone webapp 的缓存文件是否可以提供给同一域中的另一个 webapp;就像在 javascript 代码或常见图像徽标的共享库中一样。有人吗?
谢谢,
格雷格
【问题讨论】:
标签: iphone html web-applications manifest
GeoNomad,localStorage 更多地用于存储在应用使用过程中会发生变化的可变数据,而不是初始加载信息。
不是域级别的隔离 强制执行?
当然可以,但是清单中有一个方便的部分可以让您在明确说明时越过这些边界。
NETWORK:
# All URLs that start with the following lines
# are whitelisted.
http://example.com/examplepath/
http://www.example.org/otherexamplepath/
来自Apple。
作为对这个问题的直接回答,要使多个网络应用程序的信息可供彼此使用,只需在每个清单中添加相同的信息(除非检测到数据已更改,否则它们不会重新加载。)
“不同应用程序缓存组中的多个应用程序缓存可以包含相同的资源,例如,如果清单都引用该资源。”
来自WHATWG
【讨论】:
我猜如果您访问相同的 URL,它会首先在缓存中查找,但不能以任何权限说。为什么不试试呢?它可能需要在两个应用程序的清单中,这可能会导致不可预知的结果。我也会担心新版本的 Safari 会改变行为。
但是,可以使用 localStorage。您可以序列化几乎任何内容并将其保存在 localStorage 变量中,以供来自同一域的其他 webapps 使用。唯一的限制是每个域±5MB(我认为)。
这导致了一个重要的警告:
请勿在多个 web 应用程序/网页中使用相同的 localStorage.variablename,除非您希望这两个应用程序都可以更改该值。如果您无意中这样做,预计会出现拉扯支撑问题。
【讨论】: