0

我对 javascript 完全陌生,很难理解脚本的含义。:(希望有人可以帮助我或给一些建议,谢谢!:)

我有一个 javascript,它在其中调用 Ajax 函数,例如:

  callAjax('../team.cgi', 'POST', data, function(text)

在 ajax2.js 中,它定义了 callAjax 函数,如下所示:

  function callAjax(url, method, data, handler, waittime, timeout_func)

我的问题是参数函数(文本)是什么?

4

3 回答 3

3

function(text)匿名函数定义的开始。大概电话看起来像这样:

callAjax('../team.cgi', 'POST', data, function(text)
{
    // do something with text
});

在这些括号之间定义的函数接受一个变量 ,text并用它做一些事情。这在 JavaScript 中是可能的,因为函数是一等公民。它们可以分配给变量,匿名定义等。

通常,您会说函数的handler参数callAjax是回调。这是一个在 Ajax 调用完成时将传递某些参数的函数。这是典型的异步代码。

上面的代码片段在功能上与此相同:

function doSomethingWhenAjaxCompletes(text) {
    // do something
}

callAjax('../team.cgi', 'POST', data, doSomethingWhenAjaxCompletes);

第一个的唯一区别是函数没有用 name 定义doSomethingWhenAjaxCompletes;它是匿名定义的。

于 2012-07-02T03:36:02.553 回答
0

发出 AJAX 请求时,执行不会停止并等待响应返回。相反,请求被发送并继续执行。您只需提供所谓的“回调”函数,该函数在 AJAX 响应返回时被调用。通常,回调函数采用单个参数,其中包含作为 AJAX 请求的答案返回的响应对象或消息。

callAjax('../team.cgi', 'POST', data, function(text) {
    console.log('Got a response!');
    console.log(text);
}

这只是发送请求。稍后(由于网络延迟而暂停后)您将看到控制台日志消息出现,表明收到了响应,并且用于“处理”响应的回调函数已被调用。

于 2012-07-02T05:37:09.847 回答
0

如果没有看到handler函数的上下文,我的猜测是这是 ajax 调用的返回值。例如,如果team.cgi在上面的示例中返回一个 xml 团队列表,那么我希望text处理函数中的参数是该列表。

于 2012-07-02T03:34:39.530 回答