【发布时间】:2012-02-07 04:37:11
【问题描述】:
我们正在设计我们的网站并研究可用的技术。我们遇到了几个选项 - HTML、Javascript、JSP、ASP 等。
我们想要实现的是在某些页面上拥有动态内容,这些内容将从后端 Web 服务中提取数据,或将数据推送到它。要做到这一点,似乎 HTML + Javascript 实际上已经足够好,不涉及 JSP/ASP,这是正确的说法吗?
【问题讨论】:
标签: javascript html jsp web
我们正在设计我们的网站并研究可用的技术。我们遇到了几个选项 - HTML、Javascript、JSP、ASP 等。
我们想要实现的是在某些页面上拥有动态内容,这些内容将从后端 Web 服务中提取数据,或将数据推送到它。要做到这一点,似乎 HTML + Javascript 实际上已经足够好,不涉及 JSP/ASP,这是正确的说法吗?
【问题讨论】:
标签: javascript html jsp web
如果没有某种服务器端 Web 应用程序介于两者之间,您将无法从数据库获取信息到 Web 浏览器。 JSP/ASP 属于“服务器端 Web 应用程序”的范畴。浏览器中的 Javascript 可以向服务器请求数据并对其进行处理,但服务器必须知道如何读取数据库并提供适当的响应。
所以你最终将“网站”分为两部分:
当今的大多数动态网站在这两个地方都包含大量代码。
所以不,“看起来 HTML + Javascript 实际上足够好,不涉及 JSP/ASP”不是正确的说法,因为您没有后端来提供数据库内容。
【讨论】:
您可以在不使用 JSP/ASP 的情况下拥有动态内容。
Javascript XMLHttpRequest 对象允许您执行动态操作。
【讨论】:
HTML+JavaScript 将满足客户端的需求,但要真正从服务器提取数据,您需要在服务器端运行一些东西。这不一定是 JSP/ASP,但需要从服务器发送数据。正如您提到的,它可能是一个 Web 服务,但它仍然在服务器上运行。
【讨论】:
我相信标准的标语是“优雅的退化”。当您以 AJAX 方式(仅使用 HTML + Javascript)编写整个站点时,任何无法运行 Javascript 的浏览器都将无法很好地展示您的站点。确实存在这样的浏览器:旧浏览器、纯文本浏览器、NoScript 扩展程序、网络蜘蛛。
通过使用 JSP/ASP/Your-favorite-server-side-scripting-environment 进行编码,您可以保留优雅降级的可能性。即使浏览器无法运行 Javascript,您的网站仍然可以导航。
为了获得最佳体验,您可能需要某种组合。 Javascript/AJAX 用于响应能力,但能够回退到所有服务器端脚本以获得旧版支持。
当然,如果不关心遗留支持,那么完全 AJAX 前端当然是合理的。特别是如果您处于无需担心单域策略的情况下。 Intranet、期望有限客户的小型公共网站可能是此类网站的合理场所。
【讨论】:
如果您要使用任何类型的数据存储,如果您要进行任何类型的用户验证或单曲,您将需要一些服务器端 ASP/JSP 代码来获取动态内容。虽然如果您使用类似Backbone 的框架将您的 JavaScript 数据链接到您的 Web 服务(假设它们是 RESTful),那么使用 HTML + JavaScript 编写的“Web 应用程序”是“可能的”。
Backbone 允许您在页面中的数据和 UI 之间创建 MVC / MVVM 关系。可以将模型设置为从 RESTfull 接口(例如您的 Web 服务)中提取数据。之后,您可以通过页面更新数据,Backbone 允许再次通过 REST 轻松更新服务器上的数据。
我看过一个教程,其中一个页面是整个应用程序,并且他们启用了 Backbone 的站点只是调用 REST 支持的站点。
还有一个名为 Spine 的 Backbone 的派生词,来自 Twitter 的开发人员,但它似乎非常适合苹果,更多的是基于对 CoffeeScript 的热爱,但我在离题之前就停下来了。
【讨论】: