Beginnen met een minfied script is natuurlijk leuk, maar om de lezer niet dol te laten draaien:
Goed, het werkt weer is niet. Maar wat werkt er dan niet, TS? Nou, een chatboxje dat ik men een andere tweak0rz heb gemaakt. Deze chatbox ververst zichzelf om de seconde met Ajax. Die Ajax runt een PHP-paginaatje. En de PHP plukt de chat uit een database. Pretty much all there is.
Dit werkt natuurlijk allemaal goed op alternatieve browsers, maar het werkt niet op IE (standaardverhaal). Of tenminste, IE9. Wat de code doet:
Er gebeuren namelijk gare dingen met de benchmarkscores van dit ding. Browsers als IE7 op een Pentium M op een PC die 99% op pagefile draait haalt letterlijk 80ms, terwijl Chrome er gewoon 110ms van bakt.
JavaScript:
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
| function chat(cpag,npag,citm,nitm){ var pre=new Date().getTime(); if(cpag||citm||window.npag==undefined||window.nitm==undefined){ if(cpag||window.npag==undefined){ window.npag=npag; document.getElementById("commentform").com.focus(); } if(citm||window.nitm==undefined){ window.nitm=nitm; document.getElementById("commentform").com.focus(); } var menu=new XMLHttpRequest(); menu.open("GET","menuwrite.php?npag="+window.npag+"&nitm="+window.nitm,true); menu.setRequestHeader("Content-Type","text/html"); menu.onreadystatechange=function(){ if(menu.readyState==4&&menu.status==200){ document.getElementById("pages").innerHTML=menu.responseText; document.getElementById("listpost").style.height=Math.round(0.98*window.innerHeight-179,0)+"px"; } } menu.send(); } var post=new XMLHttpRequest(); post.open("GET","dbwrite.php?npag="+window.npag+"&nitm="+window.nitm,true); post.setRequestHeader("Content-Type","text/html"); post.onreadystatechange=function(){ if(post.readyState==4&&post.status==200){ document.getElementById("listpost").innerHTML=post.responseText; document.getElementById("duration").innerHTML=new Date().getTime()-pre; if(!cpag&&!citm){ setTimeout("chat(false,"+window.npag+",false,"+window.nitm+")",1000); } } } post.send(); } |
Ik heb het een beetje leesbaarder gemaakt her en der tijdens postmaken, dus er kan wat gaars ingeslopen zijn wat NIET de oorzaak is van het probleem
Goed, het werkt weer is niet. Maar wat werkt er dan niet, TS? Nou, een chatboxje dat ik men een andere tweak0rz heb gemaakt. Deze chatbox ververst zichzelf om de seconde met Ajax. Die Ajax runt een PHP-paginaatje. En de PHP plukt de chat uit een database. Pretty much all there is.
Dit werkt natuurlijk allemaal goed op alternatieve browsers, maar het werkt niet op IE (standaardverhaal). Of tenminste, IE9. Wat de code doet:
- De code wordt elke seconde aangeroepen. De tijd wordt opgeslagen
- Als we van pagina verwisselen: werk inhoudsopgave bij.
- Als we de pagina openen voor het eerst of bij Submit, focus op tekstveld.
- Werk dan met een PHP-scriptje dat HTML-code spuugt de inhoudsopgave-div bij. Anync a.u.b.
- En werk wel gewoon altijd de div met de posts bij. Ook Ajax, ook async.
- Zijn we klaar? Schrijf tijd op, doe een timeout en lijn pagina mooi uit zodat de CSS3 er des te beter uitziet.
- De consoles van de browsers op fouten aflopen, niks gevonden. Alle browsers waar we moeilijk om doen passen (FF3,IE8+).
- Het honderdmiljoen keer proberen. Werkt niet.
- Het cache van IE9 clearen. Dan gaat 'ie gelijk weer verder. Eén keertje dan.
- De GET returnt verder geen foutcodes.
- Er wijzigt ook niks, want de laadtijd is 2ms (70-100ms is wat de andere browsers halen).

Er gebeuren namelijk gare dingen met de benchmarkscores van dit ding. Browsers als IE7 op een Pentium M op een PC die 99% op pagefile draait haalt letterlijk 80ms, terwijl Chrome er gewoon 110ms van bakt.
