由于复选框导致页面呈现缓慢

时间:2015-07-08 11:32:58

标签: javascript jquery asp.net checkbox

我有一个.aspx网页,需要显示来自数据库的最多500条记录以及每个记录的复选框。我遇到了问题,而页面最多需要15秒才能渲染。

我在pageload事件中添加了一个秒表,完成并响应。在大约4.7秒后将其写入页面。然后我再等待10秒钟,同时呈现页面的其余部分(即复选框)。

最初是一个按钮的复选框,在页面加载后没有明显的额外渲染时间。

foreach (DataRow dr in dtScheduledVisits.Rows)
{
   ...
   results.Append("<tr>");
   results.Append("<td> <input type='checkbox'> </td>");
   results.Append("<td>" + fullname + "</td>");
   results.Append("</tr>");
   ...
}
lblResults.Text = results.ToString();

在我的MainMaster页面上,我引用了:

<script src="js/icheck.js"></script> <!-- Custom Checkbox + Radio -->

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

对于您的要求,请使用SetTimeout

foreach (DataRow dr in dtScheduledVisits.Rows)
{
   ...
   results.Append("<tr>");
   results.Append("<td> <input type='checkbox'> </td>");
   results.Append("<td>" + fullname + "</td>");
   results.Append("</tr>");
   ...
}



 setTimeout(function(){
lblResults.Text = results.ToString(); //Render your Views
    return false;
    }, 4700);

我希望这个帮助

答案 1 :(得分:0)

我担心这个标记量需要一些时间才能呈现。

您可能无法提高实际渲染时间,但您可能会改善感知的渲染时间。

就个人而言,我只会在初始页面加载时渲染大约50个复选框,然后其余部分在DOMContentLoaded上呈现(当呈现初始HTML时)或者当用户单击“加载更多”按钮时。

答案 2 :(得分:0)

过去我遇到过类似的问题。问题似乎是页面上有大量控件(复选框,文本框,下拉列表等)。

对于存在此问题的页面,我已将大部分/全部控件从页面加载中删除。当用户点击一行时,我会使用jQuery从模板中复制一组控件。