Wpis z mikrobloga

#javascript #js
Witam,
mam do was pytanie, mianowicie jakiś czas temu zacząłem przerabiać książki Kyla Simpsona YDNJS. Wszystko grało i buczało, aż do tego momentu. Dzisiaj zacząłem asynchroniczność i wydajność, i za cholerę nie wiem o co chodzi i po co to w ogóle. Znaczy już wiem, że asynchroniczność lepsza, że wykonywanie kodu w tle, brak czekania aż się wszystko wykona, ale jak do tej pory w js to z takich większych projektów zrobiłem grę w wisielca i naprawdę prosty kalkulator, i za bardzo nie mogę tego nigdzie dopasować, i jeszcze jakieś żądania AJAX'owe (do tej pory brak jakiejkolwiek styczności z framworkami i AJAX'em). No i zastanawiam się czy porzucić to teraz, bo na razie jest to dla mnie czarna magia (i jeszcze te żądania AJAX'owe) i brać się za następną książkę. Jak jest u was z tą asynchronicznością? Często z niej korzystacie? Są do tego jakieś wzory tak jak do modów, albo framworki? A może macie jakieś korzystniejsze i jaśniejsze kursy? Bo autorowi omówienie tego problemu zajęło z połowę książki (to jest z jakieś 120 stron) ( ͡° ʖ̯ ͡°)
  • 9
  • 0
@atpl77 jedna z pierwszych serii polecanych dla początkujących. Spotkałem się z takim stwierdzeniem na kilku forach. Ale chyba faktycznie Asynchroniczność odołożę narazie na bok i wezmę się za coś mniejszego.
@pempuszek: Ale przecież "normalnie" korzystając z JavaScripta też korzystać z asynchroniczności :) Tu nie chodzi o to że Twój kod ma lecieć w tle, wielowątkowość czy coś. Tu chodzi tylko o to że operacje które generalnie mają pewien czas oczekiwania na wynik niezależny od Twojego kodu (np. odczyt pliku z dysku chwilę trwa) nie zwracają Ci wyniku "od razu" tylko wywołują funkcję którą im przekazałeś w parametrze.

window.document.onready = function() {}
Ja bym jeszcze dorzucił ten filmik: https://www.youtube.com/watch?v=8aGhZQkoFbQ

asynchroniczność kładzie prawie każdego na początku. Ja lubię tłumaczyć, że w miejscu, gdzie deklarujesz jakieś działanie asynchroniczne, to w momencie wykonywania, gdy normalnie javascript leci linijka po linijce (synchronicznie) i trafia na działanie asynchroniczne to nie czeka na jego wykonanie tylko leci dalej. Można powiedzieć, że w kodzie NIE WYKONAŁEŚ jakiejś pracy/działania, tylko ją ZLECIŁEŚ. Synchronicznym działaniem było ZLECENIE wykonania pracy, która wykona się gdzieś
@pempuszek: Właśnie źle zrobisz według mnie jak odłożysz asynchroniczność na bok. Skoro opanowałeś już JavaScript to spróbuj wykonać kilka przykładów dotyczących asynchroniczności z linku, który Ci podałem i użyj do tego czystego JavaScriptu. W przyszłości spróbuj to samo wykonać za pomocą jQuery.

Ogólnie gdybym miał tłumaczyć asynchroniczność, to

1. masz na swojej stronie przycisk np. "Pobierz dane"
2. na swojej stronie masz również pusty
3. po naciśnięciu przycisku "Pobierz dane" następuje
@atpl77: @larvaexotech: @Afrael: Panowie, dziękuję za konkretne wytłumaczenie i za linki. Po przeczytaniu waszych wyjaśnień i dzisiejszej pracy z kodem faktycznie nie jest to już takie skomplikowane jak wydawało mi się to wcześniej, a jak poświęcę na to jeszcze trochę czasu to w ogóle będzie git.