Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >服务器端Javascript:为什么?

服务器端Javascript:为什么?
EN

Stack Overflow用户
提问于 2009-03-27 12:13:35
回答 5查看 8.1K关注 0票数 35

服务器端javascript的使用很普遍吗?为什么要使用它,而不是任何其他服务器端脚本?有没有特定的用例让它比其他服务器端语言更好?

另外,我对如何开始使用它感到困惑,我在freeBSD上,我需要安装什么才能运行服务器端javascript?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-27 12:16:26

它是这样的:

服务器很贵,但用户会在浏览器中免费为您提供处理时间。因此,与任何大到需要运行多台服务器的站点上的客户端代码相比,服务器端代码的成本相对较高。但是,有些事情是不能留给客户端的,比如数据验证和检索。您希望在客户端执行这些操作,因为这意味着用户的响应时间更快,您的服务器基础设施更少,但安全性和可访问性方面的考虑意味着需要服务器端代码。

通常发生的情况是你两个都做。您编写服务器端逻辑是因为您必须这样做,但您也可以用javascript编写相同的逻辑,希望为用户提供更快的响应,并在某些情况下为您的服务器节省一些额外的工作。这对验证代码特别有效;浏览器中失败的验证检查可以将整个http请求/响应对保存在服务器上。

既然我们都是(大部分)程序员,我们应该立即发现新的问题。不仅有开发两套相同逻辑所涉及的额外工作,而且还涉及维护它的工作,平台导致的不可避免的错误不能很好地匹配,以及随着实现随着时间的推移而引入的错误。

进入服务器端javascript。其思想是您只需编写一次代码,即可在服务器和客户端上运行相同的代码。这似乎解决了大部分问题:您可以一次完成服务器和客户端逻辑的全套工作,没有漂移,也没有重复维护。当您的开发人员只需要了解一种用于服务器和客户端工作的语言时,这也是很好的。

不幸的是,在现实世界中,它的效果并不是那么好。问题有四个方面:

  1. 页面的服务器视图与页面的客户端视图仍然有很大的不同。服务器需要能够做一些事情,比如直接与数据库对话,这是不应该通过浏览器完成的。浏览器需要做一些事情,比如操作与服务器不匹配的DOM。
  2. 你不能控制客户端的javascript引擎,这意味着你的服务器代码和客户端代码之间仍然存在重要的语言差异。
  3. 数据库通常比web服务器更大的瓶颈,所以节省和性能的好处最终少于expected.
  4. While几乎每个人都知道一点javascript,并不是很多开发人员真正了解和理解javascript。

这些并不是完全无懈可击的技术问题:将服务器支持的语言限制为大多数浏览器都能很好地支持的javascript子集,提供了解这个子集和服务器端扩展的IDE,制定一些关于页面结构的规则以最小化DOM问题,并提供一些样板javascript以包含在客户机上以使平台更易于使用。结果是像Aptana Studio/Jaxer,或者最近的Node.js,这可能是非常好的。

但并不完美。在我看来,有太多的陷阱和小的兼容性问题,让它真正发光。最终,与开发人员的时间相比,额外的服务器仍然很便宜,而且大多数程序员能够使用javascript之外的其他工具来提高工作效率。

我真正想看到的是部分服务器端javascript。当请求一个页面或提交一个表单时,服务器平台确实会请求javascript的验证,可能是作为web服务器的一个插件,它完全独立于其他部分,但响应是使用您选择的平台构建的。

票数 53
EN

Stack Overflow用户

发布于 2009-03-27 12:16:01

我认为服务器端Javascript的一个很酷的用法是用于数据验证,但并不经常使用。使用它,您可以编写一个javascript文件来验证表单,在客户端检查它,然后在服务器端再次检查它,因为我们不应该信任客户端的任何东西。它可以让你的验证规则保持干爽。非常方便。

另请参阅:

票数 7
EN

Stack Overflow用户

发布于 2009-03-27 12:17:59

Javascript只是一种语言。因为它只是一种语言,你可以随心所欲地使用它…在您的浏览器中,在服务器上,嵌入到其他应用程序、独立应用程序等中。

也就是说,我不知道“服务器端Javascript”有很多新的开发。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/691307

复制
相关文章
服务器端Javascript
    话说100年以后,A软件工程师在Google搜索“Web开发语言”,突然出现Java,C#,PHP,Ruby,A是个好学的软件工程师。通过Google了解到,100前人类太伟大了,居然发明了这么复杂的编程语言。O(∩_∩)O哈哈~。现在的软件工程师不都是用HTMLX(X代表数字)+CSS X +Javascript+Ajax+JQuery吗?我们服务器端也是用Javascript啊,当然有时也用C,B好像是Apple的粉丝,它在服务器端用Javascript+Object-C哦!      其实
八哥
2018/01/18
2.1K0
服务器端Javascript
javascript跨域无需修改服务器端
由于img标签可以跨域,因此在onload和onerror事件中可以请求跨域,只能get请求,无法访问服务器的响应文本,只能用于单向通信。
战神伽罗
2019/07/24
1.2K0
JavaScript学习之路-为什么要学习JavaScript语法
为什么要学习JavaScript语法,没有理由,因为工作需要,也为了成为全栈,那现在还是好好努力学习吧!
达达前端
2019/07/03
4260
JavaScript学习之路-为什么要学习JavaScript语法
为什么go语言适合开发网游服务器端
从网游的角度看: 要成功的运营一款网游,很大程度上依赖于玩家自发形成的社区。只有玩家自发形成一个稳定的生态系统,游戏才能持续下去,避免鬼城的出现。而这就需要多次大量导入用户,在同时在线用户量达到某个临界点的时候,才有可能完成。因此,多人同时在线十分有必要。 再来看网游的常见玩法,除了排行榜这类统计和数据汇总的功能外,基本没有需要大量CPU时间的应用。以前的项目里,即时战斗产生的各种伤害计算对CPU的消耗也不大。玩家要完成一次操作,需要通过客户端-服务器端-客户端这样一个来回,为了获得高响应速度,满足玩家体验
李海彬
2018/03/21
1.6K0
为什么go语言适合开发网游服务器端
前段时间在golang-China读到这个贴:有木人用(或打算)golang做游戏服务器端? 个人觉得golang十分适合进行网游服务器端开发,写下这篇文章总结一下。 从网游的角度看: 要成功的运营
李海彬
2018/03/26
3K0
为什么JavaScript开发如此疯狂
Web开发中其他一切对你而言都是小菜一碟,但当你深入探究JavaScript的时候,不免有一种“众人皆醒你独醉”的悲壮——好像其他人都知道你不知道的一些大的基础的知识内容,并且这些内容可以帮助你理解所有知识。
哲洛不闹
2018/09/18
6530
为什么JavaScript开发如此疯狂
为什么 Javascript 经常被黑?
前言 这个问题是知乎上有人邀我回答的,感觉挺有意思的,所以发出来大家讨论下 1. 语言自身问题 Javascript 之父在花 10 天设计出来的,再牛逼的人,10 天设计出来的肯定会有很多设计不合理的东西,哪些不合理的东西,可以去看《JavaScript语言精粹》,导致这本语言一直是最具争论的一门语言。 但是背负着这么大的舆论,那么多很烂的特性,还要兼容各种浏览器,js 还能发展得这么好,web前端,移动,服务端,桌面端,甚至游戏,物联网,机器学习等,可见那些好的特性还是非常好的,具体可以看我的这篇文
桃翁
2018/06/27
1.3K0
JavaScript 为什么要有 Symbol 类型
Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对象属性时。 但是,它们能为我们做些字符串不能做的事情呢在深入探讨 Symbol 之前,让我们先看看一些 JavaScript 特性,许多开发人员可能不知道这些特性。 背景 js中的数据类型总体来说分为两种,他们分别是:值类型 和 引用类型 值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined 引用类型(类):函数,对象,数组等 值类型理
前端小智@大迁世界
2019/04/18
6780
JavaScript 为什么要有 Symbol 类型
为什么 CSS 动画比 JavaScript 高效?
讲到动画,当然是非常有意思的啦,你可以往上滑一下,看看上面的封面图,是不是相当的炫酷,以为我是代码写出来的吗?
小丞同学
2022/11/16
6910
为什么 CSS 动画比 JavaScript 高效?
为什么 JavaScript 中 0.1 + 0.2 !== 0.3 ?
经常有同学面对这样一个面试题:JavaScript 中 0.1 + 0.2 === 0.3 吗?答案是 false。很多同学第一次面对这种问题,完全不知道什么问题,然后试了一下 0.3 + 0.4 === 0.7 竟然是正确的,这到底是怎么回事呢?
Meteors
2021/12/08
5140
为什么我喜欢 JavaScript 可选链[每日前端夜话0xD7]
截至2019年8月,一项新提案可选链(optional chaining)进入了第3阶段,将是一个很好的改进。可选的链接更改了从深层对象结构访问属性的方式。
疯狂的技术宅
2019/10/24
7270
为什么 CSS 动画比 JavaScript 高效?
讲到动画,当然是非常有意思的啦,你可以往上滑一下,看看上面的封面图,是不是相当的炫酷,以为我是代码写出来的吗?
小丞同学
2021/08/31
9390
为什么 CSS 动画比 JavaScript 高效?
为什么使用 JavaScript 开发物联网?
嵌入式设备与JavaScript看似是来自两个不同世界的两个物种,八竿子都打不着。但是随着JavaScript 开疆扩土,从浏览器逆袭登陆到服务端之后又与物联网有了交集。
Debian中国
2018/12/20
1.8K0
堡垒机访问服务器端口方法 为什么要使用堡垒机
堡垒机现在已经是各大公司企业的常备安全系统。在之前没有堡垒机出现的时候,每个公司的运维系统都是一个非常复杂的工程。运维账号无法得到有效的监控和管理运维人员的操作无法及时监控,一旦出现了故障和问题,又无法落实到个人责任,给公司带来了许多的麻烦和困境。堡垒机作为跳板机的下一代,为企业解决了很多现实问题。下面来了解一下堡垒机访问服务器端口方法。
用户8715145
2021/12/09
5940
为什么 JavaScript 的 parseInt(0.0000005) 打印“5”?
最近开发项目时遇到一个奇怪的问题,parseInt(0.0000005) === 5。正常情况下输出0是正确的,为什么是5呢?我们一起来探讨一下这个问题。
winty
2023/10/08
1920
为什么 JavaScript 的 parseInt(0.0000005) 打印“5”?
为什么我坚持使用 JavaScript 函数声明
时光溯回到上世纪 90 年代晚期,在初次接触 JavaScript 时,老师教我们使用函数声明写下Hello World,它看上去是这样的······ function helloWorld() { return ‘Hello World!’; } 那时候,再没有比写出如下Hello World函数更酷的事儿了······ const helloWorld = () => 'Hello World!'; 这个函数表达式体现了 ES 2015 的最大亮点——箭头函数(Arrow function),精简
CSDN技术头条
2018/02/12
1.1K0
为什么我坚持使用 JavaScript 函数声明
[译] 为什么我用 JavaScript 来编写 CSS
三年来,我设计的 Web 应用程序都没有使用 .css 文件。作为替代,我用 JavaScript 编写了所有的 CSS。
ConardLi
2019/10/21
1.3K0
为什么我喜欢JavaScript的Optional Chaining[每日前端夜话0xB0]
JavaScript 的特性极大地改变了你的编码方式。从 ES2015 开始,对我代码影响最多的功能是解构、箭头函数、类和模块系统。
疯狂的技术宅
2019/08/27
1.2K0
为什么我喜欢JavaScript的Optional Chaining[每日前端夜话0xB0]
JavaScript基础:typeof null 为什么返回object
null本身实际上是基本类型,但是Javascript在存储的时候,会将不同的对象在底层存储都使用二进制的方式存储,在Javascript中如果二进制的前三位都为0的话就会被判断为object,null的二进制存储表示形式为全是0,自然前三位也是0,因此执行typeof时会返回”object”。
IT工作者
2022/01/26
3K0
为什么应该学javascript-浏览器
打开一个链接是一个很神奇的操作。我们接触到的软件有各种各样的形式。windows的安装包,iOS的app,安卓的app。但是我们最容易获得的软件是什么?windows应用当年我们需要去买软盘,光盘,或者从网上下载。手机app都需要我们先搜索到然后安装。获得这些应用都有一些成本。什么应用是我们最容易获取的呢。打开一个链接见到的网页。
于欣轩
2018/05/28
4231

相似问题

为什么服务器端Javascript不受欢迎?

30

为什么我要使用服务器端JavaScript?

121

为什么服务器端Javascript没有被广泛使用?

62

服务器端javascript /javascript通信

23

Javascript服务器端?

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文