0

クライアント用の単純な nowjs コードがあります。

$j(document).ready(function() {
    window.now = nowInitialize('http://xxx.yyy:6564');

    now.recvMsg = function(message){
        $j("body").append("<br>" + message);
    }

    $j("#send-button").click(function(){
        now.sendMsg("well done"); //## this work
    });
    now.sendMsg("aaaah"); //## this dont work
});

サーバー側のコード:

var server = require('http').createServer(function(req, res){});
server.listen(6564);

var nowjs = require("now");
var everyone = nowjs.initialize(server);

everyone.now.sendMsg = function(message){
   everyone.now.recvMsg(message);
};

また、sendMsg(サーバー側関数)の呼び出しは、クリックイベント関数では機能しますが、準備完了イベント外では機能しません。なんで?

私は次のようなことも試しました:

setTimeout('now.sendMsg("aaaah")',1000);

まだ動作しません。

4

1 に答える 1

1

NowJSはそれ自体をロードする時間が必要であり、コードの2行目から11行目までの間にロードする時間はありません。電話をかけるとき:

now.sendMsg("aaaah"); //## this dont work

NowJSはまだロードされておらず、このコードを実行できません。ボタンをクリックすると、NowJSが完全にロードされて動作し、メッセージを送信できます。コールバック関数を追加して、ライブラリを使用する前にライブラリが設定されていることを確認します。

于 2012-07-13T11:58:24.003 に答える