Original geschrieben von Chrissi007
[B]Das kommt dabei raus wenn ein Jscript Noob versucht ne AJAX-Anwendung zu bauen...
Ach schei... ich hab echt keinen blaßen Schimmer...
[B]Das kommt dabei raus wenn ein Jscript Noob versucht ne AJAX-Anwendung zu bauen...
Ach schei... ich hab echt keinen blaßen Schimmer...
* die hochgeladenen Bytes,
* die insgesamt hochzuladenden Bytes (POST-Request-Rohdaten-Menge),
* und eventuell die Nummer der gerade hochgeladenen Datei
Diese Daten würde ich vom PHP-Script einfach als Text in drei Zeilen (mit CRLF getrennt) ausgeben lassen. Eine JavaScript-Funktion, die diese drei Zeilen in ein (assoziatives) Array aufsplittet, dürfte da keine große Hürde darstellen.
Außerdem ruft das Client-Script, das Server-Script mit der "Progress-Info" mehrmals auf. Bei deiner Lösung sendet nun das Server-Script bei jeder Anfrage den ganzen Kram (die drei Zahlen + HTML + JavaScript) an den Client -- das summiert sich.
Und eigentlich ist doch der HTML+JavaScript-Teil immer derselbe. Es sollte also genügen, die Anzeige-Logik einmalig zu laden, und nach Drücken des Submit-Buttons nur noch die reinen Daten abzufragen.
Könntest du mir vielleicht noch eine kleine Info mir mit auf den Weg geben: Wie ich mit php json-enkodierte Dinge erstelle und an Javascript sende ist mir soweit klar, aber wie krieg ich intern in Javascript dieses Json-Zeugs in eine Variable rein? Also ich muss die json-enkodierte Zeichenkette, die von php kommt, in Javascript ja irgendwie ausführen, oder?
Code:
mein_objekt = eval( "(" + http_request.responseText + ")" );
Es gibt aber fertige JSON-Decoder, die das für dich erledigen -- musst du mal Google beätigen. Je nach Code-Umfang des Decoders sind dabei auch Sicherheitsmechanismen eingebaut, die Schlimmeres verhindern:
http://code.google.com/p/json-sans-eval/
http://www.json.org/json_parse.js
Die diversen Frameworks haben auch eingebaute JSON-Parser/-Decoder-Funktionen.
Eine interessante Alternative stellt parseJSON() dar Diese Funktion könnte irgendwann mal "native" in JavaScript eingebaut werden.
(...) ich seh nicht so genau, an welcher Stelle hier ein Angriff möglich wäre? Der Client empfängt ja nur Daten aus einem Script.
Original geschrieben von PHP-Desaster:
Btw: Ich finde das direkte Übergeben von HTML an den Browser nicht komplett daneben. Klar, eine saubere JSON - oder wie auch immer - Schnittstelle ist eindeutig sauberer, aber das direkte übergeben von HTML hat den Charm, das ich diese gerenderten Abschnitte auch direkt ohne Ajax verwenden kann und nicht zwei verschiedene Formate unterstützen muss.
Btw: Ich finde das direkte Übergeben von HTML an den Browser nicht komplett daneben. Klar, eine saubere JSON - oder wie auch immer - Schnittstelle ist eindeutig sauberer, aber das direkte übergeben von HTML hat den Charm, das ich diese gerenderten Abschnitte auch direkt ohne Ajax verwenden kann und nicht zwei verschiedene Formate unterstützen muss.
Aber das mit dem "ohne AJAX verwenden" versteh ich jetzt nicht -- erklär mal genauer.
Kommentar