【问题标题】:Using JavaScript to Build Remotely-Hosted Application使用 JavaScript 构建远程托管应用程序
【发布时间】:2012-04-05 16:13:30
【问题描述】:

我们正在开发一个 JavaScript 应用程序,该应用程序将托管在我们客户的服务器上。我们无权访问客户的服务器,而且更不允许向应用程序发送定期更新。为了提供定期维护,建议客户服务器上的应用程序只不过是一个由两行组成的 HTML 文件:doctype 和 JavaScript,包括返回到我们服务器的源链接。

从这里开始,单个 JavaScript 包含将构建整个应用程序,并根据需要提取额外的资源。它将首先构建核心 HTML(主要基于 HTML Boilerplate),包括为元、样式表、HTML 等附加标签。一旦 HTML 页面被刷新,它会拉入学习者正在寻找的内容.

因评论而更新 该应用程序需要驻留在客户的服务器上,因为此应用程序与客户服务器上的其他应用程序(在父框架中)之间存在大量通信。如果托管在我们的服务器上,由于浏览器安全性,它将被阻止。有一些选项可以解决这个问题,但通过将它放在客户的服务器上,它消除了类似应用程序常见的故障点。

是否有更好的方法来保留无需通过客户的情况下向应用程序提供更新的能力?

【问题讨论】:

  • 如果您正在考虑将应用程序放在您自己的服务器上,并在客户机器上托管一个骨架页面,为什么不简单地将它们指向一个 url?需要在客户机器上放置“东西”的原因是什么?
  • 对不起,我忘了提。此应用程序与客户服务器上的其他应用程序(在父框架中)之间存在大量通信。由于浏览器安全性,这将被阻止。有一些选项可以解决这个问题,但是通过将它放在客户的服务器上,它消除了一个故障点,这对于尝试执行相同操作的类似应用程序来说是一个常见问题。
  • 只需托管 javascript 部分,从您这边更新应用程序应该没问题。您甚至不需要 iframe 或其他任何东西,也不需要修改客户端页面的 html。你只需要一个脚本标签来包含你需要的任何功能。最好让客户代理您的 jsscript。

标签: javascript jquery frameworks requirejs


【解决方案1】:

根据这个问题:是否有更好的方法来保留无需通过客户的情况下向应用程序提供更新的能力?

您不能在您的服务器上创建一个 Web 服务,向客户端(客户端是另一家公司,而不是最终用户)提供 JSON 来构建您需要的任何对象吗?这样你就可以“随时”更新你的 web 服务,只要你构建的 js 具有足够的可扩展性,你就可以远程将对象规范传递给它

【讨论】:

  • 客户的 API 是用 JavaScript 构建的,因此他们的服务器无法通过 Web 服务访问我们的数据。我们的 JavaScript 应用程序向与之交互的用户显示内容,然后将结果发送到客户的 API。
  • 为什么不呢? en.wikipedia.org/wiki/JSONP 您可以通过 JSONP 编辑接收跨域性质的 Web 服务数据:重要的是您要消化并充分考虑这种方法可能存在的安全问题。
  • 客户的 API 未设置为使用 JSONP,因为它遵循传输数据的行业规范。需要的是客户服务器上的一个中间应用程序,它可以解释 JSONP 请求并将它们转换为规范的 API(这是我们的应用程序要做的)。
  • 啊,是的,我担心这不会那么容易。我想我最初的答案是@face value 我将如何处理您提出的问题。我了解专有系统和与它们相关的 NDA,因此我认为我可以给出的最佳答案是在不深入了解您尝试将我已经提供的应用程序串联在一起的情况下......祝你好运先生!
【解决方案2】:

如果您的应用程序是纯 JavaScript,那么您的解决方案就可以了。 如果你对你的应用程序建模得很好,你可以在不通过你的客户的情况下使其可更新。 我构建的模型的简单概念证明(在线 JavaScript 桌面的开始): http://ilyeskooli.com/desktop/

如果你检查页面来源,它只是:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="JDesktop/css/themes/ui-lightness/jquery-ui.css">
        <link rel="stylesheet" type="text/css" href="JDesktop/css/JDesktop.css">
        <script type="text/javascript" src="js/jquery/jquery.js"></script>
        <script type="text/javascript" src="js/jquery/jquery-ui.js"></script>
        <script type="text/javascript" src="JDesktop/jdesktop.php"></script>        
        <script type="text/javascript" src="index.js"></script>
        <title>jDesktop</title>
    </head>
    <body>

    </body>
</html>

【讨论】:

  • 这是我们前进的方向,但不确定我们是否疯狂地完全用 JavaScript 构建 Web 应用程序。挑战在于您的示例中的所有行都需要减少到一行(单个脚本标记)和 doctype。那时,不定义基本标签(HTML、HEAD 等)在现代浏览器上工作得很好,但我们不确定在 IE7/8 上会遇到什么麻烦。
  • 完全用 JavaScript 构建应用程序并不是那么疯狂。如您所见: 是一种 PHP 脚本,可将我的 JS 类编译成一个 JS 文件。
猜你喜欢
  • 2013-08-03
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2010-10-31
  • 2016-11-10
  • 2017-06-17
  • 2021-10-09
  • 1970-01-01
相关资源
最近更新 更多