1 00:00:00,000 --> 00:00:02,862 >> [MUZYKI] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID MALAN: To CS50. 4 00:00:11,580 --> 00:00:12,880 To jest początek tygodnia dziewięć. 5 00:00:12,880 --> 00:00:15,797 I to jest to, co mają była 200 rocznica pana Boole urodziny. 6 00:00:15,797 --> 00:00:17,630 Tak to jest, że towarzysze do kogo mamy nawiązywał 7 00:00:17,630 --> 00:00:21,800 dość kilka razy na temat korzystania Zmienne logiczne prawdziwe i fałszywe, 8 00:00:21,800 --> 00:00:22,910 1 i 0 i takie. 9 00:00:22,910 --> 00:00:25,270 I to był Google'a hołd dla niego dzisiaj. 10 00:00:25,270 --> 00:00:26,489 Mógłby zwrócił 200. 11 00:00:26,489 --> 00:00:28,280 Więc jeśli chcesz dołącz do nas na CS50 obiad, 12 00:00:28,280 --> 00:00:30,279 spójrz na link na stronie internetowej oczywiście za. 13 00:00:30,279 --> 00:00:33,580 I takie twarze i przyjaciele jak to czeka tutaj w Cambridge. 14 00:00:33,580 --> 00:00:35,360 Twarze jak te czekają na Ciebie w New Haven. 15 00:00:35,360 --> 00:00:37,800 I rzeczywiście, Ken New Haven uprzejmie wykonane 16 00:00:37,800 --> 00:00:41,594 co nazywa animowany GIF ocalenia tutaj na niedawny lunch-- GIF jest jeszcze 17 00:00:41,594 --> 00:00:44,260 inny format pliku graficznego, z którym jesteś familiar--, że 18 00:00:44,260 --> 00:00:46,300 wygląda trochę coś takiego. 19 00:00:46,300 --> 00:00:48,179 Więc po prostu sekwencja of-- OK. 20 00:00:48,179 --> 00:00:49,720 Nikt tutaj w Cambridge śmieje. 21 00:00:49,720 --> 00:00:51,720 Ale w New Haven, w tym jest naprawdę zabawne, prawda? 22 00:00:51,720 --> 00:00:52,350 W porządku. 23 00:00:52,350 --> 00:00:53,940 >> Więc dołącz do nas tam. 24 00:00:53,940 --> 00:00:55,900 Tu na Harvardzie, W szczególności, w środę, 25 00:00:55,900 --> 00:00:59,480 jeśli jesteś studentem drugiego roku lub studiów even-- lub nawet junior-- myślenie podejmowania 26 00:00:59,480 --> 00:01:01,563 przełącznik do komputera nauką, wiedzą, że nie będziesz 27 00:01:01,563 --> 00:01:04,440 być sprawiedliwe CS doradztwo to Środa, tuż po klasie 28 00:01:04,440 --> 00:01:08,040 o 4:00 po południu w komputerze nauka budynek Maxwell Dworkin. 29 00:01:08,040 --> 00:01:11,890 Umieścimy to na kurs na strona jutro, jak dobrze. 30 00:01:11,890 --> 00:01:14,430 Pączki, jak mi powiedziano, będą serwowane. 31 00:01:14,430 --> 00:01:15,180 >> W porządku. 32 00:01:15,180 --> 00:01:18,790 Tak zabawne story-- byłem szturchanie wokół w internecie, 33 00:01:18,790 --> 00:01:23,575 i znalazłem kilka starych archiwów mojego byłego stronie. 34 00:01:23,575 --> 00:01:25,950 I okazuje out-- wokół tego czas, wydaje się bardzo na czasie 35 00:01:25,950 --> 00:01:28,910 od wnoszę, że wybory UC są o biegu ponownie. 36 00:01:28,910 --> 00:01:32,230 Więc wpadłem na UC, przegrał sromotnie. 37 00:01:32,230 --> 00:01:34,770 A może była to po części, dlaczego. 38 00:01:34,770 --> 00:01:37,600 Więc to była moja strona w czasie. 39 00:01:37,600 --> 00:01:40,477 Z jakiegoś powodu, myślałem, że to to dobry pomysł, zanim mówić ludziom 40 00:01:40,477 --> 00:01:43,310 co moja platforma była i dlaczego powinni głosować na mnie, że mają 41 00:01:43,310 --> 00:01:47,770 kliknij, aby wejść, aby dowiedzieć się, że informacje, które z perspektywy czasu jest 42 00:01:47,770 --> 00:01:48,660 trochę przerażające. 43 00:01:48,660 --> 00:01:50,910 I naprawdę nie wiem, co to było. 44 00:01:50,910 --> 00:01:53,140 >> Ale to na pewno nie pomóc w kampanii. 45 00:01:53,140 --> 00:01:56,874 Dowiedziałem się również, że starszy rok-- Miałem ten kalendarz Muppet. 46 00:01:56,874 --> 00:01:58,540 Muppety były trochę w modzie wtedy. 47 00:01:58,540 --> 00:01:59,456 A może nie. 48 00:01:59,456 --> 00:02:01,790 Miałem wtedy Muppet kalendarza. 49 00:02:01,790 --> 00:02:04,860 A ja myślałem, że to będzie fajne nazwy mój komputer w sieci Uniwersytetu Harvarda 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 W tym czasie mieliśmy wyjątkowo zidentyfikowania nazwy hostów. 52 00:02:10,370 --> 00:02:13,150 I można wybrać trochę próżności Zamiast nazwać własnym nazwiskiem. 53 00:02:13,150 --> 00:02:15,580 I poszedłem z Frogman z jakiegoś powodu. 54 00:02:15,580 --> 00:02:19,040 >> I wtedy started-- Spędziłem dużo czasu kliknięciu poprzez te linki 55 00:02:19,040 --> 00:02:20,280 tego ranka. 56 00:02:20,280 --> 00:02:24,690 I to była moja strona o, które obecnie rodzaj wydaje urocze. 57 00:02:24,690 --> 00:02:28,210 Ale to też świadczy tylko jak daleko technologia doszła. 58 00:02:28,210 --> 00:02:30,310 To znaczy, już w dzień, 486 było coś. 59 00:02:30,310 --> 00:02:34,090 Te dni, to jest super, super, bardzo wolno i dobrze mniej 60 00:02:34,090 --> 00:02:36,216 niż można mieć w własne kieszenie te dni. 61 00:02:36,216 --> 00:02:38,465 Jest więcej tam, że był jeszcze bardziej żenujące. 62 00:02:38,465 --> 00:02:39,770 Więc zostawię go na to. 63 00:02:39,770 --> 00:02:42,640 Ale to był mój pierwszy wypad do web-- o nie. 64 00:02:42,640 --> 00:02:43,180 To nie było. 65 00:02:43,180 --> 00:02:47,000 Mój pierwszy prawdziwy wypad do programowania WWW było to miejsce, które po prostu zapomniałem. 66 00:02:47,000 --> 00:02:50,620 W pewnym momencie dowiedziałem się, jak aby powtarzające się obrazy tła. 67 00:02:50,620 --> 00:02:55,260 I tak uważam, że ten płytki skuteczne, jak hokeista, piłki nożnej, i golf 68 00:02:55,260 --> 00:02:58,040 piłka, czy cokolwiek to jest na stronie internetowej Frosh IMS. 69 00:02:58,040 --> 00:03:01,390 I to było naprawdę, naprawdę Pierwszy projekt internetowy wziąłem on-- 70 00:03:01,390 --> 00:03:03,880 Myślę, że może studentem drugiego roku lat, młodszy rok-- 71 00:03:03,880 --> 00:03:07,622 po zażyciu CS50 i CS51, jeden wspólnych zajęciach follow-on. 72 00:03:07,622 --> 00:03:09,330 Zauważyłem w poszukiwaniu archiwa 73 00:03:09,330 --> 00:03:12,150 że jeden z moich następców i przyjaciele, Lee, trochę zmienił 74 00:03:12,150 --> 00:03:13,480 prawa autorskie do siebie. 75 00:03:13,480 --> 00:03:17,520 Ale to było naprawdę coś, Mam własne zakłopotanie. 76 00:03:17,520 --> 00:03:19,370 Ale w tym czasie, to Była to pierwsza strona, 77 00:03:19,370 --> 00:03:22,220 jak powiedziałem kilka tygodni temu, przez które student pierwszego roku mógł 78 00:03:22,220 --> 00:03:24,350 zarejestrować stacjonarnych sportów tutaj. 79 00:03:24,350 --> 00:03:27,950 I tak okazuje się, że obrazy tła 80 00:03:27,950 --> 00:03:29,530 tak, że nie taki dobry pomysł. 81 00:03:29,530 --> 00:03:31,840 Ale internetowa była nowa, a wszyscy byliśmy eksperymentować. 82 00:03:31,840 --> 00:03:34,310 I to jest to, co ja najwyraźniej nie w tym czasie. 83 00:03:34,310 --> 00:03:34,810 W porządku. 84 00:03:34,810 --> 00:03:38,020 Więc bez zbędnych ceregieli, możemy przełączyć przekładnie dziś dać, naprawdę, 85 00:03:38,020 --> 00:03:42,250 ostatni element, który może się okazać, szczególnie przydatne dla projektów końcowych 86 00:03:42,250 --> 00:03:44,780 lecz również, że zacznie aby cały świat szeroki sieci 87 00:03:44,780 --> 00:03:46,680 czuję się trochę bardziej zrozumiałe. 88 00:03:46,680 --> 00:03:49,460 Rzeczywiście, mamy zamiar przedstawić jeden język programowania 89 00:03:49,460 --> 00:03:52,474 nazywa JavaScript, który jest podobny i różni się różne sposoby 90 00:03:52,474 --> 00:03:54,140 z języków poznaliśmy już do tej pory. 91 00:03:54,140 --> 00:03:55,807 >> Więc C, przypomnijmy, jest to skompilowany język. 92 00:03:55,807 --> 00:03:57,473 Musisz uruchomić go przez kompilator. 93 00:03:57,473 --> 00:03:59,810 Otrzymasz kod źródłowy do obiektu Kod lub zer i jedynek. 94 00:03:59,810 --> 00:04:03,000 A to są zer i jedynek, które CPU, Central Processing Unit, 95 00:04:03,000 --> 00:04:04,360 właściwie zrozumieć. 96 00:04:04,360 --> 00:04:06,610 PHP, natomiast nie jest skompilowany język. 97 00:04:06,610 --> 00:04:08,772 Jest to co? 98 00:04:08,772 --> 00:04:09,980 Jest to język interpretowany. 99 00:04:09,980 --> 00:04:11,750 Więc jest jakiś program nazywa tłumacza, że 100 00:04:11,750 --> 00:04:13,708 musi przeczytać it-- góry do dół, lewo, aby prawy-- 101 00:04:13,708 --> 00:04:16,519 i dowiedzieć się, co to wszystko składnia robi i oznacza, 102 00:04:16,519 --> 00:04:20,200 czy jest to pętla lub stan lub dowolna inna liczba programów 103 00:04:20,200 --> 00:04:20,740 konstruuje. 104 00:04:20,740 --> 00:04:22,210 Więc to jest językiem interpretowanym. 105 00:04:22,210 --> 00:04:23,910 >> Następnie wprowadziliśmy HTML. 106 00:04:23,910 --> 00:04:26,440 I HTML nie jest nawet język programowania. 107 00:04:26,440 --> 00:04:28,110 Chcemy to, co nazywamy? 108 00:04:28,110 --> 00:04:31,650 Język znaczników, które jest po prostu rodzaj fantazyjny sposób na powiedzenie go 109 00:04:31,650 --> 00:04:35,820 nie ma programowania konstrukcje takie jak widzieliśmy nawet z powrotem w dniu Scratch. 110 00:04:35,820 --> 00:04:36,720 Nie ma pętli. 111 00:04:36,720 --> 00:04:37,920 Nie ma warunków. 112 00:04:37,920 --> 00:04:40,820 To naprawdę jest językiem o oznakowanie zapasowych danych 113 00:04:40,820 --> 00:04:43,620 i sformatowanie go lub ukształtowania go w pewien sposób. 114 00:04:43,620 --> 00:04:46,147 >> CSS, w międzyczasie, podobnie nie język programowania. 115 00:04:46,147 --> 00:04:47,730 To jeszcze bardziej estetycznie zorientowany. 116 00:04:47,730 --> 00:04:50,470 I to pozwala na sortowanie od dokładnego dostrojenia rzeczy takie jak wielkość czcionki i kolory 117 00:04:50,470 --> 00:04:51,850 i miejsca, a to wszystko. 118 00:04:51,850 --> 00:04:52,370 Potem mieliśmy 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Tak jest w istocie SQL programowania język, w pewnym sensie, 121 00:04:56,010 --> 00:04:59,330 choć dostosowane specjalnie do baz danych. 122 00:04:59,330 --> 00:05:03,347 Ale nawet jeśli tylko możemy przedstawić Państwu wybrać i wstawiania i usuwania i aktualizacji 123 00:05:03,347 --> 00:05:05,430 i kilka innych, Okazuje się, można rzeczywiście 124 00:05:05,430 --> 00:05:07,380 Napisać funkcje lub procedury, jak są one 125 00:05:07,380 --> 00:05:11,270 nazywa, w SQL, które wyglądają i działają zupełnie jak funkcji PHP i C. 126 00:05:11,270 --> 00:05:12,390 Więc wiem, że te istnieją. 127 00:05:12,390 --> 00:05:15,348 Ale my nawet nie z nimi jak tylko zarysować powierzchnię tutaj. 128 00:05:15,348 --> 00:05:18,600 A potem JavaScript, ostatni Nasze języki formalnie. 129 00:05:18,600 --> 00:05:21,029 Więc JavaScript, też jest językiem interpretowanym. 130 00:05:21,029 --> 00:05:23,070 A tych, którzy znają, zrobić chcesz je rozróżnić 131 00:05:23,070 --> 00:05:26,960 niektóre charakterystyczne zarówno C i PHP? 132 00:05:26,960 --> 00:05:28,300 Co sprawia, że ​​jest inaczej? 133 00:05:28,300 --> 00:05:29,650 >> PUBLICZNOŚCI: To nie jest skompilowany. 134 00:05:29,650 --> 00:05:29,930 >> DAVID MALAN: Powiedz jeszcze raz? 135 00:05:29,930 --> 00:05:31,200 >> PUBLICZNOŚCI: To nie jest skompilowany. 136 00:05:31,200 --> 00:05:31,930 >> DAVID MALAN: To nie jest skompilowany. 137 00:05:31,930 --> 00:05:33,450 Dlatego też jest interpretowane. 138 00:05:33,450 --> 00:05:34,760 Więc to nie jest skompilowany. 139 00:05:34,760 --> 00:05:37,210 Ale to sprawia, że ​​jest trochę jak PHP. 140 00:05:37,210 --> 00:05:39,545 Ale to wciąż różni się od PHP w jakiś wyraźny sposób 141 00:05:39,545 --> 00:05:40,920 co najmniej w sposób będziemy go używać. 142 00:05:40,920 --> 00:05:41,205 Tak? 143 00:05:41,205 --> 00:05:41,940 >> PUBLICZNOŚCI: To działa po stronie klienta. 144 00:05:41,940 --> 00:05:44,000 >> DAVID MALAN: Biegnie po stronie klienta, zazwyczaj. 145 00:05:44,000 --> 00:05:47,190 To rzeczywiście wyróżniającą charakterystyczne dla nas teraz. 146 00:05:47,190 --> 00:05:51,170 C był server-side na znaczeniu , że zrobiliśmy wszystko, co w CS50 IDE. 147 00:05:51,170 --> 00:05:53,630 PHP zatem dotąd po stronie serwera, o ile 148 00:05:53,630 --> 00:05:56,550 Jak się też dostaje interpreted-- nie skompilowane, ale interpreted-- 149 00:05:56,550 --> 00:06:00,690 wewnątrz CS50 IDE, co oczywiście jest tylko serwer lub serwery w chmurze. 150 00:06:00,690 --> 00:06:03,070 >> Ale JavaScript, nawet Choć idziesz 151 00:06:03,070 --> 00:06:07,000 zacząć pisać go, powiedzmy, pset osiem, a może ostateczna projects-- jesteś 152 00:06:07,000 --> 00:06:09,620 będzie wyprostować go w CS50 IDE i zapisać go 153 00:06:09,620 --> 00:06:14,760 w plikach w CS50 CS50 IDE, IDE i, z kolei, serwery w chmurze 154 00:06:14,760 --> 00:06:19,160 na którym jest gospodarzem, nie będą interpretacji lub wykonania kodu. 155 00:06:19,160 --> 00:06:23,880 Przeciwnie, to będzie do wysłania niezmienionej formie aż do przeglądarki. 156 00:06:23,880 --> 00:06:26,990 I to wtedy będzie IE lub Google Chrome lub Firefox lub Safari 157 00:06:26,990 --> 00:06:30,697 lub cokolwiek to właściwie interpretuje to, od góry do dołu, od lewej do prawej. 158 00:06:30,697 --> 00:06:32,780 Tak więc kluczowym rozróżnienie charakterystyczne dla dzisiaj 159 00:06:32,780 --> 00:06:36,110 jest to, że JavaScript jest po stronie klienta i PHP, na przykład 160 00:06:36,110 --> 00:06:37,690 został po stronie serwera. 161 00:06:37,690 --> 00:06:40,920 Teraz to ma ciekawe implikacje za, jak, własności intelektualnej 162 00:06:40,920 --> 00:06:42,660 i kto może rzeczywiście zobaczyć kod. 163 00:06:42,660 --> 00:06:44,860 I rzeczywiście, można przejść w internecie i zobaczyć najbardziej 164 00:06:44,860 --> 00:06:47,530 każdy kod, który ktoś ma napisany w JavaScript. 165 00:06:47,530 --> 00:06:50,230 Czasami jest to czytelne, Czasami jest to ukrywane. 166 00:06:50,230 --> 00:06:52,550 Ale o tym w odpowiednim czasie. 167 00:06:52,550 --> 00:06:57,530 >> Więc JavaScript, tyle ładnie, jest bardzo podobna, składniowo, aby C. 168 00:06:57,530 --> 00:06:59,364 I podobnie jak PHP, nie ma główną funkcją. 169 00:06:59,364 --> 00:07:02,113 Jeśli chcesz zacząć pisać Kod JavaScript w przeglądarce, jak zobaczysz dziś, 170 00:07:02,113 --> 00:07:03,270 po prostu zacząć pisać. 171 00:07:03,270 --> 00:07:06,910 Ale to, zobaczysz, szczególnie przydatne w kontekście przeglądarek internetowych. 172 00:07:06,910 --> 00:07:09,820 Jednak moja mała disclaimer-- zwykle earlier-- 173 00:07:09,820 --> 00:07:13,790 to znaczy, że można bardziej Zastosowanie dziś JavaScript po stronie serwera 174 00:07:13,790 --> 00:07:17,655 za pomocą wymyślnego ramy nazwie node.js że niektóre z własnych aplikacji CS50 jest 175 00:07:17,655 --> 00:07:18,280 są napisane. 176 00:07:18,280 --> 00:07:20,640 Sprawdź, 50 nie używa Node.js. 177 00:07:20,640 --> 00:07:24,140 Ale mamy zamiar skupić się na JavaScript po stronie klienta na na zewnątrz. 178 00:07:24,140 --> 00:07:26,750 >> Więc tutaj jest zbiorem warunków w PHP. 179 00:07:26,750 --> 00:07:29,350 Niestety, in-- rzeczywiście, że oświadczenie, też jest poprawna. 180 00:07:29,350 --> 00:07:32,200 Tutaj jest również zestaw Warunki w JavaScript. 181 00:07:32,200 --> 00:07:35,560 Składniowo, jest identyczny C oraz PHP. 182 00:07:35,560 --> 00:07:39,040 Wyrażenia pana Boole są, podobnie, składniowo 183 00:07:39,040 --> 00:07:41,190 identyczne zarówno C i PHP. 184 00:07:41,190 --> 00:07:44,100 Mamy również przełączniki w JavaScript, które wyglądają identycznie. 185 00:07:44,100 --> 00:07:46,350 Mamy dla pętli, które są skonstruowane identycznie, 186 00:07:46,350 --> 00:07:48,140 while, robić podczas pętli. 187 00:07:48,140 --> 00:07:49,980 >> Ten jest trochę inny. 188 00:07:49,980 --> 00:07:53,120 PHP miał dla każdego konstruktu że może być w użyciu 189 00:07:53,120 --> 00:07:55,320 lub będzie używać w pset siedem, być może. 190 00:07:55,320 --> 00:07:59,460 JavaScript ma tę specjalną wersję dla których można dosłownie powiedzieć coś 191 00:07:59,460 --> 00:08:03,864 jak dla zmiennej klucza w obiekcie, który Jest to bardzo zwięzły sposób powiedzenia, 192 00:08:03,864 --> 00:08:06,780 jeśli Mam object-- a my mówić o nich ponownie w moment-- 193 00:08:06,780 --> 00:08:10,370 i chcę iteracyjne nad wszystkim z głównych par wartości wewnątrz, 194 00:08:10,370 --> 00:08:13,620 Nie mam dowiedzieć się, w jaki sposób numerycznie indeksu im zero, jeden 195 00:08:13,620 --> 00:08:14,580 dwa Trzy. 196 00:08:14,580 --> 00:08:15,900 >> Można dosłownie powiedzieć. 197 00:08:15,900 --> 00:08:20,740 I na każdej iteracji, JavaScript dla mnie będzie zaktualizować klucz zmiennej 198 00:08:20,740 --> 00:08:24,810 jako pierwszy klucz, a następny klucz a następny klucz, a następny klucz 199 00:08:24,810 --> 00:08:25,510 i tak dalej. 200 00:08:25,510 --> 00:08:30,000 I mogę się w ich wartości, traktując obiekt w JavaScript, jak zobaczymy, 201 00:08:30,000 --> 00:08:32,584 jakby to jest asocjacyjna w PHP. 202 00:08:32,584 --> 00:08:35,750 Rzeczywiście, jeśli wreszcie owinięte swoje nic wokół tego, co tablica asocjacyjna jest 203 00:08:35,750 --> 00:08:40,140 w PHP, możesz myśleć o tym teraz, jak identyczne do obiektu w JavaScript. 204 00:08:40,140 --> 00:08:42,030 Ale to trochę uproszczeniem. 205 00:08:42,030 --> 00:08:47,230 >> Tablice wyglądają, tyle ładnie, identyczne do PHP wyjątkiem jednego znaku. 206 00:08:47,230 --> 00:08:51,425 Jest jedna rzecz, brakuje tutaj które widzieliśmy w zeszłym tygodniu z PHP. 207 00:08:51,425 --> 00:08:52,050 Co się pominięty? 208 00:08:52,050 --> 00:08:53,310 Tak? 209 00:08:53,310 --> 00:08:54,090 Nie znak dolara. 210 00:08:54,090 --> 00:08:56,240 Więc jesteśmy z powrotem do bardziej normalny świat, w którym 211 00:08:56,240 --> 00:08:58,050 Nie mają zmienne znaki dolara. 212 00:08:58,050 --> 00:09:00,810 Ale robisz poprzedzić je z var, zwykle. 213 00:09:00,810 --> 00:09:02,230 I var oznacza zmienną. 214 00:09:02,230 --> 00:09:06,440 I podobnie jak PHP jest luźno typed-- której istnieją rodzaje, 215 00:09:06,440 --> 00:09:10,120 są numery i smyczki i pływaki i tak forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript ma podobnie typy. 217 00:09:11,570 --> 00:09:15,470 Ale to luźno wpisane, że my, programiści nie trzeba ich podawać. 218 00:09:15,470 --> 00:09:18,980 Musimy być świadomi, że istnieje wiele różnych typów. 219 00:09:18,980 --> 00:09:21,690 >> Zmienne, meanwhile-- oto jak możemy zadeklarować "hello, world" 220 00:09:21,690 --> 00:09:22,230 jako ciąg znaków. 221 00:09:22,230 --> 00:09:24,890 Zauważ, że to identyczne PHP, ale nie znak dolara. 222 00:09:24,890 --> 00:09:27,120 I to jest coś, co będzie zaczniesz widzieć więcej dzisiaj, 223 00:09:27,120 --> 00:09:30,990 w której mamy obiekt z kluczy i wartości. 224 00:09:30,990 --> 00:09:32,990 A jeśli chcesz spróbować wywnioskować z ostatniej week-- 225 00:09:32,990 --> 00:09:34,730 składnia jest nieco inna. 226 00:09:34,730 --> 00:09:39,740 Ale trochę rozsądku check-- ile Klawisze ma ten obiekt wydaje się mieć? 227 00:09:39,740 --> 00:09:40,850 Widzę cztery. 228 00:09:40,850 --> 00:09:43,560 Widzę dwa. 229 00:09:43,560 --> 00:09:44,680 >> Więc to rzeczywiście dwa. 230 00:09:44,680 --> 00:09:47,260 Tak więc jest to zbiór dwóch par klucz-wartość. 231 00:09:47,260 --> 00:09:49,820 Kluczem jest symbolem, którego wartość jest FB. 232 00:09:49,820 --> 00:09:52,620 Kluczem jest cena, której wartość wynosi 101,53. 233 00:09:52,620 --> 00:09:54,230 To są dwie pary klucz-wartość. 234 00:09:54,230 --> 00:09:58,120 I pamiętaj, PHP-- i to jest kolejny właśnie rodzaj składniowej różnicy. 235 00:09:58,120 --> 00:10:00,170 To nie wszystko, intelektualnie ciekawa. 236 00:10:00,170 --> 00:10:04,610 PHP może napisać to samo rzecz jak follows-- środki, równa. 237 00:10:04,610 --> 00:10:06,730 I zmienić je na nawiasach kwadratowych. 238 00:10:06,730 --> 00:10:11,240 A potem zmienić na Słowo w cudzysłowach, "cena". 239 00:10:11,240 --> 00:10:12,500 I wtedy nie używać dwukropka. 240 00:10:12,500 --> 00:10:15,060 Co mogę użyć w zeszłym tygodniu? 241 00:10:15,060 --> 00:10:18,290 Tak, znak równości strzałka notacji ostry. 242 00:10:18,290 --> 00:10:21,470 >> A potem zrobił to samo tutaj. 243 00:10:21,470 --> 00:10:23,580 Tak samo tutaj. 244 00:10:23,580 --> 00:10:24,240 I to wszystko. 245 00:10:24,240 --> 00:10:27,752 Więc to jest w porządku, jeśli nie ma naprawdę dotarło do pamięci tylko 246 00:10:27,752 --> 00:10:29,960 ale dlatego, że naprawdę intelektualnie nieciekawe. 247 00:10:29,960 --> 00:10:31,660 To różnice tylko składniowych. 248 00:10:31,660 --> 00:10:33,230 Ale pomysły są dokładnie takie same. 249 00:10:33,230 --> 00:10:35,910 Wewnątrz tej zmiennej cytat w JavaScript 250 00:10:35,910 --> 00:10:39,020 Jest to zbiór par klucz-wartość, jedna z nich to symbol, z których 251 00:10:39,020 --> 00:10:39,690 jest cena. 252 00:10:39,690 --> 00:10:42,340 I mogę dostać w tych wartości o następującej składni. 253 00:10:42,340 --> 00:10:46,280 Podobnie jak w PHP, mogłem zrobić coś like-- pozwól 254 00:10:46,280 --> 00:10:48,590 mi zrobić to pole trochę większe. 255 00:10:48,590 --> 00:10:52,750 Podobnie jak w PHP, mogłem aby this-- oh, do cholery. 256 00:10:52,750 --> 00:10:53,250 Chodź. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Podobnie jak w PHP-- OK, będziemy po prostu korzystać z notatek prezentera. 259 00:11:00,800 --> 00:11:06,010 Podobnie jak w PHP, mogę zrobić $ $ cytat [cytat "symbol"], 260 00:11:06,010 --> 00:11:08,860 i to będzie mnie wartość "symbol". 261 00:11:08,860 --> 00:11:12,800 W JavaScript, to będzie identyczne, w którym można po prostu to zrobić. 262 00:11:12,800 --> 00:11:14,850 Jedyną rzeczą, która jest Brakuje znak dolara. 263 00:11:14,850 --> 00:11:17,470 >> Więc tyle ładnie, a potem, nie nie aż tak dużo nowa składnia. 264 00:11:17,470 --> 00:11:21,025 Więc co dziś skupimy się na, naprawdę, jest niektóre z pomysłów i wniosków. 265 00:11:21,025 --> 00:11:22,900 I pierwsze takie aplikacja, która może 266 00:11:22,900 --> 00:11:26,090 widziałem jeśli zanurkował pset siedem już jest składnia. 267 00:11:26,090 --> 00:11:28,980 Tak więc w pset siedem, jeśli już widział i nie widziałem go jeszcze, 268 00:11:28,980 --> 00:11:33,570 wiem, że nie jest to plik, który dajemy zadzwoniłeś config.json-- JavaScript 269 00:11:33,570 --> 00:11:34,661 Object Notation. 270 00:11:34,661 --> 00:11:35,160 Czemu? 271 00:11:35,160 --> 00:11:39,540 Chcieliśmy, aby móc zapewnić Państwu szablon z niektórych par klucz-wartość. 272 00:11:39,540 --> 00:11:44,290 Chcieliśmy być w stanie podać listę przyjmującego, nazwę serwera. 273 00:11:44,290 --> 00:11:46,710 Chcieliśmy dać ci zastępczym dla swojej nazwy użytkownika 274 00:11:46,710 --> 00:11:48,210 i symbol zastępczy hasła. 275 00:11:48,210 --> 00:11:49,410 Jeśli nie widzisz Ten jednak, nie martw się. 276 00:11:49,410 --> 00:11:51,340 Więcej na ten temat w pset siedem [? Spec. ?] I wtedy, 277 00:11:51,340 --> 00:11:53,173 Oczywiście, chcemy was wypełnić do-DOS 278 00:11:53,173 --> 00:11:55,310 ponieważ podczas logowania CS50 IDE, każdy z was 279 00:11:55,310 --> 00:11:57,630 mieć własną nazwę użytkownika i hasło. 280 00:11:57,630 --> 00:12:00,910 >> Więc może używaliśmy pół tuzina lub więcej różnych formatów plików. 281 00:12:00,910 --> 00:12:02,940 Mogliśmy używany plik .txt. 282 00:12:02,940 --> 00:12:04,570 Możemy używany plik CSV. 283 00:12:04,570 --> 00:12:06,745 Mogliśmy stosuje się Plik INI, plik XML, 284 00:12:06,745 --> 00:12:09,370 cała masa więcej akronimy, że może nie kiedykolwiek słyszałem. 285 00:12:09,370 --> 00:12:11,244 To trochę arbitralne na koniec dnia. 286 00:12:11,244 --> 00:12:16,030 Ale bardzo popularne w dzisiejszych czasach jest tekst Format nazywa obiektu JSON-- JavaScript 287 00:12:16,030 --> 00:12:18,460 Notation--, że wygląda to tak. 288 00:12:18,460 --> 00:12:20,890 To trochę tajemnicze, ale zauważ wzory. 289 00:12:20,890 --> 00:12:24,180 Zaczynasz z otwartym kręcone nawiasów, a kończy się tak samo. 290 00:12:24,180 --> 00:12:26,550 Wewnątrz, że jest coś. 291 00:12:26,550 --> 00:12:27,920 Jest parę klucz-wartość. 292 00:12:27,920 --> 00:12:30,580 Więc jest to obiekt, który jestem patrząc na ekranie tutaj 293 00:12:30,580 --> 00:12:33,690 który ma jeden przycisk, który ma jedną wartość. 294 00:12:33,690 --> 00:12:37,610 I właśnie wnioskowanie oparte na poprzedni wzór, co jest kluczem tutaj? 295 00:12:37,610 --> 00:12:39,790 Bazy danych, co do lewy okrężnicy. 296 00:12:39,790 --> 00:12:43,500 >> Teraz wartość dzieje się a wiele linii tym razem. 297 00:12:43,500 --> 00:12:46,760 Ale wartość zaczyna się od kręconych zaprzeć się i kończy w nawias klamrowy. 298 00:12:46,760 --> 00:12:49,480 Więc co proponujesz jest Typ wartości bazie? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 Słownik, lub po prostu więcej zwięźle przedmiot. 301 00:12:54,670 --> 00:12:55,170 Dobrze? 302 00:12:55,170 --> 00:13:00,010 Jest to rodzaj struktury danych, które Można stosować inne struktury w sobie. 303 00:13:00,010 --> 00:13:02,750 Więc jeśli ta cała sprawa jesteśmy Wywołanie object-- i obiekt 304 00:13:02,750 --> 00:13:07,101 to tylko kilka z kluczowych wartości pairs-- wartość samej bazy danych jest obiektem. 305 00:13:07,101 --> 00:13:10,350 Wartość bazy danych ma całą masę par wartości podstawowych, z których pierwszy 306 00:13:10,350 --> 00:13:13,130 jest gospodarzem, a następnie wymienić, a następnie nazwa użytkownika, a hasło 307 00:13:13,130 --> 00:13:17,550 każdy z których wartości, w międzyczasie, to po prostu nudny ciąg w cudzysłów. 308 00:13:17,550 --> 00:13:19,770 >> Więc nawet jeśli nie jest to Super jasne jeszcze, 309 00:13:19,770 --> 00:13:22,740 wiem, że to jest po prostu standardowe, dość nudny sposób 310 00:13:22,740 --> 00:13:25,190 przechowywania danych w formacie standardowym. 311 00:13:25,190 --> 00:13:27,700 Ale typowych błędów You może zrobić, nawet w pset siedmiu, 312 00:13:27,700 --> 00:13:32,120 są małe głupie rzeczy, jak gdyby Ciebie przypadkowo pominąć przecinek tam. 313 00:13:32,120 --> 00:13:34,900 To będzie skutkować w pliku nie musi być czytelny. 314 00:13:34,900 --> 00:13:38,191 Jeśli przypadkowo pominąć rzeczy jak cytaty, to nie będzie czytelny. 315 00:13:38,191 --> 00:13:41,654 Więc jest to dość nitpicky format pliku, ale to jest taki, który jest bardzo powszechne. 316 00:13:41,654 --> 00:13:44,820 A my się z niego korzystać, nawet jeśli nie używać w przeciwnym wypadku kod JavaScript, 317 00:13:44,820 --> 00:13:46,330 w pset siedem. 318 00:13:46,330 --> 00:13:46,860 >> W porządku. 319 00:13:46,860 --> 00:13:48,110 Więc pamiętam to zdjęcie. 320 00:13:48,110 --> 00:13:51,657 Rozmawialiśmy o tym, w formacie HTML, które kod może wyglądać tak. 321 00:13:51,657 --> 00:13:54,740 To HyperText Markup Language [Niesłyszalne] tylko dla "Witaj, świecie". 322 00:13:54,740 --> 00:13:57,570 Ale potem zaproponowała Jakiś czas temu, że czy to pomaga, 323 00:13:57,570 --> 00:14:00,210 możesz zacząć myśleć o tym już jako drzewo. 324 00:14:00,210 --> 00:14:03,730 W rzeczywistości, wgłębienie, które używać tylko ze względu na czytelność w 325 00:14:03,730 --> 00:14:05,610 lub ze względu na styl w Po lewej stronie rodzaj 326 00:14:05,610 --> 00:14:10,040 być tłumaczone na tym drzewie, gdzie cię mają jakiś specjalny węzeł główny, że będziesz 327 00:14:10,040 --> 00:14:16,860 ogólnie nazywa się dokument, poniżej której Jest to element główny lub tag HTML, HTML, 328 00:14:16,860 --> 00:14:19,980 który następnie ma dwa dzieci, głowa i ciało. 329 00:14:19,980 --> 00:14:21,750 >> A potem z kolei szef ma tytuł. 330 00:14:21,750 --> 00:14:23,440 I tytuł ma wartość tekstową. 331 00:14:23,440 --> 00:14:26,130 I ciało podobnie ma wartość tekstową. 332 00:14:26,130 --> 00:14:29,220 Więc jeśli nie masz nic powiedzenie że owszem, można skorzystać z HTML 333 00:14:29,220 --> 00:14:32,080 i narysować jak tego, po prawej stronie 334 00:14:32,080 --> 00:14:35,910 Jest to fajny model psychicznego, bo teraz że mamy JavaScript do programowania, 335 00:14:35,910 --> 00:14:39,960 Język, który przeglądarki mogą wykonać i zinterpretować dla Ciebie, 336 00:14:39,960 --> 00:14:42,690 okazuje się, że to, co mamy zamiar zrobić w kodzie 337 00:14:42,690 --> 00:14:45,320 jest zacząć manipulować tym Struktura drzewa w pamięci. 338 00:14:45,320 --> 00:14:47,070 Nie mamy budować drzewo w pamięci. 339 00:14:47,070 --> 00:14:49,880 Nie musimy zrobić coś w rodzaju Struktura danych pset pięć stylu 340 00:14:49,880 --> 00:14:50,650 złożoność. 341 00:14:50,650 --> 00:14:54,610 Przeglądarka, ładnie tyle, na interpretacji HTML góry do dołu, 342 00:14:54,610 --> 00:14:58,600 lewo lub w prawo, jest dosłownie będzie przekazać nam równowartość wskaźnika 343 00:14:58,600 --> 00:15:00,840 do tego całego drzewa za darmo. 344 00:15:00,840 --> 00:15:02,150 To nie wszystkie ciężkiej pracy. 345 00:15:02,150 --> 00:15:05,520 To właśnie Mozilla i Apple i inni zrobili dla nas. 346 00:15:05,520 --> 00:15:09,400 >> A z JavaScript będziemy być w stanie kontrolować i zmieniać i robić 347 00:15:09,400 --> 00:15:12,910 Interesujące rzeczy do to drzewo, zwie 348 00:15:12,910 --> 00:15:15,880 lub jako DOM Document Object Model. 349 00:15:15,880 --> 00:15:17,110 Jakie rzeczy? 350 00:15:17,110 --> 00:15:19,030 Cóż, okazuje się, że w JavaScript, nie 351 00:15:19,030 --> 00:15:22,800 ta lista prania zdarzenia, które mogą mieć miejsce. 352 00:15:22,800 --> 00:15:26,330 I tak naprawdę nie używane, które Słowo od tygodnia zero i pset 353 00:15:26,330 --> 00:15:28,240 zero, gdy rozmawialiśmy o Scratch. 354 00:15:28,240 --> 00:15:31,390 Większość z was zapewne nie używać zdarzenie w projekcie Scratch. 355 00:15:31,390 --> 00:15:33,850 Ale możesz sobie przypomnieć proste Marco Polo 356 00:15:33,850 --> 00:15:36,760 Przykładem, gdzie mieliśmy dwa duchy, jeden z nich powiedział Marco. 357 00:15:36,760 --> 00:15:40,180 Drugi z nich, a następnie, po słuchanie i wysłuchaniu tego wydarzenia, powiedział, Polo. 358 00:15:40,180 --> 00:15:42,080 Jeśli nie, to nie krępuj się oglądaj się, że daleko wstecz. 359 00:15:42,080 --> 00:15:44,450 >> Ale to jest po prostu powiedzieć, i można rodzaju 360 00:15:44,450 --> 00:15:47,730 wywnioskować z nazwy tych rzeczy, JavaScript, okazuje się, 361 00:15:47,730 --> 00:15:53,200 ma dać nam drogę do słuchania dla myszy spada lub mysz idzie w górę 362 00:15:53,200 --> 00:15:57,920 klawisz lub zejście lub kluczem idzie w górę lub w onsubmit onSelect 363 00:15:57,920 --> 00:15:59,740 lub onresizing coś. 364 00:15:59,740 --> 00:16:03,060 Innymi słowy, każde działanie fizyczne że człowiek może mieć w przeglądarce 365 00:16:03,060 --> 00:16:08,210 co robisz na co dzień, można napisać kod, który słucha tych wydarzeń 366 00:16:08,210 --> 00:16:10,220 a potem robi coś odpowiedniego. 367 00:16:10,220 --> 00:16:14,130 >> Na przykład, jeśli używasz Google Maps, co się stanie, jeśli klikniesz i ruch 368 00:16:14,130 --> 00:16:16,250 mysz, zwykle? 369 00:16:16,250 --> 00:16:17,758 Jeśli kliknąć i przeciągnąć? 370 00:16:17,758 --> 00:16:18,258 Tak? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Dokładnie. 373 00:16:22,200 --> 00:16:23,159 Mapa zaczyna się poruszać. 374 00:16:23,159 --> 00:16:25,616 Możesz więc jakby co to tu, co jest tam. 375 00:16:25,616 --> 00:16:27,130 A w jaki sposób Google wdrożenia, które? 376 00:16:27,130 --> 00:16:29,421 Cóż, zapewne, że są za pomocą kilku takich zdarzenia 377 00:16:29,421 --> 00:16:31,720 słuchaczy, jeden, który mówi, słuchać na myszy 378 00:16:31,720 --> 00:16:35,410 down-- więc gdy użytkownik fizycznie popycha jego gładzik lub jego myszy 379 00:16:35,410 --> 00:16:36,010 na dół. 380 00:16:36,010 --> 00:16:38,350 A następnie szukamy coś w ruchu 381 00:16:38,350 --> 00:16:41,145 lub inne wydarzenie, które pozwala nam uchwycić opór. 382 00:16:41,145 --> 00:16:45,910 A w rzeczywistości, drag jest podobnie w tym dot dot dot listę możliwych opcji. 383 00:16:45,910 --> 00:16:49,140 >> Więc to będzie potężny sposób rozpoczęcia odpowiedzi użytkownikowi 384 00:16:49,140 --> 00:16:52,824 jeszcze zanim on rzeczywiście kliknięć coś wyraźne jak złożyć. 385 00:16:52,824 --> 00:16:55,240 Ale mamy zamiar wprowadzić kilka wątków się tam dostać. 386 00:16:55,240 --> 00:16:58,570 Przejście Ale najpierw niech do pewnego rzeczywistego kodu. 387 00:16:58,570 --> 00:17:01,450 Więc mam zamiar iść do przodu i otworzyć dom-0, 388 00:17:01,450 --> 00:17:05,869 który jest bardzo prosty przykład tutaj, że jeśli powiększyć prostu 389 00:17:05,869 --> 00:17:08,500 ma to wejście tu na mnie. 390 00:17:08,500 --> 00:17:12,410 I mam zamiar iść do przodu i wpisz "Dawid" w moim imieniu i kliknij przycisk Prześlij. 391 00:17:12,410 --> 00:17:17,940 >> A potem, choć rodzaj tanio, I mam ten wiersz, które pojawia się, że mówi: 392 00:17:17,940 --> 00:17:19,244 "Witaj, David!" 393 00:17:19,244 --> 00:17:21,740 Jest to więc rodzaj jak nasze "hello, world" 394 00:17:21,740 --> 00:17:25,150 że zrobiliśmy jakiś czas temu w C i nawet w PHP, ponieważ mam dynamicznie 395 00:17:25,150 --> 00:17:26,310 wyprowadzać moje imię. 396 00:17:26,310 --> 00:17:28,230 Mogę zrobić nazwę czyjejś tutaj. 397 00:17:28,230 --> 00:17:31,240 Może po prostu zmienić na, jak Hannah, kliknij przycisk Prześlij. 398 00:17:31,240 --> 00:17:33,780 I rzeczywiście, małe zmiany pop-up. 399 00:17:33,780 --> 00:17:36,650 >> Teraz, pop-upy są jednym z większość maltretowane cechy sieci. 400 00:17:36,650 --> 00:17:38,520 I rzeczywiście, już w jednodniowe okienek wyskakujących 401 00:17:38,520 --> 00:17:40,820 weszła w modzie, bo Ciebie pójdzie do jakiejś website-- 402 00:17:40,820 --> 00:17:43,604 być może wątpliwa place-- które nagle 403 00:17:43,604 --> 00:17:46,020 rozpocząć przyprawiając ekranu z całym gronem pop-upy. 404 00:17:46,020 --> 00:17:49,700 I tak, ta zdolność do pop-up Okna przed użytkownikiem 405 00:17:49,700 --> 00:17:52,372 nie było szczególnie dobrze przyjęty przez ludzkość. 406 00:17:52,372 --> 00:17:54,080 Więc dlatego widzisz tego uniknąć rzeczy, 407 00:17:54,080 --> 00:17:55,706 która po prostu sprawia, że ​​cała ta sprawa brzydko. 408 00:17:55,706 --> 00:17:57,996 Więc będziemy potrzebować lepszy sposób, aby skłonić użytkownika. 409 00:17:57,996 --> 00:17:59,350 Ale teraz, że wydaje się działać. 410 00:17:59,350 --> 00:18:03,320 Więc po prostu intuicyjnie, co wydaje się być tutaj dzieje? 411 00:18:03,320 --> 00:18:07,870 Idę dalej i kliknij przycisk Prześlij, a wtedy coś się dzieje, wyraźnie. 412 00:18:07,870 --> 00:18:12,870 Ale to, co się dzieje, że nie stało w zeszłym tygodniu, za każdym razem, kliknąłem Zatwierdź? 413 00:18:12,870 --> 00:18:15,940 Co się nie stało na ekranie? 414 00:18:15,940 --> 00:18:17,170 Przepraszam? 415 00:18:17,170 --> 00:18:18,010 Odśwież. 416 00:18:18,010 --> 00:18:19,720 Adres URL nie zmienia w ogóle. 417 00:18:19,720 --> 00:18:22,250 Powiedziałem to był dom-0, a ja jestem jeszcze w DOM-0. 418 00:18:22,250 --> 00:18:26,890 Normalnie byśmy się zmienić na inny Adres URL, jak register.php lub podobne. 419 00:18:26,890 --> 00:18:29,560 >> Ale nawet kiedy zwolnić to coś, klikając przycisk OK, 420 00:18:29,560 --> 00:18:32,310 zauważyć, że adres URL pozostaje całkowicie umieścić. 421 00:18:32,310 --> 00:18:35,350 I rzeczywiście, jeśli jestem trochę sceptyczni, pozwól mi otworzyć Chrome. 422 00:18:35,350 --> 00:18:36,860 Pozwól mi otworzyć zakładkę Network. 423 00:18:36,860 --> 00:18:38,360 I zauważyć, że to w tej chwili puste. 424 00:18:38,360 --> 00:18:40,700 Pozwólcie mi iść do przodu i ponownie Maria. 425 00:18:40,700 --> 00:18:42,810 Nie ma ruchu w sieci w ogóle. 426 00:18:42,810 --> 00:18:44,320 Więc nie ma HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Więc rzeczywiście, jeśli spojrzeć na kodzie źródłowym dla this-- pozwól mi zamknąć to okno 428 00:18:47,620 --> 00:18:49,480 i przejść do widoku Source. 429 00:18:49,480 --> 00:18:50,400 Ciekawa. 430 00:18:50,400 --> 00:18:53,520 Wygląda na to, że jakiś nowe tagi, wśród nich skrypt. 431 00:18:53,520 --> 00:18:57,490 Warto więc spojrzeć w CS50 IDE właśnie wysłałem do użytkownika. 432 00:18:57,490 --> 00:19:00,690 >> Więc tutaj jest-- niech skupić się tylko na HTML. 433 00:19:00,690 --> 00:19:03,500 Oto dolna połowa Dom-0.html. 434 00:19:03,500 --> 00:19:07,830 I zauważyć, że ma tytuł, tag głowy, tag ciała, tag formularza. 435 00:19:07,830 --> 00:19:11,257 Ale to, co wyskakuje do was jako inna, zwłaszcza jeśli nigdy wcześniej nie 436 00:19:11,257 --> 00:19:12,590 napisałeś sam JavaScript. 437 00:19:12,590 --> 00:19:14,920 Pozwól mi przejść się trochę w prawo tutaj. 438 00:19:14,920 --> 00:19:18,330 Mam wejście, inne wejście do przedstawienia. 439 00:19:18,330 --> 00:19:21,410 Mam identyfikator, który jest swego rodzaju nowa. 440 00:19:21,410 --> 00:19:22,790 Ale widziałem to z CSS. 441 00:19:22,790 --> 00:19:24,480 Co jeszcze jest na pewno nowy? 442 00:19:24,480 --> 00:19:24,980 Tak? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 Miły. 445 00:19:32,140 --> 00:19:32,760 >> W porządku. 446 00:19:32,760 --> 00:19:35,630 Więc gdzie jest napisane onsubmit, zauważyć, co wydaje się podążać. 447 00:19:35,630 --> 00:19:38,740 To jest atrybutem w nomenklaturze HTML. 448 00:19:38,740 --> 00:19:40,944 Jego wartość jest tym cudzysłowie tutaj. 449 00:19:40,944 --> 00:19:42,860 A to wygląda trochę dziwne na pierwszy rzut oka. 450 00:19:42,860 --> 00:19:44,050 To nie jest HTML. 451 00:19:44,050 --> 00:19:45,240 To nie jest CSS. 452 00:19:45,240 --> 00:19:47,580 Jest to, jak można się domyślać, JavaScript. 453 00:19:47,580 --> 00:19:51,850 Tak więc wydaje się, że wbudowany w ten Strona internetowa jest funkcja o nazwie pozdrawiam. 454 00:19:51,850 --> 00:19:54,250 A ja wywodząc, że wystarczy bo to słowo, pozdrawiam. 455 00:19:54,250 --> 00:19:55,880 Ma otwartą paren, blisko nawias, średnik. 456 00:19:55,880 --> 00:19:58,095 Wygląda na to, funkcji C, wygląda jak funkcji PHP. 457 00:19:58,095 --> 00:20:00,370 >> I rzeczywiście, to będzie będzie funkcją JavaScript. 458 00:20:00,370 --> 00:20:01,440 Potem wracam fałszywe. 459 00:20:01,440 --> 00:20:03,440 Wrócimy do że za chwilę. 460 00:20:03,440 --> 00:20:05,320 Ale gdzie jest określona funkcja? 461 00:20:05,320 --> 00:20:07,950 No daj mi przewijać w górę na wierzchu pliku. 462 00:20:07,950 --> 00:20:11,710 I mimo, że to długa linia, jest to stosunkowo proste. 463 00:20:11,710 --> 00:20:15,000 Pozwól mi przybliżyć tu i skupić się na tych czterech linii. 464 00:20:15,000 --> 00:20:17,137 >> Więc w JavaScript, tylko takich jak PHP, po prostu 465 00:20:17,137 --> 00:20:19,720 powiedzmy, dosłownie, słowo "funkcja" nazwa funkcji 466 00:20:19,720 --> 00:20:22,700 a następnie nawiasach z każdym arguments-- żadnych argumentów w tym przypadku. 467 00:20:22,700 --> 00:20:25,290 I nie ma typ zwracany w JavaScript, podobnie jak PHP. 468 00:20:25,290 --> 00:20:29,470 Więc to trochę luźniejsze niż C. Otwarty nawias klamrowy, blisko nawias klamrowy. 469 00:20:29,470 --> 00:20:33,270 Wbudowany w JavaScripcie jest function-- nie zaleca function-- 470 00:20:33,270 --> 00:20:35,730 ale funkcja nazywa alert których jedynym celem w życiu 471 00:20:35,730 --> 00:20:38,620 to podciągnąć, że dość brzydki zapyta, które widzieliśmy przed chwilą. 472 00:20:38,620 --> 00:20:40,950 >> Teraz jest to rodzaj łyk. 473 00:20:40,950 --> 00:20:42,560 Co się tu dzieje? 474 00:20:42,560 --> 00:20:45,840 Więc zacznijmy się podkreślić tu wszystko. 475 00:20:45,840 --> 00:20:48,540 To ten sam argument, aby ostrzec. 476 00:20:48,540 --> 00:20:49,530 A o co chodzi? 477 00:20:49,530 --> 00:20:51,200 To po prostu wygląda jak struna. 478 00:20:51,200 --> 00:20:59,180 I okazuje się, w przeciwieństwie do PHP, w przeciwieństwie C, to nie ma znaczenia w JavaScript 479 00:20:59,180 --> 00:21:01,090 jeśli wy apostrofy lub cudzysłowy. 480 00:21:01,090 --> 00:21:02,060 Będą równoważne. 481 00:21:02,060 --> 00:21:03,769 I szczerze mówiąc, to jest po prostu popularne tych dni 482 00:21:03,769 --> 00:21:06,726 dla programistów JavaScript, aby zawsze używać apostrofów z jakiegoś powodu. 483 00:21:06,726 --> 00:21:07,840 To jest po prostu rzeczą. 484 00:21:07,840 --> 00:21:09,710 Ale możemy użyć cudzysłowia, jak również. 485 00:21:09,710 --> 00:21:11,540 >> Więc plus to nowy charakter. 486 00:21:11,540 --> 00:21:14,512 Ale ci z was, którzy zrobili to wcześniej, co ma także na myśli? 487 00:21:14,512 --> 00:21:16,440 Tak. 488 00:21:16,440 --> 00:21:17,120 Złączyć. 489 00:21:17,120 --> 00:21:18,570 Więc widzieliśmy to w PHP. 490 00:21:18,570 --> 00:21:20,315 Jest tylko kropka Operator w PHP, który 491 00:21:20,315 --> 00:21:22,000 będzie łączyć dwa ciągi razem. 492 00:21:22,000 --> 00:21:24,000 C był ból w szyi, aby to zrobić. 493 00:21:24,000 --> 00:21:27,310 Przypomnijmy pset sześciu, co było especial ból w szyi, 494 00:21:27,310 --> 00:21:29,470 trzeba by użyć coś strcat 495 00:21:29,470 --> 00:21:31,660 po przydzielania pamięci na stosie lub sterty. 496 00:21:31,660 --> 00:21:34,243 Trzeba było pokonywać przeszkody tylko do łączenia dwóch ciągów. 497 00:21:34,243 --> 00:21:36,040 W JavaScript, jest to bardzo proste. 498 00:21:36,040 --> 00:21:38,030 Wystarczy użyć operatora plusa między nimi. 499 00:21:38,030 --> 00:21:41,420 >> Więc kompleks wyglądający co wydaje się być tym 500 00:21:41,420 --> 00:21:43,490 ponieważ na koniec cały ten ciąg, po prostu 501 00:21:43,490 --> 00:21:45,797 złączyć się wykrzyknikiem. 502 00:21:45,797 --> 00:21:48,380 Więc jeśli to, co było pojawiały się było "witam, Dawid", "hello, Hannah," 503 00:21:48,380 --> 00:21:52,740 "witam, Maria", i tak dalej, wyraźnie że w średnim rzeczą pomiędzy dwoma 504 00:21:52,740 --> 00:21:55,215 plusy musi dać mi dostęp do co? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Co tam jest na pewno? 507 00:22:01,991 --> 00:22:02,490 Tak. 508 00:22:02,490 --> 00:22:05,090 Więc będę udawać tutaj odpowiedzieć na swoje nazwisko, prawda? 509 00:22:05,090 --> 00:22:10,380 Więc ich nazwisko pojawiło się w finale wynik. Więc co to oznacza? 510 00:22:10,380 --> 00:22:15,080 Cóż, zaproponował wcześniej, że Obraz, który tzw DOM 511 00:22:15,080 --> 00:22:18,580 ma ten szczególny element główny aż góra nazywa dokument. 512 00:22:18,580 --> 00:22:21,660 A teraz okazuje się, że będzie być specjalne zmienna globalna 513 00:22:21,660 --> 00:22:25,250 w JavaScript, wbudowane w którym jest cała masa przydatnych funkcjonalności. 514 00:22:25,250 --> 00:22:31,770 Wśród użytecznych funkcji jest zdolność do uzyskania w każdym węźle potomka. 515 00:22:31,770 --> 00:22:37,760 Te kwadraty lub prostokąty lub elipsy to tylko węzły w drzewie, że tak powiem. 516 00:22:37,760 --> 00:22:41,850 >> Tak więc okazuje się, że wbudowany w Obiekt document JavaScript w 517 00:22:41,850 --> 00:22:47,300 Jest to funkcja, inaczej znany jako Metoda, która się nazywa getElementById. 518 00:22:47,300 --> 00:22:50,410 Składnia wywoływania funkcji w JavaScript 519 00:22:50,410 --> 00:22:55,220 które znajduje się wewnątrz obiektu lub Zmienna jest tylko z notacji z kropkami. 520 00:22:55,220 --> 00:22:57,950 I widzieliśmy to w C co składnia struct. 521 00:22:57,950 --> 00:23:03,530 Widać to w pset siedmiu, rodzaj, rodzaj, gdy widzisz CS50 :: zapytania. 522 00:23:03,530 --> 00:23:08,070 Dwukropek Dwukropek w PHP jest inny sposób wywołania funkcji, która jest 523 00:23:08,070 --> 00:23:09,260 wewnątrz jakiegoś przedmiotu. 524 00:23:09,260 --> 00:23:11,960 >> Ale teraz w JavaScript, to tylko kropka. 525 00:23:11,960 --> 00:23:14,170 I tak ta funkcja, tyle ładnie, rodzaj 526 00:23:14,170 --> 00:23:16,810 mówi, co to does-- uzyskać elementu przez ID. 527 00:23:16,810 --> 00:23:20,280 Element jest po prostu inna nazwa dla zmiennej albo węzła DOM. 528 00:23:20,280 --> 00:23:26,900 I tak się elementu przez ID "imię" Oznacza this-- oto mój HTML. 529 00:23:26,900 --> 00:23:31,910 I na podstawie tego kodu HTML, co węzeł lub co tag HTML jestem 530 00:23:31,910 --> 00:23:35,097 będzie programowo być uczynku poprzez wywołanie document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Tak, dokładnie. 533 00:23:38,500 --> 00:23:42,670 Mam zamiar dostać wejście Element, którego ID nie jest "nazwa". 534 00:23:42,670 --> 00:23:45,140 Tak konkretnie, można myśleć o tej funkcji, 535 00:23:45,140 --> 00:23:49,560 getElementById, w sposób dający kopii wskaźnik do tego konkretnego węzła 536 00:23:49,560 --> 00:23:50,060 w drzewie. 537 00:23:50,060 --> 00:23:51,980 Nie wyciągnąć to drzewa, ale jest to sposób 538 00:23:51,980 --> 00:23:54,900 uzyskania dostępu do tego prostokąta lub że prostokąt 539 00:23:54,900 --> 00:23:58,090 przez jednoznacznie identyfikujący go poprzez jego ID. 540 00:23:58,090 --> 00:23:59,760 >> Teraz, dlaczego to jest przydatne? 541 00:23:59,760 --> 00:24:01,510 Cóż, okazuje się, że po dotarłeś 542 00:24:01,510 --> 00:24:07,220 że węzeł, który prostokąt od obraz, że węzeł w jej wnętrzu, 543 00:24:07,220 --> 00:24:10,660 z kolei, ma całą masę pary klucz-wartość properties-- 544 00:24:10,660 --> 00:24:13,480 lub dane, z których jeden nazywa się wartością. 545 00:24:13,480 --> 00:24:16,500 Tak dosłownie, jest to swego rodzaju kęs, aby wyjaśnić całą sprawę. 546 00:24:16,500 --> 00:24:19,370 A na koniec dnia wszystko to robi to daje 547 00:24:19,370 --> 00:24:23,070 ciąg, który użytkownik wpisał w w tym hierarchiczny. 548 00:24:23,070 --> 00:24:24,820 Ale nie podoba Kilka z tych rzeczy. 549 00:24:24,820 --> 00:24:27,590 A raczej jest jakaś ciekawość nadal. 550 00:24:27,590 --> 00:24:28,870 Wszystko to wydawało się do pracy. 551 00:24:28,870 --> 00:24:33,420 Dlaczego uważasz, że wróciłem false po wywołaniu pozdrowić? 552 00:24:33,420 --> 00:24:35,910 To wygląda trochę brzydki, że Mam dwa oświadczenia nie 553 00:24:35,910 --> 00:24:38,730 oddzielone średnikami. 554 00:24:38,730 --> 00:24:39,310 Zgadywać. 555 00:24:39,310 --> 00:24:44,390 Jeśli usunąłem return false, co może się zdarzyć, po prostu instynktownie? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Niestety, jeszcze raz? 558 00:24:49,460 --> 00:24:50,530 >> Otwórz kilka systemów Windows. 559 00:24:50,530 --> 00:24:52,780 Tak więc potencjalnie może coś tak by się stało. 560 00:24:52,780 --> 00:24:54,422 Co jeszcze? 561 00:24:54,422 --> 00:24:55,630 Może złożyć wniosek Gdzie? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 Do tej samej strony. 564 00:25:00,510 --> 00:25:03,110 Tak więc, w rzeczywistości jest to, że im bliżej odpowiedzieć tutaj, 565 00:25:03,110 --> 00:25:05,890 Nawet gdyby, w przeciwieństwie w przeszłości, nie mam 566 00:25:05,890 --> 00:25:09,300 określony atrybut działania, które zwykle mamy do czynienia. 567 00:25:09,300 --> 00:25:11,780 Okazuje się, że jest to domyślne. Jeśli nie określić działania, 568 00:25:11,780 --> 00:25:15,370 to jak mówi cytat, koniec cytatu lub nazwa samego pliku, 569 00:25:15,370 --> 00:25:17,850 która w tym przypadku być jak dom-0.html. 570 00:25:17,850 --> 00:25:20,420 To tylko rodzaj wywnioskować, czy raczej dorozumiany. 571 00:25:20,420 --> 00:25:22,420 >> I tak, jeśli nie to zrobić, niech zauważy. 572 00:25:22,420 --> 00:25:23,230 Pozwól mi zapisać tego. 573 00:25:23,230 --> 00:25:25,270 I już usunięte return false. 574 00:25:25,270 --> 00:25:27,759 Pozwól mi wrócić do tego przykładem i siłą załaduj go ponownie. 575 00:25:27,759 --> 00:25:30,800 A może widzieliście sobie zasugerować to na CS50 Omów kilka razy. 576 00:25:30,800 --> 00:25:34,560 Jeśli cokolwiek kiedykolwiek działając Funky i Przeglądarka nie jest zachowuje się zgodnie z oczekiwaniami, 577 00:25:34,560 --> 00:25:37,410 często będziesz chciał trzymać Shift, a następnie kliknij przycisk Odśwież. 578 00:25:37,410 --> 00:25:41,480 To zmusi każdy plik, aby przeładować i nie korzystać z lokalnej pamięci podręcznej przeglądarki 579 00:25:41,480 --> 00:25:47,032 lub kopiowaniem, tak, że teraz, pozwól mi iść do przodu i otworzyć mój inspektor, kartę Sieć. 580 00:25:47,032 --> 00:25:48,740 Zamierzam kliknij Zachowaj Zaloguj bo 581 00:25:48,740 --> 00:25:51,660 nie chcę, aby usunąć wiersze kiedyś zostanę zabrany gdzie indziej. 582 00:25:51,660 --> 00:25:54,650 >> Pozwólcie mi iść do przodu tu i wpisz Andi, kliknij przycisk Prześlij. 583 00:25:54,650 --> 00:25:55,150 W porządku. 584 00:25:55,150 --> 00:25:56,480 To wydaje się zgodnie z oczekiwaniami. 585 00:25:56,480 --> 00:25:57,440 To mówi "cześć, Andi". 586 00:25:57,440 --> 00:25:59,420 Pozwól, kliknij przycisk OK. 587 00:25:59,420 --> 00:26:00,610 Ciekawa. 588 00:26:00,610 --> 00:26:05,100 Zauważ, że strona zmieniła, choć do oryginalnej strony. 589 00:26:05,100 --> 00:26:06,770 Zwróć uwagę na rodzaj URL zmieniony. 590 00:26:06,770 --> 00:26:09,430 Warto dodać znak zapytania, zwykle jest to wskaźnik 591 00:26:09,430 --> 00:26:11,260 że staraliśmy się przedstawić coś. 592 00:26:11,260 --> 00:26:13,570 A następnie na dole, jeszcze bardziej wyraźnie, 593 00:26:13,570 --> 00:26:17,570 tutaj jest faktyczna żądania HTTP, które dostałem odpowiedzi 200, które 594 00:26:17,570 --> 00:26:18,490 sprowadził mnie z powrotem tutaj. 595 00:26:18,490 --> 00:26:20,250 >> Więc to nie to, co jest chcemy zrobić, prawda? 596 00:26:20,250 --> 00:26:22,166 Bo nie chcę przeładowania całej strony. 597 00:26:22,166 --> 00:26:24,970 I zamiast chciał wrócić fałszywe, tak aby zwarcie 598 00:26:24,970 --> 00:26:28,840 domyślne zachowanie przeglądarki, która był, oczywiście, do złożenia stronę. 599 00:26:28,840 --> 00:26:31,700 >> Warto więc spojrzeć na nieznacznie lepszy przykład. 600 00:26:31,700 --> 00:26:33,920 Jest to dom w wersji jedno. 601 00:26:33,920 --> 00:26:36,680 I zauważyć, co następuje. 602 00:26:36,680 --> 00:26:39,150 Jest OK, jeśli nie grok wszystkich linii kodu. 603 00:26:39,150 --> 00:26:41,750 Ale to, co jest zasadniczo różne o tej realizacji? 604 00:26:41,750 --> 00:26:44,690 Będę zastrzec, że zachowuje się sam, robi to samo. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Co ja oczywiście zrobić inaczej? 607 00:26:51,570 --> 00:26:52,266 Tak? 608 00:26:52,266 --> 00:26:53,182 >> PUBLICZNOŚCI: [niesłyszalne]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID MALAN: Tak. 611 00:27:04,170 --> 00:27:08,620 Tak więc funkcja definiuje differently-- Innymi słowy, nieobecnych w formie 612 00:27:08,620 --> 00:27:13,180 tam, na linii 7-- lub raczej linia 8-- nie 613 00:27:13,180 --> 00:27:15,070 mam atrybut onsubmit. 614 00:27:15,070 --> 00:27:16,750 W poprzednim przykładzie, miałem tego. 615 00:27:16,750 --> 00:27:18,530 A potem dosłownie napisał mój kod tutaj. 616 00:27:18,530 --> 00:27:20,210 A potem powiedziałem return false. 617 00:27:20,210 --> 00:27:22,180 A jeśli to nie pocierać jesteś jeszcze niewłaściwy sposób, 618 00:27:22,180 --> 00:27:26,140 powinien zacząć zakresie tak, jak w HTML, 619 00:27:26,140 --> 00:27:29,530 kiedy zaczęliśmy współpracować mieszają go atrybutów CSS w stylu, 620 00:27:29,530 --> 00:27:32,890 to po prostu zaczął się trochę bałagan i czuję się trochę źle. 621 00:27:32,890 --> 00:27:35,020 >> Podobnie tutaj, o ile zażyciem HTML, 622 00:27:35,020 --> 00:27:37,419 a następnie automatycznie rzuć trochę kodu JavaScript 623 00:27:37,419 --> 00:27:40,460 w środku cudzysłowie, to nie będzie bardzo utrzymaniu. 624 00:27:40,460 --> 00:27:40,630 Dobrze? 625 00:27:40,630 --> 00:27:43,690 To nawet nie jest oczywiste na pierwszy miejsce gdzie kod JavaScript jest. 626 00:27:43,690 --> 00:27:46,590 Więc byłoby naprawdę miło, jak zasadą lepszego projektowania, 627 00:27:46,590 --> 00:27:50,500 trzymajmy nasze HTML całkowicie oddzielony od naszego JavaScript. 628 00:27:50,500 --> 00:27:53,150 >> Tak więc do tego, co mamy zrobić tutaj jest following-- 629 00:27:53,150 --> 00:27:56,790 po prostu używać znaczników HTML tylko. 630 00:27:56,790 --> 00:28:00,730 I tak w wersji jedno z tego wszyscy Mam to forma z unikalnym ID. 631 00:28:00,730 --> 00:28:04,630 A potem na dół, ja korzystając specjalnej funkcji JavaScriptu 632 00:28:04,630 --> 00:28:08,480 przy czym mogę mieć co nazywa anonimowa funkcja. 633 00:28:08,480 --> 00:28:14,150 Tak więc okazuje się, że jeśli zadzwonię document.getElementById od 'demo' 634 00:28:14,150 --> 00:28:18,890 to jak danie mi wskaźnik do węzeł w moim drzewie element formularza, 635 00:28:18,890 --> 00:28:20,100 że tak powiem. 636 00:28:20,100 --> 00:28:22,220 >> Teraz wiem tylko z znając trochę HTML 637 00:28:22,220 --> 00:28:26,330 Teraz jesteśmy po przeczytaniu niektórych Internecie odniesienia, który to element formularza obsługuje 638 00:28:26,330 --> 00:28:29,950 cała masa listeners-- zdarzeń w Innymi słowy, lista pralnia imprezy 639 00:28:29,950 --> 00:28:31,700 słuchaczy, które widzieliśmy przed chwilą. 640 00:28:31,700 --> 00:28:35,950 Wiem, że od czytania dokumentacji że onsubmit jest ważne wydarzenie 641 00:28:35,950 --> 00:28:38,520 Słuchacz do elementu formularza. 642 00:28:38,520 --> 00:28:41,480 >> Więc kiedy wiem, że, to jest bezpieczne dla mnie zrobić 643 00:28:41,480 --> 00:28:45,390 following-- uzyskać ten węzeł z drzewa, element formularza, 644 00:28:45,390 --> 00:28:48,070 i uzyskać dostęp do tak zwanych Nieruchomość onsubmit. 645 00:28:48,070 --> 00:28:49,880 Więc kropka oznacza po prostu, Jest to właściwość, 646 00:28:49,880 --> 00:28:52,180 jak specjalnej wartości wewnątrz niego. 647 00:28:52,180 --> 00:28:55,590 I jakiego typu dane jestem przypisanie, najwyraźniej, 648 00:28:55,590 --> 00:28:58,900 do onSubmit, który jest skutecznie zmienną wewnątrz 649 00:28:58,900 --> 00:29:01,010 z tego węzła w drzewie? 650 00:29:01,010 --> 00:29:04,100 To pole wewnątrz tej struktury. 651 00:29:04,100 --> 00:29:05,810 Co znajduje się w typ danych? 652 00:29:05,810 --> 00:29:07,030 >> Funkcja, tak. 653 00:29:07,030 --> 00:29:08,607 Tak więc okazuje się, że PHP ma tego. 654 00:29:08,607 --> 00:29:10,440 I mimo, że my nie powiedział ci o tym, 655 00:29:10,440 --> 00:29:16,240 C ma również wskaźniki funkcji, Zdolność do przekazywania i przypisać funkcje 656 00:29:16,240 --> 00:29:18,330 jak same wartości zmiennych. 657 00:29:18,330 --> 00:29:20,280 I nie będziemy się cofać z powrotem do C 658 00:29:20,280 --> 00:29:23,250 Ale teraz okazuje się, że z prawej strony tutaj 659 00:29:23,250 --> 00:29:26,260 mimo, że wygląda trochę funky, to znaczy, hej przeglądarka, 660 00:29:26,260 --> 00:29:27,550 daj mi funkcję. 661 00:29:27,550 --> 00:29:30,560 I nie zamierzam nawet trudu, dając to nazwisko, bo jestem dosłownie 662 00:29:30,560 --> 00:29:34,450 zamierza przypisać nazwijmy to adres tej funkcji 663 00:29:34,450 --> 00:29:35,994 natychmiast onSubmit. 664 00:29:35,994 --> 00:29:39,160 Innymi słowy, przeglądarki, nie trzeba wiedzieć, co ta funkcja nazywa. 665 00:29:39,160 --> 00:29:41,890 Trzeba tylko wiedzieć, w których znajduje się w pamięci. 666 00:29:41,890 --> 00:29:44,210 A więc wystarczy po prostu mają tam znak równości 667 00:29:44,210 --> 00:29:48,240 i nie zawracać sobie głowy nazywania tego, jak foo lub pozdrowić lub każdy inny wyraz. 668 00:29:48,240 --> 00:29:50,150 A teraz to jest tylko stylistyczną rzeczą. 669 00:29:50,150 --> 00:29:53,100 Mogę przenieść ten nawias klamrowy na the-- sorry-- następnej linii 670 00:29:53,100 --> 00:29:54,750 jak zwykle robimy CS50. 671 00:29:54,750 --> 00:29:57,550 Ale w JavaScript, to faktycznie stylistycznie wspólne 672 00:29:57,550 --> 00:30:00,450 po prostu zachować nawias klamrowy, Pierwszy z nich, na tej pierwszej linii. 673 00:30:00,450 --> 00:30:02,620 >> Ale dalej, tam nic ciekawego. 674 00:30:02,620 --> 00:30:05,830 To otwarty nawias klamrowy tylko rozgranicza początek mojej funkcji. 675 00:30:05,830 --> 00:30:09,320 Funkcja jest identyczne, z wyjątkiem mam 676 00:30:09,320 --> 00:30:11,452 zawarte fałszywego zwrotny Wnętrze tej funkcji. 677 00:30:11,452 --> 00:30:13,160 Bo okazuje out-- i będzie tylko 678 00:30:13,160 --> 00:30:14,980 wiem to z czytania documentation-- 679 00:30:14,980 --> 00:30:19,740 że w przypadku funkcji, które można przypisać do obsługi onsubmit zwraca fałsz, 680 00:30:19,740 --> 00:30:23,420 przeglądarka po prostu wie i zgadza się, Nie przesłać formularz do serwera. 681 00:30:23,420 --> 00:30:27,210 Jeśli zwróci prawda, że ​​przedłoży go do serwera z przyczyn zobaczymy 682 00:30:27,210 --> 00:30:28,700 są przydatne w chwilę. 683 00:30:28,700 --> 00:30:31,000 >> A następnie średnik po nawias klamrowy nie tylko 684 00:30:31,000 --> 00:30:32,541 Oznacza Skończyłem definiowania funkcji. 685 00:30:32,541 --> 00:30:36,600 Wiesz, jak to nazwać, jak tylko jak usłyszysz złożenia. 686 00:30:36,600 --> 00:30:37,100 W porządku. 687 00:30:37,100 --> 00:30:40,650 Jest to nadal zapewne rodzaj brzydki. 688 00:30:40,650 --> 00:30:42,190 Więc co jeszcze możemy zrobić? 689 00:30:42,190 --> 00:30:45,000 >> Cóż, okazuje się, następnie w drugiej wersji, która jest last-- 690 00:30:45,000 --> 00:30:46,780 a my po prostu spojrzenie na to. 691 00:30:46,780 --> 00:30:49,850 Na ryzyko tworzenia to brzydsze, okazuje się, 692 00:30:49,850 --> 00:30:52,160 że istnieje biblioteka w świat o nazwie jQuery. 693 00:30:52,160 --> 00:30:54,900 I jQuery jest super popularne biblioteki JavaScript 694 00:30:54,900 --> 00:30:57,930 to jest tak popularny, że większość dowolny JavaScript-- to nie jest 695 00:30:57,930 --> 00:31:00,540 Nierzadko ludzie mylić jQuery z JavaScript. 696 00:31:00,540 --> 00:31:01,070 Czemu? 697 00:31:01,070 --> 00:31:04,990 Sam JavaScript ma bardzo zbyt obszerne sposoby robienia things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Skończyć się o bardzo długie linie kodu. 700 00:31:10,510 --> 00:31:15,550 >> Więc kolega o imieniu John Resid, który faktycznie działa na starcie 701 00:31:15,550 --> 00:31:18,630 się tych dni, wyszedł z tegorocznych bibliotecznych 702 00:31:18,630 --> 00:31:22,070 temu, że wiele osób przyczyniło się nazywa jQuery, który zmienia 703 00:31:22,070 --> 00:31:23,449 składnia w następujący sposób. 704 00:31:23,449 --> 00:31:25,740 I tak widziałem tego, ponieważ będziesz zawsze 705 00:31:25,740 --> 00:31:28,140 zobaczyć, czy robi internetowy projekt końcowy, 706 00:31:28,140 --> 00:31:33,270 ten będzie równoważny sposób wykonania tej samej funkcji przy użyciu 707 00:31:33,270 --> 00:31:34,630 ta specjalna biblioteka. 708 00:31:34,630 --> 00:31:36,680 >> Obecnie, zamiast Tease odróżniają go w całości 709 00:31:36,680 --> 00:31:38,520 niech tylko spojrzeć na niektóre wzory. 710 00:31:38,520 --> 00:31:44,850 Składnia ta wydaje się mieć ile funkcje anonimowe 711 00:31:44,850 --> 00:31:49,584 lub funkcje bezimienne lub AKA funkcje lambda? 712 00:31:49,584 --> 00:31:50,190 Dwa, prawda? 713 00:31:50,190 --> 00:31:52,690 A wiesz, że nawet jeśli nie jesteś super wygodne z tym, 714 00:31:52,690 --> 00:31:55,780 prostu przez fakt, że mówi, function () dwa razy. 715 00:31:55,780 --> 00:31:58,172 >> I okazuje się, że co ten kod jest doing-- 716 00:31:58,172 --> 00:32:01,255 i będziemy odnosić się do odniesień internetowych, ostatecznie o pomoc z tym. 717 00:32:01,255 --> 00:32:04,480 To po prostu oznacza, że ​​gdy dokument jest gotowy, 718 00:32:04,480 --> 00:32:07,490 śmiało i zarejestrować następujących funkcji 719 00:32:07,490 --> 00:32:12,064 jak złożyć do obsługi HTML Element, którego unikalny pomysł jest demo. 720 00:32:12,064 --> 00:32:14,480 A potem, kiedy to się stanie, nazywają te dwie linijki kodu. 721 00:32:14,480 --> 00:32:18,677 I to jest, tragicznie, bardziej rozwlekły sposób powiedzenia return false. 722 00:32:18,677 --> 00:32:21,510 I powiedzieliśmy o tym tylko dlatego, zobaczysz, jak ten kod Online. 723 00:32:21,510 --> 00:32:23,140 I to nic nie obawiają się. 724 00:32:23,140 --> 00:32:26,057 Ale należy pamiętać, że to, co jest będzie powszechne w JavaScript 725 00:32:26,057 --> 00:32:26,765 Jest to paradygmat. 726 00:32:26,765 --> 00:32:29,510 A więc dlatego pokazujemy go teraz. 727 00:32:29,510 --> 00:32:30,010 W porządku. 728 00:32:30,010 --> 00:32:32,730 Więc bez zbyt mieszkania dużo na tej składni, 729 00:32:32,730 --> 00:32:37,800 są są jakieś pytania dotyczące te przykłady i pomysły do ​​tej pory? 730 00:32:37,800 --> 00:32:38,300 W porządku. 731 00:32:38,300 --> 00:32:40,220 Warto więc korzystać z tego za coś pożytecznego. 732 00:32:40,220 --> 00:32:47,070 Dokonywanie stronę internetową, która po prostu mówi cześć, tak i tak nie wszystko, co ciekawe, 733 00:32:47,070 --> 00:32:47,830 nie underwhelm. 734 00:32:47,830 --> 00:32:51,038 To nie będzie piękne, ale to będzie zrobić coś pożytecznego. 735 00:32:51,038 --> 00:32:56,350 Pozwól mi wrócić do mojego katalogu tu i otworzyć, powiedzieć, form-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Więc przypuszczam, że tego jest studentem pierwszego roku stacjonarne sport strona rejestracji 737 00:32:59,320 --> 00:33:01,780 bez CSS lub jakimkolwiek sensie designu. 738 00:33:01,780 --> 00:33:05,404 A ja chcę iść do przodu i zarejestruj się tutaj za pomocą hasła. 739 00:33:05,404 --> 00:33:08,320 I mam zamiar zgadzasz się z warunkami oraz warunki i kliknij przycisk Zarejestruj. 740 00:33:08,320 --> 00:33:11,700 A teraz strona mówi: "Jesteś zarejestrowany! (No, nie bardzo.) " 741 00:33:11,700 --> 00:33:15,070 To wydaje się jak to działa, ale pozwól mi iść do przodu i wymusić reload. 742 00:33:15,070 --> 00:33:18,720 >> I pozwól mi powiedzieć, nie, nie potrzebuję mojego prawdziwego adresu e-mail. 743 00:33:18,720 --> 00:33:21,820 A może my po prostu powiedzieć pocztę tam. 744 00:33:21,820 --> 00:33:25,080 Hasło będzie, jak, 12345. 745 00:33:25,080 --> 00:33:28,810 A potem, po prostu dlatego, że jestem idiota, teraz 123456789. 746 00:33:28,810 --> 00:33:31,150 A ja nie zamierzam sprawdzić, czy w pudełku. 747 00:33:31,150 --> 00:33:31,850 >> Hmm. 748 00:33:31,850 --> 00:33:32,350 W porządku. 749 00:33:32,350 --> 00:33:34,920 Więc jest kilka możliwości dla poprawy tutaj. 750 00:33:34,920 --> 00:33:39,070 I wiesz, czy będzie zobaczyć w pset siedem, że można pisać code-- 751 00:33:39,070 --> 00:33:41,890 i będziesz musiał napisać Kod w PHP-- bronić 752 00:33:41,890 --> 00:33:45,780 przed tego rodzaju użytkownika błędy, ponieważ użytkownik wyraźnie 753 00:33:45,780 --> 00:33:46,790 nie współpracowała. 754 00:33:46,790 --> 00:33:49,680 A on nie dał wam wszystko wartości chciałeś, a nawet w formacie 755 00:33:49,680 --> 00:33:50,630 że tego chciał. 756 00:33:50,630 --> 00:33:53,250 Więc zobaczysz w pset siedmiu, że możemy z pewnością niektóre 757 00:33:53,250 --> 00:33:55,680 jeśli warunki, które mówią jeśli adres e-mail 758 00:33:55,680 --> 00:33:59,450 Nie jest to username@something.edu, mogliśmy tylko 759 00:33:59,450 --> 00:34:02,575 powiedzieć przepraszam i przeprosić użytkownika dużo, jak może być w pset siedem. 760 00:34:02,575 --> 00:34:05,700 Lub jeżeli nie są one zaznaczone to pole, okazuje się w PHP, można wykryć, że 761 00:34:05,700 --> 00:34:06,200 także. 762 00:34:06,200 --> 00:34:09,389 I z pewnością, jeśli haseł nie pasują do siebie jak w register.php 763 00:34:09,389 --> 00:34:11,521 dla pset siedem, można wykryć, że. 764 00:34:11,521 --> 00:34:13,770 Ale to jest ból w szyja, że ​​teraz oni zażądać 765 00:34:13,770 --> 00:34:15,510 nas, aby przejść całą drogę do serwera. 766 00:34:15,510 --> 00:34:17,053 Użytkownik jest informowany o błędzie. 767 00:34:17,053 --> 00:34:19,219 A przynajmniej, chyba że używasz niektórzy hodowcy techniki, 768 00:34:19,219 --> 00:34:20,929 teraz muszą kliknij na strzałkę. 769 00:34:20,929 --> 00:34:23,300 Czy nie byłoby miło, jak wiele stron internetowych dziś, 770 00:34:23,300 --> 00:34:26,190 gdybyś miał bardziej bezpośrednie sprzężenia zwrotnego, od razu? 771 00:34:26,190 --> 00:34:31,389 >> Innymi słowy, pozwól mi iść do wersji jedna, która ma być ładniejsza. 772 00:34:31,389 --> 00:34:33,469 Ale ma tę funkcję. 773 00:34:33,469 --> 00:34:39,590 Malan, 12345, 123456789, nie zamiar zaznaczyć pole, zarejestruj. 774 00:34:39,590 --> 00:34:41,330 Hasła nie pasują do siebie. 775 00:34:41,330 --> 00:34:44,459 Więc mimo, że wyskakujące jest ugly-- możemy zastąpić to ostatecznie 776 00:34:44,459 --> 00:34:47,000 coś jak Bootstrap, które zobaczysz w pset siedem 777 00:34:47,000 --> 00:34:50,239 Jest to bardzo popularny library-- zrobiłem wykryć, że hasła nie są identyczne. 778 00:34:50,239 --> 00:34:50,739 W porządku. 779 00:34:50,739 --> 00:34:52,530 Cóż, pozwól mi ustalić, że jako użytkownik. 780 00:34:52,530 --> 00:34:55,460 Pozwólcie mi iść dalej i powiedzieć, 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Nadal nie sprawdzając umowy. 782 00:34:57,780 --> 00:35:00,210 Musisz zgodzić się do Regulamin. 783 00:35:00,210 --> 00:35:01,760 Więc dlaczego? 784 00:35:01,760 --> 00:35:04,100 >> Jeśli mamy już zakładał że istnieje sposób, 785 00:35:04,100 --> 00:35:07,260 a my wymagane cię pset siedem wykryć błąd 786 00:35:07,260 --> 00:35:09,780 Warunki takie jak ten po stronie serwera, dlaczego ja 787 00:35:09,780 --> 00:35:13,940 męczyć się również w ten sposób w JavaScript? 788 00:35:13,940 --> 00:35:15,850 Co to jest argument łaska dodając co 789 00:35:15,850 --> 00:35:18,760 jesteś by zobaczyć jak some-- jest dodatkowa złożoność. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Być może nie jest do góry nogami. 792 00:35:25,930 --> 00:35:26,924 Co to może być? 793 00:35:26,924 --> 00:35:27,840 PUBLICZNOŚCI: [niesłyszalne]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID MALAN: O, ciekawe. 796 00:35:32,340 --> 00:35:33,530 Potencjalne wyczyny. 797 00:35:33,530 --> 00:35:37,540 Więc pamiętaj, jeśli nie jesteś obsługi błędne dane wprowadzone przez użytkownika, które świetnie, 798 00:35:37,540 --> 00:35:40,170 Może to wszystko lepiej, jeśli to nawet nie dotrzeć do serwera. 799 00:35:40,170 --> 00:35:42,160 Chciałbym przesunąć tam i powiedzmy, należy prawdopodobnie 800 00:35:42,160 --> 00:35:43,284 rozwiązać oba te problemy. 801 00:35:43,284 --> 00:35:44,140 Ale to jest sprawiedliwe. 802 00:35:44,140 --> 00:35:44,710 Co jeszcze? 803 00:35:44,710 --> 00:35:45,626 >> PUBLICZNOŚCI: [niesłyszalne]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID MALAN: Tak. 806 00:35:49,014 --> 00:35:51,680 Kod ten, jak powiedzieliśmy wcześniej, jest interpretowane na stronie klienta. 807 00:35:51,680 --> 00:35:53,846 Nie przeszkadza serwer, co oznacza, że ​​nie ma 808 00:35:53,846 --> 00:35:55,930 wpływ na obciążenie serwera lub zdolności. 809 00:35:55,930 --> 00:35:59,840 A teraz, na małym starym mnie nie ma to znaczącego wpływu 810 00:35:59,840 --> 00:36:01,970 bo mam jeden użytkownik w tej chwili. 811 00:36:01,970 --> 00:36:04,010 >> Ale jeśli masz jakiekolwiek strona przyzwoitej wielkości, 812 00:36:04,010 --> 00:36:07,400 zwłaszcza największych, takich jak Facebook, więcej można trzymać ludzi off 813 00:36:07,400 --> 00:36:09,927 od serwera, tym lepiej Ponieważ serwer oczywiście 814 00:36:09,927 --> 00:36:12,510 ma tylko skończoną ilość pamięci RAM, skończona liczba GHz, 815 00:36:12,510 --> 00:36:16,340 skończoną ilość rzeczy może to zrobić w jednostce czasu. 816 00:36:16,340 --> 00:36:19,170 Więc jeśli jest więcej osób w świat uderzenie serwera, 817 00:36:19,170 --> 00:36:21,750 przypadkowo zalogowaniu nieprawidłowo, równie dobrze, jeśli Ciebie 818 00:36:21,750 --> 00:36:23,254 może utrzymać ten ciężar z serwerem. 819 00:36:23,254 --> 00:36:25,420 Dodatkowo, zwłaszcza w komórkowego device-- Jeśli kiedykolwiek 820 00:36:25,420 --> 00:36:29,190 zalogować się my.harvard lub Netid Yale lub podobne, 821 00:36:29,190 --> 00:36:32,330 jest to opóźnienie z wieloma strony internetowe tak dzięki czemu zajmuje, 822 00:36:32,330 --> 00:36:34,110 tak, cholernie sekundę lub dwie czasem. 823 00:36:34,110 --> 00:36:37,979 A potem, mój Boże, jeśli popełnisz błąd, to trzeba trafić z powrotem i powtórzyć go. 824 00:36:37,979 --> 00:36:40,520 Więc nie ma opóźnienia, zwłaszcza na wolniejszych połączeń sieciowych. 825 00:36:40,520 --> 00:36:43,030 Ale JavaScript, ponieważ działa na kliencie 826 00:36:43,030 --> 00:36:46,720 i nie ma potrzeby, aby przejść tam iz powrotem całej potencjalnie powolny internet 827 00:36:46,720 --> 00:36:49,780 Połączenie można uzyskać niemal natychmiastowe informacje zwrotne. 828 00:36:49,780 --> 00:36:50,760 >> Więc spójrzmy na to. 829 00:36:50,760 --> 00:36:54,280 Pozwól mi otworzyć formularz-0 oraz spójrz na HTML tutaj. 830 00:36:54,280 --> 00:36:56,040 I niech po prostu zobaczyć, co się dzieje. 831 00:36:56,040 --> 00:36:59,460 Jest to forma, której Akcja jest register.php. 832 00:36:59,460 --> 00:37:01,530 Jestem po prostu za pomocą uzyskać tak że mogłem zobaczyć adres URL. 833 00:37:01,530 --> 00:37:05,030 Ale dla haseł, my na pewno chcesz aby to zmienić, aby odpowiedzieć w rzeczywistości. 834 00:37:05,030 --> 00:37:06,910 Oto pole wprowadzania typu text. 835 00:37:06,910 --> 00:37:09,050 Oto kolejny wejściowy Pole typu hasło. 836 00:37:09,050 --> 00:37:13,150 Oto, jeśli nigdy wcześniej nie widział, wejście typu checkbox. 837 00:37:13,150 --> 00:37:15,250 >> Ale nie ma JavaScript tutaj w ogóle. 838 00:37:15,250 --> 00:37:18,170 To jest tylko kod HTML idzie do register.php. 839 00:37:18,170 --> 00:37:21,020 Jednak w jednej wersji, gdzie zaczęły się te pop-upy, 840 00:37:21,020 --> 00:37:23,010 Zobaczmy, co faktycznie dzieje się tutaj. 841 00:37:23,010 --> 00:37:26,757 W wersji jednej, co Zamierzam see-- I 842 00:37:26,757 --> 00:37:29,340 że mógłbym stoisko tyle z dość słów, ale zabrakło mi. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> W wersji jedno- tam idziemy. 845 00:37:38,590 --> 00:37:43,180 W wersji jednej, zauważysz following-- i nie jest najlepsza realizacja, 846 00:37:43,180 --> 00:37:44,420 ale to mój pierwszy. 847 00:37:44,420 --> 00:37:47,680 Zauważ, że poniżej Formularz mam znacznika script. 848 00:37:47,680 --> 00:37:49,430 A tag skrypt oznacza, hej, przeglądarka, tutaj 849 00:37:49,430 --> 00:37:52,340 jest jakiś kod, zazwyczaj JavaScript. 850 00:37:52,340 --> 00:37:54,420 A teraz, zauważyć to, co robię. 851 00:37:54,420 --> 00:37:59,070 Na line-- mogę ledwo czytaj it-- linii 32, to mówi, 852 00:37:59,070 --> 00:38:01,420 var form-- więc daj mi zmienną formą. 853 00:38:01,420 --> 00:38:05,049 A następnie dostać document.getElementId z "rejestracji". 854 00:38:05,049 --> 00:38:05,590 Co to? 855 00:38:05,590 --> 00:38:07,290 Cóż, niech przewinie się tutaj. 856 00:38:07,290 --> 00:38:11,510 Oraz informacja, ah, dałem element formularza dowolna, ale opisowe pomysł 857 00:38:11,510 --> 00:38:13,050 rejestracji. 858 00:38:13,050 --> 00:38:16,820 Więc to daje mi zmienną, która pozwala mi chwycić ten węzeł, 859 00:38:16,820 --> 00:38:19,580 że prostokąt w drzewie nazywa formę. 860 00:38:19,580 --> 00:38:24,460 form.onsubmit oznacza, hej przeglądarka, zarejestruj detektor zdarzeń 861 00:38:24,460 --> 00:38:25,470 w tym formularzu. 862 00:38:25,470 --> 00:38:28,890 Innymi słowy, gdy formularz jest złożone, wykonać następujący kod. 863 00:38:28,890 --> 00:38:30,810 Nie potrzebuje nazwy, ponieważ dlaczego trzeba znać nazwę? 864 00:38:30,810 --> 00:38:32,880 Trzeba tylko wiedzieć, co do wykonania, ergo 865 00:38:32,880 --> 00:38:35,610 jest to funkcja anonimowa lub lambda. 866 00:38:35,610 --> 00:38:37,632 I że funkcja jest wszystkie z tych linii jest tutaj. 867 00:38:37,632 --> 00:38:40,840 A teraz, szczerze mówiąc, nawet jeśli nie może kiedykolwiek napisane JavaScript 868 00:38:40,840 --> 00:38:44,200 wcześniej, to tylko C i PHP logiki. 869 00:38:44,200 --> 00:38:51,720 Więc jeśli form.email.value == "" - więc jeśli pole e-mail jest puste, 870 00:38:51,720 --> 00:38:54,980 krzyczeć na użytkownika z "Musisz podaj swój adres email. " 871 00:38:54,980 --> 00:38:58,980 Else if form.password.value jest puste krzyczeć na użytkownika, 872 00:38:58,980 --> 00:39:00,400 "Musisz podać swoje hasło." 873 00:39:00,400 --> 00:39:04,240 >> Co ciekawsze logicznie, Jeśli form.password.value nie 874 00:39:04,240 --> 00:39:08,630 równa form.confirmation.value-- Skąd pochodzą z potwierdzeniem? 875 00:39:08,630 --> 00:39:09,470 Pozwól mi do tyłu. 876 00:39:09,470 --> 00:39:12,870 Cóż, nazywa to wejście Pole tutaj hasło. 877 00:39:12,870 --> 00:39:15,180 I nazwał to jeden tutaj potwierdzenia. 878 00:39:15,180 --> 00:39:17,850 Mogłem nazwał go Hasło dwa lub cokolwiek innego. 879 00:39:17,850 --> 00:39:20,560 Jestem po prostu logicznie kontroli że te dwa są takie same. 880 00:39:20,560 --> 00:39:25,760 Else-- okazuje się, to jest pan Boole again-- wartość logiczną, pole wyboru. 881 00:39:25,760 --> 00:39:29,810 Więc jeśli powiem, wykrzyknik point-- jeśli nie form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 krzyczeć na użytkownika, jak również. 883 00:39:31,820 --> 00:39:34,470 >> Więc ta składnia zobaczysz jest bardzo często w JavaScript, 884 00:39:34,470 --> 00:39:35,970 gdzie masz ten notacji. 885 00:39:35,970 --> 00:39:37,460 Zaczynasz z obiektu tutaj. 886 00:39:37,460 --> 00:39:41,430 Nurkować głębiej do a, aby właściwość jak hasło. 887 00:39:41,430 --> 00:39:43,280 A następnie dostać się na jego rzeczywistej wartości. 888 00:39:43,280 --> 00:39:45,830 I znowu tutaj jest wejście. 889 00:39:45,830 --> 00:39:47,310 Oto hasło nazwa. 890 00:39:47,310 --> 00:39:50,860 A jego wartość jest bez względu na ludzka faktycznie wpisane. 891 00:39:50,860 --> 00:39:53,610 >> Tak więc we wszystkich tych przypadki, wróciłem fałszywe. 892 00:39:53,610 --> 00:39:55,800 Ale jeśli nie, wrócę prawda. 893 00:39:55,800 --> 00:39:58,030 A więc teraz widzimy przekonujące wykorzystanie kiedy 894 00:39:58,030 --> 00:40:00,620 byś return false do stop, co użytkownik robi 895 00:40:00,620 --> 00:40:03,200 i uczynić go lub jej wybrać ponownie lub wpisz ponownie. 896 00:40:03,200 --> 00:40:05,870 W przeciwnym razie zwróci true. 897 00:40:05,870 --> 00:40:08,585 >> I pozwól, że przedstawię jeden inny wariant tego właśnie 898 00:40:08,585 --> 00:40:13,140 do materiału siewnego jej pewne zrozumienie. 899 00:40:13,140 --> 00:40:16,850 Cóż, w wersji 2 to postać-2-- Zrobię to machnięciem ręki. 900 00:40:16,850 --> 00:40:19,920 To jest dla tych, nowoczesny, wersja jQuery, 901 00:40:19,920 --> 00:40:23,330 tych z Was, którzy chcą dabble w danej bibliotece. 902 00:40:23,330 --> 00:40:25,145 Ale niech start-- i jakieś pytania? 903 00:40:25,145 --> 00:40:29,230 Pozwól mi zatrzymać się na chwilę, ponieważ to było szybko i dużo. 904 00:40:29,230 --> 00:40:32,610 >> Ale dobrą rzeczą jest to, że wszystkie kodu jest bardzo podobnie. 905 00:40:32,610 --> 00:40:33,985 Nowe rzeczy jest to, co jest dom? 906 00:40:33,985 --> 00:40:35,115 Co to są te prostokąty? 907 00:40:35,115 --> 00:40:35,990 Co to są te węzły? 908 00:40:35,990 --> 00:40:37,540 Co znajduje się anonimowa funkcja? 909 00:40:37,540 --> 00:40:38,830 Co to jest funkcja obsługi zdarzenia? 910 00:40:38,830 --> 00:40:43,480 Ale na szczęście, większość to tylko pełne koło z, powiedzmy, tydzień zera. 911 00:40:43,480 --> 00:40:43,980 W porządku. 912 00:40:43,980 --> 00:40:46,070 Więc coś nieco bardziej interesujące? 913 00:40:46,070 --> 00:40:49,340 Cóż, po pierwsze, pozwól mi odejść do przodu i otworzyć Google Maps. 914 00:40:49,340 --> 00:40:53,360 I można zauważyć, że dla Moment, podzielonym na sekundę, 915 00:40:53,360 --> 00:40:55,930 zauważyć, co się dzieje, gdy Klikam wystarczająco szybko. 916 00:40:55,930 --> 00:40:59,720 I to połączenie na Harvardzie jest tak szybko, że tak naprawdę nie zauważyć. 917 00:40:59,720 --> 00:41:04,469 Ale co to za rodzaj zobaczyć gdybym kliknąć i przeciągnąć bardzo szybko? 918 00:41:04,469 --> 00:41:07,010 Ci z was, oglądania online jeśli spowolni to prędkość 0,5x, 919 00:41:07,010 --> 00:41:09,640 widać to lepiej. 920 00:41:09,640 --> 00:41:13,550 >> Co się dzieje po prostu zanim kliknąłem i zaciągnął? 921 00:41:13,550 --> 00:41:15,900 Pozwól mi spróbować here-- pozwól mi zrobić coś innego, tak jak 90210. 922 00:41:15,900 --> 00:41:17,550 Chodźmy daleko. 923 00:41:17,550 --> 00:41:19,000 To było naprawdę szybko, zbyt. 924 00:41:19,000 --> 00:41:22,460 Jak o Disney World? 925 00:41:22,460 --> 00:41:23,190 No to jedziemy. 926 00:41:23,190 --> 00:41:23,690 OK. 927 00:41:23,690 --> 00:41:26,030 Co widzisz na ułamek sekundy? 928 00:41:26,030 --> 00:41:27,200 Podobnie, jak, placów, prawda? 929 00:41:27,200 --> 00:41:28,930 Zastępcze do płytek? 930 00:41:28,930 --> 00:41:30,270 >> Cóż, co tu się dzieje? 931 00:41:30,270 --> 00:41:35,410 Mapy Google to dobry przykład to technologia, która się nazywa AJAX. 932 00:41:35,410 --> 00:41:38,510 I to jest, gdy zaczniemy używać JavaScript w szczególnie 933 00:41:38,510 --> 00:41:39,277 intrygujący sposób. 934 00:41:39,277 --> 00:41:41,610 Powrót w dzień, nie było ta strona nazywa MapQuest. 935 00:41:41,610 --> 00:41:44,120 A powinnam była podjęta zrzut ekranu z tego z lat 1990, 936 00:41:44,120 --> 00:41:45,820 gdzie jeśli chcesz spojrzeć tutaj na mapie, 937 00:41:45,820 --> 00:41:48,590 byś dosłownie kliknij strzałkę u góry, że pokazałem 938 00:41:48,590 --> 00:41:49,870 inny plac mapie. 939 00:41:49,870 --> 00:41:51,790 Jeśli chcesz, aby przejść w lewo, ty kliknąć strzałkę, który pokazał ci 940 00:41:51,790 --> 00:41:53,210 inny plac mapie. 941 00:41:53,210 --> 00:41:54,840 I niektóre strony internetowe jeszcze zrobić to dzisiaj. 942 00:41:54,840 --> 00:41:57,820 Ale nawet MapQuest ma zdobyć lepiej, jak Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> Zamiast tego, co jest lepsze ich dni to strony internetowe, które używają technologii AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- zwie Asynchronous JavaScript i XML, 945 00:42:04,510 --> 00:42:08,370 co jest tylko wyobraźnia sposób powiedzenia technologia i technika 946 00:42:08,370 --> 00:42:14,200 Pozwala przeglądarki przy użyciu JavaScript do dodatkowych żądań HTTP 947 00:42:14,200 --> 00:42:16,390 po stronie został załadowany. 948 00:42:16,390 --> 00:42:17,479 Więc co to oznacza? 949 00:42:17,479 --> 00:42:19,270 Cóż, to będzie rodzaj irytujące w Gmailu 950 00:42:19,270 --> 00:42:21,103 jeśli za każdym razem chciał sprawdzanie poczty, 951 00:42:21,103 --> 00:42:24,940 trzeba było dosłownie uderzył Control-R lub Command-R lub kliknij przycisk Odśwież 952 00:42:24,940 --> 00:42:26,580 i cała strona cholernie by przeładować. 953 00:42:26,580 --> 00:42:26,800 Dobrze? 954 00:42:26,800 --> 00:42:28,460 To migać białym Prawdopodobnie na sekundę. 955 00:42:28,460 --> 00:42:30,043 Można by zobaczyć głupi pasek postępu. 956 00:42:30,043 --> 00:42:33,170 I tak, aby sprawdzić, czy masz nowe poczty, cała strona internetowa i adres URL 957 00:42:33,170 --> 00:42:34,580 jesteś na musiałby przeładować. 958 00:42:34,580 --> 00:42:35,960 >> Ale to nie jest to, co dzieje się w Gmailu. 959 00:42:35,960 --> 00:42:36,459 Dobrze? 960 00:42:36,459 --> 00:42:40,300 Gdy pojawi się nowy e-mail w Gmail, co dzieje się na ekranie? 961 00:42:40,300 --> 00:42:41,480 To po prostu pokazuje się, prawda? 962 00:42:41,480 --> 00:42:44,280 Po prostu wydaje się magicznie jako nowego rzędu w tabeli. 963 00:42:44,280 --> 00:42:47,030 To rzeczywiście wiąże się z przyzwoita ilość złożoności. 964 00:42:47,030 --> 00:42:51,892 W rzeczywistości, jeśli myślisz o tym drzewie, która chociaż jest prosta tutaj, 965 00:42:51,892 --> 00:42:54,100 Gmail-- i będę musiał szukać na kod będzie sure-- 966 00:42:54,100 --> 00:42:58,710 Prawdopodobnie posiada tabelę HTML, a może nieuporządkowana lista, która renderuje 967 00:42:58,710 --> 00:43:01,060 każdy z skrzynki pocztowe wiadomości e-mail jak. 968 00:43:01,060 --> 00:43:04,050 >> I tak, jeśli tego sobie wyobrazić nie drzewo w pamięci, gdy jesteś 969 00:43:04,050 --> 00:43:09,050 korzystania z Gmaila, który wygląda trochę jakby jak to, kiedy Google zdaje sobie sprawę, ooh, 970 00:43:09,050 --> 00:43:12,770 masz nową wiadomość e-mail, to nie robi chcą odbudować całe drzewo. 971 00:43:12,770 --> 00:43:16,430 Raczej chce znaleźć węzeł w drzewo, które reprezentuje swoją skrzynkę odbiorczą 972 00:43:16,430 --> 00:43:18,580 i po prostu wstawić nowy węzeł. 973 00:43:18,580 --> 00:43:24,640 >> Tak więc bardzo podobny do pset pięć, gdzie miał wstawić węzły w tabeli mieszania, 974 00:43:24,640 --> 00:43:28,410 Podobnie robi Google, poprzez Kod JavaScript, który to napisał, 975 00:43:28,410 --> 00:43:31,890 trawers tego drzewa, dowiedzieć się, gdzie jest to, że część Skrzynka okna, 976 00:43:31,890 --> 00:43:33,440 a następnie wstawić nowy wiersz. 977 00:43:33,440 --> 00:43:37,460 A nowy wiersz po prostu oznacza, jeden lub więcej, nowe węzły w drzewie. 978 00:43:37,460 --> 00:43:41,340 >> I tak AJAX to technika która pozwala na dokładnie to. 979 00:43:41,340 --> 00:43:44,440 Po odwiedził URL, jednak szalony długo, to jest, 980 00:43:44,440 --> 00:43:46,472 i raz stronę załadowany, nadal można 981 00:43:46,472 --> 00:43:48,430 chwycić więcej danych z internet-- czy to 982 00:43:48,430 --> 00:43:52,460 e-mail lub płytki z map-- chwycić go za kulisami 983 00:43:52,460 --> 00:43:55,290 a następnie włóż ją do strony tak, że człowiek naprawdę nie ma 984 00:43:55,290 --> 00:43:56,910 trzeba czekać na niego. 985 00:43:56,910 --> 00:43:58,980 >> Facebook Messenger działa w ten sam sposób. 986 00:43:58,980 --> 00:44:01,562 Dowolna ilość innych websites-- Och, faktycznie, nawet to. 987 00:44:01,562 --> 00:44:04,270 To znaczy, to, szczerze mówiąc, trochę przykry wyposażone w te dni. 988 00:44:04,270 --> 00:44:07,500 Jeśli zaczynam poszukiwania cats-- tego niby straszne doświadczenie użytkownika. 989 00:44:07,500 --> 00:44:08,990 To po prostu zaczyna poszukiwania dla mnie. 990 00:44:08,990 --> 00:44:10,050 Cóż, co on robi? 991 00:44:10,050 --> 00:44:12,920 Adres URL nie zmieniła od kiedy zacząłem pisać. 992 00:44:12,920 --> 00:44:17,330 Ale to, co się dzieje po drugiej stronie wire-- OK, hmm ciekawe. 993 00:44:17,330 --> 00:44:20,470 Co się dzieje po drugiej stronie Drut tutaj po prostu staje dziwniejsze. 994 00:44:20,470 --> 00:44:21,090 >> OK. 995 00:44:21,090 --> 00:44:24,670 Więc pozwól mi iść dalej i sprawdzić, Element i przejdź do karty sieciowej 996 00:44:24,670 --> 00:44:27,040 i starają się uczynić to techniczne i mniej o kotach. 997 00:44:27,040 --> 00:44:32,595 Jak wpisać dosłownie koty and-- co się dzieje 998 00:44:32,595 --> 00:44:37,710 per-- nie będę klikać, że. 999 00:44:37,710 --> 00:44:38,210 W porządku. 1000 00:44:38,210 --> 00:44:44,280 Więc tutaj, co się dzieje za każdym razem wpisać znak, najwyraźniej? 1001 00:44:44,280 --> 00:44:45,000 Jak, niski poziom? 1002 00:44:45,000 --> 00:44:47,860 Co się dzieje z każdym z tych znaków piszę na klawiaturze? 1003 00:44:47,860 --> 00:44:48,359 Tak? 1004 00:44:48,359 --> 00:44:50,950 PUBLICZNOŚCI: [niesłyszalne]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID MALAN: Dokładnie. 1006 00:44:52,340 --> 00:44:55,600 Każdy z tych znaków jest będzie Google, po jednym na raz. 1007 00:44:55,600 --> 00:44:58,490 Budują się ciąg na ich serwerze, który reprezentuje 1008 00:44:58,490 --> 00:44:59,936 wszystko mam wpisane do tej pory. 1009 00:44:59,936 --> 00:45:01,810 I za każdym razem wpisać kolejny znak, że 1010 00:45:01,810 --> 00:45:04,530 używać ich tajny sos od a szukaj algorytmu i dowiedzieć się, 1011 00:45:04,530 --> 00:45:07,370 ma na myśli tę stronę kota lub tej strony kot lub podobne? 1012 00:45:07,370 --> 00:45:10,620 Więc w pewnym sensie, zapewnia mnie z lepsze doświadczenie, że nie mam nawet 1013 00:45:10,620 --> 00:45:11,860 Należy wypełnić moją myśl. 1014 00:45:11,860 --> 00:45:14,440 I rzeczywiście, jest to przydatne rzeczą, autouzupełnianie w ogóle. 1015 00:45:14,440 --> 00:45:17,690 Jeśli ich algorytmy są wystarczająco dobre i jeśli moje pytania są na tyle oczywiste, 1016 00:45:17,690 --> 00:45:19,300 Nie mam wpisać całe słowo. 1017 00:45:19,300 --> 00:45:22,110 Mają zamiar mi powiedzieć, co go to jestem naprawdę szukają. 1018 00:45:22,110 --> 00:45:25,940 Więc to, co nazywa Google błyskawiczne Wyszukiwanie jest po prostu za pomocą AJAX, 1019 00:45:25,940 --> 00:45:30,820 za pomocą kodu, który pozwala im żądać dodatkową zawartość za pomocą przeglądarki internetowej 1020 00:45:30,820 --> 00:45:34,026 za kulisami za pomocą tego Nowy język, JavaScript. 1021 00:45:34,026 --> 00:45:35,400 Mamy więc kilka pozostawił minut. 1022 00:45:35,400 --> 00:45:37,710 I pozwól mi zadzwonić do mojego kumpla Colton na scenę, 1023 00:45:37,710 --> 00:45:40,090 gdyż wydawało się, Szczególnie zabawne ostatni raz 1024 00:45:40,090 --> 00:45:42,290 wprowadzenie technologii że niektórzy z was 1025 00:45:42,290 --> 00:45:44,769 wyraziły zainteresowanie w przypadku projektów końcowych. 1026 00:45:44,769 --> 00:45:47,310 Myśleliśmy, że to będzie zabawne przynieść się wolontariusz, choć dziś 1027 00:45:47,310 --> 00:45:50,074 pokazać dodatek do to, że pozwala you-- tak, 1028 00:45:50,074 --> 00:45:50,990 Widziałem pierwszy tego rękę. 1029 00:45:50,990 --> 00:45:52,900 Chodź na górę. 1030 00:45:52,900 --> 00:45:53,560 Bardzo dobra robota. 1031 00:45:53,560 --> 00:45:55,035 Dobra praca. 1032 00:45:55,035 --> 00:45:57,410 Idę do tego projektu na ekran na chwilę. 1033 00:45:57,410 --> 00:45:58,150 Jak masz na imię dla wszystkich? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: Jestem EFA. 1035 00:45:59,180 --> 00:45:59,410 >> DAVID MALAN: Etha? 1036 00:45:59,410 --> 00:45:59,785 >> EFA: EFA. 1037 00:45:59,785 --> 00:46:00,160 >> DAVID MALAN: Efa? 1038 00:46:00,160 --> 00:46:00,730 >> EFA: Tak. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID MALAN: Miło cię widzieć. 1040 00:46:01,250 --> 00:46:01,600 W porządku. 1041 00:46:01,600 --> 00:46:02,590 Niech to gotowy. 1042 00:46:02,590 --> 00:46:04,423 Chodź do średniej z Colton tutaj. 1043 00:46:04,423 --> 00:46:07,050 Co Colton ma w swoich rękach dziś jest pilot zdalnego sterowania. 1044 00:46:07,050 --> 00:46:10,440 Tak więc, zamiast po prostu stać w sposób Trójwymiarowy świat rozglądając 1045 00:46:10,440 --> 00:46:14,080 tak jak Colton, teraz Efa możliwe rzeczywiście chodzić przez idzie w górę, 1046 00:46:14,080 --> 00:46:16,689 dół, lewo i prawo, jak Nintendo lub Xbox kontroler. 1047 00:46:16,689 --> 00:46:18,230 EFA: Idę do upadku ze sceny. 1048 00:46:18,230 --> 00:46:20,500 DAVID MALAN: będę stoją mniej więcej tutaj. 1049 00:46:20,500 --> 00:46:21,991 Ale to jest ryzyko. 1050 00:46:21,991 --> 00:46:22,490 OK. 1051 00:46:22,490 --> 00:46:25,690 Więc śmiało i umieścić te na. 1052 00:46:25,690 --> 00:46:29,315 Pozwólcie mi iść do przodu i przełączyć się na ekran tutaj. 1053 00:46:29,315 --> 00:46:30,670 Pozwól, przyciemnić światła. 1054 00:46:30,670 --> 00:46:32,780 I Colton, niech mnie się stać obok Ciebie. 1055 00:46:32,780 --> 00:46:35,520 >> Czy chcesz, aby wyjaśnić tutaj z mikrofonem, co robimy? 1056 00:46:35,520 --> 00:46:36,380 Proszę bardzo. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Jasne. 1058 00:46:37,280 --> 00:46:39,980 Więc teraz jesteśmy załadunku na Oculus, 1059 00:46:39,980 --> 00:46:43,070 Chyba operating-- nie działa System, ale główny program, w którym 1060 00:46:43,070 --> 00:46:46,630 można uzyskać dostęp do wszystkich gier i Aplikacje, które są w bibliotece. 1061 00:46:46,630 --> 00:46:50,060 Więc teraz, należy powiedzieć stuknij touchpad, aby rozpocząć. 1062 00:46:50,060 --> 00:46:53,430 Touchpad będzie na Prawa strona zestawu słuchawkowego. 1063 00:46:53,430 --> 00:46:54,569 Więc idź i tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: Och, człowieku. 1065 00:46:55,110 --> 00:46:56,443 DAVID MALAN: Tak, proszę. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Jakość Efa widzi jest znacznie wyższa jakość. 1068 00:47:02,460 --> 00:47:03,831 To jest po prostu Wi-Fi tutaj. 1069 00:47:03,831 --> 00:47:05,580 COLTON: I co z tego, że jesteś będzie chciał zrobić 1070 00:47:05,580 --> 00:47:08,350 jest patrzeć w górę prawej stronie ekranu. 1071 00:47:08,350 --> 00:47:10,420 Tak, że gra na bardzo prawym górnym rogu. 1072 00:47:10,420 --> 00:47:14,780 I wtedy, kiedy jesteś wybierając Opisz ponownie stuknij touchpad. 1073 00:47:14,780 --> 00:47:17,010 Myślę, że jego Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 I to tutaj jest A-- tutaj, niech mi trzymać okulary dla Ciebie. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Więc po prostu dał mu kontroler. 1077 00:47:25,790 --> 00:47:28,886 Więc teraz on może kontrolować grę. 1078 00:47:28,886 --> 00:47:30,510 Potrafi poruszać się i takie tam. 1079 00:47:30,510 --> 00:47:31,968 Więc idź naprzód i patrzeć do góry. 1080 00:47:31,968 --> 00:47:33,640 Powinieneś zobaczyć nową grę. 1081 00:47:33,640 --> 00:47:36,310 Więc idź naprzód i można to zrobić. 1082 00:47:36,310 --> 00:47:39,320 Teraz powinieneś być w stanie kontrolować się ze sterownikiem, 1083 00:47:39,320 --> 00:47:43,860 a także, jak najszybciej gra ładuje się tutaj. 1084 00:47:43,860 --> 00:47:46,356 To może być trochę przerażające. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: Teraz ty mi powiedz. 1086 00:47:47,300 --> 00:47:50,132 OK. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: Wszystko w porządku. 1088 00:47:51,080 --> 00:47:52,650 Tak więc potwierdzić, że można poruszać. 1089 00:47:52,650 --> 00:47:52,750 OK. 1090 00:47:52,750 --> 00:47:53,583 Możesz poruszać. 1091 00:47:53,583 --> 00:47:54,300 Doskonały. 1092 00:47:54,300 --> 00:47:56,470 Więc jeśli spojrzeć w dół, masz mapę. 1093 00:47:56,470 --> 00:47:58,170 Mapa pokazuje, gdzie jesteś. 1094 00:47:58,170 --> 00:47:59,720 Możesz rozejrzeć się po pokoju. 1095 00:47:59,720 --> 00:48:01,440 Możesz całkowicie odwrócić. 1096 00:48:01,440 --> 00:48:02,128 Tak, dokładnie. 1097 00:48:02,128 --> 00:48:02,627 Obróć się. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Więc wygląda na lewo. 1100 00:48:07,125 --> 00:48:09,875 Myślę, że jest coś, co może wybrać się na beczce w pokoju. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: Jak mogę uzyskać map z drogi? 1102 00:48:11,709 --> 00:48:12,375 COLTON: Spójrz w górę. 1103 00:48:12,375 --> 00:48:12,980 Wystarczy spojrzeć w górę. 1104 00:48:12,980 --> 00:48:13,480 W porządku. 1105 00:48:13,480 --> 00:48:13,765 Proszę bardzo. 1106 00:48:13,765 --> 00:48:15,181 Teraz śmiało i po prostu odwrócić. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Więc szukać dalej na lewo. 1109 00:48:24,620 --> 00:48:25,530 Ruszaj w lewo. 1110 00:48:25,530 --> 00:48:26,960 Zachować się w lewo. 1111 00:48:26,960 --> 00:48:27,541 Tak trzymaj. 1112 00:48:27,541 --> 00:48:28,040 Tak. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: Och, to sposób. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Tak. 1115 00:48:29,261 --> 00:48:30,999 Podejdź do niego ze sterownikiem. 1116 00:48:30,999 --> 00:48:31,540 Proszę bardzo. 1117 00:48:31,540 --> 00:48:32,790 Teraz należy powiedzieć go podnieść. 1118 00:48:32,790 --> 00:48:33,360 Proszę bardzo. 1119 00:48:33,360 --> 00:48:34,290 Podnieś to. 1120 00:48:34,290 --> 00:48:35,550 W porządku. 1121 00:48:35,550 --> 00:48:38,286 A teraz wyjść z tego pokoju. 1122 00:48:38,286 --> 00:48:42,209 Śmiało i chodzić do tych drzwi. 1123 00:48:42,209 --> 00:48:45,000 Więc masz zamiar hold-- mówi przytrzymaj przycisk, aby zmusić go otworzyć. 1124 00:48:45,000 --> 00:48:46,333 Więc śmiało i przytrzymaj przycisk. 1125 00:48:46,333 --> 00:48:48,250 Tak, zmuszając go otworzyć. 1126 00:48:48,250 --> 00:48:48,750 W porządku. 1127 00:48:48,750 --> 00:48:49,410 Dobra praca. 1128 00:48:49,410 --> 00:48:50,826 Teraz idziemy z pokoju. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Więc mam zamiar zostawić resztę się do Ciebie i zobaczyć, co można znaleźć. 1131 00:49:01,366 --> 00:49:02,865 EFA: Nie będę w ciemnym pokoju. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 Zaczekaj. 1134 00:49:07,815 --> 00:49:09,314 Teraz muszę iść ciemną salę? 1135 00:49:09,314 --> 00:49:10,785 OK, wracam [niesłyszalne]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: Wszystko w porządku. 1138 00:49:16,270 --> 00:49:17,560 Kilka przedmiotów odebrać. 1139 00:49:17,560 --> 00:49:19,370 Wygląda na to kilka monet. 1140 00:49:19,370 --> 00:49:22,242 To jest okazja zamek. 1141 00:49:22,242 --> 00:49:24,200 Więc jeśli znajdziesz zablokowany Drzwi można użyć. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Boisz się? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: Jeszcze nie. 1145 00:49:29,371 --> 00:49:29,871 COLTON: OK. 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend-- tak. 1148 00:49:35,497 --> 00:49:37,330 Udawaj, że jesteś rzeczywiście tam stoi. 1149 00:49:37,330 --> 00:49:39,580 A jeśli włączyć around-- musisz się do tego przyzwyczaić. 1150 00:49:39,580 --> 00:49:40,752 Ale to ma sens. 1151 00:49:40,752 --> 00:49:43,960 DAVID MALAN: A gdy Efa nadal grać, ponieważ możemy to zrobić przez cały dzień, 1152 00:49:43,960 --> 00:49:45,381 wszyscy możemy palcach tutaj. 1153 00:49:45,381 --> 00:49:48,130 Ale mamy dwie inne pary, jeśli chcesz przyjść i grać. 1154 00:49:48,130 --> 00:49:49,980 W przeciwnym razie, zobaczymy następnym w środę. 1155 00:49:49,980 --> 00:49:51,354 Dziękujemy naszym wolontariuszem dzisiaj. 1156 00:49:51,354 --> 00:49:52,101 [APPLAUSE] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [MUZYKA - "SEINFELD TEMAT"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 Głośnik 1: Cóż, jestem wprowadzenie nowego PL montażu na. 1161 00:50:00,180 --> 00:50:01,800 Właśnie zmienił OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> GŁOŚNIK 2: Więc co dokładnie robisz? 1163 00:50:03,980 --> 00:50:07,063 >> Głośnik 1: Cóż, każdy z these-- tu, pokażę ci ten jeden w tutaj. 1164 00:50:07,063 --> 00:50:08,690 Można go zobaczyć tutaj. 1165 00:50:08,690 --> 00:50:09,510 >> GŁOŚNIK 3: Myślę, że jestem dobry z nich. 1166 00:50:09,510 --> 00:50:09,933 Chcesz więcej? 1167 00:50:09,933 --> 00:50:11,325 >> GŁOŚNIK 4: Nie, jestem dobry. [Niesłyszalne]. 1168 00:50:11,325 --> 00:50:12,200 >> GŁOŚNIK 3: Nie, [niesłyszalne]. 1169 00:50:12,200 --> 00:50:12,700 Mieć trochę. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 Głośnik 1: Inny kolor. 1172 00:50:22,290 --> 00:50:22,890 GŁOŚNIK 2: OK. 1173 00:50:22,890 --> 00:50:26,690 Głośnik 1: Więc w końcu co to robi to dostosowuje kolor of--