Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

script läuft im IE nicht.

Diskussion: script läuft im IE nicht. im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige heyho, hab folgendes script was in firefox und opera einwandfrei läuft. allerdings macht das im IE blödsinn und schreibt ...

Antwort
Alt 02.12.08, 17:48   #1 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
script läuft im IE nicht.

Anzeige

heyho, hab folgendes script was in firefox und opera einwandfrei läuft. allerdings macht das im IE blödsinn und schreibt da gar nicht aktuelle werte rein.
jemand ne idee, woran das liegen könnte?

Code:
function req(url,div_name,method,post){

    if (!document.getElementById(div_name)) {
        return 0;
    }

    try {
        // Firefox, Opera 8.0+, Safari
        var xmlHttp1=new XMLHttpRequest();
    } catch (e){
        // Internet Explorer
        try {
            xmlHttp1=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e){
            try {
                xmlHttp1 = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    
    
    xmlHttp1.onreadystatechange = function(){
        
        if(xmlHttp1.readyState==4){
            var content = xmlHttp1.responseText;
            document.getElementById(div_name).innerHTML = content;
        }
    }
    
    xmlHttp1.open(method,url,true);
    xmlHttp1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp1.send(post);
    
}

function sendShout(e) {
    if (e.keyCode != 13) {
        return false;
    }
    
    if (!document.getElementById("username")) {
        return 0;
    }
    
    var msg = document.getElementById("shoutinput").value;
    var user = document.getElementById("username").value;
    document.getElementById("shoutinput").value = '';
    
    var post = "user=" +user+"&text=" + Base64.encode(msg);

    req("/include/shoutbox.php?ajax=1","shouttext","POST",post);
}

function initbox() {
    var url = "/include/shoutbox.php";
    
    req(url,"shouttext","GET",null);
    s=setTimeout("initbox()",10000);
}

function timer() {
    
        
    if (!document.getElementById("resetbox")) {
        return 0;
    }

    
    req("/include/gettime.php","resetbox","get",null);
    t=setTimeout("timer()",1000);
}

var s=setTimeout("initbox()",500);
var t=setTimeout("timer()",1000);
das eigentlich problem bezieht sich auf timer();

getestet mit dem IE 7 unter Vista x64, ff und opera machen keine probleme und erzählen auch nichts von problemen.

link zur seite ums live zu sehen wäre das hier: http://do-not-press-this-button.verfriemelt.org/

ich formuliers nochmal deutlicher:
wenn ich zb in den shoutbox kasten was eingebe, sendet der die daten an den server und fragt per ajax request den server nach neuen inhalten ab.
wenn dann aber der timer wieder aktiv wird stehen wieder die alten daten drin. allerdings weis ich nicht warum.
als ob der IE das aus dem cache auslesen würde!
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 02.12.08, 19:27   #2 (permalink)
gelöscht
Guest
 
Likes:
Standard

Hallo easteregg,

schau Dir doch mal das an bitte

http://de.wikipedia.org/wiki/XMLHttpRequest

http://msdn.microsoft.com/en-us/library/ms759148.aspx

wird Dir sicherlich helfen, so denke ich.

Grüße

Zephyros
  Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 02.12.08, 21:51   #3 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Standard RE: script läuft im IE nicht.

Zitat:
Original von easteregg
wenn dann aber der timer wieder aktiv wird stehen wieder die alten daten drin. allerdings weis ich nicht warum.
als ob der IE das aus dem cache auslesen würde!
Ohne das jetzt en detail untersucht zu haben: genau das kann passieren. Wenn du 2 gleichlautende Requests über den IE absetzt, dann kann es sein, dass das Ergebnis des zweiten aus dem Cache kommt. Das kannst du verhindern, indem du einfach an jeden Request noch einen Timestamp als Parameter anhängst (den musst du ja nirgends auswerten).
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 02.12.08, 23:40   #4 (permalink)
404
 
Benutzerbild von 404
 
Registriert seit: 28.11.04
404 Leistung: Z3
404 eine Nachricht über ICQ schicken
Likes: 0
Standard

LX hat ganz Recht. Das Ergebnis der Requests kommt laut Debugbar definitiv aus dem Cache:

Request start time: Tue, 02 Dec 2008 23:35:40 All request retrieved from cache (no server request)

Zu deiner Implementierung mal ein genereller Hinweis:

Ich würde es vermeiden der Server mit sovielen unnötigen Requests zu bombadieren. Du kannst den Timer auch in Javascript weiterzählen lassen, und die Serverzeit nur alle ein paar Sekunden (also nicht jede Sekunde!) abgleichen... Spart ne Menge nutzloser Requests
__________________
Major Fault, General Error and Colonel Panic came together to celebrate timeout.


------------------------------------------------
http://www.shick.de/
------------------------------------------------
404 ist offline   Mit Zitat antworten
Alt 03.12.08, 01:18   #5 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

danke für die links erstmal, aber ich hab auf den seiten gar nichts weiter zu dem caching verhalten da gefunden.
welchen timestamp meint ihr genau?
den von dem dokument was ich abrufe? denn das wird ja mit php generiert, sprich das sollte doch eigentlich gar nicht gecached werden?
soll ich da jetzt extra nochmal den aktuellen zeitpunkt in den headerdaten manuell setzen?

ps: zum thema server bombadieren, das stimmt, an sich nen sehr schlechter stil.
allerdings hatte ich das js zeug bis jetzt nur schnell zusammengefrickelt, damit es überhaupt läuft. vorher sah das noch schlimmer aus, die server entlastung steht ganz oben mit auf meiner todoliste derzeit sinds bei weitem auch nicht so viele nutzer, als dass das derzeit ins gewicht fällt. das wird aber noch optimiert
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 03.12.08, 03:20   #6 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Ich meinte damit, einen Dummy-Parameter an jeden Request anzuhängen.

/blubb.php?foo=1&bar=2&timest=432434587

ist was anderes als

/blubb.php?foo=1&bar=2&timest=573423746

auch wenn die für dich interessanten Parameter (hier mal beispielsweise foo und bar) alle gleich geblieben sind. 2 verschiedene URLs bedeutet für den Browser, dass er da nix aus dem Cache holen kann, denn dass timest für dich überhaupt keine Rolle spielt, kann ja der IE net wissen
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 03.12.08, 09:38   #7 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

achso, jetzt versteh ichs!
allerdings würd mich ja mal interessieren, warum der IE das überhaupt aus dem cache holt, eigentlich ja nicht ganz nachvollziehbar!
danke. ich werds gleich mal einbauen

edit: super, funktioniert einwandfrei!
vielen dank!
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » script läuft im IE nicht.
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
WLAN läuft nicht manuelwie Linux/UNIX 9 21.09.09 19:34
MSN Videounterhaltung läuft nicht rece Applikationen 4 08.05.09 00:44
mpg läuft nicht crusius Music- & Filmbox 1 04.01.04 16:49
Bilder werden nicht angezeigt und Radio läuft nicht!?? Tron Windows 4 06.07.03 16:54
SidewinderGampad läuft nicht auf XP! Tron Windows 11 10.05.03 19:41


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61