33

Ich bin mit HTML5 Server-Sent Events wie folgt:Gibt es ein Microsoft-Äquivalent für gesendete HTML5-Serverereignisse?

SSEUpdate = new EventSource("http://example.com/update.php"); 
    SSEUpdate.onmessage = function(e){ 
     console.log(e.data); 
    } 

Es funktioniert nicht in IE11. (Fehler in der Konsole: 'EventSource' is undefined) Gibt es ein identisches Microsoft-Äquivalent, oder muss ich etwas komplett anderes machen?

Antwort

56

In einem Wort, nein.

Microsoft hat SSE oder ein Äquivalent von SSE in keiner Version von IE enthalten. IMO, haben Sie zwei gute Möglichkeiten:

  1. Verwenden Sie ein polyfill - Meine Tests mit this polyfill in IE10 und IE11 waren alle erfolgreich. Da es mit if ("EventSource" in global) return; startet, wird es nur in Browsern ausgeführt, die EventSource nicht unterstützen.
  2. Verwenden statt - Obwohl es mehr serverseitige Setup erfordert (Das ws://-Protokoll), it works in IE10 and 11 und weitere Optionen wie eine bidirektionale Kommunikation zur Verfügung stellt.
+2

Die Polyfill funktioniert für mich! Vielen Dank!! – GiantDuck

+2

Hat jemand Probleme mit der Verwendung von IE10 und einem Polyfill, wo IE nie die Verbindung auf Tab/Browser schließt? Ich habe versucht, mehrere Polyfills und Server-Implementierungen und es scheint, dass IE xhr.abort() wird nie die Verbindung zu schließen :( – jCuga

+2

Wie lange, glaubst du, Entwickler sollten weiterhin IE unterstützen? Obwohl viele Leute es derzeit verwenden Es scheint eine Menge Ärger für etwas zu sein, das bereits veraltet ist. Sollten Entwickler sich mehr auf die Unterstützung von Edge und anderen Browsern konzentrieren, die hier bleiben? – www139