jquery - 如何检查本地托管网页的新版本?

标签 jquery cordova compare

我有一个用 HTML/jQuery 编写的程序,驻留在本地计算机上,需要在发布更新时通知用户。

我认为该程序可以将本地文件(local_version.txt 或其他文件)与远程文件(remote_version.txt)进行比较,如果远程文件包含更高的值,则会向用户显示通知。但是,如果用户未连接到互联网,则该功能必须正常失败并且不显示通知。

这是迄今为止我的代码:

setTimeout(function () {
    $('.updateNotification').show().addClass('heightener');
    callback();
},2000)

function callback() {
  setTimeout(function() {
    $( '.updateNotification' ).fadeOut();
  }, 10000 );
};

我的第一个想法是只比较 2 个 DIV(一个本地加载,另一个远程加载),但是该程序显示在用户计算机上的 Web View 中(Xcode/VB/PhoneGap,基于平台),所以我不能使用 PHP。我希望有一个基于 jQuery 的解决方案。

最佳答案

您可以使用localStorage(甚至是cookie)来存储版本号并将其与AJAX请求进行比较。像这样设置版本:

localStorage.setItem('version', '0.8');

然后发出 AJAX 请求并比较版本号。

这是我的示例 version.json 文件:

{"version":0.9}

这是我的要求:

$.getJSON('/version.json', function(response){

  var localVersion = +localStorage.getItem('version'),
      remoteVersion = response.version;

  if( localVersion < remoteVersion ) {
    /* Sweet update action! Isn't the awesome thing about the web that we don't have to "update" anything though? */
  }

});

localStorage.getItem('version') 之前的 + 将其转换为数字而不是字符串,以便我们可以安全地比较它们。 localStorage 将所有内容存储为字符串,我认为这很糟糕,但我确信比我聪明得多的人有充分的理由这样做。

关于jquery - 如何检查本地托管网页的新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357264/

相关文章:

javascript - Bootstrap 弹出窗口焦点不起作用

javascript - 在 phonegap 中处理后退和菜单按钮

swift - 是否可以将 Enum 值与 'if' 语句进行比较?

javascript - 获取 jQuery 和/或 DOM 对象的 HTML 字符串

jquery - 如何根据复选框选择显示或隐藏容器内的 div

ios - Phonegap 3.0 iOS 通用推送插件

javascript - 如何处理项目点击从 ng-repeat 生成的列表并加载下一页

javascript - CoffeeScript : Best way to find a structure entry in an array

swift - 如何在 Swift 中比较 UIColors

javascript - 如何使用AJAX在不刷新页面的情况下获取新添加的数据