WEB项目,浏览器渲染大数据量html有关问题,耗时较长

WEB项目,浏览器渲染大数据量html问题,耗时较长
本帖最后由 u011278496 于 2014-04-11 17:29:29 编辑
项目中涉及到报表,用html模拟excel格式写成。
点击某个报表后,后台开始读取html模板,进行一些数据替换。
最终拼接好html串后,respose写到浏览器。

有几个大的表单,打开耗时较长。
其中,拼接html串耗时 3 s 
           respose写出到浏览器 7~8 s
           将html串完全渲染显示7~8 s

基本打开到看到 需要17s左右。

不考虑分页,滚动条下拉刷新。因为每次操作报表时候,需要设计到整个表的数据。

求大神出点招
------解决方案--------------------
内部项目就忍了WEB项目,浏览器渲染大数据量html有关问题,耗时较长
------解决方案--------------------
建议深入了解需求,并挖掘客户最本质最直接的需求,然后再选着相应技术进行解决。技术在发展但不是万能的,也有技术无法解决的时候,这时候就需要进行需求本质的挖掘,找到可行的方案。
你的一要求冒失无法解决。
------解决方案--------------------
1. 从数据角度看,如果你的报表数据不要求实时的,比如今天只需要看昨天以前的,那么你的数据是否可以通过定时跑出最终爆表格式数据缓存起来(可以是一个结果表);
2. 如果一定要实时数据,可以参考淘宝前端的动静分离方案,HTML格式是否可以做到预定义?随后填充的数据是否可以通过异步的方式加载?如果可以,那么预定义的HTML可以结合服务器端缓存、浏览器端缓存,减少多次加载的时间;异步获取填充数据可以进一步减少网络流量;
3. 从你给出的执行时间看,估计第一步就包含了报表数据的获取,按你的描述,3秒钟似乎也不算长,但是输出到客户端花费了7~8秒,难道是带宽不够?能启用GZip压缩否?整个HTML在浏览器端渲染也花费了7~8秒,是否HTML的结构可以改善?难道是整个报表就是一个大table里面嵌套N层小table?如果是,尝试修改结构吧
------解决方案--------------------
你在服务器端就生成的html字符串,你发给客户端时,文件太大肯定会慢,你直接将数据采用ajax方法发到客户端,在客户端进行html页面生成,减少了网络流量,这样会快一点吧,再不行的话,就考虑分页,客户也不可能一下子就看完所有记录