首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5离线奇怪行为

HTML5离线奇怪行为
EN

Stack Overflow用户
提问于 2012-01-04 10:18:53
回答 1查看 333关注 0票数 0

我有一个问题,一个web应用程序,我正在工作,我已经张贴了一个问题here,这是有点模糊,可能不是很有帮助。我已经决定创建一个非常基本的网站,并将其构建成一个主应用程序,看看它会在哪里崩溃。我已经这样做了,并立即陷入离线缓存。

这是IIS7.5中本地托管的基本3页静态网站。我创建了文件夹c:\inetpub\wwwroot\ManifestTesting,将其作为web应用程序添加到IIS中,并为.appcache扩展添加了一个新的MIME类型的文本/缓存清单。我还使用FireFox 9.0进行测试,因为它具有脱机模式功能。

我创建了3个html页面并将它们添加到ManifestTesting文件夹中:

page2.htm

  • page1.htm
  • index.htm --该页面包含两个指向页面1.htm和
  • 的链接--只包含一个标头,上面写着第1页
  • 页面2.htm--只包含一个标头,显示第2页

所以现在,如果我浏览到http://localhost/manifesttesting,如果得到索引页面,可以导航到2页。

然后我创建了一个名为manifest.appcache的文件,并将其添加到ManifestTesting文件夹中:

代码语言:javascript
复制
CACHE MANIFEST

CACHE:
index.htm
page1.htm
page2.htm

并在index.htm中添加了对清单文件的引用:

代码语言:javascript
复制
<html manifest="manifest.appcache">

因此,如果我清除所有历史记录并浏览到index.htm,FireFox会询问是否允许该网站存储数据以供脱机使用。我单击“允许”,将浏览器切换到脱机模式,然后尝试导航到page1.htm,这很好!到目前为止一切都很好。

现在我不明白的是。然后,我在ManifestTesting文件夹中创建了一个名为“pages”的新文件夹,并将page1和page2移动到其中。我更新了索引中的链接以引用新的位置,如果我在没有清单引用的情况下浏览该网站,它就会像以前一样正常工作。然后,我在索引中重新引用清单文件,并更新清单如下:

代码语言:javascript
复制
CACHE MANIFEST

CACHE:
index.htm
pages/page1.htm
pages/page2.htm

然后我清除历史,刷新,火狐要求允许网站存储离线数据,启用离线模式,然后尝试导航到page1 -它不工作!FireFox告诉我,它处于离线模式,无法浏览网页!

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2012-11-08 04:55:40

这里可能有几种可能性:

( 1)你能试着用"/pages/page1.htm“代替”page/page1.htm“吗?

2)还要确保浏览器上的所有链接和键入的内容都区分大小写。(“pages/page1.htm”与“page/page1.htm”不一样)

3)你提到你清理了历史.如果您这样做是为了测试,您也需要清除物理文件缓存,而不仅仅是历史记录。

4)这可能是最可能的原因:当您对清单文件进行更改并刷新浏览器时,就会发生这种情况(假设您在线)。

  • 浏览器首先加载缓存
  • 中的所有文件,然后浏览器在线检查清单文件
  • 它检测到清单文件已更改,然后它将继续下载新文件
  • ,但是此时,您仍将查看您的“旧文件”,因为浏览器在联机下载‘新文件’

<代码>H19之前已经加载了旧文件,如果此时再次刷新(第二次),您应该获得“新文件”(并且您将能够在离线page1和page2之后访问)。

这是目前的标准行为。有些人会放置一些事件处理程序来提示用户进行另一次刷新(在第一次刷新之后)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8725162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档