我正处于应用程序设计的关键决策点。它是一个ASP.NET Web应用程序,它使用REST来请求有关各种产品的信息。某些产品根据其属性/变体而具有不同的ProductID。例如,用户可能对Rogaine感兴趣。关于Rogain的REST请求可能会返回包含多个变体的响应 - 1个月供应,3个月供应或4个月供应。这些变体中的每一个都具有不同的ProductID,不同的常规价格,不同的销售价格和多种不同的属性。每个都有一组不同的“功能”,不同的图像等。每个产品的属性数量可能非常多。
在大多数情况下,只有几种产品变体。有时半打,有时打十几个。在这些情况下,JSON可以轻松地处理我的需求。
但是,举一个礼服。它可能有几十种颜色可供选择。它还有6种不同的尺寸。您不希望在自己的页面上显示每个。在单个页面上显示此产品并显示这些尺寸和颜色选项供用户选择,这样更加用户友好。也许他们想订购一个红色的小尺寸。
在上面的示例中,有近100种选项组合。在这一点上,我认为JSON对我来说是一个不切实际的选择。对于每个独特的组合,有几个图像链接(每个图像以不同的颜色显示产品)。每个产品都有一个定价,一个正常价格和一个销售价格,节省的金额。每个都有运输属性。每个都有自己的功能列表,可以是每个产品的文本段落。
好的,我的意思是 - 这是在JSON字符串中填充的大量数据,当颜色或大小发生变化时,查找详细信息会有延迟。
我喜欢亚马逊提出选择的方式。以下是这种情况的链接:
http://www.amazon.com/American-Apparel-Jersey-Chemise-Small-Navy/dp/B003ILSHQ2/
我查看了源页面,但没有看到他们在客户端存储每个产品的详细信息。如果您将鼠标悬停在每个色样上,您会看到页面上的所有细节都发生了变化。价格,运费,大图,功能。事实上一切都在变化。
我偶尔会看到“正在加载...”指示符,但在大多数情况下它会如此之快,以至于您看不到客户端/服务器通信的任何迹象。
如果不完全重新加载页面而不将这些信息存储在客户端上,他们如何做到这一点?他们使用什么技术,有谁知道?
相信我,每次更改产品变更时发送另一个REST请求往返太昂贵了。我已经在第一个REST响应中为每个产品提供了 ALL 数据。数据不在我的服务器上或我的控件中,我真的不想将它保存在我的服务器上。
由于我已经掌握了所有数据,因此我希望将其存储起来,以便像亚马逊一样使用它,但我想把它交给客户端。使用JSON字符串是完美的,在大多数情况下,我可以......但不是有效/高效。
有没有办法索引JSON字符串,以便更快地处理大量数据?这对JSON来说太过分了吗?我可以使用JQuery / Javascript还有哪些其他选项?
答案 0 :(得分:0)
我正在编写一个应用程序,我从各种来源获取JSON,然后将它们存储在localStorage中。他们是一组Facebook,Twitter和RSS订阅源。我通过应用程序分配的唯一ID构建feed的索引,并将其作为数组存储,每个ID与表示类型的字符串相关联,即FBK / TWI / RSS和带有标题的字符串。
然后我为每个Feed存储一个数组数组,其中包含从中提取的帖子的数据。
使用5Mb,这是一个可行的设置。如果您需要存储的数据不超过我可以想象的数据,那么它也适用于您。在更改页面时,您可以清除存储空间并下载下一个产品对象。
很难想象一个50kB的物体超过了JSON + localStorage的组合能力:-)虽然我确定我会被告知为什么我错了哈哈!
答案 1 :(得分:0)