Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: czy element "widać"

Mam taki problem
Mam tablicę obiektów.
Każdy obiekt powiązany jest z elementem DOM poprzez property ID
Po odebraniu danych z serwera robię pętle po tablicy wywołując dla każdego obiektu metodę UPDATE

I wszystko gra ale ....

Część obiektów jest np na tabach czy oknach modalnych a dodatkowo jest zagnieżdżona w strukturze DOM
a co za tym idzie przez większość czasu niewidoczna więc ich aktualizacja jest stratą czasu
Pytanie wiec jak, bez podawania parenta (masterparenta) sprawdzić czy element "widać"

Próbowałem robić pętle od elementu <div id='xx'> w górę DOM i sprawdzać czy któryś z rodziców ma css hidden czy not visible ale po pierwsze chyba coś robię nie tak, po drugie wydaje mi się że iteracja po DOM będzie bardziej "kosztowna" niż update niewidocznych elementów.

Żeby od razu odrzucić zbędne dywagacje - silnik odpowiedzialny za aktualizacje obiektów nie zna struktury DOM na etapie projektowania więc wszelkie pomysły typu sprawdź czy widoczna jest zakładka odpadają

konto usunięte

Temat: czy element "widać"

Ja raczej trzymam się nie elementów ale kontenerów. Dostają identyfikator, odpowiednie flagi i tzw źródło danych (info mówiące skąd wziąć najnowsze dane). Na tej podstawie wiem co aktualizować w momencie aktywowania okna/zakładki itp.

Testowanie pojedynczych elementów to niepotrzebne utrapienie. Ale jeżeli już musisz to zasada jest prosta. Robiąc interfejs trzymam się zasady że element niewidoczny ma pozycję poza widzialnym obszarem lub ma zerową wysokość/szerokość.

I po kłopocie.
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: czy element "widać"

Dariusz P.:
I po kłopocie.

Tak jak pisałem - silnik nie wie nic o strukturze DOM.
Po uruchomieniu aplikacji z innego skryptu dostaje serię poleceń w stylu

w kontenerze div o id utwórz obiekt określonego typu który ma się zmieniać wraz ze zmienną X

Każdy konstruktor rejestruje nowy obiekt na liście a silnik co jakiś czas pyta server o zmiany po czym informuje obiekty że coś się zmieniło i mają zadecydować czy podjąć akcję.

Problem jest taki że w jednej aplikacji obiektów może być np 100 a aktualizacja może być co
1 sekundę. a niektóre obiekty to np trendy rysowane na canvasie które muszą "dociągnąć" dodatkowe dane więc gdy są niewidoczne to zużywają niepotrzebnie masę mocy ;(

konto usunięte

Temat: czy element "widać"

Wojciech M.:
jak, bez podawania parenta (masterparenta) sprawdzić czy element "widać"

Jest coś takiego jak:

$(element).is(":visible")

Następna dyskusja:

Schowek w IE6 i IE7 - dziur...




Wyślij zaproszenie do