YUI Theater - Jeff Craig: "Demystifying ładowania: Advanced Configuration Module" (31 min.)

16 grudnia 2011 o 10:10 przez Ryan Grove | In Rozwoju i YUI Theater | DLA No Comments

W tej rozmowie z YUIConf 2011 roku, Meebo inżynier i YUI współpracownik Jeff Craig ( @ foxxtrot ) ujawnia wszystko, co zawsze chciałeś wiedzieć o YUI Loader, ale baliście się zapytać. To trzeba zobaczyć dla każdego, kto robi wydajności krytycznej pracy ze YUI 3.

Linki

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

YUI: Godziny czw Dec 15th

13 grudnia 2011 o 11:59 przez Erica Ferraiuolo | W rozwoju i Godziny otwarcia | DLA No Comments

YUI 3.5.0 PR1

YUI 3.5.0 PR1 jest już dostępny ! Jest to pierwszy z trzech Podgląd wydań 3.5.0.

Dla tych godzinach otwarcia będziemy podkreślając co jest w PR1 i dyskusji, jak można się zaangażować, aby upewnić 3.5.0 jest pusta skała. Będziemy także pytać się do pokazu-of-rąk od wspaniałych programistów, którzy już rozpoczęli korzystania 3.5.0 PR1 (która jest na CDN ). Przyjdź czwartek, nie daj się złapać ręką w dół :)

Również Biblioteka YUI strona Inscenizacja została zaktualizowana z najnowszymi przewodnikami użytkownika i API Docs i w odpowiedzi na informacje zwrotne od ostatnich Godziny otwarcia , jesteśmy teraz korzystając z naszego wiki Github śledzić bieżące dyskusje rozwoju .

Nagranie

Nagranie jest dostępne na YUILibrary kanale YouTube .

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

Zmiany w App Framework w YUI 3.5.0

12 grudnia 2011 o godzinie 3:40 przez Ryan Grove | W Rozwoju | DLA 1 komentarz

Od pierwszego wydania w ramach aplikacji w YUI 3.4.0, byliśmy zdziwieni, jak szybko to co zostało przyjęte. W przypadku projektów dużych i małych , zarówno długoletni użytkownicy Yui i tych, którzy są całkowicie nowe w bibliotece zostały entuzjastycznie używając komponentów MVC App Framework i zapewnia dużą opinii i zgłoszeń błędów. Dziękujemy!

W YUI 3.5.0, ramowy App otrzymają wiele poprawek i kilka istotnych ulepszeń. Eric Ferraiuolo dotyczyła wielu nadchodzących zmianach w jego fantastycznej rozmowie YUIConf , ale chcemy podkreślić ich również tutaj tak będziesz wiedział, co się zbliża i co należy przygotować, jeśli planujesz uaktualnić App Framework oparty kod z 3.4.x do 3.5.0. Zmiany te są już w YUI 3.5.0 PR1 , który ukazał się dzisiaj, więc teraz jest świetny czas, aby zacząć ich testowanie.

Y.Controller jest teraz Y.Router

"Kontroler" było głupie i mylące nazwa składnika, który rzeczywiście zajmuje się więcej o routingu URL opartych, szczególnie biorąc pod tradycyjnie kontroler-jak rolę, jaką Y.View. Zdecydowaliśmy się zacisnąć zęby i zmienić klasę Y.Controller do Y.Router w 3.5.0. Y.Controller będzie aliasem do zachowania kompatybilności wstecznej, ale ten alias zostaną ostatecznie usunięte, więc należy zaktualizować swój kod aby zapoznać się z nową nazwą.

Nowy podpis obsługi trasy

Podpis metoda funkcjach obsługi trasy w Y.Router zmienił nieco aby uczynić go bardziej podobny do Wyrazić i uczynić API routera bardziej naturalne stosowane na serwerze (funkcja pracujemy teraz na do 3.5.0).

Wcześniej funkcja obsługi trasa otrzymał dwa argumenty: req (obiekt request) i next (funkcja). W 3.5.0, Wozy trasy otrzyma trzy argumenty: req , res (obiekt odpowiedzi), a następnie next .

Dla zachowania kompatybilności wstecznej, nowy res argumentem jest również funkcja, która zachowuje się dokładnie tak samo jak next , tak starym stylu obsługi tras, które oczekują next jako drugi argument nadal będzie działać dobrze w 3.5.0. Jednak ta podkładka kompatybilność zostaną ostatecznie usunięte, więc nie czekać zbyt długo, aby zaktualizować swój kod.

Niektóre właściwości są już atrybutami

Eksperymentowaliśmy z nie-całkiem-YUI-jak styl za pomocą właściwości konfigurowalnych opcji w składnikach aplikacji ramowych w 3.4.0, ale ten okazał się być trochę mylące, i więcej niż trochę ogranicza, ponieważ właściwości nie korzystają z imprez zmian i ustawiających i walidatory jak atrybuty zrobić. Więc w 3.5.0, jesteśmy konwersji wiele z tych właściwości do cech.

Niestety, ta zmiana nie jest kompatybilny wstecz, więc istniejący kod, który wykorzystuje Y.Controller (obecnie Y.Router) lub Y.View konieczne może być aktualizowana. Konkretnie Y.Router 's html5 , root , a routes właściwości są teraz atrybuty i Y.View to container , model i modelList właściwości są teraz atrybuty, jak również.

Oprócz tego, Y.View to container atrybut teraz traktuje wartości ciągów jako selektory CSS użyte do znalezienia węzłów na stronie. W 3.4.x, to zakłada się wartość ciągu reprezentowane znaczników HTML, które powinny być zamienione na węźle. Aby uzyskać starego zachowania, po prostu zmienić swoje dotychczasowe HTML wartości ciągu z '<div>foo</div>' do Y.Node.create('<div>foo</div>') .

Dokumentacja 3.5.0 PR1

Prace w toku Dokumentacja do tych zmian i innych zmian w YUI 3.5.0 PR1 można znaleźć na naszej stronie internetowej postoju . Oto linki do odpowiednich docs pomostowym, które zawierają informacje na temat deprecations aplikacji ramowych w 3.5.0 i szczegółowe informacje na temat aktualizacji kodu:

Należy pamiętać, że zawartość w stage.yuilibrary.com odzwierciedla bieżące prace i mogą być niekompletne lub nawet tylko sporadycznie złamany jak testujemy rzeczy nowe. Zawsze znajdziesz w dokumentacji do najnowszej wersji stabilnej na naszej stronie produkcji, yuilibrary.com .

Co jeszcze nowego?

W tym blogu mam podsumował ważne deprecations dochodzące do ram aplikacji w 3.5.0, ale istnieje również wiele udoskonaleń funkcji i under-the-Hood poprawki błędów. Pełną listę zmian aplikacji ramowych w 3.5.0 PR1, skonsultować dokumentację historii .

Również szukać blogu z Eric wkrótce o Y.App i niesamowite nowe wysokiego poziomu element ram aplikacji, które owija się URL opartego routingu i zarządzania widoku w jednym łatwym w użyciu API, które dostaną się do Ciebie od zera do działającej aplikacji w krótkim czasie.

Mamy nadzieję, że kochasz wersji testowej, a chcielibyśmy usłyszeć od ciebie! Możesz wysłać nam swoją opinię na forum , w raporcie o błędzie , na Twitterze , na # Yui kanale IRC w sieci Freenode, lub po prostu dostroić się tutaj z komentarzem.

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

YUI 3.5.0 PR1 jest już dostępna

Grudzień 12, 2011 at 3:36 pm przez Allen Rabinowicza | In Rozwoju | DLA No Comments

YUI 3.5.0 PR1

YUI 3.5.0 wydania Preview 1 został wdrożony do badań oraz informacji zwrotnych od społeczności programistów. Można go znaleźć na CDN Yahoo! na yui.yahooapis.com/3.5.0pr1/build/yui/yui-min.js~~pobj lub pobrać plik zip , jeśli planujesz zorganizować samodzielnie.

Pakietu zmian wprowadzonych w PR1 jest dostępny na naszej Wiki Github. Ponadto, można przejrzeć listę biletów, które zostały rozwiązane w tym wydaniu .

Prace w toku instrukcje obsługi i API docs dla 3.5.0 można znaleźć na naszej stronie postoju, ale uważaj, że te dokumenty mogą być niekompletne lub nawet łamane, ponieważ jest to miejsce gdzie testujemy nowe rzeczy. Oficjalna dokumentacja dla najnowszej wersji stabilnej można zawsze znaleźć na naszej stronie produkcji, yuilibrary.com .

Kolejne zmiany zostaną wprowadzone w najbliższych wydaniach podglądu YUI 3.5.0, niektóre z nich są obecnie w oddziałach własnych deweloperów i są dostępne dla wstępnego przeglądu za pomocą następujących wniosków ściąganej:

Aby złożyć błędy przeciwko tej wersji, odwiedź naszą system śledzenia błędów . Jeśli chcesz do udziału w tych i przyszłych modułów, trwające dyskusje na różne tematy związane z 3.5.0 wydaniu dzieje się na naszym wiki Github.

Jeśli wszystko pójdzie zgodnie z planem, mamy nadzieję wydać YUI 3.5.0 PR2 30 stycznia 2012 roku. Wesołych świąt!

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

YUI Theater - Allen Rabinowicz: "YUI Kalendarz - Studium przypadku budowy moduły Style" (47 min.)

Grudzień 8, 2011 at 1:02 pm przez Ryan Grove | In Rozwoju i YUI Theater | DLA No Comments

W tej rozmowie z YUIConf 2011 roku YUI inżynier Allen Rabinowicz ( @ allenr ) dzieli proces użył do architekta i zbudować nowy widget Kalendarz w YUI 3, i wyjaśnia, jak można wykorzystać podobny proces budowania własnych widgetów. On również popisuje się nowego składnika i ujawnia sprytną sztuczkę wydajności użyte do przyspieszenia renderowania wielu kalendarzy.

Linki

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

YUI Theater - Pat Cavit: "Automatyzacja Optymalizacja WWW" (32 min.)

Grudzień 6, 2011 at 2:58 pm przez Ryan Grove | In Rozwoju i YUI Theater | DLA 2 Komentarze

Pat Cavit ( @ tivac ), inżynier nakładka na ArenaNet i aktywny współpracownik YUI i członek społeczności, dołączył do nas w YUIConf 2011 roku, aby ten Dyskusja na automatyzację build-time optymalizacji stron internetowych, takich jak łączenie plików, minification, zmiana nazwy i więcej za pomocą Ant narzędzia.

Linki

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

W 3 YUI Galeria: masowe Widget Editor

December 5, 2011 at 1:01 pm John Lindal | W rozwoju i Yui 3 Galeria | DLA No Comments

QuickEdit wtyczki do YUI 3 DataTable ułatwia edytować całą stronę rekordów jako operacja atomowa. Czasami jednak trzeba zrobić jeszcze więcej. Na przykład, możesz mieć jednocześnie edytować więcej rekordów niż można wygodnie zmieścić się na jednej stronie. Albo może trzeba wspierać dodawanie, kopiowanie i usuwanie rekordów jako część atomowej operacji. Albo może chcesz polach wizualnie grupy, umieszczając je w pojedynczej komórce tabeli. Zbiorcze Edytor widget obsługuje wszystkie te możliwości.

( Kliknij zrzut ekranu do odegrania w tym przykładzie ).

Przegląd

Większość widget Edytor składa się z trzech komponentów:

Data source

Ta owija YUI DataSource i zarządza zmiany: insercje, usuwaniem i zmienił wartości.

Base widget

Stanowi to podstawową strukturę do edycji poprzez zarządzanie rekordów i pól w obrębie każdego rekordu. Klasy pochodne są odpowiedzialne za renderowanie każdy rekord w osobnym wierszu, co może być div, tbody, lub jakiś inny pojemnik.

HTML table implementation

Wydłuża to widget bazowej do renderowania każdy rekord w tbody w tabeli HTML. Konfiguracja kolumna określa, które pole jest wyświetlane w każdej kolumnie tabeli. Zwyczaj formatowania komórek może być używany do renderowania wielu pól w pojedynczej komórce tabeli.

Konfiguracja

W przykładzie, który wygenerował powyższy zrzut ekranu, konfiguracja została ograniczona tak proste, jak to możliwe:

fields definiuje edytowalnych wartości w każdym rekordzie. Domyślnym typem jest wejście. Pozostałe ważne są typy select i textarea. (Wybierz wymaga listę wartości). Podstawowa walidacja jest przez menedżera Form moduł galerii. Obejmuje to wymagane pola, ograniczenia długości i zakresów liczbowych . Bardziej skomplikowane walidacji mogą być wykonywane przez określenie regex lub własną funkcję ust fn ). Oto fragment z żywej przykład:

 var pola =
 {
	 tytuł:
	 {
		 rodzaj: 'textarea'
	 }
	 roku:
	 {
		 walidacja:
		 {
			 CSS: "yiv-integer: [1500,2100]"
		 }
	 }
	 kolor:
	 {
		 typ: 'wybierz'
		 wartości:
		 [
			 {Wartość: 'czerwony', text: 'Red'},
			 {Wartość: 'zielony', tekst: 'Zielony'},
			 {Wartość: 'niebieski', text: 'Blue'}
		 ]
	 }
 ;}

Y.BulkEditDataSource wymaga instancji Y.DataSource i następujące parametry:

uniqueIdKey

Nazwa klucza, który jednoznacznie identyfikuje każdy rekord.

generateRequest

Funkcja do generowania parametry żądania do Y.DataSource . (Jest to pusty w tym przykładzie, ponieważ Y.DataSource.Local zawsze zwraca wszystkie dane.)

extractTotalRecords

Funkcja wyodrębnić całkowitą liczbę rekordów z Y.DataSource odpowiedzi.

Od przykładzie użyto Y.DataSource.Local , totalRecordsReturnExpr jest również wymagane. Ta ekspresja OGNL określa gdzie w odpowiedzi przechowywania łączną liczbę rekordów. (Zauważ, że extractTotalRecords odczytuje tę wartość).

 var ds = new Y.BulkEditDataSource (
 {
	 ds: raw_ds, w
	 uniqueIdKey: "id"
	 generateRequest: function () {}
	 "meta.totalRecords.: totalRecordsReturnExpr
	 extractTotalRecords: function (odpowiedź)
	 {
		 powrót response.meta.totalRecords;
	 }
 });

Y.HTMLTableBulkEditor wymaga źródła danych, konfigurację pola, a konfiguracja kolumny. W konfiguracji kolumn, kluczem jest nazwa pola, chyba że podasz niestandardowego formatowania. Etykieta jest używany jako tytuł kolumny. Oto fragment z żywej przykład:

 var kolumny =
 [
	 {
		 klucz: "pole"
		 etykieta: "<input type="checkbox" id="select-all" />"
		 formatter: function (o)
		 {
			 var znaczników = '<input type="checkbox" class="record-select" id="{id}" /> ";
			 o.cell.set ("innerHTML", Y.Lang.sub (znaczników,
			 {
				 ID: this.getRecordId (o.record)
			 }));
		 }
	 }
	 {Klucz: 'title', wydawca: 'title'},
	 {Klucz: "rok", label: "rok"},
	 {Klucz: "kolor", label: "Kolor '}
 ];

(Zauważ, że na żywo przykład definiuje niewielką przedłużenie Y.HTMLTableBulkEditor do obsługi kolumny pola wyboru.)

Można także przekazać instancję Y.Paginator do Y.BulkEditDataSource . Dowodem tego jest w oddzielnym, bardziej skomplikowany przykład żywej .

Lokalne vs zdalnych źródeł danych

Przy podejmowaniu decyzji, czy użyć lokalnego lub zdalnego źródła danych, należy starannie rozważyć kompromisów. Oczywistym kompromisem jest to, że lokalne źródła danych jest szybszy, gdy paginating, ale początkowe obciążenie strona będzie trwał dłużej i wymaga więcej pamięci na kliencie.

Większość widget Redaktor nakłada dodatkowe kompromisów, jednak.

Po pierwsze, YUI DataSource musi zwrócić dane niezmienne. Jest to automatyczny dla lokalnych źródeł danych, ale mogą być trudne do realizacji dla zdalnych źródeł danych. Będziesz musiał zablokować wiersze w tabeli bazy danych na czas trwania zbiorczej operacji edycji, jeśli więcej niż jeden użytkownik ma prawo do ich modyfikacji.

Po drugie, wybór pomiędzy lokalnym i zdalnym źródłem danych wpływa w jaki sposób mogą zapisać dane. Podczas korzystania z lokalnego źródła danych, można zrobić najlepszą oszczędność wysiłku, tzn. zapisać wszystkie ważne rekordy do serwera, usunąć je z lokalnego źródła danych i pozwala użytkownikowi skupić się na zapisach, które mają nieprawidłowe wartości. Kiedy korzystać ze zdalnego źródła danych, wymaganie niezmienności tylko pozwala na wykonywanie wszystkich lub oszczędności nic, tzn. dane mogą być zapisane w końcu dane jest ważny.

Rzeczywistym świecie Use Case

Pierwotnym powodem masowe widżetu edytora było umożliwienie post-processing przesłanego arkusza kalkulacyjnego. Wprowadzenie do post-processingu krok usuwa potrzebę wartości arkusza kalkulacyjnego do życzenia. Błędy mogą być oznaczane i stacjonarnych w masie widżetu edytora zamiast odrzucenia całego przesłania. Ponadto, przetwarzania na serwerze potrafi najlepiej odgadnięcia przypisanie dodatkowych wartości, wymaganych dla każdego rekordu, a użytkownik może sprawdzić i naprawić te dodatkowe wartości przed zapisaniem. Upraszcza to wstępne utworzenie w arkuszu kalkulacyjnym.

W tym scenariuszu, zdalne źródło danych jest najlepszym wyborem. Przesłane dane są przechowywane w szafie na zarysowania, i dlatego jest zagwarantowane niezmienne, ponieważ żaden inny użytkownik nie może go zobaczyć. "Wszystko albo nic" oszczędność jest właściwe: Kiedy wszystkie błędy zostały naprawione, operacja zapisu jest atomowa, podobnie jak standardowy operacji wysyłania.

O autorze: John Lindal ( @ jafl5272 na Twitterze) to jeden z głównych inżynierów budujących fundament, na którym Yahoo! APT jest zbudowany. Wcześniej pracował w sieci Publisher Yahoo!.

Podziel się i rozszerzać: Zakładki z offline | digg it! | reddit!

Goszczony przez Yahoo!

Copyright © 2006-2012 Grupa Onet.pl SA Wszelkie prawa zastrzeżone. Polityka prywatności - Warunki korzystania z usług

Powered by WordPress na Yahoo! Web Hosting .