0

在最新的 Meteor 版本 0.5.9 中,我一直在试验 appcache 包,并且非常喜欢它的功能。

我使用meteor create --example leaderboard然后meteor add appcache来测试行为,并且页面甚至在服务器根本没有运行时加载!超酷!

但是,数据库好像没有缓存?当服务器未运行时

Players.find().fetch()

返回

[]

这对我来说非常棒,因为我正在制作一个笔记应用程序,其中笔记也需要离线使用。我是否遗漏了某些东西,或者是否有其他方法可以在离线时获取数据库数据?

4

2 回答 2

2

查看用于此用途的 Ground:DB 包。这个包使订阅集合的客户端缓存。

https://atmospherejs.com/ground/db

将由 Meteor 订阅填充的集合示例(需要单独调用订阅)

localCollection = new Ground.Collection('mongoName');

断开连接的集合示例(因此您必须自己填充它)

disconnectedCollection = new Ground.Collection('localName', {connection:null} );
于 2015-04-13T14:03:16.470 回答
1

appcache 包不会缓存您的数据。请参阅文档

appcache 包将 Meteor 应用程序的静态部分(客户端 Javascript、HTML、CSS 和图像)存储在浏览器的应用程序缓存中。

[...]

(但请注意,appcache 包本身并不能使数据离线可用:在离线加载的应用程序中,客户端中的 Meteor 集合将显示为空,直到 Internet 可用并且浏览器能够建立 livedata 连接) .

此时,appcache 包纯粹是为了通过缓存静态资源来提高应用程序的加载速度。见流星维基

appcache 包仅用于缓存静态资源。作为“应用程序”缓存,它缓存应用程序所需的资源,包括在 public/ 目录下发布的 HTML、CSS、Javascript 和文件。

于 2013-03-18T14:00:04.060 回答