亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Navigieren Sie zwischen Seiten mit Leaflet.js + Vue.js – Problem mit Speicherverlust behoben
P粉649990273
P粉649990273 2024-01-08 13:39:55
0
1
780

Ich versuche, eine Vue.js-Anwendung zu erstellen, die viele Leaflet-Karten enth?lt.

Die folgende jsfiddle ist ein Beispiel für die Anwendung, die ich zu erstellen versuche:

https://jsfiddle.net/RayLa/vr2b6ad7/126/

Die spezifischen Kartenkomponenten sind wie folgt:

const MapComponent = {
  template: '<div id="map">About</div>',
  mounted(){
    let map = L.map('map').setView([51.505, -0.09], 8);
    L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
    
    fetch("https://raw.githubusercontent.com/martinjc/UK-GeoJSON/master/json/administrative/gb/lad.json")
      .then((response) => response.json())
      .then((data) => {
        L.geoJSON(data).addTo(map);
      })
  }
};

Die Anwendung enth?lt zwei Seiten, eine ?Home“-Seite und eine ?Karten“-Seite. Die Seite ?Karten“ enth?lt Prospektkarten. Die App sieht so aus:

Das Problem besteht darin, dass beim Navigieren von der Kartenseite zur Startseite und wieder zurück scheinbar ein massiver Speicherverlust vorliegt. In den Chrome-Entwicklertools wird auf der Registerkarte ?Speicher“ unten die von der Anwendung beim Start verwendete Speichermenge angezeigt (73,8 MB):

Wenn ich mehrmals von der ?Home“-Seite zur ?Karte“-Seite klicke, ist die von der Anwendung verwendete Speichermenge wie folgt (739 MB):

Wenn ich st?ndig zwischen den beiden Seiten klicke, stürzt die App aufgrund von Speichermangel irgendwann ab. Ich kann die Ursache des Speicherverlusts nicht herausfinden.

Wie entlade ich eine Komponente, sodass alle zugeh?rigen Daten aus dem Speicher gel?scht werden?

Wei? jemand, wie man dieses Problem l?st? Ich bin mir nicht sicher, ob das mit Leaflet.js für Vue.js zu tun hat.

P粉649990273
P粉649990273

Antworte allen(1)
P粉340264283

我不是 vue 專家,但我很確定問題是你沒有正確銷毀傳單地圖。您必須調用 map.remove() (https://leafletjs .com/reference.html#map-remove),否則保存地圖的 DOM 節(jié)點將保留在內存中,即使您的組件早已消失。

一旦您導航回主頁,vue 路由器就會銷毀您的 MapComponent,并且您可以使用 destroyed 生命周期掛鉤來刪除它的傳單地圖。請參閱此小提琴: https://jsfiddle.net/wuo15b4L/

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage