Ich habe ein Problem mit einer Seite im Internet Explorer. Ich habe einen Ajax-Aufruf, der ein Formular in einem anderen Browser aufruft, wenn ich auf den Link klicke, den es im Controller übergibt und korrekte Daten lädt. Aber in IE, wenn es einmal geladen ist, bringt es mir die gleichen alten Ergebnisse, ohne den Controller zu übergeben.Internet Explorer Caching asp.netmvc ajax Ergebnisse
Antwort
Versuchen:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
Dieses Attribut, in der Controller-Klasse platziert, deaktiviert das Caching. Da ich meine Anwendung nicht benötigen Caching, legte ich es in meiner Base Klasse:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public abstract class BaseController : Controller
{
hier schöne Beschreibung über OutputCacheAttribute ist: Improving Performance with Output Caching
Sie es auch auf Aktion platzieren können.
Dies sollte nicht das Problem sein, da das Zwischenspeichern nur in IE geschieht –
@Malcolm Frexner: Caching-Strategie unterscheidet sich in Browsern. Es gibt einige Probleme mit IE. – LukLed
Sie könnten versuchen, die cache
Option false
Einstellung:
$.ajax({
url: '/controller/action',
type: 'GET',
cache: false,
success: function(result) {
}
});
Diese Option den Browser zwingen wird, die Anforderung nicht cachen.
UPDATE:
Basierend auf den Kommentar, den Sie einen eindeutigen Zeitstempel auf die URL Caching-Probleme könnte hinzufügen zu vermeiden:
var d = new Date();
var myURL = 'http://myserver/controller/action?d=' +
d.getDate() +
d.getHours() +
d.getMinutes() +
d.getMilliseconds();
Nun, ich benutze Microsoft Ajax, nicht jQuery. ;) Diese Einstellung funktioniert für alle Ajax-basierten Anrufe? sogar für msAjax? –
oops, sorry, ich habe diesen wichtigen Teil Ihrer Frage verpasst. –
Ich stimme dem zu, weil dies die richtige Antwort ist, wenn Sie jQuery verwenden. In der Tat, wenn Sie jQuery und nicht die MS Ajax Handler in MVC verwenden, ignoriert IE alle diese Attribute, die Sie für Ihre Methoden festgelegt haben. – James
Ich habe sowohl jQuery und die MS-Client-Bibliothek gebloggt für das IE-Cache Problem Festsetzung:
http://yoavniran.wordpress.com/2010/04/27/ie-caching-ajax-results-how-to-fix/
hoffte, das hilft!
Ich fand das auch sehr nützlich auf einem ähnlichen (aber nicht identisch) Problem.
Grundsätzlich sicherstellen, dass Sie POST verwenden im Gegensatz in Ihren Anfragen zu erhalten. Dies scheint zu verhindern, dass der IE zwischengespeichert wird.
ZB:
@ Ajax.ActionLink ("Clear Kontakte", MVC.Home.ClearContacts(), neu Ajaxoptions {Httpmethod = "POST", UpdateTargetId = "targetDiv"})
können Sie verwenden HttpMethod = "POST"
auf Ajaxoptions
var ajaxOpts = new AjaxOptions { UpdateTargetId = "TargetDiv", HttpMethod = "POST"};
wie diese exp;
@Ajax.ActionLink("Text","ActionName", new AjaxOptions { UpdateTargetId = "TargetDiv", HttpMethod = "POST"})
Wenn Sie die Ajax-Helfer verwenden, können Sie den AllowCache
Parameter false
wie folgt festgelegt:
@Ajax.ActionLink("AjaxCall", "AjaxMethod", "DeconflictedFiles",
new { },
new AjaxOptions
{
AllowCache = false,
})
Und IE wird nicht die Ergebnisse des Aufrufs zwischenzuspeichern.
tatsächlich im IE Browser Caching nicht automatisch löschen. aber in Chrom-Skripten arbeiten akzeptiert.so müssen Sie versuchen, für Löschen von Daten in Browser-Ebene.
- 1. Internet Explorer Caching-Datei hochgeladen?
- 2. Richtiger Weg Angular2 http-Request-Caching im Internet Explorer (IE)
- 3. Internet Explorer Cross-Domain-AJAX-Anfragen
- 4. AJAX arbeiten nicht in Internet Explorer 9
- 5. Ajax-Anfragen im Internet Explorer anzeigen?
- 6. Sharepoint Ajax Anruf nicht im Internet Explorer
- 7. Internet Explorer Jumpy Scrolling
- 8. Einfacher jQuery Ajax-Anruf verliert Speicher im Internet Explorer
- 9. AngularJS und Internet Explorer
- 10. Timeout bei besetztem Internet Explorer
- 11. Seleniums wait_for_condition in Internet Explorer
- 12. Text Rotation auf Internet Explorer
- 13. Internet Explorer Problem
- 14. Internet Explorer Dropdown-Rahmen
- 15. Internet Explorer-Fensterposition erwerben
- 16. Internet Explorer Javascript Leistungsproblem
- 17. Versteckter Internet Explorer starten
- 18. Internet Explorer - Flexbox Bildverhältnis
- 19. cloneNode im Internet Explorer
- 20. Internet Explorer Problem - Laufzeitfehler
- 21. Internet Explorer automatisieren
- 22. Array.from im Internet Explorer
- 23. oninvalid Ereignis & Internet Explorer?
- 24. Internet Explorer Ausgabe
- 25. unterstützt Internet Explorer e.preventDefault
- 26. Suchanbieter installieren [Internet Explorer]
- 27. Internet Explorer 8 + Deflate
- 28. Internet Explorer Kompatibilität Katastrophe
- 29. Zugriffsmikrofon auf Internet Explorer
- 30. Winkelmesser Internet Explorer Langsamkeit
Mögliches Duplikat von [Unerwartetes Caching von AJAX führt zu IE8] (http://StackOverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie-8) –