如何在Leaflet地图图块提供程序上使用DNS预取?

时间:2018-11-20 08:57:29

标签: dns leaflet cross-domain subdomain prefetch

我在Leaflet地图中使用了多个地图图块提供程序,并希望在地图图块层提供程序/站点上使用DNS预取以减少页面加载时间。但这令人困惑,因为这些网站的URL使用格式为https://{s}.tile.openstreetmap.org/a.tile.openstreetmap.org的{​​{1}}的不同子域。

b.tile.openstreetmap.org

我应该如何对这些外部资源使用DNS预取。我是否必须为每个子域使用var mapnik = L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { attribution: "&copy; <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a>" }); var stamenT = L.tileLayer("https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png", { attribution: "Map tiles by <a href='https://stamen.com'>Stamen Design</a>, <a href='https://creativecommons.org/licenses/by/3.0'>CC BY 3.0</a> &mdash; Map data &copy; <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a>", subdomains: "abcd" }); ,还是只对一个子域使用一个(例如,仅使用:

  

link rel="dns-prefetch preconnect"

代替:

  

<link rel="dns-prefetch preconnect" href="https://openstreetmap.org">   <link rel="dns-prefetch preconnect" href="https://a.tile.openstreetmap.org">

等)。

1 个答案:

答案 0 :(得分:1)

您需要在每个子域上使用dns-prefetchpreconnect,因为DNS不了解什么构成域和子域。看看有什么区别会很有趣。