javascript - JS脚本的执行速度真的很慢......需要快一吨
问题描述
我正在使用 HTML 画布作为我的屏幕,使用 javascript 创建和操作系统。到目前为止,这是我的代码:
var Canvas = document.createElement('Canvas');
Canvas.width = window.innerWidth - 20;
Canvas.height = window.innerHeight - 20;
Canvas.border = '0px'
document.body.appendChild(Canvas);
var Ctx = Canvas.getContext('2d');
var PixelIndex = 'Not definded yet. D:'
var Render = 0;
function ClearCanvas() {
Ctx.fillStyle = 'black';
Ctx.fillRect(0, 0, Canvas.width, Canvas.height);
}
function RenderCycle() {
ClearCanvas();
GeneratePixelIndex();
Render++;
setPixel(Render, 100, 'red');
RenderPixels(); //-------------------------> Has to be the last thing in the function...
}
function GeneratePixelIndex() {
PixelIndex = new Array();
for (var i = 0; i < Canvas.width; i++) {
PixelIndex.push([])
for (var j = 0; j < Canvas.height; j++) {
PixelIndex[i].push('rgb(0, 0, 0)');
}
}
}
function setPixel(x, y, value) {
PixelIndex[x][y] = value;
}
function RenderPixels() {
for (var x = 0; x < Canvas.width; x++) {
for (var y = 0; y < Canvas.height; y++) {
Ctx.fillStyle = PixelIndex[x][y]
Ctx.fillRect(x, y, 1, 1);
}
}
requestAnimationFrame(RenderCycle);
}
document.onload = RenderCycle();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta version="1.0">
<meta author="Evan Bair">
<title>Maroon JS</title>
</head>
<body>
<script src = './app.js'></script>
</body>
</html>
假设单个红色像素飞过屏幕;它移动得非常慢。我可以加快速度,还是编辑我的代码以减少延迟?我认为RenderPixels()
我的代码中的函数是罪魁祸首。谢谢。
解决方案
推荐阅读
- angular - 如何确保(输入)类属性不是未定义的?
- python - 批量大小 = 1 和可变时间步长误差的 LSTM
- appium - 为什么appium没有在iOS上显示带有反应本机应用程序的子视图
- python - 将二进制文件从大端转换为小端
- c - 为什么输出 *(arr + k) != *(&arr + k) 尽管两者都引用了相同的地址
- swiftui - 实例成员不能用于 SwiftUI Preview 中的类型
- python - Chart.js 在烧瓶蓝图上不显示图表
- angular - Ionic 5 Angular Tabs 静态显示
- javascript - 访问`jest.mock`中的共享变量的正确方法是什么?
- python - 如何在 ThreadPoolExecutor 中为子线程设置超时?