我在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: "© <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> — Map data © <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">
等)。
答案 0 :(得分:1)
您需要在每个子域上使用dns-prefetch
和preconnect
,因为DNS不了解什么构成域和子域。看看有什么区别会很有趣。