【问题标题】:Is JavaScript an application language?JavaScript 是应用程序语言吗?
【发布时间】:2010-11-19 22:19:28
【问题描述】:

我一直认为 JavaScript 是一种客户端脚本工具,用于增强 HTML 的功能,而 HTML 通常由其他一些服务器端技术生成——Java、.NET、Rails、Django、PHP 等。

尽管最近我听到人们将 JavaScript 称为“应用程序语言”。我知道像 Gmail 这样的应用程序已经将 JavaScript 带到了下一个发展阶段,并使浏览器更像是一个功能齐全的应用程序。但据我所知,没有像我之前提到的基于 JavaScript 的服务器端技术。因此,即使在富互联网应用程序的情况下,“应用程序语言”实际上也是后端与数据库交互并执行 URL 路由等的语言。

我的理解是否已经过时,JavaScript 现在是否能够执行后端处理,或者我们愿意将其称为“应用程序语言”仅仅是因为它目前在前端执行的复杂性使得后端处理具有成为次要的?

【问题讨论】:

    标签: javascript web-applications language-features rich-internet-application


    【解决方案1】:

    Serverside Javascript 可以用于long time now。我每天都用它维护代码。它比经典的 ASP 好得多(至少我可以拥有“真实的”对象,以及 try-catch 等)。

    另一个好处是您可以避免用不同的语言重新编写表单验证代码。我只是使用这样的 javascript 文件:

    <!--//<%
    //code
    //%>-->
    

    这允许您同时包含 &lt;!--#include file='name'--&gt;&lt;script src='name' /&gt; 的代码。不利的一面是,通过查看验证代码(如果您不够小心的话)可能更容易“破坏”您的验证代码。 切勿将敏感信息放在验证码之外。 此外,您可以选择所需的文件扩展名,但切勿将执行数据库访问的服务器端 javascript 保存为 .js . .asp 文件默认被执行而不是作为纯文本发送。 .js 文件不是这样,它们仅在包含在 .asp 文件中时才会执行。

    【讨论】:

    • 你是对的。立即添加。 javascriptVBScript 的优势太多了,甚至无法在此处开始
    【解决方案2】:

    我不同意。随着 Web 服务的出现,您可以根据需要编写整个应用程序客户端,并通过 AJAX 与 Web 服务进行简单交互。我不会推荐这个,但它可以做到。现在您可能会将 Web 服务视为应用程序的一部分,但我认为这点可以说是应用程序的一部分,而不是您的数据库技术。

    【讨论】:

      【解决方案3】:

      JavaScript 是一种图灵完备的语言,在其语法和结构方面被相对广泛地采用和理解,并且没有浏览器运行时。它从一开始就被用于server side scriptingcommand line scripting,并用于开发健壮的Web 应用程序。这也是Palm Pre, running WebOS上的专属语言。

      阻碍 JavaScript 作为“成熟”的黄金时段严肃语言获得更广泛认可的原因是它在实现方面缺乏统一性。老实说,这在很大程度上是因为微软试图建立专有扩展,以及它在 ActiveX、JScript 等分裂技术上的错误尝试。

      现在有了完整的对象模型和相对复杂的库集,没有理由不把它当作广泛使用的任何其他现代语言一样认真。事实上,它可能是当今最广为人知的计算机语言。

      【讨论】:

        【解决方案4】:

        Microsoft 的 JScript 引擎可以托管在各种应用程序中。除了 IE,它还可以用于其他几个标准通用脚本主机,例如 WSH 和 MSHTA。它也可以使用 Classic ASP 托管在服务器端。

        这意味着除了服务器端 Web 应用程序之外,还有多种方法可以在 Windows 下使用 JScript 创建非 Web 应用程序。这包括独立或客户端-服务器桌面应用程序。

        其他来源也有类似的工具。其中大部分支持 Windows 以外的其他平台。

        【讨论】:

          【解决方案5】:

          请参阅Rhino 了解完全用 java 编写的 javascript 实现。它通常嵌入在 java 程序中以启用脚本,因此可以在服务器端使用。

          【讨论】:

            【解决方案6】:

            CouchDB 使用 javascript 来构造和操作数据。

            【讨论】:

              【解决方案7】:

              Jaxer

              使用 Jaxer,您的 JavaScript 将获得完整的 访问数据库,如 MySQL 或 集成的 SQLite 数据库。富有的 文件系统 I/O 以及低级 网络套接字访问可用于 你们都直接在JavaScript上 服务器。你可以调用那些服务器 从客户端无缝运行 - 只暴露那些与 您的安全要求。

              【讨论】:

                【解决方案8】:

                我已经用 JavaScript 编写了几个内部工具。优点是很容易将一些 CSS 和 HTML 组合在一起,为我通常只使用控制台命令完成的事情提供一个界面。

                【讨论】:

                  【解决方案9】:

                  您可能想对小部件进行一些研究。 Web Widgets 是使用 Web 语言(HTML、CSS、Javascript)创建并具有一些特定小功能的小程序。

                  Opera 目前正在使用它们,您可以在 Palm 的 WebOS 上看到它们,并且很快就会有针对它们的 W3C 规范。

                  W3C Widget 1.0

                  Opera Widgets

                  【讨论】:

                    【解决方案10】:

                    如果您愿意,您可以使用 Web 技术(包括 JavaScript 或 Python 和 Ruby)创建带有 Titanium Desktop 的桌面应用程序。

                    【讨论】:

                      【解决方案11】:

                      Javascript 将成为下一个更广泛使用的应用程序语言。为什么?请咨询 Google Chrome 操作系统开发团队。客户端应用程序和云计算没有告诉你什么?

                      【讨论】:

                        【解决方案12】:

                        Javascript 的实际语言是 ECMAScript。 (见The standardWikipedia article)。

                        ECMAScript 在许多浏览器中用作 Javascript,在 Flash 中用作 ActionScript,Microsoft 有自己的实现称为 JScript,它在 Internet Explorer 中用于代替 Javascript,并在 ASP 中用作服务器端语言(替代更常见的VBScript)。

                        语言本身并不特定于任何环境,例如网络。 Javascript 中使用的 DOM 不是 ECMAScript 语言本身的一部分。因此,该语言几乎可以适应任何环境,但最普遍的当然仍然是 Javascript。

                        【讨论】:

                          【解决方案13】:

                          我看不到令人敬畏的“Node.js”(http://nodejs.org/)平台的提及。 这是目前“热门”的事情之一......

                          【讨论】:

                            猜你喜欢
                            • 2011-04-27
                            • 1970-01-01
                            • 2010-11-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2018-08-09
                            相关资源
                            最近更新 更多