我的客户端有一个简单的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(服务器端函数)在单击事件函数时工作,但在ready事件之外不工作。为什么呢?
我甚至尝试过这样的事情:
setTimeout('now.sendMsg("aaaah")',1000);
仍然无法工作。
答案 0 :(得分:1)
NowJS需要时间来加载自己,并且没有时间在代码的第2行和第11行之间执行此操作。当你打电话:
now.sendMsg("aaaah"); //## this dont work
NowJS仍然没有加载,无法执行这段代码。当您单击一个按钮时,NowJS已完全加载并运行 - 并且可以发送消息。添加回调函数以确保在尝试使用库之前设置库。