javascript / jquery - 理解jquery的post()和javascript的process()函数

时间:2011-09-01 18:56:25

标签: javascript jquery post process

我正在尝试将一些数据发布到Web服务并利用它返回的XML数据。我在jQuery的post()函数文档中看到了这个例子:

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        process(data);
    }, 
    "xml"
);

过程功能有什么作用?数据是什么样的?我是否将此处理过的数据分配给变量?试着想一想如何利用这篇文章中返回的值()。

2 个答案:

答案 0 :(得分:5)

  

过程功能有什么作用?

没有这样的标准功能。由你来定义它,所以它会做你告诉它做的任何事情。

  

数据是什么样的?

这取决于您的Web服务返回的内容。如果是XML,则表示XML树。因此,例如,如果您提供服务,则返回以下xml:

<foo>
    <bar>some value</bar>
</foo>

您可以像这样查询bar节点的值:

function(data) {
    var value = $('bar', data).text();
    alert(value);
}

这是一个live demo,您可以在其中看到它。

答案 1 :(得分:4)

process(data);可以是您想要使用data调用 的任何函数。在大多数情况下,您需要在向用户显示之前将数据分配给元素或进行其他一些按摩。

除非它非常复杂,否则你也可以跳过调用一个单独的函数,例如:

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        $('#target').html(data);   // assuming data is a html string
    }, 
    "xml"
);

将其处理成形:

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        process(data)
    }, 
    "xml"
);

function process(data) {
    $('#target').html(data);   // assuming data is a html string

}

如果您的数据采用其他格式,那么您可以按下它来提取相关位或在process或任何自定义函数中以某种方式对其进行转换。

例如,假设你得到一个JSON对象:

data = { "status": "success", "text": "Processed Succesfully" };

然后在你的回调中,你要检查状态和显示消息

function process(data) {
    if(data.status == "success")
        $('#target').html(data.text);   // assuming data is a html string
    else 
        alert("Error");
}