2017-08-01 105 views
1

我用Nodejs和Express創建了我的第一個應用程序。它工作正常,但在從一條路線導航到另一條路線時加載頁面的速度很慢。我在頁面中放置了一個日誌來看看會發生什麼,顯然頁面調用和渲染之間發生延遲,也就是說,它似乎(我認爲...)它似乎是服務器返回答覆的時間,但我不確定。Nodejs和Express:很長的時間來加載頁面

有誰知道我能做些什麼來減少頁面加載時間?

的package.json

{ 
    "name": "cancela", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "body-parser": "~1.17.1", 
    "chart.js": "^2.6.0", 
    "cookie-parser": "~1.4.3", 
    "debug": "~2.6.3", 
    "express": "~4.15.2", 
    "log": "^1.4.0", 
    "moment": "^2.18.1", 
    "morgan": "~1.8.1", 
    "mysql": "^2.13.0", 
    "pm2": "~2.6.1", 
    "pug": "~2.0.0-beta11", 
    "serve-favicon": "~2.4.2" 
    } 
} 
+1

打開Express [**調試**](https://expressjs.com/en/guide/debugging.html)。 –

+0

非常酷!我發現PUG視圖渲染的時間越長。但是我注意到另外一件事情:當我打開一個使用'socket.io'的路由時,該頁面每隔100ms運行一次功能更新。甚至在切換到另一頁面後,'socket.io'在後臺保持活動狀態,就好像頁面仍然處於打開狀態(但我已經在另一頁面上...)。我認爲這也是一個問題,不是嗎? – wBB

+0

嘗試在服務器端將[**'transports' **](https://socket.io/docs/server-api/#)設置爲'['websocket','polling']'。這種行爲就像一個「輪詢」。我不認爲這是一個大問題。 –

回答

1

你是在開發模式?如果是的話,那是因爲緩存和其他方式沒有被激活。當你轉移到產品時,緩存將被激活,並且你的nodej不需要重新加載和解析每個html頁面

但是你目前的頁面加載時間是多少?

+0

我編輯了我的問題,它包括我的'package.json' ...我不再處於開發時間。加載頁面的時間在2到3秒之間。我正在通過交叉電纜直接連接到服務器的PC訪問我的頁面。 – wBB

+0

是所有頁面上的問題還是隻有使用mysql的頁面? 因爲我沒有看到真正很重的東西或者很大的依賴關係,這可能需要在每個頁面上加載2秒 如果使用另一個瀏覽器測試是同一時間嗎?你的服務器是什麼? – sheplu

+0

我想你已經告訴我最大的問題是什麼。在MySQL要求的頁面中,加載速度較慢,其他加載速度較快。即便如此,最快的頁面速度也有點慢,在0.5到1.5秒之間。我的「服務器」不是一個適當的服務器。這是一個獨立運行的單板。這是一隻Beaglebone Black,即低速。但我仍然認爲這需要太長時間... – wBB

相關問題