Ergebnis 1 bis 5 von 5
  1. #1
    purged ist offline Grünschnabel
    registriert
    11-10-2010
    Beiträge
    6

    Echtzeit Datenübertragung JS->Server ... ajax? zwischenspeichern?

    Hi!

    Ich habe gerade erst angefangen, mich mit JS auseinanderzusetzen. Mein erstes Projekt sieht bisher so aus:

    http://www.reps.cc/rss

    Es besteht zu 95% aus dem folgenden Tut:
    http://www.dhtmlgoodies.com/index.ht...dragable-boxes

    Ich möchte es aber dahingehend umgestalten, dass es die Widgets in einer Datenbank speichert anstatt in cookies. Dabei bin ich schon so weit fortgeschritten, dass zumindest die Daten in Datenbank und Cookies identisch sind. Ein Problem, das eher trivial scheint macht mir jetzt aber schon seit Tagen zu schaffen: Die Cookienamen werden durchnumeriert (REPS0, REPS1, REPS2, ...) währenddessen alle entsprechenden Attribute der Datensätze in der Datenbank REPS0 heißen. Besonders kurios ist das, weil ich die funktionen zur Speicherung direkt nacheinander aufrufe.

    Code:
    	function Set(name,value,expires,path,domain,secure) { 
    
    		expires = expires * 60*60*24*1000;
    		var today = new Date();
    		var expires_date = new Date( today.getTime() + (expires) );
    	    var cookieString = name + "=" +escape(value) + 
    	       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
    	       ( (path) ? ";path=" + path : "") + 
    	       ( (domain) ? ";domain=" + domain : "") + 
    	       ( (secure) ? ";secure" : ""); 
    	    document.cookie = cookieString; 
    		
    		
    		ajax.setVar("name", name);
    		ajax.setVar("value", escape(value));
    		ajax.requestFile = "mysql.php";
    		ajax.method = "POST";
    		ajax.element = 'replaceme';
    		ajax.onLoading = whenLoading;
    		ajax.onLoaded = whenLoaded; 
    		ajax.onInteractive = whenInteractive;
    		ajax.onCompletion = whenCompleted;
    		ajax.runAJAX();
    	} 
        }
    Ich habe dann einmal von Firebug den Traffic mitschreiben lassen. Mir ist aufgefallen, dass bei allen POST mysql.php aufrufen der Status mit "Aborted" angegeben ist.
    Kann es sein, dass die ajax Funktion (Simple AJAX Code-Kit (SACK) v1.6.1 von www.twilightuniverse.com) einfach langsamer ist als die Set() Funktion aufgerufen wird? Was kann ich da machen? Am besten wäre eine sleep funktion, die ich dann mit ajax.onCompletion = beenden kann ... ansonsten müsste ich die Werte irgendwie zwischenspeichern und auf einen Rutsch übertragen, aber dazu müsste ich tief in den fertigen code einsteigen :S

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Echtzeit Datenübertragung JS->Server ... ajax? zwischenspeichern?

    Eine andere Lösung wäre es, nicht immer das gleiche AJAX-Object zu verwenden, sondern einfach immer ein neues anzulegen.

  3. #3
    purged ist offline Grünschnabel
    registriert
    11-10-2010
    Beiträge
    6

    AW: Echtzeit Datenübertragung JS->Server ... ajax? zwischenspeichern?

    .... ... ja ...

    !!

    ich habe jetzt im ersten Schritt nur

    Code:
            ajax.setVar("name", name);
            ajax.setVar("value", escape(value));
            ajax.requestFile = "mysql.php";
            ajax.method = "POST";
            ajax.element = 'replaceme';
            ajax.onLoading = whenLoading;
            ajax.onLoaded = whenLoaded; 
            ajax.onInteractive = whenInteractive;
            ajax.onCompletion = whenCompleted;
            ajax.runAJAX();
    in

    Code:
            var blöd = new sack();
            blöd.setVar("name", name);
            blöd.setVar("value", escape(value));
            blöd.requestFile = "mysql.php";
            blöd.method = "POST";
            blöd.element = 'replaceme';
            blöd.onLoading = whenLoading;
            blöd.onLoaded = whenLoaded; 
            blöd.onInteractive = whenInteractive;
            blöd.onCompletion = whenCompleted;
            blöd.runAJAX();
    geändert ... ajax hatte ich nirgends initialisiert
    Und schon funktioniert es wie es soll ... Kurios finde ich aber, dass es auch vorher zumindest irgendwas übertragen hat.

    Weiß zufällig jemand, ob ich, sollte ich es genau so lassen, von einer schnellen Verbindung zum Server abhängig bin, weil JS, wenn es so weit ist, einfach mein blöd objekt überschreibt? Oder wird eine Instanz, einmal ins Rollen gebracht, auch ordentlich zu ende ausgeführt?

    Jedenfalls tausend Dank schonmal :>

  4. #4
    purged ist offline Grünschnabel
    registriert
    11-10-2010
    Beiträge
    6

    AW: Echtzeit Datenübertragung JS->Server ... ajax? zwischenspeichern?

    Zitat Zitat von purged Beitrag anzeigen
    Weiß zufällig jemand, ob ich, sollte ich es genau so lassen, von einer schnellen Verbindung zum Server abhängig bin, weil JS, wenn es so weit ist, einfach mein blöd objekt überschreibt? Oder wird eine Instanz, einmal ins Rollen gebracht, auch ordentlich zu ende ausgeführt?
    ich glaube, Firebug hat mir diese Frage grade beantwortet. Zu sehen in der Zeitlinie: Es werden mehrere Anfragen parallel auf den Weg geschickt:


  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Echtzeit Datenübertragung JS->Server ... ajax? zwischenspeichern?

    Da du blöd (ein nicht besondern guter Variablenname, da zum einen aussagelos und zum anderen wegen des Umblauts) als lokale Variable deklarierst wird da nichts überschrieben. Auch wenn du die Variable überschriebest sollten die Requests ordnungsgemäß abgewickelt werden.

Ähnliche Themen

  1. Datenübertragung durch window.addEvent
    Von the-rod im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 18-05-2009, 16:36
  2. Datenübertragung via AVR-Webserver
    Von jensen1708 im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 08-05-2008, 10:42
  3. Antworten: 5
    Letzter Beitrag: 02-05-2008, 10:56
  4. JS Datenübertragung
    Von Okar im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 26-08-2007, 19:16
  5. Eingaben zwischenspeichern
    Von KFlash im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 26-09-2006, 10:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •