在第一页加载数据库调用进程时显示加载gif的最佳方法

时间:2009-10-13 21:53:23

标签: jquery asp.net ajax vb.net

所以我是Ajax的新手。我有一个ASP.NET向导面板包装在ASP Ajax UpdatePanel中。 Ajax运行良好,当您单步执行向导时,页面会进行部分更新。我甚至使用unblockUI.js jQuery库来触发动画gif图像,以防止多页提交。我无法弄清楚的是,当页面首次加载时,由于数据库调用较长,向导面板最初需要花费近一分钟才能加载。这不是异步回发,所以我的动画gif不会触发。事实上,我只是在页面加载时获得一小时玻璃。有没有办法继续加载页面内容的其余部分并在分钟长数据库调用生效时显示该gif?我已经尝试在页面加载后移动数据库调用,但它仍然在初始页面加载时执行它而我不能异步执行它。
同样,我是异步的新手。这似乎应该很简单,但我被卡住了。

更新: 好吧,对我来说棘手的部分是弄清楚如何使用Ajax调用来加载数据。我几乎没有这方面的经验。这可能是一个kludge,但它实际上工作得很好,没有太多的新代码: 我将数据加载从页面加载移动到我的UpdatePanel的Load事件,但是将它放在If IsPostBack中。这是之前运行的相同代码,但现在只能在回发上运行。然后在我的标记中,我把它(感谢下面的答案):

$(document).ready(function() 
{
    __doPostBack('<%= Me.UpdatePanel1.ClientID %>', '');
});

我默认取消隐藏等待的div,并在数据加载后将其隐藏在If IsPostback片段中。我不得不搞乱一些控件隐藏逻辑(返回并继续向导的按钮,loading.gif div等),但唯一的新代码在上面。

1 个答案:

答案 0 :(得分:2)

通常,我会在 ajax调用开始之前呈现一个微调器或合理指示性的加载动画。如果初始页面加载需要永远,那么您可以在$(文档).ready(...函数:

中使用ajax调用启动长时间运行的进程。
$(document).ready(function() {
    $('#someId').html('<img src="loading.gif"/>').load('complex.aspx');
});