随着Windows系统接近49.7天的正常运行时间,内部Windows毫秒计时器接近2 ^ 32.在计算何时触发setInterval或setTimeout事件时,Internet Explorer 8中的错误似乎有算术溢出.例如,如果您在正常运行时间的第49天,并致电
setInterval(func, 86400000); // fire event in 24 hours
Run Code Online (Sandbox Code Playgroud)
将立即调用func,而不是24小时.
如果将足够大的数字传递给setInterval或setTimeout,则可能在25天正常运行时间(2 ^ 31毫秒)后的任何时间发生此错误.(不过,我只在第49天检查过.)
您可以在命令行中输入"net statistics server"来检查正常运行时间.
有解决方法吗?
Microsoft已弃用_open而支持_sopen_s.推荐的等价参数是什么?