使用jQuery或AJAX“请等待”消息?

我正在创建一个企业Web模板,用于开发我们所有的Web应用程序。 由于数据量和数据源的地理距离,我们的许多现有应用程序需要一段时间才能加载,因此用户经常点击相同的按钮和链接两次。

我计划在页面回发时添加一个Please Wait消息。 我想有两种明显的方法可以做到这一点:


1. AJAX工具

使用AJAX UpdatePanel和进度加载器,我可以轻松地在每个回发上显示一条消息,其中包含很少的附加代码(如果有的话)。

我对AJAX方法的关注是,因为这是非常通用的模板,所以我必须将整个页面包装在更新面板中。 根据ASP.NET 3.5 AjaxToolKit的经验,更新面板以时髦的方式影响回发和JavaScript代码。 此外,我认为UpdatePanel很重,并且会增加加载会话或应用程序所需的时间。

2. jQuery

使用jQuery,我可以绑定一个方法,向每个$(':submit').click() {}事件显示消息。 该页面将通过在post结尾处重新加载来自动隐藏消息。

我没有jQuery方法的主要问题。 它需要额外的编码才能与字段validation器一起正常工作。 不使用UpdatePanel也意味着每次回发都会重新加载整个页面,这可能不是最好的方法。 它也必须在“请等待”消息出现之前延迟几秒钟,以便它不会出现在不需要此类消息的非常小的事件中。


哪个是显示“ 请等待”或“ 正在加载”消息的更好方式? 我关注速度和可靠性,但如果你认为其他成功的衡量标准值得注意,请随意这样说。

绝对是#2。 添加UpdatePanel是一整套蠕虫,如果您没有在给定页面上使用它们,则会增加很多开销。

使用jQuery执行此操作所涉及的代码是微不足道的。 有一个很好的小插件叫做blockui ,可用于渲染效果并禁用区域上的所有控件。 没有插件也不难做到这一点,但为什么要重新发明呢?

使用UpdatePanel,有一个UpdatePanelProgress控件可向用户显示进度状态消息。 使用JQuery,您可以在按钮单击时显示带有请等待消息的元素,并将通用处理程序附加到ajaxComplete ,此回调在AJAX请求完成时触发,然后您可以隐藏它。

HTH。

如果您正在使用jquery,只需使用ajaxStart / ajaxStop 。

Interesting Posts