2

私は例としてjQuery.Atmosphere.jsを取っています。これにはonMessage、onErrorなどのパブリック関数があります。そして、このAPIを実装するとき、私は次のことを行いました

var socket = $.atmosphere;
var request = new $.atmosphere.AtmosphereRequest();
request.onMessage = function(response) {
   // do what i want to do
 }

ここでは、サーバーがデータをブラウザーにプッシュするたびに onMessage がトリガーされます。request.onMessage(response) がどのように大気圏外の API に通知されるのかわかりませんか? 私は jQuery.Atmosphere.js を調べましたが、これがどのように機能するかをドットでつなぐことができませんでした。私は、websocket やサーバー プッシュ、または大気フレームワークについて話しているのではありません。JavaScript関数のコールバックがどのように機能するかを理解したいだけです。関数のコールバックがどのように機能するか、またはリンクを送ってくれたので、誰かが例を教えてくれますか?

4

1 に答える 1

0

構文が正しくありません。次のようにする必要があります。

request.onMessage = function(response) {
    // do what I want to do
};

ご覧のとおり、onMessageプロパティを関数に設定する必要があります。このオブジェクトで Message イベントが発生すると、関数が呼び出されます。jQuery.Atmosphere.jsコードには以下が含まれます。

f.onMessage(response);

wherefAtmosphereRequestオブジェクトを表す内部変数です。この関数は から呼び出されinvokeFunction()ます:

        function _invokeFunction(response) {
            _f(response, _request);
            // Global
            _f(response, jQuery.atmosphere);
        }

_requestAtmosphereRequestこのリクエストオブジェクトのすべての状態を含む、コンストラクター内のローカル変数です。これは Javascript オブジェクト指向プログラミングの一部です。このAtmosphereRequestオブジェクトを使用すると、これらの内部状態変数にアクセスできます。

于 2013-06-27T01:22:01.043 に答える