Aufrufen einer p:remoteCommand über eine JavaScript-Funktion übergeben Sie eine Nachricht local, die Funktion in eine andere Funktion, die durch die "oncomplete" - handler

Diese Frage ist rein auf diese zuvor gestellte Frage (mit freundlicher Genehmigung) aber die Frage ist komplett Durcheinander mit den Java-EE-7 WebSockets-API versucht zu zeigen, die tatsächlichen praktischen Ansatz/Szenario ist nun sehr unwahrscheinlich zu erhalten, beantworten Sie die Fragen auf <p:remoteCommand>.


Da unten ein snippet des JavaScript (dies ist nur ein test-Szenario).

<script type="text/javascript">
    function test() {
        var message = "myMessage";
        window["myFunction"]();
        //This is literally interpreted as a JavaScript function "myFunction()".
        //"myFunction()" in turn is associated with a <p:remoteCommand>.
    }

    $(document).ready(test);

    function notifyAll() {
        alert("notifyAll() invoked.");
    }
</script>

Den test() Funktion wird aufgerufen, sobald die Seite geladen wird, die bewirkt, dass die folgenden <p:remoteCommand> auslösen, die wiederum ruft eine weitere JavaScript-Funktion, nämlich notifyAll() mit einem oncomplete - handler, der einfach Warnungen die besagte Meldung.

<h:form>
    <p:remoteCommand process="@this"
                     name="myFunction"
                     actionListener="#{bean.listener}"
                     oncomplete="notifyAll()"
                     ignoreAutoUpdate="true"/>
</h:form>

Davon ausgehen, dass die lokalen JavaScript-variable message innerhalb der test() Funktion zugewiesen ist, eine JSON-Nachricht, die asynchron empfangen durch eine WebSockets-Kanal.

Der notifyAll() Funktion wiederum sendet dann eine Benachrichtigung (myMessage lokalen test() Funktion - eigentlich eine JSON-Nachricht, die empfangen wird, die zuvor in der test() - Funktion) zu einem anderen WebSockets-Kanal, wird völlig ignoriert in dieser Frage für die Kürze.


Ist es möglich, übergeben Sie den Wert der var message = "myMessage" lokalen test() Funktion zu einer anderen Funktion notifyAll() durch die oncomplete handler der gegebenen <p:remoteCommand>?

Deklarieren message als eine Globale JavaScript-variable kann überwältigen die Funktionalität von WebSockets als die Nachricht empfangen wird asynchron d.h. eine neue Nachricht empfangen werden kann, während die Verarbeitung von <p:remoteCommand> ist immer noch auf/warten auf vollständige. So deklarieren message als eine Globale JavaScript-variable ist keine option.

.

InformationsquelleAutor Tiny | 2015-09-03

Schreibe einen Kommentar