【发布时间】:2010-04-04 01:37:44
【问题描述】:
在我尝试包含来自 JSONP 端点的数据之前,我对缓存的离线应用程序很幸运。这是一个小示例,它从新的 Netflix 小部件 API 加载单个电影:
<!DOCTYPE html>
<html manifest="main.manifest">
<head>
<title>Testing!</title>
</head>
<body>
<p>Attempting to recover a title from Netflix now...</p>
<script type="text/javascript">
function ping(r) { alert('API reply: ' + r.catalog_title.title.regular); }
var cb = new Date().getTime();
var s = document.createElement('SCRIPT');
s.src = 'http://movi.es/7Soq?v=2.0&output=json&expand=widget&callback=ping&cacheBuster=' + cb;
alert('SCRIPT src: ' + s.src);
s.type = 'text/javascript';
document.getElementsByTagName('BODY')[0].appendChild(s);
</script>
</body>
</html>
...这是我的清单的内容,main.manifest,它不包含任何文件,只是为了让我的浏览器知道缓存调用的 HTML 文件。
CACHE MANIFEST
是的,我已确认我的服务器正在使用正确的内容类型 text/cache-manifest 发送清单。
该应用程序运行良好——意味着两个警报都显示——我第一次运行它时,但随后的运行,即使在第 10 行尝试缓存破坏,似乎也试图从缓存中加载脚本查询字符串是什么。我看到显示脚本源的警报,但回调从未触发。
如果我从第 2 行删除清单链接并重置我的浏览器(即 Safari 和 iPhone 模拟器)以清除缓存,它每次都能正常工作。我也尝试过提醒页面中 SCRIPT 标签的数量,它肯定会在所有情况下同时看到现有标签和动态创建的标签。
【问题讨论】:
标签: iphone caching manifest jsonp offlineapps