Classic ASP / JScript是否存在性能,可伸缩性或可靠性缺点?

时间:2012-01-06 17:02:43

标签: asp-classic jscript

在JScript中编写经典ASP代码有很多内容:更人道的语法,理智的对象系统,程序员的熟悉程度以及普遍缺乏烦恼。如果您注意到一些怪癖,您甚至可以在现有的经典ASP应用程序中混合使用旧的VBScript和新的JScript代码。

我一直在想,必须有一些理由不再使用它。这只是动力和缺乏文件吗?或者,从性能,可伸缩性或可靠性的角度出发,是否有充分理由坚持使用VBScript?

N.B。:我只对比较VBScript和JScript感兴趣。我知道经典ASP一般都是一堆,但我别无选择。

3 个答案:

答案 0 :(得分:3)

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

JScript是微软的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
  • Microsoft,Google,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可以做一两个非常罕见的例外。在这些RARE情况下,您可以使用脚本引擎ActiveXObject调用VBScript。
  • JScript具有远远优越/现代的try {} catch {},甚至VB.NET采用,而VBScript只有ON ERROR

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

服务器端的JScript不应该存在可维护性问题(与VBScript相反),因为任何体面的网络程序员都需要了解JavaScript,而Microsoft已经接受了这一点(参见Windows 8,请参阅VS2010,包括模板中的jQuery等)。还有更多)。

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

请!使用JScript。推广JScript。让我们前进,让VBScript黯然失色。

答案 1 :(得分:2)

让我在答案的顶部找到底线。使用VBScript服务器端。有两个关键原因。

  1. 有关ASP编码的所有样本/示例/讨论的99.99%在VBScript中提供。
  2. VBScript旨在与OLE自动化接口一起使用。
  3. 使用JScript服务器端没有真正的可伸缩性或性能问题。

    可靠性需要进一步的认证。 JScript引擎与VBScript引擎一样可靠。然而,系统的可靠性取决于开发人员。

    精通VBScript和JScript我以为我会在服务器上给JScript(因为两个Javascript是我的首选语言。)我发现我很容易混淆在运行服务器端的代码之间以及运行客户端的代码,它看起来都一样。因此,不要低估服务器端代码与客户端完全不同的语法。

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

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

    您还需要考虑跟随您的ASP维护开发人员/承包商。在现代世界中使用ASP是非常糟糕的,但是你并没有以非常非标准的方式在ASP中开展任何工作。在5年的时间里,仍然会有老工作人员在那里努力赚钱,调整很旧但工作的ASP代码,但他们会期望它已经用VBScript编写,否则他们就会离开。

答案 2 :(得分:1)

没有多少人使用jScript作为经典ASP,大多数人更喜欢VBScript。虽然我不知道任何性能差异,但通常会更容易找到代码示例,使用VBScript进行“完成”和其他形式的支持的人。