0
/user/:userId
user = {
    user_id
    username
    name
    email
    pfpsrc
};
/chatlog
{
   responce: [
      {
         message_id
         message
         message_date
         user_id
      },
      {
         message_id
         message
         message_date
         user_id
      }
   ]
}

When appending messages from /chatlog to the DOM, how can I grab user data from /user for every message in chatlog efficiently?

My current code fetches /user/:userId for every message in chatlog which is inefficient and slow af

VLAZ
  • 26,331
  • 9
  • 49
  • 67
Maxhu787
  • 18
  • 5

1 Answers1

1

If you want to make this for more efficency, your Back-end should return the needed user data on /chatlog response.

The changes api will return

{
   response: [
      {
         message_id
         message
         message_date
         user: {
            user_id
            username
            name
            email
            pfpsrc
        },
      {
         message_id
         message
         message_date
         user: {
            user_id
            username
            name
            email
            pfpsrc
          }
        ]
}

With that you can use user that returned.

AdvMaple
  • 99
  • 1
  • 7
  • How is transmitting twice the amount of data more efficient? – Robby Cornelissen Apr 05 '23 at 05:13
  • There also fetching the needed user data in ```/chatlog``` and caching it. But if consider the HTTP connection time, it may not worth it. So the answer can become what to optimize. My answer is just the simplist way to improve HTTP connection and fetching time. Not considering size. – AdvMaple Apr 05 '23 at 05:46