Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何使用传单修复地图在Firefox浏览器上运行速度非常慢_Asp.net Mvc_Leaflet - Fatal编程技术网

Asp.net mvc 如何使用传单修复地图在Firefox浏览器上运行速度非常慢

Asp.net mvc 如何使用传单修复地图在Firefox浏览器上运行速度非常慢,asp.net-mvc,leaflet,Asp.net Mvc,Leaflet,我使用传单创建了一个地图,它在Chrome中运行良好,但在Fiefox中运行不好。在Firefox中,地图运行非常慢。 这是 如何修复它 由于需要绘制的多边形数量较多,浏览器速度会减慢。根据几何体的规模和复杂性,为整个美国(超过3000个)绘制县边界可能会对浏览器资源造成相当大的负担。请通过注释掉insertCountyData方法查看 // insertCountyData(); 我建议实施一种不同类型的策略,以减少浏览器需要呈现的数据量。下面我列出了一些策略,前两个策略涉及减少一次渲染

我使用<代码>传单创建了一个地图,它在Chrome中运行良好,但在Fiefox中运行不好。在Firefox中,地图运行非常慢。 这是
如何修复它

由于需要绘制的多边形数量较多,浏览器速度会减慢。根据几何体的规模和复杂性,为整个美国(超过3000个)绘制县边界可能会对浏览器资源造成相当大的负担。请通过注释掉
insertCountyData
方法查看

 //  insertCountyData();
我建议实施一种不同类型的策略,以减少浏览器需要呈现的数据量。下面我列出了一些策略,前两个策略涉及减少一次渲染的县数量

  • 根据缩放级别和对象的位置添加县边界

  • 另一个选项是,当用户单击某个州时,将该州添加到该州。这将减少需要渲染的多边形的总量

  • 使用渲染器渲染数据。请参阅前面回答的问题,这实际上非常相似

  • 减少由加载的数据量


我希望这有帮助。大量多边形的客户端渲染可能非常繁重,使用这些不同的策略有助于缓解性能问题。

Firefox似乎不太擅长渲染许多SVG。一个对我有效的解决方案是将渲染器切换到画布

var map = L.map('map', {
  renderer: L.canvas()
});

没错。问题是insertCountyData()方法绘制了许多边界,我按照您建议的步骤1和步骤2修复了它,但我的问题是为什么它在Chrome上运行良好,而Firefox却不是。Chrome有不同的javascript引擎,并且根据版本的不同,在javascript上通常比其他浏览器快很多倍。我建议简化县上的几何图形。我有一个县的简化版本,加载速度非常快。我将这些县放入一个2mb KML文件中(使用KMZ时甚至更少)。