Networking 请求http通信和过载问题

Networking 请求http通信和过载问题,networking,optimization,flutter,Networking,Optimization,Flutter,现在我每次打开颤振应用程序时都会使用2~3个http请求 void main()异步{ 最终列表_location=等待GetGlobalAllocation(); 字符串_time=DateFormat('yyyy/MM/dd/HH/MM')。格式(DateTime.now()); 列表值= 等待getNow(_位置[1],_位置[2],_时间); List _aValue=wait getNowA(); 列表_daysValue=wait getdays(_位置,_时间); 列表_weekT

现在我每次打开颤振应用程序时都会使用2~3个
http
请求

void main()异步{
最终列表_location=等待GetGlobalAllocation();
字符串_time=DateFormat('yyyy/MM/dd/HH/MM')。格式(DateTime.now());
列表值=
等待getNow(_位置[1],_位置[2],_时间);
List _aValue=wait getNowA();
列表_daysValue=wait getdays(_位置,_时间);
列表_weekTemper=等待getWeek(_时间);
runApp(主页(_值,_aValue,_daysValue,_weekTemper));
}
像这样。
但我认为这对于服务器和用户来说太过频繁了。我是说,如果服务器中的数据每小时更新一次,那么每次打开应用程序时,我不需要使用
http连接
。但是 我不知道如何解决这个问题。
我应该检查
http
请求吗?如果是的话,我该怎么办?我用什么方法?我是否使用cookies数据?
我正试图找到那个方法,但我不知道谷歌搜索的关键词。只有如何获取http请求并解析no check请求。

在应用程序正确呈现之前,您实际上不应该进行这么多的网络调用。相反,您应该在主页上执行这些调用,并在加载数据时显示进度指示器。如果必须在加载主页面之前执行此操作,则可以创建一个启动屏幕,在该屏幕内加载数据,并在加载所有数据后导航到主页面。为此,您可以使用
Navigator.pushReplacement
导航到主页面,并从导航堆栈中删除初始屏幕,这样用户就不会意外地导航回初始屏幕

谢谢你的评论,但我的问题有点不同。数据每小时更新一次。所以,若我经常打开应用程序,这对服务器不好,因为我需要很多请求。在这种情况下,是否有任何方法我不需要每次打开应用程序时都请求?然后您可以将数据与上次刷新时间一起保存在本地。当你打开应用程序时,你首先通过检查上次刷新数据的时间来检查数据是否良好。若上次刷新时间是在一个多小时前,那个么您只能从服务器获取数据。否则您将使用您的本地存储(例如SQLite)。谢谢您的意思是使用SQLite节省时间并检查?这可以保存在user prefs中,无需保存在SQLite中。嗯,对不起,我无法制作您所说的“user prefs”的图像这是什么意思?我该怎么办?