我有一个.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 -->
感谢您的帮助。
答案 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从模板中复制一组控件。