2014-09-29 67 views
9

有时,在开发当前节点项目时,我会得到一个挂起的刷新。页面永远不会加载。我查看了Chrome中的网络标签,看到它总是挂在一个静态文件上。被卡住的静态文件会有所不同,有时它会是一个CSS文件,其他时间是图像文件。Node.js + Express.js服务静态文件速度很慢

我试图优化所有我的文件,希望解决这个问题,但没有任何修复它。如果在长时间加载期间刷新,它会在第二次请求中正确加载页面。每次我尝试加载页面时都不会发生这种情况,但在页面之间切换时通常不会发生。

如果我禁用了chrome网络检查器下的缓存,它几乎总会发生。

**这是我的第一个主要节点项目,所以我可能一直犯错误。 **

整个项目托管在GitHub上:http://github.com/polonel/trudesk

实例加载时间(在新标签中打开图片查看全尺寸)

+0

你可以发布你正在使用的服务器的静态文件的代码? – slebetman 2014-09-29 18:31:27

+0

代码服务静态:https://github.com/polonel/trudesk/blob/master/node/src/routes/index.js#L33 – Chris 2014-09-29 18:33:58

+1

您是否尝试在* all *其他中间件之前移动静态文件中间件?这样会话中间件不会触及mongodb等等,这会在获得提供文件服务的机会之前降低速度。 – mscdex 2014-09-29 18:56:55

回答

15

我有完全一样的问题。我刚搬到一个网络连接不好的地方。在我的node.js应用程序中加载静态文件的时间增加到每个文件超过40s。

我刚搬到静态中间件

app.use(express.static(__dirname + '/public')); 

到app.configure函数的顶部,之前的所有其他应用程序。*电话。

它现在工作速度明显加快。

+1

谢谢你先生。圣牛这个问题困扰了我好几个星期。你是一位圣人。 – 2016-03-15 07:48:06

0

昨晚我花了大约3个小时试图解决这个问题。我发现有这是可怕的下降减缓页面while语句:

while ((incomingUsername !== "") && (incomingPassword !== "")){ 
    newAccount(incomingUsername, incomingPassword); 
} 
function newAccount(name, password){ 
    console.log("ACCOUNT REGISTRATION INITIATED"); 
} 

当我注释掉while语句,在几秒钟内加载的页面。

+0

在我看来,while循环永远不会退出。 _condition_中的变量永远不会改变(就我们在这里可以看到的那样)。这会减慢页面加载速度。 – 2016-12-26 16:49:31