use*_*701 9 html html5 manifest
我正在尝试使用简单的html5网络摄像头.
这是我唯一的html页面,index.html:
<!DOCTYPE HTML>
<html manifest="./main.manifest">
<body>
<p>Hi.</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我唯一的缓存文件,main.manifest:
CACHE MANIFEST
# 2011-05-02-03
index.html
Run Code Online (Sandbox Code Playgroud)
我正在运行apache共享主机,我在我的web目录中放了一个.htaccess文件,这些其他两个文件都是,因为我想也许我必须定义mime类型:
AddType text/cache-manifest .manifest
Run Code Online (Sandbox Code Playgroud)
所以最后我只在这个目录中有这三个文件:
index.html
main.manifest
.htaccess
Run Code Online (Sandbox Code Playgroud)
当我从我的mac访问chrome页面,从我的iphone访问chrome,或从我的android 2.3设备访问chrome时,没有任何反应,页面像往常一样加载.如果我打开飞行模式(杀死所有连接),则无法加载页面(所以我猜缓存失败).
我在这里错过了什么?
谢谢
------------更新------------------
我认为mime类型没有被正确识别.我将.htaccess更新为:
AddType text/cache-manifest manifest
Run Code Online (Sandbox Code Playgroud)
现在,如果我在控制台上运行谷歌浏览器,我会看到:
Document was loaded from Application Cache with manifest
http://example.com/foo/main.manifest
Application Cache Checking event
Application Cache NoUpdate event
Run Code Online (Sandbox Code Playgroud)
当我加载关于想要让我将它存储到磁盘的网站的页面时,Firefox会提示我,所以这很好.看起来它也在使用android 2.3.4.浏览器仍然显示"由于您没有连接到互联网,因此无法加载此页面",但无论如何它都会加载.
谢谢!
首先,你是第一次使用mime类型声明.它应该是这样的:
AddType text/cache-manifest .manifest
Run Code Online (Sandbox Code Playgroud)
接下来,阅读Dive Into HTML5中的这一段:
问:我是否需要在缓存清单中列出我的HTML页面?
答:是的,不是.如果整个Web应用程序包含在单个页面中,请确保该页面使用manifest属性指向缓存清单.当您导航到具有清单属性的HTML页面时,页面本身被假定为Web应用程序的一部分,因此您无需在清单文件本身中列出它.但是,如果您的Web应用程序跨越多个页面,则应列出清单文件中的所有HTML页面,否则浏览器将不知道还有其他需要下载和缓存的HTML页面.
因此,在这种情况下,您不需要缓存清单.浏览器将自动缓存您的页面(只要它是唯一的资源,例如CSS文件或Javascript文件).
有关更多信息,请访问上面的链接.