Web 应用中最常见的功能之一是订阅功能。
- 大多数新闻网站或博客都有 RSS Feed,这使得
用户能够订阅他们喜欢的阅读器中的即将发布的文章和帖子。 - 诸如 Twitter、Tumblr 或 Instagram 等社交 Web 应用允许你关注其他用户。
- Github 允许你关注项目以了解新的代码更改。
RSS Feed 复杂
不幸的是,订阅体验并不令人满意:对于普通 Web 用户来说,订阅阅读器中的 Feed 非常困难。首先,他们必须在页面上找到 Feed,然后,在阅读了神秘的 XML 代码后,他们必须将 URL 复制并粘贴到他们选择的阅读器中。当我们考虑到大多数人甚至不知道 URL 是什么时,我们就知道这种体验永远不会成为主流。
集中化很容易
另一方面,在 Twitter 上关注他人或关注新的 Tumblr 博客实际上非常容易。我们实际上认为,这些平台之所以成功,是因为它们确实简单易用且效果非常好。但这种易用性源于这些平台是集中的:你需要成为 Twitter 用户才能订阅其他 Twitter 用户。
然而,这从来都不是 Web 的真正精神:你不需要是 Gmail 用户才能向另一个 Gmail 用户发送电子邮件。
浏览器作为中间人
当我们决定解决订阅问题时,我们必须找到一个既能拥抱我们喜爱的去中心化 Web,又能像按钮一样简单,用户只需点击即可使用的解决方案。
自己试试
我们采用的方法是解耦订阅 Web 应用和发布 Web 应用,方法是使用浏览器及其localStorage作为中间人,并使用一组重定向和 iframe 将订阅者发送到其喜欢的阅读器。
当你点击上面的按钮时,你的浏览器将从Subtome加载一个 iframe,此 iframe 将从 localStorage 实例中提取你的数据,其中包含你喜欢的订阅应用程序列表。iframe 还跟踪加载它的页面。
最终,当你选择其中一个应用时,浏览器会打开一个新窗口并提供正确的信息,然后瞧!
代码
实现实际上出奇地简单。当你点击按钮时,将加载以下代码。它只是提取 Feed,然后加载一个 iframe,该 iframe 将显示用户的首选服务。iframe URL 包含 Feed 以及点击按钮的页面的 URL。
iframe 从subtome.com
域名加载,这意味着它可以访问用户的专用 localStorage 实例。
给定用户的“阅读器”注册使用相同的模式:加载一个隐藏的 iframe,并将有关该阅读器的信息存储在用户的 localStorage 实例中。请随时查看Github 仓库上的源代码。
Web 活动?
当然,你们中的一些人可能会担心这使用了在Subtome上运行的应用程序。这完全正确,只是这个应用程序实际上只是一个在亚马逊 S3 上运行的静态 HTML 页面:没有 Web 应用程序。此外,完整代码是开源的,并在github上公开。
现在,最近,Firefox 采用了Web 活动。为什么我们不能使用它?第一个原因是这个规范仅由 Firefox 实现,这排除了其余的 Web。第二个原因是我们预计大多数阅读器还没有实现它。这意味着目前需要某种“垫片”来代表他们完成这项工作!
开始吧!
对此感兴趣?如果你是发布者,你可以做的事情最简单的事情是开始在你的网站或博客上添加这样的按钮。请记住,订阅你博客的人往往会更多地阅读你的文章,并且更频繁地返回。
如果你创建了一个阅读器,你也许可以在 Subtome 上注册,以便你的用户更容易订阅在线内容。这很容易做到!
最后,这是一个非常早期的项目,如果你想了解更多信息,请查看Subtome 网站。我们很乐意收到你的反馈!。
关于 Julien Genestoux
Superfeedr 不辞辛劳的管家、助手、知己和替代父亲形象。
关于 Robert Nyman [荣誉编辑]
技术布道师和 Mozilla Hacks 编辑。发表关于 HTML5、JavaScript 和开放 Web 的演讲和博客文章。Robert 是 HTML5 和开放 Web 的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还经常在http://robertnyman.com上发布博客文章,并且喜欢旅行和结识新朋友。
17 条评论