我一直认为JavaScript是任何Web应用程序的客户端的一个很好的补充(或者更确切地说,在过去的几年中,作为必备)。 即使我开始使用Mootools,它远离DOM操作,并且针对一个通用的OO框架,我仍然认为我不会考虑使用JavaScript进行服务器端开发。 JavaScript属于前面,期间 - 这就是我的想法。
嗯,似乎根据一些该死的聪明人 ,我错了。 有史以来第一次,名为Plat_Form的Web开发平台竞赛接受了一个在服务器端和客户端都使用纯JavaScript的团队。 更重要的是,以下是比赛组织者对此的评价:
“ 我们只有一个团队的应用程序,Upstream Agile,可以在服务器和客户端使用JavaScript。由于这可能成为未来几年的主要趋势,我们认为他们的参与是对未来的一瞥并接受这一点即使没有其他人使用这个平台,团队仍然适用。 “
所以我的问题是:这真的是一个可行的概念,纯粹基于JavaScript构建多层Web应用程序吗? 如果是这样,那么在前端和后端使用JavaScript会有什么好处?
编辑: Vanwaril的答案中的链接( 为什么node.js非常棒 )在评论部分中展示了一个值得一读的有趣讨论。 我认为,虽然在服务器端使用Javascript是一个可行的概念并且可能有其好处,但我绝对不会开始使用该架构构建企业应用程序。 至少现在(是。 这个问题可能需要在一年内再次提出,我可以想象答案在不久的将来会发生巨大变化。
首先,你看看node.js了吗? JavaScript是过去几年中发展突飞猛进的语言之一,并且可能会继续增长。
在功能方面,与其他服务器端技术相比,它不那么成熟,但是活跃的社区使其不甘落后。
最后,由于它是一种在前端和后端运行的语言,它对代码重用和数据交换格式的影响使应用程序开发变得更快。
我不确定它是否已经准备好进行生产(除非你自己愿意为代码库做贡献),但服务器端JavaScript是一个很好的选择。
Unhosted是一个“项目”,它完全是关于仅在网络浏览器中运行的仅限javascript的应用程序,而是将服务器用作(加密)数据的存储。 你会在那里找到一些例子。
要真正回答这个问题 - 是的,完全用JavaScript构建客户端 - 服务器Web应用程序是完全可行的,并且在问题被提出后的两年内引起关注的框架 - 尤其是Meteor - 使得这个框架比它更容易以前是:
一种语言。 用JavaScript编写接口的客户端和服务器部分。
我们正在使用http://Helma.at构建我们的CMS和前端,目前每月服务约250万页。 这是JavaScript贯穿始终。
请注意,这不是前沿技术,正如您似乎所假设的那样:Helma自1998年开始开发,我们自1999年开始在生产中使用它。
服务器端代码必须特别强大且设计良好,因为它在多线程环境中管理多个客户端。 业务层流程的复杂性以及对重复使用准确代码的需求总是让我用Java编写服务器端代码。 我不会考虑使用Java脚本,因为它针对的是不同的用法。
话虽如此,我确实在服务器上使用Java脚本来复制客户端验证脚本。 这样你就可以在两端使用一条验证码。 用户获得响应式浏览器验证,但后端重新验证,以防有人绕过前端验证。
所以我的问题是:这真的是一个可行的概念,纯粹基于JavaScript构建多层Web应用程序吗?
是的,虽然与许多其他语言相比,这些工具相对不成熟。
如果是这样,那么在前端和后端使用JavaScript会有什么好处?
这不是一个新的想法。 事实上它已经过时了,然后又出现了,现在又回来了。
Windows服务器上的Clasic ASP IIS可以使用javascript作为服务器端脚本语言。 它可以与本地文件系统和SQL服务器等交谈非常简单的东西。
您可以轻松编写一些返回JSON的ASP代码,供客户端脚本ajax使用。
问题是MS忽略了经典的asp并转移到了asp.net(c#或VB.net),所以我们必须等待社区重新发明服务器端的javascript才能回到2001年的位置。