什么时候可以使用FRAMESET

时间:2012-04-06 17:46:55

标签: java jquery html spring

在我的Java EE应用程序页面中,我有header.jsp,一个side menu.jsp,一个body.jsp和footer.jsp。侧边菜单包含jQuery dynatree插件。当用户单击树中的菜单项时,应使用适当的页面(也是.jsp)更改正文。我正在使用tile框架,我在layout.jsp页面中导入所有js代码。我想实现复制框架集的效果,但实际上没有使用框架集。我认为框架集很难管理并且需要时间来加载。

有谁能建议我如何解决这个问题?如果我在激活dynatree节点时使用AJAX来获取每个页面,那么我必须手动更新页面。如果我在IFRAME中使用body.jsp,那么我必须重新导入所有插件js代码,因为该框架将无法访问主页面上的js功能。

我想要高效的html页面管理。

1 个答案:

答案 0 :(得分:3)

由于您使用的是jQuery,因此您应该能够将AJAX与应用事件的live方法结合使用(see the docshere)。这种方法被称为“事件委托”,即使jQuery像魔术一样为你做这件事,你也应该understand what is happening。根据您使用的jQuery版本,您可以使用delegate代替live - 基本上是相同的。

在HTML5中实际上不推荐使用框架集 - 您应该避免使用它们,因为在较新的用户代理中很快就不会支持它们。请参阅http://www.useit.com/alertbox/9612.html进行冗长的讨论,这有助于阻止您考虑这种方法。

IFRAME方法是一种黑客行为。你可能能够使它发挥作用,但你正在将一个方形钉子敲入圆孔中。

最重要的是,如果您不想直接深层链接到内页,AJAX是最佳和首选的解决方案。结合事件委托,它确实优于任何旧的或hacky解决方案。并且,请务必使用“progressive enhancement”的想法 - 如果有人点击这些链接并关闭了javascript,则内容仍应加载。这意味着你从常规的直接链接开始,然后为那些启用了javascript的用户添加花哨的内容。否则,您将从主页上的任何内容中关闭一定比例的用户。

当您使用AJAX进行导航时,您仍然需要为不了解用户点击您网站或任何其他网站上的链接之间的差异的用户进行规划。他们将使用浏览器的“后退”按钮,最后返回谷歌而不是最后一页!这是因为他们在您网站上的导航看起来不像浏览器的唯一页面。新的浏览器中有一些工具可以解决这个问题,但细节有点超出了这个答案的范围。有关操作浏览器历史记录的详细信息,请查看MDN上的this article

<强>文档