服务器端javascript的使用是否普遍?为什么要使用它而不是任何其他服务器端脚本?是否有特定的用例使它比其他服务器端语言更好?
另外,对如何开始尝试它感到困惑,我在 freeBSD 上,为了运行服务器端 javascript,我需要安装什么?
服务器端javascript的使用是否普遍?为什么要使用它而不是任何其他服务器端脚本?是否有特定的用例使它比其他服务器端语言更好?
另外,对如何开始尝试它感到困惑,我在 freeBSD 上,为了运行服务器端 javascript,我需要安装什么?
它是这样的:
服务器很昂贵,但用户会在他们的浏览器中免费为您提供处理时间。因此,与任何大到需要运行多个服务器的站点上的客户端代码相比,服务器端代码相对昂贵。但是,有些事情您不能留给客户端,例如数据验证和检索。您希望在客户端上执行这些操作,因为这意味着用户的响应时间更快,您自己的服务器基础设施更少,但安全性和可访问性问题意味着需要服务器端代码。
通常发生的情况是你两者都做。您编写服务器端逻辑是因为您必须这样做,但您也在 javascript 中编写相同的逻辑,希望为用户提供更快的响应并在某些情况下为您的服务器节省一些额外的工作。这对验证码特别有效;浏览器中失败的验证检查可以将整个 http 请求/响应对保存在服务器上。
由于我们都是(大部分)这里的程序员,我们应该立即发现新问题。不仅需要额外的工作来开发两组相同的逻辑,还有维护它所涉及的工作,平台导致的不可避免的错误无法很好地匹配,以及随着时间的推移随着实现的不同而引入的错误。
输入服务器端 javascript。这个想法是您可以编写一次代码,因此相同的代码可以在服务器和客户端上运行。这似乎可以解决大部分问题:您可以一次完成全套服务器和客户端逻辑,没有漂移,也没有双重维护。当您的开发人员只需要知道一种语言即可用于服务器和客户端工作时,这也很好。
不幸的是,在现实世界中它的效果并不好。问题有四个方面:
这些并非完全无懈可击的技术问题:您将服务器支持的语言限制为大多数浏览器都支持的 javascript 子集,提供了解该子集和服务器端扩展的 IDE,制定一些关于页面结构的规则尽量减少 DOM 问题,并提供一些样板 javascript 以包含在客户端上,以使平台更好用。结果类似于 Aptana Studio/Jaxer,或者最近的 Node.js,它可能非常好。
但并不完美。在我看来,有太多的陷阱和小的兼容性问题才能让它真正发光。最终,与开发人员的时间相比,额外的服务器仍然很便宜,并且大多数程序员能够使用 javascript 以外的东西来提高工作效率。
我真正想看到的是部分服务器端 javascript。当请求页面或提交表单时,服务器平台会在 javascript 中请求验证,可能作为 Web 服务器的插件,完全独立于其余部分,但响应是使用您选择的平台构建的。
我认为服务器端 Javascript 的一个非常酷的用途是用于数据验证,但它几乎不经常使用。有了它,您可以编写一个 javascript 文件来验证表单,在客户端检查它,然后在服务器端再次检查它,因为我们不应该信任客户端的任何内容。它可以让您保持验证规则 DRY。很方便。
另见:
Javascript 只是一种语言。因为它只是一种语言,你可以在任何你想要的地方使用它……在你的浏览器中,在服务器上,嵌入到其他应用程序中,独立应用程序等等。
话虽如此,我不知道“服务器端 Javascript”有很多新的发展
Javascript 是一种非常好的语言,具有自我/方案原型样式基础和 C 样式语法。有一些问题,请参阅 Javascript the Good Parts,但总的来说它是一流的语言。问题是大多数 javascript 程序员都是糟糕的程序员,因为它很容易上手。
谷歌的一个团队构建了 Rhino on Rails,这是一个类似于 Ruby on Rails 的 MVC 框架,它是用 javascript 编写的,并在 Rhino 上运行,它是 Java VM 的 javascript 解释器。在这种情况下,他们需要使用 Java VM,但希望获得一种速度快(javascript 很快)、支持鸭子类型且灵活的语言。
另一个例子是 CouchDB,一个面向文档的数据库,它使用 json 作为传输格式,使用 javascript 作为查询和索引语言。他们希望数据库尽可能地是 Web 原生的。
Javascript 擅长字符串和 dom (xml) 操作、沙盒化、网络化、自身扩展等……这些特性是您在开发 Web 应用程序时经常做的事情。
尽管如此,我实际上并没有开发服务器端的javascript。这不是一个坏主意,但绝对不常见。
我们在客户端上使用 javascript 是因为它就在那里,而不是因为它是我们从语言列表中选择的。我不会为服务器上的任何杂务选择它。
你可以在服务器上运行任何你喜欢的语言,事实上,你喜欢多少就多少。
javascript 可靠且易于使用,但对于服务器上的常见任务而言,它的劳动强度太大。