![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Problem być może jest trywialny.
Chodzi o to, iż często spotykam się z sytuacją, gdzie muszę z poziomu php przekazać sobie kilka zmiennych opisujących dany znacznik, które potem będę używał w js. Przykładowo: - mam pole input i chcę przekazać informacje o sposobie walidacji (typ_walidacji, min_dlugosc, max_dlugosc, komunikat_bledu). - mam pole select i zestaw opcji, chcę w opcjach schować informację umożliwiające po naciśnięciu przycisku ułożenie ich w drzewko. I tu pytanie - jaki kod html stworzyć w php, by te zmienne sobie schować, nie naprodukować zbędnego kodu html albo nie spowolnić zbytnio strony, i by były dostępne z poziomu DOM we wszystkich przeglądarkach? Aktualnie dane serializuję i chowam w rzadko używanym lang, natomiast denerwuje mnie używanie czegoś niezgodnie z przeznaczeniem. Chowanie zmiennych w polu #id mija się z celem i przeznaczeniem identyfikatora. Dodawanie class jest dobre na flagi, ale nie na stringi, do tego może narobić bałaganu w cssach. Produkowanie dla każdego znacznika sparowanego hiddena to przsadna nadmiarowość. Problem, sądzę, jest na tyle powszechny, że musi istnieć prawidłowe i dedykowane jego rozwiązanie, bez zbędnej kombinatoryki. Będę wdzieczny za sugestie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 5.04.2007 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
Zrób sobie 'namespace' (przestrzeń nazw, umownie oczywiście, bo chodzi o lekką modyfikację nazewnictwa klas dla uniknięcia konfliktu z klasami odpowiedzialnymi za wygląd strony) dla klas, np. 'desc-min-width', gdzie 'desc' to właśnie ta umowna przestrzeń nazw. Tak np. sprawę załatwia lightbox w jQuery, ma swoje 'przedrostki' w nazwach klas, zatem można uznać to za prawidłowe i dedykowane rozwiązanie
![]() Pozdrawiam! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok, czyli jeśli chcę zapisać sobie informację, iż typ walidacji to znaki alfanumeryczne mogę nadać klasę desc-alphanr. To ok i użyteczne
bo od razu daje użyteczny i zależny od typu selektor do przyszłych zastosowań. Jeśli chcę zapisać, że minimalna długość to 5 znaków to użyję klasy desc-min_5, by się do tego dobrać muszę wyciągnąć całe className, explodować klasy, wyszukać tę zaczynającą się na desc-min, explodować po _ i dopiero mam wartość - tu już trochę roboty jest. Zmienna string (po odpowiednim podmienieniu spacji i znaków specjalnych) da już klasę-potworka. Jak nagromadzenie klas w elemencie wpłynie na wydajność? Prędkość interpretacji css, jQuery które musi te wszystkie nadmiarowe selektory sprawdzać, to może nieco spowolnić? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 5.04.2007 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
Ale ten explode po klasach robisz tylko raz i masz wszystko w tablicy. W czym problem
![]() Pozdrawiam! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat I tu pytanie - jaki kod html stworzyć w php, by te zmienne sobie schować, nie naprodukować zbędnego kodu html albo nie spowolnić zbytnio strony, i by były dostępne z poziomu DOM we wszystkich przeglądarkach? JSON. Do jQuery był jeszcze taki plugin, który przechowywał metadane w atrybutach class. ;] Moim zdaniem, najlepszy tu będzie JSON - interplatformowy, radzą sobie wszystkie przeglądarki, PHP również. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 06:48 |