Sundsvallskommun / OpenEMap-WebUserInterface

Open eMap user interface for the main map client
GNU Affero General Public License v3.0
4 stars 5 forks source link

Fel i mapclient med iE9 #66

Closed annakaren closed 10 years ago

annakaren commented 10 years ago

när man tänder några lager och zoomar lite låser sig kartan och svarar inte på anrop Detta gäller iaf Internet Explorer 9, flera felmeddelande visas i konsolen.

ghost commented 10 years ago

JavaScript felmeddelanden som jag fått från @annakaren:

SCRIPT5007: Det går inte att hämta värdet för egenskapen destroy: objektet är null eller odefinierat 
OpenLayers.js, rad 169 tecken 301
SCRIPT5007: Det går inte att hämta värdet för egenskapen load: objektet är null eller odefinierat 
geoext2-all.js, rad 21 tecken 474
SCRIPT5007: Det går inte att hämta värdet för egenskapen load: objektet är null eller odefinierat 
geoext2-all.js, rad 21 tecken 474
ghost commented 10 years ago

Jag kan reproducera felet och får följande JavaScript fel:

SCRIPT5007: Det går inte att hämta egenskapen load för en referens som är odefinierad eller null
Fil: ext-debug.js, rad: 10286, kolumn: 21

När jag debuggar felet ser det ut att ha något att göra med hantering av lagerlistan och legendbilder och cachade resurser i Ext JS. Tittar jag längre upp ser det ut att handla om specialfallskod i Ext JS just för IE9. Jag kan inte reproducera felet i IE10 eller IE11.

Jag misstänker att OpenLayers-felet som jag också kan reproducera är ofarliga.

Det finns en supportversion av Ext JS 4 (4.2.2) som kan köpas men jag tror chansen att detta problem är löst i 4.2.2 är låg. Jag tror inte heller det går lätt att lösa på något annat sätt, men det finns en eventuell chans att det kan fungera om man tar bort legendfunktion från IE9.

anderserla commented 10 years ago

Hur mycket jobb är det?

ghost commented 10 years ago

Estimerar till 2h för att få bort legenden om man har IE9 (troligen enkel kodinsats men besvärlig att testa)

annakaren commented 10 years ago

Kommentar från Patrik @patrik1 på Cybercom:

Stabiliteten i kartan är inte tillräcklig. Vid vanligt användande händer det ofta att kartan "fryser" och att man inte kommer vidare på annat sätt än att stänga ner browser-taben och öppna en ny.

För att reproducera felet:

  1. Ladda kartan
  2. Aktivera informationslagret för fastighetsgränser
  3. Välj ut en ort och zooma in stegvis, tills zoom-nivån är maximal
  4. Zooma ut stegvis, tills zoom-nivån är minimal
  5. Välj ny ort och upprepa steg 3-4 igen.

När ovan sekvens repeteras med Internet Explorer 11 frysen kartan i princip varje gång utan att en enda cykel av sekvensen fullbordas. Stabiliteten är mycket bättre i firefox, där sekvensen kan upprepas flera gånger utan att kartan "fryser".

Troligtvis har detta något att göra med informationslagren eftersom ovan sekvens kan upprepas utan problem om man inte aktiverar något informationslager.

annakaren commented 10 years ago

@sweco-sebhar högsta prioritet att lösa detta så vi kan släppa en version.

ghost commented 10 years ago

Vilken konfiguration är det som använts för detta test? Finns den att testa deployat på något ställe jag kommer åt?

patrik1 commented 10 years ago

Mina tester är gjorda på: http://194.71.24.168/OpenEMap-1.0.3.8/index-with-config.html?configId=64

ghost commented 10 years ago

Det ser ut som denna testsite tvingar IE att köra i "IE9"-läge. Någon har lagt till taggen meta http-equiv="X-UA-Compatible" content="IE=9" i filen index-with-config.html. Detta förklarar varför felet uppstått i testerna även med IE10 och IE11.

Preliminärt ser det ut som att problemet löses om man tar bort legend i IE9, vilket jag fixat i 18990b3e3335606a4cf0d96aa9748fad398be9fb.

Observera att så länge man har lagt till metatag enligt ovan i integrerande sida kommer legend ej visas även i IE10 och IE11. Att tvinga IE köra i kompatibilitetsläge är inget jag kan rekommendera...

anderserla commented 10 years ago

OK enligt Anna.