You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

特定域名下多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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:50:27