Proposal to support all platforms (including web) while emulating browser caching behavior
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 22/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- dart, flutter
- Área
- databases, mobile-dev, web-dev
Línea de trabajo
Comienza leyendo el proyecto http_get_cache enlazado y las referencias de la propuesta a Drift, sqflite y fetch_client. Compara el comportamiento previsto de Cache-Control, ETag, Last-Modified, la revalidación, la expulsión y el almacenamiento de la plataforma; después, verifica que las plataformas nativas y web estén cubiertas por pruebas para el comportamiento esperado del navegador.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🏗 Enhancement Proposal
I recently was able to support all native platforms and web with an emulation of how the browser works with saving, revalidating and evicting cache.
https://github.com/rodydavis/http_get_cache
The goal is to support the same way the browser does caching:
- Cache-Control, eTag, Last-Modified headers
- max-age, stale-while-revalidate, stale-if-error, only-if-cached
- Support fetching content updates with head requests for non immutable objects and only after stale and 304 response meaning no update
- Support skipping cache with request headers: no-cache
- Support preventing storing with: no-store
- Use platform cache directory for stored files and database in documents
Pitch
- Update core logic to use Drift instead of sqflite to support all native platforms
- Web will use the fetch_client package and work with browser caching
- New http client for wrapping network requests
- Add tests to test for expected browser behavior
Platforms affected (mark all that apply)
- 📱 iOS
- 🤖 Android
- [+] MacOS
- [+] Windows
- [+] Linux
- [+] Web
- [+] Dart native
- Lenguaje dominante
- Dart
- Estrellas
- 810
- Forks
- 510
- Merge medio
- 2 d 2 h
- PR fusionados (30 d)
- 11
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Baseflow/flutter_cache_manager
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Baseflow/flutter_cache_manager#450 · 9 comentarios · 8 reacciones ·
-
Retaining original file names Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
Baseflow/flutter_cache_manager#507 · 1 comentario ·
-
sqflite_android update Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 30/100
Baseflow/flutter_cache_manager#501 · 1 comentario · 3 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Baseflow/flutter_cache_manager#500 · 1 comentario · 3 reacciones ·
Todos los issues de Baseflow/flutter_cache_manager
Issues similares
-
ui/ux
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
error Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Bug Flutter User Feedbacks
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
getsentry/sentry-dart#4042 · 1 comentario ·
-
team-infra
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
[BUG]: 搜索历史满 10 条时,重复搜索会误删无关历史记录 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100