这样的首页该怎么办???----------------求高手指点下!
首页上列表有几十个,都是操作不同的表,而且数据量都很大。
列表的数据都是 今日排行,本周排行,本月排行这样的列表。
我用Repeater 查询绑定,把网站放在服务器上,打开需要几分钟。
有什么办法解决这个问题??? 求高手指点!
------解决方案--------------------
第一:不要使用服务器控件,使用HTML标签
第二:使用缓存技术,长时间不用更新的就不用每次查询
第三:使用延迟加载技术,在网页尾部的判断浏览器的滚动条位置,加载,这样一个网站就区分成几块了。
第四:使用的的图片可需要做延迟加载或者异步加载。
第五:其他。这个数据库设计,服务器带宽,后台编码造成的。
------解决方案-------------------- 1:做数据缓存
2: 首页生成静态页面
3:用http长连接加载
------解决方案--------------------数据缓存是必须的... 在有就是不要用服务器控件 那都是浮云...
用异步请求吧~ 块状加载页面 不要一次加载完全....... 页面布局可能存在布局的问题. 不要用table...
------解决方案--------------------对啊。。 后台多用缓存,数据延迟加载,数据库建索引 ~
------解决方案-------------------- 排行榜的话,你可以设定几分钟去统计一次,统计好了,记录下统计时间和统计结果,放到 HttpRuntime.Cache 里面, 页面上绑定的话, 直接去 HttpRuntime.Cache 获取绑定数据
------解决方案--------------------对代码进行优化,多使用缓存。
首页上的查询太多 建议多用存储过程之类的
------解决方案--------------------个人觉得缓存数据,或者是延迟的加载可以考虑一下,也就是数据时在dom加载完成以后,用ajax去取数据的。
还有就是数据可以缓存。从数据库中取到数据就缓存。对于新的数据,可以去数据库取,然后在放到缓存中,以备下次使用,还有就是对于数据库数据的检索,提取,也是可以加快速度,索引的加入等等。
------解决方案--------------------我感觉应该是你的repeater控件加载和绑定消耗你的资源和时间,是否可以用客户端绑定(<%=%>)的形式?这样的话就直接用一个全局的DataTable,然后客户端调用输出一个表格就行了。记得在td中用<%=数据源%>.
------解决方案--------------------将动态页生成html页面,然后直接访问html页面。
------解决方案--------------------在前台页面动态绑定数据 或则生成静态页面
------解决方案--------------------用局部静态的方式去解决... 必须是动态获取的数据 那就动态获取,其他不是必须的都做静态处理,每天按时自动生成..
如 你所说的 “列表的数据都是 今日排行,本周排行,本月排行这样的列表” 这些数据 可能就只有今日排名是必须动态的,其他两项都可以事先生成html文件
方法有很多,也可以用延迟加载,缓存......之类的
------解决方案--------------------
------解决方案--------------------优化数据库啊
------解决方案--------------------单独建一个排行表并缓存(因为很小),数据与其他表同步(当计数超过分类的最小值的时候)
------解决方案--------------------首页显示无非就那几个字段,标题\时间\ID什么的,你用union all查询,在加上缓存 .Response.Write输出,基本可以了
------解决方案--------------------
------解决方案--------------------异步一下,定下列表执行顺序,并且通过AJAX异步可以提高客户体验,
如30个列表,提供一个基类方法,参数为列表号。当第一个执行完再执行第二个。
列表不适用服务器控件,最好是纯HTML。或者后台自己拼接好成HTML字符串,然后直接屏幕输出。
------解决方案--------------------首先要做数据库优化。
排行榜什么的一概单独建表,建查询更新存储过程,并添加作业指定一定时间更新,比如一小时一次。
这么干完,你的查询速度就已经可以飞快了。
再可以进一步优化webserver端的程序。比如缓存、异步、静态化、shtml什么的。
------解决方案--------------------个人测试过repeater 和 table 时间差不多 几乎可以忽略不计 可以使用 压缩缓存软件 尝试一下
------解决方案--------------------几分钟也太夸张了,默认的脚本超时也不过90秒