2010-06-07 115 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); 
    }  
}); 

服務器端控制器將然後適當地處理請求和客戶端會知道什麼樣的數據預期,當它返回。此外,客戶端和服務器端的關鍵和價值都是人性可讀的。當然,時間間隔可以是時間戳或其他任何符合需要的時間戳。