【问题标题】:storing ajax api calls in cache using HTML5使用 HTML5 将 ajax api 调用存储在缓存中
【发布时间】:2015-07-30 07:49:42
【问题描述】:

我有一个移动网站,其中有一个可以离线查看的页面,我知道manifest,并在其中添加了所需的资源。

现在我还想缓存从数据库中提取的数据,为此我有一个网络API,它从数据库中提取内容,我在我的网络应用程序中使用@987654325 调用该网络API @。

以下是我尝试过的代码:

CACHE MANIFEST
#version 1

css/styles.css
js/script.js
js/libs/jquery-1.5.2.min.js
js/libs/underscore-min.js

谁能把我带到正确的道路上来做这件事。

【问题讨论】:

  • 本地存储,也许?
  • 它是存储数据库内容(例如:用户列表)的安全方式吗,因为随着时间的推移它会增加,我读到 localstorage 只支持 5MB 的数据,是不是因为用户太少了基数增加,还有其他选择吗?
  • Indexdb 将满足您的需求,尽管对移动设备的一般支持是渐进式的,但可以实现——caniuse.com/#feat=indexeddb -

标签: jquery ajax html jquery-mobile html5-appcache


【解决方案1】:

还有另一种方法。

假设您的 api 请求的 URL 以 /api/*/* 开头,您可以将此路径的客户端缓存设置为很长的持续时间。因此,当您离线时,您的应用程序将从浏览器缓存中选择数据。对于在线模式,您必须将缓存破坏者附加到 URL。例如/api/*/*?<timestamp>。这应该会减少您必须实现从 localStorage 保存/读取的逻辑量,并在数据发生变化时更新 localStorage 值而不是保存到服务器。

【讨论】:

    【解决方案2】:

    是的,确实,本地存储仅适用于少量数据。

    你可以试试IndexedDB API。 不过,请留意browser support

    编辑

    有一些针对旧版浏览器的 shim,例如 this one。它默认为 WebSQL,几乎是 well supported。不过,很高兴注意到 WebSQL 已被弃用。

    【讨论】:

    • 浏览器支持非常少,尤其是对于移动浏览器,它太局限于特定版本,我们是否可以将 json 请求存储在文本文件中并在读取时进行字符串化,在 Web 应用程序中是否可能.
    • 有可能,但您需要连接到服务器,而这需要互联网连接。
    • 文件不会在服务器上,只会在用户手机上,网站只能从移动平台访问。
    • 如果是这样的话,选择原生应用程序而不是网站不是很划算吗?或者,如果本机应用程序不值得努力,那么 CordovaMeteor 呢?这样,您可以在第一次下载所需的所有数据,然后如果没有互联网,您可以将请求排队到服务器。
    猜你喜欢
    • 2020-02-27
    • 2012-10-04
    • 2014-08-30
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2013-05-12
    • 2014-12-22
    相关资源
    最近更新 更多