CDHtmlDialog中调用javascript函数时存在延迟.该怎么处理
CDHtmlDialog中调用javascript函数时存在延迟..
我用一面这一段函数调用CDHtmlDialog页面中的javascript函数,但存在很大的延迟...
例如,我在MFC下用一个循环调用javascript产生随机数并用document.getElementById(ID).innerHTML在页面上显示随机数.
MFC循环中我加了sleep 间隔分别尝试了5000/2000/1000/500/200毫秒调用javascript函数,但实际效果是Html中的随机数更换间隔最短为1秒.
也就是说MFC调用javascript函数的时候存在一些延迟...
麻烦问下这个是什么原因造成的,有没有什么解决办法或者替换方案?
------解决方案--------------------
1)你的mfc是怎样循环的?
如果是在界面线程中循环的时候sleep,你就把UI完全阻塞了。。。这个时间程序UI完全不能响应,web页面当然也包括在内。你需要把这个时间除开
2) 你是怎样判断随机数更换间隔的?
反正我评肉眼是判断不出200ms和1ms有多大区别
-----
建议通过计数器的方式来判断Html中的随机数更换间隔,比如,时间过去了100秒,程序只执行了200次,那就说明每次用了500ms
这样相对精确。
- C/C++ code
IHTMLDocument2* pDocument; GetDHtmlDocument(&pDocument); IHTMLWindow2* pWindow; pDocument->get_parentWindow(&pWindow); VARIANT ret; ret.vt = VT_EMPTY; pWindow->execScript(SysAllocString("JSFunction();"),L"javascript",&ret);
我用一面这一段函数调用CDHtmlDialog页面中的javascript函数,但存在很大的延迟...
例如,我在MFC下用一个循环调用javascript产生随机数并用document.getElementById(ID).innerHTML在页面上显示随机数.
MFC循环中我加了sleep 间隔分别尝试了5000/2000/1000/500/200毫秒调用javascript函数,但实际效果是Html中的随机数更换间隔最短为1秒.
也就是说MFC调用javascript函数的时候存在一些延迟...
麻烦问下这个是什么原因造成的,有没有什么解决办法或者替换方案?
------解决方案--------------------
1)你的mfc是怎样循环的?
如果是在界面线程中循环的时候sleep,你就把UI完全阻塞了。。。这个时间程序UI完全不能响应,web页面当然也包括在内。你需要把这个时间除开
2) 你是怎样判断随机数更换间隔的?
反正我评肉眼是判断不出200ms和1ms有多大区别
-----
建议通过计数器的方式来判断Html中的随机数更换间隔,比如,时间过去了100秒,程序只执行了200次,那就说明每次用了500ms
这样相对精确。