【发布时间】:2011-09-28 11:35:30
【问题描述】:
我希望创建一个 JSF 应用程序,其中有多个 xhtml 页面显示在浏览器的不同区域。我可以使用 iframe 来做到这一点,但它们会增加额外的内存,并且跨 iframe 访问对象并不是那么简单。
我正在考虑一种方法,在该方法中,我使用 ajax 在主页中加载不同的 xhtml 页面。问题是主页面中会有许多元素具有相同的 id,因为 id 仅在它们各自的视图根中是唯一的。
我知道一种解决方案是实现一些自定义客户端逻辑来处理这些重复的 id,但最好根本没有重复的 id。
我能做些什么来解决这个问题?
一个附带问题:是否有一个框架可以更好地处理这种需求,即在同一个浏览器窗口中显示多个页面?
【问题讨论】:
-
当您说“使用 ajax”时,您是指 JSF 的
<f:ajax>还是像jQuery.load()这样的普通 JS?我的印象是后者是这种情况,因为前者会为此引发重复的 ID 异常。如果后者是真的,是否有任何特定的功能或技术原因让您更喜欢纯 JS 而不是<f:ajax>?无论如何,这里有一些值得深思的地方:stackoverflow.com/questions/4421839 -
是的。我的意思是 Jquery ajax。从一开始,我就使用了一些自定义客户端代码,这些代码与 f:ajax 所做的事情几乎相同,只是它使我能够决定从 js 执行和重新渲染什么。它还可以帮助我更好地控制在 ajax 请求之前和之后要做什么。而且,它允许我将 ajax 行为附加到浏览器事件之外的事物上,例如 jquery 自定义事件。