【问题标题】:Alternative for iframes for jQuery ui tabs plugin - with support for postbackjQuery ui 选项卡插件的 iframe 替代品 - 支持回发
【发布时间】:2011-07-05 14:49:20
【问题描述】:

实际上,这是我过去发布的关于 iframe 的问题的更具体版本 -

iframe good or bad for my MVC web-app scenario

上面的帖子最终更倾向于“iframe 很糟糕”,因为我实际上是在寻找可靠的 iframe 等效项(如果 iframe 对我的场景真的很糟糕)。他们差点把我吊死:) 但我只是想找到一个更好的选择。有些人建议我考虑一个 AJAX 库,它会将 MVC 处理带到客户端,太复杂。该帖子仍处于冻结状态。

无论如何,让我简化一下。我正在使用 jQuery UI 选项卡插件来显示选项卡视图。我想隔离选项卡内容页面,因为它们管理(添加\编辑)单独的实体。每个选项卡的回发/验证都必须隔离 - 这样在一个选项卡中的处理不会“干扰”另一个选项卡。 iframe 的目的是很好的,我已经处理了会话超时等问题。但是专家说“iframe 很糟糕”,所以我开始寻找替代方案。希望你明白我想要什么 - 替换 iframe 以实现独立功能。

这是我找到的一些替代方案 -

  1. jQuery UI 选项卡 是否允许动态加载,如果我们在“更好的 iframe 替代方案”中指定它? 这是完美的,直到我陷入了与 iframe 不同的交叉表验证问题,这不是孤立的,并且在一个选项卡中回发尝试回发整个页面(即所有选项卡)。

  2. 对于 (1.) 中提到的问题,我遇到了一个能够将回发限制到容器的插件。 (jQuery UI tab + jquery-hyjack) 看起来很有希望 - http://code.google.com/p/jquery-hijack/

  3. 我有很多解决方案,例如内联在 DIV 中呈现选项卡、服务器端包含等。但这让我回到了最初的隔离问题。一个选项卡的回发/验证会触发其他选项卡中的验证。此外,我不喜欢加载整个页面的想法,因为在单个标签中回发(其他标签不受影响)。

  4. 有人说这比 iframe 效果更好 -

对象 classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" 类型=“文本/html”数据=“xpto.html” width="300" height="300">

(5.) 我浏览了一些流行的博客、论坛来查找 iframe 的问题,例如 - http://www.mediacollege.com/internet/html/frames/pros-cons.html(关于框架,但其中一些也适用于 iframe)

如果我不关心 SEO, 链接/书签,我已经处理了 iframe 导航、安全和 会话超时/重定向问题 - iframe 仍然不符合我的资格吗 场景?

请提出建议并提供有价值的解决方案。

iframe 信息的一些链接:

【问题讨论】:

    标签: jquery ajax jquery-ui iframe


    【解决方案1】:

    由于您使用的是 ASP.NET MVC(基于另一篇文章),因此您可以控制 Form 标签,如果您将每个选项卡包含在它自己的表单标签中,您将在每个 Postback 中拥有特定于选项卡的字段以您预想的方式隔离,但它仍然是页面中的完整帖子 - 似乎您对 WebForms 的咒语有些困惑,这是可以理解的。

    您还可以在选项卡中序列化 JSON + jQuery 中特定于选项卡的字段,并使用 AJAX 动态创建帖子到另一个端点,例如能够处理您的验证的 ASHX/RESTful API。

    编辑:在 IFRAMES 上,如果您使用选项卡,则意味着您应该在相同的上下文中讨论信息,那么 SEO 和所有这些都不应该成为问题。我目前工作的(内部网)应用程序中的所有弹出窗口都是 iframe,但在设计这些时,您必须考虑很多 后退按钮

    【讨论】:

    • 主页面有 jQuery ui 选项卡,其中包含 iframe,因此浏览器中的后退按钮不会导致问题(除了它不是通常的流程)。是的,我可以有单独的表格,但完整的回发意味着其他选项卡将被重新初始化 - 大量不必要的带宽。顺便说一句,关于我提到的 jquery-hyjack 插件有什么想法吗?
    • 不知道这个插件。 (单独的表格或即时创建帖子)+ Ajax,没有完整的回发,节省带宽。
    • 完全尊重 jQuery + AJAX 的动态内容加载功能 - 这真的值得吗?特别是当我已经在我的选项卡视图页面中处理了 iframe 问题时。我的网站不需要 SEO,我不需要跨 iframe 通信,而 iframe 提供了完美的隔离。使用 AJAX 方法,我看到了更多的复杂性/层次,我需要让我的 MVC 操作返回由 View 渲染的 html,而不是简单地返回一个 View,而且我还必须处理动态加载。带有孤立表单的完整回发会使其过于繁重!
    • 我了解到的另一个事实是,facebook、twitter 甚至 yahoo 都使用 iframe。 “框架”被贬低 “iframe”在 HTML 4.0 中被标准化并在 HTML 5 中得到支持。还有著名的 Gmail - 它基于 iframe。使用 iframe,我可以使选项卡中的页面可在其他页面中作为单独的对话框重复使用,因为它们的处理是完全隔离的,无论是 iframe 还是对话框。如果我有静态页面 - 我会选择 iframe,但我的页面是动态的,并且会进行大量回发/处理。如果有更好的 iframe 替代品,我很乐意迁移,它拥有所有这些甚至大部分?
    • 那么您似乎提出了一个反问,因为您想使用 IFRAMES,而不是它的替代品。如果你选择可用性,你就会遇到麻烦,推特、脸书和其他人衡量了它对他们的重要性并做出相应的决定,你也应该这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多