首页 新闻 会员 周边 捐助

一个加载完需要至少10秒的aspx页面,传统的放的gridview,从点击开始到加载完,怎么给用户提示正在加载

0
[待解决问题]

一个加载完需要至少10秒的aspx页面,从点击开始到加载完,怎么给用户提示正在加载中...?

试了放一个div,<div id="loading">正在加载中...</div>。然后用js判断加载完后,让改div不显示,根本就没效果。浏览器请求数据是吧div和其他数据缓存在一起取出来,再显示的

小明同学的主页 小明同学 | 初学一级 | 园豆:12
提问于:2013-05-09 15:53
< >
分享
所有回答(7)
0

参考下:::

 

ajax方法的全局事件的用处

 

ajax全局事件,有个典型的应用场合:

你的页面存在多个甚至为数不少的ajax请求,但是这些ajax请求都有相同的消息机制。ajax请求开始前显示一个提示框,提示“正在读取数据“;ajax请求成功时提示框显示“数据获取成功”;ajax请求结束后隐藏提示框。

不使用全局事件的做法是:

给$.ajax()加上beforeSend、success、complete回调函数,在回调函数中加上处理提示框。

使用全局事件的做法是:

$(document).ajaxStart(onStart)

               .ajaxComplete(onComplete)

               .ajaxSuccess(onSuccess);

 

    function onStart(event) {

        //.....

    }

    function onComplete(event, xhr, settings) {

        //.....

    }

    function onSuccess(event, xhr, settings) {

        //.....

    }

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-05-09 16:09

这个页面没有用ajax,就是传统的那种

支持(0) 反对(0) 小明同学 | 园豆:12 (初学一级) | 2013-05-09 16:45
0

你这个肯定不行啊,因为这10秒是后台在处理,处理完传输页面时才会使用到你创建的div.

而需要生成10秒的gridview,我估计应该上千条数据了吧,为啥不分页?

飞来飞去 | 园豆:2057 (老鸟四级) | 2013-05-09 17:31

网络延迟,分了页,每页20个

支持(0) 反对(0) 小明同学 | 园豆:12 (初学一级) | 2013-05-10 10:29
0

Asp.net 中有一个AJAx控件,相关详细请看这个http://www.cnblogs.com/webabcd/archive/2007/05/20/753223.html

UpdateProgress

    ·默认,任何回发,当有延迟的时候则显示UpdateProgress里的ProgressTemplate。
    ·要与某UpdatePanel关联则设置 AssociatedUpdatePanelID属性。
    ·DynamicLayout为true则用“display:none;”隐藏;DynamicLayout为false则用 “visibility:hidden;”隐藏。
    ·默认情况下,例如有2个异步回发,如果第1个还没有执行完毕就执行第2个的话,则会先取消第1个异步回发。

阿磊ing | 园豆:2 (初学一级) | 2013-05-10 12:29
0

使用AJAX吧

许鸿飞 | 园豆:168 (初学一级) | 2013-05-11 10:04

还可以在加载数据前将DIV输出出去。

示例代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("正在加载!");
            Response.Flush();//输出
            System.Threading.Thread.Sleep(5000);
            Response.Write("正在加载!");
        }

支持(0) 反对(0) 许鸿飞 | 园豆:168 (初学一级) | 2013-05-11 10:11
0

Response.Flush();

luofer | 园豆:468 (菜鸟二级) | 2013-05-16 17:10
0

U,一个多月的问题了,不知道,解决了没有? 

可用 Ajax 试试 。

代码:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="WebApplication1.Home" %>
 2 <!DOCTYPE html>
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head runat="server">
 5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6     <title></title>
 7     <script>
 8         window.onload = DataBind();
 9 
10         function DataBind() {
11             var xhr = new XMLHttpRequest; // 省略一些错误处理等代码
12             xhr.open("Get", "Data.ashx", true);
13             xhr.onreadystatechange = function () {
14                 if (xhr.readyState == 4) {
15                     if (xhr.status == 200) {
16                         document.getElementById('data').innerHTML = xhr.responseText; // 当数据接收完毕后显示在名为 data 的 div 中
17                     }
18                 }           
19             }
20             xhr.send(null);
21         }
22     </script>
23     <style>
24         html {
25             background-color: silver;
26         }
27         #data {
28             background-color: white;
29             margin: auto;
30             width: 300px;
31             height: 200px;
32             padding: 20px;
33             border: solid 2px black;
34         }
35     </style>
36 </head>
37 <body>
38     <form id="form1" runat="server">
39         <div id="data">
40             数据加载中,请稍后....   
41             <br />用动态内容替换。
42         </div>
43     </form>
44 </body>
45 </html>
显示面

 

 1     public class Data : IHttpHandler
 2     {
 3 
 4         public void ProcessRequest(HttpContext context)
 5         {
 6             context.Response.ContentType = "text/plain";
 7             System.Threading.Thread.Sleep(3000);
 8             context.Response.Write(HTML());
 9         }
10 
11         private string HTML() 
12         {
13             StringBuilder sb = new StringBuilder();
14 
15             sb.Append("<label for='txtUserName'>User Name : </label>");
16             sb.Append("<input name='txtUserName' type='text' id='txtUserName' /><br /><br />");
17             sb.Append("<label for='txtPassword'>Password : </label>");
18             sb.Append("<input name='txtPassword' type='text' id='txtPassword' /><br /><br />");
19             sb.Append("<input type='submit' value='Submit'/>");
20 
21             return sb.ToString();
22         }
23 
24         public bool IsReusable
25         {
26             get
27             {
28                 return false;
29             }
30         }
31     }
数据页
TechDream | 园豆:208 (菜鸟二级) | 2013-06-14 18:41
0

only  ajax

水墨.MR.H | 园豆:280 (菜鸟二级) | 2013-06-22 00:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册