Prepararsi all'esplorazione indipendente dai plug-in

A partire da Windows 8, IE è una piattaforma Web che offre due esperienze di esplorazione: il nuovo IE nella nuova interfaccia utente di Windows, ottimizzato per dispositivi di tocco, e l'esperienza di esplorazione tradizionale di Internet Explorer per il desktop. Come app di Windows, Internet Explorer viene eseguito senza plug-in, in modo da garantire un'esperienza di esplorazione Web pulita, veloce e sicura, sebbene fornisca anche un lettore Adobe Flash Player nativo. Rendendo i propri siti indipendenti dai plug-in e optando invece per tecnologie analoghe basate su standard, gli sviluppatori Web possono beneficiare di una migliore interoperabilità tra siti e di una maggiore facilità di gestione. Ti offriamo qui alcune linee guida e strategie per preparare i tuoi siti ed applicazioni Web per l'esplorazione indipendente dai plug-in in IE.

I plug-in e il Web moderno

I plug-in del browser sono componenti software compilati di terze parti che estendono le funzionalità del contenuto Web mediante chiamate nelle interfacce browser di basso livello. In Internet Explorer, i plug-in prendono la forma di oggetti ActiveX e oggetti browser helper. Due plug-in di uso comune sul Web sono Flash Player e Skype Click to Call, che sono installati in Internet Explorer rispettivamente come oggetto Microsoft ActiveX e come oggetto BHO (Browser Helper Object). Altre tecnologie diffuse per quanto riguarda i plug-in del browser sono Microsoft Silverlight, Apple QuickTime e le applet Java. Come Flash, queste tecnologie offrono un framework applicativo e un ambiente di runtime che consentono agli sviluppatori Web di scrivere plug-in allo scopo di estendere le funzionalità dei propri siti e applicazioni Web.

Fin dagli albori del Web, i plug-in del browser hanno svolto un ruolo fondamentale nel fornire ricche esperienze multimediali online e complesse funzionalità per le applicazioni Web. Tuttavia, insieme a queste funzionalità, i plug-in portano con sé anche alcuni svantaggi. Poiché i plug-in sono essenzialmente applicazioni eseguite all'interno del browser, consumano ulteriori risorse di sistema ed espongono una superficie d'attacco maggiore a rischi per la sicurezza. Inoltre, i plug-in non sono progettati per l'uso del tocco e, essendo applicazioni distinte dal browser stesso, non beneficiano delle modifiche apportate a Internet Explorer 10 e versioni successive che ottimizzano l'uso dei siti Web nei dispositivi di tocco. Infine, i plug-in sono basati su tecnologie proprietarie e sono scritti in codice di qualità variabile, pertanto è difficile prevederne o controllarne il supporto su browser e sistemi operativi diversi.

Fortunatamente, il Web ha fatto molta strada dalla sua nascita, e le tecnologie basate su standard specificate nel World Wide Web Consortium (W3C) così come quelle che costituiscono il linguaggio HTML5 offrono funzionalità simili a quelle offerte da vari plug-in. Queste tecnologie sono ampiamente supportate nei Web browser moderni, permettendo così agli sviluppatori Web di scrivere un solo markup e un solo script con la sicurezza che funzionerà in tutti i browser moderni, senza dover scrivere o gestire altro codice con dipendenze da framework e runtime di terze parti.

Essenzialmente, i siti Web basati su standard e senza plug-in sono vantaggiosi per:

  • Gli utenti, a cui offrono esperienze di esplorazione più efficienti, una maggiore durata delle batterie dei dispositivi mobili e livelli superiori di sicurezza, privacy e affidabilità.
  • Gli sviluppatori Web, mediante una più ampia interoperabilità tra siti in browser e dispositivi diversi, una migliore compatibilità con le versioni successive e una maggiore facilità di manutenzione dei siti.
  • Il Web moderno, grazie alla promozione di un Web più aperto, accessibile e indipendente dai fornitori, oltre che popolato di contenuti che rispecchiano queste caratteristiche.

Per questi motivi, IE in Windows 8 offre un'esperienza di esplorazione indipendente dai plug-in, così come sta facendo un numero sempre crescente dei più noti siti in tutto il mondo. Esiste già un considerevole numero di dispositivi e browser consumer che non supportano i plug-in. Nonostante queste tendenze e gli innegabili vantaggi, alcuni siti consumer e applicazioni Web line-of-business potrebbero ancora richiedere i plug-in. L'ultima sezione di questo articolo illustra le tecniche di fallback e le strategie di prevenzione che aiuteranno gli utenti a passare facilmente a Internet Explorer per il desktop per visualizzare i siti dipendenti dai plug-in.

Verso l'indipendenza dai plug-in

Windows Internet Explorer 9 e le versioni successive di IE per il desktop consentono inoltre di visualizzare i contenuti Web senza plug-in mediante ActiveX Filtering. Poiché in Windows 8 viene eseguito senza plug-in, IE è un ottimo ambiente di test in cui sviluppare siti indipendenti dai plug-in e convertire i siti dipendenti dai plug-in all'uso di tecnologie standard.

La tabella seguente riepiloga gli usi più comuni dei plug-in, esempi di vecchie tecnologie basate sui plug-in e le tecnologie basate su standard equivalenti disponibili in Internet Explorer 10 e versioni successive.

FunzionalitàEsempio di tecnologia basata su plug-inTecnologie equivalenti basate su standard Altre info
Video e audioFlash, Apple QuickTime, SilverlightVideo e audio HTML5 Video, Audio
GraficaFlash, Apple QuickTime, Silverlight, applet Java Canvas HTML5 , Scalable Vector Graphics (SVG) , Transizioni CSS3 (Cascading Style Sheets, Level 3) , Animazioni CSS3, Trasformazioni CSS, WebGL Canvas, SVG, Transizioni, Animazioni, Trasformazioni, WebGL
Archiviazione offlineFlash, applet Java, Google Gears Archivio Web, API File, IndexedDB, API cache applicazione Archiviazione Web, API file, IndexedDB, API cache applicazione
Comunicazioni di rete, condivisione di risorse, caricamento di file Flash, applet Java Messaggistica Web HTML5, CORS (Cross-Origin Resource Sharing) Messaggistica di canale, XMLHttpRequest

 

Video e audio

I plug-in vengono spesso usati per incorporare contenuti audio e video avanzati nelle pagine Web mediante lettori multimediali come Flash Player. Tuttavia, questa tendenza sta cambiando a fronte dello sviluppo delle specifiche video e audio HTML5 e del loro crescente supporto nei browser moderni. Il supporto degli elementi video e audio HTML5 è disponibile fin da Internet Explorer 9. Internet Explorer 10 aggiunge il supporto per l'elemento track HTML5 per i sottotitoli video. Con Internet Explorer 11, streaming multimediale e protezione del contenuto sono supportati su elementi multimediali HTML5, rispettivamente attraverso Estensioni MSE (Media Source Extensions) e estensioni EME (Encrypted Media Extensions). Nella sezione "Video HTML5" viene illustrato in maggiore dettaglio il supporto.

Grafica

I plug-in sono stati usati anche per fornire giochi interattivi con grafica animata e annunci multimediali. A partire dalla versione 9, Internet Explorer offre diverse tecnologie alternative basate su standard e di grafica con  accelerazione hardware, tra cui canvas HTML5 , SVG e trasformazioni 2D CSS3 . Internet Explorer 10 aggiunge supporto per gli effetti di filtro SVG, le transizioni e animazioni CSS3 e le trasformazioni 3D CSS3 e IE11 aggiunge il supporto per WebGL.

Archiviazione offline

Numerose applicazioni Web richiedono l'accesso ai file di dati, cosa che, in passato, significava richiedere l'accesso ai server remoti in cui erano archiviati quei file. Ma questo accesso, a sua volta, richiede la connettività di rete e, per essere alternative valide alle applicazioni client desktop, le applicazioni Web devono poter essere eseguite anche offline. Inizialmente sono quindi stati introdotti plug-in come le applet Java e Google Gears per soddisfare l'esigenza di archiviazione offline delle applicazioni Web, ma oggi sono disponibili le alternative basate su standard del World Wide Web Consortium (W3C). La funzionalità di archiviazione Web è supportata fin da Windows Internet Explorer 8, e Internet Explorer 10 introduce ora il supporto per l'API dei file, IndexedDB e l'API cache applicazione, offrendo nuove e variegate possibilità di creare esperienze offline.

Comunicazioni di rete, condivisione di risorse, caricamento di file

Le app e i siti Web moderni sono incentrati sulla condivisione e le interazioni sociali, che spesso richiedono che i siti Web siano in grado di comunicare e di caricare e condividere dati in modo efficiente e sicuro. In passato, gli sviluppatori dovevano usare plug-in come Flash per effettuare richieste HTTP tra domini quando Internet Explorer XDomainRequest object non disponeva delle funzionalità necessarie. In altri casi, gli sviluppatori potevano avvalersi di plug-in basati su Flash o Silverlight quando le applicazioni Web dovevano supportare il caricamento di più file, il caricamento di file in un thread in background o la visualizzazione dello stato di caricamento o download di file. Tutto questo è cambiato con Internet Explorer 10, che supporta lo standard CORS (Cross-Origin Resource Sharing) per XMLHttpRequest (XHR), gli eventi di stato XHR e le API Web Worker. Nell'area della messaggistica Web HTML5 , IE8 ha introdotto il trasferimento dati documenti tra domini con il postMessage method e l'onmessage event, e Internet Explorer 10 aggiunge ora il supporto per la messaggistica di canale.

Video HTML5

Il futuro del video sul Web si chiama HTML5; tuttavia, ci sono diversi aspetti da tenere presenti man mano che gli standard correlati vengono definiti e le implementazioni del produttori di browser convergono su livelli base di supporto.

Codifica

Il tag video HTML5 supporta tre principali formati di codifica video: H.264, VP8 e Theora. Il formato di codifica video H.264, conosciuto anche come formato di file MP4, è quello oggi più ampiamente usato sul Web e, insieme al tag video HTML5, è supportato anche in ogni lettore DVD Blu-ray, nella maggior parte dei lettori Flash e Silverlight e in un numero significativo di dispositivi mobili.

Il formato H.264 offre anche altri vantaggi. Puoi usare sul Web video presi direttamente dalla tua videocamera senza doverli codificare. Inoltre, il video H.264 offre un supporto hardware notevolmente migliore rispetto a qualsiasi altro codec video, consentendo così di ottenere prestazioni video HD ottimali in un computer low-end in cui la decodifica H.264 avviene direttamente nella CPU. L'esecuzione dello stesso video con una codifica diversa potrebbe richiedere un ulteriore supporto software, risultando così molto più lento e consumando più alimentazione.

Il supporto del formato H.264 non è incorporato in tutti i principali browser. Attualmente i Web browser Firefox e Opera supportano a livello nativo soltanto i formati VP8 (o file con estensione webm) e Theora (o file con estensione ogg). Firefox supporta H.264, sebbene non venga fornito veramente con H.264, in quanto utilizza il supporto incorporato in Windows e negli altri sistemi operativi host. Per Google Chrome è stata annunciata l'intenzione di abbandonare il supporto di H.264, tuttavia è ancora supportato al momento della redazione di questo articolo. Per superare queste differenze e far sì che il tuo video HTML5 funzioni in tutti questi browser, l'attuale procedura consigliata consiste nel fornire più specifiche di codifica del video con l'source element HTML5. Ad esempio:



<video id="video1">
    <source src="slideshow.mp4" type="video/mp4">
    <source src="slideshow.webm" type="video/webm">
</video>


La tabella seguente riassume i principali formati video HTML5 e gli attuali livelli di supporto nei principali browser.

Codifica video Codifica audio Formato fileWindows Internet Explorer Safari (per Windows, Mac, iPhone, iPad) ChromeFirefoxOpera
H.264AACMP4IE9+Safari 4+ Chrome 3.0.182.2+2 Firefox 21+3(plug-in necessario)
VP8Vorbiswebm (codec Windows necessario)1(plug-in necessario)Chrome 6.0.422+Firefox 4+Opera 10.60+
TheoraVorbisogg(plug-in necessario)(plug-in necessario)Chrome 3.0.182.2+Firefox 3.6+Opera 10.50+

 

1Il supporto di Internet Explorer per la riproduzione di video webm non richiede un plug-in del browser, ma richiede agli utenti di installare il codec VP8 per Windows gratuito.
2Per Google Chrome è stata annunciata l'intenzione di abbandonare in futuro il formato H.264, tuttavia esso è attualmente ancora supportato.
3Il supporto di H.264 in Windows 7 (e versioni successive) è stato introdotto in Firefox 21 e per Linux in Firefox 24.

Per avere la certezza che il video e l'audio HTML5 vengano riprodotti nei diversi browser, vedi l'"esempio pratico di audio e video HTML5 multibrowser".

Streaming e Digital Rights Management (DRM)

Il video può essere trasmesso in tempo reale (streaming) o su richiesta (ovvero riprodotto da un file su un server Web). A partire da IE11, IE supporta sia lo streaming sia la trasmissione su richiesta di video HTML5, nonché DRM.

IE11 in Windows 8.1 supporta le estensioni MSE (Media Source Extensions) W3C per streaming live HTML5 (o larghezza di banda adattiva) di video HTML5, in cui la qualità del video può essere aumentata o diminuita a seconda dell'efficacia della rete. Ciò rappresenta un'alternativa alle tecnologie di streaming adattivo proprietarie attualmente in uso nel Web.

IE11 in Windows 8.1 supporta inoltre le estensioni EME (Encrypted Media Extensions) W3C per abilitare la riproduzione di contenuto protetto attraverso video HTML5. IE11 supporta il sistema DRM di PlayReady.

Nota  Estensioni MSE (Media Source Extensions) ed estensioni EME (Encrypted Media Extensions) non sono supportate in IE11 in Windows 7.

MPEG-DASH è uno standard emergente per lo streaming in Internet e le estensioni MSE e EME in IE11 sono compatibili sia con il contenuto MPEG-DASH che con il contenuto ISO BMFF (il formato base per i tipi di file multimediali più comuni). Per altre info sull'implementazione di un client DASH per sfruttare le estensioni MSE ed EME, vedi Building Media Streaming Apps and Sites Without Plug-Ins using MPEG-DASH (video di MSDN Channel 9) e il riferimento per l'implementazione DASH.js di DASH Industry Forum (repository GitHub).

TextTrack dinamico e applicazione di stili ai sottotitoli

In Internet Explorer 10 è stato introdotto il supporto TextTrack basato su file per i formati WebVTT e TTML dei file delle tracce. I file delle tracce, come i file video, richiedono che il server fornisca un'intestazione del tipo MIME per i file basati su WebVTT o TTML. IE11 estende il supporto TextTrack dei video HTML5 in modo da includere la creazione di oggetti TextTrack e TextTrackCue a livello di codice allo scopo di creare tracce di sottotitoli dei video in modo dinamico. Con i metodi addTextTrack e addCue puoi creare e aggiungere nuove tracce a un video in riproduzione. IE11 supporta inoltre Simple Delivery Profile (SDP) per consentire la creazione di file di tracce TTML che posizionano il testo in un qualsiasi punto del lettore video e consentono di controllare tipi di caratteri, colori e stili per rendere il testo più agevole da leggere e più accattivante.

Per altre info sul supporto video, vedi gli argomenti relativi a Simple Delivery Profile (SDP) e ai TextTrack dinamici nella Guida per gli sviluppatori di IE11.

Uso dei plug-in come ultima risorsa

Per garantire la compatibilità con i browser e con gli standard futuri, è preferibile sviluppare il tuo sito interamente senza plug-in. In alcuni casi, tuttavia, potrebbe essere impossibile per un sito Web o un'app Web funzionare completamente senza plug-in. Per queste situazioni esistono alcune tecniche di fallback e strategie di prevenzione che puoi usare per assicurare la migliore esperienza possibile agli utenti di Internet Explorer 10 e di altri browser senza plug-in.

Uso selettivo dei plug-in

Non esiste un modo per rilevare a livello di codice se un'app o un sito viene visualizzato in Internet Explorer 10 e in seguito nell'interfaccia utente di Windows o sul desktop: la stringa agente utente è la stessa in entrambi i casi. Questa non è tuttavia una distinzione utile, poiché entrambe le esperienze vengono eseguite all'esterno degli stessi motori HTML5 e di scripting e IE potrebbe essere in esecuzione con ActiveX Filtering. Nel pianificare la tua strategia di fallback senza plug-in, la procedura consigliata per assicurare la compatibilità del sito con le diverse esperienze di Internet Explorer 10 e altri browser indipendenti dai plug-in consiste nel rilevare le funzionalità anziché i browser. Usando il rilevamento delle funzionalità, il tuo sito può verificare se una determinata funzionalità è supportata nel browser client e, se non lo è, offrire al suo posto una funzionalità basata su plug-in.

Questo esempio usa il fallback di elementi HTML per fornire una soluzione basata su plug-in per i browser che non supportano l' elemento video HTML5.


 
<video id="video1" width="640" height="360" controls>
    <source src="video.mp4" type="video/mp4">
    <source src="video.webm" type="video/webm">
    <object width="640" height="360" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
        <param name="SRC" value="http://ie.microsoft.com/testdrive/IEBlog/Common/player.swf?file=video.mp4">
        <p>Please update your browser or install Flash</p>
    </object>
</video>


L'esempio seguente usa il fallback basato su JavaScript per fornire una soluzione basata su plug-in per i browser che non supportano XMLHttpRequest (XHR) a livello nativo.



// Best Practice: Use Native XHR, if available.
if (window.XMLHttpRequest) {
    // If IE7+, Gecko, WebKit: Use native object.
    var xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
    // ...if not, try the ActiveX control. 
    var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
    // No XMLHTTPRequest mechanism is available.
}


Al contrario, se il tuo sito offre un'esperienza più ricca con un particolare plug-in, puoi verificare se il plug-in è stato caricato, ad esempio tramite la readyState property dell'object element host e quindi eseguire il fallback a un'esperienza indipendente dai plug-in in base alle necessità. Per altre info ed esempi di codice sulle strategie di fallback, vedi Plug-in e controlli ActiveX nella Guida di riferimento dettagliata sulla compatibilità di IE.

Uso dell'elenco Visualizzazione Compatibilità per riprodurre contenuti Flash

In Windows 8, Internet Explorer 10 offre un lettore Flash Player integrato grazie al quale non è più necessario scaricare o installare un lettore aggiuntivo. Sebbene qualsiasi sito possa riprodurre contenuti Flash in Internet Explorer per il desktop, solo i siti elencati nella sezione NoFlash dell'elenco Visualizzazione Compatibilità possono riprodurre contenuti di questo tipo in Internet Explorer nella nuova interfaccia utente di Windows. L'inclusione nella sezione NoFlash non influisce sulla modalità documento di un sito. I siti con contenuti Flash vengono inseriti nell'elenco solo se presentano noti problemi di sicurezza o affidabilità. Gli sviluppatori possono anche richiedere che il proprio sito sia preso in considerazione per la rimozione dall'elenco Visualizzazione Compatibilità per Flash. Per ulteriori informazioni, vedi le "indicazioni di sviluppo per i siti Web con contenuti per Adobe Flash Player in Windows 8".

Passaggio al desktop quando tutte le altre strategie non sono applicabili

Per assicurare la compatibilità del tuo sito con le versioni successive e la migliore esperienza possibile al più ampio numero di utenti a lungo termine, la cosa migliore è creare i nuovi siti e rinnovare quelli esistenti senza usare i plug-in. Nei casi in cui questo non è possibile, puoi valutare di migrare il sito a un'app di Windows Store o scrivere codice per un'app di Windows Store usando un oggetto Windows Runtime personalizzato al posto delle funzionalità offerte dal plug-in e quindi connettere il sito alla tua app Windows 8.

Come soluzione a breve termine, Internet Explorer 10 offre la funzionalità requiresActiveX che, se abilitata, visualizza una notifica che richiede agli utenti di passare al desktop:

Prompt di Internet Explorer 10 per i siti con componenti aggiuntivi che richiedono il passaggio a Internet Explorer per il desktop

Usa l'opzione requiresActiveX solo quando la mancanza di un plug-in non consente il funzionamento del sito Web. Ecco come funziona la notifica:

  • Le notifiche vengono visualizzate una sola volta per visita al nome host, per scheda del browser
  • La notifica viene visualizzata di nuovo se l'utente aggiorna la pagina
  • La notifica non impedisce all'utente di interagire con il sito (non modale)
  • Le pagine caricate in sottoframe non generano la notifica

Offrire agli utenti la possibilità di passare a Internet Explorer per il desktop non è però una soluzione a lungo termine ai problemi di compatibilità dei siti. L'esperienza di esplorazione desktop e la maggior parte dei plug-in non sono stati progettati per gli schermi di dimensioni ridotte, la durata limitata delle batterie e l'assenza del mouse.

In questa tabella sono elencati i diversi modi in cui puoi abilitare l'opzione requiresActiveX.

Modi per abilitare l'opzione requiresActiveXGestiti da
Intestazione/tag META HTTPSviluppatore Web
Elenco Visualizzazione Compatibilità di IE10Microsoft
Impostazioni elenco Visualizzazione Compatibilità Criteri di gruppoAmministratore di sistema

 

Tieni presente che Windows RT non supporta l'esecuzione, l'emulazione o il porting di app desktop x86/64 esistenti. Per altre informazioni, vedi il blog Building Windows 8.

Intestazione HTTP e meta tag

Come sviluppatore Web, puoi abilitare la funzionalità requiresActiveX usando questa intestazione HTTP:


X-UA-Compatible: requiresActiveX=true

oppure questo elemento meta su ogni pagina Web interessata:

<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true"/>

Elenco Visualizzazione Compatibilità

Microsoft gestisce un elenco Visualizzazione Compatibilità di siti noti che richiedono ActiveX. Questi siti possono essere elencati per dominio o sottodominio. Ad esempio:



<domain docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">contoso.com</domain>
<domain docMode="EmulateIE7" versionVector="7" uaString="7">
    fabrikam.com
    <path docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">/tv</path>
    <path docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">/video</path>
</domain>


Un elenco Visualizzazione Compatibilità distinto, solo per nome host, è supportato tramite Criteri di gruppo per generare la stessa notifica generata in base all'elenco Visualizzazione Compatibilità pubblico di Microsoft.

Puoi usare gli Strumenti di sviluppo F12 per determinare se il tuo sito è nell'elenco Visualizzazione Compatibilità di Internet Explorer. Se il sito è elencato come “requiresActiveX:true” ma recentemente hai eliminato la sua dipendenza dai plug-in, l'impostazione dell'elenco Visualizzazione Compatibilità di IE 10 può essere sovrasctitta con un'intestazione HTTP o un meta tag che specifichi requiresActiveX=false. Per ulteriori informazioni sull'elenco Visualizzazione Compatibilità, vedi "Informazioni sull'elenco Visualizzazione Compatibilità".

Preparazione del sito per il Web indipendente dai plug-in

Un numero sempre crescente di siti Web, app Web, browser e dispositivi si sta liberando dei plug-in, a vantaggio degli utenti, degli sviluppatori Web e del Web moderno nel suo insieme. Le procedure consigliate per preparare i tuoi siti e le tue app Web per l'esplorazione indipendente dai plug-in in IE consistono nel sostituire le più importanti funzionalità dei plug-in con tecnologie basate su standard, usare selettivamente i plug-in solo quando non esistono alternative basate su standard e richiedere agli utenti di passare al desktop solo come ultima risorsa. Seguendo queste linee guida, potrai offrire la migliore esperienza di esplorazione possibile al maggior numero possibile di utenti e assicurare la perfetta compatibilità del tuo sito con IE.

Argomenti correlati

ActiveX Filtering per gli utenti
Esplorazione indipendente dai plug-in
Esplorazione in Windows 8 e HTML5 indipendente dai plug-in
Siti Web e Web indipendente dai plug-in
Da iOS a IE10: creazione di esperienze indipendenti dai plug-in per più browser

 

 

Mostra:
© 2014 Microsoft