HTML5应用 - 每次都避免下载?

时间:2014-07-03 23:35:12

标签: html5

我正准备开发HTML5应用程序。这不是游戏,但为了讨论,我们称之为一个简单的游戏。

我们说我在我的网络服务器上托管应用/游戏。

用户点击我的网络服务器,下载游戏(可能需要几秒钟,一分钟?),向服务器发送高分,放在排行榜上。

明天用户回来再想玩。用户是否需要再次下载游戏?

或者,这是否可以使用缓存清单来阻止重新下载?

并且,如果他们不必每次都下载整个内容,如果我想要对游戏进行更新,我该如何下载?

1 个答案:

答案 0 :(得分:5)

浏览器缓存

如果您什么都不做,浏览器会在第一次遇到它们时下载并缓存应用程序使用的任何静态文件的副本。这是自动的,文件存储在浏览器缓存中。

下次应用程序请求文件时,浏览器会向服务器发送请求,并包含已有的副本的日期和时间。如果服务器上的文件已更改,则将提供新副本。如果没有,服务器将使用304代码进行响应 - 未修改,浏览器将使用其现有副本。在这种情况下,请求始终发送到服务器,但只有在文件被更改时才下载文件。

您可以将服务器配置为向静态文件添加到期日期。浏览器仍像以前一样在本地缓存文件,但在下一次访问时,浏览器会检查与其已有的副本一起发送的到期日期。如果该日期尚未通过,则不会向服务器发送请求。现在,您已经保存了每个引用缓存文件的请求的往返时间。

清单

清单的工作方式不同。下载初始文件时,将读取缓存清单,并且下载其中列出的每个文件(除了取决于清单内容的某些特定异常),并将其存储在应用程序商店中。通常,这需要用户允许其发生。

在后续访问中,从服务器请求清单文件。如果清单没有更改,则不会执行任何操作,并且应用程序将从存储在应用程序商店中的文件加载并运行。

如果清单以任何方式更改了 ,则新清单将用于下载和更新现有的应用商店文件。

利弊

浏览器缓存

  • 对于
    • 自动&透明
    • 大部分免维护
    • 无需下载或检查许多文件
    • 新文件的分发可能会延迟
    • 申请必须在线运行

清单

  • 对于
    • 应用程序可以脱机运行
    • Manifest可以很好地控制更新分发
    • 使用应用商店通常需要用户权限
    • 需要进行额外维护才能更新清单。