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去取 各个组件然后形成页面。