2017-05-11 9 views
0

Meteorアプリ(電子商取引サイト)で作業していて、非常に大きくなりました。ホームページの静的な部分を表示するまでにはほぼ9秒かかりますが、白/空白の画面しか表示されません。その後、DB(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開発ツールを使用すると、最初のページ読み込みのペイロードサイズを判断できるはずです。どれくらい大きいですか?最初の契約でデータを受信するまでの期間(あなたはwebソケット接続を探すことでそれを検出することができます)。 –

答えて

0

まず、フロントエンドコードで使用されていない未使用のパッケージを削除してみてください。パッケージ全体を確認してください.jsonとすべてのインポート。

サブスクリプションのサイズを小さくすると、全体のサイズが大きすぎるドキュメントや大きすぎるドキュメントがたくさんありますが、これは開発中は簡単ですが、プロダクションでは過度な作業です。フィールドと、読み込まれたオブジェクトの量を、ユーザーの視覚に合わせて制限してください。

何かを表示する前にfinsihのすべての購読を待つことはありません。ウェブサイトとそのデザインは既にロードされていますが、データを動的に表示する必要がある部分には「読み込み中」アイコンが表示されます。

javascriptが公開前に縮小されていることを確認してください。これにより、多くの帯域幅が節約されます。

これらを実装した後は、読み込み時間が減少しているはずです。

ブラウザのデバッガから詳細なネットワークアナリティックを提供すると、問題が発生しないようにすることもできます。

+1

'これらを実装した後、あなたの読み込み時間は増加しているはずです.' - あなたが減少したことを願っています:) –

+0

ええ、それを今変更してください。 – mitchken

+0

Meteorは本番環境で自動的にjsを小さくする必要があります。 –

1

あなたは電子商取引のWebサイトで作業していますので、あなたのウェブサイトにバンドルされた巨大な管理モジュールがあるかもしれません。管理モジュールを、電子商取引ウェブサイトと同じMongo DBコレクションを共有する別個のMeteorアプリケーションとして構築することを検討する必要があります。このアプローチを使用すると、あなたのアプリケーションのサイズをかなり減らすことができます。あなたは詳細hereを見つけることができ

あなたはまた、あなたのサブスクリプションについては本当に注意するだけで、実際に私たちのいずれかが実際としてあなたを助けることができる方法はありません

+0

はい。管理サイドは非常に巨大で、すべてのレポートと管理コントロールが含まれています。私たちは管理部分をシフトすることを考えていましたが、他の解決策があるかもしれないと考えました。返信ありがとうございます。 –

関連する問題