代码之家  ›  专栏  ›  技术社区  ›  Toby Hede

disqus是如何工作的?

  •  9
  • Toby Hede  · 技术社区  · 14 年前

    有人知道怎么做吗 disqus 作品?

    它管理博客上的评论,但这些评论都是在第三方网站上发布的。似乎是跨站点通信的一种巧妙使用。

    7 回复  |  直到 9 年前
        1
  •  8
  •   Community Lee Campbell    7 年前

    使用的一般模式是 JSONP

    它实际上是以相当复杂的方式实现的(至少在jquery站点上是这样)。它们推迟disqus.js和thread.js文件的加载,直到用户滚动到comment部分。

    thread.js文件包含注释的JSON内容,这些内容在加载后呈现到页面中。

        2
  •  2
  •   davidchambers    14 年前

    在向网站添加disqus评论时,有三个选项:

    集成解决方案的主要优点是易于设置。例如,在WordPress中,它就像激活插件一样简单。

    具有与API直接通信的能力非常有用,与其他选项相比具有两个优势。首先,它让您作为开发人员完全控制标记。其次,您可以在服务器端处理注释,这可能是更好的选择。

        3
  •  2
  •   equeny    13 年前

    看起来像是用 easyXDM 库,它使用当前浏览器与其他站点通信的最佳可用方式。

        4
  •  2
  •   machinery    9 年前

    引用Anton Kovalyov的(disqus前工程师) answer 在另一个对我很有帮助的网站上回答同样的问题:

    disqus是一个第三方的javascript应用程序,运行在您的浏览器中,并在发布者的网站上注入自己。这些发布者需要安装一小段javascript代码,以便向我们的服务器发出第一个请求并加载初始的javascript加载程序。然后,这个加载程序创建所有必需的iframe元素,从我们的服务器获取数据,呈现模板,并将结果注入到页面上的某个元素中。

    正如您可能猜测的那样,有很多不同的技术支持看似简单的操作。在后端,您必须运行和扩展一个巨大的Web应用程序,它可以处理数百万个请求(大部分是读取的)。我们使用python、django、postgresql和redis(用于实时服务)。

    在前端,你必须最小化你的有效负载,确保你的应用程序是超快速的,并且它不会在极端恶劣的环境中崩溃(你会惊讶于出版商网站是多么的糟糕)。跨域通信也可能很棘手,因为跨域通信能够从主机网站向服务器发送消息。

    不幸的是,在对Quora的评论中,甚至是在一篇文章中,都不可能解释一切是如何工作的。因此,如果你对Disqus的后端感兴趣,只需学习如何编写、运行和操作高度可扩展的网站,你就会成为黄金。如果你对前端感兴趣,我和本·醋(两个都是DISQUS的前端工程师)写了一本关于第三方javascript的书。( http://thirdpartyjs.com/ )

    我打算读他提到的那本书,我想它会很有帮助的。

    这里还有一个 link 在disqus网站上正式回答这个问题。

        5
  •  0
  •   John    14 年前

    简短答案?Ajax,你有自己的网址,比如“site.com/?comments=id“通过javascript包含…但是有了这样的实时更新,您将需要一个轮询服务器。

        6
  •  0
  •   Val Neekman    14 年前

    我认为他们会将内容保存在自己的网站上,而您的网站只会向Disqus发送和接收数据。现在我想知道,如果你决定在不丢失所有现有评论的情况下把你的评论带到内部会发生什么!.我想知道,您获取数据有多容易?他们声称这些数据属于你,但他们有控制权,而且他们的网站上对此没有太多的解释。

        7
  •  0
  •   plumbing    13 年前

    我总是在Disqus平台上发表评论。有时候,当您刷新评论时,它似乎会被删除,有时候则不会。我认为被移走的那一个被保留下来是为了缓和而没有说出来。