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);

其中f是表示AtmosphereRequest对象的内部变量。此函数从以下位置调用invokeFunction()

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

_requestAtmosphereRequest构造函数中的一个局部变量,它包含了这个请求对象的所有状态。这是 Javascript 面向对象编程的一部分;该对象的所有使用AtmosphereRequest都可以访问这些内部状态变量。

于 2013-06-27T01:22:01.043 回答