Гарантия доставки сообщений
Есть веб-приложение на 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;