我以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(响应)如何得到通知,这是在大气api之外?我已经查看了jQuery.Atmosphere.js并且无法连接点如何工作。我不是在讨论websocket或服务器推送或任何有关大气框架的事情。我只是想了解javascript函数回调是如何工作的。任何人都可以给我一个例子,函数回调是如何工作的,或者给我一个链接,这样我就可以深入了解?
答案 0 :(得分:0)
您的语法不正确,应该是:
request.onMessage = function(response) {
// do what I want to do
};
如您所见,onMessage
属性必须设置为函数。在此对象上发生Message事件时,将调用该函数。 jQuery.Atmosphere.js代码包含:
f.onMessage(response);
其中f
是表示AtmosphereRequest
对象的内部变量。此函数从invokeFunction()
:
function _invokeFunction(response) {
_f(response, _request);
// Global
_f(response, jQuery.atmosphere);
}
_request
是AtmosphereRequest
构造函数中的局部变量,它包含此请求对象的所有状态。这是Javascript面向对象编程的一部分;此AtmosphereRequest
对象的所有使用都可以访问这些内部状态变量。