M.: Server-Push vs. Browser-Poll

Mahlzeit,
ich hab mal was gesucht zum Thema Serverpush und bin dabei auf EventSource() im Chrome gestossen.

Jetzt schaut das für mich aber aus wie ein 3-Sekunden Polling vom Browser und kein Server-Push.

Interpretiere ich Server-Push falsch (für mich ist das eine Meldung vom Server, auf die der Browser reagiert ohne ständig anzufragen) oder wird hier nur was als Server-Push verkauft, was keiner ist?

Ich bin ja der Meinung, für ein Polling brauch ich kein extra Obejkt, das geht IMO per setInterval komfortabler.

  1. Interpretiere ich Server-Push falsch (für mich ist das eine Meldung vom Server, auf die der Browser reagiert ohne ständig anzufragen) oder wird hier nur was als Server-Push verkauft, was keiner ist?

    Die EventSource-API spezifiziert einen Weg Server-Push-Technologien agnostisch von ihrer Implementation zu entwickeln. In der Realität basiert das Kommunikations-Protokoll in den meisten (allen?) Fällen auf dem HTTP-Protokoll und das funktioniert eben nach dem Request-Response-Prinzip.

    Ich bin ja der Meinung, für ein Polling brauch ich kein extra Obejkt, das geht IMO per setInterval komfortabler.

    Definiere "komfortabel". Mit setInterval und AJAX kannst du einen Polling-Mechanismus nachbasteln, der in der EventSource-API bereits implementiert ist.

    1. Definiere "komfortabel". Mit setInterval und AJAX kannst du einen Polling-Mechanismus nachbasteln, der in der EventSource-API bereits implementiert ist.

      Komfortabler beim  setInterval ist IMO, dass ich die Pollzeit direkt angeben kann, bei Eventsource kann ich nur über den Header die Zeit beeinflussen.

      Klar, in "purem" JS muss ich den Ajax-Request erst nachbauen, wenn, wie in meinem Fall, bereits jquery vorhanden ist, fällt das aus.

      Allerdings nutze ich jetzt das PeriodicalUpdate-Plugin für jquery und spare mir Eventsource komplett.

      1. Definiere "komfortabel". Mit setInterval und AJAX kannst du einen Polling-Mechanismus nachbasteln, der in der EventSource-API bereits implementiert ist.

        Komfortabler beim  setInterval ist IMO, dass ich die Pollzeit direkt angeben kann, bei Eventsource kann ich nur über den Header die Zeit beeinflussen.

        Auf diese Weise könnte man auch gegen window.requestAnimationFrame( draw ) argumentieren, weil man via window.setTimeout( draw, 1000/FPS ) komfortabel seine gewünschten FPS angeben kann.
        Die ganzen Möglichkeiten zur Optimierungen, die der User Agent bei seiner eigenen Implementierung hat, sind allerdings nicht von der Hand zu weisen.