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

[FRAGE] javascript datei per xmlhttprequest ausführen

hisiro

New member
Liebe Programmierer ich habe folgendes Problem oder auch Denkfehler:

Ich starte einen worker (index.html) in welchem ich per xmlhttprequest (wrk_createUsrPosFiles.js) ein JavaScript file starten möchte welches dann per fso eine Datei schreibt.

Folgenden code habe ich

index.html

Code:
        // 10.3 Die aktuelle Benutzerposition in das user.txt speicher (31.10.2014)
        var w;
        function createUsrPosFiles() {
            if (typeof (Worker) !== "undefined") {
                if(typeof(w)=="undefined"){
                    w= new Worker("js/wrk_createUsrPosFiles.js")
            }
            w.onmessage = function(event){
                alert(event.data);
                w.terminate();
                w = undefined;
            };
        }
        else
        {
            alert("No Web Worker supported");
            }
        }


wrk_createUsrPosFiles.js

Code:
var i = 0;

function timedCount() {
    postMessage("JETZTI");
    
    // Hilfsfunktion den ajax call für die Bilder macht
    var url = "createUsrPosFiles.js";
        var req = new XMLHttpRequest();
        req.open("GET", url, false);
      //  req.overrideMimeType("text/plain; charset=x-user-defined");
        req.send(null);
        if (req.status != 200) {
            return "";
        }
        postMessage( req.responseText);


}

timedCount();

createUsrPosFiles:

Code:
alert("es geht");

Allerdings wird der code im createUsrPosFile nicht ausgeführt sondern nur zurückgegeben.

Ist die Vorgangsweise überhaupt korrekt so?

Vielen Dank für eure Hilfe
 
Ist die Vorgangsweise überhaupt korrekt so?
nachdem was du zu wollen scheinst, nein.

erstmal, AJAX gibt dir auch bei .js Dateien den Inhalt zurück (wie bei allen anderen requests auch) um JS code aus AJAX heraus auzuführen, mußt du mit <script> elementen arbeiten. im Worker wäre das alles eh zweckfrei, da alert() (resp. window) gar nicht definiert ist (sh. auch https://developer.mozilla.org/en-US/docs/Web/API/Worker/Functions_and_classes_available_to_workers). und wenn die Datei im Hauptfenster ausgeführt werden soll, wozu dann einen Worker nutzen?
 
Ich möchte parallel zur index.html in der createUserPos.html mit fso eine Textdatei schreiben. Damit dies zu keiner Zeitverzögerung (Ladezeit) in der Index.html kommt möchte ich es in einem worker auslagern. Da im worker direkt ja kein Objekt generiert werden kann (fso) wollte ich ein JavaScript ausführen in welchem dies durchgeführt wird. Ajax ist ja wiederum im worker nicht zulässig da es ja zur DOM-Manipulation reicht. Somit wollte ich mit xmlHTTPRequest ein js File ausführen was diese Aufgabe übernimmt. Mit Ajax kann man ja auch php Files aufrufen und diese durchlaufen ohne dass man den Code zurückbekommt sondern nur eine Antwort.

Dormilich verstehst du was ich meine?

Vielen Dank für eure Hilfe
 
ich verstehe schon, aber es geht so nicht. ein Worker kann nur das JS benutzen, was in seinem Quellcode steht. ich verstehe auch nicht, warum der Worker das JS nachladen muß, du kannst es doch gleich in die wrk_createUsrPosFiles.js schreiben, oder?
 
du kannst es doch gleich in die wrk_createUsrPosFiles.js schreiben, oder?

Hab ich auch schon probiert, da es ja kein DOM Manipulator ist aber wenn ich den Code im Workerfile ausführe:

Code:
fso = new ActiveXObject("Scripting.FileSystemObject");


stürzt der Worker ab.

Ich bin ratlos ... und ich finde auch nichts dazu?

Gibt es eventuell eine andere Lösung für mein Problem?
 
Ja das ist jetzt die Frage. Ich finde in der Dokumentation oder auch in den Foren nichts dazu.

Gibt es eine andere Möglichkeit eine Textdatei zu schreiben (lokal)
 
Zurück
Oben