从AJAX调用操作数据:PHP还是Javascript?

时间:2011-10-19 08:34:33

标签: php javascript ajax

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

a)操纵PHP脚本本身的数据,然后再将其发送回Javascript,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是提取数据和应用程序的必备工具 工作

3 个答案:

答案 0 :(得分:2)

有些事情你不想在性能或执行时间上吝啬。

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

我们可以通过JavaScript在客户端层上执行XYZ并不意味着我们应该被迫这样做。 会发生什么

A)如果JavaScript已关闭。 B)您依赖于从POST发布的值。 (想象一下服务器使用$ _POST ['total_amount']的购物车。我将编辑POST或隐藏输入以获取免费内容。

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

此外,当您想要开始向服务提供API或其他内容时会发生什么。您的运输现在已损坏,因为它不包含计算的价格。

服务器端,无论哪个更好。正如Duncan所说,SQL可以是一个选项,或PHP。我不喜欢这个,因为一小部分物品的任何收益都可以忽略不计。

答案 1 :(得分:0)

在你的SQL到达你的PHP之前,你最快做到这一点。如果javascript性能优于PHP性能,我也会感到惊讶(你怎么知道这对你更好?只是好奇......)。尽可能多地服务器端通常是一个很好的经验法则。您可以随时添加更多服务器等,但是您无法控制客户端性能。

答案 2 :(得分:0)

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

您可以采用混合方法:使用所有预先计算的数据构建页面,并在JS中使用相同的流程来更新公式 但是我会建议你这样做,因为你的开发成本加倍,而且你将面临爆炸性的维护工作,因为很难同时保持PHP和EX。 JS一致。

2个做出选择的一般建议:

  1. 我认为你不应该把性能点视为主要的 关注但功能点。制作最好的产品,然后对其进行优化,因为如果不是很好的话,建立快速的东西毫无意义。
  2. 始终测量!实施A&amp; B并比较结果。它需要一些编码时间,但这是真正回答你的问题的唯一方法。在这种情况下,这一点并不足以花时间进行AB测试,那么可能两个选项都是在你的情况下是好的