Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [JQuery] (load clik toggle) Czy da się to uprościć?
KotWButach
post 3.07.2014, 14:51:22
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Witam
Mam kod i zastanawiam się czy i jak można by go skrócić czy możecie pomóc?

  1. $('.table-component').on('click', '.filters', function() {
  2. $('.menu-filters').load('load/test.html'); // menu
  3. });
  4.  
  5. // ukrycie
  6. $('.menu-filters').hide();
  7.  
  8. // Obsłużenie kliknięcia
  9. $('.table-component').on('click', '.filters', function(event) {
  10. event.stopPropagation();
  11. $('.menu-filters').toggle();
  12. });
  13.  
  14. // schowanie
  15. $(document).click(function() {
  16. $('.menu-filters').hide();
  17. });


Ten post edytował KotWButach 3.07.2014, 14:51:58
Go to the top of the page
+Quote Post
SmokAnalog
post 3.07.2014, 18:54:40
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Czy zawartość pliku test.html jest jakaś wybitnie długa? Jeśli nie, to niech będzie normalnie w źródle.

Ukrycie .menu-filters załatwiłbym w CSS (display: none), a nie jQuery.
Go to the top of the page
+Quote Post
proszek
post 4.07.2014, 15:24:33
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


Wszystko co da się zrobić za pomocą CSSa powinno się nim robić - to tak na przyszłość. Optymalnie w JS dodajesz tylko albo odejmujesz odpowiednie klasy.
Go to the top of the page
+Quote Post
SmokAnalog
post 4.07.2014, 23:22:58
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(proszek @ 4.07.2014, 16:24:33 ) *
Wszystko co da się zrobić za pomocą CSSa powinno się nim robić - to tak na przyszłość. Optymalnie w JS dodajesz tylko albo odejmujesz odpowiednie klasy.

W tym przypadku mam inne zdanie. Po co bałaganić CSS kolejnymi klasami, kiedy jedyną różnicą jest widoczność elementu? To jest jedna (a może jedyna?) z tych właściwości, które lepiej zdają egzamin jako inline style.

Ten post edytował SmokAnalog 4.07.2014, 23:23:14
Go to the top of the page
+Quote Post
pedro84
post 4.07.2014, 23:30:16
Post #5





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 5.07.2014, 00:22:58 ) *
W tym przypadku mam inne zdanie. Po co bałaganić CSS kolejnymi klasami, kiedy jedyną różnicą jest widoczność elementu? To jest jedna (a może jedyna?) z tych właściwości, które lepiej zdają egzamin jako inline style.

I wtedy zaśmiecisz HTML. Struktura dokumentu CSS naprawdę nie ucierpi jeśli dodasz do niej dwie klasy: .hidden, .visible. A style inline są zawsze "be".


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2014, 00:09:30
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(pedro84 @ 5.07.2014, 00:30:16 ) *
A style inline są zawsze "be".

To twoje zdanie wink.gif Ja trzymam się swojego zdania na temat display: none. Nie podobają mi się klasy typu "hidden", bo to tylko prosty tymczasowy stan, a nie jakaś rodzina właściwości. Ale to już dyskusja filozoficzna, każdy ma swoje zdanie.
Go to the top of the page
+Quote Post
pedro84
post 5.07.2014, 00:22:25
Post #7





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 5.07.2014, 01:09:30 ) *
To twoje zdanie wink.gif Ja trzymam się swojego zdania na temat display: none. Nie podobają mi się klasy typu "hidden", bo to tylko prosty tymczasowy stan, a nie jakaś rodzina właściwości. Ale to już dyskusja filozoficzna, każdy ma swoje zdanie.

Klasa ma zasadniczy jeden argument "za". Co w przypadku n elementów? Wstawiasz wszędzie style inline?

Poza tym, to nie odnosi się tylko do tymczasowego stanu - to zwykła klasa helpera i tyle.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2014, 01:12:10
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(pedro84 @ 5.07.2014, 01:22:25 ) *
Klasa ma zasadniczy jeden argument "za". Co w przypadku n elementów? Wstawiasz wszędzie style inline?

Tak, dokładnie to. Nie widzę problemu.
Go to the top of the page
+Quote Post
Pyton_000
post 5.07.2014, 09:21:00
Post #9





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ap porem zmiana pierdyliard styli inline doprowadza kolejnych programistów do szału.

Jedynym miejscem gdzie akceptuję inline są newslettery.
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2014, 15:58:45
Post #10





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 5.07.2014, 10:21:00 ) *
Ap porem zmiana pierdyliard styli inline doprowadza kolejnych programistów do szału.

Przecież mówimy o przypisywaniu stylów z jQuery, więc co chcesz ręcznie zamieniać?
Go to the top of the page
+Quote Post
KotWButach
post 7.07.2014, 15:12:59
Post #11





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Dziękuje wam za te porpowiedzi, staram się własnie nie używać Jquery ale w tym przypadku uznałem że trzeba bo ten kod odpowiedzialny jest za każdą kolumnę których jest bardzo wiele:(.
Go to the top of the page
+Quote Post
proszek
post 7.07.2014, 18:31:57
Post #12





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


Nie chodzi o zaśmiecanie kodu bądź nie ale o wydajność. Aczkolwiek oczywiście w tym przypadku wydajność nie ma wielkiego znaczenia bo kwestia jest tylko ukrycia lub odkrycia jednego elementu.
Go to the top of the page
+Quote Post
SmokAnalog
post 7.07.2014, 18:33:24
Post #13





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Trzeba by sprawdzić z ciekawości co jest wydajniejsze, bo coś podejrzewam, że .hide() szybciej zadziała niż dodanie klasy wink.gif
Go to the top of the page
+Quote Post
pedro84
post 7.07.2014, 18:38:34
Post #14





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 7.07.2014, 19:33:24 ) *
Trzeba by sprawdzić z ciekawości co jest wydajniejsze, bo coś podejrzewam, że .hide() szybciej zadziała niż dodanie klasy wink.gif

Zdecydowanie klasa: http://jsperf.com/show-vs-addclass.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
proszek
post 8.07.2014, 10:30:53
Post #15





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


W przypadku animacji jeżeli robisz to za pomocą jquery przy każdej najmniejszej zmianie renderowana jest cala strona, css przelicza tylko jeden element. Sam odpowiedz sobie co jest szybsze smile.gif
Go to the top of the page
+Quote Post
KotWButach
post 17.07.2014, 09:05:58
Post #16





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Cóz mogę powiedzieć smile.gif Fajnie że wywiązała się ciekawa rozmowa smile.gif Ale czy prócz wydajności nie jest również ważna czytelność kodu?
Go to the top of the page
+Quote Post
SmokAnalog
post 17.07.2014, 21:05:31
Post #17





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Zadałeś mądre pytanie. W dzisiejszych czasach czytelność rzeczywiście jest ważniejsza, zwłaszcza po stronie klienta. O ile oczywiście nie mówimy o odczuwalnych różnicach. Ale śmiać mi się chce, gdy ktoś pisze kod na 10 linii zamiast na 3, bo skrypt działa 0.03 sekundy zamiast 0.08.
Go to the top of the page
+Quote Post
proszek
post 17.07.2014, 21:52:36
Post #18





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


Czytelność kodu po stronie klienta? A po co mu to? Kod ma się wykonywać. I powinieneś go dzielić na dwa rodzaje:
1. Kod dla "człowieka" (w domyśle programisty)
2. Kod dla maszyny (w domyśle serwera/przeglądarki)

Kod dla człowieka powinien być maksymalnie przejrzysty, łatwo edytowalny i skalowalny. A po przekompilowaniu powinien być maksymalnie wydajny. I tyle. Dlatego używa się SASSa, Lessa, CoffeeScript, HAMLa i podobnych, żeby ułatwić pracę człowiekowi a potem dla maszyny wygenerować maksymalnie wydajny kod.

Pewnie, że nie ma różnicy w przypadku prostej strony gdzie jest kilkaset linii css i kilka hide(), show(). Ale po co wyrabiać sobie złe nawyki? Po co męczyć się potem skoro i tak trzeba będzie się tego oduczyć w momencie gdy przyjdzie nam pracować nad czymś dużym i konkretnym.
Go to the top of the page
+Quote Post
SmokAnalog
post 17.07.2014, 22:29:32
Post #19





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Miałem na myśli kod, który się wykonuje po stronie klienta. Wspomniałem o tym dlatego, że to są w znacznej większości przypadków różnice totalnie nieważne. Wyjątkiem są strony, które wyświetlają wiele elementów jednocześnie lub zaawansowane animacje. Strona serwera to już inna bajka, bo serwer musi obsługiwać wiele żądań.
Go to the top of the page
+Quote Post
pedro84
post 17.07.2014, 23:47:30
Post #20





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 17.07.2014, 23:29:32 ) *
Miałem na myśli kod, który się wykonuje po stronie klienta. Wspomniałem o tym dlatego, że to są w znacznej większości przypadków różnice totalnie nieważne. Wyjątkiem są strony, które wyświetlają wiele elementów jednocześnie lub zaawansowane animacje. Strona serwera to już inna bajka, bo serwer musi obsługiwać wiele żądań.

Nawet przy prostych stronach, CSS/JS powinno się łączyć i minimalizować - w szczególności w przypadku kiedy strona ma sensownie działać na mobilkach.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:47