ie8下ajax获取数据渲染5000行表格导致浏览器卡死

如题,使用的jquery.databatles.js插件,获取5000行,一行是6列。会导致浏览器失去响应,而且卡。ie8性能问题还是我的js代码效率太低?

阅读 7.7k
14 个回答

5000行的数据一般都做分页啊,一次性加载这么多不合理

ie8性能问题还是我的js代码效率太低?

代码效率太低,当然,不一定只是 js 。

把数据用定时器分出来100次插入table

如楼上所说,用定时器分成多次来渲染,setTimeout(fn, 0)这种方式

一般一个浏览器进程会限制内存,你一次渲染这么多数据,卡死很正常,建议分页查看

所有浏览器一次渲染这么多数据都会卡顿。。。

像楼上说用settimeout异步添加数据,或瀑布流的方式

5000条数据一次加载心够大,分页处理吧

jquery性能太低了,原生js会好很多

1是你一次渲染的数据不少,2是你用的jquery进行的渲染性能差;可以上楼上说的分页处理,采取瀑布流的方式渲染,滚动的时候依次渲染;最后还可以在服务器渲染好;发到前端可能更好些。

databatles.js中有分页功能的  ,用分页

多行数据为什么不用分页呢? 建议分一下页码吧,拼接字符串本身就比较吃性能

如果楼主一定要一次性渲染5000行数据的话,建议优化jquery代码,减少dom操作,具体怎么优化百度上有很多。最后建议楼主还是不要一次性渲染5000行数据,我弄过一次性渲染2000行数据,还有带canvas标签的,没优化jquery前,渲染要好几分钟,优化完后2000行数据也得渲染个10-20秒,但是我觉得还是可以优化的,因为我看我仿的网站2000行数据也就1秒,应该是我能力还没到那个程度......

题主建议使用服务器端分页,我昨天刚刚好写了一个相关的总结。。。

贴一下地址,里面有客户端分页.服务器端分页的demo,使用的组件是 bootstrapTable

我的经验

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题