请问如何让页面部分加载呢?

hsnhsn0916 2009-05-20 03:09:37
做了一个网站,首页速度太慢,查了下程序,发现在page_load中绑定事件消耗时间太多,BindProtypeInfo();BindComputer();BindDigital();BindHourse(); BindOffice();BindAuto();在第一次加载完,我已经给它加了缓存,也就是说第一次加载时间太长,以后就会快多了。现在我想有没有办法让它在加载的时候先执行BindProtypeInfo();事件,等它完成后并且前台显示出来后,再执行后面的事件呢?(这些事件都是相互独立的,互不影响)
...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsnhsn0916 2009-05-21
  • 打赏
  • 举报
回复
..........................
Go 旅城通票 2009-05-20
  • 打赏
  • 举报
回复
这个楼主要自己学了,分成多个加载步骤,用Ajax来加载,注意如果要同时加载,不要用同一个对象,考虑用Ajax程序池


Ajax应用程序池,参考下

if(typeof(XMLHttpRequest)=="undefined")
window.XMLHttpRequest=function(){//========IE下的XMLHttpRequst
var acX=['msxml2.xmlhttp.5.0','msxml2.xmlhttp.4.0','msxml2.xmlhttp.3.0'
,'msxml2.xmlhttp','microsoft.xmlhttp'],Xhr;
for(var i=0;i<acX.length;i++)
try{Xhr=new ActiveXObject(acX[i]);return Xhr;}catch(e){}
return false;
}

AjaxPool={
author:'showbo',
pools:[],
getObject:function(){
for(var i=0;i<this.pools.length;i++)if(this.pools[i].readyState==0||this.pools[i].readyState==4)return this.pools[i];
this.pools[this.pools.length]=new XMLHttpRequest();
return this.pools[this.pools.length-1];
},
send:function(cfg){/*cfg示例:
{url:'请求的页面',params:'参数',method:'方法,如果不传递默认为get'
,success:'成功时的回调函数'
,failure:'失败时的回调函数',otherParams:'回调函数的第2个参数,可以为json对象'}*/
if(!cfg.url)throw("url不正确!");
var method=cfg.method,asy="boolean"==typeof(cfg.asy)?cfg.asy:true;
if(!method)method="get";
if(method.toLocaleLowerCase()=='get'){
var _dc=new Date().toLocaleString().replace(/[年月日: -]/g,'')
cfg.params=cfg.params?cfg.params+'&_dc='+_dc:'_dc='+_dc;
if(cfg.url.indexOf("?")!=-1)cfg.url+="&"+cfg.params;
else cfg.url+="?"+cfg.params;
cfg.params=null;
}
else if(!cfg.params)cfg.params=null;
var o=this.getObject();
if(!o)throw("未能创建ajax对象!");
o.open(method,cfg.url,asy);
if(method.toLocaleLowerCase()=='post')o.setRequestHeader("content-type","application/x-www-form-urlencoded");
o.send(cfg.params);//params是键值对,而不是json对象,注意..如“id=1&type=2”此种形式
o.onreadystatechange=function(){
if(o.readyState==4){
if(o.status==200||o.status==0){
if("function"==typeof(cfg.success))cfg.success(o,cfg.otherParams);
}
else if("function"==typeof(cfg.failure))cfg.failure(o,cfg.otherParams);
}
}
}
}
hsnhsn0916 2009-05-20
  • 打赏
  • 举报
回复
可是ajax怎么去做呢?
alan0128 2009-05-20
  • 打赏
  • 举报
回复
ajax
hsnhsn0916 2009-05-20
  • 打赏
  • 举报
回复
能不能给个具体的办法呀?
xuan.ye 2009-05-20
  • 打赏
  • 举报
回复
1、静态页
2、ajax
takeshe 2009-05-20
  • 打赏
  • 举报
回复
用xjaxpro
fuda_1985 2009-05-20
  • 打赏
  • 举报
回复
在body上加个load方法执行后台方法返回的html流,一个一个的来就应该可以了.不过要是你有什么gridview啊分页啊,那后面的东西做起是很麻烦的!
fuda_1985 2009-05-20
  • 打赏
  • 举报
回复
ajax~

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧