避免为服务器端和客户端重写两次逻辑
Avoiding re-writing logic twice for server side and client side
我正在编写一个软件,允许用户为产品选择不同的选项。价格将根据选择的选项而有所不同。服务器正在使用LAMP堆栈。客户端将使用HTML5和javascript。我试图防止重写验证和价格计算两次,一次在服务器上,然后一次在客户端。现在我有几个选项可用。
- 做正常的事情,重新编写验证和价格计算两次
- 只在服务器上进行验证和计算,并使用ajax更新客户端(慢,我想避免)
- 实现两种语言都支持的辅助语言(我想到了Lisp)
- 用javascript编写验证和计算逻辑。php 使用V8js库
- 使用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;
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 单击元素两次后执行操作
- AngularJs正在阻止链接被点击两次
- 为什么我的路线处理程序会触发两次
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- 在列表中至少使用两次随机生成的nr
- 检查某个键是否按下两次
- 一次点击,两次'单击'事件已启动
- 我的所有代码在使用Webpack编译时都会运行两次
- 避免为服务器端和客户端重写两次逻辑