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

标签 javascript json http

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

为了避免带宽浪费,我想在不下载整个远程数据的情况下进行版本检查。只是检查标题...我想... 在寻找解决方案时,我发现有些人像 this thread 中那样谈论“HTTP ETag header”

有人知道我如何在纯 Javascript 中实现类似的东西吗?

提前致谢。

最佳答案

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

304 - 未修改您可以使用类似的内容检查更新

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();
}

关于javascript - 检查远程 JSON 是否比本地 JSON 新,而无需在 Javascript 中下载整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23394784/

相关文章:

javascript - onClick 不会触发,chrome/safari

javascript - 如何在div中调用远程页面?

javascript - "stacked"上的 `translate()` 转换偶尔会卡顿 (v4.0.0-alpha40)

javascript - 显示使用 PHP 和 MySQL 创建的 JSON 数据

android - 从 Android 应用程序读取 HTML 源代码

javascript - 数组中的随机 Google map 标记

c# - 在默认构造函数中初始化的 JSON.Net 集合未被反序列化的 JSON 覆盖

java - 比特币矿池挖矿的地层连接

java - JAVA 中带有 JSON 字符串的 HTTP POST 请求不起作用

php - 发送http响应后继续处理php