2017-05-11 30 views
0

我正在研究流星應用程序(電子商務網站),變得非常大。它幾乎需要9秒才能查看主頁的靜態部分,直到它只顯示白色/黑屏。之後,它開始顯示來自數據庫(mongoDB)的數據。整個網站有數據需要24秒才能到達客戶端。我認爲整個軟件包太龐大,這就是爲什麼它需要更多時間來下載。這導致了9秒的白屏。任何解決方案的人提前致謝!大流星應用程序需要太多時間進行初始加載

 
Alraedy Tried: 
1. Fast Render(Flowrouter subscriptions) package 
2. Appcache package 
3. Query Optimization/Indexing 
4. Removed global subscriptions 
5. Sending minimal data via pub/sub 
6. this.unblock() for publications 
7. Not saving files in DB instead saving url's 
+1

沒有辦法,我們任何人實際上可以幫助你它可能是一些事情。你需要分析你的數據庫,你的服務器,並挖掘你的瀏覽器的開發工具。例如你的服務器有多快?你的數據庫有多快?他們是否在同一個共同機構?它是你的代碼嗎?數據太多?你的期望是否合理?根據您瀏覽頁面需要多長時間才能說出來。 – zim

+0

使用chrome開發工具,您應該能夠確定首頁加載的有效負載大小。那有多大?您的第一次訂閱開始接收數據需要多長時間? (您可以通過查找websocket連接來檢測)。 –

回答

0

對於初學者,嘗試刪除未被任何前端代碼使用的未使用的軟件包。檢查你的整個package.json和所有導入。

減少所有訂閱的大小,你可能會有大量的文檔全部或太大,這在開發過程中很容易,但是在生產過程中會過度。嘗試將字段和加載對象的數量限制爲您爲用戶可視化的內容。

不要等到finsih加載之前顯示的東西,加載網站,它的設計已經,但只顯示一個'加載'圖標,確實需要數據動態顯示的訂閱。

確保您的javascript在發佈之前被縮小,這可以節省大量帶寬。

實施這些後,您的加載時間應該減少。

從瀏覽器的調試器提供詳細的網絡分析也可能有助於避免問題。

+1

'執行完這些後,你的加載時間應該會增加。「 - 我希望你的意思是減少:) –

+0

是的,現在改變了。 – mitchken

+0

流星應該在生產中自動縮小js。 –

1

您正在從事電子商務網站,因此您可能會在您的網站中捆綁一個龐大的管理模塊。您應該考慮將管理模塊構建爲獨立的Meteor應用程序,並與電子商務網站共享相同的Mongo DB集合。你可以使用這種方法大大減少你的應用程序的大小。你可以找到更多的細節here

你也應該非常小心你的訂閱和使用分頁在服務器端的出版物,訂閱僅哪些數據實際需要

+0

是的。管理員端非常龐大,其中包括所有報告和管理控制。我們正在考慮轉移管理部分,但認爲可能有其他解決方案。感謝您的回覆。 –

相關問題