【问题标题】:Architectural decisions about popups in web (.NET Vision)关于 web 中弹出窗口的架构决策(.NET Vision)
【发布时间】:2011-05-30 05:06:33
【问题描述】:

我一直想知道,一般来说,关于 web 中弹出窗口(我的意思是那些通过 div 实现的那些)的意见。

我一直不喜欢在用户的导航中加载这个弹出窗口的整个大小(当弹出窗口不可见时)。我认为最好按需求加载内容(当用户单击相应的按钮时)。如果您在一页中有五个弹出窗口,我一直认为“字节”的增加会影响下载页面。

使用“按需”选项后,我一直很喜欢 iframe,因为它们让我可以通过 Javascript 更改他的 URL。因此,我显示了一个弹出窗口(div),其中包含一个 iframe,我可以在其中更改他的内容下载页面。

在我可能有限的观点中,这种方法还有另一个优点。验证逻辑(通常是 Asp.NET 验证器)在弹出页面中是隔离的,因此它们不会与位于父页面中的验证器(如果适用)发生任何冲突。

但 iframe 似乎并没有被某些浏览器很好地支持,并且它们并没有受到设计师社区的太多赞赏(而且它是一个具有很强安全隐患的对象)。

所以基本上我想知道你在展示这种 UI 时有什么经验。我知道 Jquery 可以在一个 div 中动态加载 HTML,但可能不需要隔离客户端验证脚本。

意见?非常感谢!

【问题讨论】:

    标签: asp.net jquery jquery-ui user-interface


    【解决方案1】:

    首先,您可以创建验证组 (http://msdn.microsoft.com/en-us/library/ms227424.aspx)。这将帮助您解决验证问题。

    你是对的,你可以使用 jQuery 来适当地动态加载 HTML,但我不确定它在 aspx 页面上的效果如何。有一些问题。考虑一下,您有 page1.aspx 和 popup.aspx。如果您在 iFrame 中加载 popup.aspx,那很好,因为它是一个单独的页面。如果您通过 JQuery.load() 动态加载它 - popup.aspx 的输出将加载到您的 page1.aspx 中(这包括 html 标记、表单标记、视图状态字段等)。这可能会导致一些问题。 (我没试过只是猜测)。

    我过去使用过 .load,但我倾向于加载标准 html 页面,而不是 aspx 页面。然后,当按下“提交”按钮时,它会调用具有相关字段的 Web 服务。这增加了我的更多 javascript 编码 - 编码“提交”按钮,编码 web 服务以处理 ajax 提交,在完成操作或通过 ajax 提交数据时编码“等待屏幕”。我还编写了 js 来进行客户端验证和任何代码来处理服务器端验证并将其报告给用户。

    jQuery 验证插件可以很好地解决这个问题 - 或者,如果您不想要更多插件/框架,您可以实例化 .net 验证器 (http://msdn.microsoft.com/en-us/library/yb52a4x0.aspx)

    【讨论】:

    • 非常感谢 Prescott,我有点惊讶,因为我认为这种工作方法必须给 Asp.Net 程序员增加相当多的复杂性。我的意思是,您正在丢失部分渲染、用户控件数据绑定等。哪些细节或技术可以让您相对快速地工作?非常感谢!
    • 确实你损失了很多。一旦你有了一个框架并且知道你将如何加载、验证、提交,它真的不会那么慢。
    猜你喜欢
    • 2011-09-10
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多