65.9K
CodeProject 正在变化。 阅读更多。
Home

加载后立即异步更新页面以提高响应时间

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

4分钟阅读

viewsIcon

8571

响应时间是决定Web应用程序性能的主要因素之一。很多时候,我们会遇到页面内容可以

响应时间是决定Web应用程序性能的主要因素之一。很多时候,我们会遇到页面内容可以在页面渲染后立即异步更新,以响应页面请求。

我们可以在页面加载后立即通过AJAX调用服务器来实现这一点。在这篇文章中,我们将使用AJAX在页面加载后更新网格。

<form id="form1" runat="server"> 
   
<div> 
     
<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false">          
         
<Columns> 
               
<asp:TemplateField> 

                    <HeaderTemplate> 
                       
<h3>姓名</h3> 
                   
</HeaderTemplate> 
                   
<ItemTemplate> 
                        <asp:Label ID="name" runat="server" Text='
<%# Eval("name") %>' class="name"></asp:Label> 
                   
</ItemTemplate> 
               
</asp:TemplateField> 
 
               
<asp:TemplateField> 
                 
<HeaderTemplate> 
                       
<h3>地址</h3> 
                   
</HeaderTemplate> 
                   
<ItemTemplate> 
                       
<asp:Label ID="address" runat="server" Text="" class="address"></asp:Label> 
                   
</ItemTemplate> 
               
</asp:TemplateField> 
         
</Columns> 
     
</asp:GridView> 
   
</div> 
   
<script type="text/javascript"> 
        $
(function () { 
            $
(".name").each(function () { 
               
var lblNameObj = this 
                $
.ajax({ 
                    url
: "UpdateTableWithAjax.aspx/GetAddress", 
                    type
: "POST", 
                    contentType
: "application/json", 
                    dataType
: "json", 
                    data
: "{name : '" + this.innerHTML  + "'}", 
                    success
: function (msg) {//On Successfull service call 
                        $
("#" + lblNameObj.id).parent().next().children().html(msg.d) 
                   
}, 
                    error
: function (xhr, msg) { 
                        alert
(msg); 
                   
} 
 
               
}); 
           
}); 
 
       
}); 
 
   
</script> 
   
</form>

 

 protected void Page_Load(object sender, EventArgs e) 
        { 
            List<ClsEmployee> lstEmp = new List<ClsEmployee>(); 
            ClsEmployee emp1 = new ClsEmployee(); 
            emp1.name="Emp1"; 
            lstEmp.Add(emp1); 
 
            ClsEmployee emp2 = new ClsEmployee(); 
            emp2.name="Emp2"; 
            lstEmp.Add(emp2); 
 
            ClsEmployee emp3 = new ClsEmployee(); 
            emp3.name="Emp3"; 
            lstEmp.Add(emp3); 
 
            gvEmployee.DataSource = lstEmp; 
            gvEmployee.DataBind(); 
        } 
 
        [WebMethod] 
        public static string GetAddress(string name) 
        { 
            string adr=""; 
            //Loop has been added for the delay  
            for (int i = 0; i < 10000; i++) 
            { 
                for (int j = 0; j < 5000; j++) 
                { 
                    adr = "Address of " + name; 
                } 
            } 
 
             
            return adr; 
        } 

  public class ClsEmployee 
    { 
        public string name { get; set; } 
        public string address { get; set; } 
    }

© . All rights reserved.