特定域名下多MAPBOX GL-JS地图报DOMException: Operation too large错误
同一页面运行多个Mapbox GL-JS地图触发"DOMException: Operation too large"错误
近期在同一页面运行多个Mapbox GL-JS地图时,出现了DOMException: Operation too large错误。
错误日志:
blob:https://yrpa.co…abcc-70b9646eef89:1 Uncaught (in promise) DOMException: Operation too large. Promise.then (async) (anonymous) @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 Promise.then (async) t.enforceCacheSizeLimit @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 enforceCacheSizeLimit @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 processTask @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 cancelCallbacks.<computed>.scheduler.add.t.metadata.type @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 add @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1 receive @ 1c1d7fe3-7456-4fc3-abcc-70b9646eef89:1
使用如下简单代码时,该错误看似无影响,但添加图片、多边形等要素后,约半数情况下要素无法加载,错误随之触发。
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <link href="https://api.mapbox.com/mapbox-gl-js/v2.9.2/mapbox-gl.css" rel="stylesheet"> <script src="https://api.mapbox.com/mapbox-gl-js/v2.9.2/mapbox-gl.js"></script> <style> #map_a { position: absolute; width: 100%; height: 100%; } #map_b { position: absolute; bottom: 0; width: 50%; height: 50%; } </style> </head> <body> <div id="map_a"></div> <div id="map_b"></div> </body> </html> <script> const satelite = "mapbox://styles/irpa/cl67ly2a8000214qo7ys3qvv1"; const outdoors = "mapbox://styles/irpa/cl6pdhle7000w15o3lfunszkt"; mapboxgl.accessToken = "pk.eyJ1IjoiaXJwYSIsImEiOiJjbDh1a2s2dTQwNHdnM3Btb2U1NnJwNWdtIn0.LltQLXeHaIEpNuX3SJLXoQ"; const map_a = new mapboxgl.Map({ container: "map_a", style: satelite }); const map_b = new mapboxgl.Map({ container: "map_b", style: outdoors }); </script>
为排查原因,在多服务器、浏览器、地图样式、域名及MAPBOX令牌上测试了相同代码,发现以下规律:
- 域名:错误与域名绑定,即使指向同一服务器/路径/文件,部分域名会触发错误,部分不会;
- 浏览器:Chrome(105.0.5195.127)会显示错误,Edge(105.0.1343.53)不会,但Edge也有约半数情况要素无法加载;
- 样式:两张地图使用同一特定样式(satelite)时无错误,使用不同样式则触发错误;
- Babel:错误关联Babel转译问题,但服务器未使用Babel;
- 其他:更换服务器(Ubuntu 22.04 LTS)、配置(CPU、内存)及MAPBOX令牌(公开、域名绑定)均无影响,多数情况出现'requestAnimationFrame'违规,但与本问题无关。
内容的提问来源于stack exchange,提问作者Nino
相关产品推荐
相关产品推荐

