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

时间:2013-03-25 07:10:59

标签: php javascript code-reuse

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

  1. 执行正常操作并重新编写验证和价格计算两次
  2. 仅在服务器上进行验证和计算,并使用ajax更新客户端(慢,我想避免。)
  3. 实现两种语言支持的辅助语言(想想Lisp)
  4. 在javascript中编写验证和计算逻辑。使用带有php的V8js库
  5. 使用Node.js
  6. 我也试图避免对项目有很多要求。如果我走Node.js的路线,那么我将必须在单独的子域上安装它,然后购买通配符SSL证书,或者可能只是另一个证书。我宁愿不把它扔在同一个域上,并且有一些奇怪的代理/请求转发程序来决定PHP或Node.js是否应该处理请求。

    PHP站点的某些部分需要访问数据。我使用Doctrine 2作为ORM。走这条路线我不认为使用Node.JS将是最好的路线。

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

2 个答案:

答案 0 :(得分:0)

那些理论上“复杂”的重写是否值得?可能它不值得。

但如果真的如此 - 那么你的解决方案是重用“后端”式逻辑是最好的。用javascript写它并在php中重用 - 没关系。

答案 1 :(得分:0)

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

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

自从我做了任何JAVA以来已经很长时间了,但我认为可以创建一个可以用作命令行程序和applet的单个类。

小程序不需要UI,可以减少到1像素正方形或显示:无;