Avatar billede klaoklao Nybegynder
24. januar 2010 - 14:08 Der er 2 kommentarer og
1 løsning

Javascript gør at alle bogstaver ikke registeres

www.mxgalleri.dk brokker vores brugere sig over at nogle taste slag ikke bliver registeret. Først afviste vi det blot ved at du sikkert ikke ramte rigtigt på keyboardet, men har senere erfaret at der er noget der forstyrre.

Vi regner med at det er noget af vores javascript. Vi har nemlig en funktion som hvert 5. sekund tjekker for opdateringer.

Det er som om at browseren lige fryser i 0,0001 sekund.

Koden til denne ser således ud, hvad kan vi gøre ved dette? Nogle forslag? Bruger vi setTimeout forkert?

Kode:

var timeoutID;
function checkfornewinfo() {
    var content = ajaxcheck('friendsonline.php');
    if(content != '') {
        clearTimeout(timeoutID);
        document.getElementById('infotext').style.display = 'block';
        document.getElementById('infotext').style.height = '28px';
        var so = new SWFObject("/includes/player.swf", "mp3player", "0", "0", "8", "#ffffff");
        so.addVariable("file", "/includes/sounds/logonsound1.mp3");
        so.write("flashcontent");
        if(content.search('kommentar') != '-1') {
            var newcomments = document.getElementById('numbernewcomments');
        }
        if(content.search('gæstebogsindlæg') != '-1') {
            var newtags = document.getElementById('numbernewtags');
        }
        if(content.search('brev') != '-1') {
            var newmails = document.getElementById('numbernewmails');
        }
        document.getElementById('infotext').innerHTML = content;       
        timeoutID = setTimeout('closeinfobox()', 10000);
    }
    setTimeout('checkfornewinfo()', 5000);
}
Avatar billede intenz Novice
24. januar 2010 - 14:57 #1
Javascript i sig selv får ikke browseren til at fryse. Det sker typisk når større datamængder skal indlæses.

Mit umiddelbare gæt er, at det er fordi du indlæser et flash element hver gang. Er det nødvendigt?
Avatar billede intenz Novice
24. januar 2010 - 15:34 #2
Nu ved jeg ikke hvor stor mængde data du sender tilbage i 'content'. Men hvis det er en større mængde data, kan det også være problemet.
Avatar billede klaoklao Nybegynder
24. januar 2010 - 22:47 #3
Vi fandt selv fejlen et helt andet sted.

xmlHttp.open('POST', url, false); skal være xmlHttp.open('POST', url, true);

Det styrer åbenbart om brugerne må lave browser indput mens vores ajax arbejder.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester