2017-05-11 28 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

是的。管理员端非常庞大,其中包括所有报告和管理控制。我们正在考虑转移管理部分,但认为可能有其他解决方案。感谢您的回复。 –

相关问题