2012-03-16 11 views
6

Kiedy dodałem appcache do mojej aplikacji webowej z uruchomionym jquery mobile, wszystkie wywołania ajax-owe żądające plików json z mojego serwera działają. Mój plik manifestu wygląda następująco:Jak mogę zezwalać na żądania jsonów podczas używania funkcji aplikacji HTML5?

CACHE MANIFEST 

CACHE: 

index.html 
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js 
scripts/jquery.flot.threshold.min.js 
scripts/jquery.mobile-1.0.1.min.js 
styles/jquery.mobile-1.0.1.min.css 
styles/touchStyles.css 
styles/styles.css 

NETWORK: 

index.appcache 
dataFetchAndDraw.js 
initJson 

Gdzie initJson jest jednym z połączeń, które nie będą działać. Próbowałem wprowadzić pełny adres (aaa: bbb: ccc: ddd: 6565/initJson) również bez powodzenia.

w moim pliku .htaccess mam tylko tę jedną linię:

AddType text/cache-manifest .manifest 

Odpowiedz

2

miałem podobny problem z aplikacją byłem w pracy, problem miałam flaga cache w wywołaniu ajax został wywiązał na prawdę.

Okazało się, że gdy dodałem

cache : false 

do mojego żądania GET ajax wniosek trafia do serwera. (http://api.jquery.com/jQuery.ajax/)

10

po prostu wpadł na ten problem i musiałem dodać symbol wieloznaczny do sekcji Sieci pliku manifestu, aby umożliwić przeglądarkę, aby przejść do sieci dla wszelkich niezbibliotecznych zasobów.

NETWORK: 
* 
http://* 

Najwyraźniej potrzebujesz obu powyższych symboli wieloznacznych, aby obsługiwać wszystkie przeglądarki.

Znalazłem także appcachefacts.info przydatny zasób, aby zrozumieć ten i inne szczegóły dotyczące aplikacji. Zaleca się przeczytanie całej tej instrukcji przed kontynuowaniem uczenia się aplikacji:

Sekcja SIECI wyświetla wszystkie adresy URL, które można załadować przez Internet. Jeśli twoja aplikacja zawiera jakiekolwiek wywołania interfejsu API, pamiętaj o wyliczeniu ich tutaj. Zauważ, że jest to lista prefiksów URL, więc jeśli wszystkie twoje połączenia sieciowe zaczynają się od http://example.com/api/, to wszystko, co musisz uwzględnić.

Jeśli chcesz zezwolić na dostęp do dowolnych URL-i (skrypty, arkusze stylów, wywołania API, cokolwiek), dołącz *, http: // * i https: // * w tej sekcji. (Chrome i Safari respektować się *; Firefox potrzebuje http: // * i https: //. *)

+1

To naprawdę powinno być domyślne. HTML5 AppCache nie wydaje się być dobrze zaimplementowany lub określony. Przeglądarka powinna renderować stronę z pamięci podręcznej, a następnie pobrać nową stronę w tle, jeśli istnieje połączenie umożliwiające aktualizację pamięci podręcznej przy każdym ponownym załadowaniu. Wymusza jednak rodzaj trybu offline, nawet gdy użytkownik ma połączenie. –

0

rzucam tego problemu dzisiaj. Ale w moim przypadku działa tylko z dwóch etapów:

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. Config sesji pamięć podręczną aplikacji sieci z

Mam nadzieję, że to przydatne dla Ciebie.

Powiązane problemy