2012-02-16 47 views
3

我想返回產品的可用數量(客戶可以購買)到客戶端的列表(例如,1,2,3 ...,200)。我們正在考慮三種方法:將數量列表返回給客戶端的方法?

  • 返回客戶端的完整數量列表,客戶端只需要綁定它。這是目前的實現,它很容易實現,但是這是浪費帶寬。
  • 返回分開的最小數量和最大數量,客戶端必須建立一個列表然後綁定它們。這是我的想法,因爲我們可以避免解析。
  • 以1-200的形式返回字符串,然後客戶端必須解析數字,生成列表,然後綁定它們。這是我拼貼的想法,他說他在某個地方讀過它(認爲他不記得在哪裏),這是返回量清單的流行方式。

我們目前的需求並不支持分段數量(例如,我們不支持1-20,40-50,100-200的數量,我們只支持1-200)

這應該是解決這個問題的方法?我們通過jQuery使用ASP.NET和AJAX。

謝謝。

+0

你能給更多的信息:什麼數量?可以有1,1,200,1,1,0,0,0嗎?或者它是1,2,3,4(停止)? – BlueChippy 2012-02-16 07:04:49

+0

我更新了問題,它只能是1,2,3,4,5 ....,maxquantity – Vimvq1987 2012-02-16 07:06:34

+0

帶寬是一個大問題嗎?我的意思是你正在查看可能700字節的數據爲列表1,2,3,...,200 – 2012-02-16 07:08:53

回答

1

選項1:返回範圍內的所有整數列表對我來說似乎非常浪費。誰知道將來需要什麼數量?如果您有過成千上萬的產品可以訂購,這可能會導致嚴重的問題。

選項3:當輸入需要人爲可讀或可編輯時,可解析格式非常有用。一個很好的例子是MS Word中的打印對話框;用戶可以選擇打印「1,2,7,9,11」或「5-15」等頁面,但解析引入了錯誤的全新可能性。即使在簡單的例子「1-200」中,「 - 」可能被解釋爲給出「-200」或類似的減號。如果界面是機器對機器,我總是喜歡清晰的語義界面。通過明確定義的接口(例如參數「rangeFrom」和「rangeTo」),解釋的歧義性被消除,唯一需要解決的問題是實現。我不知道你的客戶是什麼,但用任何語言產生一個從1到200的整數列表應該是相當微不足道的。

我肯定會選擇2:它是一個明確的界面。它很容易構建,並且在線路上高效。

根據您希望成爲未來的方式,您可以考慮選擇選項2並僞造一種超載。所以今天你會保持它的簡單,只是返回以下內容:

{ 
    "listType": "range", 
    "rangeFrom": 1, 
    "rangeTo": 200 
} 

客戶應檢查「listType」返回值,就目前而言,它總是希望它是「範圍」。但將來你可以添加其他類型。對於axample

{ 
    "listType": "increment", 
    "rangeFrom": 2, 
    "rangeto": 20, 
    "inc": 2 
} 

// Interpreted by client as: 
// 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 


{ 
    "listType": "valuelist", 
    "values": [1, 2, 5, 20] 
} 

// Interpreted by client as: 
// 1, 2, 5, 20 

這將是今天的簡單而有效的,但離開你打開,如果新的要求稍後在不破壞兼容性輕鬆擴展。

相關問題