Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ JavaScript _ Framework czy niezależne skrypty?

Napisany przez: WebCM 2.07.2008, 16:18:35

Do tej pory używałem własnych bibliotek JS: http://skocz.pl/_js1, http://skocz.pl/_js2, http://skocz.pl/_js3. Trzeba je jeszcze dopracować i zoptymalizować. Zacząłem znów zastanawiać się nad gotowymi rozwiązaniami, które mogą skrócić czas potrzebny do osiągnięcia ciekawych efektów.

Efekty, które muszę uzyskać:
1. AJAX - pobieranie i wysyłanie danych, przechwytywanie formularzy
2. Okienka (warstwy) z możliwością wyświetlenia obok kursora, na środku bądź równo z przyciskiem
3. Kalendarz - wybór daty i godziny

Przydatne, ale niekonieczne:
1. Sortowanie danych w tabeli
2. Drag & Drop
3. Edytor WYSIWYG
4. Sprawdzanie danych w formularzu
5. Zakładki (np. przy edycji artykułu, który ma wiele stron)

Niestety, większość frameworków jest dość obszerna nawet po kompresji. Wydajność też pozostawia wiele do życzenia. W jednym z testów bada się tylko szybkość przemierzania drzewa przez funkcję $(). Tak naprawdę tylko niektóre jej możliwości są w większości przypadków wykorzystywane.
http://ferrante.pl/2007/12/27/o-frameworkach-i-javascript-slow-kilka
http://www.rockstarapps.com/samples/performance

Czy jest sens korzystać z frameworka + własnych rozszerzeń (bez nich się nie obejdzie), jeśli z większości jego ułatwień nie będziemy korzystać? Przecież gdy napiszemy własny kod, ładujemy tylko te funkcje, które są potrzebne w projekcie. Skrypt może stać się kilka razy szybszy. Z drugiej strony na wszystko trzeba czas, a nie zawsze własne rozwiązania są najlepsze. Ewentualnie: własne biblioteki + niezależne gotowe rozwiązania?

Napisany przez: batman 2.07.2008, 18:58:48

Moim zdaniem zawsze lepiej korzystać z gotowych rozwiązań, ponieważ ktoś nad tym cały czas pracuje, rozwija i pilnuje, by było wolne od błędów. Oczywiście własne biblioteki również mogą, a nawet powinny być używane, ale nie oszukujmy się. Nie ma potrzeby wymyślania koła od nowa.
Osobiście polecam jQuery - nie waży za wiele (~ 30 kb), do tego oferuje bardzo duże możliwości. Zaczynam też powoli się przekonywać do dojo.

A argument, że kilkadziesiąt kb to dużo i zamuli stronę, można włożyć między bajki. Obecnie łącza są coraz szybsze, więc dodatkowe kb nie wpłyną aż tak bardzo na wydajność. Czasy wdzwanianego internetu odeszły w niepamięć.

Napisany przez: Ociu 3.07.2008, 07:03:53

Temat zapowiada ciekawą dyskusję, przypinam.

Napisany przez: Lonas 16.07.2008, 06:24:13

Ja też ostatnimi czasy zacząłem pracować z jquery i muszę przyznać że jestem bardzo zadowolony.
Raz że to sprawdzony framework, dwa bardzo prosto się jej uzywa, wiele rzeczy potrzebnych do projektu można dzieki nej napisać w paru linijkach kodu no i jest do niego wiele przydatnych dodatkowych bibliotek.

Ogólnie jestem bardzo zadowolony i polecam smile.gif

Napisany przez: phpion 16.07.2008, 09:14:14

Tyle tylko, że wiele komponentów napisanych w jQuery (np. te z demo na oficjalnej stronie) nie działają pod Operę. Ja ze swojej strony polecam http://mootools.net. Nie miałem z nim żadnych problemów.

Napisany przez: tommy4 16.07.2008, 09:57:45

Tak, ja też miałem trochę problemów z jQuery i bynajmniej nie przez źle napisany kod.

Osobiście bardziej polecam Prototype.

Napisany przez: hacek 16.07.2008, 09:59:35

Możesz skorzystać z niezależnych rozwiązań które dają ci prostego Ajax-a dzięki któremu napiszesz swoje funkcje i jest to bardzo lekkie. Zobacz bibliotekę MintAjax, sam obiekt Request wazy tylko 4 KB a daje prostą obłsugę Ajax.

http://mintajax.pl/Pobierz/

Napisany przez: Shili 16.07.2008, 10:41:06

Do tej pory raczej nie mam problemów z jQuery (pod Operą również), ale z tego co tak ogólnie widzę bardziej "w cenie" jest Prototype (również po propozycjach pracy)

A ogólnie, jeśli chodzi o proste rzeczy, takie jak walidacja formularzy czy jakiś pojedynczy popup, to nie widzę sensu dołączać kobył skoro mogę to zrobić równie prosto w czystym js. Ale aktualnie nie wyobrażam sobie pisania bardziej zaawansowanych skryptów jak na przykład rotator zdjęć bez gotowego frameworka. Klientowi i tak to nie robi, byleby działało, a ja dzięki rozszerzeniom oszczędzam naprawdę dużo czasu.

Napisany przez: ferr 19.07.2008, 11:54:46

Kłopoty w jQuery z Opera biora sie przewaznie z tego, ze developerzy frameworka nie palaja specjalnie miloscia do Opery. Jest to europejska przegladarka, majaca marginalne znaczenie w USA, skad pochodza tworcy.

Prototype w cenie? Prototype to dzisiaj przezytek, a ktos opierajacy swoj kod na Prototype ceni raczej duza objetosc kodu i mala jego czytelnosc.

jQuery nie jest idealny, ale z kazda wersja jego szybkosc wzrasta, a do wymagan wymienionych w 1. poscie nadaje sie znakomicie. Biorac pod uwage "fun" i szybkosc pisania, stawiam jQuery na 1. miejscu, przed mootools.

Pozdrawiam

Napisany przez: Shili 19.07.2008, 12:36:57

Cytat
Prototype w cenie? Prototype to dzisiaj przezytek, a ktos opierajacy swoj kod na Prototype ceni raczej duza objetosc kodu i mala jego czytelnosc.
Z frameworków js najczęściej się pojawia przy wymaganych umiejętnościach w ogłoszeniach o pracy. Ogłoszeniach nie tylko na tym forum. Być może skoro przeżytek, wynika to z przyzwyczajenia pracodawców.

Napisany przez: ferr 19.07.2008, 12:59:31

Prowadzisz statystyki jakies? smile.gif Wrecz przeciwnie, mam wrazenie, ze Prototype w wymaganiach pracodawcow widzialem bardzo dawno.

Pozdrawiam

Napisany przez: Shili 19.07.2008, 13:02:18

Interesuję się tym, czego potencjalny pracodawca może ode mnie kiedyś chcieć. Wolę wcześniej mieć rozeznanie, niż w razie palącej potrzeby (zwłaszcza, że przy takiej potrzebie przeważnie bierze się pierwsze co przyjdzie) na hurra zapoznawać się z podstawami jakiejś techniki ^^

Napisany przez: batman 19.07.2008, 20:46:02

@Shili
Jeśli chcesz być cały czas na bieżąco ze wszystkim, to nie tędy droga. Bardzo dobrym wyjściem jest kompletne poznanie jednej biblioteki, dobre poznanie innej oraz znajomość podstaw pozostałych (oczywiście tych najpopularniejszych). Wówczas nawet jeśli nie będziesz wiedziała jak coś napisać, to będziesz miała na tyle pojęcie o problemie, że szybko znajdziesz rozwiązanie.

A wracając do tematu. Szkoda, że ZF ugadał się z dojo, a nie z jQuery. Z drugiej strony jest to motywacja do nauki dosyć ciekawej biblioteki. Szkoda tylko, że w dojo tworzy się kod, który nie waliduje się w3c.

Napisany przez: Shili 20.07.2008, 11:17:32

Cytat
Bardzo dobrym wyjściem jest kompletne poznanie jednej biblioteki, dobre poznanie innej oraz znajomość podstaw pozostałych (oczywiście tych najpopularniejszych).
jQuery umiem w stopniu zadowalającym (nie spotkałam się z problemem narzuconym odgórnie którego nie mogłabym rozwiązaćm od razu zaznaczę - twierdzę, że po 9 latach zapoznawania się z HTMLem i jego xmlową odmianą HTMLa znam dobrze, niekoniecznie kompletnie - oczywiście w połączeniu ze stylami i obsługiwaniem tego przez przeglądarki), dlatego ciekawią mnie wymagania pracodawców względem innych bibliotek. I ciekawi mnie to, jak często te inne się pojawiają.

Napisany przez: erix 15.11.2008, 12:51:10

Cytat
Czy jest sens korzystać z frameworka + własnych rozszerzeń (bez nich się nie obejdzie), jeśli z większości jego ułatwień nie będziemy korzystać? Przecież gdy napiszemy własny kod, ładujemy tylko te funkcje, które są potrzebne w projekcie.

Gdyby wszystkie przeglądarki jednakowo obsługiwały popularnie obsługiwane specyfikacje, to raczej bym sobie darował frameworki.

Ale niestety, jest IE i pisanie za każdym razem obejść dla innej sytuacji jest kompletną stratą czasu...

Napisany przez: dyktek 21.12.2008, 12:47:04

Cytat(ferr @ 19.07.2008, 13:54:46 ) *
Kłopoty w jQuery z Opera biora sie przewaznie z tego, ze developerzy frameworka nie palaja specjalnie miloscia do Opery. Jest to europejska przegladarka, majaca marginalne znaczenie w USA, skad pochodza tworcy.

dość ryzykowna teza...

co do kłopotów w operze to może ktoś podać jakieś konkretne przykłady?

a co do meritum wątku winksmiley.jpg uważam jak pewnie większość, że lepiej używać gotowych rozwiązań.

Napisany przez: phpion 21.12.2008, 12:55:57

Cytat(dyktek @ 21.12.2008, 14:47:04 ) *
co do kłopotów w operze to może ktoś podać jakieś konkretne przykłady?

Proszę bardzo, przykład z dokumentacji:
http://docs.jquery.com/Effects/fadeIn#speedcallback
Pod Operą nie widać "Click here...". Nie wiem czy to wina jQ czy CSS (nie sprawdzałem) ale swego czasu (podczas wyboru frameworka JS) widziałem sporo takich "kwiatków".

Napisany przez: Crozin 21.12.2008, 13:23:37

@phpion: przykład z dokumentacji, Opera:

Cytat
Version
9.62 //o właśnie... musze zaaktualizować
Build
2466
Platform
Linux
Działa pięknie. winksmiley.jpg

Napisany przez: phpion 21.12.2008, 13:28:50

@Crozin:
Ja korzystam z 9.61*. Zdecydowanie wolę MooTools, z którym nie mam tego typu problemów.

* Zaktualizowałem do 9.63 - nadal kupiszon.

Cytat
Version 9.63
Build 10476
Platform Win32
System Windows XP

Napisany przez: Riklaunim 21.12.2008, 13:33:31

W Goldenline i innych związanych aplikacjach jest stosowane jQuery i problemów raczej nie ma, bo założeniem wyjściowym jest obsługa wszystkich kluczowych przeglądarek do IE 6 włącznie. Zgodność z przeglądarkami zależy od zastosowanych elementów jQuery (aptana chyba to ładnie pokazuje). Należy też uwzględnić że uzasadnione użycie tego typu frameworków to nie jest zrobienie tooltipa i lightboxa na stronce, ale znacznie więcej (gridy, obsługa SWF, generowanie danych z JSONów itd.)

Napisany przez: dyktek 31.12.2008, 13:07:45

Cytat(phpion @ 21.12.2008, 14:55:57 ) *
Proszę bardzo, przykład z dokumentacji:
http://docs.jquery.com/Effects/fadeIn#speedcallback
Pod Operą nie widać "Click here...". Nie wiem czy to wina jQ czy CSS (nie sprawdzałem) ale swego czasu (podczas wyboru frameworka JS) widziałem sporo takich "kwiatków".


to kwestia dynamicznego osadzenia iframe, które jest nieszczęśliwie wykonane. Poniżej kod robiący to samo, dołączający dynamicznie iframe a w niego kod przykładowego efektu "fadeIn" i działa tongue.gif

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <http://december.com/html/4/element/html.html>
  4. <http://december.com/html/4/element/head.html>
  5. <http://december.com/html/4/element/script.html src="jquery-1.2.6.js"></http://december.com/html/4/element/script.html>
  6.  
  7. <http://december.com/html/4/element/script.html>
  8. $(document).ready(function(){
  9.  
  10. var iframe = document.createElement("iframe");
  11. iframe.src = "test.html";
  12. iframe.id = "hadzia";
  13. iframe.width = "200";
  14. iframe.height = "200";
  15. iframe.style.border = "none";
  16. $('div[id=test]').append( iframe );
  17.  
  18. var doc = iframe.contentDocument || document.frames['hadzia'].document;
  19.  
  20.  
  21.  
  22. var source = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"+
  23. "<http://december.com/html/4/element/html.html>"+
  24. "<http://december.com/html/4/element/head.html>"+
  25. "<http://december.com/html/4/element/script.html src=\"jquery-1.2.6.js\"><\/script>"+
  26. "<http://december.com/html/4/element/script.html type=\"text/javascript\">"+
  27. "$(document).ready(function(){"+
  28. "$(document.body).click(function () {"+
  29. "$(\"div:hidden:first\").fadeIn(\"slow\");"+
  30. "});"+
  31. "});"+
  32. "<\/script>"+
  33. "<http://december.com/html/4/element/style.html>"+
  34. "span { color:red; cursor:pointer; }"+
  35. "div { margin:3px; width:80px; display:none;"+
  36. "height:80px; float:left; }"+
  37. "div#one { background:#f00; }"+
  38. "div#two { background:#0f0; }"+
  39. "div#three { background:#00f; }"+
  40. "</http://december.com/html/4/element/style.html>"+
  41. "</http://december.com/html/4/element/head.html>"+
  42. "<http://december.com/html/4/element/body.html>"+
  43. "<http://december.com/html/4/element/span.html>Click here...</http://december.com/html/4/element/span.html>"+
  44. "<http://december.com/html/4/element/div.html id=\"one\"></http://december.com/html/4/element/div.html>"+
  45. "<http://december.com/html/4/element/div.html id=\"two\"></http://december.com/html/4/element/div.html>"+
  46. "<http://december.com/html/4/element/div.html id=\"three\"></http://december.com/html/4/element/div.html>"+
  47. "</http://december.com/html/4/element/body.html>"+
  48. "</http://december.com/html/4/element/html.html>";
  49.  
  50. doc.open();
  51. doc.write( source );
  52. doc.close();
  53.  
  54.  
  55. });
  56. </http://december.com/html/4/element/script.html>
  57.  
  58. </http://december.com/html/4/element/head.html>
  59. <http://december.com/html/4/element/body.html>
  60. <http://december.com/html/4/element/div.html style="display: block; width: 200px; height: 200px;" id="test"></http://december.com/html/4/element/div.html>
  61.  
  62. </http://december.com/html/4/element/body.html>
  63. </http://december.com/html/4/element/html.html>

Napisany przez: kilas88 31.01.2009, 00:26:21

Cytat(dyktek @ 21.12.2008, 12:47:04 ) *
dość ryzykowna teza...

co do kłopotów w operze to może ktoś podać jakieś konkretne przykłady?

a co do meritum wątku winksmiley.jpg uważam jak pewnie większość, że lepiej używać gotowych rozwiązań.

http://forum.php.pl/jQuery_Powrot_do_poprzedniej_strony_t112422.html

Napisany przez: dyktek 16.02.2009, 21:19:35

Cytat(kilas88 @ 31.01.2009, 02:26:21 ) *
http://forum.php.pl/jQuery_Powrot_do_poprzedniej_strony_t112422.html


podaj cały kod

Napisany przez: WebCM 3.08.2009, 09:43:16

Tworzę nową platformę w XHTML + CSS + JavaScript dla gry logiczno-przygodowej (podobnej do gier escape lub np. MOTAS). Warto dodać jakieś efekty, aby zwiększyć doznania estetyczne. Czy warto stosować framework? Zależy mi na tym, aby nie było przycięć przeglądarki. Wszystko płynnie. smile.gif

Napisany przez: wassago 6.08.2009, 16:06:20

Cytat(WebCM @ 3.08.2009, 09:43:16 ) *
Tworzę nową platformę w XHTML + CSS + JavaScript dla gry logiczno-przygodowej (podobnej do gier escape lub np. MOTAS). Warto dodać jakieś efekty, aby zwiększyć doznania estetyczne. Czy warto stosować framework? Zależy mi na tym, aby nie było przycięć przeglądarki. Wszystko płynnie. smile.gif


Widzisz, to że do tego typu projektu wręcz trzeba używać Frameworka nie ma żadnych wątpliwości. Jedyne pytanie jakie może się nasuwać to "jaki framework"... Przedstawie to w ten sposób, i proszę odbież to bez obrazy: jeżeli musiałeś zadać pytanie na które dałem Ci odpowiedź, to zdecydowanie najlepszym wyborem dla Ciebie będzie jQuery, jako że jest to framework dla początkujących developerów - tudzież ludzi którzy cenią szybkość pisania kodu/jednolinijkowość. Zaawansowani deweloperzy wiedzą z testów, że jQ nie zdaje egzaminu gdy zaczynamy mówić o zaawansowanym programowaniu OOP, pisaniu klas które mogą zostać rozszerzone w kilka różnych sposobów– tu dominują zdecydowanie MooTools i DOJO (nie będę pisał o Prototype jako, że nie posiada natywnie klasy Fx).

Pozdrawiam,
Oskar Krawczyk

Napisany przez: robsons6 15.09.2009, 22:16:22

Cytat(wassago @ 6.08.2009, 17:06:20 ) *
Widzisz, to że do tego typu projektu wręcz trzeba używać Frameworka nie ma żadnych wątpliwości. Jedyne pytanie jakie może się nasuwać to "jaki framework"... Przedstawie to w ten sposób, i proszę odbież to bez obrazy: jeżeli musiałeś zadać pytanie na które dałem Ci odpowiedź, to zdecydowanie najlepszym wyborem dla Ciebie będzie jQuery, jako że jest to framework dla początkujących developerów - tudzież ludzi którzy cenią szybkość pisania kodu/jednolinijkowość. Zaawansowani deweloperzy wiedzą z testów, że jQ nie zdaje egzaminu gdy zaczynamy mówić o zaawansowanym programowaniu OOP, pisaniu klas które mogą zostać rozszerzone w kilka różnych sposobów– tu dominują zdecydowanie MooTools i DOJO (nie będę pisał o Prototype jako, że nie posiada natywnie klasy Fx).

Pozdrawiam,
Oskar Krawczyk


No nie wiem czy bym Mootools postawil obok DOJO a JQuery uznal za slabszy od Mootools.
Raczej w hierarchii wiekowej to DOJO, JQuery, mootools.
Co do mootools to raczej jeszcze za mlody projekt, mysle ze lepiej polecac DOJO.
Aczkolwiek do zwyklej zabawy w jakas prosta gierke to kazdy sie nadaje byle by posiadal funckje do fxow.

A tak swoja droga... nie lepiej uzyc flexa badz flasha? ( rozumiem ze troche zamulaja ale daja stabilnosc a z JS wiadomo... tu dziala dobrze a w innej przegladarce nagle sie rozjedzie albo cos sie nie zaladuje i gra wyglada jak podziurawione lub rysujace sie "cos" )

Napisany przez: skowron-line 15.09.2009, 22:22:34

Cytat(robsons6 @ 15.09.2009, 22:16:22 ) *
... tu dziala dobrze a w innej przegladarce nagle sie rozjedzie albo cos sie nie zaladuje i gra wyglada jak podziurawione lub rysujace sie "cos" )

Dlatego trzeba ostrożnie dawkować JS do swoich projektów, puki co ( i to chyba się nie zmieni ) użytkownik może sobiw wyłączyć JS w przeglądarce.

Napisany przez: pp-layouts 30.11.2009, 15:24:24

Jeśli w 2009/2010 roku user wyłączy sobie JS w przeglądarce, to jest kosmitą. Jeśli strona ma charakter stricte informacyjny - nie powinna mieć zależności od JS. Może używać, ale musi chodzić bez. Dla botów. Jeśli to interaktywna aplikacja - to może, a nawet powinna, zwyczajnie odmówić odpalenia bez JS i już. 


Napisany przez: movax13h 25.08.2010, 11:53:05

Buduję teraz dość duży panel administracyjny:
ajax, framework,GoogleAPI -chodzi i nawet nieźle -dane są na bieżąco rozkodowywane

Korzystam z gotowego frameworku mooTools -MochaUi na stronie głównej, jQuery -do własnych skryptów działa na ramkach okien MochaUi. Google Api gdzie trzeba.

Chodzi coraz ładniej. Mieliśmy dylematy co robić, były próby przejścia tylko na jQuery, ale zdaje się, że tak jak jest teraz zostanie. MochaUI daje praktycznie wszystko co trzeba -oprócz przeciągania okien -gdy są ramki ukrywa ich zawartość -w przeciwnym razie kursor nie trzyma dobrze okna.

Chyba w pół roku byśmy tego ręcznie nie napisali

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)