使用多个域在Leaflet.js(而非子域)中更快地加载图块

问题描述 投票:1回答:1

我正在尝试加快自定义游戏地图的图块加载时间:www.nwnevilparty.com,我碰巧有另一个域什么也不做((www.evilpartynwn.com)),我想使用该域帮助加载瓷砖。目前,我的主机不允许子域,所以我只剩下那个。

这是我正在研究的地方:https://leafletjs.com/reference-1.6.0.html#tilelayer


我尝试过的:

// Original line
main = L.tileLayer('maps/barovia/{z}/{x}/{y}.png', {noWrap: true, bounds: new L.LatLngBounds(southWest, northEast),}).addTo(map);

// Modified line -- Why only nwnevilparty.com gets used for tiles?
main = L.tileLayer('http://{server}/maps/barovia/{z}/{x}/{y}.png', {server: 'nwnevilparty.com' || 'evilpartynwn.com'}, {noWrap: true, bounds: new L.LatLngBounds(southWest, northEast),}).addTo(map);

我在做什么错,为什么我的示例不起作用?

leaflet
1个回答
1
投票

在JavaScript中,如果||运算符为truthy,则返回左侧的操作数,否则返回右侧的操作数。此外,在规定的地方执行。

在您的情况下:'nwnevilparty.com' || 'evilpartynwn.com'左非空字符串是真实的,因此它始终是运算的结果。

此外,在[Leaflet Tile Layer URL]模板中,只有s选项具有特殊含义,可以解决每个域的浏览器同时请求限制。由于在您使用server的情况下,Leaflet不会尝试任何特殊操作,只是用您的常量字符串替换它。

根据s占位符的文档:(重点是我的]

{s}表示可用的子域之一(依次用于限制每个域的浏览器并行请求; subdomain值在选项[...]中指定)

subdomains选项:

切片服务的子域。可以以一个字符串(每个字母是一个子域名)或字符串数​​组的形式传递。

因此,您应该使用:

subdomains
© www.soinside.com 2019 - 2024. All rights reserved.