我即将开始一个全新的网络项目。
该项目需要有不同的小窗口,其中包含从其他网站产生的html。
一个重要的要求是,当用户在窗口中提交表单时,不应该在另一个窗口上调用刷新。
我的领导说让我们研究一下jsr286 portlet (因为portlet听起来像window?)。但在查看一些示例(pluto portal/jetspeed2)后,它们都不支持该要求,只要提交一个窗口,就会提交整个页面。
我的粗略想法是在每个窗口中使用iframe,然后让iframe完成剩下的工作(比如引用外部网站,处理表单提交)。
就我个人而言,我认为iframe不太适合portlet jsr286。而且大多数窗口彼此之间没有任何关系,所以processEvent不是强制的。
所以我的问题是:
对于具有这种需求(单独提交表单)的新项目,是否值得向portlet jsr286确认?
如果是这样,iframe如何与不同的portlet模式(查看/编辑/帮助)或窗口状态(最大/正常/分钟)一起工作?
非常感谢!
发布于 2012-03-07 12:01:37
你可以给你的团队领导一个很好的解释,here。上面写着:
混搭和门户都是内容聚合技术。门户是一种较旧的技术,被设计为传统动态Web应用程序的扩展,其中将数据内容转换为带标记的Web页面的过程分为两个阶段:生成标记“片段”和将片段聚合为页面。每个标记片段都是由"portlet“生成的,门户将它们组合到一个Web页面中。Portlet可以本地托管在门户服务器上,也可以远程托管在单独的服务器上。
关键的是:
门户技术是关于服务器端的,表示层聚合。
因此,聚合是在门户服务器上完成的(即使portlet服务器是独立的-这完全是出于在大型站点上使服务器端可伸缩的需要;它不是关于来自多个源的客户端的组合)。这就是提交刷新整个页面的原因(因为它必须从门户加载新页面)。
这应该有助于澄清问题,因为它听起来像是您正在寻找的客户端聚合(我不认为我在这里告诉您任何新的东西,但我在“企业演讲”中给您提供的参考可能听起来更有说服力)。
(因此,如果不清楚,您的需求听起来像是需要一个客户端混搭。portlets无法工作,因为它们是在服务器端组装的。iframes可以工作,但有一些限制(大小、重缩放、样式/动态更改)。我本打算建议在客户端使用javascript和backbone结合使用,但我担心你在从不同的网站拉取数据时会遇到问题,因为网页中的javascript可以访问的限制。看起来this article值得一读……)
https://stackoverflow.com/questions/9595524
复制相似问题