如何无延迟地处理 100 多个移动矩形
How to deal with over 100 moving rectangles without lag
>我有这个小提琴:https://jsfiddle.net/reko91/e6uwqnof/2/
按下按钮时,它会创建 50 个矩形,这些矩形都向下移动到屏幕底部。
for(i=0;i<50;i++){
enemyArray.push(new enemy(normalBullet.x+i*5, normalBullet.y, normalBullet.speed, 1, 10, "#F00"));
}
第一次点击时工作正常,但是一旦我开始添加更多,它真的开始滞后。有没有处理数百个移动元素的最佳实践方法?还是HTML和Javascript不是处理如此大量的移动数据的最佳语言?
您的主要问题在于update
函数:
function update() {
// enemy.update();
//if (keystate[SpaceBar]) {
$('#newEnemy').click(function() {
createNewEnemy()
})
//...
}
可能是一个错误,但每次调用update
时您都会附加事件,即每秒 60 次!(直到它不能再这样做了,也就是说。这意味着每次按下按钮时,都会在画布中生成大量元素。
将事件侦听器添加移到站点外update
,您就是黄金。
你在帧循环中分配按钮按下,所以当你按下它时,它实际上是在调用按钮按下,无论循环运行了多少次。
将此代码移到外面:
$('#newEnemy').click(function() {
console.log("createEnemy");
createNewEnemy()
});
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 以下数据布局在设置显示上向上移动:无
- 无滚动条的移动设备全屏广告图像
- HTML 范围输入在尝试移动时无响应
- 网站上的方向更改事件(无移动应用程序)
- 如何无延迟地处理 100 多个移动矩形
- (无域)>扩展名::name从何而来
- 移动导航栏(无jquery)
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- jquery移动静态页脚,无切换
- Cordova移动到移动通信无服务器
- 我可以以一种平台中立的方式查询无url栏移动Safari窗口高度吗?
- JavaScript-本机检测移动供应商(无jquery)
- 如何使用移动浏览器进行无间隙音频循环
- 无论点击什么链接,Javascript都会重定向到移动主页