首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript未立即更新网页/显示缓慢

Javascript未立即更新网页/显示缓慢
EN

Stack Overflow用户
提问于 2016-01-12 00:01:09
回答 1查看 27关注 0票数 0

在网页上,我有一系列用作按钮的图像。当用户单击图像时,我通过javascript添加边框(向用户显示他们单击了图像),然后执行一些密集的客户端处理(向网格/表添加过滤器,并更新表)。

即使我在第一步中添加了一个边框到我的图像中,在应用过滤器/表更新之前,它在视觉上不会发生变化,大约3-4秒后。它的行为就像是将边界更新放入队列中,并且直到PC空闲时才进行处理。因为一个相邻的'console.log‘命令会立即执行。

实际执行的代码是:

代码语言:javascript
复制
  console.log('Button number 4 processing');
  // Add the border to the button
  document.getElementById("img_es").style.border = "2px solid black";   

最终结果是系统在最终用户看来运行缓慢。

在其他系统/语言中,我可以告诉PC清空消息队列,也就是processMessages,这会导致屏幕更新。在Javascript/HTML中有什么可比的吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-12 00:21:14

如果您执行了大量涉及DOM的操作,浏览器呈现引擎可能会被阻塞。

或者在timeout()的帮助下将长时间运行的操作的开始延迟一小段时间(比如50ms):

代码语言:javascript
复制
 setTimeout(function(){ /* expensive calculations here */); }, 50);

或者,您可以将图像包装在一个链接中,然后使用CSS伪类:active绘制边框,请参见description。这应该是异步工作的。

代码语言:javascript
复制
 a img {
    border: 0;
 }

 a:active img {
    border: 2px solid black;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34725909

复制
相关文章

相似问题

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