检查远程JSON是否比本地JSON更新,而无需在Javascript中下载整个文件

时间:2014-04-30 17:47:59

标签: javascript json http

我正在创建一个Phonegap应用程序,用于检查本地JSON是否是最新的,将其与上一个远程版本进行比较。如果远程版本比本地版本新,则程序将更新本地JSON。

为避免带宽浪费,我想在不下载整个远程数据的情况下进行版本检查。只是检查标题......我猜...... 寻找解决方案我发现有些人在this thread

中谈论“HTTP ETag标题”

有人知道我怎么能在纯Javascript中实现类似的东西?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您的服务器发送正确的响应类型

304 - Not modified您可以查看类似此内容的更新

function hasUpdate(url, callback)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url);
    http.onreadystatechange = function() {
        if (this.readyState == this.DONE) {
            if (this.status === 200) {
              // Data is new -- maybe do another request and grab a copy?
            } else  if (this.status === 304) {
              // Data is not modified
            } else {
              // Something else happened.
            }

        }
    };
    http.send();
}