好友动态在各大社交网站中基本上已经是标配了,而且一般都会显示在用户登录之后的默认首页上,这种做法的确方便用户了解网站和自己朋友的一些动态。设计上应该如何实现呢?Google 了一些资料,整理在下面,欢迎有实际经验的朋友指点!
用户看到的可能是三种情况:
- 我的动态
- 好友的动态
- 全站的动态
朋友动态这种信息,根据网站的实际情况需要考虑几个问题:
1、是否只让用户看到最新n条?(海内的最新动态数量是固定的,采用先进先出原则,用户只能看到最新的n条;而UCH则可以每页150条允许用户翻页 )
2、用户增减好友后,朋友动态是否能够立刻体现出变化?(在海内,我如果在好友名单中删除一个人,好友动态还会有他的信息,只是不新增他的信息而已;而UCH里面,他的信息立刻消失。加一个人为朋友,也是一样的效果。 )
3、用户能否删除自己产生的动态?
4、阅读者是否可以删除其朋友动态中某一条动态?(在校内用户可以删除某一条朋友动态,在UCH用户可以屏蔽某人或者所有人的某类动态,在海内你只能看不能屏蔽 )
5、动态是否有阅读权限?
6、动态所指向的信息被修改、删除,动态是否要同步变化?(如果你修改了日志的标题,校内网的动态是不变的,而海内是变化的)
{
photoId
:
2089
,
photoName
:
A trip to the beach
}
data中保存用户的操作日志,也就是本贴讨论的重点。我采用的方法是前面有同学提到json方式。 如:
{
“blog”:[ {"id":1,"title":"安利台湾25周年庆"} ],
“photo”:[ {"id":1,"title":"51韶关游"} ]
}
其中blog、photo代表某种应用的标识,可以无限添加。只要显示的时候能分析就行。里面的id和title就是内容 的属性,结构自定。至于新旧操作怎么合并,我是采取对event表的插入操作进行拦截实现的——我定义会员所有的操作均调用event的插入方法。在拦截 函数中,先select该会员的记录。如返回为空,则直接插入新记录。如返回记录,则将待插入数据与原数据进行合并。如待插入数据为:
{
“blog”:[ {"id":2,"title":"我是谁"} ],
“share”:[ {"url":"http://www.tudou.com","title ":"土豆网 - 视频 - 播客 - 每个人都是生活的导演"} ]
}
则合并后的content为:
{
“blog”:[ {"id":2,"title":"我是谁"} {"id":1,"title":"安利台湾25周年庆"}, ],
“photo”:[ {"id":1,"title":"51韶关游"} ],
“share”:[ {"url":"http://www.tudou.com","title ":"土豆网 - 视频 - 播客 - 每个人都是生活的导演"} ]
}
然后使用update方法即可。