igoogle myYahoo 个性化主页数据组装的实现
问题描述:
igoogle myYahoo 个性化主页数据组装的实现
igoogle和myYahoo都提供个性化主页,能够在上面显示天气、新闻等任意自己选定模块的内容。
其页面可以拖动,其实现在的js库都可以实现这个效果,
但是查看源代码,你会发现,他不像一些运用dwr的网站,主页是空的,所有模块内容靠js抓过来。而是组装到了一个页面一起出来的。
其页面数据在源代码中都能找到。不知道他是通过什么方式将不同的模块组装起来的。
我有一个思路就是
struts2 +sitemesh
每个模块对应一个action+然后通过sitemesh 动态组装起来一个模块,然后再统一推出。
这样虽然能够实现,与dwr的不同只在于 少了几个http请求,但实质应该还是调用了多个action服务器端压力应该也不小。
请问大家有什么解决方案或者思路?
答
这种东西,其实就是门户的概念,你搜索一下jsr168标准实现。
所有东西都是portlet,然后都放在一个portal里面运行。
现成的门户或者说开源的portal比较著名的有liferay。不过这是企业级的,不适合用来做网站。
我觉得主页是空的,再通过ajax来组装成页面,是可以接受的。国内外其实很多类似的应用。都是这样的做法。
比如netvibes,雅蛙,入口网
答
囧rz 我现在就在做一个LifeRay Portal的项目。
他是通过一个 layout.xml的布局文件,
这个布局里头存了你拖动的Portal的Id,
并持久化到数据库 。
然后页面加载 也就是一个Url加载的时候,他并没有去直接取这些组件-Portal
而是去取 layout,然后再根据layout去取 各个组件然后形成页面。