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 - VB.NET Awesomium ExecuteJavaScriptWithResult 拉起未定义

java - 从 Windows 7 使用 Runtime.getRuntime().exec(cmd) 调用 "mysqldump"

python - Python 中的 MySql 更新问题

python - 使用 Python 从 BASH CURL 响应中获取 JSON 值

javascript - MongoDB Node -mongodb- native 映射/减少

php - 当一个输入被填满时,如何使用ajax获取mysql数据

mysql - C# Entity Framework : There is already an open DataReader associated with this Connection which must be closed first

json - 在 Azure Cosmos DB 或 Azure Blob 中将 JSON 转换为 CSV

android - 从 Google Places Api 获取某个地点的照片

php - 在数组中发送选中的表行值