Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bardzo długa treść strony
Forum PHP.pl > Forum > Po stronie przeglądarki
mathijas
Witam,

Mam do wyświetlenia tabelkę, około 4tys wierszy po 20 kolumn każda, podzielonych na około 100 kategorii. Wygenerowany HTML to około 3MB. Stronicowanie odpada - ma być wszystko na jednej stronie, bo inaczej ... ! cool.gif

Strona nie wczytuje się super długo - około minuty z localhosta - nie jest też problemem transfer - jaki kto ma, taki ma. Jednak plan jest aby użytkownik wchodząc na taką stronę nie czekał wcale, ot co. Funkcjonalność powinna być taka, że wczytuje się na początku jedna kategoria, potem kolejne - zanim użytkownik przejrzy początek, tyły zdążą się załadować. Coś, co przy ładowaniu 3-megowego HTMLa jest niedostępne, jako że strona okropnie się tnie podczas wczytywania i paskiem nie da się przewijać.

Tyle teorii. Zrobiłem to AJAXem, zakładany spadek prędkości wczytywania został osiągnięty, ale prędkość wyświetlania jest również kiepska. JavaScript ładując kolejne tabelki blokuje w znacznym stopniu płynność działania przeglądarki - efekt jest taki, że przesuwając pasek na chwilę cały ekran przykrywa się bielą i po chwili dopiero pojawiają się spowrotem tabelki (na szczęście te, które miały się pokazać).

Moje pytanie: jak spowolnić cały proces tak, aby wczytywanie szło gdzieś sobie w tle, a użytkownik mógł machać w tym czasie myszką po ekranie do woli?

Albo może zupełnie źle do tego podszedłem? Może ktoś widział taki efekt gdzieś i mógłby podać linka?

Za wszelkie pomysły z góry dziękuję.
mike
Cytat(mathijas @ 28.10.2008, 10:33:09 ) *
Albo może zupełnie źle do tego podszedłem? Może ktoś widział taki efekt gdzieś i mógłby podać linka?
Podejście masz dobre. Z realizacją nie wiem jak bo nie mamy wglądu.
Ale taki efekt jak Ciebie interesuje jest na dzone. Przewijaj linki w dół, po pewnym czasie zaobserwujesz zaczytywanie nowych.
mathijas
Przejrzałem, dzięki za info, choć nie do końca spełnia moje kryteria - na dzone doczytywanie pojawia się w momencie dojechania do końca strony - ja potrzebuję od razu. Ale widzę, że pomimo doczytywania pasek jest w miarę ruchomy - może to rzeczywiście jakaś droga. Zaraz wygrzebię źródło i zobaczę jak to działa smile.gif.
nevt
ja podobny problem rozwiązałem tak:

na starcie ładuję tylko spis treści i treść pierwszego akapitu, każdy punkt spisu ma przypisaną funkcję JS do zdarzenia onclick, do której przekazuję atrybut id pustego<div> umieszczonego pod tym punktem.
w tej funkcji, wywoływanej po kliknięciu przez użytkownika w pozycję spisu, przez AJAX pobieram treść odpowiedniego akapitu i wklejam do <div> o odpowiednim id. w ten sposób wszystko działa bardzo płynnie, użytkownik ma cały spis treści załadowany od razu, a fragmenty dokumentu szybko doczytują się w miarę czytania.

pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.