2011-08-05 11 views
5

Mam aplikację zasilaną php z obsługą javascript i wieloma wywołania jax. moja aplikacja działa do firefox. ale gdy uruchomię go w przeglądarce Internet Explorer 8 lub podobnych wersjach, moje wywołanie ajax zostanie zbuforowane w mojej przeglądarce, więc nie jestem w stanie wyprowadzić informacji o aktualnym uptorze za pomocą wywołań ajax, zamiast tego wynik dla tych wywołań ajaxowych jest obsługiwany ze starymi danymi, które rezydują w pamięci podręcznej przeglądarki.Jak wyłączyć pamięć podręczną przeglądarki Internet Explorer za pomocą javascript lub php

I have tried lots of possible options as listed below 

1.) I added following meta tag in header files 


<meta http-equiv='cache-control' content='no-cache'> 
<meta http-equiv='expires' content='0'> 
<meta http-equiv='pragma' content='no-cache'> 

2.) I dodaje następujący kod php

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past 
header('Pragma: no-cache'); 

ale nadal powyżej 2 podejście nie rozwiązuje mojego problemu to znaczy, proszę może ktoś mi pomóc, aby wyłączyć buforowanie Internet Explorer, kiedy mój działa aplikacja, aby możliwe było uzyskanie aktualnych informacji.

z góry dzięki

+0

Drugie rozwiązanie z nagłówkami HTTP powinno działać. Po prostu upewnij się, że nagłówki są naprawdę wysyłane (użyj web-sniffer.net), wyczyść pamięć podręczną przeglądarki (pliki prawdopodobnie zostały zbuforowane, gdy nie było żadnych nagłówków) i sprawdź to jeszcze raz. – duri

+0

* Dodałem następujące kodu php * - w którym pliku? Nagłówki odpowiedzi powinny znaleźć się w twoim skrypcie AJAX. –

+0

@duri Nie wierzę, że rozwiązanie zadziała, jeśli element jest już w pamięci podręcznej. Myślę, że możesz odświeżyć się za pomocą javascript => http://stackoverflow.com/questions/2099201/javascript-hard-refresh-of-current-page/2099205#2099205. Reszta elementów Myślę, że powinieneś używać wersji podobnej do pliku filemtime() – Alfred

Odpowiedz

8

Spraw, aby każde żądanie AJAX było unikalne. To uniemożliwi IE buforowanie odpowiedzi.

Na przykład, jeśli twój normalny URL AJAX zapytanie jest www.mysite.com/ajax.php?dog=cat, dodać parametr kwerendy do każdego żądania AJAX, że jest wyjątkowy:

www.mysite.com /ajax.php?dog=cat & queryid = 1

Zwiększaj ten parametr za każdym razem, gdy wysyłasz żądanie AJAX, a to powinno załatwić sprawę.

+0

ładny pseudo kod 'pies = kot'; p –

+0

tak zrobiłem każde żądanie ajax unikatowe, dodając aktualny czas w sekundach, ale szukam lepszego sposobu na uzyskanie rozwiązania ogólnego dla wszystkich moich plików i wszystkie prośby mogą ktokolwiek proszę Pomóż mi. –

+1

'url +" i rand = "+ Math.floor (Math.random() * 11)' –

Powiązane problemy