Asp.net mvc 如何使用传单修复地图在Firefox浏览器上运行速度非常慢
我使用<代码>传单创建了一个地图,它在Chrome中运行良好,但在Fiefox中运行不好。在Firefox中,地图运行非常慢。 这是Asp.net mvc 如何使用传单修复地图在Firefox浏览器上运行速度非常慢,asp.net-mvc,leaflet,Asp.net Mvc,Leaflet,我使用传单创建了一个地图,它在Chrome中运行良好,但在Fiefox中运行不好。在Firefox中,地图运行非常慢。 这是 如何修复它 由于需要绘制的多边形数量较多,浏览器速度会减慢。根据几何体的规模和复杂性,为整个美国(超过3000个)绘制县边界可能会对浏览器资源造成相当大的负担。请通过注释掉insertCountyData方法查看 // insertCountyData(); 我建议实施一种不同类型的策略,以减少浏览器需要呈现的数据量。下面我列出了一些策略,前两个策略涉及减少一次渲染
如何修复它 由于需要绘制的多边形数量较多,浏览器速度会减慢。根据几何体的规模和复杂性,为整个美国(超过3000个)绘制县边界可能会对浏览器资源造成相当大的负担。请通过注释掉
insertCountyData
方法查看
// insertCountyData();
我建议实施一种不同类型的策略,以减少浏览器需要呈现的数据量。下面我列出了一些策略,前两个策略涉及减少一次渲染的县数量
- 根据缩放级别和对象的位置添加县边界
- 另一个选项是,当用户单击某个州时,将该州添加到该州。这将减少需要渲染的多边形的总量
- 使用渲染器渲染数据。请参阅前面回答的问题,这实际上非常相似
- 减少由加载的数据量
我希望这有帮助。大量多边形的客户端渲染可能非常繁重,使用这些不同的策略有助于缓解性能问题。Firefox似乎不太擅长渲染许多SVG。一个对我有效的解决方案是将渲染器切换到画布
var map = L.map('map', {
renderer: L.canvas()
});
没错。问题是insertCountyData()方法绘制了许多边界,我按照您建议的步骤1和步骤2修复了它,但我的问题是为什么它在Chrome上运行良好,而Firefox却不是。Chrome有不同的javascript引擎,并且根据版本的不同,在javascript上通常比其他浏览器快很多倍。我建议简化县上的几何图形。我有一个县的简化版本,加载速度非常快。我将这些县放入一个2mb KML文件中(使用KMZ时甚至更少)。