为什么浏览器不能解释更多编程语言?

see*_*ker 3 javascript php browser

虽然有大量的编程语言,但浏览器可以解释少量的编程语言.<script>tags有一个type属性,可以设置为javascript或ecmascript.php可以嵌入带有<php [code] ?>标记的html中.为什么没有类似的嵌入python/haskell/c/etc的机制?他们缺乏浏览器环境(例如javascript的'document'对象和php的超级全局),但类似的环境可以构建为这些语言中的模块.许多编程语言都有cgi模块,因此有一个先例.

Que*_*tin 6

大多数浏览器都解释一种编程语言:JavaScript.

Internet Explorer还支持(或支持)VBScript.有(或多年前)一个插件可以为IE添加对PerlScript的支持.

它们不支持更多,因为如果一个浏览器引入了支持,那么使用该语言编写代码的任何人都只能在一个浏览器上运行,而无法做任何他们在JavaScript中无法做到的事情.十年前,这对微软来说不是问题,因为他们在市场上占据主导地位,对企业内部网更是如此.今天,情况发生了变化.

PHP不是由浏览器解释的,在WWW的上下文中,它是在服务器上处理的.您可以在服务器上使用任何您喜欢的语言,包括Python,Haskell和C.最近我一直在使用Perl(通过Apache + FastCGI)和JavaScript(通过Node.js).

相当多的语言都允许您将代码直接嵌入到HTML文档中(例如Perl的Mason).然而,通常优选使用模板DSL(例如Template-Toolkit,Smarty或Handlebars)将显示逻辑与其他逻辑分离.

  • 是的,但至少我们不必假装一切都很棒。 (2认同)

Bor*_*ric 5

浏览器通过使用插件来解释更多语言.想到了Flash和Java.PHP不是浏览器解释的,它由服务器处理,服务器将纯HTML发送到浏览器.Javascript是一个例外,它在没有插件的情况下工作.