2016-03-21 9 views
1

Ich versuche einen Chat zu machen, der im Internet Explorer funktionieren muss. Code für die Inhaltsaktualisierung ist unten (ich weiß, es könnte besser gemacht werden, aber es funktioniert in jedem anderen Browser ...)Seiteninhalt wird nicht im Internet Explorer aktualisiert (erst nach dem erneuten Öffnen des Browsers)

Aber im IE, Skript funktioniert (ich meine, es ist das Aktualisieren), aber Inhalt ist immer noch das gleiche. Selbst wenn ich etwas in die Datei "chat_vypis.php" schreibe ... Wenn ich versuche, es mit F5 zu aktualisieren, funktioniert es nicht so gut ... In "chat_vypis.php" ist nur SELECT Abfrage und echo mit Ergebnis. Sie können es auf sdbt.mobydyk.cz überprüfen.

Hier ist Skript für aktualisieren, danke für jeden Rat!

<script type="text/javascript"> 
$(document).ready(function(){ 

    var auto= $('#chat'); 
    var refreshed_content; 
     refreshed_content = setInterval(function(){ 
     auto.load("chat_vypis.php");}, 
     1000);          
     console.log(refreshed_content);          
     return false; 
}); 
</script> 
+0

haben Sie versucht, location.reload(); – damitj07

+0

Gelöst mit Hinzufügen einer Zufallszahl nach dem Link zu chat_vypis.php. Lösung gefunden hier: http://stackoverflow.com/questions/1061525/jquerys-load-not-working-in-ie--but-fine-in-firefox-chrome-and-safari –

Antwort

0

IE ist vielleicht Caching der Ajax-Anfrage und sendet sie nicht einmal. Versuchen:

$.ajaxSetup({ cache: false }); 

am Anfang des Dokuments bereit Funktion

0

Zwei Dinge, die Sie tun können:

1) Deaktivieren Sie alle AJAX-Caching. Sie möchten dies wahrscheinlich nicht tun, da es das gesamte jQuery-Caching für jede Ajax-Anfrage deaktiviert, die Sie auf derselben Seite machen, es sei denn, Sie setzen in allen anderen Ajax-Anfragen "cache": true.

$(document).ready(function() { 
    $.ajaxSetup ({ 
     cache: false 
    }); 
}); 

2) den Browser Trick zu denken Sie jedes Mal eine andere Seite sind anfordernden (dies zu beachten ist, was Cache AJAX ausschalten die Kulissen für jede Anforderung tut hinter sowieso) .:

<script type="text/javascript"> 
$(document).ready(function(){ 

    var auto= $('#chat'); 
    var refreshed_content; 
     refreshed_content = setInterval(function() { 
      auto.load("chat_vypis.php?_="+Math.floor((Math.random() * 1000000) + 1)); 
     }, 1000);          
     console.log(refreshed_content);          
     return false; 
}); 
</script> 

in der Theorie können Sie diese auch auf der Serverseite setzen (oben, bevor irgendeine Ausgabe geöffnet ist):

<?php 
header("Cache-Control: no-cache"); 
header("Pragma: no-cache"); 

?> 

jedoch IE dies in der Regel ignoriert (vor allem, wenn der Inhalt CSS oder JS ist).

Verwandte Themen