【问题标题】:Client/Server are always separated! Or are they?客户端/服务器总是分开的!还是他们?
【发布时间】:2011-03-21 21:59:17
【问题描述】:

令人惊讶的是,在更大的程序员社区中,有多少程序员会问诸如“我如何做一个 EXTJS 后端?”之类的问题。或“如何将 jQuery 与 Java 集成?”,不了解客户端和服务器之间的区别。然后我开始思考,是否存在服务器实际上向客户端发送 JS 或其他内容以执行的框架?围绕这些方法的哲学思想是什么?

编辑——澄清:

我不是在问它是否可能,我是在问它是一个好策略还是被皱眉。我不是在问客户端语言是否可以在服务器上运行。我在问是否有围绕动态服务动态客户端代码构建的框架。

【问题讨论】:

  • asp.net webforms 模型因此而臭名昭著(将 js 传递到前端执行,而不是 JSON 介意)
  • 我不确定是否理解您的问题,但它似乎类似于 RMI ...

标签: language-agnostic client rich-internet-application


【解决方案1】:

许多不同的框架都这样做,当你在做 ASP.NET 工作时,你会经常在客户端看到 POSTBACK 调用,这是由框架生成的,是一个 Javascript 调用。在 Java 世界中,大多数 JSF 框架都或多或少地做到了这一点。只要您记住“从不信任客户”规则,我认为这没有什么害处。因此,如果您要在客户端上使用 Javascript 进行字段验证,这不会让您不必在服务器端进行相同的检查。不久前我做了一个较大的 Flex 应用程序,作为其中的一部分,我开始创建一个模块,该模块将读取 Hibernate Validation 注释并自动在 Actionscript 上创建相同的验证,截止日期在我走得太远之前就被扼杀了,但我确实喜欢能够在后端设置一次验证并在客户端检查它们的想法,从而节省到服务器的往返行程。

【讨论】:

    【解决方案2】:

    向客户端发送 JavaScript 很简单。只需将脚本标记中的 URL 指向动态脚本而不是静态 .js 文件。

    至于在服务器端运行 JavaScript,Node.js 之类的东西可以让你这样做,尽管它们与浏览器的交互级别不同。

    【讨论】:

      【解决方案3】:

      物理障碍肯定存在。 HTML/JavaScript/ActionScript 将在客户端空间中运行,并将(实质上)对后端进行远程过程调用。由于这种分歧,您将无法消除客户端/服务器架构。

      话虽如此,Pierreten 提出了一个很好的观点,即 Microsoft 的 ASP.NET API 大量使用自动生成的 JavaScript 来与服务器端组件进行交互。也就是说,您在项目中添加一个表单控件,然后为您生成服务器端和客户端代码。

      【讨论】:

      • hmm,这种方法有什么特殊的名称吗?或者是否有一个特殊的名称来表示客户端和服务器代码的完全分离,例如当您在服务器上构建可供人们想要构建的任何客户端使用的 json 端点时?
      【解决方案4】:

      【讨论】:

      • 这不是创建动态js(动态)的服务器端框架。它是一个用于生成静态 js 代码的 java 框架。还是我错了?
      • 不知道——没用过;我只看过它并认为它可能符合您的要求。
      • 我认为这取决于您对“动态js”的定义,因为您正在编写Java,所以所有的javascript都在生成,但它是在编译时完成的。
      猜你喜欢
      • 2010-09-29
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 2011-04-30
      相关资源
      最近更新 更多