ajax异步加载页面,减少用户面对空白网页时间
2013-07-03 08:32
246 查看
这个问题网上讲的比较多,我也不知道自己是不是重复造轮子。反正也算是原创,不一定通用但毕竟能解决一些问题。当用户打开一张网页时,如果说页面中的元素比较多,可能会加载一段时间,如果再加上网络环境不太好的情况下,用户可能会面对一张空白的正在加载的页面,会有一种死机的感觉,对于一些不太懂电脑的人来说可能会感到到焦虑。我觉得最好是能先给用户看到部分的网页内容,至少让用户放心,我这个网页是能打开的,然后剩下大量的内容通过异步方式加载,加载过程中显示【数据加载中,请等待....】等这样的等待效果。(本来我想整个网页加载过程中显示等待页面,但是没搞定,首先导致页面速度慢不是后台数据处理的原因,纯粹是页面显示的元素过多,页面没有被完全加载之前,没有办法调用DIV等页面上任何元素,所以无法也显示等待效果,本来想在父页面上调用等待效果,但是我的子页面是window.open方式打开,结果子页面永远在最前端,父页面上的DIV可能遮罩住子页面吗,用Iframe理论上可以,但也没搞定)
//这是我页面上的DIV, content2 中将会加载大量标签
//div longding是一个等待效果
<div id="content2" style=" overflow-y:scroll; overflow-x:hidden; width:1500px">
<div id="loading">页面加载中,请等待。。。</div>
</div>
//主要思路,下面是jquery 异步去加载这些标签内容,加载成功后替换DIV longing
$.post("createBody.ashx", {},
function(data) {
$("#loading").replaceWith(data);
});
//createBody .ashx生成大量的tr,td,div用于返回
public void ProcessRequest (HttpContext context) {
string strb = testCreate();
context.Response.Write(strb);
}
private string testCreate()
{
StringBuilder strB = new StringBuilder();
strB.Append(" <table id=\"tb\" width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" class=\"newtable\">");
for (int i = 0; i <= 300; i++)
{
strB.Append("<tr>");
for (int j = 1; j <= 30; j++)
{
strB.Append("<td class=\"newtd2\"><div style=\"width:30px\">" + i + " </div></td>");
}
strB.Append("</tr>");
}
strB.Append(" </table>");
return strB.ToString();
}
//这是我页面上的DIV, content2 中将会加载大量标签
//div longding是一个等待效果
<div id="content2" style=" overflow-y:scroll; overflow-x:hidden; width:1500px">
<div id="loading">页面加载中,请等待。。。</div>
</div>
//主要思路,下面是jquery 异步去加载这些标签内容,加载成功后替换DIV longing
$.post("createBody.ashx", {},
function(data) {
$("#loading").replaceWith(data);
});
//createBody .ashx生成大量的tr,td,div用于返回
public void ProcessRequest (HttpContext context) {
string strb = testCreate();
context.Response.Write(strb);
}
private string testCreate()
{
StringBuilder strB = new StringBuilder();
strB.Append(" <table id=\"tb\" width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" class=\"newtable\">");
for (int i = 0; i <= 300; i++)
{
strB.Append("<tr>");
for (int j = 1; j <= 30; j++)
{
strB.Append("<td class=\"newtd2\"><div style=\"width:30px\">" + i + " </div></td>");
}
strB.Append("</tr>");
}
strB.Append(" </table>");
return strB.ToString();
}
相关文章推荐
- 页面响应时间测试面对项目中的异步加载技术
- 减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名
- web开发的性能准则(减少页面加载时间方面)
- web开发的性能准则(减少页面加载时间方面)
- 关于webview加载网页出现打不开网页或者空白页面情况的处理
- 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
- 减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
- 使用Ajax异步加载页面时,怎样调试该页面的Js
- 使用nginx收集用户页面加载时间
- web开发的性能准则(减少页面加载时间方面)
- web开发的性能准则(减少页面加载时间方面)
- 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
- Django 1.11 前端数据异步加载(前端页面单独请求用户登录状态)
- 网页异步加载之AJAX理解
- web开发的性能准则(减少页面加载时间方面)
- web开发的性能准则(减少页面加载时间方面)
- 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
- 新站如何减少页面加载时间
- web开发的性能准则(减少页面加载时间方面)
- Ajax学习之在一个页面中异步的加载另一个页面内容