这是我的问题。
我正在开发一个用Angular和NOT jQuery编写的webapp,用于需要每周使用新数据集刷新其数据库的客户端。所以他们选择使用SQLite3,因为他们可以将新数据库放入一个文件夹,销售代表可以在每个星期一下载这个数据库文件。但是有一系列数据被缓存在localStorage上,一旦iPad检查数据库文件就需要刷新这些数据,如果是新文件则返回true。所以,我正在使用XMLHttpRequest()检查头部的“Last-Modified”日期,它在Chrome和Safari上工作得很好,但是一旦我构建应用程序并移动到iPad,Last-Modified日期将返回null。我在网上到处搜索,试着找出可能出错的地方,但我找不到任何满意的答案:
我正在使用的代码是
var dbPath = "db/myDb.sqlite";
var getMTime = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('HEAD', dbPath, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var mtime = new Date(xhr.getResponseHeader('Last-Modified'));
if (mtime.toString() === 'Invalid Date') {
callback(); // dont want to return a bad date
} else {
callback(mtime);
}
}
}
xhr.send();
};
提前感谢您的帮助
更新
看起来IOS WebView擦除了HEAD对象的响应...所以,这就是为什么通过运行xhr.getResponseHeader
我得到了空对象,但是我想知道是否有替代方案,为什么这个对象是被擦拭......