主要看思路:区域数据去重 + JavaScript一次性展示几万条数据实例代码
近期做1功能,Gis地图 基于百度地图api , 会遇到的问题的,
如后台接口给的数据很多,大几千上万的,如果拿了数据直接渲染dom ,这滋味爽爽的。
再遇上 客户端浏览器悲催的,这卡顿就来了...
前端大量数据渲染的一个弊端。
想到的处理方式:
1. 数据的去重合并
基于当前可是屏幕范围,拿到baidu对应的 经维度区域,baidu api 里有 getBounds 和 getZoom 方法
var viewArea = map.getBounds(); // 可视区域 var mapScale = map.getZoom(); // 地图放大缩小比例
对应后台接口返回数据,要拿基于这个可是区域的维度范围进行返回,
如果回来有万以上,在页面上展示这么多也没实际意义,
前端需要自己进行数据过滤,基于放大缩小比例, 屏幕上返回数据偏差不大的要进行去重 (这个算法就先不细说了)
最先想到的是 2组数据循环对比去重,怎么看都不太对啊,这要数据多了??? 不用想,绝对要挂的节奏....
-------------------------------
和架构师聊了,给了个建议,效率上好很多, 看下图:
给的思路:
1. 基于区域画格子,算出格子对应的经纬度,构造1个二维数组的数据;
2. 拿到后台返回的数据,循环时,算出在二位数组中对应的位置,如状态为无就认为该条数据有效,更改对应二位数组数据的状态, 如已经有状态了数量丢弃,对应的状态数量+1;
处理出有效的数据......扯的有点远了
2. 数据的分片渲染展示
如果有效数据还是很多,假如有大几千几万的,一次展示全也是苦哈哈的;
处理方式其实也不复杂, 把数据照一定数量进行分块,定时异步展示出;
如有6000条数据, 可照1000条拆成6组, 先拿1组展示,循环定时展示出其他....
思路基本上是这样
更多细节也可参考看到的一文章, 里面有个保持数据插入的次序不错,可作参考
JavaScript一次性展示几万条数据实例代码: http://www.php.cn/js-tutorial-360591.html
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- JavaScript如何一次性展示几万条数据
- javascript、jQuery的扩展方法,扩展实例展示代码
- C++ 将文件数据一次性加载进内存实例代码
- JavaScript根据数据生成百分比图和柱状图的实例代码
- JavaScript用二分法查找数据的实例代码
- 微信小程序服务器请求和上传数据,上传图片并展示,提交表单完整实例代码附效果图
- Soql代码实例一般的数据展示到模糊查询
- JavaScript根据数据生成百分比图和柱状图的实例代码
- 【实例下载】javascript代码在html显示xml数据上一条记录和下一条记录
- 记入cookie一个ip一天只弹一次的弹窗代码-JavaScript实例教程
- el表达式 写入bootstrap表格数据页面的实例代码
- ASP之处理用Javascript动态添加的表单元素数据的代码
- JavaScript常用检测脚本实例代码
- JavaScript代码实例:拖动对象 Drag Object (兼容:IE、Firefox、Opera ... )