2010-06-07 91 views
0

假设我需要使用ajax异步地向服务器请求包含相关数据的xml文件。这封邮件应该是什么样的最佳做法?它应该是像get_data之类的字符串吗?它应该是XML吗?自从它一次性(或接近它)请求以来,我并不需要长时间轮询。Ajax消息最佳实践

谢谢。

回答

1

您可以使用标准HTTP Post或Get将请求发送到您的服务器。如果你不需要指定任何参数给你的服务器端脚本(user_id等),那么简单地追加get_data作为url参数将工作正常。

http://www.domain.com/script?get_data 

如果你需要发送任何参数到服务器,以便检索数据,最好是在编码JSON或XML的参数,并将它们作为你的AJAX请求的数据部分。使用JQuery和JSON数据:

$.ajax({ 
    type: "GET", 
    url: "http://www.domain.com/script", 
    data: { key: "value", key2: "value2" }, 
    async: true, 
    dataType: "json", 
    success: function(data, textStatus) { 
     someCallbackFucntion(data); 
    } 
}); 
+0

请注意,在这个例子中,dataType参数指的是jQuery期望数据返回的格式,不是数据发送到服务器的格式 – 2010-06-07 21:33:46

0

消息应该是网址。

例如:http://www.example.com/get_data可能以您需要的格式(xml,json)返回您需要的数据。

如果您需要其他一些数据,请使用其他网址。 http://www.example.com/someotherdata

+0

那么如果我需要请求超过1种类型的数据呢?如果我只是给它发送url,服务器将如何区分请求? – hhj 2010-06-07 20:34:42

+0

刚刚编辑了我对这个问题的回答。如果你有简单的参数,你可以将它们包含在URL中:/ get_data?page = 2或/ get_data/2 – marapet 2010-06-07 20:37:02

0

它确实取决于目的,如果一切都是XML,则转为XML。就我个人而言,我倾向于使用JSON(至少对于客户端来说)。

在我最近的一个实现中,我使用了一个简单的POST请求,其中键表示数据类型,值包含应该返回的时间间隔。

这可能是(jQuery的):

$.ajax({ 
    type: "POST", 
    url: "http://www.domain.com/script", 
    data: { stock_value: "last_30_min", group_activity: "last_20" }, 
    async: true, 
    dataType: "json", 
    success: function(data, textStatus) { 
     someCallbackFucntion(data); 
    }  
}); 

服务器端控制器将然后适当地处理请求和客户端会知道什么样的数据预期,当它返回。此外,客户端和服务器端的关键和价值都是人性可读的。当然,时间间隔可以是时间戳或其他任何符合需要的时间戳。