VS 2017中本地主机上.NET核心MVC项目的Javascript性能缓慢
简介:VS 2017中本地主机上.NET核心MVC项目的Javascript性能缓慢,javascript,asp.net-core,visual-studio-2017,localhost,iis-express,Javascript,Asp.net Core,Visual Studio 2017,Localhost,Iis Express,简介: 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
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();
}
我正在开发一个基于.NET核心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();
}
render();
请求帧(主);
函数render(){
renderMapBuildings()
}
函数renderMapBuildings(列表){
//var计数=0;
对于(vari=0;i-60&&(list[i].pos[0]+camera.pos[0])>-60{
if(list[i].id==Building.Current.id&&list[i].type==1)
ctx.shadowBlur=20;
//计数++;
呈现性(列表[i]);
ctx.shadowBlur=0;
}
}
//console.log(“mapu新长度:“+count”);
}
函数呈现性(实体){
ctx.save();
ctx.translate(entity.pos[0]+camera.pos[0],entity.pos[1]+camera.pos[1]);
entity.sprite.render(ctx);
ctx.restore();
}
问题:
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();
}
问题是,当我在IIS Express上使用Visual Studio 2017在localhost上运行游戏时,javascript部分变得非常慢。上面的代码执行速度慢得多,并且开始结巴。像这样发展很烦人
奇怪的是,它在网上运行得完美无缺。密集的Javascript代码执行速度非常快。它发布在带有ReverseProxy的Linux VPS上
您知道为什么Localhost开发和发布的应用程序之间存在如此巨大的差异吗
其他一些信息:
- 服务器端代码不是问题,在“延迟”期间也没有SQL调用
- 我已经创建了一个新的用户配置文件并重新安装了VS 2017
- 我试了两台不同的电脑(都是Windows 10)
- 我禁用了Javascript调试