07. september 2009 - 15:52Der er
12 kommentarer og 1 løsning
Rendere HTML hurtigt
Hej
Jeg står overfor en opgave med at få en enorm lang liste renderet hurtigt (også i IE :-)). Det er ikke en mulighed at reducere listen, eller benytte paging.
Jeg kunne godt tænke mig at give brugeren en oplevelse af at der sker noget løbende, så han ikke skal vente til hele siden er renderet med at se noget.
Muligheder jeg selv ser: 1. Bruge AJAX til at rendere en lille del ad gangen. 2. Lade browseren gøre det løbende. (det er denne mulighed jeg ikke er klar over hvordan man får implementeret)
Der er slet ikke adgang for søgemaskiner, så det er ligegyldigt. Det jeg egentlig håbede på var en "best practice" for at få renderet meget html. Når du ser en webside loade, vil der være elementer der kommer med det samme og nogle ting du venter på. Hvordan styrer jeg det? Hvad er grunden til at noget præsenteres med det samme?
Det er ren HTML, og jeg er også lidt bange for div'er til kolonne udskrivning. Jeg er ved at kigge lidt på javascript til indlæsning af størstedelen. Altså lade brugeren få skærmen fyldt med et samme, og så noget javascript der i onload() fylder resten af rækkerne på.
Umiddelbart ville jeg forsøge med en tom tabel, der hentede en passende klump fra serveren og så fyldte tabellen om (f.eks. vha. jQuery eller lign. bibliotek). Disse klumper skulle så bare hentes sålænge serveren kunne levere flere. Du kan sende data i JSON og behandle dem på klienten.
Jeg ville nok først forsøge at forsyne tabellen med flere/mange tbody elementer - og nok også forsøge med et tfoot element, anbragt i toppen af tabellen. Mon ikke det kan 'snyde' IE?
Vi endte med at opbygge tabellen med javascript, efter en række arrays var blevet sendt til browseren. Dvs. ingen partiel rendering, men ideen, har vi fået lov at bruge tid på senere, så jeg vil gerne give dig pointene.
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.