gpt4 book ai didi

javascript - 如何处理 IE select onchange 和 ajax 请求

转载 作者:行者123 更新时间:2023-11-30 18:57:18 25 4
gpt4 key购买 nike

假设我将一个 javascript“更改”事件处理程序附加到一个选择元素,它会分派(dispatch)一个 ajax 请求以从服务器加载一些内容。

这在 Firefox 中很好。但是,在 IE 中,每次使用鼠标滚轮快速滚动组合框选项时都会触发 change 事件。这很麻烦,因为它会向服务器发送大量请求,并且不能保证请求以正确的顺序返回,因此客户端状态可能会变得不一致。

现在,我们之前的解决方法是向更改处理程序引入超时,这样它会在实际分派(dispatch)请求之前等待几分之一秒。如果在那短时间内发生另一个更改事件,我们将取消之前的超时并开始一个新的超时,从而防止发送多个请求。

现在,虽然这似乎可行,但有点老套,我想知道是否有更好的方法。有没有我们可以 Hook 的不同事件,以便在使用鼠标滚动时它不会重复触发?或者我们应该完全禁用鼠标滚轮(onmousewheel="return false;")? Firefox 似乎不支持通过组合框滚动鼠标,但我不确定禁用鼠标滚动是否是严重的可用性禁忌或其他问题。

谁能推荐其他解决方案?

最佳答案

当然,这有点老套,但这是我找到的最佳解决方案。我使用该模式解决了几个不同的问题,包括服务器请求、自动保存用户文本条目、自动完成文本条目、拼写检查等。这是确定用户交互暂停的好方法。将逻辑抽象为一个“onPause”函数,它会显得不那么古怪 :D

关于javascript - 如何处理 IE select onchange 和 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1547415/

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