web-dev-qa-db-fra.com

Existe-t-il un équivalent Microsoft pour les événements HTML5 Server-Sent?

J'utilise les événements HTML5 Server-Sent comme suit:

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

Cela ne fonctionne pas dans IE11. (Erreur dans la console: 'EventSource' is undefined) Existe-t-il un équivalent Microsoft identique ou dois-je faire quelque chose de complètement différent?

38
GiantDuck

En un mot, non.

Microsoft n'a pas inclus SSE ou un équivalent de SSE dans aucune version d'IE. OMI, vous avez deux bonnes options:

  1. Utiliser un polyfill - Mes tests avec ce polyfill dans IE10 et IE11 ont tous été couronnés de succès. Puisqu'il commence par if ("EventSource" in global) return;, il ne s'exécutera que dans les navigateurs qui ne prennent pas en charge EventSource.
  2. Utilisez websockets au lieu de - Bien que cela nécessite plus de configuration côté serveur (protocole ws://), cela fonctionne dans IE10 et 11 et fournit plus d'options telles que la communication bidirectionnelle.
68
Mooseman

Le support natif de SSE pour IE n’est pas là. Vous pouvez réaliser la même chose avec polyfill

0
Prakash N D