2015-06-16 17 views
15

XMLHttpRequest sincrono viene deprecato, il che significa il supporto per esso verrà rimosso alla fine, ecco il messaggio che ottengo in Chrome:Chrome e altri browser abbandoneranno il supporto per Synchronous XMLHttpRequest?

sincrono XMLHttpRequest sul thread principale è deprecato a causa dei suoi effetti dannosi per l'esperienza dell'utente finale . Per ulteriori informazioni, consultare http://xhr.spec.whatwg.org/.

Quindi, la mia domanda è se, e, in caso affermativo, quando, i principali browser (specialmente Chrome) lasceranno il supporto per Synchronous XMLHttpRequest?

+0

È improbabile che si ottenga una risposta autorevole qui, ma è possibile leggere la politica di deprecazione per Blink () e guardare blink-dev per discussioni sulle deprecazioni. – smorgan

risposta

9

Aggiornamento: Chrome announcement sulla rimozione di XHR sincrono durante l'esecuzione di microtask alla versione 54 non è correlato.


non ho informazioni privilegiate, ma qui è una certa ricerca.

Il decision to deprecate è stato fatto nel febbraio 2014. Chrome ha dichiarato deprecated lo stesso mese, ma non ha show a warning fino novembre 2014. Firefox deprecated nel giugno 2014 (Firefox 30).

In generale, le funzionalità importanti per il Web richiedono tempo per migrare. Ad esempio, Chrome deprecated sostegno NPAPI nel settembre 2013. È disabled by default nel mese di aprile 2015 (Chrome 42), ed è in programma per la rimozione completa in SET 2015.

In questo caso, ExtJSstill utilizza questa funzionalità per il modulo di carico. Altri moduli lo utilizzano all'interno di un evento unload per eseguire il ping del server, ma la tecnologia di sostituzione beacon non è ancora pronta per la prima serata. Ci sono casi d'uso convincenti some more.

Circa 2.5% of websites (Aggiornamento: sceso allo 0,8% nell'ottobre 2017) utilizzano ancora XMLHttpRequest sincrono. Non sembra che andrà via presto.

+0

Grazie per la ricerca, ho letto le discussioni e in effetti non vi sono prove dirette che suggeriscano che verrà rimosso in qualsiasi momento, specialmente considerando il numero di siti e la rimozione delle tecnologie della funzionalità. Tuttavia, incrocio le dita perché rimanga funzionante abbastanza a lungo :) –

+3

Questo avviso è stato visualizzato negli strumenti di sviluppo di Chrome da uno dei nostri sviluppatori oggi: 'Invocare 'send()' su un XHR di sincronizzazione durante l'esecuzione della microtask è deprecato e sarà rimosso in M53, intorno a settembre 2016. Vedi https://www.chromestatus.com/features/5647113010544640 per ulteriori dettagli. – stevenghines

+0

Penso che il collegamento "Aggiornato" che menzioni @ alan-tam si riferisce all'uso XHR sincrono in un contesto specifico, chiamato microtasks. I microtasks sono un tipo speciale di codice http://stackoverflow.com/questions/25915634/difference-between-microtask-and-macrotask-within-an-event-loop-context in modo che XHR sincrono non venga rimosso in generale. La discussione del gruppo WHATWG non suggerisce la sua rimozione qui https://github.com/whatwg/xhr/issues/20 –