javascript - 过滤 JSON 对象比通过 ajax 查询数据库更快吗?

标签 javascript mysql json ajax

我正在处理一个产品页面,其中有一组会影响价格的选项。 始终存在的主要选项可让您选择 Material 。然后,根据 Material 的不同,选项集可能会发生变化。

在数据库中,我有一个表格列出了最终产品及其价格,这是一个大约 2000 行的表格,列出了具有不同选项的每个可用产品。

类似于:

product_id / code / price / size / option / color

     1       ABC     20$     1       3        5
     2       DEF     30$     2       4        5
     3       FFF     30$     3       4        5

等等。

整个过程都使用 ajax 调用,所以每次选项更改时,我都会查询数据库,查找具有该组选项的产品并显示价格。

在这种特定情况下,在开始时获取整个产品列表(将是一个查询,大约 2000 行),将其存储在 Javascript 对象中并对其进行过滤是否有意义?

如果重要的话,我正在使用 MySql

最佳答案

可能是,但有很多变量会影响它。我假设:

  • 访问者是典型的网络用户
  • ajax 请求的往返时间约为 100 毫秒

鉴于这些情况,您的普通访问者浏览器可以几乎肯定在那段时间内搜索数百万产品。

但是,假设您正在优化用户体验(即由 ajax 引起的延迟相当明显),您可能需要混合:

到处缓存

很可能您的产品集更改频率远低于人们访问它的频率;这意味着您的数据读取量很大。这是避免完全访问数据库并将诸如 example.com/products/14/all-options.json 之类的内容缓存为静态文件的绝佳机会。

文本存储很便宜。服务器 CPU 时间更少。

如果特定产品有很多选项(即数万个),那么在这种情况下,您可以将它们缓存为静态文件树。例如,example.com/products/14/size-1/all-options.json 给出了产品 #14 尺寸 #1 的所有选项。 example.com/products/14/size-1/option-4/all.json 都是尺寸 1,选项 #4,依此类推。

然后您可以继续使用 Javascript 过滤这些较小的集合,并可能拥有数百万种产品,而无需在启动时进行大量的数据库命中或大量下载。

关于javascript - 过滤 JSON 对象比通过 ajax 查询数据库更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41106261/

相关文章:

javascript - JS提示背景

javascript - 用 JavaScript 替换 '<' 和 '>'

mysql - 如何测试 SQL 查询/报告?

javascript - Angular 表单未通过邮寄提交

javascript - 带有相关容器或固定面板的 Jquery 可拖放 Z-Index

php - 尝试通过测验系统获得良好的订单

javascript - 强制串行 mySQL 插入(或以更好的方式重建表)

iphone - iPhone 中收到警告 : NSString may not respond to '-JSONValue'

php - 从 json_decode 输出中获取返回值

python - 谷歌应用引擎: Python: WebOb: How to get POST data in JSON format?