parallele Scriptausführung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • parallele Scriptausführung

    Hallo ,

    ich lade eine Datei hoch und starte per Ajax einen Import in eine MySQL DB.

    Zu meiner Überraschung kann ich den Dialog nicht weiterführen, d. h. mein Script wartet offensichtlich auf das Ende des Imports .

    Welche Ursachen könnte das haben?

    In den Methoden des Importscripts nutze ich ein persistente DB Verbindungen, die vor dem Return aber immer per $dbh=null gelöscht werden.

  • #2
    Welche Ursachen könnte das haben?
    ... d. h. mein Script wartet offensichtlich auf das Ende des Imports .
    du hast doch die antwort.

    Kommentar


    • #3
      OffTopic:
      In den Methoden des Importscripts nutze ich ein persistente DB Verbindungen, die vor dem Return aber immer per $dbh=null gelöscht werden.


      Wozu machst du sie denn dann persistent?
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Mal wieder schwer zu erraten, was du wirklich machst,

        aber vermutlich sieht es so aus.

        du sendest eine Datei via POST an ein PHP-Script, NACHDEM dieses Script ausgeführt wird, wir clientseitig (via JS http-request) das Import-script auf dem server gestartet.

        Welches aber nun ist dein script, welches bis zu beendigung des imports wartet? dein JS? Warum postest du dann im PHP-Forum?

        Also bitte nochmal ne konkrete frage mit vernünftigen Informationen stellen. Ins blaue raten will hier niemand!

        Kommentar


        • #5
          Sorry, wenn ich das nicht ausreichend beschrieben habe. Also etwas ausführlicher:

          Ich lade eine CSV-Datei mit einem Sript hoch und validiere den Inhalt. Wenn OK fordere ich den Benutzer auf, durch Click ein Import-Script zu starten. Ich starte das Import-Script per http-request, weil es ein Langläufer ist und der Bildschirm nicht blockiert sein soll, solange der Import läuft. Das Import-Script startet auch wie beabsichtigt.

          Leider kann ich aber den Dialog mit anderen Scripts nicht weiterführen, weil der Bildschirm blockiert ist.

          Kommentar


          • #6
            also wartest du in deinem ajax teil auf die antwort des servers? tu es nicht und du kannst weiterarbeiten.

            Kommentar


            • #7
              Also *move* ins JS-Forum. Ist doch immer wieder schön, wenn man weiß´, was man da programmiert.

              Kommentar


              • #8
                Verstehe nicht, wo mein JS-Script wartet, habe mich aber offen gesagt mit JS nie richtig beschäftigt und habe einfach ein Beispiel aus einem Tutorial kopiert.

                Habe den http-Request hier mal gelistet. Bin gespannt, ob die Ursache im JS liegt.
                • <script type="text/javascript">
                  <!--
                  var request = false;
                  function setRequest(url) {
                  if (window.XMLHttpRequest) {
                  request = new XMLHttpRequest(); // Mozilla, Safari, Opera
                  } else if (window.ActiveXObject) {
                  try {
                  request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
                  } catch (e) {
                  try {
                  request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
                  } catch (e) {}
                  }
                  }
                  if (!request) {
                  alert("Kann keine XMLHTTP-Instanz erzeugen");
                  return false;
                  } else {
                  request.open('post', url, true);
                  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                  request.send();
                  }
                  }
                  //-->
                  </script>

                Kommentar


                • #9
                  Ahja, mal wieder die Arbeit an Andere abgeben oder was?

                  Hast du überhaupt schon irgendwelche debuggingversuche unternommen? Scheint mir nicht so!
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar


                  • #10
                    Was gibt es denn zu debuggen, wenn ein Script überhaupt nicht anläuft?

                    Soviel verstehe ich von JS auch, dass ich erkenne, was die 3-4 Statements machen, die ich kodiert habe.

                    Ich denke es gibt neben JS zwei weitere Ursachen für das Problem:

                    1. Meine persistenten DB-Verbindungen im Import-Script
                    2. Ich starte in Import-Script eine Session wie ich es auch in dem Script tue, das den Dialog weiterführen soll.

                    Ich tippe mal eher darauf, dass es nicht erlaubt ist, mit 2 Scripts auf dieselben Session-Variablen zuzugreifen.

                    Bevor ich aber nun damit beginne alles umzukodieren, wäre ich für einen Tip dankbar, ob ich mit meiner Vermutung richtig liege.

                    Kommentar


                    • #11
                      Original geschrieben von Stonebreaker62
                      2. Ich starte in Import-Script eine Session wie ich es auch in dem Script tue, das den Dialog weiterführen soll.
                      Bei file-bases session-save-handler ist das natürlich dumm...

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Muss zugeben, dass das nicht besonders schlau war. Habe es mir zu einfach gemacht, ein Script kopiert und nicht daran gedacht, die Session-Variablen auszutauschen.

                        Das war mein erster Ajax-Versuch - da zahlt man eben Lehrgeld.

                        Habe alle Session-Variablen ersetzt und alles läuft wie gewünscht.

                        Kommentar

                        Lädt...
                        X