Microsoft: Du skal ikke tilpasse dit websted til Edge - hvis du koder på den rigtige måde

Internet Explorer har et dårligt ry blandt webudviklere. Fokus på standarder og hyppigere opdateringer skal gøre afløseren Edge mere spiselig.

Microsofts nye Edge-browser vil ikke komme til at give webudviklere de samme nervøse trækninger, som forgængeren Internet Explorer kunne gøre - især i den periode, da den forældede Internet Explorer 6 stadig var i brug. Hvis man koder sit websted efter forskrifterne, så bør Edge ikke skille sig ud fra Chrome eller Firefox ifølge Microsoft.

»Det er ikke meningen, at du skal prøve at få dit site til at virke i Edge. Vi vil have, at du skal få det til at virke i alle browsere. Det var længe standard at identificere browseren via user-agent, men det er ikke noget, vi anbefaler længere. I stedet bør man bruge feature detect,« siger teknisk evangelist Anders Lybecker fra Microsoft Danmark til Version2.

Det vil sige, at man i stedet for at lave tilpasninger til specifikke browsere bør tage højde for, om browseren understøtter bestemte funktioner.

»Det giver mere mening, fordi der til Android for eksempel findes hundredvis af browsere. Og selv Internet Explorer 6 understøtter feature detect,« siger Anders Lybecker.

Internet Explorer 6 var en særligt sejlivet browser fra Microsoft og var berygtet for at kræve tilpasning. På grund af krav om bagudkompatibilitet fortsatte også senere udgaver af Internet Explorer med at give problemer for webudviklere frem til Internet Explorer 10. I dag er udfordringen fra Internet Explorer 6 ikke helt forsvundet, men det er hovedsageligt i skikkelse af ældre applikationer med en webbaseret brugerflade, som er designet specifikt til Internet Explorer. Det er dog ikke en vej, Microsoft ønsker at bevæge sig ned ad igen.

Læs også: Frontend-udvikler: Internet Explorer 8 er forurening for HTML5

Læs også: It-chefer tvinger brugerne til Internet Explorer 6

»Vi har lavet en ny engine, EdgeHTML, og vil gerne holde os inden for standarderne. Vi skal være mindst lige så kompatible med W3C-standarderne som Chrome,« siger Anders Lybecker.

Visse dele af Internet Explorer 11 er genbrugt i Edge, men der er fjernet mere end 220.000 linjer kode, der blandt andet havde at gøre med understøttelse af gamle funktioner. Det betyder, at funktioner som document-mode (som blev brugt til at fortælle, at en side skulle vises som i en bestemt udgave af Internet Explorer) er væk.

Væk er også plugins. Det gælder også Microsofts eget Silverlight, som ganske vist stadig findes til visse webtjenester, men i Edge er tanken, at Javascript, HTML og andre åbne standarder kan løfte den samme opgave. Silverlight blev eksempelvis brugt til blandt andet at kopisikre videostreaming, men det er nu blevet muligt med HMTL5.

Læs også: Microsofts kovending: Understøtter nu savnet HTML5-tag i IE9

Som webudvikler betyder Edge, at det skulle blive muligt at udfase de tilpasninger, som er lavet til Internet Explorer, i takt med, at den nye browser bliver mere udbredt. Ambitionen fra Microsofts side er, at Edge-HTML ikke giver udviklerne større vanskeligheder end Webkit eller Gecko.

»Der fandtes en masse, som blev lavet specifikt til Webkit, men det er ikke noget, man gør så meget i længere. Men som webudvikler bygger man ikke alt fra grunden selv, og der er meget, der er blevet fikset inden for de seneste to år med hensyn til at følge standarderne, så man skal sørge for at opdatere sine frameworks,« siger Anders Lybecker.

Microsoft havde selv overvejet at bruge Webkit til en ny browser, men besluttede sig for at udvikle sin egen engine. Ved at lave sin egen engine bevarede Microsoft kontrollen med den og kunne blandt andet udbygge den til at pakke webapplikationer ind i yderligere funktionalitet som mobilapplikationer.

Edge kommer også til at følge de øvrige populære browsere på markedet i forhold til opdateringer med ny funktionalitet. Tidligere var en ny Internet Explorer ofte knyttet til en ny udgave af Windows. Med Windows 10 kommer ny funktionalitet i Windows imidlertid løbende i stedet for store versionsopgraderinger, og det kommer til at fungere på samme måde for Edge.

»Før var det svært for Internet Explorer at følge med på grund af en længere cyklus, men nu kan vi rykke med en cyklus på seks uger,« siger Anders Lybecker.

Webstandarderne er også i konstant udvikling, og det giver også udfordringer, fordi browserproducenterne tidligere har implementeret forskellige udkast, ligesom der er plads til fortolkning af standarderne. Der kan derfor gå et stykke tid, fra en ny funktion først dukker op, og til at alle browserne håndterer den på samme måde, selvom de teknisk set alle understøtter den.

Derfor har Microsoft bygget en mulighed ind i Edge, som giver brugeren mulighed for at slå eksperimentelle, nye funktioner til og fra.

»De største browsere er nu inde på et fælles spor. Som udvikler skal du ikke længere sidde og håndtere særtilfældene. Hvis man følger de gængse metoder, vi har adopteret fra andre, så understøtter vi det også i Edge,« siger Anders Lybecker.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Martin Kirk

Selvom Edge er en smule bedre end IE11 så er den stadig bagefter på en lang række områder, fx. mangler CSS Filters stadig !!! ARGH !!

En fed ting som Microsoft har planer om, er Plugins direkte fra Chrome og Firefox - hvordan ved jeg ik lige... men det kommer til at gøre en verden til forskel hvis man kan køre sine favorit plugins i alle 3 browsers !!! http://www.theverge.com/2015/4/29/8515771/microsofts-edge-browser-suppor...

btw. Feature detect har været standard i de sidste 10 år :D .... lidt sent at lave en nyhed om det... UserAgent bruges dog også stadigvæk til mobil-detection og en masse andre ting. IE11 og Edge har jo også med UserAgent fraskrevet deres arv ved ikke at være en 'Explorer' browser men en Gecko :D

  • 0
  • 0
#3 Robert Winther

" Du skal ikke tilpasse dit websted til Edge - hvis du koder på den rigtige måde."

Så at kode på den rigtige måde, er ikke en tilpasning ?

Det var samme tanke jeg fik da jeg læste overskiften, men hvis man læser selve artiklen så står der:

Hvis man koder sit websted efter forskrifterne, så bør Edge ikke skille sig ud fra Chrome eller Firefox ifølge Microsoft.

Det læser jeg som: Hvis man bare koder efter standarderne, så behøver man ikke kode specielt til Edge.

Så der er vist tale om lidt af en click-bait-overskrift.

  • 4
  • 0
#4 Henrik Madsen

Har lige installeret W10 og Edge var jo default browser så ville lige give den en chance.

Blev dog så frustreret over at nye faner ikke automatisk gjorde URL linien aktiv.

Hvis jeg i IE11 og andre browsere åbner en ny tab, så ryger den default op så jeg kan skrive en URL direkte.

Med Edge skal jeg åbne den nye tab, så skal jeg klikke en gang på URL linien for at "aktivere" den og så igen for at få lov at skrive en URL.

Sikke noget skrammel.

  • 3
  • 2
#6 Anders Lybecker

Yep. Hold dig til standarderne... Drop alle de gamle dårligdomme så som browser detection, user agent sniffing, conditional comments, document modes/quirksmode og husk nu alle vendor specfikke CSS prefixes - så alle dine brugere får en god oplevelse.

På Meetup er der et gratis arrangement hos ITU, hvor du kan høre mere om emnet: "A Web that just works in all browsers".

  • 4
  • 0
#9 Rune Jensen

Man slipper jo ikke for ie 9-10-11 før alle har win10 :(

Ved ikke. Hvis det betyder kodning efter W3C standarden i fremtiden, så får man nok det bedste man kan håbe på.

Ligeså god grund der var til at være p**ed på MS for IE6, ligeså glad må man være for, de - ganske vidst efter en lang kamp - endelig indser hvilken vej det går mht. ikke kun standard compliance, men også at være platform agnostic .

Med hvilket jeg mener - kan jeg kode efter standarderne på min Linux og stadig få den samme hjemmeside på et MS system med en MS browser, så hverken kan eller vil jeg klage. Det ville nu også være lidt .dobbeltmoralsk. ...Tror jeg.

Men for nu at være helt fair, så begyndte MS faktisk denne "rejse" allerede med IE10. Det er altså minimalt de forskelle der er (var) på IE10 og Firefox/Chrome fra samme tid.

Problemet opstår selvfølgelig fordi IE ikke blev opdateret med samme hastighed som FF og Chrome, så den blev outdated ret hurtigt ifht. nye HTML/JS/CSS muligheder. Men idéerne kan man altså godt se i IE10+.

Lad os nu se, synes det går den rigtige vej. Tro mig - eller ej - men Windows10 bliver en gigantisk succes på desktoppen. Det kommer til at gå langt hurtigere end med Windows7.

  • 1
  • 0
#10 Martin Kirk

Det er netop det er pointen, at du i langt de fleste tilfælde ikke behøver gøre noget specielt for legacy browsers inkl. IE

What ?

Hvis jeg som firma har A: Kommunerne eller Bankerne som kunde eller B: Hele verden så er jeg nødt til at understøtte IE 9-10-11 for at kunne supportere Windows Vista (IE9), 7 (IE10+11) og 8 (IE10+11) I hvert fald indtil Vista er død og borte (<2% share)

Jeg arbejder pt i et firma hvor et market share på 2-3% er nok til at vi med død og pine SKAL supportere dem, da vi snakker om millioner af kroner, så det kan godt betale sig.

På mit tidligere arb. skulle IE8 også supporteres fordi Kommnuer og Banker ikke har fået fingeren ud af røven endnu.. og på Hospitaler finder man forresten stadig Windows XP.. men de fleste har ikke internet adgang - men hvis man alligevel laver produkter til dem skal IE8 derfor supporteres.

det et helvede :-(

  • 1
  • 2
#11 Michael Zedeler

At Microsoft først nu snakker om at bruge feature detection frem for browser sniffing viser bare at de stadig lever i stenalderen.

Der er så mange andre krav til en browser nu om dage, at det med at overholde standarderne er et ikke-emne i en sådan grad at man bare afslører hvor langt bagude man er, hvis man taler om det.

  • 0
  • 2
#15 Anders Lybecker

Der er ufatteligt mange der ikke har styr på fx CSS Vendor prefixes - husk til alle rendering engines. Fx:

-webkit-transition: all 4s ease;  
-moz-transition: all 4s ease;  
-ms-transition: all 4s ease;  
-o-transition: all 4s ease;  
transition: all 4s ease;

Det er meget nemt at fixe fx via Autoprefixer. Selv Version2 har ikke styr på deres CSS.

Så er der jo alle dem der bruger outdated JavaScript libs...

Prøv selv at teste dit eget site

  • 1
  • 1
#16 David Konrad

Prøv selv at teste dit eget site

Og prøv så denne "test" med testens egen URL :) Derudover er den imho fuldkommen ubrugelig, en standard MS' "spam" site hvis eneste funktion er at promovere virksomhedens seneste påhit (kan naturligvis også bruges af sælgere mod sagesløse kunder). Ret beset får man en "fejl" hvis man har fulgt MS' retningslinier gennem de seneste 15 år, dvs <!--[if lt IE 7]> og al det andet snavs webudviklerne har spildt milliarder af udviklingstimer på. Men det er laaang tid siden det f.eks var muligt at detecte IE8 100% positivt sikkert med MS' egen metode, hvorfor feature detection alligevel har været brugt af "de fleste" i årevis.

Det største problem med IE har ikke så meget været manglende support af standarder, eller alternativ implementation af standarder - den er kommet efter det op gennem versionerne som andre nævner - problemet har i overvejende grad været de vanvittige "document modes" som for utallige har været svære at styre på tværs af versionerne; ovenikøbet inden for MS' "familien" selv, har mødt fortvivlede sharepoint-folk der til tider slet ikke kan få de forskellige modes til at spille sammen ude hos kunderne. IE har jo netop ikke været ægte bagudkompatibel - glimrende Edge bliver dette fremadrettet.

Det er fint at MS nu endelig ser ud til at tage standarderne alvorligt (i praksis) og nu har lavet en ny engine -> https://kangax.github.io/compat-table/es6/ ser lovende ud, det samme gør https://dev.modern.ie/platform/status - men jeg aner at det helt nye problem vi får med Edge så blot bliver at kundernes / brugernes Edge-browsere ikke har de rigtige "feature flags" sat, den såkaldte "nye mulighed". Det skal nok blive festligt.

Det er nok lidt sent for IE / Edge, og for lidt. Markedsandelen er meget lav og faldende, og f.eks indenfor det jeg beskæftiger mig med har vi friheden til at sige, at hvis ikke det fungerer optimalt i en bestemt browser, ja - så kan vi anbefale brugeren at benytte en anden browser. Det har så ikke været et problem hidtil ifb de seneste versioner af IE - når man bruger angular-strap og den slags er man generelt fint dækket ind - men hvis det skulle ske sætter vi os IKKE ned og spilder tid på at få een eller anden effect til at spille i Edge. Men det går nok, bare man overholder standarderne - så holder man (ikke længere) alene af den grund nogen ude.

  • 0
  • 1
#17 Anders Lybecker

David - det er jo netop document types, <!--[if lt IE 7]> osv. vi skal væk fra. Snavs - ja - væk, tak :)

Både Edge og Chrome bruger feature flags. Enig I det ikke er den idealle løsning, men hvad er alternativet?

[quote id=313447]IE har jo netop ikke været ægte bagudkompatibel - glimrende Edge bliver dette fremadrettet.[/qoute] Jeg forstår ikke hvad du mener med det? Hverken at IE ikke er bagudkompatibel eller Edge bliver bagudkompatibel. Da begge er usande.

  • 1
  • 1
#18 David Konrad

det er jo netop document types, <!--[if lt IE 7]> osv. vi skal væk fra. Snavs - ja - væk, tak :)

Javist, men det jo kun aktuelt for IE10+ og Edge - det er stadig sandt for alle øvrige IE-versioner. Dette "staticscan" anbefaler ligeud at bruge tid og penge på at ændre noget der virker for en lang række browsere, og som hidtil har været den anbefalede praksis for disse browsere - af ingen andre årsager end at MS nu (også) mener at man skal bruge feature detection. Det er dette der gør det lidt "spam"-agtigt - der skal nok være en del ikke specielt teknisk mindede der sidder og får ondt i maven - som det noget vildledende forklares : "Why is it important? ... Your users will get their best experience in their preferred browser." Det har bare intet med "preferred browser" at gøre, der er ingen verdens forskel på IE8-brugeres "experience" om du bruger feature detection eller browser detection, og browser detection fungerer fint for IE8 og vil gøre det frem til den allersidste IE8 er slettet. Og da IE10+ / Edge jo som konkurrenterne efterhånden i store træk overholder standarderne (og agter at gøre det fremadrettet) burde der ikke være nogen grund til at lave nye browsercheck overhovedet.

Eneste udkomme ved at følge dette vigtige råd på "staticscan" er et grønt hak ud for "browser detection" hvis man skulle kede sig og køre "staticscan" igen.

Ift bagudkombatibilitet står der i artiklen :

På grund af krav om bagudkompatibilitet fortsatte også senere udgaver af Internet Explorer med at give problemer for webudviklere frem til Internet Explorer 10

IE6, 7, 8, 9 er da kun kompatible i enten quirksmode eller et obskurt "document-mode". Det er hele problemet. Jeg tænker ikke på "teknisk" kombatibilitet men på at samme sider renderes forskelligt i de forskellige browsere.

Nå, men held og lykke med Edge. Man kunne jo være så heldig at det pressede Chrome, FF og Opera-folkene til at gøre det lidt bedre.

  • 0
  • 0
#19 Christian Nobel

Nå, men held og lykke med Edge. Man kunne jo være så heldig at det pressede Chrome, FF og Opera-folkene til at gøre det lidt bedre.

Jeg ville nu mere håbe det pressede FireFox lidt mere, eksempelvis, som jeg tidligere har nævnt, ville det være rigtig rart om de fik nosset sig sammen til en bedre HTML5 understøttelse, eksempelvis af noget så banalt som input types date og time.

Det har været på ønskelisten i årevis, men alligevel har man mere interesse i at fløjte ud af alle mulige andre tangenter, end sørge for at det basale fungerer.

  • 0
  • 0
#20 Søren Ahm Sørensen

Jeg ville nu mere håbe det pressede FireFox lidt mere, eksempelvis, som jeg tidligere har nævnt, ville det være rigtig rart om de fik nosset sig sammen til en bedre HTML5 understøttelse, eksempelvis af noget så banalt som input types date og time.

Det har været på ønskelisten i årevis, men alligevel har man mere interesse i at fløjte ud af alle mulige andre tangenter, end sørge for at det basale fungerer.

Jeg kan tilslutte mig ovenstående og kan tilføje, at Firefox browserens understøttelse af SVG heller ikke er imponerende. F.eks. har den store vanskeligheder med at style SVG elementer, hvis man anvender et eksternt style sheet. HTML5 drag and drop virker tilsyneladende heller ikke på SVG elementer. (Det gør det nu heller ikke i Chrome, så vidt jeg ved)

  • 0
  • 0
Log ind eller Opret konto for at kommentere