gpt4 book ai didi

使用 setTimeout() 允许出现 "loading"弹出窗口时延迟长度的 Javascript 经验法则

转载 作者:行者123 更新时间:2023-11-28 01:54:04 26 4
gpt4 key购买 nike

我在 javascript 中使用 setTimeout() 函数来允许在解析一些 xml 数据时显示一个显示“正在加载”的弹出窗口。我发现,在足够小的延迟值(低于 10 毫秒)下,在浏览器卡住一段时间以执行实际工作之前,它没有时间显示它。50 毫秒,它有足够的时间,但我不知道这对于其他系统来说效果如何。是否有某种“经验法则”可以规定确保视觉更新而不会造成不必要的延迟所需的延迟量?

显然,这取决于运行代码的机器等,但我只是想知道是否有任何东西可以比我的猜测提供更多的见解。

基本代码结构为:

showLoadPopup();

var t = setTimeout(function()
{
parseXML(); // real work
hideLoadPopup();
}, delayTime);

谢谢!

更新:事实证明,解析 XML 并不是 Web Workers 通常可以做的事情,因为他们无法访问 DOM 或文档等。因此,为了实现这一目标,我实际上在 Stack Overflow 上找到了一篇关于解析 XML 的不同文章在 Web Worker 内部。 Check out the page here

通过将 XML 对象序列化为字符串,我可以通过消息发布将其传递到 Web Worker,然后使用我在上述链接中找到的纯 JavaScript XML 解析器,将其转回 XML Web Worker 中的对象,执行所需的解析,然后将所需的文本作为字符串传回,而不会导致浏览器挂起。

最佳答案

理想情况下,您不必在客户端解析实际上导致浏览器挂起的内容。我会考虑将其移动到一个ajax请求,该请求会提取部分已解析的xml(子节点作为JSON),或者考虑使用Web Workers或客户端异步选项。

关于使用 setTimeout() 允许出现 "loading"弹出窗口时延迟长度的 Javascript 经验法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369624/

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