私は、ユーザがスクロールしたときにコメントの数がポストの下に表示されるInstagramのものと同様のホームページを持つアプリケーションを開発してきました。ユーザがコメント数でラベルをタップすると、実際のコメントが画面に表示されます。私は私のアプリケーションでそれに似た何かを達成しようとしてきましたが、私がこれをやっている方法が、以下に表示するコメントの数を得るために多くのリクエスト(クエリ)をサーバーに送信しているかのように感じます各投稿。私は、これを行うためのより効率的で簡潔な方法があったのだろうかと思っていたが、それはサーバーの負荷を軽減するが、それでも同じ効果がある。Parse&Swift - サーバー負荷/要求を減らす方法
より多くのコンテキストを追加するには(注:私は解析を使用しています):
- 私はポスト
- が含まれている記事という名前のクラスを持って、私は提出されたコメントのすべてが含まれているコメントという名前のクラスを持っています。特定の投稿のコメントを取得するために、親の投稿のオブジェクトIDと一致するコメント(「parentObjectID」という名前の列)をクエリします。
例のコードは以下の通りです:
let query = PFQuery(className: "Comments")
query.whereKey("parentObjectID", equalTo: objectIDs[indexPathNums])
query.order(byDescending: "createdAt")
query.findObjectsInBackground { (objects, error) in
if error != nil {
print("An error occured (USQVC Comments Query)")
}else {
if let tempArray = objects {
for comment in tempArray {
if let x = comment {
myArray.append(x)
}
}
commentsCount = myArray.count
myArray.removeAll()
}
}
}
彼らは彼らのUIを更新したにもかかわらず、私はちょうど私が記述したもの場合には、画像を含めるたかっ不明であった:
誰かが私にこれを手伝ってもらえると感謝します。ありがとう!
投稿数に20のコメントを割り当てることができます。ユーザーが20までスクロールすると、残りのコメントを得るために電話をかけることができます。 Parse Server APIにマッピングがあるはずです。 – adnbsr
返信いただきありがとうございます!読んだ後、これは実際に私に考えさせてくれました。もう1つの解決策はnumOfCommentsという各ポストに列を追加することです。ユーザーがコメントを追加するたびに、番号が取得され、インクリメントされ、保存されます。これにより、あまりにも多くのサーバー要求がなくても、メインページにコメントの総数が表示されるようになります。私がこれで予見できる唯一の問題は、2人以上のユーザーが同じ時間に投稿を保存した場合、または接続が遅いユーザーが、接続がロードされている間に直近の更新から降順になる場合です。 – Gabe