VS 2017 中本地主机上的 .NET Core MVC 项目的 Javascript 性能缓慢

Blu*_*ght 5 javascript localhost iis-express asp.net-core visual-studio-2017

介绍:

我正在开发一款基于.NET Core MVC 的策略游戏。游戏的主要部分是用 JavaScript 编写的,因此在客户端执行。

计算最密集的部分是在画布上不断重绘“游戏地图”,尤其是当您在地图中导航时。每次击键(W、A、S、D)时,它必须检查数组中的许多对象(建筑物、瓷砖等)。

代码中的小摘录,这样你就明白了:

render();
requestAnimFrame(main);

function render() {
    renderMapBuildings() 
}

function renderMapBuildings(list) {
    //var count = 0;
    for(var i=0; i<list.length; i++) {
        if ((list[i].pos[1] + camera.pos[1]) < CANVAS_HEIGHT && (list[i].pos[0] + camera.pos[0]) < CANVAS_WIDTH && (list[i].pos[1] + camera.pos[1]) > -60 && (list[i].pos[0] + camera.pos[0]) > -60) {               
            if (list[i].id == Building.Current.id && list[i].type == 1)
                ctx.shadowBlur = 20;
            //count++;
            renderEntity(list[i]);  
            ctx.shadowBlur = 0;
        }
    }
    //console.log("mapbuildings_new length: " + count);
}

function renderEntity(entity) {
    ctx.save();
    ctx.translate(entity.pos[0] + camera.pos[0], entity.pos[1] + camera.pos[1]);
    entity.sprite.render(ctx);
    ctx.restore();
}
Run Code Online (Sandbox Code Playgroud)

问题:

问题是,当我在 IIS Express 上使用 Visual Studio 2017 在本地主机上运行游戏时,javascript 部分变得非常慢。上面的代码执行速度要慢得多并且开始结巴。发展成这样是很烦人的。

奇怪的是,它在网上完美运行。密集的 JavaScript 代码执行速度非常快。它发布在带有 ReverseProxy 的 Linux VPS 上。

您是否知道为什么本地主机开发和已发布的应用程序之间存在如此巨大的差异?

一些附加信息:

  • 服务器端代码不是问题,在“滞后”期间也没有进行 SQL 调用。
  • 我已经创建了新的用户配置文件并重新安装了 VS 2017
  • 我尝试了两台不同的计算机(均为 Windows 10)。
  • 我禁用了 Javascript 调试。