| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2008
Beiträge: 1
| Fehler bei Übergabe von Variablen aus MySQL in Firefox
Hello @ All! Ich möchte aus einer MySQL Datenbank Variablen an eine Flash-Seite übergeben. Mit Hilfe der AS2-Funktion execute_queries wird ein String (app_context) an ein PHP-Skript gesendet. Dort wird mit dem "app_context" eine MySQL-Anfrage formuliert und die Ergebnisse (ca. 1700 Datensätze) als String (bzw. als XML) zusammengesetzt und in der Variablen "sql_result" zurückgegeben. Die Funktion "execute_queries" ruft nach erfolgreichem laden (also nach Übergabe des kompletten MySQL-Query Ergebnisses in XML-Form) die Funktion splitVarXML auf. Dort wird das zurückgegebene XML mit einer for ... in Schleife aufgeteilt. Ergebnis sind dann "dynamisch generierte Variablen". Das funktioniert in IE7 und Firefox 2 bzw. 3 mit Flashplayer <= 8 problemlos, unter Firefox 2 und 3 mit Flashplayer >= 9 dauert es eine Ewigkeit, bis die Verarbeitung (also offensichtlich die for...in-Schleife) abgeschlossen ist. Wenn die Daten aus einer lokalen MySQL-Datenbank stammen, dauert es auch in Firefox 2 und 3 mit Flashplayer >= 9 nur ein paar Sekunden. Warum hängt sich Firefox bei diesem Vorgang auf? Beispielseite: www.perimetrik.de/customers/ente Hier der ActionScript-Code: Code: function execute_queries(query_contexts) {
var query_context:String = String(query_contexts.shift());
var load_vars:LoadVars = new LoadVars();
load_vars.onLoad = function(eq_test) {
if (eq_test) {
splitVarXML(load_vars.sql_result, query_contexts);
} else {
// LOAD VARS NICHT ERFOLGREICH
}
};
load_vars.app_context = query_context;
file = "get_settings.php?cache="+(new Date().getTime());
load_vars.sendAndLoad(file, load_vars, "POST");
}
function splitVarXML (varXML, query_contexts) {
var pk_vars:XML = new XML();
var settings_pointer: Number = 0;
pk_vars.parseXML(varXML);
pk_vars.ignoreWhite = true;
temp_xml_array = new Array();
temp_xml_array = pk_vars.firstChild.childNodes;
for (settings_pointer in temp_xml_array) {
var var_label:String = temp_xml_array[settings_pointer].attributes.label;
switch(temp_xml_array[settings_pointer].attributes.valuetype) {
case "array":
[var_label] = temp_xml_array[settings_pointer].attributes.value.split(",");
killWhiteSpace(_level10[var_label])
break;
case "bool":
[var_label] = Boolean(Number(temp_xml_array[settings_pointer].attributes.value));
break;
case "number":
[var_label] = Number(temp_xml_array[settings_pointer].attributes.value);
break;
case "string":
case "color":
[var_label] = String(temp_xml_array[settings_pointer].attributes.value);
break;
case "reference":
[var_label] = _level10[temp_xml_array[settings_pointer].attributes.value];
break;
default:
[var_label] = temp_xml_array[settings_pointer].attributes.value;
break;
}
}
if (query_contexts.length > 0) {
execute_queries(query_contexts);
} else {
var bool_settings_queries_finished:Boolean = true;
}
} PHP-Code: |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |