浏览器/服务器上的代码相同

时间:2010-01-26 20:21:52

标签: php javascript code-reuse

我正在使用PHP编写一个Web应用程序,并遇到了几种需要在服务器和浏览器上使用类似代码的情况。例如:

  • 我想验证用户输入,并在双方生成相同的错误消息。
  • 我想使用某些规则格式化数据(例如,如果给定字段小于1,则显示两位小数,否则为无),并且无论哪一方呈现它都显示相同。

似乎这应该是一个常见问题,因为人们正在将更多逻辑从服务器转移到浏览器。但是有没有任何常见的模式或库来处理它(特别是对于PHP)?

7 个答案:

答案 0 :(得分:3)

一种解决方案是使用server-side JavaScript。你可以分享大量的代码。

答案 1 :(得分:2)

有趣的问题! 据我所知,PHP有两个选项:

  • 使用Ajax进行表单验证,因此一切都在服务器上进行。
  • 将这些功能带到JS,这至少可以简化移植:http://phpjs.org/

但是,在Java中,您可以使用Rhino运行Javascript。

我能想到的其他事情是使用Flash或Java小程序的丑陋黑客,或涉及像睡衣这样的框架。

答案 2 :(得分:2)

您可以尝试使用haxe语言。它可以在js / php甚至actionscript(flash)中翻译。

答案 3 :(得分:1)

部分解决方案是AJAX。例如,在服务器上编写一次验证代码,让表单与服务器通信以查看输入是否有效,并询问是否显示错误消息。

答案 4 :(得分:0)

json_encodejson_decode是一个很好的开始 - 根据需要在php数组和json对象中提供相同的数据源。

json_encoded数据可以根据您的需要通过<script>标记或ajax提供。

答案 5 :(得分:0)

快速验证客户端(如模式匹配,日期和数字正确性)和安全检查服务器端。
您也可以使用AJAX进行服务器端验证,但这样您就可以在用户输入和验证结果之间产生响应差距。因此,使用JavaScript进行快速和基本的验证,并使用PHP进行繁重的验证。

答案 6 :(得分:0)

您可以使用http://phpjs.org/在客户端运行php代码。这适用于php中的大多数功能。