首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web应用程序的服务器端和客户端共享业务逻辑?

web应用程序的服务器端和客户端共享业务逻辑?
EN

Software Engineering用户
提问于 2013-06-24 15:25:42
回答 3查看 2K关注 0票数 3

关于web应用程序后端和前端的共享代码/逻辑的快速问题。

我有一个web应用程序(Rails + heavy ),它解析通过用户提供的URL获取的HTML页面中的元数据(想想Pinterest或Instapaper)。目前,此处理完全在客户端进行。获取URL并解析DOM的代码位于Rails应用程序中相当大的一组JS脚本中。

偶尔也希望在应用程序的服务器端进行这种处理。例如,如果用户提供了一个URL,但是他们禁用了JS,或者有一个不符合标准的浏览器等等。理想情况下,我希望能够在后端(可能在异步后台作业中)处理这些URL,使用的逻辑与我们的JS解析器使用的逻辑相同,而无需将JS移植到Ruby。

我看过允许您在后端执行JS脚本的系统,比如执事,以及Ruby编译器(如OpalRB ),它们有望允许“写一次,执行很多”,但我不确定这两者都是正确的决定。

对于需要对类似数据进行客户端和服务器端处理的应用程序来说,避免业务逻辑重复的最佳方法是什么?

EN

回答 3

Software Engineering用户

发布于 2013-06-24 15:37:28

试图将一种语言解释成另一种语言会增加太多的复杂性,而不会带来足够的好处。

如果逻辑量很小,只需使用Javascript在客户端复制它。

如果逻辑是广泛的,并且您的体系结构允许它,那么在Ruby中创建一个REST服务层,您可以使用AJAX调用该层服务。

票数 4
EN

Software Engineering用户

发布于 2013-06-24 16:27:39

通常,我会说,使用Node、ExecJS或类似的方式都是实现这一点的方法--我对任何类似的交叉编译器都很谨慎。

尽管如此,我不知道为什么客户端解析在这种特殊情况下很重要。无论如何,您将需要一些API来执行跨域请求( jsonp.jit.su),那么为什么不让它也进行解析,并给您一些结构化的JSON,您可以在两端使用呢?

票数 2
EN

Software Engineering用户

发布于 2014-10-15 16:18:11

对于需要对类似数据进行客户端和服务器端处理的应用程序来说,避免业务逻辑重复的最佳方法是什么?

是的,这是可能的。我在服务器上使用了node.js,这就是我告诉每个人使用它的原因。总有一天你需要客户端的东西在服务器上,反之亦然.目前,我在向应用程序的服务器端添加一些内容之前,做了两次。

我在客户端和服务器端都使用require.js模块系统。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/202567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档