Pomyślnie utworzyliśmy aplikację offline przy użyciu HTML5. To, co robi, to przechowywanie danych w indeksowanym DB lub w localStorage, gdy online, lokalna baza danych i baza danych online zostaną zsynchronizowane. Wszystko jest w porządku, dopóki nie zdecydowaliśmy się dodać funkcjonalności do przesyłania zdjęć.Praca z obrazami w aplikacji offline HTML5?
1) Ponieważ aplikacja działa w trybie offline, nie możemy przesyłać obrazów na serwer, gdzie zamierzamy je umieścić?
Możliwe rozwiązania:
- w trybie offline, zapisz ścieżkę, gdy użytkownik dostaje w Internecie, przesyłanie obrazów poprzez tworzenie elementów wejściowych i przypisywanie ścieżkę do swojego atrybutu wartości. Problem z tym podejściem polega na tym, że nie możemy zmienić atrybutu wartości elementu wejściowego i nie możemy uzyskać pełnej ścieżki do obrazu, który ma zostać przesłany. Wygląda na to, że to rozwiązanie nie jest naprawdę możliwe.
- zapisać obraz w indexedDB lub localStorage, jest to możliwe?
2) Jeśli uda nam się zapisać obraz w indeksie DB lub localStorage, w jaki sposób prześlemy go, gdy użytkownik przejdzie do trybu online?
Możliwe rozwiązania:
- websocket - Nie dotykaj tego jeszcze.
- Flash - czy to działa na iPhone'a? Prawdopodobnie nie.
3) Jeśli uda nam się zapisać obraz w indeksie DB lub localStorage, w jaki sposób wyświetlimy go na stronie? Elementy obrazu używają atrybutu src do określenia, który obraz do wyświetlenia, czy istnieją inne metody, takie jak użycie binarnego obrazu?
Jeśli wcześniej spotkałeś się z podobną sytuacją, jakie obejście podjąłeś, aby osiągnąć swój cel?
Konwertuj obrazy jako łańcuchy base64 i przechowuj je, a następnie przesyłaj je za pomocą Ajax lub cokolwiek chcesz, a możesz umieścić ciąg base64 w _src_ attr elementu img –