在搜索在线代码编辑器时(出于兴趣,我注意到它们都是用JavaScript编写的。
为什么那些代码编辑器(如CodeMirror或Ace )都是用JavaScript编写的,而不是用PHP或JavaScript应用程序编写的呢?
发布于 2015-01-08 09:39:44
PHP和Java是处理服务器端的.JavaScript由web浏览器处理。如果您正在使用PHP进行实时处理,则需要一段JavaScript (例如AJAX POST)将整个代码块发送到服务器进行重新处理,等待返回,然后每次用户更改单个字符时将整个显示替换为新格式化的文本。
JavaScript可以直接在web浏览器中完成这一切,并利用用户PC的能力来完成任务。
使用JavaScript可以加快进程的速度,因为没有任何结束要一直来回传递,它降低了带宽的使用,因为没有任何东西被来回传递,而且出于同样的原因,它还减少了服务器的工作负载。
还有一种观点认为,它更可靠、更安全。如果您没有将任何内容传递回服务器,则无需担心正确地“转义”特殊字符,更不必担心服务器端代码被利用的不安全部分等等。
这也是一个很好的实践,不发送任何东西,并在您的服务器上,除非有一个很好的理由这样做。
虽然您可以在“代码编辑器”上设置一个按钮,将整个脚本块发送回服务器进行处理并返回格式化的返回,但由于上述原因,通常不会这样做。另外,“重新格式化所有”按钮不会增加太多的价值,因为您可以简单地重新格式化JavaScript中的所有内容。
发布于 2015-01-08 09:05:04
PHP或Java纯粹是服务器端的技术。除非用户点击链接,否则他们什么也做不了。当您想在网站显示时进行任何交互时,您需要Javascript,至少对于对PHP/JSP后端的AJAX调用是这样的。
当您想要一个应用程序,如一个代码编辑器,用户正在非常密切地交互,您希望尽可能多的它运行在用户机器上。这可以提高用户体验,因为它具有更好的响应能力,并且减少了服务器资源的压力。当你想要一个丰富的应用程序在一个网页浏览器,你可以使用插件,如Flash,Silverlight或Java小程序,用户可能已经或可能没有安装,最新和启用。或者你只需要使用Javascript --多亏了HTML5 --它变得几乎和插件解决方案一样强大。
发布于 2015-01-08 11:32:06
除了前面提到的事实,我想补充的是,在所有主要浏览器的核心都有一个强大的EcmaScript/JavaScript引擎,经过多年的网络进化,它得到了难以置信的改进。
因此,所有主要的浏览器都会使用这种语言,并且能够以最有效的方式在其中运行程序。在这个世界上,你为什么要用其他的东西来编写一个客户端程序来运行这些野兽中的一个呢?
即使浏览器只会说这种语言,也不像您被迫使用JavaScript来编写程序。多年来,还创建了几种其他语言,试图替换或“改进”JavaScript。您可以用这些语言之一编写程序,然后编译器将您的代码翻译成JavaScript,以便在浏览器中运行它,这最终是浏览器所理解的。
这些替代语言的例子是现在颓废的GWT,它将Java转换为JavaScript。其他更现代的方法,如CoffeeScript和最近的TypeScript。随着函数式编程的再度流行,我们已经看到了ClojureScript的出现,谷歌也不厌其烦地试图取代JavaScript,并为此创建了令人敬畏的Dart编程语言(甚至他们的一个名为达蒂姆的浏览器也有自己的本地引擎)。相信我,谷歌还没完没了的失败,正如我们所说的,他们已经在另一个叫做AtScript的项目上工作了。最后,感谢埃斯兰的努力,您甚至可以从C/C++移植您的程序。所有这些语言最终都是为在浏览器中运行代码而对JavaScript进行的。
因此,正如您所看到的,这并不是说您被迫在JavaScript中“编写”客户端程序,而是被迫在JavaScript中“运行”它们,因为这是大多数浏览器所理解的。
https://softwareengineering.stackexchange.com/questions/269402
复制相似问题