JavaScript中的规则引擎



JavaScript中有规则引擎吗?

问题是在这个上下文中出现的:

  • 考虑一个web应用程序有一个用户填写的表单。
  • 当用户填写每个字段并继续下一个字段时,用JavaScript编写的业务逻辑控制表单元素在页面下方的可见性(和其他属性)。
  • 在表单提交后,同样的业务逻辑也应用于服务器端,尽管是在Java中,以防止浏览器端的任何意外/操作。

  • 现在,如果我们有一个JSR 94/Drools/JRules之类的规则引擎,可以同时在Java和JavaScript中执行规则,那不是很好吗?使用这样的规则引擎,我可以避免对规则进行硬编码,并且还保留了客户端和服务器端验证

  • 的灵活性。

(PS:我已经尝试了AJAX的路线,发现应用程序的响应速度变慢了很多,这使得它很难卖给那些已经习惯了手工编码的纯javascript版本的用户。)

JSR-94是一个Java规范,所以我看不出它与浏览器有什么关系。

有Google JSON规则:

http://code.google.com/p/jsonrules/

您说您尝试了AJAX路由。这是否意味着在服务器上运行一个规则引擎和一个异步调用来访问它?

这是一个有效的问题。本文中,JSR 94

没有规范以下内容:规则引擎本身规则的执行流用来描述规则的语言Java EE技术的部署机制

因此,可以使用可以在客户机和服务器上执行的DSL,并且可以按照JSR 94体系结构进行开发、执行和管理。与否。

另一篇文章使用Java脚本API创建简单的规则引擎使用JSR-233和其他东西来创建规则引擎系统。然而,这早于JSR 94。

我得到了这个stackoverflow页面,因为我也在寻找一个解决方案。目前,我有一个页面要在客户端进行验证,其中字段组可以触发不同的验证规则,并且需求正在变化。用命令式代码来编写这些代码只会造成高圈复杂度的混乱。

然而,最简单的方法是使用JavaScript表单验证库中的一个。仍在寻找。

由于javascript存在于浏览器中,因此用户很容易检查源代码并绕过任何js验证机制。这就是为什么它通常在服务器端完成。

这很痛苦,但我通常在javascript和服务器上实现验证,这样"正常"用户将有一个快速的响应,而"黑客"将被排除在系统之外。不幸的是,我认为如果你想要良好的用户体验和良好的安全性,你就必须这样做。

回答你的问题,据我所知,没有一个通用的库可以在客户端和服务器端同时使用。

p。记住JavaScript不是Java !:-)http://en.wikipedia.org/wiki/JavaScript JavaScript_and_Java

相关内容

  • 没有找到相关文章

最新更新