【问题标题】:is HTML + Javascript the best option for web site design/implementation?HTML + Javascript 是网站设计/实施的最佳选择吗?
【发布时间】:2012-02-07 04:37:11
【问题描述】:

我们正在设计我们的网站并研究可用的技术。我们遇到了几个选项 - HTML、Javascript、JSP、ASP 等。

我们想要实现的是在某些页面上拥有动态内容,这些内容将从后端 Web 服务中提取数据,或将数据推送到它。要做到这一点,似乎 HTML + Javascript 实际上已经足够好,不涉及 JSP/ASP,这是正确的说法吗?

【问题讨论】:

    标签: javascript html jsp web


    【解决方案1】:

    如果没有某种服务器端 Web 应用程序介于两者之间,您将无法从数据库获取信息到 Web 浏览器。 JSP/ASP 属于“服务器端 Web 应用程序”的范畴。浏览器中的 Javascript 可以向服务器请求数据并对其进行处理,但服务器必须知道如何读取数据库并提供适当的响应。

    所以你最终将“网站”分为两部分:

    1. 前端:HTML、javascript、CSS,都在访问者浏览器中运行
    2. 后端:将内容和/或原始数据传送到网络浏览器。

    当今的大多数动态网站在这两个地方都包含大量代码。

    所以不,“看起来 HTML + Javascript 实际上足够好,不涉及 JSP/ASP”不是正确的说法,因为您没有后端来提供数据库内容。

    【讨论】:

    • 有道理,同意你的解释。我们确实已经建立了服务器端 RESTful 逻辑来处理来自客户端的请求、与数据库通信并将数据返回到客户端。
    • 在这种情况下,您并不完全需要服务器呈现传统意义上的整页内容。如果你有一个提供 JSON 服务的强大 API,你可以使用像 Backbone JS 这样的 JS 框架来构建一个从 API 中提取数据的客户端应用程序。它是一个强大的架构,可以让你从 UI 的角度做很多非常棒的事情。查看backbone examples 了解此模式的一些实际用例。
    【解决方案2】:

    您可以在不使用 JSP/ASP 的情况下拥有动态内容。

    Javascript XMLHttpRequest 对象允许您执行动态操作。

    【讨论】:

      【解决方案3】:

      HTML+JavaScript 将满足客户端的需求,但要真正从服务器提取数据,您需要在服务器端运行一些东西。这不一定是 JSP/ASP,但需要从服务器发送数据。正如您提到的,它可能是一个 Web 服务,但它仍然在服务器上运行。

      【讨论】:

        【解决方案4】:

        我相信标准的标语是“优雅的退化”。当您以 AJAX 方式(仅使用 HTML + Javascript)编写整个站点时,任何无法运行 Javascript 的浏览器都将无法很好地展示您的站点。确实存在这样的浏览器:旧浏览器、纯文本浏览器、NoScript 扩展程序、网络蜘蛛。

        通过使用 JSP/ASP/Your-favorite-server-side-scripting-environment 进行编码,您可以保留优雅降级的可能性。即使浏览器无法运行 Javascript,您的网站仍然可以导航。

        为了获得最佳体验,您可能需要某种组合。 Javascript/AJAX 用于响应能力,但能够回退到所有服务器端脚本以获得旧版支持。

        当然,如果不关心遗留支持,那么完全 AJAX 前端当然是合理的。特别是如果您处于无需担心单域策略的情况下。 Intranet、期望有限客户的小型公共网站可能是此类网站的合理场所。

        【讨论】:

          【解决方案5】:

          如果您要使用任何类型的数据存储,如果您要进行任何类型的用户验证或单曲,您将需要一些服务器端 ASP/JSP 代码来获取动态内容。虽然如果您使用类似Backbone 的框架将您的 JavaScript 数据链接到您的 Web 服务(假设它们是 RESTful),那么使用 HTML + JavaScript 编写的“Web 应用程序”是“可能的”。

          Backbone 允许您在页面中的数据和 UI 之间创建 MVC / MVVM 关系。可以将模型设置为从 RESTfull 接口(例如您的 Web 服务)中提取数据。之后,您可以通过页面更新数据,Backbone 允许再次通过 REST 轻松更新服务器上的数据。

          我看过一个教程,其中一个页面是整个应用程序,并且他们启用了 Backbone 的站点只是调用 REST 支持的站点。

          还有一个名为 Spine 的 Backbone 的派生词,来自 Twitter 的开发人员,但它似乎非常适合苹果,更多的是基于对 CoffeeScript 的热爱,但我在离题之前就停下来了。

          【讨论】:

          • 我们的服务器/Web 服务端是纯 RESTful 并用 java 编码的,任何有效的 http 请求(基于我们的路由文件)都可以处理。在这种情况下,服务器端是否仍需要 ASP/JSP?
          • 您可以在 Backbone 中设置一个集合以从该 RESTful 服务器/Web 服务中提取其数据。该库还允许您在对象上调用 .save() ,它将发布/放回您定义的同一路线。如果它只是从服务中提取数据,并且您认为您有访问控制的解决方案,您将不需要服务器上的 ASP/JSP。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-22
          • 2016-11-25
          • 1970-01-01
          • 2011-12-08
          • 2013-06-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多