扫码关注官方订阅号
百度地图上的点,希望一次性标注到地图上,ajax请求的数据量很大,保存为txt文件都有30多m,前端在性能优化上能做什么?
学习是最好的投资!
实在不明白你为什么要加载那么多数据,那么大的数据浏览器肯定会卡顿的,建议分批(分页)加载。
既然问题修改了,重答下。
这里思路应该是类似的:使用流式传输,一边传输一边解析,解析出来就标记到界面上。有两个实现方案:
使用 WebSocket
使用 Server-side event
这两个方案都可以持续性从服务器获取数据,而不是一次性拉下来一大坨,然后再慢慢解析。
当然,你用 ajax 一次取一点点多取几次也不是不可以,不过那样网络负担可能会更大。具体的,还是看你们的业务吧。
Ajax 30+M 的 JSON 交给前端优化,贵司真是心大……
我能想到的就是把这一坨丢给 Service Worker 去解析,避免卡死 UI。
不过这不是重点吧,后端分块啊!
贵司的后端同学心真大, 30M的文件,他怎么弄出来的,是日志文件么?
火影忍者写成书都不够30M的。
打包一个小说集合都够了,这还前端解析。
只能分批加载,而且就算分批加载,最终前端也无法全部数据加载出来,会卡死页面的。
后面数据多了以后只能一边销毁一边新加载。
这种情况关键是你一次性拿到的数据量太多,这样性能上的问题可想而知,前端不太好优化的,一个就像楼上所说的,让后端配合你进行分页功能;再退一步可以让后端把数据渲染到页面上,你再去拿,这个方法算是折中吧,比ajax一次性拿要好些
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
实在不明白你为什么要加载那么多数据,那么大的数据浏览器肯定会卡顿的,建议分批(分页)加载。
既然问题修改了,重答下。
这里思路应该是类似的:使用流式传输,一边传输一边解析,解析出来就标记到界面上。有两个实现方案:
使用 WebSocket
使用 Server-side event
这两个方案都可以持续性从服务器获取数据,而不是一次性拉下来一大坨,然后再慢慢解析。
当然,你用 ajax 一次取一点点多取几次也不是不可以,不过那样网络负担可能会更大。具体的,还是看你们的业务吧。
Ajax 30+M 的 JSON 交给前端优化,贵司真是心大……
我能想到的就是把这一坨丢给 Service Worker 去解析,避免卡死 UI。
不过这不是重点吧,后端分块啊!
贵司的后端同学心真大, 30M的文件,他怎么弄出来的,是日志文件么?
火影忍者写成书都不够30M的。
打包一个小说集合都够了,这还前端解析。
只能分批加载,而且就算分批加载,最终前端也无法全部数据加载出来,会卡死页面的。
后面数据多了以后只能一边销毁一边新加载。
这种情况关键是你一次性拿到的数据量太多,这样性能上的问题可想而知,前端不太好优化的,
一个就像楼上所说的,让后端配合你进行分页功能;
再退一步可以让后端把数据渲染到页面上,你再去拿,这个方法算是折中吧,比ajax一次性拿要好些