【发布时间】:2015-11-18 07:07:51
【问题描述】:
我正在寻找最高效的解决方案,用于根据请求在 Meteor 框架中向客户端发送结构化数据。
问题: 有时,在将数据从数据库发送到客户端之前,您希望添加一些服务器端生成的附加信息,这些信息正在发送到客户端(即许多对象的安全凭证)。此数据可能是时间关键的(即由于过期时间戳),因此不应存储在数据库中。此外,有时无法在客户端处理此数据(即由于安全原因)。在许多情况下,这些数据在结构上与实际数据库数据相关,但也与单个请求密切相关,因为您可能希望将其丢弃并在新请求中重新生成。
你可以(至少在设计上......):
-
创建第二个集合,在那里存储和发布与请求相关的数据,接受写入开销,然后在
Meteor.myTemplate.destroyed=function(){...}中再次删除数据,接受另一个写入开销。 将每个条目存储在会话变量中,但是您还必须小心 稍后删除它(
Meteor.myTemplate.destroyed=function(){...}),这是我现在最喜欢的,但我在存储大对象时遇到了问题。- 将此数据存储在 dom 中(即在隐藏或可见元素的属性或数据字段中)
- 通过在 dom 中存储适当的
arguments并使用callback(){...}中的 jQuery 将它们注入回来,使用Meteor.call('method',arguments,callback(){...})从 dom 生成此数据。
你不能:(按设计!!)
- 在服务器上的
Meteor.publish("name",function(){...})中使用转换 - 在
Template.variable=function(){return collection.find(...)}上的转换中使用Meteor.call()(如果您在客户端上有相应的Meteor.method()来猜测结果,也不要这样做!)。
同样,我正在寻找的是性能最佳的解决方案。
【问题讨论】:
标签: javascript performance meteor