私はGoogleアナリティクスAPIを複数回呼び出してサブスクリプションにロードしています。今度は、データがロードされていることをユーザーに知らせるプログレスバーを作成し、それがどれくらい長くかかるかを見たいと思っています。パブリケーションを使用してサブスクリプションのプログレスバーを作成する
私は、出版物を使用してサーバーからクライアントにデータを渡すことをお勧めします。これは本当ですか?
私はサーバー上で以下の出版物を作成しました。 何ですが、次のされない:
- は初期progressValueとid 1
- との最初の出版物を設定progressValueが100未満であると、1の出版物が変化していることを伝える場合、ループ保ちます。
- このコードの下に、progressValueがループ内のステップで設定されている他のパブリケーションがあります。
クライアントを見ると、最後のprogressValueだけがポストされます。これの前に、空の配列がたくさんあります。だから、のようだ:
[]
[]
[]
[]
...
Progress publication
は私がしたいことは、クライアントが最後のものだけするのではなく、progressValue内のすべての変更を受信することです。これをどうすれば解決できますか?
サブスクリプションプログレスバーを作成する方法についてのより良い提案がある場合は、これらの回答も受け入れられます。
if (Meteor.isServer) {
let progressValue = 0;
Meteor.publish('progress', function() {
const self = this;
let lastProgressValue = 0;
const id = 1;
self.added('progress', id, {
progress: progressValue,
total: 100,
});
while (progressValue < 100) {
self.changed('progress', id, {
progress: progressValue,
total: 100,
});
}
self.ready();
});
...
明日はお試しいただきありがとうございます。それがうまくいくかどうかを知らせ、後で答えを受け入れる。 – Christoph
それは動作します!アドバイスをいただきありがとうございます。 – Christoph