Saya mencoba untuk mempercepat waktu pemuatan ubin dari peta permainan khusus saya: www.nwnevilparty.com, kebetulan saya memiliki domain lain yang tidak melakukan apa pun www.evilpartynwn.com, yang ingin saya gunakan untuk membantu memuat ubin. Saat ini Host saya tidak mengizinkan subdomain, jadi saya dibiarkan begitu saja.

Di sinilah saya meneliti dari: https://leafletjs.com/reference-1.6. 0.html#tilelayer


Apa yang saya coba:

// 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);

Apa yang saya lakukan salah dan mengapa contoh saya tidak berfungsi?

1
Sorcerer 23 April 2020, 07:10

1 menjawab

Jawaban Terbaik

Dalam JavaScript, operator || mengembalikan operan kiri jika benar, jika tidak operan di kanan. Selanjutnya, itu dieksekusi di mana dinyatakan.

Dalam kasus Anda: 'nwnevilparty.com' || 'evilpartynwn.com' string kiri yang tidak kosong adalah benar, oleh karena itu selalu merupakan hasil operasi.

Lebih jauh lagi, dalam templat URL Lapisan Ubin Selebaran, hanya placeholder s yang memiliki arti khusus untuk mengatasi batasan permintaan simultan browser per domain. Karena dalam kasus Anda, Anda menggunakan server, Leaflet tidak mencoba sesuatu yang istimewa dengannya, kecuali menggantinya dengan string konstan Anda.

Sesuai dokumen untuk s placeholder: (penekanan milik saya)

{s} berarti salah satu subdomain yang tersedia (digunakan secara berurutan untuk membantu permintaan paralel browser per batasan domain; nilai subdomain ditentukan dalam opsi [...])

Dan opsi subdomains:

Subdomain dari layanan ubin. Dapat diteruskan dalam bentuk satu string (di mana setiap huruf adalah nama subdomain) atau array string.

Karena itu Anda harus menggunakan:

L.tileLayer('http://{s}/maps/barovia/{z}/{x}/{y}.png', {
  subdomains: ['nwnevilparty.com', 'evilpartynwn.com'], // also note that it should not be on a separate options object
  noWrap: true,
  bounds: new L.LatLngBounds(southWest, northEast)
}).addTo(map);
4
ghybs 23 April 2020, 08:02