2012-02-16 87 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 

这将是今天的简单而有效的,但离开你打开,如果新的要求稍后在不破坏兼容性轻松扩展。