• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Firefox und Comet - Problem

dertypdernixkan

New member
Abend...

Ich habe ein kleines Problem bei FF und einer Comet-Anwendung die ich grade teste. Ziel ist es, bei einem onclick eine Funktion zu starten.

Aufgerufen wird sie mit onclick="publish_it();".

js - ruft eine Funktion auf welche eine PHP-Datei aufruft (diese kleine Funktion ist im HEAD notiert), den Aufruf der der NovComet.publish lasse ich jetzt mal weg, der ist relativ unwichtig.

HTML:
function publish_it() {
		NovComet.publish('coz');
}


Das ist die NovComet.js
HTML:
NovComet = {    sleepTime: 2000,    _subscribed: {},    _timeout: undefined,    _baseurl: "../fvs/comet.php",    _args: '',    _urlParam: 'subscribed',        subscribe: function(id, callback) {
        NovComet._subscribed[id] = {
            cbk: callback,            timestamp: NovComet._getCurrentTimestamp()
        };
        return NovComet;
    },
    _refresh: function() {
        NovComet._timeout = setTimeout(function() {
            NovComet.run()
        }, NovComet.sleepTime);
    },
    init: function(baseurl) {
        if (baseurl!=undefined) {
            NovComet._baseurl = baseurl;
        }
    },
    _getCurrentTimestamp: function() {
        return Math.round(new Date().getTime() / 1000);
    },         run: function() {
        var cometCheckUrl = NovComet._baseurl + '?' + NovComet._args;
        for (var id in NovComet._subscribed) {
            var currentTimestamp = NovComet._subscribed[id]['timestamp'];            cometCheckUrl += '&' + NovComet._urlParam+ '[' + id + ']=' + currentTimestamp;
        }
        cometCheckUrl += '&' + NovComet._getCurrentTimestamp();
        $.getJSON(cometCheckUrl, function(data){
            if(data.s == "0") {
                NovComet._refresh();
						} else {
								for (var id in data['k']) {
                    NovComet._subscribed[id]['timestamp'] = data['k'][id];                    NovComet._subscribed[id].cbk(data.k);
                }
                NovComet._refresh();
            }
        });
    },        publish: function(id) {
        var cometPublishUrl = NovComet._baseurl + '?' + NovComet._args;
        cometPublishUrl += '&publish=' + id;
        $.getJSON(cometPublishUrl);
    }
};

Bis hier her kein Problem.

Wenn ich mit Chrome, IE oder Opera einen Text verfasse und absende, erscheint auf meiner Index-Seite der neue Beitrag, nur beim Absenden über FF passiert nichts, außer, ich setze

HTML:
function publish_it() {
  NovComet.publish('coz');

  alert("irgend was");

}

Sofern ich auf Ok geklickt habe, lädt auch der FF auf der Indexseite die Daten. Nur ohne Alert, Confirm geht gar nix. Gibt es irgendeine "Sicherheitseinstellung" unter FF die Longpolling verhindert?
 
Gibt es irgendeine "Sicherheitseinstellung" unter FF die Longpolling verhindert?
Gute Frage, keine Ahnung. :) Was sagt denn Freund Google dazu? Das klingt auf jeden Fall sehr merkwürdig, es ist natürlich nicht ausgeschlossen, dass es sich um einen FF proprietären Bug handelt.
 
Zurück
Oben