【发布时间】:2014-10-24 03:23:17
【问题描述】:
我正在制作一个流星 js Web 应用程序,它向客户端呈现一个与会话变量绑定的 html 范围滑块。
我希望服务器只发布值小于滑块当前值的数据,数据从最新到最旧排序。我有很多数据库条目(2000+)。如果我在滑块的最大值内发布所有内容,我的浏览器就会太慢。如果我将发布限制为 100 个左右,当我拉下滑块时,我会错过很多值较小的数据(这些数据恰好更旧)。
尝试可扩展性(不向客户端发送太多数据)的最佳做法是什么?反应式发布功能是关键吗(使用 onchange 和滑块值作为关键)?这听起来像很多服务器往返。救命!
【问题讨论】:
-
关于您关于基于客户端会话变量的反应式订阅的问题:这绝对是可能的。这是您的特定情况的示例: Deps.autorun(function () { Meteor.subscribe("yourCL", selectorArgs, Number(Session.get('yourSessVar'))); });流星文档似乎显示了一种名为“Tracker.autorun”的新方法;但是我没有使用它。它声称跳过了浪费的退订/重新订阅
-
我了解其中的订阅部分。每次会话变量更改时,我的发布功能似乎都会重新运行(我通过服务器记录变量)。当我想要...时,我的发布只是不发送数据库的新子集......
-
没有代码,很难猜测。阅读how publish/subscribe works 会有帮助吗?
标签: javascript meteor