我是靠谱客的博主 妩媚老虎,最近开发中收集的这篇文章主要介绍js获取服务器响应时间,来自nodejs服务器的响应时间与表达对树莓pi非常缓慢,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我有一个树莓pi 3与我的本地网络上运行express的nodejs服务器。

服务器总是在后台做一些工作,我做了一个休息api来检查进度。

当get被调用时,服务器向我发送一个带有脚本文件的html文件,脚本调用另一个api来获取原始数据并将其注入到html文件中。 (我这样做,所以我不必在服务器上注入数据)

现在,这里的问题:当我在我的电脑上运行服务器一切都很快。但在我的树莓上发送几乎空的html + js + css文件需要长达10秒。我检查了CPU和RAM的用法,它总是在50%左右,所以不应该成为一个问题。

有没有人有一个想法是什么原因造成的?

work.js

var db = require('./db.js');

var storeCollection;

var allowCollection;

var dbToClose;

module.exports.get = get;

function get(query, callback) {

db.connect(function(database){

storeCollection = database.collection(query+"store");

allowCollection = database.collection(query+"allow");

dbToClose = database;

getOne(query, 1, callback);

});

}

function getOne(query, page, callback) {

jsdom.env(searchurl + query + pageparam + page, function (err, window) {

if (err) {

console.error(err);

return;

}

var $ = jquery(window);

var resultlist = $("...");

var count = 0;

if(resultlist.length <= 0){

dbToClose.close();

callback("work");

}

for (var i = 0; i < resultlist.length; i++) {

var item = new Object();

//data parsing

if (item.link) {

item._id = new Buffer(item.link).toString('base64');

db.addOneIfAllowed(storeCollection,allowCollection,item,function(){

if(++count == resultlist.length){

getOne(query, ++page, callback);

}

});

} else{

dbToClose.close();

callback("work");

}

}

});

}

web.js

//rest api

...

//work

updateDatabase();

setInterval(updateDatabase, 60000 * 5);

function updateDatabase() {

timer.start();

db.connect(function (database) {

var persist = database.collection("persist");

persist.find({}).toArray(function (err, persisting) {

database.close();

persisting.forEach(function (q) {

persistAll(q._id);

});

});

});

}

function persistAll(q) {

var workcount = 0;

var time;

function finish(name) {

console.log("persisted "+name);

workcount++;

if (workcount == 6) {

console.log("done persisting");

}

}

time = Date.now();

work.get(q, finish);

otherwork.get(q,finish);

...

}

+1

采取更系统的方法找出影响速度的因素并不是很难。例如,当您完全禁用“背景”任务时,HTTP请求是否更快?或者当你禁用它的一部分(比如说,数据库写入)? –

+0

@robertklep没有数据库调用它有点快,但它并没有太大的区别。我决定制作第二个nodejs服务器,它仅处理api调用,并且像魅力一样工作。 –

最后

以上就是妩媚老虎为你收集整理的js获取服务器响应时间,来自nodejs服务器的响应时间与表达对树莓pi非常缓慢的全部内容,希望文章能够帮你解决js获取服务器响应时间,来自nodejs服务器的响应时间与表达对树莓pi非常缓慢所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部