クライアントに無限のスクロールを許可します。 私は、クライアントがデータロードごとに制限(チャンク)を定義することを許可したくないという理由があります。なぜなら、コレクションには多くのドキュメントが含まれており、クライアントは無制限を要求することができるからです少数のjsを含む文書の数が注入されます。Meteorで制限を適用してサーバー側のページ付けを実装する方法
提案がありますか?
ありがとうございます!
クライアントに無限のスクロールを許可します。 私は、クライアントがデータロードごとに制限(チャンク)を定義することを許可したくないという理由があります。なぜなら、コレクションには多くのドキュメントが含まれており、クライアントは無制限を要求することができるからです少数のjsを含む文書の数が注入されます。Meteorで制限を適用してサーバー側のページ付けを実装する方法
提案がありますか?
ありがとうございます!
パブリケーションの手動制限を設定することができます(負荷あたり25ドキュメント)。
Meteor.publish('allDocuments', function(pageNavigator = 0) {
return CustomCollection.find({},{ skip:pageNavigator, limit:25
});
});
ここで、pageNavigatorはページングに使用されるセッション値です(例:0,25,50 ...)。 この方法では、ロードごとに最大25のドキュメントが常に返されます。
その後、ユーザーがスクロールしてデータを取得する必要がある場合、サブスクリプションを停止して再開する必要がありますか? –
メテオールはあなたのためにすべてを処理するのに十分なほどスマートです。このリンクを確認してくださいhttps://docs.meteor.com/api/pubsub.html#Subscription-connection – Dino
スキップはすべてのドキュメントを検索しています。したがって、150kレコードがある場合、これはパフォーマンスが良くありません。 –
あなたはここで良いユースケースを提示していません。あなたは、クライアントに限度を指定させない理由としてセキュリティを挙げていますが、それはセキュリティホールではありません。 – Mikkel
いつでもリクエストをレート制限することができます。 [DDP Rate Limiter](https://atmospherejs.com/meteor/ddp-rate-limiter)パッケージを見て、それを直接またはインスピレーションとして使用することができます。 – MasterAM
@Mikkelハッカーが膨大なデータチャンクを要求できるのであれば、実際にはサーバーをシャットダウンすることができます。だから、セキュリティホールとしてそれを保ちましょう。 –