i'm developing a simple chat plugin, it's ready however i'm having some doubts about the performance. I'm afraid of getting heavy for the servers.
it is based on a recursive function, calling an ajax, bringing the data from the database and printing it on the screen.
window.addEventListener('load', function(){
    RenderChat()
});
const chatObjectScriptsToUrlParams = (obj) =>{
    let params = "";
    for (var key in obj) {
        if (params != "") {
            params += "&";
        }
        params += key + "=" + encodeURIComponent(obj[key]);
    }
    return params;
}
const RenderChat = () => {
    let divChat = document.getElementById('dv-chat');
    let params = {
        action: 'DvChat',
        nounce: DvChat_js.nounce,
        url: DvChat_js.dv_chat_ajax,
    };
    params = chatObjectScriptsToUrlParams(params);
    fetch(DvChat_js.url + '?' + params)
        .then((response) => {
            return response.text();
        })
        .then((html) => {
            divChat.innerHTML = html;
            console.log('HTML => ', html);
        })
        .catch( () => {
        })
        .finally(() => {
            RenderChat();
        });
}
as I said, it's a very simple way to do it, I would really like your help to know if this is really the best way, or if there are adjustments, something I can improve on this idea.
I've seen people using setInterval(); but I chose to use a recursive function to reduce the number of requests.
It's the first time I'm developing a chat, and I don't know if it's right to make so many requests the way I did, I ended up having serious doubts about the performance related to the infrastructure
 
     
    