从AJAX调用操作数据:PHP或Javascript

Manipulating Data from an AJAX Call: PHP or Javascript?

本文关键字:PHP Javascript 数据 操作数 AJAX 调用 操作      更新时间:2023-09-26

这是一个一般性问题。使用下面的示例,假设我有一个Javascript,它对PHP脚本执行AJAX调用以从数据库中提取数据。我可以选择:

a)在编码并将其发送回Javascript之前对PHP脚本本身的数据进行操作,OR;

<?php
 while ($row = mysqli_fetch_assoc($result))
 {
  extract($row);
  array_push($data, array('product' => $product, 'discount' => $price*0.15));
 }
 echo json_encode($data);
?>

b)从PHP脚本获取原始数据,并对Javascript进行操作。

<SCRIPT type='text/javascript'>
 $.each(json, function(index, element) {
  element.discount = 0.15*element.price
 }
</SCRIPT>

虽然我已经知道我可以获得更好的性能(服务器端)使用选项b),我想从社区听到这是否是一个更明智的选择,是否有任何逻辑上的论点反对它,我可能忽略了。谢谢!

注意:

  • 这只是一个简单的场景,计算更复杂* 0.15。
  • Javascript是提取数据和应用程序的必备工具工作。

当涉及到性能或执行时间时,您不希望吝啬一些事情。

  • 密码学就是其中之一。
  • 任何有财务方面的东西都是另一回事。

我们可以通过JavaScript在客户端层执行XYZ,但这并不意味着我们必须这样做。发生了什么

A)如果JavaScript被关闭。B)你依赖于JavaScript的post值。(想象一个购物车,它有$_POST['total_amount'],由服务器使用。我将编辑POST或隐藏的输入来获得免费的东西。

如果你所做的是纯粹的信息,那么这并不重要,但如果你依赖于任何信息,那么你应该多次检查价格。

另外,当你想开始为你的服务提供API或其他东西时会发生什么。你的运输现在是坏的,因为它不包含计算价格。

在服务器端做,在哪个层更好。正如Duncan所说,SQL可以是一种选择,或者PHP。我对这一点没有偏好,因为从一小部分物品中获得的收益基本上可以忽略不计。

在它到达PHP之前,您将在SQL中最快地完成此操作。如果javascript性能比PHP性能好,我也会感到惊讶(你怎么知道这对你更好?只是好奇……)。尽可能多地在服务器端进行操作通常是一条很好的经验法则。您总是可以添加更多的服务器等等,但是您无法控制客户端性能。

这两个选项之间的主要区别在于服务器时间,每次您需要更改数据中的任何内容时,都需要调用服务器,这将严重影响性能(从用户的角度来看)。

你可以有一个混合的方法:用所有预先计算的数据构建你的页面,并在JS中实现用于更新公式的相同过程但我建议你这样做,因为你的开发成本翻了一番,而且你将面临爆炸式的维护工作,因为很难同时保持PHP和;JS一致。

给你做选择的2个建议:

  1. 我认为你不应该把性能点作为你的主要目标关注的不过是功能点。做最好的产品,然后优化它,因为如果做得不好,做得快没有意义。
  2. 总是衡量!实现A &B、比较结果。这需要一些编码时间,但这是真正回答您的问题的唯一方法。如果这一点不够重要,不需要花时间进行AB测试,那么这两种选择在你的情况下可能都一样好