iPad上的应用程序缓存将不缓存数据的网站或页面(Application Caching on iP

2019-08-23 01:40发布

我运行一个DHTML页面,并希望缓存被引用的HTML,PHP文件和图像文件。

我在WWW.sitename.COM/sub-dir/以下所有文件

的.htaccess

AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
AddType text/cache-manifest .manifest
AddHandler server-parsed .html
AddHandler application/x-httpd-php .html .htm 

cache.manifest

CACHE MANIFEST

# Cache manifest version 0.0.00002

NETWORK:

CACHE:

http://WWW.sitename.COM/sub-dir/index.html
http://WWW.sitename.COM/sub-dir/this.php
http://WWW.sitename.COM/sub-dir/images/first.png
http://WWW.sitename.COM/sub-dir/images/second.png

FALLBACK:

在THIS.PHP文件HTML清单参考...

<html manifest="http://WWW.sitename.COM/sub-dir/cache.manifest">

脚本检测缓存活动

<script type="text/javascript">
var cacheStatusValues = [];
cacheStatusValues[0] = 'uncached';
cacheStatusValues[1] = 'idle';
cacheStatusValues[2] = 'checking';
cacheStatusValues[3] = 'downloading';
cacheStatusValues[4] = 'updateready';
cacheStatusValues[5] = 'obsolete';

var cache = window.applicationCache;
cache.addEventListener('cached', logEvent, false);
cache.addEventListener('checking', logEvent, false);
cache.addEventListener('downloading', logEvent, false);
cache.addEventListener('error', logEvent, false);
cache.addEventListener('noupdate', logEvent, false);
cache.addEventListener('obsolete', logEvent, false);
cache.addEventListener('progress', logEvent, false);
cache.addEventListener('updateready', logEvent, false);

function logEvent(e) 
{
var online, status, type, message;
online = (navigator.onLine) ? 'yes' : 'no';
status = cacheStatusValues[cache.status];
type = e.type;
message = 'online: ' + online;
message+= ', event: ' + type;
message+= ', status: ' + status;
if (type == 'error' && navigator.onLine) 
{
    message+= ' (probably a syntax error in cache.manifest)';
}
console.log(message);
}



window.applicationCache.addEventListener(
'updateready',
function(){
    window.applicationCache.swapCache();
    console.log('swap cache has been called');
},
false
);

setInterval(function(){cache.update()}, 10000);

</script>

控制台报告说,没有什么是被缓存。

任何及所有帮助感激地接受。

谢谢。

Answer 1:

经过大量的研究,答案是...

  1. 不包括持有该网页的名称

    HTML清单= “cache.manifest”

    标签在cache.manifest文件。

  2. 确保cache.manifest文件只使用相对URL不是绝对的。

  3. 确保在任何系统软件更新后,你的iPad已经至少重新启动一次。

  4. .htaccess文件中正确的MIME类型的清单文件

    将AddType文本/缓存清单.manifest的

由于在dev.bjorn.com/723比约恩帮我那里......一个好的博客文章值得一读。



文章来源: Application Caching on iPad will not cache website data or pages