关于ourjs的counts问题


发布者 zkwap  发布时间 1411695392812
关键字 提问 
为什么counts添加新文章后统计是累加的,意思是这个月的会累计以前的记录,比如下面这样
{"53dde10822b1d99809461650":7,"53f4383783cc9d302bad6503":8} //这是8月的
{"53dde10822b1d99809461650":10,"53f4383783cc9d302bad6503":9,"54110087bac9df6c0a26d842":1} //这是9月的
想知道为什么这个月会把以前的文章统计加上呢
 
追加:
刚才看了ourjs的initArticles方法会读取article目录的所有文件,文章数量很多的情况下会不会使内存增大很多,会不会有性能问题?
追加:
刚又看了会把最新的文章counts加入countPool,这样就可以保证记录都在一起方便操作,不知道是不是这个原因?
















回复 (3)
  • #
  • #1 newghost 1411704907476

    这个之前我也考虑过,当时考虑了几种方案

    1) 将点击数跟文章放一起

    2) 将所有文章计数放在一个JSON文件中

    3) 将某段时间的所有文章点击放在一处

    -

    最后采用了方案 2,之所以采用保存全部记录的方式是因为,

    一个 ObjectID,如 52fb82e13bd19c4814000001 的长度是24个字符, 所以一条文章记数在JSON记录中的平均的长度最大应该不会超过40个字符

    一万篇文章所产生的大小 10000 * 40 / 1024 = 390 Kb, 这个大小是完全可以接受的,而且这样计数起来非常方便,更简单一点。

    而且ObjectID包含一个时间戳,可以很方便地找到最近一个月新发布文章的排名。

    -

    这个方案也有一点缺陷,就是无法找到最近一个月所有文章的点击排名,以后可能会改进一下。

    关于所有文章的性能问题的应该不会消耗太多,目前网站总共消耗了不到100Mb内存,不过这套系统还没有在大数据量的情况下测试过,以后可能会改进一下。

  • #2 zkwap 1411712475669

    @newghost #0

    再次感谢老大耐心的回复,在用websvr写东西,看ourjs代码学到了不少东西

  • #3 newghost 1411718137742

    @zkwap #1

    No problem

微信扫码 立即评论




  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA