我需要一个模式窗口,告诉用户等到我在服务器上完成一些工作。看起来BlockUI和jqModal都可以做到这一点。
你有任何经验吗?优点和缺点?我正在使用 ASP.NET MVC。
我使用 jqModal 和 BlockUI 进行了概念模式对话框的验证,我可以毫无疑问地说 BlockUI 是它们中“最薄的”。它允许对 jQuery 可以选择的任何内容进行更简单的阻塞访问,并且您只需将模态 DIV 的“消息”参数传递给它。它将自动设置 display:block 并将其设置在模态覆盖的顶部。
除了标准模式对话框,如果 $.ajax 调用时间超过 250 毫秒,我还使用它在我的 ajax 接口上设置“请稍候”对话框。
我已经使用了很多 jqModal 并且非常喜欢它。它非常易于实现和灵活,但它的主要用途是模态对话框。
我没有使用过 BlockUI,尽管它似乎提供了一些不同的功能。它不仅可以在模式窗口中显示内容,还可以阻止用户访问整个 UI 或其中的一部分。
另一种选择是jQuery UI 对话框,它更通用,可用于构建。我在一个应用程序中使用它,虽然它没有 jqModal 的开箱即用功能,但我认为如果我想构建一个与之集成的自定义插件,它会非常有用。
我正在使用 BlockUI 并且喜欢它,但明智的说法是,众所周知,它在 linux 中的 Firefox 上非常慢。它将 CPU 峰值提高到 100%
我同时使用 & 。
对于简单的静态模态,@Peter J 的回答是正确的 - BlockUI 很棒而且非常轻量级。您可以将隐藏的 div 作为消息传递,它将显示为模态对话框,可以通过 jQuery 绑定等进行交互。它不提供通过 ajax 检索消息而无需手动编码的方法(其中与 BlockUI 的简单完美背道而驰——在等待 ajax 操作完成时显示块消息)。
对于动态模态,jqModal 非常棒,因为它可以通过 ajax 调用检索模态内容。它还可以为您处理触发元素(按钮、链接等),控制显示/隐藏本身,但也可以让您以任何您喜欢的方式对其进行自定义。
为了变得更复杂 - 我什至同时使用两者来通过 jqModal 显示一个 ajax 提供的对话框,然后在提交时通过 BlockUI 阻止它以显示自定义消息。(需要注意的一点:注意 jqModal 的默认 z-index 低于 BlockUI 的默认值,因此将它们一起使用需要您将 BlockUI basez 选项设置为高于 jqModal 的默认值 3000。)