Kompatibilitetsläge
Ett kompatibilitetsläge är en mjukvarumekanism där en programvara antingen emulerar en äldre version av programvaran eller härmar ett annat operativsystem för att tillåta äldre eller inkompatibla program eller filer att förbli kompatibla med datorns nyare hårdvara eller mjukvara. Exempel på programvara som använder läget är operativsystem och Internet Explorer .
Operativsystem
Ett kompatibilitetsläge i ett operativsystem är en mjukvarumekanism där en dators operativsystem emulerar en äldre processor , operativsystem och/eller hårdvaruplattform för att tillåta äldre programvara att förbli kompatibel med datorns nyare hårdvara eller mjukvara.
Detta skiljer sig från en fullfjädrad emulator genom att en emulator vanligtvis skapar en virtuell hårdvaruarkitektur på värdsystemet, snarare än att bara översätta det äldre systemets funktionsanrop till anrop som värdsystemet kan förstå.
Exempel inkluderar klassiskt läge i Mac OS X och kompatibilitetsläge i Microsoft Windows , som båda tillåter att program som är designade för äldre versioner av operativsystemet körs. Andra exempel är Wine för att köra Windows-program på Linux /OS X och Mono för att köra .NET- program på olika Unix-liknande system.
Internet Explorer
"Kompatibilitetsvy" är en kompatibilitetsfunktion i webbläsaren Internet Explorer i version 8 och senare. När den är aktiv tvingar Compatibility View IE att visa webbsidan i Quirks-läge som om sidan visades i IE7. När kompatibilitetsvyn inte är aktiverad, sägs IE köras i inbyggt läge. I IE11 kan en användare aktivera kompatibilitetsläget för en webbplats genom att klicka på ikonen Gears och klicka på Inställningar för kompatibilitetsvy.
IE8+
Internet Explorer 8 marknadsfördes av Microsoft för att ha striktare efterlevnad av W3C- beskrivna webbstandarder än Internet Explorer 7 . Som ett resultat, som i alla IE-versioner före den, skulle en viss procentandel av webbsidor som kodats till beteendet hos de äldre versionerna gå sönder i IE8. Detta skulle ha varit en upprepning av situationen med IE7 som, samtidigt som den hade fixat buggar från IE6, bröt sidor som använde IE6-specifika hack för att komma runt dess bristande efterlevnad. Detta var särskilt ett problem för offline HTML-dokument, som kanske inte går att uppdatera (t.ex. lagrade på ett skrivskyddat medium, såsom en CD-ROM eller DVD-ROM).
För att undvika denna situation implementerade IE8 en form av versionsinriktning där en sida kunde skrivas till en specifik version av en webbläsare med X-UA-kompatibel
deklaration antingen som ett metaelement eller i HTTP- huvudena.
För att bibehålla bakåtkompatibilitet kan webbplatser välja IE7-liknande hantering av innehåll genom att infoga ett speciellt skapat metaelement på webbsidan som utlöser kompatibilitetsläget i webbläsaren, med hjälp av:
< meta http-equiv = "X-UA-kompatibelt" innehåll = "IE=EmulateIE7" / >
En nyare version av webbläsaren än sidan kodades för skulle efterlikna beteendet hos den äldre versionen, så att de antaganden som sidan gjorde om webbläsarens beteende stämmer.
Microsoft föreslog att en sida med en doctype som utlöser standardläge (eller nästan standardläge) i IE7 som standard skulle utlösa IE7-liknande beteende, kallat "standardläge" (nu kallat "strikt läge") i IE8 och framtida versioner av IE. De nya funktionerna i IE8 är aktiverade för att utlösa vad Microsoft kallade "IE8 standards mode" (nu kallat "standards mode"). Doktyper som utlöser quirks-läge i IE7 kommer att fortsätta att göra det i IE8.
Peter Bright från Ars Technica hävdade att idén att använda en metatagg för att välja ett specifikt renderingsläge i grunden missar poängen med standardbaserad utveckling, men placerade frågan som en fråga om idealism kontra pragmatism i webbutveckling, och noterade att inte hela webben bibehålls, och att "kräva att webbutvecklare uppdaterar webbplatser för att säkerställa att de fortsätter att fungera korrekt i alla framtida webbläsarversioner är förmodligen för mycket begärt."
Resultatet för IE 8 Beta 1 var att det kunde rendera tre lägen: "Quirks", "Strikt" och "Standard". När det finns en gammal DOCTYPE eller när det inte finns någon DOCTYPE, renderar IE den som IE5 skulle göra (quirks-läge). När ett speciellt metaelement eller dess motsvarande HTTP-rubrik ingår i en webbsida, kommer IE8 att rendera sidan som IE7 skulle göra (strikt läge). Annars renderar IE8 sidor med sin egen motor (standardläge). Användare kan växla mellan de tre lägena med några få klick. Utgivningen av Internet Explorer 8 Beta 1 avslöjade att många webbplatser inte fungerar i detta nya standardläge.
Microsoft upprätthåller en lista över webbplatser som har rapporterats ha problem i IE8:s standardläge, känd som kompatibilitetsvylistan. När en användare aktiverar den här listan kommer IE8 att återge webbplatserna i listan med dess kompatibilitetsvyläge. Listan uppdateras då och då för att lägga till nyligen rapporterade problematiska webbplatser, samt för att ta bort webbplatser vars ägare har begärt borttagning. Internet Explorer-teamet testar också webbplatserna på listan för kompatibilitetsproblem och tar bort de där ingen hittas.