Meteor的Appcache也可以存储数据库数据吗?

时间:2013-03-18 13:56:15

标签: meteor html5-appcache

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

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

但是,数据库似乎没有被缓存?服务器未运行时

Players.find().fetch()

返回

[]

这对我来说是一个非常明显的障碍,因为我正在创建一个笔记应用程序,其中笔记也需要离线使用。我是否遗漏了某些内容,或者是否有其他方法可以在离线时获取数据库数据?

2 个答案:

答案 0 :(得分:2)

查看Ground:DB Package以供此用途。该软件包使客户端缓存订阅集合。

https://atmospherejs.com/ground/db

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

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

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

disconnectedCollection = new Ground.Collection('localName', {connection:null} );

答案 1 :(得分:1)

appcache包不会缓存您的数据。见the docs

  

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

     

[...]

     

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

此时,appcache包纯粹是为了通过缓存静态资源来提高应用的加载速度。请参阅meteor wiki

  

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