一点困惑

Banq老大,有些问题想向您请教:

我们使用的是早期JIVE的版本,然后在上面做的扩展。由于每次LOAD一个FORUM LIST的时候都需要
加载这个LIST中所有的THREAD对象,基于JIVE的机制就需要不断LOAD这些THREAD对象。由于后期
我们增加了很多THREAD相关的属性,并且可能存储在不同的表中,所以每次LOAD这个THREAD对象的时候就需要不断从数据库区获取这些属性并将它保存到这个THREAD对象中并缓存起来,这样最直接的问题就是LOAD一个THREAD LIST页面就会有多次DB的操作,如果不这么做每次只取部分数据封装成对象然后缓存是可以减少当次数据库的连接,但是后面需要某个属性的时候势必又会去从数据库中再取并且还需要更新CACHE。不知道有什么好的建议,谢谢了!

2013-11-12 17:21 "@cat1978"的内容
如果不这么做每次只取部分数据封装成对象然后缓存是可以减少当次数据库的连接,但是后面需要某个属性的时候势必又会去从数据库中再取并且还需要更新CACHE。 ...

两个办法:
1.在前端实现异步加载:先取部分数据,然后在浏览器页面使用ajax异步加载。
2.在后端实现异步加载:先取部分主要数据,在需要异步加载的属性方法里加上判断,第一次读这个属性时,发送事件或消息,启动另外一个线程到DB取,第二次客户端再读这个属性时,估计DB已经加载好了。jdon框架提供这个能力,你也可以自己编写。

见另外帖:http://www.jdon.com/44522


非常感谢Banq老大的热心回复!
如果先取主要数据,其它需要加载的时候通过异步加载的方式加载是可以,但是如果一个页面需要加载很多平行的属性数据,这样岂不是在页面中会有很多诸于Ajax的异步调用,这样是不是不好?