Tworzę hybrydową aplikację na Androida.
Na początku zdecydowałem się na użycie localStorage, po spędzeniu 2 dni zdałem sobie sprawę, że to bardzo dziwne i dlatego go porzuciłem.
Następnie wziąłem indexedDB, po spędzeniu dzisiejszego dnia i uzyskaniu danych wyjściowych w Google Chrome, nie działa w WebView aplikacji na Androida.
I nigdy nie korzystałem z bazy danych Web SQL, ponieważ była przestarzała. W każdym razie zauważyłem, że PhoneGap nadal korzysta z Web SQL, a przeglądarki Androida to obsługują.
Dlaczego przede wszystkim przestarzałe Web SQL? I czy warto teraz korzystać z Web SQL?
Odpowiedzi:
Krótka wersja: Web SQL był przestarzały, ponieważ standardy są naprawdę ważne, a przekształcenie Web SQL w odpowiedni standard byłoby niezwykle trudne.
Ponieważ istniejące implementacje Web SQL są w zasadzie owijane wokół SQLite, każda próba zdefiniowania jego standardu polegała zasadniczo na „robieniu tego, co robi SQLite”. To nie wystarczy; prawdziwy standard musi być samowystarczalny, aby zdefiniować same przypadki interfejsu i narożników oraz wyjątki, zamiast wskazywać na istniejącą implementację (szczególnie implementację innej firmy, taką jak SQLite). W przeciwnym razie ryzykujesz wzięciem jednego dziwactwa z implementacji i zapisaniem ich jako standardu. Z tego, co przeczytałem, W3C preferuje wiele niezależnych implementacji proponowanych standardów, aby zapewnić, że tak się stanie; ponieważ Web SQL był tak związany z SQLite, to po prostu się nie wydarzyło.
Blog Mozilli zawiera więcej szczegółów na temat ich uzasadnienia, w szczególności za brak obsługi Web SQL; najwyraźniej byli jednym z głównych głosów w przestarzałości Web SQL.
Czy powinieneś teraz korzystać z Web SQL? Nie oczekuję, że dostawcy, którzy obecnie go obsługują (np. Google i Apple), porzucą go w najbliższym czasie, ale IE i Firefox nie będą go dodawać, a ponieważ są przestarzałe, po co inwestować w to? (Na przykład Ido Green z Relacjami programistów Google nie zaleca korzystania z niego).
źródło
Odpowiedź Josha Kelleya jest jak dotąd NAJLEPSZĄ odpowiedzią, jaką kiedykolwiek znalazłem na temat powodu, dla którego standardowa praca została przerwana. To powiedziawszy, myślę, że istnieje dodatkowa perspektywa do rozważenia w odniesieniu do bazy użytkowników.
Mimo to nie zgadzam się z podejściem Ido Green do tego tematu („Jest to zalecenie dla programistów internetowych, aby nie korzystali już z technologii tak skutecznie”) ...
Wierzę (jak stwierdza vi4m w komentarzach do artykułu Ido Greena):
I dodałbym inne logiczne podejście: jeśli tworzysz mobilny ambient ... ¿jakie otoczenie jest w twoich rękach? Odpowiedź: iOS i Android ... Więc jeśli OBA obsługa obsługuje webSQL, a twoim celem jest MASYWNA MOBILNOŚĆ, idź!
Pomyśl, jak duże aplikacje robiły prawie zawsze na początku, najpierw uzyskaj MOST, a następnie (po osiągnięciu sukcesu) odtwórz pracę, aby uzyskać pozostałe mniej (jeśli naprawdę chcesz je osiągnąć lub zostaniesz o to poproszony). Wreszcie, czy nie zawsze sukces wyznacza ścieżkę?
Po przeczytaniu artykułu Nolana Lawsona (w którym jasno widać, że zamierza dać szansę swojemu wynalazkowi) uważam, że ta sprawa stała się nową zimną wojną między gigantami technologii, która nawet nie powinna istnieć. Uważam, że specyfikacje zostały stworzone, aby pozostały (tak długie i nietknięte, jak to możliwe, tym lepiej dla wydajności zorientowanej na klienta). Jak na ironię, zadaniem „facetów ze specyfikacji” jest generowanie NOWYCH specyfikacji (czasami tam, gdzie nie są potrzebne, więc może mieć coś więcej do zrobienia), a także zadania programistów czasami koncentrują się na zmianie i przepisywaniu tego, co już działa, zamiast na rozwiązywaniu nowych problemów i nowe tendencje.
Dla mnie bazy danych po stronie klienta polegały na prostym ułożeniu podobieństw (między serwerem a stroną klienta), abyśmy mogli łatwo tworzyć, przechowywać, przesyłać i pobierać dane. Zgodnie z tym podejściem posiadanie tych samych języków i struktur (przynajmniej dla nas, programistów LAMP opensource) jest proste i logiczne.
Uważam, że zamiar IndexedDB bycia alternatywą z szerszymi i nowszymi możliwościami jest zawsze dobrym podejściem, ale jakoś przypomina mi potrzebę opracowania oprogramowania, które POTRZEBUJE zainstalować (nawet jeśli podstawowe rozwiązanie może pozostać w chmurze). W świecie, który ma tendencję do pozostawania w kontakcie, brzmi to jak A) kwestia kontroli i posiadania lub B) koncentrowanie się na rozwoju potworów po stronie klienta ... ale dla takich potrzeb istnieją aplikacje (w świecie mobilnym) i oprogramowanie (w świecie komputerów PC). Uważam, że celem aplikacji internetowych powinno pozostać głównie rozszerzenie sieci bez względu na urządzenie.
Uważam, że z tego podejścia może wyniknąć ładna infografika.
źródło
W rzeczywistości strony wnoszące wkład osiągnęły impas w kierunku normy. Krótko mówiąc, nikt nie mógł się zgodzić.
Witryna W3C wyjaśnia to.
Strona WSC
źródło