细心的乐码范用户,可以早已发现每篇文章的下面有这样一个按钮:
但是,如果没登录的时候,这个按钮点了没有反应。访问乐码范的用户,也就是想看点东西而已,很多用户是不想注册账户再登录的。因此,这个功能基本上就成了摆设,没什么用。
今天,这个功能终于可以免登录使用了。
当然,如果只是宣布一个功能,那其实也没啥好说的,因为也没什么大不了的。更多是想总结一下背后产品和技术角度的一些思考。
相比简单的“赞”,这个功能可以更表达出更丰富的感情,而不是一个简单的喜欢,并且操作的复杂度也和点赞差不多,并不会给用户带来很多的负担。评论的功能也能表达出读者的想法,但是需要用户使用键盘来输入,因此用户操作的复杂度更高一些。本站点同时有“反应”和“评论”的功能,而让“反应”的功能可以让用户免登录使用,就会让用户更容易就表达自己的感情。
功能上的实现不必细说,想说的是如何让匿名用户就可以使用。一方面,不希望匿名用户无限制地操作;另一方面,是希望用户误操作之后,还能撤销这个操作。如果是登录用户,这两方面都容易实现,在后端数据库里保存一个用户对应的操作即可;但是匿名用户,因为没有用户ID,数据库里该如何保存?
这样一个场景,我能想到两个解决选项:
1). 在localstorage里保存当前用户的操作历史。
好处:不依赖后端数据库;
缺点:需要对登录和匿名用户实现两种不同的方案;localstorage的容量只有5M~10M,这个功能如果使用太多的空间,以后其他的功能可能就不够用了。
2). 数据库里用IP地址来代替用户的ID。
好处:可以和登录用户用同样的代码;
缺点:用户的IP地址以后会变,变了之后,这个历史也就看不到了。
看起来,两种方案都不太完善,但是后一种贵在实现简单,因此这次我就选择了用IP地址来代替用户ID的方式。