javascript - 使用ajax实时进行大型计数操作

标签 javascript php jquery ajax real-time

在我的网上商店,订单系统分为多种形式(每个产品系列一种)。每个系列大约有 100 种不同尺寸的产品(总计约 500 种),因此几年后将达到 10 个系列 x 500 种产品。

这是一个批发门户网站,因此客户通常会订购许多产品,而且数量通常很大。另一方面,可能永远不会出现超过 20 个客户同时下订单的情况。

我想计算并显示客户订购的产品数量和现金总额。以下是我如何将订单数据保存在 $_SESSION 数组中:

$_SESSION['input'][34]['s']===20 // This means the customer ordered 20x product with id 34 in size S.
$_SESSION['prices'][34]===39.99 // This is the price of product with id 34.

每次客户更改集合(=转到具有新表单的网站)时,$_SESSION 数组都会更新。

我的问题是显示订单现金总额的最佳方式是什么:

  1. 依赖 $_SESSION 数组中的数据。每次用户更改输入字段的值时,计算起始总和与当前总和之间的总差(jQuery 中的 keyUp 事件)
  2. 用每个 keyUp 触发一个 ajax 请求,计算所有内容,更新 $_SESSION,然后计算并显示现金总额。
  3. 简单的非实时解决方案:“更新”按钮仅提交表单,新请求仅更新页面。

我的想法是这样的:数字 1. 和 2. 看起来非常好,但很难做到(对我来说),而且它们可能会给服务器带来太大的负载。第三,对用户来说不太方便,但很容易做到并且使用最少的服务器资源

有什么建议吗?

谢谢!

最佳答案

据我了解(看看你如何提到 Ajax),商店不会在集合中的每次更改时刷新页面(例如更改特定产品的数量、将其添加到购物篮中/将其从购物篮中删除等) )。

所以假设这(单页界面想法)确实如此:

对我来说,这意味着您应该仅在用户明确提交购物车时(无论是出于结帐目的还是在商店中更改页面时)才更改购物车服务器端的内容。因此,我不会在购物期间向后端执行大量请求。由于数据已经存在于 DOM 中(我假设您在屏幕上显示文章时),我建议在客户端用 JavaScript 执行价格计算和购物车内容突变,而不是通过后端请求总和并更新后端每一次改变。这极大地减少了所需的 HTTP 请求量以及服务器/数据库的压力。

现在可能会争论这些是否是您想要在客户端执行的操作,但最终您仍然会在后端验证购物车内容,以防止恶意用户发出有趣的请求。订单验证页面仍应显示后端计算出的所有内容,以确保订购的内容就是付款的内容。

希望这对您有所帮助。

关于javascript - 使用ajax实时进行大型计数操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20657797/

相关文章:

php - 我的服务器可以同时运行多少个 php 脚本?

javascript - 将多个 id 从复选框传递到 Laravel 中的 Controller

javascript - 来自数据属性的 css 规则未被应用

javascript - 如何通过单击菜单中的 Li 将 HTML 页面加载到 DIV 中?

javascript - 使按钮自动点击

javascript - onMouseOver JavaScript 与 CSS list-style-image

php - 使用 Twitter 1.1 API 显示推文

javascript - 如何在angularjs中从php获取json数据

javascript - amCharts 按日期分组

javascript - 有没有办法让wysithtml5的链接编辑器让用户向href标签添加他们喜欢的任何内容?