找回密码
 立即注册

QQ登录

只需一步,快速开始

sunjava

金牌服务用户

8

主题

18

帖子

115

积分

金牌服务用户

积分
115
sunjava
金牌服务用户   /  发表于:2017-9-26 16:37  /   查看:3827  /  回复:5
目前遇到这样一个问题。具体如下:我的网页中有各种html组件,也有spreadjs组件,我在将数据从服务器获取到客户端后,需要将这些数据逐个帮到html组件上面,以及逐个绑定到spreadjs单元格里面,我试着用setInterval来模拟一个进度条时,发现在操作spreadjs的函数中出现问题,无论这个函数(假定为funcA)执行多久,都无法执行setInterval中设定的操作(如更新进度条),只有当这个funcA函数操作完毕后,才会调用setInterval中设置的操作(如更新进度条),请问这个该如何解决,谢谢了!
目前IE9和chrome60.0.3112.113都出现这个问题。



5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-26 17:52:12
沙发
您好,需要您提供一个demo,我们需要具体看一下
回复 使用道具 举报
sunjava
金牌服务用户   /  发表于:2017-9-27 13:49:29
板凳
ClarkPan 发表于 2017-9-26 17:52
您好,需要您提供一个demo,我们需要具体看一下

你就直接做一个加载spreadjs的网页,在设置单元格数据的函数里面强行加上多次循环,让加载时间变长,看看最早设置的setInterval中的函数有没有执行。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-27 19:19:42
地板
您好:
      是这样的,因为JS是单线程的,及时设置了setInterval也需要等之前的方法执行完毕后在执行setInterval中的内容
如附件demo所示,3秒的循环是无法被setInterval打断的。

setInterval.html

878 Bytes, 下载次数: 102

回复 使用道具 举报
sunjava
金牌服务用户   /  发表于:2017-9-28 08:34:06
5#
我也找到办法了,用多线程就解决问题了,谢谢啊
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-28 09:16:08
6#
sunjava 发表于 2017-9-28 08:34
我也找到办法了,用多线程就解决问题了,谢谢啊

不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部