Optimize calendar loading with parallel API calls
- Replace sequential API calls with Future.wait() for parallel execution - Reduces calendar load time from ~31 sequential requests to 1 parallel batch
This commit is contained in:
parent
fbccd5b7d9
commit
db0c5337ed
@ -36,11 +36,21 @@ class _CalendarPageState extends State<CalendarPage> {
|
||||
|
||||
final lastDay = DateTime(_focusedMonth.year, _focusedMonth.month + 1, 0);
|
||||
|
||||
for (int day = 1; day <= lastDay.day; day++) {
|
||||
final date = DateTime(_focusedMonth.year, _focusedMonth.month, day);
|
||||
final dateStr = DateFormat('yyyy-MM-dd').format(date);
|
||||
final result = await repository.getTasksByDate(date);
|
||||
result.when(
|
||||
// Create all date requests
|
||||
final dates = List.generate(
|
||||
lastDay.day,
|
||||
(index) => DateTime(_focusedMonth.year, _focusedMonth.month, index + 1),
|
||||
);
|
||||
|
||||
// Execute all API calls in parallel
|
||||
final results = await Future.wait(
|
||||
dates.map((date) => repository.getTasksByDate(date)),
|
||||
);
|
||||
|
||||
// Process results
|
||||
for (int i = 0; i < dates.length; i++) {
|
||||
final dateStr = DateFormat('yyyy-MM-dd').format(dates[i]);
|
||||
results[i].when(
|
||||
success: (data) {
|
||||
if (data.isNotEmpty) {
|
||||
tasks[dateStr] = data;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user