2009-09-02 76 views
5

现在,Web应用程序广泛使用Javascript,例如Gmail和Calendar等各种Google产品。正在处理JavaScript服务器端的重复逻辑的解决方案?

我正在努力如何不重复逻辑服务器和客户端。

当请求一个页面或应用程序的状态时,我宁愿发送完整的用户界面,这意味着:不只是一些JavaScript,这反过来又造成了一打AJAX请求,并建立用户界面。

但是这里存在问题,决定要显示或不显示的逻辑必须在服务器端写入一次,而在客户端语言中写入一次。

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

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

所以我的问题是:

  • 是这样的可能和现实的还是?
  • 对于如何解决这个问题你有什么看法?

;-)

回答

2

当我们开始我们的网络应用时,我们遇到了同样的问题。
它可以帮助你知道我们是如何结束:

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

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

    沟通
  • 的JSON呈现的客户端与所述模板PURE

  • 和后端我š二郎(任何流JSON将是确定了,但是我们喜欢它的功率)

而对于你的问题,你必须考虑的浏览器完全不安全。
所有的安全逻辑必须来自后端。

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

+0

好的建议... – 2009-09-07 14:00:34

1

看来你描述Jaxer。你可以写在JS的一切。
此外,还有GWT,允许在Java上编写整个东西

+0

这很奇怪,但很有趣。你是否使用过杰克斯?你觉得怎么样? – 2009-09-02 12:58:10

+0

Idd GWT是谷歌对这个问题的答案... – 2009-09-02 13:11:19

+0

不,我没有。这真的很有趣,我打算在最近的将来尝试Jaxer(所有JS MVC嗡嗡声都是为了后端,我想需要一些检查)。据我了解,这不是很快。你知道JavaScript不是快速的技术,所以不要计划任何大的事情。 – 2009-09-02 13:24:17

0

我明白你在说什么。

但我不认为你应该在客户端有什么要构建什么“逻辑”。如果你确实想用一种模式去推荐(不是我的一杯茶,但为什么不是),我不明白为什么你最终会得到很多重复。

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

我认为它只是另一个'查看'到您的数据/业务逻辑模型。

你有没有去一个你遇到的问题的小例子?

+0

嗨,好idd大多数网站,像stackoverflow是数据为中心,并没有真正有这个问题,但如果你想建立像桌面上使用的'真正'的应用程序,如谷歌文件等,需要坚持一切,我仍然不确定最好的方法是什么,这个问题的原因。 txn btw – 2009-09-02 13:16:32

1

然后我在想,如果它在某种程度上 可以处理你的JavaScript 逻辑服务器端和发送整个 给客户,谁又将可以 继续使用该应用程序与 所有的优点响应UI, ,但没有 的缺点 用户的初始加载/建立 接口由于依赖的背景 ajax请求。

也许你正在看的应用程序只是使用Ajax很差。

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

正确使用,AJAX应该使您的页面更快,因为它可以在不重新加载整个页面的情况下请求微小更新或更改内容。

但是,这里存在问题,决定要显示或不逻辑 在客户端的语言是 在服务器端写入一次, 一次。

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

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

+0

一些很好的观点,idd我使用ajax作为响应更好的ui,因为部分更新等,但是我丰富的web应用程序,真的很难保持逻辑独立,让我们的服务器必须逻辑按照正确的顺序在页面上放置某些小部件,然后客户端也需要类似的代码来处理小部件的重新定位...如果有点明白我的意思:-) txn btw – 2009-09-02 13:10:46

+0

我的天,这么多错字,我很抱歉,真的... – 2009-09-02 13:17:54

0

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