| |||||||
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) |
| OOP Addict Registriert seit: Mar 2004
Beiträge: 26
|
Folgende Methode hat sich bei mir in der Praxis bewährt: Sollte es bei vielen gleichzeitig abgeschickten Datenbankzugriffen Probleme mit AMFPHP geben (z.B. dass keine Werte zurückgegeben werden), empfiehlt es sich, die Datenbanzugriffe zu "kaskadieren". Also, man vermeide parallele Zugriffe wie hier (ActionScript-Code nur verkürzt dargestellt): Code: private function getDBRecords1(): Void {
var pc:PendingCall = MyService.getDBRecords1();
pc.responder = new RelayResponder(this, "getDBRecords1_Success", "getDBRecords1_Fault");
}
private function getDBRecords2(): Void {
var pc:PendingCall = MyService.getDBRecords2();
pc.responder = new RelayResponder(this, "getDBRecords2_Success", "getDBRecords2_Fault");
}
private function getDBRecords3(): Void {
var pc:PendingCall = MyService.getDBRecords3();
pc.responder = new RelayResponder(this, "getDBRecords3_Success", "getDBRecords3_Fault");
}
getDBRecords1();
getDBRecords2();
getDBRecords3(); Code: private function getDBRecords1(): Void {
var pc:PendingCall = MyService.getDBRecords1();
pc.responder = new RelayResponder(this, "getDBRecords1_Success", "getDBRecords1_Fault");
}
getDBRecords1_Success(re:ResultEvent):Void {
// do something with re.result
getDBRecords2();
}
...
getDBRecords2_Success(re:ResultEvent):Void {
// do something with re.result
getDBRecords3();
}
...
getDBRecords3_Success(re:ResultEvent):Void {
// do something with re.result and continue with your application
} Geändert von log2e (03-05-2006 um 10:13 Uhr) |
| | |
| | #2 (permalink) |
| x39 Registriert seit: Oct 2004 Ort: St.Gallen, Schweiz
Beiträge: 1.261
|
Danke, das ist eine logische und gute Idee... ich kanns zwar nicht testen, müsste mal einen onlineDienst aufsetzen wo auch wirklich 1000e Leute gleichzeitig zugreifen... Aber der Vorschlag macht absolut Sinn. |
| | |
| | #4 (permalink) | |
| OOP Addict Registriert seit: Mar 2004
Beiträge: 26
| Zitat:
Ein Beispiel wären etwa mehrere ComboBox-Komponenten auf einer Formular-Seite, die allesamt dynamisch gefüllt werden und deren Inhalte aus verschiedenen Datenbank-Tabellen kommen. Anstatt alle AMFPHP-Calls gleichzeitig abzusenden, kann es sinnvoll sein, die Pulldown-Menüs eins nach dem anderen zu füllen. | |
| | |
| | #5 (permalink) |
| x39 Registriert seit: Oct 2004 Ort: St.Gallen, Schweiz
Beiträge: 1.261
|
yep, jetzt ein halbes Jahr später hab ich genau diese Methode angewendet, und es klappt ganz gut. Du machst ja nichts anderes als die jeweiligen Funktionsaufrufe ineinander zu verschachteln, um parallelität zu umgehen. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |