网易的留言回复塔楼实现思路
昨天去岩生那,聊的过程中提到了网易的留言回复塔楼实现方式,他模仿这做了一个,是运用js+dhtml
方式,把新回复的数据和以前回复的数据进行叠加,然后是每条的评论后便跟一个存储叠加回复数据的字段。从查询性能上来讲,这样做是比较合理的,但是我感觉也有不太合理的地方,就是对其中回复数据的维护不方便了。
塔楼效果如下:
查看
今天仔细看了一下网易的留言回复系统,根据它的代码我分析它用的是json解析的方式实现,我用java代码模拟了一下,可以实现它的那种效果,代码如下:

//回复内容模型
ReplyCmtModel.java
package ccp.suddenattack.action.news;

public class ReplyCmtModel {
private String cid;
private String content;
private String floor;

public ReplyCmtModel(String cid, String content,String floor) {
super();
this.cid = cid;
this.content = content;
this.floor = floor;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFloor() {
return floor;
}
public void setFloor(String floor) {
this.floor = floor;
}
}
回复数据转换为json
package ccp.suddenattack.action.news;

import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

public class JsonTest {

public static void main(String[] args) {

Map<String,ReplyCmtModel> map = new HashMap<String,ReplyCmtModel>();

for (int i = 1; i <= 5; i++) {
System.out.println(i);
map.put(
"第"+i+"楼", new ReplyCmtModel("no" + i, "content" + i, i + ""));
}

JSONObject json = JSONObject.fromMap(map);
System.out.println(json.toString());
}

}
我猜想它的留言回复是单独一张表,考虑到查询性能问题,这只做原始数据存储用,从这里某条留言对
应的所有评论通过程序转化为一个json字符串然后存储到对应留言的一个字段里边,做查询用。如果有
人进行回复,再重新生成一次json字符串即可,这样也可以方便的维护整个塔楼的信息。可以对其中的不合理信息进行修改,删除操作。

不知道有没有更好的实现方式。


参考资料:json-lib包笔记



不知道有没有更好的实现方式。
参考资料:<a href =
"http://www.javaeye.com/post/326443" target="_blank">json-lib包笔记</a>


lunzi   2008-07-29 00:17:22 评论:8   阅读:834   引用:0
无题 @2008-08-25 08:23:57  lunzi
两中方法都可生成json格式的数据,不过这里我们需要的就是map格式的json数据格式。
无题 @2008-08-22 09:47:34  
楼主 JSONObject json = JSONObject.fromMap(map);这个你写错了 应该是JSONObject json = JSONObject.fromObject(map);
无题 @2008-08-21 08:57:23  lunzi
json jar包里的,我上面有关于json的介绍连接[看json-lib包笔记]。
无题 @2008-08-20 11:33:20  
有没有一个通用的解析留言回复塔楼的方法啊
无题 @2008-08-20 11:30:59  
import net.sf.json.JSONObject;
这个是啥包啊
无题 @2008-08-20 10:59:06  
不很明白 楼主能否说清楚点啊
无题 @2008-08-19 16:46:58  lunzi
只做了模拟实现,把实现视图效果基础的数据提供出来了,没有做视图.
无题 @2008-08-19 15:57:58  
楼主 怎么没有输入接口啊

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog