【问题标题】:Cordova App 8.1 Caching HTTP requestCordova App 8.1 缓存 HTTP 请求
【发布时间】:2016-01-26 22:57:52
【问题描述】:

我正在开发一个在 Windows 8.1 上使用 Visual Studio 2015 Cordova 工具的应用程序。目标也是 Windows 8.1。

应用正在缓存 HTTP GET 请求。因此,对同一资源的第二个 GET 请求会返回一个缓存响应。我在禁用网络适配器后进行了测试,我仍然得到缓存结果的响应。

我正在使用 jsforce libray 连接到 salesforce.com。我知道我可以在 url 上添加时间戳,但我想找到解决方法而不是解决方法。

有什么想法吗?

[更新]

问题与 jsforce 无关,因为它在 Android 上运行良好。该错误特定于 Windows 8.1 和 cordova。

【问题讨论】:

  • 我可以确认这个奇怪的问题,期待建议。
  • 您找到解决方案了吗?
  • 否,仍在使用时间戳
  • 你找到任何解决方案了吗..?我遇到了同样的问题。

标签: windows visual-studio cordova caching visual-studio-cordova


【解决方案1】:

正如问题中所建议的,给网址加时间戳有帮助:我使用过:

var url = "https://api.myurl.com/" + param1 + "?" + new Date().getTime()

【讨论】:

    【解决方案2】:

    我编写了一个简单的库来为 Cordova 的 REST 请求添加缓存:https://github.com/glauber-md/mobile-simple-web-call#using-this-library

    该库将使用本地数据库 (sqlite) 来获取服务器数据并在适用的情况下将其缓存在本地(例如,带有缓存相关标头的 HTTP GET 请求)。

    一旦收到 304 响应,就会使用缓存的数据。

    要发送 GET 请求,您可以使用:

    wscall.get(
        'http://myserver.org/users/1234',
        // (Optional) query strings
        null,
        function(responseData) {
            // Do something when the response is successful
        },
        function(error) {
            // Do something when an error happens
        }
    );
    

    然后数据将来自远程服务器或本地缓存,具体取决于 HTTP 服务器响应。

    也许对你有帮助。

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 1970-01-01
      • 2019-11-08
      • 2012-04-05
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多