1

次のようなwebsocket接続を格納するjavascript変数があります。

var ws = $.websocketSettings.factory(url);
        $(ws)
            .bind('open', $.websocketSettings.open)
            .bind('close', $.websocketSettings.close)
            .bind('message', $.websocketSettings.message)
            .bind('error', $.websocketSettings.error)
            .bind('relaySent', $.websocketSettings.relayTimeout)
            .bind('relayRetry', $.websocketSettings.relayRetry)
            .bind('jumpStart', $.websocketSettings.jumpFactory);

ただし、接続が切断された場合に備えて、新しい接続で変数をjumpStartリセットするイベントがあります。ws

jumpFactory: function(event){
            var ws = this;
            ws = $.websocketSettings.factory( getEngineUrl() );
            return ws;
        },

これにより、バインドされたイベントが壊れwsますか? 奇妙な動作が見られるので、原因を特定しようとしています。ありがとう。

4

1 に答える 1

1

イベントを変数にバインドするのではなく、その値 (その中で参照されるオブジェクト) にバインドします。新しいオブジェクトを変数に割り当てても、これらのバインディングが古いオブジェクトから新しいオブジェクトに自動的に転送されるわけではありません。さらに、これらのイベントは、このオブジェクトの古いオブジェクトがどこかから参照されている限り発生し続けます。

于 2012-06-20T20:31:51.217 に答える