Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

【Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

作者头像
宋凯伦
发布于 2018-07-31 06:27:52
发布于 2018-07-31 06:27:52
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

  目前正在开发自己的网站,技术上使用Angular JS + Express JS + Mongo DB。由于网站会有文章发布,因此需要有评论功能。评论功能也可以自己开发,但由于现在社会化评论插件很多,因此没有必要多花精力,使用专业的就好。

1. 什么是社会化评论插件?都有哪些常用的插件?

  社会化评论插件,指的就是无需自己开发评论功能,在自己网页上使用第三方的评论框,发出的评论将被保存在第三方的服务器上。使用时要在插件提供方官网上注册,注册好之后可获取实现功能的JS代码,以及将来可在官网上管理自己网站的评论。

  实现的原理,一般都是插件网站提供给你一段JS代码,你插入到需要评论的网页上即可。

  目前常用的评论插件有:

A. Disqus

    官网:https://disqus.com/

    这个应该是最老的,在国外使用最多的第三方评论插件。优点是老牌专业,通过JS代码可发现,国内很多网站的功能实现应该是参考了它。但缺点同样明显,就是国内的网站使用,访问速度个人感觉往往不好,加载有些慢。另外对国内的社交网站支持不好,仅支持Facebook,Twitter等,不支持微博等,这对访客的评论带来不便。

    并且i18n对中文的支持不好,网站上提供了中文版选项(它是依赖网友们的贡献提供多语言版本),但是我试了发现不能起作用。

    因此考虑到以上缺点,我放弃了它。

B. 多说

    官网:http://duoshuo.com/

    它和有言应该是国内使用较多的评论插件。优点是使用很方便,支持微博等国内社交网站账户登录。但缺点是使用过程中我感觉它的Bug还是不少,同时在其网站讨论版中,可以看到,提出问题的网友很多也很活跃。比如我发现了一个严重的问题,也有一些网友提出,就是有时候必须手动再刷新一次页面,才能显示评论框。这个问题后来采用了它的动态加载方式才得以解决。

    经过对比,比较,我最后选择的就是多说。

C. 有言

    官网:http://www.uyan.cc/

    和多说很像,我没有使用它的原因是,发现在使用时它会抛出Javascript error,导致评论框不能显示。因此多次调试没有解决问题后,我选择了放弃。

2. 如何在Angular JS中正确使用评论插件?

这里我还有一个需求,就是每篇文章都能讲评论区分开,也就是每篇文章显示自己的评论,评论不能串,或都显示一样。针对这个功能,其实每种插件都会提供线程Thread的概念,这个功能是指针对不同Thread ID的页面加载不同的评论。

  以多说为例。

  这里使用的是多说插件的动态加载方式,标准代码可参见官网:http://dev.duoshuo.com/docs/50b344447f32d30066000147。

  在标准代码中,有一个通用的Javascript方法,如果我有多个页面,那么这段代码就需要复制多次。但在Angular JS中没有必要,Angular JS提供了Directive,即自定义标签的功能,可定义一个directive,在每个页面引用即可。

directive.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 myApp.directive("comment", function() {
 2     return {
 3         restrict: 'A',
 4         link: function(scope){
 5             // get the variable from controller
 6             var article_id = scope.article_id;
 7             
 8             var data_thread_key = 'article_' + article_id;
 9             var data_url = 'article_' + article_id;
10             var data_author_key = 'http://blogtest.com/#!/article.html/' + article_id;
11             
12             // dynamic load the duoshuo comment box
13             var el = document.createElement('div');//该div不需要设置class="ds-thread"
14             el.setAttribute('data-thread-key', data_thread_key);//必选参数
15             el.setAttribute('data-url', data_url);//必选参数
16             el.setAttribute('data-author-key', data_author_key);//可选参数
17             DUOSHUO.EmbedThread(el);
18             jQuery('#comment-box').append(el);
19         }
20     };
21 });

  在这里我用每篇文章的article id来做评论插件的thread id,保证每篇文章的评论都分开。同时使用Directive的另一个好处是,directive里的JS方法,可以访问controller中的scope变量,如果你是和我一样在controller动态获取文章,那么就很方便在directive中拿到文章ID。

page.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 <div id="comment-box"></div> 
2 <div comment></div>

  在html页面中两行代码就足够了。comment就是指我们自定义的Directive插件。

  由此可以看到评论插件的效果如下:

3. 小结

  在使用与选择各种评论插件的过程中,自己走了很多坑。总结如下:

  1. 不同插件的产品质量不同,需要测试来发现与选择,有的知名产品但对你来说,效果很差,当然可能有你的问题。

  2. 不同插件对不同页面不同评论的支持不同,有的支持好,有的支持不好。像disqus,和多说支持就较好。

  3. Angular JS和插件组合使用时可能也有坑。在解决问题过程中,也可以加深对Angular JS的理解。

  希望对你有帮助。谢谢。

  我已经将自己的小网站开源,完整代码可参见:https://github.com/kevinsong1990/nodejs-blog

                                           - Kevin Song

                                           2015年8月2日 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hexo 入门指南(七) - 评论 & 分享
首先到多说官网去注册一个账号。然后点击进入添加站点页面,填写所有信息。注意,多说域名的前缀就是站点的短网址,下面要用到,这里假设为short_name。
ApacheCN_飞龙
2019/02/15
4170
Speed丨如何快速给网站添加Pjax?
Pjax是一种很多网站( facebook,  twitter)都支持的浏览方式, 当你点击一个站内链接的时候, 不是做页面跳转, 而是只是站内页面刷新。设置后的这些网站的ajax刷新是支持浏览器历史的, 刷新页面的同时, 浏览器地址栏位上面的地址也是会更改, 用浏览器的回退功能也能够回退到上一个页面。Pjax是可以增加访客打分的好功能。
V站CEO-西顾
2018/06/08
1.9K0
为Next主题添加多说评论系统
几个月前,在好奇心的鼓动下,利用Github Pages和Hexo以及Next主题搭建一个属于自己的个人主站,由于时间伧俗,搭建成功后就没有好好完善一下,可以参照文章徒手教你建自己的博客,文章里有搭建免费博客的详细步骤。
Jacklin999
2018/09/12
9580
为Next主题添加多说评论系统
jeklly+Github pages 添加评论
之前的个人博客主要是fork了其他人的源码。基于Jekyll+Github pages。在此基础上改了一些东西,适合自己的才是最好的嘛。最后才准备做评论这方面的东西。
一点儿也不潇洒
2018/08/02
4110
WordPress 技巧:社会化评论插件多说提速技巧
分享几个社会化评论插件多说的提速技巧:1. 不再查询 WordPress 原生的留言。 2. 不再加载 comment-reply.js,3.把多说的 JavaScript 脚本移到 footer。
Denis
2023/04/15
5140
Jekyll设置友言为社会化评论组件
Jekyll默认的社会化评论组件是disqus,第三方SNS是facebook,twitter等,不方便大陆用户使用,发现国内也有类似的社会化评论组件,比如友言等,经比较发现友言更简单易用。
JoeyBlue
2021/09/07
3972
如何将Pjax整合进网站,实现全站无刷新加载?
pjax工作原理 用大白话来说,就是ajax的升级版--可以动态记录历史记录的ajax技术。我们之前用ajax来做无刷新分页,一个最大的不足之处就是无法通过uri来标识这个资源以及历史记录倒退问题,通过利用html5 pushState的api,我们可以轻松达到发送ajax请求的同时,动态的记录状态,这就是pjax! 准备工作 pjax是什么东西,我们懂了之后,就要开始用它了!但是我们要写一套复杂的js去pushState么?答案是不需要的,已经有人封装好了JqueryPjax插件,我们只需用人家写好的插件
杨逸轩
2018/06/14
4.2K0
如何快速给自己构建一个温馨的"家"——用Jekyll搭建静态博客
我相信,每个程序员都有一个愿望,都想有一个属于自己的"家"——属于自己的博客,专属的网站。在自己的“家”中,可以和志同道合的兄弟一起分享和讨论任何技术,谈天说地。更重要的是可以当做自己的技术积累,提升自己实力。那么接下来就来说说我博客搭建过程。
一缕殇流化隐半边冰霜
2018/08/30
1.3K0
如何快速给自己构建一个温馨的"家"——用Jekyll搭建静态博客
网站评论系统的开源插件的使用
当你在做一个网站的同时,你可能会为网站做一些可以互动的环节。在SNS越来越重要的这个时代,像腾讯,新浪,阿里等等都争着做社交化元素。同样的如果一个网站缺少社交模块,那么你的网站遭遇冷落也是很正常的。许多人说,看XX网站,就是看标题和评论,甚至是与话题毫不相关的评论,评论为何成为网站的香饽饽。可以网站的评论系统对我们有多么的重要。
业余草
2019/01/21
1.3K1
网站评论系统的开源插件的使用
comment.js:一个纯JS实现的静态站点评论系统
介绍我用纯JS实现的一个静态站点评论系统,以及实现过程中的心得体会。 前言 我的博客最早是使用 Disqus 来实现评论功能的。Disqus 被墙了之后,改成了多说。今年年初,多说也正式关闭了,于是我被逼着又开始寻找其他的替代评论系统。 我先是试用了网易云跟贴、畅言等几种类似的社会化评论系统。畅言要求站点必须备案,而我实在没有为了评论去申请备案的动力。网易云跟贴的管理后台上有很多不明觉厉的功能,但好像都没多大用处。最致命的问题是我不小心把我的站点绑定到了另一个网易账户,而不是我常用的微博账户。这样的话,我每
HaHack
2018/07/03
2.7K0
评论JS插件~多说+畅言
多说API:http://dev.duoshuo.com/docs/512d6e2e418847315a000001 发表评论 接口名称 /posts/create 接口说明 发表评论。 URL http://api.duoshuo.com/posts/create.`返回格式` 返回格式支持:json, jsonp HTTP请求方式 POST 是否需要登录 否 请求参数 short_name 必需 站点申请的多说二级域名。 secret 必需 站点密钥。 message 必需 评论内容。 thread_k
逸鹏
2018/04/09
18.2K0
评论JS插件~多说+畅言
个人博客网站接入来必力评论系统
网易在7月6日正式发表了公告,通知用户即将停止服务(7月底),所以我们这些免费的使用者也不得不换窝了。 第三方评论 在之前,第三方评论系统主要有畅言、来比力、网易云跟帖、多说这四家。 网易云跟帖 当时多说倒牌,国内除了畅言外,我认为是最好的选择,网易云界面简洁出自网易大公司之手,体验也不会差。 而接入网易云跟帖,也需要遵循网易的数据格式,所以导出的数据再引入到其他地方是没法导入的。其Json格式如下: [{ "title":"标题", "url":"网址", "sourceId
xiangzhihong
2018/02/06
3K0
个人博客网站接入来必力评论系统
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第十二节)1.评论功能实现2.评论加载
好的,那么在上一节中呢,评论功能的后台已经写好了,这一节,先把这部分后台代码和前台对接一下。 1.评论功能实现 我们修改一下保存评论按钮的点击事件,用jQuery的方式获取文本框中的值,然后通过ajax方法,把数据传递到CommentController.jsp,jsp就是Servlet,这样写就和传递到Servlet是差不多的意思。 detail.jsp 代码: $(".button").eq(0).on('click',function(){ var txt = $('#commenttxt')
剽悍一小兔
2018/05/17
2.1K5
基于django的个人博客网站建立(三)
首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有的文章对象:
py3study
2020/01/16
2K0
能动手绝不多说:开源评论系统remark42上手指南
Isso – Ich schrei sonst – is a lightweight commenting server written in Python and JavaScript. It aims to be a drop-in replacement for Disqus.
李国宝
2020/08/06
1.6K0
github pages + Hexo + 域名绑定搭建个人博客增强版
概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善。基本搭建请访问:http://blog.csdn.net/xiangzhihong8/article/details/53355036 主题配置介绍 从中我们也可以看出,对于主题来讲,大部分可以配置的地方其实都是在这里的。所以我们需要了解一个基本的主题样式。 duoshuo,如果你是打算采用多说评论系统的话,你需要设置这里,但是我个人对
xiangzhihong
2018/02/05
1.4K0
github pages + Hexo + 域名绑定搭建个人博客增强版
在站点中添加Valine评论系统并修改评论样式
最近在浏览indigo主题原作者的网站时,发现其评论系统已经更新为了Valine,看这个评论插件的第一眼就觉着一股浓浓的极简风,而且,十分重要的是,其无后端的设定! 或许有些地方跟原先的友言或者多说的插件相似,但由于历史原因今天都无法使用了,现在比较不错的评论系统有disqus还有基于Github Issues的gitalk以及gitment,disqus需要翻墙速度才可以接受,然后一开始我是使用的基于Github的gitment,但是用户必须登录Github账号后才可以留言,所以有一丝丝的局限。 出于其非常吸引人的无需登陆和评论易管理的特性,当然需要尝试一波了。
ZONGLYN
2019/08/08
2.7K0
使用 Github 和 Hexo 快速搭建个人博客
李科慧
2017/03/27
6.3K3
Fluid -6- 使用 Waline 评论系统
一两分钟后,满屏的烟花会庆祝你部署成功。此时点击 Go to Dashboard 可以跳转到应用的控制台。
为为为什么
2022/08/06
1.5K0
Fluid -6- 使用 Waline 评论系统
为博客添加 Gitalk 评论插件结语
前言 由于 Disqus 对于国内网路的支持十分糟糕,很多人反映 Disqus 评论插件一直加载不出来。而我一直是处于访问外国网站状态的~(话说你们做程序员的都不访问外国网站用Google的吗?,哈哈
BY
2018/05/11
1.4K0
推荐阅读
相关推荐
Hexo 入门指南(七) - 评论 & 分享
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档