首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kaboom导致页面崩溃浏览器请求拦截javascript

kaboom导致页面崩溃浏览器请求拦截javascript
EN

Stack Overflow用户
提问于 2021-09-13 16:46:53
回答 1查看 34关注 0票数 0

我第一次尝试使用kaboom.js创建一些移动的矩形,但过了一段时间浏览器会说javascript正在减慢一切并阻止它。我猜这是因为当一个对象存在于屏幕上时,它不会被删除,但我在另一个kaboom脚本中看不到这一点

output

代码

代码语言:javascript
复制
import kaboom from "https://unpkg.com/kaboom@next/dist/kaboom.mjs";

let w, h, direction;
let speed = 20;
let spawnSpeed = 3;
let mode = 'x';

kaboom();

function addRect() {

  switch (mode) {
    case 'x':
      w = 40;
      h = rand(15, 25);
      mode = 'y';
      direction = RIGHT;
      break
    case 'y':
      w = rand(15, 25);
      h = 40;
      mode = 'x';
      direction = DOWN;
      break;
  }

  add([
    rect(w, h),
    area(),
    outline(4),
    pos(
      rand(0, width()-width()/2), 
      rand(0, height()-height()/2)
    ),
    origin("botleft"),
    color(rand(0,255), rand(0,255), rand(0,255)),
    move(direction, speed),
  ]);
  wait(spawnSpeed, addRect);

  speed += 10;
  if (spawnSpeed >= 1) {
    spawnSpeed -= 0.3;
  };

  speed += 0.3;
}

addRect();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-14 10:25:57

当您看到整个系统变慢时,这意味着肯定存在内存泄漏或调用自身的递归函数(至少在javascript中)。所有东西冻结之前所需的时间取决于可用的RAM大小。

正如你可以从截图中看到的,kaboom已经消耗了6 6GB的内存(这会导致整个系统的速度变慢),这是因为你从来不会删除你添加的矩形,而且,从你在代码(spawnSpeed)中编写的代码中,你也会越来越快地做到这一点。

另请参阅文档,避免复制和粘贴其他脚本:https://kaboomjs.com/doc#destroy

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

https://stackoverflow.com/questions/69166386

复制
相关文章

相似问题

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