我的node.js应用程序旨在扫描网站列表,在面板,statusCode和其他测试中返回。 现在应用程序的工作方式如下: 页面为空,直到加载结束,如果列表中的一个网站速度慢,则加载速度很慢,当100%的网站扫描面板显示时。
如何在加载页面时显示面板,并逐步显示其他信息?
var express = require('express');
var fs = require('fs');
var http = require('http');
var ejs = require('ejs');
var async = require('async');
var request = require('request');
var app = express();
var mysql = require('mysql');
var cheerio = require('cheerio');
app.use(express.static(__dirname+"/public"));
// Database connection
app.get('/', function(req, res) {
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'app'
});
connection.connect();
var jsons = new Array();
var odbc;
connection.query('SELECT * from websites', function(err, rows) {
if (err) throw err;
async.each(rows, function(row, callback) {
http.get(row.url, function(resp) {
row.status = resp.statusCode;
request(row.url, function(error, response, html){
if(!error){
var $ = cheerio.load(html);
str = $('*').text();
var errorODBC = str.indexOf("function.odbc-connect");
var errorTrans = str.indexOf(".WDD");
if(errorODBC != '-1'){
row.odbc = 'Erreur odbc';
}
if(errorTrans != '-1'){
row.aw = 'Erreur transfert';
}
jsons.push(row);
callback();
}
});
}).on('error', function(e) {
console.log("Erreur : " + e.message);
});
},function(){
res.render('index.ejs', {data : jsons});
console.log("Scan done...");
});
});
connection.end();
});
app.listen(8080);