首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在Chakra上运行ASP Classic吗?

我可以在Chakra上运行ASP Classic吗?
EN

Stack Overflow用户
提问于 2012-03-16 11:02:39
回答 2查看 598关注 0票数 1

Chakra是微软打包到IE9中的更新后的Javascript引擎的代号。

可以使用JScript作为ASP页面的开发语言。这通常在Windows内置的JScript引擎上运行,自NT4选项包(c.1996)以来,所有版本的Windows中都存在该引擎。

问题是,有可能使用运行在Chakra引擎上的Javascript,用于ASP目的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-16 11:09:31

显然不是。

我尝试使用这个简单的示例脚本:

代码语言:javascript
复制
<%@ language="Javascript" %>

<script language="Javascript" runat="server" src='json2.js'></script>

<script language="Javascript" runat="server">

(function() {

    scriptEngineInfo = function () {
        var s = {
            engine : ScriptEngine(),
            version: {
                major: ScriptEngineMajorVersion(),
                minor:ScriptEngineMinorVersion()
            },
            build: ScriptEngineBuildVersion()
        };
        return s;
    }

}());

var x = scriptEngineInfo();
x.Timestamp = (new Date()).valueOf();

Response.Write (JSON.stringify(x));

</script>

当"Javascript“是语言的名称时,如上所述,我得到这样的结果:

代码语言:javascript
复制
{
  "engine": "JScript",
  "version": {
    "major": 5,
    "minor": 8
  },
  "build": 16982,
  "Timestamp": 1331866901948
}

当我按照this answer中的建议操作并将Chakra配置为命名脚本引擎时,然后将上面脚本中出现的三个"Javascript“替换为"Chakra",然后运行”页面“,我得到了正确的预期结果:

代码语言:javascript
复制
{
  "engine": "JScript",
  "version": {
    "major": 9,
    "minor": 0
  },
  "build": 16441,
  "Timestamp": 1331867213695
}

9的主要版本显示我正在使用Chakra。

但是如果我重新请求相同的脚本,它会失败,并返回一个500错误,如下所示:

无法从释放的脚本执行代码

如果我再试一次,它会给我

外部对象中发生可捕获错误(C0000005)。脚本无法继续运行。

如果我再试一次,我会得到:

ReuseEngine在“

::ScriptEngine ()”中的“IActiveScript::GetScriptState()”中引发了异常“”C0000005“”。“”

对于这个脚本,这在我的机器上是可重复的。

由此我得出结论,Chakra不是为ASP环境设计的。

票数 3
EN

Stack Overflow用户

发布于 2012-07-27 03:25:13

活动脚本体系结构允许脚本主机(即ASP.dll)缓存由脚本引擎传递的经过某种方式解析的中间代码。这被ASP大量使用,并使其变得相当快。我们正在运行巨大的脚本( 1000行代码),第一次调用在实际执行代码之前需要几秒钟,而后续调用在1/10秒后就已经执行了代码。

很可能是由于新的JIT编译器,脚本接口没有得到很好的服务,ASP被搞糊涂了。给定的WSH测试用例不存在此问题,因为WSH不使用缓存,因为它不组织要执行的代码。

如果禁用ASP缓存,看看Chakra 9引擎是否正常工作将是一件很有趣的事情--我现在不能测试它,我假设对于像我们这样的大脚本来说,它不会带来预期的效果。但对于较小的脚本来说,这是值得一试的。

在安装IE9时,安装程序还部署了一个旧的JavaScript 5.8引擎(内部版本16982),并且它安装在IE8附带的引擎(17562)之上。我不知道这种“降级”的意义,但看起来最好不要在运行Classic ASP的服务器上安装IE9。

也许IE10的Chakra会提供更好的ActiveScripting架构支持。希望如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9731246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档