更进一步
我们希望,之前的章节给了你一个良好的概述,如何构建一个 Meteor 应用。但是,现在你还要去哪里呢?
额外章节
首先,如果你还没有购买本书的话,你可以购买 Full 或 Premium 版本来阅读本书额外的章节。这些章节将引导...
AI君
11个月前 (03-25) 35℃
0喜欢
动画
我们现在有了实时的投票、评分和排名。然而,由于帖子在首页上跳来跳去,导致了跳动不稳的用户体验。我们用动画来平滑这种过渡。
介绍 _uihooks
_uihooks 相对较新,Blaze 文档也未包含该特性。正如其名称所示,它提供了每...
AI君
11个月前 (03-25) 34℃
0喜欢
高级发布机制
目前你应该对发布和订阅交互模式有一个不错的掌握了。因此,我们废话少说,来看几个更高级的情景。
多次发布一个集合
在我们第一个关于发布的附录中,我们看到了一些更普遍的发布和订阅模式,同时我们学习了 _publishCursor...
AI君
11个月前 (03-25) 34℃
0喜欢
投票
现在我们的系统更完善了,但是想要找到最受欢迎的帖子有点难。我们需要一个排名系统来给我们的帖子排个序。
我们可以建立一个基于 karma 的复杂排名系统,权值随着时间衰减,和许多其他因素(很多功能都在 Telescope 中实现了,他...
AI君
11个月前 (03-25) 35℃
0喜欢
分页
Microscope 的功能看起来不错。我们可以想象当它 release 之后会很受欢迎。
因此我们需要考虑一下随着新帖子越来越多所带来的性能问题。
之前我们说过客户端集合会包含服务器端数据的一个子集。我们在帖子和评论集合已经实现了...
AI君
11个月前 (03-25) 35℃
0喜欢
高级的响应性
虽然需要你自己写代码来跟踪依赖变量的情况十分罕见,了解依赖变量的工作流程还是十分必要的。
设想我们现在需要跟踪一下 Microscope上,当前用户的 Facebook 朋友在 “like” 某一篇帖子的数量。 让我们假设我...
AI君
11个月前 (03-25) 36℃
0喜欢
Notifications
现在用户们可以给帖子添加评论了,让他们互相知道讨论已经开始了是个好主意。
我们将通知帖子的作者已经有用户在他的帖子上添加了评论,并且提供一个链接可以看到评论。
这是 Meteor 真正闪光的特性之一:因为 Me...
AI君
11个月前 (03-25) 36℃
0喜欢
非规范化
非规范化数据不存储规范化的数据。换句话说非规范化意味着相同数据的多个拷贝同时存在。
上一章中,我们在帖子中非规范化评论总数,以避免每次都加载所有的评论。在数据建模意义上说这是冗余的,因为我们可以通过计数每个评论,随时计算出该总数...
AI君
11个月前 (03-25) 35℃
0喜欢
评论
社交新闻网站的目标是创建一个用户社区,如果没有提供一种方式让人们互相交流,这将是很难做到的。因此在本章中,我们添加评论!
我们首先创建一个新的集来存储评论,并在该集中添加一些初始数据。
Comments = new Mongo.Co...
AI君
11个月前 (03-25) 34℃
0喜欢
创建 Meteor Package
我们在报告错误的工作中已经创建了可重复使用的模式,为什么不把它打包让 Meteor 社区的其他人都可使用呢?
为了开始,我们需要一个 Meteor 开发者账号。你可以从 meteor.com 申请,但是...
AI君
11个月前 (03-25) 36℃
0喜欢
错误
仅使用浏览器标准的 alert() 对话窗去警告用户他们的提交有错误有那么一点不令人满意,而且显然不是一个良好的用户体验。我们可以做得更好。
相反,让我们建立一个更加灵活的错误报告机制,来更好地在不打断流程的情况下告诉用户到底发生了...
AI君
11个月前 (03-25) 34℃
0喜欢
允许与拒绝
Meteor 的安全系统不需要我们在每次修改数据的时候,在各自的函数里面进行手动检查。
例如,对于一个博客系统,我们常常需要做很多操作,往新帖子上添加属性,当发布帖子的时候进行特定检查。这些操作都是围绕帖子(post)这个对象...
AI君
11个月前 (03-25) 33℃
0喜欢
编辑帖子
上一章,我们已经学会了创建帖子,下面来学习编辑和删除它们。页面的代码非常简单,让我们在这个时候来谈论一下 Meteor 是如何管理用户权限。
让我们先设置我们的路由器,添加一个可以访问帖子编辑页的路径,并设置它的数据上下文:
R...
AI君
11个月前 (03-25) 35℃
0喜欢
延时补偿
在上一章,我们介绍了 Meteor 的一个新概念:内置方法。
Meteor 的内置方法是一种在服务器上执行一系列命令的结构化方法。在示例中,我们使用内置方法是为了确保新帖子是通过作者的姓名和 ID ,以及当前服务器时间去标记。
...
AI君
11个月前 (03-25) 36℃
0喜欢
创建帖子
我们曾经轻松地通过控制台去使用 Posts.insert 来创建帖子并插入到数据库。但我们不可能指望用户去打开控制台来创建一个新的帖子吧?
所以我们需要在用户界面上创建一些表单控件,让用户在我们的 App 上发布一些新的帖子。
...
AI君
11个月前 (03-25) 38℃
0喜欢
响应式
如果说集合是 Meteor 的核心功能,那么响应式可以能让这个核心功能更强大。
集合从根本上改变你的应用程序的数据处理方式。从而不必手动检查数据更改(例如,通过一个 AJAX 调用),再根据这些变化去修改 HTML 页面,Mete...
AI君
11个月前 (03-25) 34℃
0喜欢
添加用户
到目前为止,我们已经以较合理的方式去创建并显示一些静态数据,并将其连接到成一个简单的数据原型。
尽管我们的界面是根据变化的数据进行即时响应的,并且数据的实时插入或更改的都会在界面上得到体现。然而,我们的网站似乎还没有提供用户去修...
AI君
11个月前 (03-25) 35℃
0喜欢
会话
Meteor 是一个响应式框架。这意味着随着数据的变化, App 的改变并不需要你显式地做任何事情。
事实上,我们已经看到过我们的模板是如何根据数据和路由规则的变化去进行改变的。
我们将在后面的章节去深入了解这里面是如何工作的,但我...
AI君
11个月前 (03-24) 35℃
0喜欢
路由
现在,我们已经创建了一个帖子列表页面(最终是由用户提交的),我们还需要添加一个单独的帖子页面,提供给用户评论对应的帖子。
我们希望可以通过固定链接访问到每个单独的帖子页面,URL 形式是 http://myapp.com/posts...
AI君
11个月前 (03-24) 35℃
0喜欢
发布和订阅
发布(Publication)和订阅(Subscription)是 Meteor 的最基本最重要的概念之一,但是如果你是刚刚开始接触 Meteor 的话,也是有些难度的。
这已经导致不少误解,比如认为 Meteor 是不安全的...
AI君
11个月前 (03-24) 34℃
0喜欢