在JScript中编写经典ASP代码有很多内容:更人道的语法,理智的对象系统,程序员的熟悉程度以及普遍缺乏烦恼。如果您注意到一些怪癖,您甚至可以在现有的经典ASP应用程序中混合使用旧的VBScript和新的JScript代码。
我一直在想,必须有一些理由不再使用它。这只是动力和缺乏文件吗?或者,从性能,可伸缩性或可靠性的角度出发,是否有充分理由坚持使用VBScript?
N.B。:我只对比较VBScript和JScript感兴趣。我知道经典ASP一般都是一堆,但我别无选择。
答案 0 :(得分:3)
我赞成JScript。几年前我做了一些研究,发现使用其中一个没有真正的性能影响。 确实,许多示例和文档(所有这些都将是旧版本)将使用VBScript,但如果您熟悉JScript,这些示例和文档很容易翻译。
JScript是微软的ECMAScript风格,或“JavaScript”。
http://javascript.crockford.com/prototypal.html
http://ejohn.org/blog/simple-javascript-inheritance/
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服务器端。有两个关键原因。
使用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进行“完成”和其他形式的支持的人。