什么可以用来编写在 JS 和 PHP 中以相同方式工作的算法(以避免代码重复)?
该网站有一个计算订单成本的代码。费用取决于访问者在网站上选择的许多参数。向访问者显示最终成本,该成本是使用 JS 计算的。然后将订单参数发送到服务器。
在服务器(php)上,再次发生根据指定参数计算费用,下单并写入数据库。
事实证明代码重复 - 在 JS 和 PHP 中都实现了相同的算法。更改时,您必须在那里和那里进行更改。这是问题。
当用户更改参数时,不可能通过 AJAX 从服务器接收成本,因为这种情况每秒发生多次(访问者拖动滑块,成本根据其位置而变化)。
问题是如何用相同的代码为JS 和PHP 编写这个计算算法。我已经考虑过使用v8js,但这在主机上尚不支持。
还有什么可以尝试描述算法,使其可以在PHP和JS中都完成而无需修改?
绕路解决方案——扔掉JS中的实现
服务器上肯定应该有一个“规范”的实现,所以只有在 JS 中实现才能将其丢弃,而不是从服务器获取结果。
正面解决方案 - 双方都舌头
我确切地知道一种可以在 JS 和 PHP 中构建的语言 - Haxe。但这是向项目添加另一种语言。这值得么?
横向解决方案 - 将一个转换为另一个
如果该算法使用很少的语言特征,则即使使用正则表达式也可以将一种转换为另一种。这里人们用预处理器将 Pascal 翻译成 C,也许你可以做到。但是这个拐杖很可能是一次性的,在进行任何重大编辑之后,它都需要改进。如果它报告转换问题(至少结果下降),而不是悄悄地表现不同,那将是幸运的。
好吧,如果你想变态,那么你可以这样炒作:
但是,首先你需要确保浏览器支持评论
-->,官方只在 ES6 中出现。PS:一般来说,Node.js :)