繁体   English   中英

处理Javascript Server-Side是否是重复逻辑的解决方案?

[英]Is processing Javascript Server-Side a solution to duplicated logic?

如今,Web应用程序广泛使用Javascript,例如Gmail和日历等各种Google产品。

我正在努力解决如何没有重复的逻辑服务器和客户端。

在请求应用程序的页面或状态时,我更愿意发送完整的UI,这意味着:不仅仅是一些javascript,它反过来会产生十几个ajax请求并构建用户界面。

但问题在于,决定要显示与否的逻辑必须在服务器端编写一次,在客户端语言编写一次。

然后我想知道是否有可能以某种方式处理你的javascript逻辑服务器端并将整个发送到客户端,而客户端又可以继续使用具有响应ui的所有优点的应用程序,但没有初始加载的缺点/由于后台ajax请求的依赖性而构建用户界面。

我希望我的问题的解释有点清楚,因为我不是最流利的英语作家。 如果你理解我的意思,如果你能更好地描述问题,请做...谢谢!

所以我的问题是:

  • 这样的事情是可能的还是现实的?
  • 您对如何解决这个问题有何看法?

;-)

当我们启动我们的网络应用程序时,我们遇到了同样的问题。
它可能会帮助您了解我们的结果:

  • 后端(业务逻辑,安全性)与前端完全分离(gui)

  • 前端和后端专门通过JSON服务进行通信

  • 使用PURE模板库在JSON中呈现客户端

  • 而后端是Erlang(任何流JSON都可以,但我们喜欢它的力量)

对于您的问题,您必须将浏览器视为完全不安全。
所有安全逻辑都必须来自后端。

隐藏或显示屏幕客户端的某些部分是可以的,但是确保后端决定将哪些数据发送到浏览器。

好像你描述了Jaxer 。你可以用JS编写所有内容。
此外,还有GWT允许在Java上编写完整的东西

然后我想知道是否有可能以某种方式处理你的javascript逻辑服务器端并将整个发送到客户端,而客户端又可以继续使用具有响应ui的所有优点的应用程序,但没有初始加载的缺点/由于后台ajax请求的依赖性而构建用户界面。

也许您正在查看的应用程序只是使用Ajax。

您可以在服务器上预处理的唯一内容是您已经知道用户想要的内容。 例如,在电子邮件应用程序中,您可以在他们登录后立即向他们发送收件箱的完整视图,在服务器上预处理并使用单个请求获取。但您可以使用AJAX获取特定邮件一次他们点击它。 预先向他们发送所有消息将会太慢。

如果使用得当,AJAX应该可以让您的页面更快 ,因为它可以请求微小的更新或更改内容而无需重新加载整个页面。

但问题在于,决定要显示与否的逻辑必须在服务器端编写一次,在客户端语言编写一次。

不必要。 例如,在PHP中,您可以编写一个类似displayWidgetInfo()的函数。 您可以使用该函数在页面加载时发送初始窗口小部件信息。 如果用户单击窗口小部件以更改某些内容,请将AJAX请求发送到也使用displayWidgetInfo()发送回新结果的PHP脚本。 几乎所有逻辑都保留在单一功能中。

你的直觉是正确的 :重复代码是不好的,而且对一个页面提出太多请求是不好的。 但我认为你可以通过一些重构解决这些问题。

我明白你在说什么。

但我不认为你应该在客户端有很多关于构建内容的“逻辑”。 如果你确实想要使用像你提出的模型(不是我的一杯茶,但为什么不这样),我不明白为什么你最终会有很多重复。

在通常显示tablediv ,您只需输出JavaScript,即可在客户端构建相关组件。

我会将其视为您的数据/业务逻辑模型中的另一个“视图”。

你有一个小问题,你遇到了一个问题吗?

我用这种方式理解你的问题:假设我们在网页上有一个html表单。 名字和姓氏都有一个字段。 我们必须在客户端(使用JS)和Sever端(在处理表单输入时使用php脚本)检查它的有效性。 所以这里是复制 - 双方的正则表达式检查。 那么防止它并梳理这些逻辑的方法是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM