我正在尝试优化包含传单地图的网页的速度。根据GTMetrix和Google PageSpeed Insight,我应该:
对于优化传单地图的类似经验,我将不胜感激。值得内嵌Leaflet的JS和CSS吗?我可以修改代码以调用其他较浅格式的“ arcgisonline.com”图像吗?
我的简单网页的代码
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.4.0/leaflet.css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.4.0/leaflet.js'></script>
<div id='myMap' style='height:700px;width:700px;'></div>
<script>
var map = L.map('myMap').setView([51.505, -0.09], 13);
L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {maxZoom: 19, attribution: 'Tiles © Esri — Source: Sources: Esri, DigitalGlobe'}).addTo(map);L.tileLayer('https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}', {maxZoom: 19}).addTo(map);
L.tileLayer('https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/tile/{z}/{y}/{x}', {maxZoom: 19}).addTo(map); L.marker([51.505, -0.09]).addTo(map);
</script>
非常感谢您。
答案 0 :(得分:1)
您所指的大多数速度“优化”是针对网页的,而对Leaflet的定义则很少。
通常通过仅将JS(包括Leaflet脚本标签)放置在页面主体的末尾来进行延迟,这样就不会延迟其余HTML的渲染。
您可以实现真正的延迟,但是它将变得更加复杂,以确保在完成Leaflet加载后执行脚本;在这种情况下,最简单的方法是实际上将Leaflet JS与脚本一起内联。但是,如果您的访客浏览到使用了这些完全相同资产的其他网站,那么您将失去潜在的Leaflet资产缓存。
对于Leaflet,您还可以使用“骨架”作为地图的占位符,以便在Leaflet和脚本加载时访问者看到静态图像。确保您有权托管静态图片。
答案 1 :(得分:1)
这已经很老了,可能对您的问题有点笼统,但是关于地理数据: