在Javascript中调用Ajax时函数(文本)的含义

时间:2012-07-02 03:30:29

标签: javascript

我是javascript的新手,很难理解脚本的含义。 :(希望有人可以帮助我或提供一些建议,但是!)

我有一个javascript,它调用Ajax函数,如:

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

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

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

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

3 个答案:

答案 0 :(得分:3)

function(text)anonymous function定义的开始。大概这个电话看起来像这样:

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

这些括号之间定义的函数采用变量text,并对其执行某些操作。这在JavaScript中是可行的,因为functions are first-class citizens。它们可以分配给变量,匿名定义等等。

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

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

function doSomethingWhenAjaxCompletes(text) {
    // do something
}

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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