我正在创建一个企业Web模板,用于开发我们所有的Web应用程序。由于数据量和数据源的地理距离,我们的许多现有应用程序需要一段时间才能加载,因此用户经常点击相同的按钮和链接两次。
我计划在页面回发时添加请稍候消息。我想有两种明显的方法可以做到这一点:
1。 AJAX工具
使用AJAX UpdatePanel
和进度加载器,我可以轻松地在每个回发上显示一条消息,其中包含非常少的额外代码。
我对AJAX方法的关注是,因为这是非常通用的模板,我必须将整个页面包装在更新面板中。根据ASP.NET 3.5 AjaxToolKit的经验,更新面板以时髦的方式影响回发和JavaScript代码。此外,我认为UpdatePanel很重,并且会增加加载会话或应用程序所需的时间。
2。 jQuery的
使用jQuery,我可以绑定一个方法,向每个$(':submit').click() {}
事件显示消息。该页面将通过在帖子结尾处重新加载来自动隐藏消息。
我对jQuery方法没有重大关注。它需要额外的编码才能与字段验证器一起正常工作。不使用UpdatePanel
也意味着每次回发都会重新加载整个页面,这可能不是最好的方法。它也必须在“Please Wait”消息出现之前延迟几秒钟,以便它不会出现在不需要这样消息的非常小的事件中。
哪种方式更好地显示请稍候或正在加载消息?我关注速度和可靠性,但如果你认为其他成功的衡量标准值得注意,请随时说出来。
答案 0 :(得分:5)
绝对是#2。添加UpdatePanel
是一整套蠕虫,如果您没有在给定页面上使用它们,则会增加很多开销。
使用jQuery执行此操作所涉及的代码是微不足道的。有一个很好的小插件叫blockui,可用于渲染效果并禁用区域上的所有控件。没有插件也不难做到这一点,但为什么要重新发明?
答案 1 :(得分:3)
使用UpdatePanel,有一个UpdatePanelProgress控件可向用户显示进度状态消息。使用JQuery,您可以在按钮单击时显示带有请等待消息的元素,并将通用处理程序附加到ajaxComplete,当AJAX请求完成时,此回调将触发,然后您可以隐藏它。
HTH。
答案 2 :(得分:1)
如果您使用的是jquery,请使用ajaxStart / ajaxStop。