2012-06-22 120 views
2

我在应用程序设计的关键决策点。这是一个ASP.NET Web应用程序,它使用REST请求有关各种产品的信息。某些产品根据其属性/变体具有不同的ProductID。例如,用户可能对Rogaine感兴趣。有关Rogain的REST请求可能会返回包含多个变体的响应 - 1个月供应,3个月供应或4个月供应。这些变体中的每一个都有不同的ProductID,不同的常规价格,不同的销售价格和多种不同的属性。每个人都有一组不同的“功能”,不同的图像等。每种产品的属性数量可能相当多。关于JSON实际限制的反馈?

在大多数情况下,只有几个产品变体。有时候有六打,有时候有一两打。在这些情况下,JSON可以轻松处理我的需求。

但是,以服装为例。它可能有几十种颜色。它也有6种不同的尺寸。你不想在他们自己的页面上显示每一个。在单个页面上显示此产品更方便用户,并提供这些尺寸和颜色选项供用户选择。也许他们想要以红色订购小尺寸。

在上面的例子中,有几乎100个选项组合。在这一点上,我认为JSON对我来说是不切实际的选择。对于每个独特的组合,有几个指向图像的链接(每个图像以不同的颜色显示产品)。每种产品都有一个清单价格,一个正常价格和一个销售价格,节省的金额。每个都有发货属性。每个都有自己的功能列表,可以是每个产品的文本段落。

好吧,我的观点是 - 这是大量的数据填充在一个JSON字符串中,当颜色或大小发生变化时,查找细节会有延迟。

我喜欢亚马逊提供选择的方式。下面是这种情况的链接:

http://www.amazon.com/American-Apparel-Jersey-Chemise-Small-Navy/dp/B003ILSHQ2/

我看了源页面并没有看到在那里它们被存储在客户端上每个产品的详细信息。如果你悬停每个颜色样本,你会发现页面上的所有细节都发生了变化。价格,运输,大图像,功能。几乎一切都在变化。

我偶尔会看到“正在加载...”指示符,但在大多数情况下,它很快就会看不到任何客户端/服务器通信的迹象。

他们是如何做到这一点,而无需完全重新加载页面,并且不将这些信息存储在客户端上?他们使用什么技术,有谁知道?

相信我,每次产品变化发生变化时发送另一个REST请求的往返行程太贵了。并且我已在第一个REST响应中为每个产品的数据都有全部。数据不在我的服务器上或在我的控制下,我真的不想将它保存在我的服务器上。

因为我已经拥有了所有的数据,所以我想将它存储起来,以便像亚马逊那样使用它,但是我想把它交给客户端。使用JSON字符串是完美的,并且在大多数情况下,我可以......但不能有效地执行所有操作。

有没有一种方法来索引JSON字符串以使其对大量数据更快?这对JSON来说太过分了吗?我还有什么其他选择可以用于JQuery/Javascript?

+0

听起来更像是一个如何组织数据的问题,而不是多少数据。 Amazon上的示例将数据存储在js变量中。看'colorImages'对象作为例子 – charlietfl

+0

我也考虑过了。将数据分解成对象。是的,您一定会看到他们将某些数据存储在变量中,但该产品有77种独特组合(5种尺寸和21种颜色)。我没有找到有77个不同产品ID的对象。我没有发现有任何物品与一堆价格或一堆运输选项。图像,是的。但它的很多不在客户端页面 - 从我所能看到的。我花了好几个小时看着它玩耍。 – rwkiii

+0

有很多方法可以处理它,很难在没有看到数据的情况下进行评估以及UI如何工作 – charlietfl

回答

0

charlietfl最好地回答了我的问题,但我无法将他的回答标记为答案,因为他没有发布答案,只是发表评论。感谢charlietfl。

0

我目前正在编写一个应用程序,我从各种来源获取JSON负载,然后将它们存储在localStorage中。他们是一组Facebook,Twitter和RSS源。我通过由应用程序分配的唯一ID构建一个索引,并将其存储为一个数组,每个ID与一个表示类型的字符串(例如FBK/TWI/RSS)和一个带有Feed的标题的字符串相关联。

然后,我为每个包含从其中提取的帖子数据的数据源存储数组数组。

用5Mb玩,这是一个可行的设置。如果您需要存储的数据不超过该数据,我可以想象它没有这个数据,它也适用于您。在更改页面上,您可以清除存储并下载您的下一个产品对象。

很难想象一个50kB的对象超过了JSON + localStorage的组合能力:-)虽然我确定我会被告知为什么我错了哈哈!

+0

localStorage如何被操纵?我熟悉“本地存储”术语,但不认为我已经处理localStorage。这是否与ASP有关,还是JQuery/JS? – rwkiii

+0

它是JavaScript。在Google上搜索localStorage - 这太棒了。 –

+0

有可能建立一个php-> localStorage链接,所以我可以想象,如果由于某种原因JS + JSONP对于你来说是不够的,可以用ASP做同样的事情...... –