为了账号安全,请及时绑定邮箱和手机立即绑定

连续更新 html 而不出现 javascript 中的最大调用堆栈大小错误的最佳方法是什么

连续更新 html 而不出现 javascript 中的最大调用堆栈大小错误的最佳方法是什么

慕盖茨4494581 2023-09-11 15:18:00
我正在为朋友的网站编写一个简单的基于文本的游戏。我需要能够更改 HTML 元素或更新 HTML 页面,而不会遇到超出最大调用堆栈错误。我目前正在使用document.getElementById('console').innerHTML += "whatever"我需要一个没有错误的方法这是加载的第一个函数。然后它会转到prompt_input();功能。function title_screen(){    document.getElementById('console').innerHTML += '...'    quests.push('Getting Started');    prompt_input();}这就是提示输入功能。它在运行适当的函数时接受用户输入。除了 restart() 之外的每个函数;函数返回到prompt_input();以获得下一轮玩家的输入。
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

function prompt_input(){

  var action = document.getElementById("myInput").value;

  if (action == ""){

    prompt_input();

  }

  ...

这里有一个无限循环。


此条件之前的任何内容都不会使下一次调用时的条件发生变化:如果输入value是"",那么它仍然是,并且您的代码将继续执行,直到达到最大调用堆栈。


我不太确定您期望这个递归调用做什么,但快速浏览一下,我想说您只需要在这种情况发生时提前退出:


function prompt_input(){

  var action = document.getElementById("myInput").value;

  if (action == ""){

    return; // early exit

  }

  ...


查看完整回答
反对 回复 2023-09-11
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信