Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JavaScript - wzorce projektowe a frameworki?
d4ng
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

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


Witajcie mam mętlik w głowie i wydaje mi się że im więcej szukam i czytam tym mniej wiem.... Chciałbym powoli odejść od samego jQuery i skupić się bardziej na czystym, zorientowany "obiektowo" javascripcie. Wiem że są różne wzorce projektowe jednak nie mam takiej wiedzy i doświadczenia, żeby móc stwierdzić który jest lepszy (dysponowanie pamięcią, wydajność, łatwość nauki), a co najważniejsze który pozwoli mi miękko wejść w takie frameworki jak angular czy backbone? Podoba mi się Module Pattern ale widzę że dużą popularność ma Prototypal Pattern. Bardzo proszę o rozjaśnienie sytuacji, może przedstawienie obecnych trendów itp Każdy wpis będzie cenny. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
d4ng
post
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

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


PrinceOfPersia czytając Twoje wpisy rozlewa mi się mózg na klawiaturę i zdaje sobie sprawę jak małym robaczkiem jestem w tym ogródku... ale na pewno się nie zniechęcam i powoli będę parsować temat (IMG:style_emoticons/default/smile.gif) hmm na podstawie wpisów i tego co widzę w necie wywnioskowałem że najpierw spróbuje wchłonąć wiedzę z zakresu http://addyosmani.com/resources/essentialj...tternjavascript. Przy okazji pokaże wam fragment kodu mojego autorstwa i bardzo prosiłbym o przykład jak mógłby on wyglądać w prototpe pattern. Są w nim najczęściej używane przeze mnie elementy (pętle, tablice, zmienne, ajax, eventy). W modułowym wzorcu widziałem jak facet fajnie oddzielił widok (renderował go) od funkcjonalności w prototype też tak się da?

  1. $('#saveText').on('click', function(){
  2.  
  3.  
  4. // zmienne
  5. var ed = tinyMCE.get('content');
  6. var co = tinyMCE.get('comment');
  7. var terminy = [];
  8. var catalogs = [];
  9. var control = 1;
  10.  
  11.  
  12. // pobiera wybrane terminy
  13. for (i = 0; i < termCount; i++) {
  14. terminy.push({nazwa: $('.form-termin-name-'+i).val(), termin: $('.date-val-'+i).val()});
  15.  
  16. }
  17.  
  18.  
  19. // pobiera wybrane katalogi
  20. $('.category-tree input[type="checkbox"]:checked').each(function(){
  21. catalogs.push($(this).val());
  22. });
  23.  
  24.  
  25. // walidacja
  26. if ($('.form-title-text').val() == ''){
  27. $('.form-title-text').css('border', '2px solid #ff5454');
  28. control = 0;
  29. }
  30.  
  31. // if walidacja == 1
  32. if(control == 1){
  33. $.ajax({
  34. type: 'POST',
  35. url: base_url+'index.php/document/save_document',
  36. data: {
  37. 'nameText': $('.form-title-text').val(),
  38. 'contentText': ed.getContent(),
  39. 'directoryText': catalogs,
  40. 'commentText': co.getContent(),
  41. 'terminy': terminy
  42. },
  43. success: function(res) {
  44. if (res){
  45. showInfo('success', 'Tekst został pomyślnie zapisany! ');
  46. location.replace(base_url+'index.php/edycja-dokumentu/'+res+'/edit');
  47. }
  48. },
  49. error: function(res) {
  50. showInfo('error', 'Błąd połączenia z serwerem! ');
  51. }
  52. });
  53. }
  54.  
  55. });


Ten post edytował d4ng 30.10.2015, 16:04:05
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 20:45