Mam problem ze stroną w eksploratorze internetowym. Mam wywołanie ajax, które wywołuje formularz, w innej przeglądarce, po kliknięciu łącza przechodzi w kontroler i ładować poprawnie danych. ale w IE, gdy jest załadowany raz, to przynosi mi te same stare wyniki bez przechodzenia przez kontroler.Internet Explorer Buforowanie asp.netmvc ajax results
Odpowiedz
Spróbuj:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
Ten atrybut, umieszczony w klasie kontrolera, wyłącza buforowanie. Ponieważ nie ma potrzeby buforowania w mojej aplikacji, umieściłem go w mojej klasie BaseController:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public abstract class BaseController : Controller
{
Oto miły opis o OutputCacheAttribute: Improving Performance with Output Caching
Można umieścić go na działanie zbyt.
To nie powinno być problemem, ponieważ buforowanie odbywa się tylko w IE –
@Malcolm Frexner: Strategia buforowania różni się w przeglądarkach. Występują pewne problemy z IE. – LukLed
Można spróbować ustawić opcję cache
do false
:
$.ajax({
url: '/controller/action',
type: 'GET',
cache: false,
success: function(result) {
}
});
Opcja ta zmusi przeglądarkę nie buforować żądania.
UPDATE:
podstawie komentarza można dodać unikalny znacznik czasu do adresu URL w celu uniknięcia problemów z buforowaniem:
var d = new Date();
var myURL = 'http://myserver/controller/action?d=' +
d.getDate() +
d.getHours() +
d.getMinutes() +
d.getMilliseconds();
Używam Microsoft Ajax, a nie jQuery. ;) To ustawienie działa dla wszystkich wywołań opartych na ajaxach? nawet dla msAjax? –
oops, przepraszam, ominęłam tę ważną część twojego pytania. –
Uaktualniam to, ponieważ jest to poprawna odpowiedź, jeśli używasz jQuery. W rzeczywistości, jeśli używasz jQuery, a nie procedur obsługi MS Ajax w MVC, IE całkowicie zignoruje wszystkie te atrybuty ustawione na twoich metodach. – James
mam blogu o ustalenie problemu cache IE zarówno jQuery i biblioteki klienta MS:
http://yoavniran.wordpress.com/2010/04/27/ie-caching-ajax-results-how-to-fix/
Nadzieja to pomaga!
Znalazłem również bardzo przydatne w podobnym (ale nie identycznym) problemie.
Zasadniczo upewnij się, że używasz POST zamiast GET w swoich żądań. Takie działanie wydaje się uniemożliwiać buforowanie pamięci podręcznej.
Np
@ Ajax.ActionLink ("Clear Kontakt", MVC.Home.ClearContacts(), nowe AjaxOptions {HttpMethod = "post", UpdateTargetId = "targetDiv"})
Można używaj HttpMethod = "POST"
dla twojego AjaxOptions
@Ajax.ActionLink("Text","ActionName", new AjaxOptions { UpdateTargetId = "TargetDiv", HttpMethod = "POST"})
Jeśli używasz Ajax Helper, można ustawić parametr AllowCache
do false
tak:
@Ajax.ActionLink("AjaxCall", "AjaxMethod", "DeconflictedFiles",
new { },
new AjaxOptions
{
AllowCache = false,
})
i IE nie będzie buforować wyniki rozmowy.
Rzeczywiście buforowanie przeglądarki IE nie jest automatycznie usuwane. , ale w skryptach Chrome działa accept.so musisz wypróbować na czyszczenie danych na poziomie przeglądarki.
- 1. Zobacz żądania ajax w internet explorer?
- 2. Internet Explorer Jumpy Scrolling
- 3. Internet Explorer toDataURL() alternatywa?
- 4. Internet Explorer 6 testowanie
- 5. setTimeout Internet Explorer
- 6. skrótów Wyłącz Internet Explorer
- 7. Jquery $ .get lub $ .ajax nie działa w przeglądarce Internet Explorer
- 8. Prawidłowe sposobem zapobiegania Angular2 żądanie HTTP buforowanie w Internet Explorer (IE)
- 9. Internet Explorer czcionka twarz ssl
- 10. Internet Explorer ignoruje moje ciasteczka
- 11. Vaadin slow in Internet Explorer
- 12. Budowanie rozszerzenia/rozszerzenia Internet Explorer?
- 13. obrót Tekst na Internet Explorer
- 14. Internet Explorer - Współczynnik proporcji Flexbox
- 15. Wyłącz narzędzia programistyczne programu Internet Explorer 8
- 16. Internet Explorer 11 „Za mało pamięci” błąd
- 17. History.js nie działa w przeglądarce Internet Explorer
- 18. Internet Explorer 6 i Internet Explorer 7 na tym samym komputerze, na debugowanie
- 19. Cień tekstu w przeglądarce Internet Explorer?
- 20. Internet Explorer 7 iframe zwalnia po powrocie
- 21. Internet Explorer ignoruje hashtag w adresie URL
- 22. Internet Explorer 8 duplikat div błąd
- 23. Maska CSS w programie Internet Explorer 10
- 24. Internet Explorer czeka na localhost na zawsze
- 25. Wydajność przeglądarki Internet Explorer 11 z JS
- 26. Internet Explorer nie wyświetla Flowplayer-Video
- 27. Laravel 5 i Internet Explorer: Niezgodność tokena
- 28. Internet Explorer, Closure Compiler i Trailing Przecinki
- 29. Wiele wystąpień Internet Explorer w jednej maszynie
- 30. Opcje rysowania pogrubione w programie Internet Explorer
Możliwy duplikat [nieoczekiwanego buforowania AJAX skutkuje wynikiem IE8] (http://stackoverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie8) –