虽然有大量的编程语言,但只有少数编程语言可以被浏览器解释。 <script>
标签有一个类型属性,可以设置为 javascript 或 ecmascript。 php 可以嵌入到带有 <php [code] ?>
的 html 中标签。为什么没有类似的机制来嵌入 python/haskell/c/etc?它们缺少浏览器环境(例如 javascript 的“文档”对象和 php 的 superglobals),但可以将类似的环境构建为这些语言的模块。许多编程语言都有 cgi 模块,因此有先例。
大多数浏览器解释一种编程语言: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)将显示逻辑与其他逻辑分开。