避免为服务器端和客户端重写两次逻辑

Avoiding re-writing logic twice for server side and client side

本文关键字:两次 重写 服务器端 客户端      更新时间:2023-09-26

我正在编写一个软件,允许用户为产品选择不同的选项。价格将根据选择的选项而有所不同。服务器正在使用LAMP堆栈。客户端将使用HTML5和javascript。我试图防止重写验证和价格计算两次,一次在服务器上,然后一次在客户端。现在我有几个选项可用。

  1. 做正常的事情,重新编写验证和价格计算两次
  2. 只在服务器上进行验证和计算,并使用ajax更新客户端(慢,我想避免)
  3. 实现两种语言都支持的辅助语言(我想到了Lisp)
  4. 用javascript编写验证和计算逻辑。php
  5. 使用V8js库
  6. 使用node . js

我也在努力避免项目有太多的需求。如果我走Node.js的路线,那么我将不得不将其安装在一个单独的子域上,然后购买一个通配符SSL证书,或者可能只是另一个证书。我宁愿不把它扔在同一个域,有一些奇怪的代理/请求转发程序来决定是PHP还是Node.js应该处理请求。

PHP站点的某些部分需要访问这些数据。我使用原则2作为ORM。我不认为使用Node.JS是最好的选择。

我更倾向于选项一,但也许我可以写一些代码来产生所需的java脚本代码。我还错过了其他的选择吗?有什么建议吗?谢谢。

这些理论上的"复杂"重写值得吗?也许就是不值得。

但如果真的是这样——那么你的解决方案是重用"后端"式逻辑是最好的。用javascript编写,然后在php中重用——这是可以的。

您可以用Java编写验证例程。

在applet中交付代码到客户端-然后您的javascript代码可以调用applet的方法。在服务器上,您可以将其作为命令行程序运行。

我已经很长时间没有使用JAVA了,但我认为有可能创建一个既可以用作命令行程序又可以用作applet的单个类。

applet不需要UI,可以缩小到1px正方形或display:none;