Гарантия доставки сообщений

Есть веб-приложение на React, которое регулярно обновляет данные с сервера, написанного на Go. Я использую setInterval для выполнения HTTP-запросов каждую минуту. Я переживаю о производительности и нагрузке на сервер. Существуют ли более эффективные методы для поддержания актуальности данных?

Минимальный пример:

package main

import (
    "encoding/json"
    "net/http"
    "time"
)

type Data struct {
    Message string `json:"message"`
}

func handler(w http.ResponseWriter, r *http.Request) {
    data := Data{Message: "Hello, World!"}
    json.NewEncoder(w).Encode(data)
}

func main() {
    http.HandleFunc("/data", handler)
    http.ListenAndServe(":8080", nil)
}

Приложение на реакте:

import React, { useEffect, useState } from "react";

function App() {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch("http://localhost:8080/data");
      const result = await response.json();
      setData(result);
    };

    fetchData();
    const interval = setInterval(fetchData, 60000); // Обновление данных каждую минуту

    return () => clearInterval(interval);
  }, []);

  return (
    <div>
      <h1>{data ? data.message : "Loading..."}</h1>
    </div>
  );
}

export default App;

Ответы (0 шт):