[问题] node.js太忙引起的前端问题

楼主: jikker (鲁蛇王)   2016-05-30 14:22:25
Hi 各位大大好 小鲁最近用nw.js在写读取档案的程式
我想呈现读取的进度条,却发现读取档案的时候程式太忙
完全不会理UI要做变化,可是javascript不是异步执行的吗?
完全不懂为什么会出现这状况
以下是我的程式范例,UI是使用bootstrap
for(var i=1; i<=days;i++){
d = y+'/'+m+'/'+add_zero(i);
file_path = f_path + '/' + y+'-'+ m +'-' + add_zero(i) + '_'.txt';
(function(file_path, d){
check_file(file_path , function(back){
if( back.status == 1){
load_file(file_path, function(data){
count++;
process_bar(0, days, count);
if(count > days ){
console.log(count);
}
});
}
});
})(file_path,d);
}
function process_bar(min, max, now){
$('#bar').attr('aria-valuemin', min);
$('#bar').attr('aria-valuemax', max);
$('#bar').attr('aria-valuenow', now);
$('#bar').attr('style', 'width:'+ Math.round( now/(min+max)*100 ) +'%');
}
作者: mrbigmouth (大嘴先生)   2016-05-30 17:10:00
JavaScript是异步执行的 但是JavaScript是单执行绪你的check_file function会在每个进度条该动的时候都执行到callback吗?啊我看错了 原来你是直接执行N次啊所以这里的是前端的程式码?这没有看到你check_file, load_file运作方式没办法评判是哪边出问题 如果是后端问题还要加看network等等 等等 nw.js我不熟 不好意思 无视我发言吧
楼主: jikker (鲁蛇王)   2016-05-30 18:12:00
用过callback 一样会等到全不跑完 才处理process bar
作者: cs8425 (cs)   2016-05-30 19:36:00
check_file, load_file是怎写的?你有自己包装过吧...这不是nw.js提供的API...
楼主: jikker (鲁蛇王)   2016-05-31 10:35:00
check file 就是最基本的 fs.stat load file 也是readFilenw.js不是都用node.js的API吗? 只有一些视窗控制才有自己的API

Links booklink

Contact Us: admin [ a t ] ucptt.com