javascriptchatfetching-strategy

Efficiently load chat log


/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


Solution

  • 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.