Synchrone Aufrufe mit RemoteObject -
Gibt es eine Möglichkeit, synchrone Aufrufe mit RemoteObject-in Flex?
InformationsquelleAutor sangupta | 2009-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Möglichkeit, synchrone Aufrufe mit RemoteObject-in Flex?
InformationsquelleAutor sangupta | 2009-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alle IO Flex asynchron ist. Das typische Muster im Umgang mit diesem, ist die Verwendung eines
AsyncResponder
. Zum Beispiel:Es gibt keine (saubere) Möglichkeit, um IO synchron in Flex.
und @Sandy Wenn ich ein Modell haben (auf der Flex-Seite) gerendert in einem editierbaren DataGrid-Zelle, und ich will es prüfen Eingang (pro paar-format), dann schickt das an den server und überprüfen (z.B. Eindeutigkeit). Wie kann ich dann die Unwirksamkeit der erste Prüfer in einer verketteten Mode? Meine aktuelle Implementierung verwendet ein DataGrid das itemEditEnd der überprüfung von Eingaben auf eine Zelle und danach macht einen Aufruf an den Server über eine RemoteObject. Je nach dem, was ich zurück bekommen, obwohl, ich brauche, um zu entkräften, dass die Zelle, die war gerade bearbeitet. Irgendwelche Gedanken? vielen Dank!
Hi Brian. Ich bin mir nicht sicher, was der beste Weg das zu tun ist. Vielleicht sollten Sie sich Fragen, ist dies ein weiterer top-level-Frage?
InformationsquelleAutor James Ward
zweimal überlegen,, wenn u wollen, dass es synchron sein.
Do u wissen, was synchron bedeutet? FRIEREN Sie Ihre Anwendung, bis Sie Daten empfangen. Es sei denn, u sind ziemlich sicher, dass Ihre Fernbedienung aufrufen können, erhalten return-Wert sofort (super schnelle Netzwerk-Verbindung).
wenn die Funktion Anruf abhängig von einander, ich schlage vor, Sie implementieren eine state machine. z.B.
nach dem 1. async call, Ihr Zustand wird STATE_1, und Ihre nächste Funktion aufrufen, prüfen den Status-variable, um zu entscheiden, weiter bewegen (ignorieren, den aktuellen Anruf oder tragen).
my 2 cents.
InformationsquelleAutor janetsmith
Wenn Sie möchten, synchrones Verhalten, nur noch ein warten, nachdem Sie den Anruf zu tätigen.
EDIT: ich habe code für die Verkettung Verhalten ich Rede. Ersetzen Sie einfach den Ergebnis-handler jedes nachfolgende mal, wenn Sie rufen Sie die remoteObject.
Naja, ich meinte mit warten, nichts tun. Und natürlich wissen Sie nicht, das timing, das ist, warum der Aufruf ist asynchron. Aber Sie können Sie nur aufrufen mithilfe der remoteObject-wieder aus dem resultHandler von einem Anruf und Kette in Mode.
Dies scheint der richtige Ansatz, wenn man vom anderen abhängig ist, lediglich die Verwendung der integrierten Ereignis-Hierarchie zu delegieren, Dinge auf Zeit. Seit dem zweiten remote-Objekte-Aufruf geschieht über die Vollendung der ersten, wir wissen, dass das Gründen der zweiten aus der ersten ist verfügbar und korrekt sind.
InformationsquelleAutor CookieOfFortune
Erzielte ich das gleiche auf zwei Arten: Erstens, wie gesagt, der Einsatz modernster Maschinen. Es kann schwierig manchmal sein. Zweitens, die Verwendung des command-queues - ich denke, dies ist der beste Weg, es zu tun... aber der Nachteil ist, dass die UI nicht sehr nachdenklich in dieser Zeit.
InformationsquelleAutor sangupta
sollten Sie vielleicht versuchen, und stellen Sie eine Anfrage mit allen Daten u wollen erhalten Sie synchrone und dann machen die verschiedenen Klassen, müssen die Daten überwachen, um die richtigen Daten für diese Klasse.
ex:
Etwas wie dieses. Hofft, dass dies hilft.
InformationsquelleAutor
Nein, warum würden Sie wollen auf jeden Fall tun.
Flex macht die Dinge asynchron, so dass der Benutzer nicht gezwungen zu sitzen und zu warten, während die Daten kommen zurück.
Es wäre eine sehr schlechte Benutzer expereince, wenn jedes mal, wenn eine app angeforderten Daten, die der Benutzer warten musste, auf Sie zurück kommen, bevor irgendetwas anderes passieren könnte.
Kommentar
Nein, Sie müssen nicht synchronus behaivour. Wenn Sie sagen, 2 Anrufe und Anruf 2 kommt, bevor der Anruf 1, aber 2 stützt sich auf die Daten innerhalb 1 dann Sie sind Links mit nicht Feuer-off-Veranstaltung 2 bis 1 kommt zurück (dies wird sich verlangsamen Ihre app - ähnlich wie synchronus Veranstaltungen) oder implementieren Sie einen Weg, um zu überprüfen, dass Ereignis 1 wieder in Fall 2 ist hf (es gibt viele Möglichkeiten, wie Sie dies tun könnte).
Wenn Sie brennen aus, viele Veranstaltungen, warum dann nicht eine wrapper-Klasse, der einige Beschreibung, die Spuren, die Ereignisse und nicht alles auf die Antworten, bis alle events sind zurück.
Sie können die AsyncToken zu verfolgen, individuelle Anforderungen, so dass, wenn Sie brennen von Lasten auf einmal, dann finden Sie genau das, was zurück kommen-und was nicht.
Es gibt Situationen, wenn Sie brauchen genau das - die Bedürfnisse der Nutzer zu sitzen und zu warten, bis die Anwendung lädt alle benötigten Daten vom server
InformationsquelleAutor kenneth
Sie alle sind irgendwie Irre oder nicht mit flex von adobe, wenn Sie senden Sie 2 Anrufe auf dem server, egal, ob bei jedem eine individuelle resquestObject der zweite wird NUR zurückgegeben werden, nach der ersten Schluss, auch wenn der zweite dauert 1 Millisekunde zu Bearbeiten. Versuchen Sie einfach, die fibonnaci 1/40 Beispiel.
InformationsquelleAutor smagno
Vielleicht, wenn Sie aufrufen einer synchronen
XMLHttpRequest
Aufruf von JavaScript in Flex können Sie dies tun.InformationsquelleAutor Rafael Lucio