Ergebnis 1 bis 15 von 15
  1. #1
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    Question überprüfen ob ajax anfrage komplett (prototype)

    Kann mir bitte einer von euchen sagen, wie man mittels dem prototyp-framework eine ajax abfrage absetzt und js erst weiterarbeitet wenn man das ergebniss vollständig am client hat???

    Hab die forum suche verwendet, aber leider war da nichts dabei
    ähnlich bzw gleiche frage

    Code:
    var myAjax = new Ajax.Updater(ZuErsetzenderPlatzhalter,PHPURL, {method: Methode, asynchronous: 'false', evalScripts: 'true'});
    Es genügd anscheinend nicht asynchronous (also weiterarbeiten) auf 'false' zu setzen.

    Ich weiß dazu dient zb die "onreadystatechange"....aber wie greif ich jetzt auf diesen wert mittels prototyp zu??

    so hats angefangen (timing bei function-aufrufen)


    hab schon versucht auf den "onreadystatechange" value zuzugreifen und eine Wait-function aufzurufen. Damit erst dann weitergearbeitet wird wenn ajax alle daten übermittelt hat:
    aber so hats net gefunzt (myAjax.readystatechange ist immer "undifend"):
    Code:
    while (myAjax.readystatechange != 2)
    {
      pausecomp(20);
    }
    }
    
    function pausecomp(millis)
    {
    var date = new Date();
    var curDate = null;
    
    do { curDate = new Date(); }
    while(curDate-date < millis);
    }
    Bitte helft mir weiter

    lg
    Geändert von -SuperMario- (31-10-2006 um 17:53 Uhr)

  2. #2
    shf10105 ist offline Haudegen
    registriert
    04-05-2006
    Ort
    Duisburg
    Beiträge
    625

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Die Attribute onSuccess und onFailure können als Parameter übergeben werden. Sie sollten jeweils eine Funktion beinhalten.

    Also folgendermaßen :

    PHP-Code:
    var myAjax = new Ajax.Updater(ZuErsetzenderPlatzhalter,PHPURL, {
     
    methodMethode,
     
    asynchronous'false',
     
    evalScripts'true',
     
    onSuccess:function()
     {
      
    alert("bla");
     }
    }); 
    while(windows.iq < 130) linux.use();
    "Die Tastatur wurde nicht gefunden, bitte drücken sie F1 um fortzufahren."

  3. #3
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Danke für deine antwort

    Code:
    var myAjax = new Ajax.Updater(ZuErsetzenderPlatzhalter,PHPURL, {
     method: Methode,
     asynchronous: 'false',
     evalScripts: 'true',
     onSuccess:function()
     {
      alert("bla");
     }
    });

    Hmm, aber das problem,das er im hintergrund weiterarbeitet, besteht weiterhin


    1) also ich stoss den ajax-abruf an
    2)dann kommt ein alert dass weiter untem im script steht
    3)und dann kommt der "bla" alert das er fertig ist

    menno, wieso stoppt das script nicht :whacky:

    thx@shf10105

  4. #4
    shf10105 ist offline Haudegen
    registriert
    04-05-2006
    Ort
    Duisburg
    Beiträge
    625

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Gut,
    schreibe doch mal, was du denn überhaupt erreichen willst?
    while(windows.iq < 130) linux.use();
    "Die Tastatur wurde nicht gefunden, bitte drücken sie F1 um fortzufahren."

  5. #5
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    Thumbs up AW: überprüfen ob ajax anfrage komplett (prototype)

    also erreichen will ich eben folgendes -> wenn ich nen ajax befehl absetze, dass er nicht im script weiterarbeitet!!
    Sondern erst dann im script weitergearbeitet wird, wenn der ajax befehl vollständig ist.

    Der rest des scripts geht davon aus, das die Ajax-daten bereits in dem div container enthalten sind.

    Code:
    var myAjax = new Ajax.Updater(ZuErsetzenderPlatzhalter,PHPURL,
    	{
    	 method: Methode,
    	 asynchronous: 'false',
    	 onSuccess:function()
    	 {
      		alert("bla");
    	 } 
    	 , evalScripts: 'true'});

    Code:
    function test(person_nr)
    {
     	//hier werden daten zu einer ID geholt...mittels ajax und dem oben genannten ajax aufruf
    	getPersonenDaten(person_nr);
    
             alert("das kommt vor dem bla-alert");
    
            //hier darf erst weiterarbeiten wenn der ajax befehl fertig ist
            //denn diese function erwartet die ajax daten
    	setupPanes("container1","tab1"); 	
    }
    Jetzt arbeitet er eben weiter, da das alert aus der test-function vor dem
    alert onSuccess kommt.

    Geändert von -SuperMario- (31-10-2006 um 18:26 Uhr)

  6. #6
    shf10105 ist offline Haudegen
    registriert
    04-05-2006
    Ort
    Duisburg
    Beiträge
    625

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Entweder musst du da synchrone Abfragen verwenden ( würde ich nicht empfehlen ) oder die Funktion aufteilen :

    Code:
    function bla1()
    {
     //Hier das AJAX Zeugs
    }
    
    function bla2()
    {
     //Hier das was danach passieren soll
    }
    und bei dem AJAX-Zeugs dann noch bla2 als onSuccess eintragen.
    Für dein Beispiel :

    function test()
    {
    var myAjax = new Ajax.Updater(ZuErsetzenderPlatzhalter,PHPURL,
    {
    method: Methode,
    asynchronous: 'false',
    onSuccess:function(){setupPanes("container1","tab1");}
    , evalScripts: 'true'});
    }
    Geändert von shf10105 (31-10-2006 um 18:29 Uhr)
    while(windows.iq < 130) linux.use();
    "Die Tastatur wurde nicht gefunden, bitte drücken sie F1 um fortzufahren."

  7. #7
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    puhh, ich bin heute nicht mehr in der lage das problem zu lösen. Kann schon gar nimma klar denken. Ich werd für heute gut sein lassen oder eher schlecht sein lassen.

    lg

  8. #8
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    jep shf10105, jetzt funztes es endlich so halbwegs
    onSuccess war das zauberwort-funktionsaufrufe angepasst und fertig!!

    vielen dank

    greets
    Geändert von -SuperMario- (07-11-2006 um 21:53 Uhr)

  9. #9
    shf10105 ist offline Haudegen
    registriert
    04-05-2006
    Ort
    Duisburg
    Beiträge
    625

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Gern geschehen!
    while(windows.iq < 130) linux.use();
    "Die Tastatur wurde nicht gefunden, bitte drücken sie F1 um fortzufahren."

  10. #10
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    ICH DREH JETZT AUF DER STELLE DURCH

    Bitte bitte bitte helft mir weiter!!!
    Ich bekomm das einfach nicht hin das abgewartet wird bis die Ajax-Abfrage fertig ist.
    Ich bin schon am verzweifeln!


    das ganze wirdausgelöst bei einem onclick event
    Code:
    <tr id="personen" class="normal" onClick="create_mainpart('personen')" onmouseover="Grid_selected_row_color('personen',........
    .....
    Funktion aufrufen die die ajax-abfrage beinhaltet
    Code:
    function create_mainpart(part)
    { 
      //Funktion ruft Ajax auf
      AjaxGetHTML('mainwindow','createmainpart.php?menue=' + part,'get',part); 	
      alert("DRITTES Alert - weiter im text");
    Ajax funktion die oben aufgerufen wird:
    Code:
    Function AjaxGetHTML(ZuErsetzenderPlatzhalter,ErgebnisErzeugenURL,Methode,formname)
    {
    	var myAjax = new Ajax.Updater
    	(
    		ZuErsetzenderPlatzhalter,ErgebnisErzeugenURL,
    		{
    		 method: Methode,
    		 onSuccess: function()
    		 {
    		  if (formname=='personen')
    		  {
    			alert("ERSTES ALERT - Ajax fertisch");
    			var test2 = disable_Personendaten(document.forms['personenbearbeiten'],true);
    			var test1 = setupPanes("container1","tab1");	
    		   }
    		 }
    		 ,evalScripts: 'true'
    		 ,asynchronous: 'true'
    	 	}
    	);
    Function die bei onSuccess aufgerufen wird:
    Code:
    function disable_Personendaten(F,action)
    {
      alert("ZWEITES ALERT" + F+"___"+action);
      for (var i = 0; i < F.elements.length; i++) 
      {
        F.elements[i].disabled=action;
      }
    }
    Die aufrufe reagieren im Firefox immer gleich:
    Es scheint als kommt der "DRITTE ALERT" vor dem "ERSTEN ALERT" (der erste liegt über dem dritten) und dann wenn man den ERSTEN ALERT bestätigt kommt der "ZWEITE ALERT"

    IE:Erster Aufruf (wie im Firefox)
    Doch beim2,3,4... Aufruf: "ERSTE ALERT","ZWEITE ALERT","DRITTEN ALERT" genau so wie es sein soll Kann das etwas mit dem cach zutun haben denn er mittlerweile angelegt hat?

    Ich versteh das ganze nicht
    Geändert von -SuperMario- (07-11-2006 um 22:23 Uhr)

  11. #11
    pit-r Guest

    AW: überprüfen ob ajax anfrage komplett (prototype)

    Zitat Zitat von -SuperMario-
    ICH DREH JETZT AUF DER STELLE DURCH
    Das ist ungünstig, da die Durchdreh-Abteilung heute mal wieder keine Notaufnahme hat. Wende Dich an die nächste Klinik, die Dich behandeln kann.
    Ajax funktion die oben aufgerufen wird:
    Code:
    Function AjaxGetHTML(ZuErsetzenderPlatzhalter,ErgebnisErzeugenURL,Methode,formname)
    //...
    Findest Du das 'F' nicht etwas zu groß?

    Und: hättest Du Deinen 'so hats angefangen'-Thread detailliert verfolgt, wüßtest Du, woran das Übel liegt und Du kämst evt. um eine Einweisung herum.

    Auf baldige Genesung!

  12. #12
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    ahoi pit-r und danke erstmal für deine antwort!!

    Das ist ungünstig, da die Durchdreh-Abteilung heute mal wieder keine Notaufnahme hat. Wende Dich an die nächste Klinik, die Dich behandeln kann.


    Und: hättest Du Deinen 'so hats angefangen'-Thread detailliert verfolgt, wüßtest Du, woran das Übel liegt und Du kämst evt. um eine Einweisung herum.
    also ich verfolg das forum jetzt schon ne ganze weile und ich halt echt verdammt viel von dir, deinem wissen und deinen 10.000 posts!
    Ich weiß jetzt jedoch nicht wie mir das weiterhelfen soll?!

    Wenn ich die Lösung des Problemes wissen täte, hätt ich hier nicht wieder reingepostet!

    Für einen konkreten lösungsvorschlag wär ich echt dankbar

    edit
    Also ich hol mir über die ajax-anfrage ein zusammengebasteltes GUI für einen abschnitt meiner website. Wenn nun das alert aus dem onsuccess auftaucht, müsst das gui ja bereits im div container enthalten sein oder was meint ihr dazu?

    Code:
    ...
    ...
     onSuccess: function()
     {
      if (formname=='personen')
      {
    	alert("ERSTES ALERT - Ajax fertisch");
    ...
    ...
    greetz
    Geändert von -SuperMario- (08-11-2006 um 12:13 Uhr)

  13. #13
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    hmm, oncomplete: scheint etwas besser zu funktionieren wenns darum geht, abzufragen ob ne Ajax anfrage komplett fertig verarbeitet ist. (was irgendwie unlogisch ist, da onSuccess der letzte state ist
    button klicken bei den Event handlers)

    So wie es jetzt ist, kann ich, denk ich, gut damit leben!

    thx @ll und special thx @ shf10105

    Für alle die das selbe problem haben (werden)
    Das ganze sieht nun so aus:

    Ajax aufrufen, das mir ein gui zusammenbastelt und in nen div schreibt
    Code:
    function create_mainpart(part)
    {  		
      AjaxGetHTML('mainwindow','createmainpart.php?menue=' + part,'get',part); 	
      alert("DRITTES ALERT__weiter im text");
      alert("VIERTES ALERT__weiter im text");
    funktion die oben aufgerufen wird. Wenn ajax fertig ist und mein Gui im div enthalten (->oncomplete) ist ruf ich ne funktion auf, die nun das erstellte form initalisiert (input-felder sperren, usw)
    Code:
    function AjaxGetHTML(ZuErsetzenderPlatzhalter,ErgebnisErzeugenURL,Methode,formname)
    {
    var myAjax = new Ajax.Updater
    (
    ZuErsetzenderPlatzhalter,ErgebnisErzeugenURL,
    {
      method: Methode,
       onComplete: function()
      {
        if (formname=='personen')
        {
    	alert("ERSTES ALERT__Ajax fertisch");
    	init_personform();
        }
      },
    onFailure:  function()
    {
      alert ("Ajax fehler");
    }
     ,evalScripts: 'true'
     ,asynchronous: 'true'
    }
    );
    Funktion die bei oncomplete aufgerufen wird
    Code:
    function init_personform()
    {
      alert("2TES ALERT -- init personform");
      var test1 = disable_Personendaten(document.forms["personenbearbeiten"],true);
     var test2 = setupPanes("container1","tab1");	
    }
    ]
    Geändert von -SuperMario- (08-11-2006 um 12:23 Uhr)

  14. #14
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: überprüfen ob ajax anfrage komplett (prototype)

    wobei ich es merkwürdig finde dass du AJAX verwendest, aber nicht dessen Vorteile nutzen willst. Das es asynchron arbeitet und der User den Browser weiter benutzen kann während Daten geladen werden, dafür ist doch AJAX da.

  15. #15
    Avatar von -SuperMario-
    -SuperMario- ist offline Jungspund
    registriert
    30-10-2006
    Beiträge
    20

    AW: überprüfen ob ajax anfrage komplett (prototype)

    hmm, das ist durchaus eine berichtigte frage!

    Mein problem ist/war einfach, dass ich in php ein gui zusammenbasteln muss. Dieses gui soll dann in einen div auf der website geladen werden (ohne das sich die website aktualisiert)

    Ich glaub ich hab deshalb zu ajax gegriffen, da es mir unklar ist, wie ich sonst einen bereich auf der website mit dem php erstellten gui befüllen kann, ohne aktualisieren der seite. Wie hier die kommunikation zwischen html - php und ev. js aussieht

    Ich weiß, ist so nicht gerade sauber gelöst und ich mißbrauch ajax da irgendwie ein bisschen *doppel-dreifach-vierfach-schähm*
    Geändert von -SuperMario- (08-11-2006 um 13:12 Uhr)

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 18-08-2006, 18:39

Lesezeichen

Berechtigungen

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