gpt4 book ai didi

javascript - 如何防止由于不需要的递归而导致 IE 中的堆栈溢出

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:50 24 4
gpt4 key购买 nike

我一直在寻找一段时间,但无济于事。

在长表单中,我使用 javascript 进行检查,并使用属性“onchange”来进行检查。最近,我发现在IE上,应该使用“onpropertychange”属性,因为“onchange”事件没有被正确处理。

所以现在,我有这样的字段(并非所有字段都有 onKeyDown 或 onKeyUp 事件):

<textarea name="shdescription" rows="1" cols="75" onKeyDown="textCounter(this,'shdesccounter',65)"
onKeyUp="textCounter(this,'shdesccounter',65)" onchange="checkFormValue();" onpropertychange="checkFormValue();"></textarea>

现在每次我在字段上进行更改时,都需要几秒钟才能注册更改并进行检查。 (以及在我描述的文本区域上进行更改时更多。)

启动 IE F12 调试器后,我注意到很多 “SCRIPT28:堆栈空间不足”“SCRIPT2343:行堆栈溢出:” 被启动。在逐步执行脚本之后,我注意到脚本在对 PHP 脚本的两个不同的 ajax 调用之间循环。我不确定我们是否真的可以谈论递归,因为我没有看到这两个函数之间有任何直接联系。

所以我只能想到两种可能性:要么在字段中触发更改再次触发 ajax 调用,要么我的 ajax 调用有问题。

我应该去哪里解决我的问题?如果需要更多信息,请随时询问。

PS:我对 FF/Chrome/Opera 没有任何此类问题。

最佳答案

我敢打赌,其中一个函数 checkFormValue()textCounter() 正在以一种导致另一个事件触发的方式修改文本框无限循环。

尝试使用 onBlur。

关于javascript - 如何防止由于不需要的递归而导致 IE 中的堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com