在IOS上使用JS XMLHttpRequest()获取文件的上次修改日期

时间:2015-02-18 22:33:38

标签: javascript ios angularjs xmlhttprequest

这是我的问题。

我正在开发一个用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我得到了空对象,但是我想知道是否有替代方案,为什么这个对象是被擦拭......

0 个答案:

没有答案