Avatar billede kongknabe Nybegynder
21. november 2007 - 16:52 Der er 13 kommentarer

Javascript, perfomance og Firefox - problem!?

Hejsa..

Er pt ved at udvikle en online drinksguide med en ven, og vi er rendt ind i et problem i forhold til Firefox på Mac.

Vi har lavet en AJAX baseret søgning hvor man kan indtaste navnet på en drink, eller starten af navet, hvorefter den dynamisk opdatere en liste med drinksopskrifter. Kort fortalt henter vi bare resultaterne fra databasen og skriver dem ind i DOMen. Problemet er at så snart denne liste vises i Firefox på Mac, ryger Firefox straks op og bruger ca. 70-80% af min CPU - vedvarende! (Så længe tabellen med drinksopskrifter er synlig ligger Ff konstant på dette CPU forbrug)

Jeg bruger en MacBook Pro 2.3 GHz intel Core 2 Duo, så det virker helt vanvittigt at Firefox synes det er SÅ hårdt at håndtere så simpel en liste synes jeg...

Kan ikke lige se at vi har lavet nogle fejl, men det kan sagtens være... Så derfor dette indlæg :-)

En beta version af vores drinksguide kan ses her: www.drinksonline.dk/beta

Scriptet der indskriver tabellen med drinksresultater kan ses her:

www.drinksonline.dk/beta/js/drinks_table.js

Mvh. Rasmus

NB: Siden er stadig beta, så der er småfejl og bugs rundt omkring.. Vi er heller ikke nået til at supportere alle browsere endnu, f.eks. virker den vist ikke i hverken IE6 eller 7 endnu... - Den absolut bedste performance får man i Safari3 / WebKit - både til PC og Mac :-)
Avatar billede w13 Novice
21. november 2007 - 17:24 #1
Nu kan jeg ikke få den til at vise nogen som helst liste, når jeg prøver at skrive noget i søgefeltet. Dog for jeg en "keyCode er null eller ikke et objekt"-javascript-fejl.

Men det, du oplever, er bagsiden af Ajax. At kalde en anden side på den måde er ikke noget let trick for din server, medmindre du tænker meget grundigt over, hvordan du opbygger din kode.

Hold koden på et minimum. Brug kun gyldig DOM. Overfør evt. data fra Ajax med XML.
Hvordan overfører du nu? Altså hvordan henter du fra databasen og udskriver det?

I øvrigt er det jo også krævende nok for den, hvis den f.eks. skal foretage en Ajax-søgning, hver gang der trykkes på en tast.

Hvordan ser din Ajax-kode ud?
Avatar billede roenving Novice
21. november 2007 - 17:29 #2
Brug json i stedet for xml, hvis du kan !-)
Avatar billede kongknabe Nybegynder
21. november 2007 - 17:52 #3
w13 - Hvilken browser bruger du?

"I øvrigt er det jo også krævende nok for den, hvis den f.eks. skal foretage en Ajax-søgning, hver gang der trykkes på en tast."

Ja, men det er som sagt ikke søgningen der er problemet så vidt jeg kan se.... Problemet opstår selvom man ingenting gør... Hvis jeg går ind på siden, markere søgefeltet til venstre og trykker "a" - så henter den listen over drinks der starter med "a". Hvis jeg så ellers lader siden være og intet gør, bliver den ved med vedvarende at bruge de 70-80% af min CPU. - Tilsyneladende skal den bruge så meget bare for at være til - hvis det giver mening?

roenving - Så vidt jeg ved bruger vi allerede json (Det er ikke mig der har programmeret den del men min ven)
Avatar billede w13 Novice
21. november 2007 - 18:09 #4
Jeg bruger IE7. Og kan nu se, du skriver, det ikke virker der. Sorry. =)

Hvis I bruger JSON er I i hvert fald godt på vej.

Hvis ingen koder køres, burde CPU'en da klart falde ned igen. Hmm.
Avatar billede kongknabe Nybegynder
21. november 2007 - 18:28 #5
w13: "Hvis ingen koder køres, burde CPU'en da klart falde ned igen. Hmm."

Nej, helt enig.. Også derfor jeg spørger herinde... Enten må der være tale om en Ff/mac specifik bug, eller også har vi lavet en kæmpe brøler et sted.. Bare underligt at problemet kun forekommer i Firefox, eller andre browsere på samme enginge, på Mac!?
Avatar billede w13 Novice
21. november 2007 - 18:51 #6
Min CPU laver det samme, når jeg bruger Firefox på PC, så det er altså ikke en Mac-specifik fejl.
Avatar billede kongknabe Nybegynder
21. november 2007 - 18:54 #7
Ok, I så fald må det være noget gennerelt i forhold til Gecko !? - Er det så en bug eller en fejl fra vores side?
Avatar billede kongknabe Nybegynder
22. november 2007 - 16:14 #8
Er olebole ikke aktiv herinde længere..? - Er sikker på han med det same havde vist hvad fejlen er :-)
Avatar billede w13 Novice
22. november 2007 - 16:43 #9
Ja, det tror jeg også. =) Han har været væk i et par dage, tror jeg :P Håb han kommer forbi.
Avatar billede kongknabe Nybegynder
22. november 2007 - 17:13 #10
Ja ok... Ville være rigtig lækkert at finde en løsning på dette :-)
Avatar billede roenving Novice
24. november 2007 - 16:12 #11
-- og jeg kan se noget lignende på visse hjemmesider, hvor firefox/XP medfører at 'optaget'-cursoren vises, eksempelvis http://www.ejendomskontoret.info/HomepageA.htm hvor den også viser at siden er i gang med indlæsning, uanset hvor lang tid man er der (der er dog ikke tegn på ekstraordinært cpu-forbrug!-)
Avatar billede kongknabe Nybegynder
24. november 2007 - 17:35 #12
Hmm.. På Mac oplever jeg ikke lige noget underligt på den adresse du linker til!? - Men du har ingen ide om hvad der sker på vores side? - Der er ikke nogle åbenlyse fejl i koden eller noget?
Avatar billede kongknabe Nybegynder
27. november 2007 - 03:10 #13
Æv, har satdig ikke fundet en løsning på problemet.. Ingen der kan hjælpe? :-)
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