3

用 JScript 编写经典的 ASP 代码有很多好处:更人性化的语法、健全的对象系统、程序员的熟悉度以及普遍没有烦恼。如果您注意到一些怪癖,您甚至可以在现有的经典 ASP 应用程序中混合旧的 VBScript 和新的 JScript 代码。

我一直在想,它没有被更多地使用一定是有原因的。仅仅是动力和缺乏文档吗?或者从性能、可扩展性或可靠性的角度来看,是否有充分的理由坚持使用 VBScript?

注意:我只对比较 VBScript 和 JScript 感兴趣。我知道Classic ASP一般是一堆,但我在这里别无选择。

4

3 回答 3

4

我投票赞成 JScript。几年前我做了一些研究,发现使用其中一种并没有真正的性能影响。确实,许多示例和文档(所有这些都将是旧的)将使用 VBScript,但如果您对 JScript 有一定程度的熟悉,这些内容很容易翻译。

JScript 是 Microsoft 的 ECMAScript 或“JavaScript”风格。

  • JavaScript 在 Windows、Linux 和 Mac(以及 iPhone、Android、Windows Phone 甚至 .NET 和 Java 通过编译器/解释器项目)上运行。VBScript 仅在 Windows 上运行,即便如此,我所知道的也只有两个主要的解释器:Classic ASP 和 Windows Scripting Host,两者都已弃用。
  • JavaScript 是一种开放标准,VBScript 是一种专有语言( http://en.wikipedia.org/wiki/ECMAScript
  • 95 年以后的每个 Windows 操作系统都默认包含 JavaScript
  • 微软、谷歌、Mozilla 等正在积极开发使 JavaScript 在其他环境(如浏览器)中运行得更快的方法。VBScript 没有这样的开发,这几乎是死胡同。
  • JavaScript 是一种支持 OOP(包括继承、多态和通过闭包的封装)的对象/原型语言。尝试在 VBScript 中执行任何操作。

http://javascript.crockford.com/prototypal.html

http://ejohn.org/blog/simple-javascript-inheritance/

http://w3mentor.com/learn/javascript-examples/object-oriented-javascript/example-of-encapsulation-using-javascript/

  • VBScript 和 JScript 都可以使用内置工具来解析 XML,但 JScript 以 JSON 胜出
  • WSH 中的 JScript 可以做任何 VBScript 可以做的事情,但只有一两个非常罕见的例外。在这些罕见的情况下,您可以使用脚本引擎 ActiveXObject 调用 VBScript。
  • JScript 具有甚至 VB.NET 都采用的更高级/现代的 try {} catch {},而 VBScript 只有 ON ERROR

VBScript 可能在某些 API 或接口方面优于 JScript,但这很容易解决。jQuery 对浏览器中糟糕的 DOM API 所做的事情相同,服务器端的 JScript 也可以这样做,因为它非常灵活。

服务器端的 JScript(相对于 VBScript)不应该存在可维护性问题,因为任何体面的 Web 程序员都需要了解 Microsoft 已经接受的 JavaScript(参见 Windows 8,参见 VS2010,包括模板中的 jQuery 等)更多的)。

我认为这更多地与观众和无知有关。微软喜欢迎合它的 VB 开发者。在我接触 C# 和 JavaScript 之前,我曾经是一名 VB 开发人员。

请!使用 JScript。推广 JScript。让我们继续前进,让 VBScript 尘埃落定。

于 2012-06-14T14:16:15.903 回答
2

让我把这个放在答案的顶部。使用 VBScript 服务器端。有两个关键原因。

  1. 99.99% 的关于 ASP 编码的示例/示例/讨论都以 VBScript 呈现。
  2. VBScript 旨在与 OLE 自动化接口一起使用。

使用 JScript 服务器端没有真正的可伸缩性或性能问题。

可靠性需要进一步的鉴定。JScript 引擎与 VBScript 引擎一样可靠。然而,系统的可靠性在很大程度上取决于开发人员。

精通 VBScript 和 JScript 之前我想我会在服务器上提供 JScript(因为这两种 Javascript 是我的首选语言。)我发现我很容易在要运行服务器端的代码和要运行的代码之间混淆运行客户端,一切看起来都一样。因此,不能低估使用与客户端完全不同的语法的服务器端代码。

避免使用 JScript 的真正杀手级原因是 VBScript 旨在与 COM/OLE 自动化对象一起使用,而 COM/OLE 自动化必须“硬性化”到 JScript 中。我一直在寻找试图向对象添加属性的代码,而实际上该对象ActiveXObject不接受创建 aribitary 属性。如果 VBScript(是的,我知道你没想到我会这么说)变得更加繁琐,那么代码也非常简洁,因为 JScript 不像 VBScript 那样理解默认属性的概念。

通常,服务器端代码意味着使用 ADODB,我发现在 JScript 中看起来有点讨厌。VBScript 是 ADODB 比 JScript 更自然的伙伴。

您还需要考虑紧随您之后的 ASP 维护开发人员/承包商。在现代世界中使用 ASP 工作已经够糟糕的了,但是以非常非标准的方式在 ASP 中工作对您的业务没有任何好处。在 5 年的时间里,仍然会有老开发人员通过调整非常旧但可以工作的 ASP 代码来赚钱,但他们会期望它是用 VBScript 编写的,否则他们就会走开。

于 2012-01-07T20:22:47.560 回答
1

没有多少人将 jScript 用于经典 ASP,大多数人更喜欢 VBScript。虽然我不知道任何性能差异,但通常更容易找到代码示例、“做过”的人以及使用 VBScript 的其他形式的支持。

于 2012-01-06T17:05:42.563 回答