Javascript 在nwjs中下载文件时如何显示进度条
我正在创建一个NWJS应用程序,它需要从url下载一些文件,我需要显示一个进度条来显示下载进度 我目前的代码只是下载文件,但没有显示和更新进度条,我想知道如何做到这一点Javascript 在nwjs中下载文件时如何显示进度条,javascript,node.js,nwjs,Javascript,Node.js,Nwjs,我正在创建一个NWJS应用程序,它需要从url下载一些文件,我需要显示一个进度条来显示下载进度 我目前的代码只是下载文件,但没有显示和更新进度条,我想知道如何做到这一点 var fs = require('fs'); var https = require('https'); var file = fs.createWriteStream(filepath); var request = https.get(fileurl, function (response) { respons
var fs = require('fs');
var https = require('https');
var file = fs.createWriteStream(filepath);
var request = https.get(fileurl, function (response) {
response.pipe(file);
$('#progressbar_upload').addClass('bg-success');
uploadDone();
});
这只是下载文件,然后在下载完成后更改进度条的颜色。我希望它改变进度条的宽度,以便在下载时显示下载进度
提前谢谢 您可以从
响应
中检查总的内容长度
,以获得总下载大小,以及它何时返回数据
到数据
事件。最后,您可以得到它的长度,并可以计算下载百分比,如下所示:
var fs = require('fs');
var https = require('https');
var file = fs.createWriteStream(filepath);
var contentLength;
var length;
var responseData = '';
var request = https.get(fileurl, function (response) {
contentLength = parseInt(response.headers['content-length']); // in bytes
length = [];
// Grab the data buffer of the request
response.on('data', (d) => {
responseData += d;
length.push(d.length);
let sum = length.reduce((a, b) => a + b, 0);
let completedParcentage = (sum / contentLength) * 100;
console.log(`completed reading ${sum} bytes out of ${contentLength} bytes`);
console.log(`${completedParcentage} percentage of download complete`);
// Modify this to alter the width of progress-bar using percentageCompleted
$('#progressbar_upload').addClass('bg-success');
});
response.on('end', () => {
file.write(responseData);
uploadDone();
})
});
这是行不通的。似乎response.on('end')没有触发。当
数据
发送到数据
事件时,您将获得下载完成百分比,您需要在数据
事件中使用计算的完成部分
来更改进度条
宽度。