1 00:00:00,000 --> 00:00:02,862 >> [Přehrávání hudby] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID Malan: Toto je CS50. 4 00:00:11,580 --> 00:00:12,880 To je začátek týdne devět. 5 00:00:12,880 --> 00:00:15,797 A to je to, co by mělo Byl 200. výročí narození pana Boole je. 6 00:00:15,797 --> 00:00:17,630 Tak tohle je chlapi , kterým jsme se zmiňoval 7 00:00:17,630 --> 00:00:21,800 docela někdy o použití Booleovské proměnné true a false, 8 00:00:21,800 --> 00:00:22,910 1 a 0 a tak. 9 00:00:22,910 --> 00:00:25,270 A to bylo to Google Pocta ním dnes. 10 00:00:25,270 --> 00:00:26,489 On by se obrátili 200. 11 00:00:26,489 --> 00:00:28,280 Takže pokud chcete Připojte se k nám na oběd CS50, 12 00:00:28,280 --> 00:00:30,279 se podívat na tento odkaz na internetových stránkách Course. 13 00:00:30,279 --> 00:00:33,580 A takové tváře a přátelům jako Tyto vás čekají tady v Cambridge. 14 00:00:33,580 --> 00:00:35,360 Tváře, jako jsou tyto na vás čekají v New Haven. 15 00:00:35,360 --> 00:00:37,800 A ve skutečnosti, v Ken New Haven laskavě 16 00:00:37,800 --> 00:00:41,594 co se nazývá animovaný GIF of Eli zde na nedávný lunch-- GIF je dosud 17 00:00:41,594 --> 00:00:44,260 jiný grafický formát souboru, s níž jste familiar--, že 18 00:00:44,260 --> 00:00:46,300 vypadá trochu něco takového. 19 00:00:46,300 --> 00:00:48,179 Takže jen sled of-- OK. 20 00:00:48,179 --> 00:00:49,720 Nikdo tady v Cambridgi se směje. 21 00:00:49,720 --> 00:00:51,720 Ale v New Haven, to je opravdu k smíchu, že jo? 22 00:00:51,720 --> 00:00:52,350 Dobře. 23 00:00:52,350 --> 00:00:53,940 >> Takže se k nám tam. 24 00:00:53,940 --> 00:00:55,900 Tady na Harvardu, konkrétně, tuto středu, 25 00:00:55,900 --> 00:00:59,480 pokud jste druhák nebo nováček even-- nebo dokonce junior-- myšlení tvorby 26 00:00:59,480 --> 00:01:01,563 přepínač do počítače věda, vím, že tam bude 27 00:01:01,563 --> 00:01:04,440 být CS poradenství fair to Středa, krátce poté, co třídy 28 00:01:04,440 --> 00:01:08,040 v 4:00 hodin v počítači věda budova Maxwell Dworkin. 29 00:01:08,040 --> 00:01:11,890 Dáme na hřišti je to webové stránky zítra, stejně. 30 00:01:11,890 --> 00:01:14,430 Donuts, jak mi bylo řečeno, se bude podávat. 31 00:01:14,430 --> 00:01:15,180 >> Dobře. 32 00:01:15,180 --> 00:01:18,790 Takže legrační story-- mě strká kolem na internetu, 33 00:01:18,790 --> 00:01:23,575 a našel jsem pár starých archivů mého bývalého webových stránkách. 34 00:01:23,575 --> 00:01:25,950 A ukazuje out-- kolem tohoto čas, zdá se, velmi aktuální 35 00:01:25,950 --> 00:01:28,910 od té doby jsem pochopil, že volby UC Chystáte se zařízení znovu. 36 00:01:28,910 --> 00:01:32,230 Tak jsem se ucházel o UC, prohrál nešťastně. 37 00:01:32,230 --> 00:01:34,770 A možná to bylo z části proč. 38 00:01:34,770 --> 00:01:37,600 Tak tohle byla moje webové stránky v té době. 39 00:01:37,600 --> 00:01:40,477 Z nějakého důvodu, myslel jsem, že to dobrý nápad, než říkat lidem, 40 00:01:40,477 --> 00:01:43,310 co můj platformě bylo a proč měli hlasovat pro mě, že mají 41 00:01:43,310 --> 00:01:47,770 klepnutím na tlačítko pro vstup do zjistili, že Informace, což při zpětném pohledu je 42 00:01:47,770 --> 00:01:48,660 druh plazivý. 43 00:01:48,660 --> 00:01:50,910 Já opravdu nevím, co to bylo. 44 00:01:50,910 --> 00:01:53,140 >> Ale to rozhodně ne pomoc kampaň. 45 00:01:53,140 --> 00:01:56,874 Také jsem zjistil, že senior rok-- jsem měl tento kalendář Muppet. 46 00:01:56,874 --> 00:01:58,540 Muppets byly trochu v módě tehdy. 47 00:01:58,540 --> 00:01:59,456 Nebo možná, že ne. 48 00:01:59,456 --> 00:02:01,790 Měl jsem kalendář Muppet zpátky. 49 00:02:01,790 --> 00:02:04,860 A já si myslel, že to bude v pohodě názvu můj počítač v síti Harvardu 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 V té době, všichni jsme měli jednoznačně identifikovatelné názvy hostitelů. 52 00:02:10,370 --> 00:02:13,150 A vy jste si mohli vybrat nějaký marnost jméno namísto svým vlastním jménem. 53 00:02:13,150 --> 00:02:15,580 A já jsem šel s žabího muže z nějakého důvodu. 54 00:02:15,580 --> 00:02:19,040 >> A pak jsem started-- Strávil jsem hodně čas prokliká těchto odkazů 55 00:02:19,040 --> 00:02:20,280 dnes ráno. 56 00:02:20,280 --> 00:02:24,690 A to byl můj asi strana, který nyní trochu vypadá rozkošný. 57 00:02:24,690 --> 00:02:28,210 Ale také to svědčí jen jak daleko technologií přišel. 58 00:02:28,210 --> 00:02:30,310 Myslím, zpět v den, 486 bylo něco. 59 00:02:30,310 --> 00:02:34,090 V těchto dnech, je to super, super, extra pomalý a dobře méně 60 00:02:34,090 --> 00:02:36,216 než byste mohli mít ve vašem vlastní kapsy v těchto dnech. 61 00:02:36,216 --> 00:02:38,465 Tam je více na tam, že byl ještě trapné. 62 00:02:38,465 --> 00:02:39,770 Tak jsem si to nechat tak. 63 00:02:39,770 --> 00:02:42,640 Ale to byl můj první vpád do web-- oh, no. 64 00:02:42,640 --> 00:02:43,180 To nebylo. 65 00:02:43,180 --> 00:02:47,000 Můj první skutečný vpád do programování webu Byl na tomto webu, který jsem právě zapomněl. 66 00:02:47,000 --> 00:02:50,620 V určitém okamžiku, jsem se naučil, jak se aby opakující se obrázky na pozadí. 67 00:02:50,620 --> 00:02:55,260 A tak jsem našel obklady efektivní, jako hokejista, fotbal a golf 68 00:02:55,260 --> 00:02:58,040 plesu, nebo co to je pro webové stránky Frosh IMS. 69 00:02:58,040 --> 00:03:01,390 A to bylo ve skutečnosti, opravdu První webový projekt, vzal jsem on-- 70 00:03:01,390 --> 00:03:03,880 Myslím, že druháku rok, junior rok-- 71 00:03:03,880 --> 00:03:07,622 poté, co vzal CS50 a CS51, jeden společných následných o třídách. 72 00:03:07,622 --> 00:03:09,330 Jsem si všiml při hledání přes archivy 73 00:03:09,330 --> 00:03:12,150 že jeden z mých nástupců a přátelé, Lee, trochu změnila 74 00:03:12,150 --> 00:03:13,480 autorská práva pro sebe. 75 00:03:13,480 --> 00:03:17,520 Ale tohle bylo opravdu něco, Mám vlastní ostudou. 76 00:03:17,520 --> 00:03:19,370 Ale v té době, toto byl první webové stránky, 77 00:03:19,370 --> 00:03:22,220 jak jsem řekl před pár týdny, kterým nováček mohl 78 00:03:22,220 --> 00:03:24,350 zaregistrovat intramurálních sporty. 79 00:03:24,350 --> 00:03:27,950 A tak to dopadá že obrázky na pozadí 80 00:03:27,950 --> 00:03:29,530 stejně jako, že nejsou až tak dobrý nápad. 81 00:03:29,530 --> 00:03:31,840 Ale web byl nový, a jsme byli všichni experimentovali. 82 00:03:31,840 --> 00:03:34,310 A to je to, co jsem se zřejmě dělal v té době. 83 00:03:34,310 --> 00:03:34,810 Dobře. 84 00:03:34,810 --> 00:03:38,020 Takže bez dalších okolků, zapneme kola dnes dát, opravdu, 85 00:03:38,020 --> 00:03:42,250 Posledním kouskem, který jste mohli najít obzvláště užitečné pro závěrečných prací 86 00:03:42,250 --> 00:03:44,780 ale také to, že se začne aby byl celý World Wide Web 87 00:03:44,780 --> 00:03:46,680 cítit trochu srozumitelnější. 88 00:03:46,680 --> 00:03:49,460 Ve skutečnosti, budeme zavádět ještě jeden programovací jazyk 89 00:03:49,460 --> 00:03:52,474 volal JavaScript, který je podobný a liší se v různých způsobech 90 00:03:52,474 --> 00:03:54,140 z jazyků jsme se podíval na tak daleko. 91 00:03:54,140 --> 00:03:55,807 >> Takže C, odvolání, je to zkompilovaný jazyk. 92 00:03:55,807 --> 00:03:57,473 Musíš spustit pomocí překladače. 93 00:03:57,473 --> 00:03:59,810 Získáte zdrojový kód do objektů kódu nebo nuly a ones. 94 00:03:59,810 --> 00:04:03,000 A to jsou nuly a ty, které váš procesor, Central Processing Unit, 95 00:04:03,000 --> 00:04:04,360 skutečně pochopit. 96 00:04:04,360 --> 00:04:06,610 PHP, naopak, není kompilované jazyk. 97 00:04:06,610 --> 00:04:08,772 To je co? 98 00:04:08,772 --> 00:04:09,980 Je to interpretovaný jazyk. 99 00:04:09,980 --> 00:04:11,750 Takže tam je nějaký program nazvaný interpret, který 100 00:04:11,750 --> 00:04:13,708 musí přečíst to-- shora dole, vlevo right-- 101 00:04:13,708 --> 00:04:16,519 a zjistit, co všechno Váš syntax dělá a prostředky, 102 00:04:16,519 --> 00:04:20,200 ať už je to smyčka nebo stav nebo jakékoli jiné číslo programování 103 00:04:20,200 --> 00:04:20,740 konstrukty. 104 00:04:20,740 --> 00:04:22,210 Tak to je interpretovaný jazyk. 105 00:04:22,210 --> 00:04:23,910 >> Pak jsme se představil HTML. 106 00:04:23,910 --> 00:04:26,440 A HTML není ani programovací jazyk. 107 00:04:26,440 --> 00:04:28,110 Měli bychom říkat, co? 108 00:04:28,110 --> 00:04:31,650 Značkovací jazyk, který je jen druh fantazie způsob, jak říkat to 109 00:04:31,650 --> 00:04:35,820 nemá programovací pojmy jako jsme viděli i zpátky v den Scratch. 110 00:04:35,820 --> 00:04:36,720 Neexistují žádné smyčky. 111 00:04:36,720 --> 00:04:37,920 Neexistují žádné podmínky. 112 00:04:37,920 --> 00:04:40,820 Je to opravdu je jazyk o označování svá data 113 00:04:40,820 --> 00:04:43,620 a formátování, nebo strukturování jej nějakým způsobem. 114 00:04:43,620 --> 00:04:46,147 >> CSS, zatím, obdobně není programovací jazyk. 115 00:04:46,147 --> 00:04:47,730 Je to ještě více esteticky orientovaná. 116 00:04:47,730 --> 00:04:50,470 A to vám umožní třídit z doladit věci, jako je velikost písma a barvy 117 00:04:50,470 --> 00:04:51,850 a umístění, a to vše. 118 00:04:51,850 --> 00:04:52,370 Pak jsme měli 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Takže SQL je opravdu programovací jazyk v nějakém smyslu, 121 00:04:56,010 --> 00:04:59,330 i když na míru konkrétně k databázím. 122 00:04:59,330 --> 00:05:03,347 Ale i když jsme jen představit vám vyberte a vložit a odstranit, a aktualizovat 123 00:05:03,347 --> 00:05:05,430 a pár druhých, Ukazuje se můžete skutečně 124 00:05:05,430 --> 00:05:07,380 psát funkce, nebo postupy, jak se jim 125 00:05:07,380 --> 00:05:11,270 volal, v SQL, které vypadají a jednají docela jako PHP a C funkcí. 126 00:05:11,270 --> 00:05:12,390 Takže vím, že ty, které existují. 127 00:05:12,390 --> 00:05:15,348 Ale my ani obtěžovat s nimi jak jsme právě poškrábat povrch zde. 128 00:05:15,348 --> 00:05:18,600 A pak JavaScript, poslední oficiálně představil naše jazyky. 129 00:05:18,600 --> 00:05:21,029 Takže JavaScript, také, je interpretovaný jazyk. 130 00:05:21,029 --> 00:05:23,070 A ty, kteří znají, dělat Chcete ji rozlišit 131 00:05:23,070 --> 00:05:26,960 s některými charakteristikou z obou C a PHP? 132 00:05:26,960 --> 00:05:28,300 Co ho odlišuje? 133 00:05:28,300 --> 00:05:29,650 >> Diváků: To není sestaven. 134 00:05:29,650 --> 00:05:29,930 >> DAVID Malan: znovu, řekni? 135 00:05:29,930 --> 00:05:31,200 >> Diváků: To není sestaven. 136 00:05:31,200 --> 00:05:31,930 >> DAVID Malan: To není sestaven. 137 00:05:31,930 --> 00:05:33,450 Takže to, také, je interpretován. 138 00:05:33,450 --> 00:05:34,760 Takže to není sestaven. 139 00:05:34,760 --> 00:05:37,210 Ale to dělá to tak trochu jako PHP. 140 00:05:37,210 --> 00:05:39,545 Ale je to pořád odlišné od PHP nějakým překvapivým způsobem, 141 00:05:39,545 --> 00:05:40,920 alespoň v tom, jak budeme používat. 142 00:05:40,920 --> 00:05:41,205 To jo? 143 00:05:41,205 --> 00:05:41,940 >> Diváků: To běží na straně klienta. 144 00:05:41,940 --> 00:05:44,000 >> DAVID Malan: To běží na straně klienta, obvykle. 145 00:05:44,000 --> 00:05:47,190 To je skutečně rozlišovací Charakteristické pro nás právě teď. 146 00:05:47,190 --> 00:05:51,170 C byla na straně serveru v tom smyslu, že jsme udělali vše, co v CS50 IDE. 147 00:05:51,170 --> 00:05:53,630 PHP se dosud na straně serveru, pokud 148 00:05:53,630 --> 00:05:56,550 jak to taky, dostane interpreted-- není kompilován, ale interpreted-- 149 00:05:56,550 --> 00:06:00,690 Uvnitř CS50 IDE, což je samozřejmě jen server nebo servery v cloudu. 150 00:06:00,690 --> 00:06:03,070 >> Ale JavaScript, ani I když jdete 151 00:06:03,070 --> 00:06:07,000 začít psát to, řekněme, pset osm a možná konečný projects-- jste 152 00:06:07,000 --> 00:06:09,620 bude pravdu, že v CS50 IDE a uložte jej 153 00:06:09,620 --> 00:06:14,760 v souborech uvnitř CS50 IDE, CS50 IDE a, podle pořadí, se oblak servery 154 00:06:14,760 --> 00:06:19,160 na které je umístěn, se nebude interpretovat nebo spuštění kódu. 155 00:06:19,160 --> 00:06:23,880 Spíše to bude být zaslány nezměněné podobě dolů do prohlížeče. 156 00:06:23,880 --> 00:06:26,990 A to pak bude IE nebo Chrome nebo Firefox nebo Safari 157 00:06:26,990 --> 00:06:30,697 nebo co to vlastně interpretuje to, shora dolů, zleva doprava. 158 00:06:30,697 --> 00:06:32,780 Takže klíčové rozlišovat charakteristický pro dnešek 159 00:06:32,780 --> 00:06:36,110 je to, že JavaScript je na straně klienta a PHP, například, 160 00:06:36,110 --> 00:06:37,690 byl na straně serveru. 161 00:06:37,690 --> 00:06:40,920 Nyní, toto má zajímavé důsledky pro, jako, duševní vlastnictví 162 00:06:40,920 --> 00:06:42,660 a kdo může skutečně vidět váš kód. 163 00:06:42,660 --> 00:06:44,860 A skutečně, můžete jít na webu a podívejte se nejvíce 164 00:06:44,860 --> 00:06:47,530 jakýkoli kód, který někdo má napsaný v JavaScriptu. 165 00:06:47,530 --> 00:06:50,230 Někdy je to čitelné, Někdy je to popletl. 166 00:06:50,230 --> 00:06:52,550 Ale o tom více v pravý čas. 167 00:06:52,550 --> 00:06:57,530 >> Takže JavaScript, dost hezky, je Super podobné, syntakticky, aby C. 168 00:06:57,530 --> 00:06:59,364 A podobně jako PHP, není hlavní funkce. 169 00:06:59,364 --> 00:07:02,113 Pokud chcete začít psát Kód JavaScript, jak uvidíte dnes, 170 00:07:02,113 --> 00:07:03,270 stačí začít psát to. 171 00:07:03,270 --> 00:07:06,910 Ale to je, uvidíte, zvláště užitečné v souvislosti s webových prohlížečů. 172 00:07:06,910 --> 00:07:09,820 Nicméně, můj malý disclaimer-- obvykle earlier-- 173 00:07:09,820 --> 00:07:13,790 bylo říci, že můžete stále více dnes používají JavaScript na straně serveru 174 00:07:13,790 --> 00:07:17,655 pomocí fantazie rámce s názvem Node.js že některé z vlastní aplikace je CS50 175 00:07:17,655 --> 00:07:18,280 jsou psány. 176 00:07:18,280 --> 00:07:20,640 Zkontrolujte, zda ve skutečnosti používá 50 Node.js. 177 00:07:20,640 --> 00:07:24,140 Ale budeme se soustředit na JavaScript na straně klienta tady na ven. 178 00:07:24,140 --> 00:07:26,750 >> Takže tady je soubor podmínek v PHP. 179 00:07:26,750 --> 00:07:29,350 Je nám líto, in-- skutečnosti, že tvrzení, také je správné. 180 00:07:29,350 --> 00:07:32,200 Zde je také sada podmínky v JavaScriptu. 181 00:07:32,200 --> 00:07:35,560 Syntakticky, to je identická s C a PHP. 182 00:07:35,560 --> 00:07:39,040 Výrazy pana Boole jsou, Stejně tak, syntakticky 183 00:07:39,040 --> 00:07:41,190 identické s oběma C a PHP. 184 00:07:41,190 --> 00:07:44,100 Máme také spínače v JavaScript, že vypadají totožně. 185 00:07:44,100 --> 00:07:46,350 Máme pro smyčky, které jsou strukturované identicky, 186 00:07:46,350 --> 00:07:48,140 while, dělat, zatímco smyčky. 187 00:07:48,140 --> 00:07:49,980 >> To je trochu jiný. 188 00:07:49,980 --> 00:07:53,120 PHP měl pro každý konstrukt že byste mohla být pomocí 189 00:07:53,120 --> 00:07:55,320 nebo budou používat v pset sedm, možná. 190 00:07:55,320 --> 00:07:59,460 JavaScript má tuto speciální verzi pro, kde jste doslova říci něco 191 00:07:59,460 --> 00:08:03,864 jako variabilní klíč v objektu, který je velmi stručná způsob, jak říct, 192 00:08:03,864 --> 00:08:06,780 jestli jsem dostal object-- a my mluvit o nich opět v moment-- 193 00:08:06,780 --> 00:08:10,370 a chci k iteraci přes všechny párů klíčových hodnot uvnitř, 194 00:08:10,370 --> 00:08:13,620 Nemám přijít na to, jak se číselně index je s nula, jedna, 195 00:08:13,620 --> 00:08:14,580 dva, tři. 196 00:08:14,580 --> 00:08:15,900 >> Můžu doslova říct. 197 00:08:15,900 --> 00:08:20,740 A v každé iteraci, JavaScript pro mě bude aktualizovat proměnnou klíč 198 00:08:20,740 --> 00:08:24,810 , že je první klíč, pak další klíč, pak další klíč, pak další klíč, 199 00:08:24,810 --> 00:08:25,510 a tak dále. 200 00:08:25,510 --> 00:08:30,000 A můžu dostat na své hodnotě zpracováním objekt v JavaScriptu, jak uvidíme, 201 00:08:30,000 --> 00:08:32,584 jako kdyby je to asociativní pole v PHP. 202 00:08:32,584 --> 00:08:35,750 Ve skutečnosti, pokud jste konečně svůj zabalené mysl kolem toho, co asociativní pole je 203 00:08:35,750 --> 00:08:40,140 v PHP, můžete si o tom myslíte teď as totožný s objektu v JavaScriptu. 204 00:08:40,140 --> 00:08:42,030 Ale to je trochu oversimplification. 205 00:08:42,030 --> 00:08:47,230 >> Pole vypadají dost hezky, totožný do PHP až na jeden znak. 206 00:08:47,230 --> 00:08:51,425 Je tu jedna věc tu chybí že jsme viděli minulý týden s PHP. 207 00:08:51,425 --> 00:08:52,050 Co vynechat? 208 00:08:52,050 --> 00:08:53,310 To jo? 209 00:08:53,310 --> 00:08:54,090 Žádné znak dolaru. 210 00:08:54,090 --> 00:08:56,240 Takže jsme zpátky do A normálnější světě, kde 211 00:08:56,240 --> 00:08:58,050 proměnné nemají znaky dolaru. 212 00:08:58,050 --> 00:09:00,810 Ale vy je prefix s var, typicky. 213 00:09:00,810 --> 00:09:02,230 A var znamená proměnné. 214 00:09:02,230 --> 00:09:06,440 A podobně jako PHP je volně typed-- přičemž tam jsou typy, 215 00:09:06,440 --> 00:09:10,120 tam jsou čísla a řetězce a plováky a tak forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript má podobně typy. 217 00:09:11,570 --> 00:09:15,470 Ale je to volně napsaný v tom, že jsme programátoři nemusíte specifikovat. 218 00:09:15,470 --> 00:09:18,980 Jen musíme být vědomi že různé druhy existují. 219 00:09:18,980 --> 00:09:21,690 >> Proměnné, meanwhile-- tady je návod, jak můžeme prohlásit "ahoj, svět" 220 00:09:21,690 --> 00:09:22,230 jako řetězec. 221 00:09:22,230 --> 00:09:24,890 Všimněte si, že je totožný s PHP ale žádný znak dolaru. 222 00:09:24,890 --> 00:09:27,120 A to je něco, co budeme začnete vidět více dnes, 223 00:09:27,120 --> 00:09:30,990 kdy máte objekt s klíči a hodnotami. 224 00:09:30,990 --> 00:09:32,990 A pokud si chcete vyzkoušet vyvodit z posledního week-- 225 00:09:32,990 --> 00:09:34,730 Syntaxe je trochu jiný. 226 00:09:34,730 --> 00:09:39,740 Ale trochu zdravý rozum check-- kolik Klíče to objekt se zdá, že? 227 00:09:39,740 --> 00:09:40,850 Tak vidím čtyři. 228 00:09:40,850 --> 00:09:43,560 Vidím dva. 229 00:09:43,560 --> 00:09:44,680 >> Takže je to vlastně dva. 230 00:09:44,680 --> 00:09:47,260 Takže tohle je kolekce ze dvou dvojic klíč-hodnota. 231 00:09:47,260 --> 00:09:49,820 Klíčem k úspěchu je symbol, jehož hodnota je FB. 232 00:09:49,820 --> 00:09:52,620 Klíčem k úspěchu je cena, jehož hodnota je 101.53. 233 00:09:52,620 --> 00:09:54,230 To jsou jen dva páry klíč-hodnota. 234 00:09:54,230 --> 00:09:58,120 A pamatujte si, PHP-- a to je opět tak nějak syntaktického rozdílu. 235 00:09:58,120 --> 00:10:00,170 To není všechno, intelektuálně zajímavé. 236 00:10:00,170 --> 00:10:04,610 PHP může psali to stejné věc jako follows-- citovat, rovná. 237 00:10:04,610 --> 00:10:06,730 A já je změnit na hranatých závorkách. 238 00:10:06,730 --> 00:10:11,240 A pak jsem se změnit na kotovaná slovo, "cena". 239 00:10:11,240 --> 00:10:12,500 A pak jsem se nepoužívají dvojtečku. 240 00:10:12,500 --> 00:10:15,060 Co jsem používat minulý týden? 241 00:10:15,060 --> 00:10:18,290 Jo, rovnítko šipka funky notace. 242 00:10:18,290 --> 00:10:21,470 >> A pak jsem udělal to samé tady. 243 00:10:21,470 --> 00:10:23,580 Totéž zde. 244 00:10:23,580 --> 00:10:24,240 A to je vše. 245 00:10:24,240 --> 00:10:27,752 Takže je to v pořádku, pokud to nemá opravdu klesl do paměti jen 246 00:10:27,752 --> 00:10:29,960 Zatím, protože je to opravdu intelektuálně nezajímavé. 247 00:10:29,960 --> 00:10:31,660 Je to jen syntaktické rozdíly. 248 00:10:31,660 --> 00:10:33,230 Ale myšlenky jsou naprosto stejné. 249 00:10:33,230 --> 00:10:35,910 Uvnitř této proměnné citace v JavaScriptu 250 00:10:35,910 --> 00:10:39,020 je sbírka dvojic klíč-hodnota, z nichž jeden je symbol, z nichž jedna 251 00:10:39,020 --> 00:10:39,690 je cena. 252 00:10:39,690 --> 00:10:42,340 A můžu dostat na těchto hodnotách s následující syntaxí. 253 00:10:42,340 --> 00:10:46,280 Stejně jako v PHP, mohl bych něco jako-- let 254 00:10:46,280 --> 00:10:48,590 mi, abych tento box o něco větší. 255 00:10:48,590 --> 00:10:52,750 Stejně jako v PHP, mohl bych aby tohle-- oh, sakra. 256 00:10:52,750 --> 00:10:53,250 No tak. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Stejně jako v PHP-- OK, budeme stačí použít předvádějícího poznámky. 259 00:11:00,800 --> 00:11:06,010 Stejně jako v PHP, mohu dělat $ ["symbol"] Citace $ citovat, 260 00:11:06,010 --> 00:11:08,860 a to mě dostane Hodnota "symbol." 261 00:11:08,860 --> 00:11:12,800 V JavaScriptu, že to bude identické, čímž jsem si jen to udělat. 262 00:11:12,800 --> 00:11:14,850 Jediná věc, která je chybí, je znak dolaru. 263 00:11:14,850 --> 00:11:17,470 >> Tak dost dobře, pak, je tu není všechno, že mnoho nového syntaxe. 264 00:11:17,470 --> 00:11:21,025 Takže to, co dnes jsme se zaměřili na, opravdu, je některé myšlenky a aplikací. 265 00:11:21,025 --> 00:11:22,900 A první, jako aplikace, které by vás mohly 266 00:11:22,900 --> 00:11:26,090 Viděl jste skočil do pokud pset seven už je tato syntaxe. 267 00:11:26,090 --> 00:11:28,980 Takže pset sedm, pokud jste Viděl nebo neviděl to ještě, 268 00:11:28,980 --> 00:11:33,570 vím, že tam je soubor, který dáváme jste volali config.json-- JavaScript 269 00:11:33,570 --> 00:11:34,661 Object Notation. 270 00:11:34,661 --> 00:11:35,160 Proč? 271 00:11:35,160 --> 00:11:39,540 Chtěli jsme být schopni poskytnout vám šablony s některými dvojic klíč-hodnota. 272 00:11:39,540 --> 00:11:44,290 Chtěli jsme být schopni dát vám seznam hostitele, název serveru. 273 00:11:44,290 --> 00:11:46,710 Chtěli jsme, aby vám vzniku zástupný symbol pro vaše uživatelské jméno 274 00:11:46,710 --> 00:11:48,210 a zástupný symbol pro heslo. 275 00:11:48,210 --> 00:11:49,410 Pokud si nejste vidět to ještě, ne se bát. 276 00:11:49,410 --> 00:11:51,340 Více na toto téma v pset sedmi [? spec. ?] A pak, 277 00:11:51,340 --> 00:11:53,173 Je zřejmé, že chcete, vyplnit v na-DOS 278 00:11:53,173 --> 00:11:55,310 protože když se přihlásíte do CS50 IDE, každý z vás 279 00:11:55,310 --> 00:11:57,630 mít své vlastní uživatelské jméno a heslo. 280 00:11:57,630 --> 00:12:00,910 >> Takže jsme mohli jsme použít půl tuctu nebo více různých formátů souborů. 281 00:12:00,910 --> 00:12:02,940 Mohli jsme použili soubor TXT. 282 00:12:02,940 --> 00:12:04,570 Mohli bychom použít soubor ve formátu CSV. 283 00:12:04,570 --> 00:12:06,745 Mohli jsme použit INI soubor, soubor ve formátu XML, 284 00:12:06,745 --> 00:12:09,370 celá parta další zkratky, které jste možná ještě nikdy neslyšel. 285 00:12:09,370 --> 00:12:11,244 Je to trochu libovolný na konci dne. 286 00:12:11,244 --> 00:12:16,030 Ale mimořádně populární v těchto dnech je text formát nazvaný JSON-- JavaScript Object 287 00:12:16,030 --> 00:12:18,460 Notation-- že vypadá takto. 288 00:12:18,460 --> 00:12:20,890 Je to trochu záhadný, nevšimnout vzory. 289 00:12:20,890 --> 00:12:24,180 Začnete s otevřenou kudrnaté rovnátka, a vy skončíte s stejné. 290 00:12:24,180 --> 00:12:26,550 Uvnitř to je něco. 291 00:12:26,550 --> 00:12:27,920 Je to pár klíč-hodnota. 292 00:12:27,920 --> 00:12:30,580 Takže to je objekt, který já jsem při pohledu na na obrazovce zde 293 00:12:30,580 --> 00:12:33,690 že má jeden klíč, který má jednu hodnotu. 294 00:12:33,690 --> 00:12:37,610 A právě odvozovat založen na předchozí model, jaký je klíč tady? 295 00:12:37,610 --> 00:12:39,790 Databáze je věc levá tlustého střeva. 296 00:12:39,790 --> 00:12:43,500 >> Nyní, hodnota se stane být A více řádků této době. 297 00:12:43,500 --> 00:12:46,760 Ale hodnota začíná kudrnaté rovnátka a končí s složená závorka. 298 00:12:46,760 --> 00:12:49,480 Takže to, co byste navrhovali je typ hodnoty databáze? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 Slovník, nebo jen více stručně, objekt. 301 00:12:54,670 --> 00:12:55,170 Je to tak? 302 00:12:55,170 --> 00:13:00,010 To je druh datové struktury, které Můžete použít i jiné struktury v sobě. 303 00:13:00,010 --> 00:13:02,750 Takže pokud celá ta věc, že ​​jsme svolat object-- a objekt 304 00:13:02,750 --> 00:13:07,101 je jen banda klíč-hodnota pairs-- hodnota samotné databáze je objekt. 305 00:13:07,101 --> 00:13:10,350 Hodnota databáze má spoustu klíčových párů hodnot, z nichž první 306 00:13:10,350 --> 00:13:13,130 je hostitel, pojmenujte, a pak uživatelské jméno, pak heslo, 307 00:13:13,130 --> 00:13:17,550 každý z jejichž hodnoty, zatím, je to jen nudný řetězec v uvozovkách. 308 00:13:17,550 --> 00:13:19,770 >> Takže i když to není super jasný ještě ne, 309 00:13:19,770 --> 00:13:22,740 vím, že to je jen standard, docela nudný způsob, 310 00:13:22,740 --> 00:13:25,190 ukládání dat ve standardním formátu. 311 00:13:25,190 --> 00:13:27,700 Ale společné chybách ktere jste zde by mohl dělat, a to iv pset sedm, 312 00:13:27,700 --> 00:13:32,120 jsou malé hloupé věci, jako když náhodně vynechat čárku tam. 313 00:13:32,120 --> 00:13:34,900 To bude mít za následek souboru ne nutně být čitelný. 314 00:13:34,900 --> 00:13:38,191 Pokud omylem vynecháte věci, jako je citace, to nebude čitelný. 315 00:13:38,191 --> 00:13:41,654 Takže je to docela nitpicky formát souboru, ale to je ten, který je mimořádně běžné. 316 00:13:41,654 --> 00:13:44,820 A my náhodou používat, i když nechcete používat některý kódu JavaScript jinak, 317 00:13:44,820 --> 00:13:46,330 V pset sedm. 318 00:13:46,330 --> 00:13:46,860 >> Dobře. 319 00:13:46,860 --> 00:13:48,110 Takže pamatujte tento obrázek. 320 00:13:48,110 --> 00:13:51,657 Mluvili jsme o, v HTML, že kód může vypadat například takto. 321 00:13:51,657 --> 00:13:54,740 To je HyperText Markup Language [Neslyšitelný] jen za "Hello, World". 322 00:13:54,740 --> 00:13:57,570 Ale pak jsme navrhli zatímco zpět, že pokud to pomůže, 323 00:13:57,570 --> 00:14:00,210 možná budete chtít začít přemýšlet o tom již jako strom. 324 00:14:00,210 --> 00:14:03,730 Ve skutečnosti, že zářez používat jen pro čitelnost příčinu 325 00:14:03,730 --> 00:14:05,610 nebo kvůli na styl je levá může druh 326 00:14:05,610 --> 00:14:10,040 být přeložen do tohoto stromu, kde na vás mít nějaký speciální kořenový uzel, že budeme 327 00:14:10,040 --> 00:14:16,860 druhově nazvaný dokument, pod níž je kořenem HTML element nebo tag, HTML, 328 00:14:16,860 --> 00:14:19,980 který pak má dva děti, hlava a tělo. 329 00:14:19,980 --> 00:14:21,750 >> A pak zase hlava má titul. 330 00:14:21,750 --> 00:14:23,440 A titul má hodnotu textu. 331 00:14:23,440 --> 00:14:26,130 A tělo má podobně jako textovou hodnotu. 332 00:14:26,130 --> 00:14:29,220 Takže pokud vám vyhovuje přísloví že ano, mohl byste tento HTML 333 00:14:29,220 --> 00:14:32,080 a nakreslit obrázek, jako je to je pravá strana 334 00:14:32,080 --> 00:14:35,910 je pěkný mentální model, protože nyní že máme JavaScript, programování 335 00:14:35,910 --> 00:14:39,960 jazyk, který prohlížečů provádět a interpretovat pro vás, 336 00:14:39,960 --> 00:14:42,690 Ukazuje se, že to, co se chystáme udělat v kódu 337 00:14:42,690 --> 00:14:45,320 se začne manipulovat tento stromová struktura v paměti. 338 00:14:45,320 --> 00:14:47,070 Nemusíme budovat strom v paměti. 339 00:14:47,070 --> 00:14:49,880 Nemusíme dělat druh Struktura datové pset-five-style 340 00:14:49,880 --> 00:14:50,650 složitost. 341 00:14:50,650 --> 00:14:54,610 Prohlížeč, pěkně dost, na tlumočení HTML shora dolů, 342 00:14:54,610 --> 00:14:58,600 vlevo nebo vpravo, je doslova chystá ruka USA ekvivalent ukazatel 343 00:14:58,600 --> 00:15:00,840 k tomu celý strom zdarma. 344 00:15:00,840 --> 00:15:02,150 To dělá všechny tvrdé práce. 345 00:15:02,150 --> 00:15:05,520 To je to, co Mozilla a Apple a jiní udělali pro nás. 346 00:15:05,520 --> 00:15:09,400 >> A s JavaScript budeme být schopen ovládat a měnit a dělat 347 00:15:09,400 --> 00:15:12,910 zajímavých věcí že strom, jinak známý 348 00:15:12,910 --> 00:15:15,880 jako DOM nebo Document Object Model. 349 00:15:15,880 --> 00:15:17,110 Jaké věci? 350 00:15:17,110 --> 00:15:19,030 No, to ukáže, že v JavaScriptu, je tu 351 00:15:19,030 --> 00:15:22,800 tento praní seznam události, které se mohou uskutečnit. 352 00:15:22,800 --> 00:15:26,330 A my jsme opravdu používal to Slovo od týdne nulou a pset 353 00:15:26,330 --> 00:15:28,240 nulu, když jsme mluvili o Scratch. 354 00:15:28,240 --> 00:15:31,390 Většina z vás asi nepoužil událost ve vašem Scratch projektu. 355 00:15:31,390 --> 00:15:33,850 Ale vy jste možná pamatujete jednoduché Marco Polo 356 00:15:33,850 --> 00:15:36,760 Příkladem, kde jsme měli dvě skřítci, z nichž jeden z nich řekl, Marco. 357 00:15:36,760 --> 00:15:40,180 Druhý z nichž pak po poslechu a slyšet, že události, řekl, Polo. 358 00:15:40,180 --> 00:15:42,080 Pokud ne, neváhejte ohlédnout se, že daleko dozadu. 359 00:15:42,080 --> 00:15:44,450 >> Ale to je jen proto, aby říkají, a můžete druh 360 00:15:44,450 --> 00:15:47,730 vyvodit z názvů těchto věci, JavaScript, to dopadá, 361 00:15:47,730 --> 00:15:53,200 se chystá dát nám způsob, jak poslouchat pro myš jít dolů nebo myší jít nahoru 362 00:15:53,200 --> 00:15:57,920 klávesy nebo jít dolů, nebo klávesa jít nahoru nebo onsubmit onSelect 363 00:15:57,920 --> 00:15:59,740 nebo onresizing něco. 364 00:15:59,740 --> 00:16:03,060 Jinými slovy, jakýkoliv fyzikální působení že člověk může mít s prohlížečem 365 00:16:03,060 --> 00:16:08,210 , co děláte každý den, můžete psát kód, který naslouchá na tyto události 366 00:16:08,210 --> 00:16:10,220 a pak dělá něco vhodného. 367 00:16:10,220 --> 00:16:14,130 >> Například, pokud používáte Google Maps, co se stane, když klepnete na tlačítko a přesunout 368 00:16:14,130 --> 00:16:16,250 myši, obvykle? 369 00:16:16,250 --> 00:16:17,758 Pokud klepnete na tlačítko a přetáhněte? 370 00:16:17,758 --> 00:16:18,258 To jo? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Přesně tak. 373 00:16:22,200 --> 00:16:23,159 Mapa začne pohybovat. 374 00:16:23,159 --> 00:16:25,616 Takže můžete nějak vidět, co je sem, co je tam. 375 00:16:25,616 --> 00:16:27,130 A jak to, že Google implementovat? 376 00:16:27,130 --> 00:16:29,421 No, podle všeho, jsou to za použití pár těchto události 377 00:16:29,421 --> 00:16:31,720 posluchači, jeden, který říká, poslouchejte, na myš 378 00:16:31,720 --> 00:16:35,410 down-- takže když se uživatel fyzicky tlačí jeho trackpadu nebo jeho nebo její myš 379 00:16:35,410 --> 00:16:36,010 dolů. 380 00:16:36,010 --> 00:16:38,350 A pak hledáme něco jako pohyb 381 00:16:38,350 --> 00:16:41,145 nebo některá jiná událost nám umožňuje zachytit odpor. 382 00:16:41,145 --> 00:16:45,910 A ve skutečnosti, přetáhněte je podobně v tomto dot dot dot seznam možných voleb. 383 00:16:45,910 --> 00:16:49,140 >> Takže to bude silný způsob, jak začít reagovat na uživateli 384 00:16:49,140 --> 00:16:52,824 ještě předtím, než on nebo ona vlastně klikne něco jako explicitní odeslat. 385 00:16:52,824 --> 00:16:55,240 Ale my chystá zavést pár témat se tam dostat. 386 00:16:55,240 --> 00:16:58,570 Přechod ale nejprve, pojďme do určité aktuální kód. 387 00:16:58,570 --> 00:17:01,450 Takže já jdu vpřed a otevřít dom-0, 388 00:17:01,450 --> 00:17:05,869 což je velmi jednoduchý příklad zde, že když jsem se přiblížit jednoduše 389 00:17:05,869 --> 00:17:08,500 má tento vstup tady na mě. 390 00:17:08,500 --> 00:17:12,410 A já se do toho pusťte a zadejte "David" pro mé jméno a klepněte na tlačítko Odeslat. 391 00:17:12,410 --> 00:17:17,940 >> A pak, i když nějak levně, I mají tuto výzvu, který se objeví, která říká, 392 00:17:17,940 --> 00:17:19,244 "Ahoj, Davide!" 393 00:17:19,244 --> 00:17:21,740 Takže to je druh Stejně jako naše "ahoj, svět" 394 00:17:21,740 --> 00:17:25,150 že jsme udělali chvíli zpátky v C a dokonce v PHP, protože jsem dynamicky 395 00:17:25,150 --> 00:17:26,310 výstup mé jméno. 396 00:17:26,310 --> 00:17:28,230 Můžu dělat tu jméno někoho jiného. 397 00:17:28,230 --> 00:17:31,240 Mohl jsem jednoduše změnit to, jako, Hannah, klepněte na tlačítko Odeslat. 398 00:17:31,240 --> 00:17:33,780 A skutečně, ty malé pop-up změnám. 399 00:17:33,780 --> 00:17:36,650 >> Nyní, pop-up jsou jedním z většina zneužívané vlastnosti webu. 400 00:17:36,650 --> 00:17:38,520 A ve skutečnosti, v roce jednodenní pop-up blokátory 401 00:17:38,520 --> 00:17:40,820 přišel do módy, protože vás by jít do nějaké website-- 402 00:17:40,820 --> 00:17:43,604 možná diskutabilní place-- že by pak náhle 403 00:17:43,604 --> 00:17:46,020 začít zasypával obrazovky s celou partou pop-up okna. 404 00:17:46,020 --> 00:17:49,700 A tak tato schopnost pop-up okna před uživatelem 405 00:17:49,700 --> 00:17:52,372 nebyla zvlášť dobře přijat lidstva. 406 00:17:52,372 --> 00:17:54,080 Takže to je důvod, proč jste vidět to zabránit věc, 407 00:17:54,080 --> 00:17:55,706 který prostě dělá to celé ošklivé. 408 00:17:55,706 --> 00:17:57,996 Takže budeme potřebovat lepší způsob, jak vyzvat uživatele. 409 00:17:57,996 --> 00:17:59,350 Ale teď, to zdá se k práci. 410 00:17:59,350 --> 00:18:03,320 Takže jen intuitivně, co Zdá se, že se to tady děje? 411 00:18:03,320 --> 00:18:07,870 Jdu do toho a klikněte na tlačítko Odeslat, a pak se něco děje, jasně. 412 00:18:07,870 --> 00:18:12,870 Ale to, co se nestane, že se stalo Minulý týden kdykoli kliknul jsem Odeslat? 413 00:18:12,870 --> 00:18:15,940 Co se nestalo na obrazovce? 414 00:18:15,940 --> 00:18:17,170 Litovat? 415 00:18:17,170 --> 00:18:18,010 Obnovit. 416 00:18:18,010 --> 00:18:19,720 Adresa URL nezměnil vůbec. 417 00:18:19,720 --> 00:18:22,250 Řekl jsem, že to dom-0, a já jsem stále na DOM-0. 418 00:18:22,250 --> 00:18:26,890 Za normálních okolností bychom se převléknout k některým jiný URL, jako register.php nebo podobně. 419 00:18:26,890 --> 00:18:29,560 >> Ale i když jsem se odbýt tahle věc klepnutím na tlačítko OK, 420 00:18:29,560 --> 00:18:32,310 Všimněte si, že adresu URL zůstává zcela dal. 421 00:18:32,310 --> 00:18:35,350 A ve skutečnosti, když jsem trochu skeptický, dovolte mi, abych otevřít Chrome. 422 00:18:35,350 --> 00:18:36,860 Dovolte mi, abych otevřít kartu Síť. 423 00:18:36,860 --> 00:18:38,360 A všimněte si, že je to prázdný v tuto chvíli. 424 00:18:38,360 --> 00:18:40,700 Nech mě jít dopředu a znovu Maria. 425 00:18:40,700 --> 00:18:42,810 Neexistuje žádný síťový provoz vůbec. 426 00:18:42,810 --> 00:18:44,320 Takže není HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Takže opravdu, když jsem se podívat do zdrojového kódu pro tohle-- dovolte mi, abych toto okno zavřít 428 00:18:47,620 --> 00:18:49,480 a jít do zobrazení zdroj. 429 00:18:49,480 --> 00:18:50,400 Zajímavé. 430 00:18:50,400 --> 00:18:53,520 Vypadá to, že tam je nějaký Nové značky, mezi nimi i scénář. 431 00:18:53,520 --> 00:18:57,490 Takže pojďme se podívat uvnitř CS50 IDE přesně to, co jsem poslal k uživateli. 432 00:18:57,490 --> 00:19:00,690 >> Tak tady je-- pojďme se zaměřují pouze na HTML. 433 00:19:00,690 --> 00:19:03,500 Zde je spodní polovina DOM-0.html. 434 00:19:03,500 --> 00:19:07,830 A všimněte si, že to má titul, tag hlava, tělo značky, značka forma. 435 00:19:07,830 --> 00:19:11,257 Ale to, co vyskočí na vás, jak různé, zvláště pokud jste nikdy 436 00:19:11,257 --> 00:19:12,590 napsal jakýkoli JavaScript sami. 437 00:19:12,590 --> 00:19:14,920 Dovolte mi, abych se trochu posunout k právě tady. 438 00:19:14,920 --> 00:19:18,330 Mám vstup, další vstup pro odeslat. 439 00:19:18,330 --> 00:19:21,410 Mám ID, který je tak trochu nové. 440 00:19:21,410 --> 00:19:22,790 Ale my jsme se vidět s CSS. 441 00:19:22,790 --> 00:19:24,480 Co jiného je určitě nového? 442 00:19:24,480 --> 00:19:24,980 To jo? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 Nice. 445 00:19:32,140 --> 00:19:32,760 >> Dobře. 446 00:19:32,760 --> 00:19:35,630 Takže tam, kde se říká onsubmit, Všimněte si, co se zdá následovat. 447 00:19:35,630 --> 00:19:38,740 Toto je atribut HTML názvosloví. 448 00:19:38,740 --> 00:19:40,944 Jeho hodnota je tento řetězec v uvozovkách tady. 449 00:19:40,944 --> 00:19:42,860 A to vypadá trochu divný na první pohled. 450 00:19:42,860 --> 00:19:44,050 Není to HTML. 451 00:19:44,050 --> 00:19:45,240 Není to CSS. 452 00:19:45,240 --> 00:19:47,580 To je, jak asi tušíte, JavaScript. 453 00:19:47,580 --> 00:19:51,850 Takže se zdá, že vestavěný do toho webová stránka je funkce nazvaná pozdravit. 454 00:19:51,850 --> 00:19:54,250 A já odvozovat, že právě protože je to slovo, pozdravit. 455 00:19:54,250 --> 00:19:55,880 Má to otevřené závorka, zavřít paren, středník. 456 00:19:55,880 --> 00:19:58,095 Vypadá to, že funkce C, vypadá jako funkce PHP. 457 00:19:58,095 --> 00:20:00,370 >> A skutečně, to bude je funkce JavaScript. 458 00:20:00,370 --> 00:20:01,440 Pak Vracím false. 459 00:20:01,440 --> 00:20:03,440 Vrátíme se do že za chvíli. 460 00:20:03,440 --> 00:20:05,320 Ale kde je tato funkce definována? 461 00:20:05,320 --> 00:20:07,950 No dovolte mi, abych posouvat nahoru na začátek souboru. 462 00:20:07,950 --> 00:20:11,710 A i když je to dlouhá fronta, je to poměrně jednoduché. 463 00:20:11,710 --> 00:20:15,000 Dovolte mi, abych tady a oddálit zaměřit se na těchto čtyřech řádcích. 464 00:20:15,000 --> 00:20:17,137 >> Takže v jazyce JavaScript, jen jako PHP, stačí 465 00:20:17,137 --> 00:20:19,720 řekněme, doslovně, slovo "funkce" název funkce, 466 00:20:19,720 --> 00:20:22,700 a pak závorek s jakýmkoliv arguments-- žádné argumenty v tomto případě. 467 00:20:22,700 --> 00:20:25,290 A není to žádný typ návratu v JavaScriptu, stejně jako PHP. 468 00:20:25,290 --> 00:20:29,470 Takže je to trochu volnější než C. Otevřená složená závorka, v blízkosti je složená závorka. 469 00:20:29,470 --> 00:20:33,270 Zabudované do JavaScriptu je function-- nedoporučuje se function-- 470 00:20:33,270 --> 00:20:35,730 ale funkce nazvaná upozornění jejichž jediným účelem v životě 471 00:20:35,730 --> 00:20:38,620 je vytáhnout, že docela ošklivý vyzve, že jsme viděli před chvílí. 472 00:20:38,620 --> 00:20:40,950 >> Teď to je druh sousto. 473 00:20:40,950 --> 00:20:42,560 Co se tam děje? 474 00:20:42,560 --> 00:20:45,840 Takže pojďme začít zvýraznit tady všechno. 475 00:20:45,840 --> 00:20:48,540 To je stejný argument upozornit. 476 00:20:48,540 --> 00:20:49,530 A co se děje? 477 00:20:49,530 --> 00:20:51,200 To jen vypadá jako řetězec. 478 00:20:51,200 --> 00:20:59,180 A ukázalo se, na rozdíl od PHP a na rozdíl od C, nezáleží na tom, v JavaScriptu 479 00:20:59,180 --> 00:21:01,090 pokud jste jednoduché uvozovky nebo dvojité uvozovky. 480 00:21:01,090 --> 00:21:02,060 Budou rovnocenné. 481 00:21:02,060 --> 00:21:03,769 A upřímně řečeno, je to jen populární v těchto dnech 482 00:21:03,769 --> 00:21:06,726 pro programátory JavaScript vždy používat apostrofy z nějakého důvodu. 483 00:21:06,726 --> 00:21:07,840 Je to jen věc. 484 00:21:07,840 --> 00:21:09,710 Ale my jsme mohli použít uvozovek, stejně. 485 00:21:09,710 --> 00:21:11,540 >> Tak a je nový znak. 486 00:21:11,540 --> 00:21:14,512 Ale ti z vás, kteří jste udělal předtím, co to navíc znamená? 487 00:21:14,512 --> 00:21:16,440 To jo. 488 00:21:16,440 --> 00:21:17,120 Zřetězit. 489 00:21:17,120 --> 00:21:18,570 Tak jsme to viděli v PHP. 490 00:21:18,570 --> 00:21:20,315 Je tu jen tečka operátor v PHP, který 491 00:21:20,315 --> 00:21:22,000 bude zřetězit dva řetězce dohromady. 492 00:21:22,000 --> 00:21:24,000 C byla bolest v krku, jak to udělat. 493 00:21:24,000 --> 00:21:27,310 Připomeňme z pset šesti, který byl Speciální, bolest v krku, 494 00:21:27,310 --> 00:21:29,470 budete muset použít něco jako strcat 495 00:21:29,470 --> 00:21:31,660 po přidělování paměti na zásobníku nebo haldy. 496 00:21:31,660 --> 00:21:34,243 Museli jste proskočit obručí Jen zřetězit dva řetězce. 497 00:21:34,243 --> 00:21:36,040 V JavaScriptu, je to super jednoduché. 498 00:21:36,040 --> 00:21:38,030 Stačí použít operátor a navíc mezi nimi. 499 00:21:38,030 --> 00:21:41,420 >> Takže komplexní vypadající věc se zdá, že je to 500 00:21:41,420 --> 00:21:43,490 proto, že na konci Celý tento řetězec, jen jsem 501 00:21:43,490 --> 00:21:45,797 zřetězit na vykřičníkem. 502 00:21:45,797 --> 00:21:48,380 Takže pokud to, co se objevovat se "Dobrý den, David", "ahoj, Hannah," 503 00:21:48,380 --> 00:21:52,740 "Dobrý den, Maria," a tak dále, jasně že střední věc mezi dvěma 504 00:21:52,740 --> 00:21:55,215 plusy mi musí dát přístup k čemu? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Co je tam pro jistotu? 507 00:22:01,991 --> 00:22:02,490 To jo. 508 00:22:02,490 --> 00:22:05,090 Takže budu tady předstírat odpoví své jméno, že jo? 509 00:22:05,090 --> 00:22:10,380 Takže jejich jméno objevilo ve finále výsledek. Takže co to znamená? 510 00:22:10,380 --> 00:22:15,080 No, jsem navrhl, že dříve v Obraz, který tzv DOM 511 00:22:15,080 --> 00:22:18,580 má tento zvláštní kořenový element způsob up top s názvem dokumentu. 512 00:22:18,580 --> 00:22:21,660 A teď se ukazuje, že se děje za zvláštní globální proměnná 513 00:22:21,660 --> 00:22:25,250 v JavaScriptu, vestavěný do což je celá řada užitečných funkcí. 514 00:22:25,250 --> 00:22:31,770 Mezi užitečné funkce je schopnost dostat za každou potomek uzlu. 515 00:22:31,770 --> 00:22:37,760 Tyto čtverce či obdélníky nebo elipsy jsou jen uzlů ve stromu, abych tak řekl. 516 00:22:37,760 --> 00:22:41,850 >> Tak to dopadá, že vestavěný do JavaScript je objekt dokumentu 517 00:22:41,850 --> 00:22:47,300 je funkce, jinak známý jako metoda, která se nazývá getElementById. 518 00:22:47,300 --> 00:22:50,410 Syntaxe pro volání funkce v JavaScriptu 519 00:22:50,410 --> 00:22:55,220 že je uvnitř objektu nebo proměnná je právě s tečkové notace. 520 00:22:55,220 --> 00:22:57,950 A my jsme viděli to v C jaký syntaxe struct. 521 00:22:57,950 --> 00:23:03,530 Vidíte to v pset sedm, druh, druh, když vidíte CS50 :: dotazu. 522 00:23:03,530 --> 00:23:08,070 Dvojtečka dvojtečka v PHP je další způsob volání funkce, která je 523 00:23:08,070 --> 00:23:09,260 uvnitř nějakého objektu. 524 00:23:09,260 --> 00:23:11,960 >> Ale teď v jazyce JavaScript, je to jen tečka. 525 00:23:11,960 --> 00:23:14,170 A tak tato funkce, dost hezky, druh 526 00:23:14,170 --> 00:23:16,810 říká, že to, co does-- dostat element ID. 527 00:23:16,810 --> 00:23:20,280 Prvek je jen jiný název pro uzel etikety nebo v DOM. 528 00:23:20,280 --> 00:23:26,900 A tak si prvek podle ID "jméno" znamená tohle-- tady je můj HTML. 529 00:23:26,900 --> 00:23:31,910 A na základě této HTML, co uzel, nebo to, co HTML tag jsem já 530 00:23:31,910 --> 00:23:35,097 bude programově být předán voláním document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Jo, přesně tak. 533 00:23:38,500 --> 00:23:42,670 Chystám se dostat vstup element existuje, jehož ID je "název." 534 00:23:42,670 --> 00:23:45,140 Takže konkrétně, můžete myslíte o této funkce, 535 00:23:45,140 --> 00:23:49,560 getElementById, jako způsob, jak dát zpět ukazatel na tuto konkrétní uzel 536 00:23:49,560 --> 00:23:50,060 ve stromu. 537 00:23:50,060 --> 00:23:51,980 Ještě jsme to vypracovány strom, ale je to způsob, jak 538 00:23:51,980 --> 00:23:54,900 jak získat přístup k této obdélník nebo že obdélník 539 00:23:54,900 --> 00:23:58,090 by jednoznačně ji identifikovat pomocí jeho ID. 540 00:23:58,090 --> 00:23:59,760 >> A teď, proč je to užitečné? 541 00:23:59,760 --> 00:24:01,510 No, to dopadá že jakmile jste se dostali 542 00:24:01,510 --> 00:24:07,220 že uzel, že obdélník od obrázek, že uzel uvnitř ní, 543 00:24:07,220 --> 00:24:10,660 naopak, má spoustu párů properties-- klíč-hodnota 544 00:24:10,660 --> 00:24:13,480 nebo data, z nichž jeden se nazývá hodnota. 545 00:24:13,480 --> 00:24:16,500 Takže doslova, je to něco jako sousto vysvětlit celou věc. 546 00:24:16,500 --> 00:24:19,370 Ale na konci dne, to vše dělá, je, aby vám 547 00:24:19,370 --> 00:24:23,070 řetězec, který uživatel zadal V tomto hierarchicky. 548 00:24:23,070 --> 00:24:24,820 Ale já nelíbí několik z těchto věcí. 549 00:24:24,820 --> 00:24:27,590 Nebo spíš, je tu ještě nějaký zvědavost. 550 00:24:27,590 --> 00:24:28,870 To vše se zdálo, že funguje. 551 00:24:28,870 --> 00:24:33,420 Proč myslíte, že jsem se vrátil false po zavolání pozdravit? 552 00:24:33,420 --> 00:24:35,910 To vypadá trochu ošklivé, že Mám dvě prohlášení zde 553 00:24:35,910 --> 00:24:38,730 oddělené středníky. 554 00:24:38,730 --> 00:24:39,310 Hádej. 555 00:24:39,310 --> 00:24:44,390 Pokud bych odstranil return false, co Může se stát, prostě instinktivně? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Omlouváme se, ale ještě jednou? 558 00:24:49,460 --> 00:24:50,530 >> Otevřete spoustu Windows. 559 00:24:50,530 --> 00:24:52,780 Takže potenciálně možná něco jako že se to stane. 560 00:24:52,780 --> 00:24:54,422 Co dalšího? 561 00:24:54,422 --> 00:24:55,630 Možná podat žádost Kde? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 Na stejné stránce. 564 00:25:00,510 --> 00:25:03,110 Takže ve skutečnosti, že je to čím blíže odpovědět tady, 565 00:25:03,110 --> 00:25:05,890 i když, na rozdíl od V minulosti jsem ne 566 00:25:05,890 --> 00:25:09,300 zadán atribut akce, který normálně musíme udělat. 567 00:25:09,300 --> 00:25:11,780 Ukázalo se, že je tu výchozí. Pokud nechcete určit akci, 568 00:25:11,780 --> 00:25:15,370 to je jako říct nabídku, konec citátu nebo název souboru sám, 569 00:25:15,370 --> 00:25:17,850 což by v tomto případě být jako dom-0.html. 570 00:25:17,850 --> 00:25:20,420 Je to jen druh dovodil, nebo spíše implicitní. 571 00:25:20,420 --> 00:25:22,420 >> A tak když se mi to udělat, pojďme si všimnout. 572 00:25:22,420 --> 00:25:23,230 Dovolte mi, abych to zachránit. 573 00:25:23,230 --> 00:25:25,270 A já jsem odstranil return false. 574 00:25:25,270 --> 00:25:27,759 Nechte mě vrátit se k tomu příklad a sílu znovu načíst. 575 00:25:27,759 --> 00:25:30,800 A jste mohli vidět mi navrhnout to na CS50 Diskutujte spoustu časů. 576 00:25:30,800 --> 00:25:34,560 Pokud něco se někdy jedná funky a prohlížeč není chová podle očekávání, 577 00:25:34,560 --> 00:25:37,410 často budete chtít držet Shift a potom klepněte na tlačítko Načíst znovu. 578 00:25:37,410 --> 00:25:41,480 To bude nutit každý soubor znovu načíst a nesmějí používat ve svém prohlížeči mezipaměť místní 579 00:25:41,480 --> 00:25:47,032 nebo kopii tak, že teď, nech mě jít dopředu a otevřou své Inspector na kartu Síť. 580 00:25:47,032 --> 00:25:48,740 Budu klikněte Zachovat Přihlásit proto, že jsem 581 00:25:48,740 --> 00:25:51,660 Nechceme, odstranit řádky Jednou jsem si odvedl pryč jinde. 582 00:25:51,660 --> 00:25:54,650 >> Nech mě jít dopředu a tady zadejte Andi, klepněte na tlačítko Odeslat. 583 00:25:54,650 --> 00:25:55,150 Dobře. 584 00:25:55,150 --> 00:25:56,480 To vypadá, jak se očekávalo. 585 00:25:56,480 --> 00:25:57,440 To říká, že "ahoj, Andi." 586 00:25:57,440 --> 00:25:59,420 Dovolte mi, abych na tlačítko OK. 587 00:25:59,420 --> 00:26:00,610 Zajímavé. 588 00:26:00,610 --> 00:26:05,100 Všimněte si, že stránka změnila, i když na původní stránku. 589 00:26:05,100 --> 00:26:06,770 Všimněte si URL druh změnil. 590 00:26:06,770 --> 00:26:09,430 Dodala, otazník, což je obvykle indikátorem 591 00:26:09,430 --> 00:26:11,260 že jsme se snažili předložit něco. 592 00:26:11,260 --> 00:26:13,570 A pak se na dně, ještě jasněji, 593 00:26:13,570 --> 00:26:17,570 Zde je aktuální požadavek HTTP, který má odezvu 200, které 594 00:26:17,570 --> 00:26:18,490 přivedl mě sem. 595 00:26:18,490 --> 00:26:20,250 >> Takže to není to, co chceme udělat, ne? 596 00:26:20,250 --> 00:26:22,166 Protože nechci, aby znovu načíst celou stránku. 597 00:26:22,166 --> 00:26:24,970 Místo toho jsem se chtěl vrátit false tak, aby se zkratu 598 00:26:24,970 --> 00:26:28,840 výchozí chování prohlížeče, který byl, samozřejmě, aby předložila stránky. 599 00:26:28,840 --> 00:26:31,700 >> Takže pojďme se podívat na okrajově lepší příklad. 600 00:26:31,700 --> 00:26:33,920 To je dom verze jednou. 601 00:26:33,920 --> 00:26:36,680 A všimněte si následující. 602 00:26:36,680 --> 00:26:39,150 To je v pořádku, pokud nechcete Grok všechny řádků kódu. 603 00:26:39,150 --> 00:26:41,750 Ale to, co je zásadně odlišný o tomto plnění? 604 00:26:41,750 --> 00:26:44,690 Budu stanoví, že se chová Totéž, dělá totéž. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Co jsem zřejmě udělal jinak? 607 00:26:51,570 --> 00:26:52,266 To jo? 608 00:26:52,266 --> 00:26:53,182 >> Diváků: [Neslyšitelné]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID Malan: Jo. 611 00:27:04,170 --> 00:27:08,620 Takže funkce je definována differently-- jinými slovy, nepřítomných z formuláře, 612 00:27:08,620 --> 00:27:13,180 tam nahoře na lince 7-- nebo spíše, linka 8-- již 613 00:27:13,180 --> 00:27:15,070 mám tu onsubmit atribut. 614 00:27:15,070 --> 00:27:16,750 V předchozím příkladu, měl jsem to. 615 00:27:16,750 --> 00:27:18,530 A pak jsem doslova napsal můj kód zde. 616 00:27:18,530 --> 00:27:20,210 A pak jsem řekl return false. 617 00:27:20,210 --> 00:27:22,180 A pokud to nebylo třít jste ještě na špatnou cestu, 618 00:27:22,180 --> 00:27:26,140 to by mělo začít, pokud as, stejně jako v HTML, 619 00:27:26,140 --> 00:27:29,530 kdy jsme začali spolupracovat smísit ji s CSS v atributy stylu, 620 00:27:29,530 --> 00:27:32,890 to právě začal trochu chaotický, nebo cítit trochu špatně. 621 00:27:32,890 --> 00:27:35,020 >> Stejně tak zde, pokud začnete HTML, 622 00:27:35,020 --> 00:27:37,419 a pak automaticky plop nějaký kód JavaScriptu 623 00:27:37,419 --> 00:27:40,460 ve středu řetězec v uvozovkách, je to Nebude velmi udržovatelný. 624 00:27:40,460 --> 00:27:40,630 Je to tak? 625 00:27:40,630 --> 00:27:43,690 Není to ani zjevné na první pohled místo, kde je kód JavaScript je. 626 00:27:43,690 --> 00:27:46,590 Tak to by bylo opravdu pěkné, jak princip lepšího designu, 627 00:27:46,590 --> 00:27:50,500 pojďme se udržet naše HTML zcela oddělit od našeho JavaScript. 628 00:27:50,500 --> 00:27:53,150 >> Takže k tomu, že to, co máme tady udělal je following-- 629 00:27:53,150 --> 00:27:56,790 jednoduše pomocí HTML pouze pro značkování. 630 00:27:56,790 --> 00:28:00,730 A tak v provedení jedné z toho, vše Mám je forma s jedinečným ID. 631 00:28:00,730 --> 00:28:04,630 A pak tady dole, jsem využil ze speciální funkci JavaScriptu 632 00:28:04,630 --> 00:28:08,480 kterým můžu mít to, co je volal anonymní funkce. 633 00:28:08,480 --> 00:28:14,150 Tak to dopadá, že když říkám document.getElementById o "demo" 634 00:28:14,150 --> 00:28:18,890 to je jako, že mi ukazatel tento uzel v mém stromě, forma prvek, 635 00:28:18,890 --> 00:28:20,100 abych tak řekl. 636 00:28:20,100 --> 00:28:22,220 >> Teď, já jen vím od věděl, trochu HTML 637 00:28:22,220 --> 00:28:26,330 teď jsme četli některé on-line reference, že forma prvek podporuje 638 00:28:26,330 --> 00:28:29,950 celá parta akce v listeners-- Jinými slovy, seznam prádlo akce 639 00:28:29,950 --> 00:28:31,700 posluchači, že jsme viděli před chvílí. 640 00:28:31,700 --> 00:28:35,950 Vím, že při čtení dokumentace že onsubmit je platný událostí 641 00:28:35,950 --> 00:28:38,520 posluchač na element formuláře. 642 00:28:38,520 --> 00:28:41,480 >> Takže jakmile Vím, že, je to bezpečné pro mě 643 00:28:41,480 --> 00:28:45,390 following-- dostat ten uzel ze stromu, forma prvek, 644 00:28:45,390 --> 00:28:48,070 a přístup k jeho tzv onsubmit vlastnost. 645 00:28:48,070 --> 00:28:49,880 Takže tečka prostě znamená, To je vlastnost, 646 00:28:49,880 --> 00:28:52,180 jako zvláštní hodnoty uvnitř ní. 647 00:28:52,180 --> 00:28:55,590 A jaký typ dat jsem já přiřazování, zdá se, 648 00:28:55,590 --> 00:28:58,900 na onsubmit, což je účinně proměnnou uvnitř 649 00:28:58,900 --> 00:29:01,010 tohoto uzlu ve stromu? 650 00:29:01,010 --> 00:29:04,100 Je to pole uvnitř tohoto struct. 651 00:29:04,100 --> 00:29:05,810 Jaký je datový typ? 652 00:29:05,810 --> 00:29:07,030 >> Funkce, jo. 653 00:29:07,030 --> 00:29:08,607 Tak to dopadá, že PHP má tento. 654 00:29:08,607 --> 00:29:10,440 A i když jsme Neřekl vám o tom, 655 00:29:10,440 --> 00:29:16,240 C má také ukazatele na funkce, o schopnost projít a přiřadit funkce 656 00:29:16,240 --> 00:29:18,330 jak samotných hodnot proměnných. 657 00:29:18,330 --> 00:29:20,280 A my nejdeme vracet se zpět na C. 658 00:29:20,280 --> 00:29:23,250 Ale teď, se ukazuje, že Na pravé straně se zde, 659 00:29:23,250 --> 00:29:26,260 i když to vypadá trochu funky, to znamená, hej prohlížeč, 660 00:29:26,260 --> 00:29:27,550 dej mi funkci. 661 00:29:27,550 --> 00:29:30,560 Nebudu se ani neobtěžoval dát to jméno, protože jsem doslova 662 00:29:30,560 --> 00:29:34,450 chystá přiřadit nazvěme to adresa této funkce 663 00:29:34,450 --> 00:29:35,994 okamžitě onsubmit. 664 00:29:35,994 --> 00:29:39,160 Jinými slovy, prohlížeče, nepotřebujete vědět, co tato funkce se nazývá. 665 00:29:39,160 --> 00:29:41,890 Musíte jen vědět, je-li v paměti. 666 00:29:41,890 --> 00:29:44,210 A tak stačí jen proto, aby mají rovnítko tam 667 00:29:44,210 --> 00:29:48,240 a nezatěžovat jmenovat to, jako foo nebo pozdravit nebo jakékoli jiné slovo. 668 00:29:48,240 --> 00:29:50,150 A teď je to jen stylistický věc. 669 00:29:50,150 --> 00:29:53,100 Mohl bych přesunout složená závorka na the-- sorry-- další řádek 670 00:29:53,100 --> 00:29:54,750 jako my obvykle dělají CS50. 671 00:29:54,750 --> 00:29:57,550 Ale v JavaScriptu, je to skutečně stylově obyčejný 672 00:29:57,550 --> 00:30:00,450 jen držet složenou závorkou se První z nich, v tomto prvním řádku. 673 00:30:00,450 --> 00:30:02,620 >> Ale dále, je tu nic zajímavého. 674 00:30:02,620 --> 00:30:05,830 To open složená závorka jen vymezuje začátek mé funkce. 675 00:30:05,830 --> 00:30:09,320 Funkce je nyní totožné, s výjimkou jsem 676 00:30:09,320 --> 00:30:11,452 zahrnovaly return false uvnitř této funkce. 677 00:30:11,452 --> 00:30:13,160 Vzhledem k tomu, že se otočí out-- A vy byste jen 678 00:30:13,160 --> 00:30:14,980 vím, že to od čtení documentation-- 679 00:30:14,980 --> 00:30:19,740 že pokud funkci, kterou přiřadíte na onsubmit psovod vrátí hodnotu false, 680 00:30:19,740 --> 00:30:23,420 prohlížeč prostě ví a souhlasí s tím, Není odeslat formulář na server. 681 00:30:23,420 --> 00:30:27,210 Pokud se vrátí hodnotu true, bude předkládat že k serveru z důvodů, uvidíme, 682 00:30:27,210 --> 00:30:28,700 jsou užitečné jen na chvíli. 683 00:30:28,700 --> 00:30:31,000 >> A pak se po středník Kudrnatý rovnátka tam prostě 684 00:30:31,000 --> 00:30:32,541 znamená, že jsem udělal definování funkce. 685 00:30:32,541 --> 00:30:36,600 Víte, co máte co nejdříve zavolat jak uslyšíte podání. 686 00:30:36,600 --> 00:30:37,100 Dobře. 687 00:30:37,100 --> 00:30:40,650 To je stále pravděpodobně trochu ošklivé. 688 00:30:40,650 --> 00:30:42,190 Takže co víc můžeme udělat? 689 00:30:42,190 --> 00:30:45,000 >> No, to dopadá pak v verze dvě, což je last-- 690 00:30:45,000 --> 00:30:46,780 a my si jen pohled na to. 691 00:30:46,780 --> 00:30:49,850 Na existuje nebezpečí, že to ošklivější, se ukazuje, 692 00:30:49,850 --> 00:30:52,160 že je tu knihovna svět volal jQuery. 693 00:30:52,160 --> 00:30:54,900 A jQuery je super populární knihovna JavaScript 694 00:30:54,900 --> 00:30:57,930 to je tak populární, že většina jakýkoli JavaScript-- to není 695 00:30:57,930 --> 00:31:00,540 neobvyklé pro lidi pletou jQuery s JavaScript. 696 00:31:00,540 --> 00:31:01,070 Proč? 697 00:31:01,070 --> 00:31:04,990 Samotný JavaScript má velmi verbose způsoby, jak dělat things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Můžete skončit s velmi dlouhých řádků kódu. 700 00:31:10,510 --> 00:31:15,550 >> Takže chlapík jménem John Resid, kdo vlastně pracuje pro uvedení do provozu 701 00:31:15,550 --> 00:31:18,630 up v těchto dnech, vyšel s touto knihovnou let 702 00:31:18,630 --> 00:31:22,070 Před, že mnoho lidí přispělo k tzv jQuery, který mění 703 00:31:22,070 --> 00:31:23,449 syntaxe v následujícím způsobem. 704 00:31:23,449 --> 00:31:25,740 A jen tak jste viděli to, protože budete vždy 705 00:31:25,740 --> 00:31:28,140 viz, pokud Doing závěrečný projekt web-based, 706 00:31:28,140 --> 00:31:33,270 to by bylo ekvivalentní způsob kterým se provádí, že stejné funkce pomocí 707 00:31:33,270 --> 00:31:34,630 Tato speciální knihovna. 708 00:31:34,630 --> 00:31:36,680 >> Nyní, spíše než dráždit že od sebe v celém svém rozsahu, 709 00:31:36,680 --> 00:31:38,520 ať to jen podívat na některé vzory. 710 00:31:38,520 --> 00:31:44,850 Tato syntaxe vypadá, že má kolik anonymní funkce 711 00:31:44,850 --> 00:31:49,584 nebo bezejmenných funkce nebo AKA lambda funkce? 712 00:31:49,584 --> 00:31:50,190 Dva, jo? 713 00:31:50,190 --> 00:31:52,690 A víte, že i v případě, nejste mimořádně pohodlné s tím, 714 00:31:52,690 --> 00:31:55,780 jen tím, že skutečnost, že se říká, že funkce () dvakrát. 715 00:31:55,780 --> 00:31:58,172 >> A ukázalo se, že co tento kód je doing-- 716 00:31:58,172 --> 00:32:01,255 a budeme odkazovat na on-line referencí, nakonec, o nějakou pomoc s tím. 717 00:32:01,255 --> 00:32:04,480 To prostě znamená, že při Dokument je nyní připraven, 718 00:32:04,480 --> 00:32:07,490 pokračovat a zaregistrovat následující funkce 719 00:32:07,490 --> 00:32:12,064 jak předložit handler pro HTML prvek, jehož jedinečný nápad, je demo. 720 00:32:12,064 --> 00:32:14,480 A pak, když se to stane, volat tyto dva řádky kódu. 721 00:32:14,480 --> 00:32:18,677 A to je, tragicky, více verbose způsob, jak říkat return false. 722 00:32:18,677 --> 00:32:21,510 A jsme zmínili to jen proto, uvidíte kód, jako je tento online. 723 00:32:21,510 --> 00:32:23,140 A není to nic, aby se odradit. 724 00:32:23,140 --> 00:32:26,057 Ale spíše, mějte na paměti, že to, co je Bude obyčejný v JavaScriptu 725 00:32:26,057 --> 00:32:26,765 to je paradigma. 726 00:32:26,765 --> 00:32:29,510 A tak to je důvod, proč jsme to ukázat nyní. 727 00:32:29,510 --> 00:32:30,010 Dobře. 728 00:32:30,010 --> 00:32:32,730 Takže bez obydlí příliš hodně na tom syntaxi, 729 00:32:32,730 --> 00:32:37,800 jsou tam jsou nějaké otázky týkající Tyto příklady nebo nápady tak daleko? 730 00:32:37,800 --> 00:32:38,300 Dobře. 731 00:32:38,300 --> 00:32:40,220 Takže pojďme použít pro něco užitečného. 732 00:32:40,220 --> 00:32:47,070 Tvorba webovou stránku, která prostě říká ahoj, tak a tak není všechno tak zajímavé, 733 00:32:47,070 --> 00:32:47,830 ne chladným. 734 00:32:47,830 --> 00:32:51,038 Ten to nebude být krásné, ale to bude dělat něco užitečného. 735 00:32:51,038 --> 00:32:56,350 Nech mě jít zpátky do mého adresáře tady a otevřít, řekněme, form-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Takže předpokládám, že je to nováček intramurální sportovní registrační stránce 737 00:32:59,320 --> 00:33:01,780 bez jakéhokoliv CSS nebo žádném smyslu designu. 738 00:33:01,780 --> 00:33:05,404 A já chci, aby do toho pusťte a registrovat zde s heslem. 739 00:33:05,404 --> 00:33:08,320 A budu souhlasit s podmínkami a podmínky, a klepněte na tlačítko Registrovat. 740 00:33:08,320 --> 00:33:11,700 A nyní na internetových stránkách říká: "Jsi registrovaný! (No, ne tak docela.) " 741 00:33:11,700 --> 00:33:15,070 To se zdá, jako by to fungovalo, ale nech mě jít napřed a donutit Znovu načíst. 742 00:33:15,070 --> 00:33:18,720 >> A dovolte mi říci, ne, to ne potřebovat mou skutečnou e-mailovou adresu. 743 00:33:18,720 --> 00:33:21,820 Nebo možná budeme jen říct, poštu tam. 744 00:33:21,820 --> 00:33:25,080 Heslo bude, stejně jako, 12345. 745 00:33:25,080 --> 00:33:28,810 A pak, právě proto, že jsem idiot, teď je to 123456789. 746 00:33:28,810 --> 00:33:31,150 A já nebudu zkontrolovat políčko. 747 00:33:31,150 --> 00:33:31,850 >> Hmm. 748 00:33:31,850 --> 00:33:32,350 Dobře. 749 00:33:32,350 --> 00:33:34,920 Takže tam je několik příležitostí pro zlepšení zde. 750 00:33:34,920 --> 00:33:39,070 A ty víš, nebo budou vidět v pset seven, že můžete psát code-- 751 00:33:39,070 --> 00:33:41,890 a budete muset psát Kód v PHP-- na obranu 752 00:33:41,890 --> 00:33:45,780 proti těmto druhům uživatele Chyby protože uživatel jasně 753 00:33:45,780 --> 00:33:46,790 nespolupracovala. 754 00:33:46,790 --> 00:33:49,680 A on nebo ona vám nedal všechny hodnoty jste chtěli, nebo dokonce ve formátu 755 00:33:49,680 --> 00:33:50,630 že jste je chtěli. 756 00:33:50,630 --> 00:33:53,250 Tak uvidíte v pset sedmi že bychom mohli jistě mít nějaké 757 00:33:53,250 --> 00:33:55,680 pokud podmínky, které říkají, pokud e-mailovou adresu 758 00:33:55,680 --> 00:33:59,450 není username@something.edu, Mohli bychom 759 00:33:59,450 --> 00:34:02,575 omluvit a omluvit se uživateli hodně, stejně jako byste mohli být v pset sedm. 760 00:34:02,575 --> 00:34:05,700 Anebo, pokud to není zaškrtnuta tu krabici, Ukazuje se v PHP, můžete zjistit, že, 761 00:34:05,700 --> 00:34:06,200 příliš. 762 00:34:06,200 --> 00:34:09,389 A určitě, pokud hesel neodpovídají jako v register.php 763 00:34:09,389 --> 00:34:11,521 pro pset sedm, můžete zjistit, že. 764 00:34:11,521 --> 00:34:13,770 Ale to je bolest v krk v tom, že teď si vyžádají 765 00:34:13,770 --> 00:34:15,510 abychom šli celou cestu na server. 766 00:34:15,510 --> 00:34:17,053 Uživatel je informován o chybě. 767 00:34:17,053 --> 00:34:19,219 A alespoň pokud nepoužijete některé milovník techniky, 768 00:34:19,219 --> 00:34:20,929 teď mají kliknout na šipku zpět. 769 00:34:20,929 --> 00:34:23,300 Nebylo by hezké, jako mnoho internetových stránek dnes, 770 00:34:23,300 --> 00:34:26,190 pokud jste měli více bezprostřední zpětná vazba, okamžitě? 771 00:34:26,190 --> 00:34:31,389 >> Jinými slovy, nech mě jít na verzi člověk, který se chystá být hezčí. 772 00:34:31,389 --> 00:34:33,469 Ale to přece má tuto funkci. 773 00:34:33,469 --> 00:34:39,590 Malan, 12345, 123456789, nikoli chystá zaškrtněte políčko, Register. 774 00:34:39,590 --> 00:34:41,330 Hesla se neshodují. 775 00:34:41,330 --> 00:34:44,459 Takže i když to pop-up je ugly-- můžeme nahradit to nakonec 776 00:34:44,459 --> 00:34:47,000 s něčím, jako bootstrap, které uvidíte v pset sedmi 777 00:34:47,000 --> 00:34:50,239 je velmi populární library-- jsem udělal zjistí, že hesla se neshodují. 778 00:34:50,239 --> 00:34:50,739 Dobře. 779 00:34:50,739 --> 00:34:52,530 No, dovolte mi, abych opravit, že jako uživatel. 780 00:34:52,530 --> 00:34:55,460 Nech mě jít dál a říct, 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Stále není kontrola dohodu. 782 00:34:57,780 --> 00:35:00,210 Musíte souhlasit s pravidla a podmínky. 783 00:35:00,210 --> 00:35:01,760 Tak proč? 784 00:35:01,760 --> 00:35:04,100 >> Pokud jsme již předpokládal že existuje způsob, 785 00:35:04,100 --> 00:35:07,260 a my jsme vás požadováno pset sedmi odhalit chyby 786 00:35:07,260 --> 00:35:09,780 podmínky, jako to server-side, proč bych měl 787 00:35:09,780 --> 00:35:13,940 obtěžovat také dělá v JavaScriptu? 788 00:35:13,940 --> 00:35:15,850 Co je to argument přízeň přidávání co 789 00:35:15,850 --> 00:35:18,760 jste asi vidět, jak some-- je tu další složitost. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Možná, že není vzhůru. 792 00:35:25,930 --> 00:35:26,924 Co by to mohlo být? 793 00:35:26,924 --> 00:35:27,840 Diváků: [Neslyšitelné]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID Malan: Oh, zajímavé. 796 00:35:32,340 --> 00:35:33,530 Potenciální využije. 797 00:35:33,530 --> 00:35:37,540 Takže si jistý, pokud si nejste manipulaci chybný vstup uživatele, který skvěle, 798 00:35:37,540 --> 00:35:40,170 Možná je to všechno lepší, když to nedosahuje ani váš server. 799 00:35:40,170 --> 00:35:42,160 Já bych tlačit tam a řekněme, asi byste měli 800 00:35:42,160 --> 00:35:43,284 opravit oba tyto problémy. 801 00:35:43,284 --> 00:35:44,140 Ale to je fér. 802 00:35:44,140 --> 00:35:44,710 Co dalšího? 803 00:35:44,710 --> 00:35:45,626 >> Diváků: [Neslyšitelné]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID Malan: Jo. 806 00:35:49,014 --> 00:35:51,680 Tento kód, jak jsme řekli dříve, je vykládány na straně klienta. 807 00:35:51,680 --> 00:35:53,846 To neobtěžuje serveru, což znamená, že to není 808 00:35:53,846 --> 00:35:55,930 vliv zatížení serveru nebo kapacity. 809 00:35:55,930 --> 00:35:59,840 A teď, pro malá stará mě, nemá žádný podstatný vliv 810 00:35:59,840 --> 00:36:01,970 proto, že mám jednoho uživatele právě teď. 811 00:36:01,970 --> 00:36:04,010 >> Ale pokud jste některý Webové stránky slušné velikosti, 812 00:36:04,010 --> 00:36:07,400 zejména největší, jako je Facebook, tím více můžete udržet lidi off 813 00:36:07,400 --> 00:36:09,927 Vašeho serveru, tím lépe proto, že server, samozřejmě, 814 00:36:09,927 --> 00:36:12,510 má pouze omezené množství paměti RAM, konečný počet gigahertzů, 815 00:36:12,510 --> 00:36:16,340 konečný počet věcí to může udělat za jednotku času. 816 00:36:16,340 --> 00:36:19,170 Takže pokud existuje více lidí v Svět bít váš server, 817 00:36:19,170 --> 00:36:21,750 náhodně přihlášení nesprávně, stejně tak dobře, pokud vy 818 00:36:21,750 --> 00:36:23,254 Můžete si tu zátěž z vašeho serveru. 819 00:36:23,254 --> 00:36:25,420 Navíc, a to zejména na mobil device-- pokud jste někdy 820 00:36:25,420 --> 00:36:29,190 přihlaste se nebo my.harvard Yaleův NetID nebo podobně, 821 00:36:29,190 --> 00:36:32,330 Tam je to latence se spoustou webové stránky, jako to, kdy to bere, 822 00:36:32,330 --> 00:36:34,110 jako, zatraceně vteřinu nebo dvě někdy. 823 00:36:34,110 --> 00:36:37,979 A pak, Bože můj, pokud napíšete, pak musíte trefit zpět a znovu ji. 824 00:36:37,979 --> 00:36:40,520 Takže tam je čekací doba, a to zejména na pomalejších připojení k síti. 825 00:36:40,520 --> 00:36:43,030 Ale JavaScript, protože to běží na straně klienta 826 00:36:43,030 --> 00:36:46,720 a nemusí jít tam a zpět přes potenciálně pomalý internet 827 00:36:46,720 --> 00:36:49,780 připojení, můžete získat téměř okamžitá zpětná vazba. 828 00:36:49,780 --> 00:36:50,760 >> Takže pojďme se podívat na to. 829 00:36:50,760 --> 00:36:54,280 Dovolte mi, abych otevírají form-0 a podívejte se na HTML zde. 830 00:36:54,280 --> 00:36:56,040 A ať to jen zjistit, co se děje. 831 00:36:56,040 --> 00:36:59,460 Toto je forma, jejíž akce je register.php. 832 00:36:59,460 --> 00:37:01,530 Já jsem jen pomocí se tak že jsem mohl vidět URL. 833 00:37:01,530 --> 00:37:05,030 Ale pro hesla, bychom určitě chceme změnit tento post ve skutečnosti. 834 00:37:05,030 --> 00:37:06,910 Zde je vstupní pole typu text. 835 00:37:06,910 --> 00:37:09,050 Zde je další vstup pole zadejte heslo. 836 00:37:09,050 --> 00:37:13,150 Tady je, pokud jste nikdy neviděli, vstup zaškrtávací políčko typu. 837 00:37:13,150 --> 00:37:15,250 >> Ale není JavaScript tady vůbec. 838 00:37:15,250 --> 00:37:18,170 To je jen, že HTML jde do register.php. 839 00:37:18,170 --> 00:37:21,020 Ale v jedné verzi, kde jsem začal dostat ty pop-up, 840 00:37:21,020 --> 00:37:23,010 pojďme se podívat, co se tu vlastně děje. 841 00:37:23,010 --> 00:37:26,757 Ve verzi jedna, co Budu see-- I 842 00:37:26,757 --> 00:37:29,340 Myslel jsem, že by mohl zastavit dost s dostatečným počtem slov, ale já běžel ven. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> Ve verzi one-- tam jedeme. 845 00:37:38,590 --> 00:37:43,180 Ve verzi jedna, všimnete following-- a není nejlepší provádění, 846 00:37:43,180 --> 00:37:44,420 ale je to moje první. 847 00:37:44,420 --> 00:37:47,680 Všimněte si, že pod forma, mám tag script. 848 00:37:47,680 --> 00:37:49,430 A tag script znamená, hej, prohlížeč, zde 849 00:37:49,430 --> 00:37:52,340 přijde nějaký kód, typicky, JavaScript. 850 00:37:52,340 --> 00:37:54,420 A teď si všimněte, co dělám. 851 00:37:54,420 --> 00:37:59,070 Na line-- mohu sotva číst to-- potrubím 32, říká, 852 00:37:59,070 --> 00:38:01,420 var form-- tak mi dej proměnná s názvem formuláře. 853 00:38:01,420 --> 00:38:05,049 A pak se document.getElementId "registrace". 854 00:38:05,049 --> 00:38:05,590 Co je to? 855 00:38:05,590 --> 00:38:07,290 No, dovolte mi, abych převíjení sem. 856 00:38:07,290 --> 00:38:11,510 A upozornění, ach, já jsem dal tvarový prvek libovolný ale popisný nápad 857 00:38:11,510 --> 00:38:13,050 registrace. 858 00:38:13,050 --> 00:38:16,820 Tak to mi dává proměnnou, která mi umožňuje uchopit tento uzel, 859 00:38:16,820 --> 00:38:19,580 že obdélník ve stromu s názvem formulář. 860 00:38:19,580 --> 00:38:24,460 form.onsubmit prostředky, hej prohlížeč, zaregistrovat posluchače událostí 861 00:38:24,460 --> 00:38:25,470 na tomto formuláři. 862 00:38:25,470 --> 00:38:28,890 Jinými slovy, když tato forma je předloženy, spusťte následující kód. 863 00:38:28,890 --> 00:38:30,810 To nepotřebuje jméno, protože Proč potřebujete znát název? 864 00:38:30,810 --> 00:38:32,880 Musíte jen vědět, co vykonat, ergo 865 00:38:32,880 --> 00:38:35,610 je to anonymní nebo lambda funkci. 866 00:38:35,610 --> 00:38:37,632 A to je funkce , všechny tyto řádky zde. 867 00:38:37,632 --> 00:38:40,840 A teď, abych byl upřímný, i když nemuselo kdy byla napsána JavaScript 868 00:38:40,840 --> 00:38:44,200 předtím, je to jen C a PHP logiku. 869 00:38:44,200 --> 00:38:51,720 Takže pokud form.email.value == "" - takže v případě, že e-mail pole prázdné, 870 00:38:51,720 --> 00:38:54,980 křičet na uživatele s "Musíš poskytnout svou e-mailovou adresu. " 871 00:38:54,980 --> 00:38:58,980 Else pokud form.password.value prázdné křičet na uživatele, 872 00:38:58,980 --> 00:39:00,400 "Musíte zadat své heslo." 873 00:39:00,400 --> 00:39:04,240 >> Zajímavější logicky, pokud není form.password.value 874 00:39:04,240 --> 00:39:08,630 rovný form.confirmation.value-- kde se potvrzení pocházejí? 875 00:39:08,630 --> 00:39:09,470 Dovolte mi, abych přetočit. 876 00:39:09,470 --> 00:39:12,870 No, volal jsem tento vstup Pole zde heslo. 877 00:39:12,870 --> 00:39:15,180 A tady Volal jsem tenhle potvrzení. 878 00:39:15,180 --> 00:39:17,850 Mohl jsem to nazval Heslo dvou nebo cokoliv jiného. 879 00:39:17,850 --> 00:39:20,560 Jenom logicky kontrolu že tyto dva jsou stejné. 880 00:39:20,560 --> 00:39:25,760 Else-- to dopadá to je pan Boole again-- zaškrtávací políčko logickou hodnotu,. 881 00:39:25,760 --> 00:39:29,810 Takže když řeknu, zvolání point-- pokud ne form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 křičet na uživatele, jakož. 883 00:39:31,820 --> 00:39:34,470 >> Takže tato syntaxe uvidíte, je velmi časté v JavaScriptu, 884 00:39:34,470 --> 00:39:35,970 kde máte tuto formátu s tečkami. 885 00:39:35,970 --> 00:39:37,460 Začnete s objektem zde. 886 00:39:37,460 --> 00:39:41,430 Se ponoříte hlouběji do A do vlastnost jako heslo. 887 00:39:41,430 --> 00:39:43,280 A pak se dostanete na jeho skutečné hodnotě. 888 00:39:43,280 --> 00:39:45,830 A opět, tady je vstup. 889 00:39:45,830 --> 00:39:47,310 Zde je název heslo. 890 00:39:47,310 --> 00:39:50,860 A jeho hodnota je bez ohledu na člověk skutečně zadat. 891 00:39:50,860 --> 00:39:53,610 >> Takže všechny tyto případy, jsem se vrátil false. 892 00:39:53,610 --> 00:39:55,800 Ale pokud ne, vraťte mi pravda. 893 00:39:55,800 --> 00:39:58,030 A tak teď vidíme přesvědčivé využití při 894 00:39:58,030 --> 00:40:00,620 byste se vrátit false zastavit to, co uživatel dělá 895 00:40:00,620 --> 00:40:03,200 a učinit ho, nebo jí vybrat znovu nebo zadejte znovu. 896 00:40:03,200 --> 00:40:05,870 V opačném případě vrátíme true. 897 00:40:05,870 --> 00:40:08,585 >> A dovolte mi představit jeden Druhá varianta z toho jen 898 00:40:08,585 --> 00:40:13,140 na osivo z toho určité pochopení. 899 00:40:13,140 --> 00:40:16,850 No, ve verzi 2 tohoto článku, form-2-- Udělám to s mávnutím ruky. 900 00:40:16,850 --> 00:40:19,920 To je pro ty, zvědavý, verze jQuery, 901 00:40:19,920 --> 00:40:23,330 ty z vás, kteří by mohli chtít fušovat v této konkrétní knihovny. 902 00:40:23,330 --> 00:40:25,145 Ale pojďme start-- a nějaké otázky? 903 00:40:25,145 --> 00:40:29,230 Dovolte mi, abych na chvíli pozastavit následujících důvodů to bylo rychlé a hodně. 904 00:40:29,230 --> 00:40:32,610 >> Ale pěkná věc je, že všechny kódu je skoro stejný. 905 00:40:32,610 --> 00:40:33,985 Nový materiál je to, co je dom? 906 00:40:33,985 --> 00:40:35,115 Jaké jsou tyto obdélníky? 907 00:40:35,115 --> 00:40:35,990 Jaké jsou tyto uzly? 908 00:40:35,990 --> 00:40:37,540 Co je to anonymní funkce? 909 00:40:37,540 --> 00:40:38,830 Co je to zpracování události? 910 00:40:38,830 --> 00:40:43,480 Ale naštěstí, většina z toho je jen kruh od, řekněme, týden nula. 911 00:40:43,480 --> 00:40:43,980 Dobře. 912 00:40:43,980 --> 00:40:46,070 Takže něco trochu zajímavější? 913 00:40:46,070 --> 00:40:49,340 No, v první řadě, nechte mě jít vpřed a otevřít Google Maps. 914 00:40:49,340 --> 00:40:53,360 A všimněte si, že pro moment, na zlomek vteřiny, 915 00:40:53,360 --> 00:40:55,930 Všimněte si, co se stane, když I klepněte na tlačítko dostatečně rychle. 916 00:40:55,930 --> 00:40:59,720 A toto spojení na Harvardu, je tak rychle, že nemáte opravdu nevšiml. 917 00:40:59,720 --> 00:41:04,469 Ale co tak nějak nějak vidět když jsem kliknout a táhnout opravdu rychle? 918 00:41:04,469 --> 00:41:07,010 Ti z vás, sledování on-line, pokud se zpomalí toto rychlosti 0,5x, 919 00:41:07,010 --> 00:41:09,640 můžete vidět lépe. 920 00:41:09,640 --> 00:41:13,550 >> Co se děje právě Než jsem kliknul a táhl? 921 00:41:13,550 --> 00:41:15,900 Zkusím here-- mě nech dělat něco jiného, ​​jako je 90210. 922 00:41:15,900 --> 00:41:17,550 Pojďme daleko. 923 00:41:17,550 --> 00:41:19,000 To byl opravdu rychlý, taky. 924 00:41:19,000 --> 00:41:22,460 Jak se o Disney World? 925 00:41:22,460 --> 00:41:23,190 Tam jedeme. 926 00:41:23,190 --> 00:41:23,690 DOBŘE. 927 00:41:23,690 --> 00:41:26,030 To, co jste viděl na zlomek sekundy? 928 00:41:26,030 --> 00:41:27,200 Stejně, jako, náměstí, ne? 929 00:41:27,200 --> 00:41:28,930 Zástupné znaky pro dlaždice? 930 00:41:28,930 --> 00:41:30,270 >> No, co se to tady děje? 931 00:41:30,270 --> 00:41:35,410 Mapy Google je pěkný příklad tato technologie, která se nazývá AJAX. 932 00:41:35,410 --> 00:41:38,510 A to je místo, kde budeme začít použijte JavaScript v obzvláště 933 00:41:38,510 --> 00:41:39,277 vyzývavý způsobem. 934 00:41:39,277 --> 00:41:41,610 Zpět v den, tam byl Tato webová stránka s názvem MapQuest. 935 00:41:41,610 --> 00:41:44,120 A já jsem měl přijato screenshot to z 1990, 936 00:41:44,120 --> 00:41:45,820 kde, pokud jste chtěli vyhledat tady na mapě, 937 00:41:45,820 --> 00:41:48,590 byste doslova klepněte na šipku up na vrcholu, který vám ukázal, 938 00:41:48,590 --> 00:41:49,870 jiný čtverec mapy. 939 00:41:49,870 --> 00:41:51,790 Pokud byste chtěli, aby pohyb doleva, ty klepnutí na šipku, která vám ukázal, 940 00:41:51,790 --> 00:41:53,210 jiný čtverec mapy. 941 00:41:53,210 --> 00:41:54,840 A některé webové stránky ještě udělat to dnes. 942 00:41:54,840 --> 00:41:57,820 Ale i MapQuest dostal lepší, stejně jako Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> Místo toho, co je lepší tyto dny se webové stránky, které používají AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- jinak známý jako Asynchronous JavaScript a XML, 945 00:42:04,510 --> 00:42:08,370 což je jen fantazie způsob, jak říkat technologie nebo technika, která 946 00:42:08,370 --> 00:42:14,200 umožňuje prohlížeč pomocí JavaScript provést další požadavky HTTP 947 00:42:14,200 --> 00:42:16,390 poté, co byla stránka načtena. 948 00:42:16,390 --> 00:42:17,479 Takže co to znamená? 949 00:42:17,479 --> 00:42:19,270 No, bylo by to být laskavý otravné v Gmailu 950 00:42:19,270 --> 00:42:21,103 pokud pokaždé, když chtěl zkontrolovat poštu, 951 00:42:21,103 --> 00:42:24,940 jste se doslova hit Control-R nebo Command-R nebo klepněte na tlačítko Načíst znovu 952 00:42:24,940 --> 00:42:26,580 a celý zatraceně stránka by se znovu načíst. 953 00:42:26,580 --> 00:42:26,800 Je to tak? 954 00:42:26,800 --> 00:42:28,460 To by blikat bílá asi za sekundu. 955 00:42:28,460 --> 00:42:30,043 Ty by viděl hloupý progress bar. 956 00:42:30,043 --> 00:42:33,170 A jen proto, aby zjistili, zda máte nový mailu, celé webové stránky a URL 957 00:42:33,170 --> 00:42:34,580 jste na bude muset znovu načíst. 958 00:42:34,580 --> 00:42:35,960 >> Ale to není to, co se děje v Gmailu. 959 00:42:35,960 --> 00:42:36,459 Je to tak? 960 00:42:36,459 --> 00:42:40,300 Když se dostanete nový e-mail do Gmail, co se děje na obrazovce? 961 00:42:40,300 --> 00:42:41,480 To jen ukáže, že jo? 962 00:42:41,480 --> 00:42:44,280 Je to jen zázrakem se zdá jako nový řádek v tabulce. 963 00:42:44,280 --> 00:42:47,030 Že ve skutečnosti zahrnuje slušné množství složitosti. 964 00:42:47,030 --> 00:42:51,892 Ve skutečnosti, pokud si myslíte, že o tohoto stromu, který, i když je jednoduchá zde 965 00:42:51,892 --> 00:42:54,100 Gmail-- a já bych se podívat v kódu být sure-- 966 00:42:54,100 --> 00:42:58,710 má pravděpodobně tabulku HTML nebo možná neuspořádané seznam, který je činí 967 00:42:58,710 --> 00:43:01,060 každý z vašich složek s doručenou poštou e-maily jako. 968 00:43:01,060 --> 00:43:04,050 >> A tak, když si představíme to tam je strom v paměti, když jste 969 00:43:04,050 --> 00:43:09,050 Gmail, který vypadá trochu druh takhle, když Google si uvědomuje, ooh, 970 00:43:09,050 --> 00:43:12,770 máte nový e-mail, to není chcete přestavět celý strom. 971 00:43:12,770 --> 00:43:16,430 Spíše to chce najít uzel v strom, který reprezentuje vaší schránky 972 00:43:16,430 --> 00:43:18,580 a stačí vložit nový uzel. 973 00:43:18,580 --> 00:43:24,640 >> Takže velmi podobný pset pět, kde na vás musel vložit uzly do hash tabulky, 974 00:43:24,640 --> 00:43:28,410 Stejně tak dělá Google, prostřednictvím JavaScript kód, který to napsal, 975 00:43:28,410 --> 00:43:31,890 Traverse tohoto stromu, zjistit, kde je, že e-mailové schránky části okna, 976 00:43:31,890 --> 00:43:33,440 a pak vložte nový řádek. 977 00:43:33,440 --> 00:43:37,460 A nový řádek právě znamená jeden nebo více nových uzlů ve stromu. 978 00:43:37,460 --> 00:43:41,340 >> A tak AJAX, je tato technika , která umožňuje přesně to. 979 00:43:41,340 --> 00:43:44,440 Poté, co jste navštívil URL, ale blázen dlouho to je, 980 00:43:44,440 --> 00:43:46,472 a jakmile je stránka nahrán, můžete stále 981 00:43:46,472 --> 00:43:48,430 odtáhnout více dat z internet-- ať už je to 982 00:43:48,430 --> 00:43:52,460 e-mail nebo dlaždice z map-- chytit ji v zákulisí 983 00:43:52,460 --> 00:43:55,290 a vložte ji do stránky tak, aby se lidská není opravdu 984 00:43:55,290 --> 00:43:56,910 muset počkat na to. 985 00:43:56,910 --> 00:43:58,980 >> Facebook Messenger funguje stejným způsobem. 986 00:43:58,980 --> 00:44:01,562 Libovolný počet dalších websites-- oh, vlastně, i tento. 987 00:44:01,562 --> 00:44:04,270 Myslím, že to je, upřímně řečeno, druh otravné mají v těchto dnech. 988 00:44:04,270 --> 00:44:07,500 Mám-li začít hledat cats-- to je něco hrozného uživatelské zkušenosti. 989 00:44:07,500 --> 00:44:08,990 Je to prostě začne vyhledávat pro mě. 990 00:44:08,990 --> 00:44:10,050 No, co se to dělá? 991 00:44:10,050 --> 00:44:12,920 Adresa URL se příliš nezměnil od té doby jsem začal psát. 992 00:44:12,920 --> 00:44:17,330 Ale to, co se děje v celé EU wire-- OK, hmm zajímavé. 993 00:44:17,330 --> 00:44:20,470 Co se to děje napříč drát tady prostě dostane divnější. 994 00:44:20,470 --> 00:44:21,090 >> DOBŘE. 995 00:44:21,090 --> 00:44:24,670 Tak nech mě jít dopředu a zkontrolujte element a přejděte na kartu Síť 996 00:44:24,670 --> 00:44:27,040 a snaží se, aby to technické a méně o kočkách. 997 00:44:27,040 --> 00:44:32,595 Jak jsem typ, a to doslova, kočky a-, co se děje 998 00:44:32,595 --> 00:44:37,710 per-- Nebudu kliknout to. 999 00:44:37,710 --> 00:44:38,210 Dobře. 1000 00:44:38,210 --> 00:44:44,280 Tak tady, co se děje každý když jsem zadejte znak, zřejmě? 1001 00:44:44,280 --> 00:44:45,000 Stejně jako, nízká úroveň? 1002 00:44:45,000 --> 00:44:47,860 Co se děje s každým z nich znaky Píšu na svou klávesnici? 1003 00:44:47,860 --> 00:44:48,359 To jo? 1004 00:44:48,359 --> 00:44:50,950 Diváků: [Neslyšitelné]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID Malan: Přesně tak. 1006 00:44:52,340 --> 00:44:55,600 Každá z těchto postav je jít do Google, jeden po druhém. 1007 00:44:55,600 --> 00:44:58,490 Jsou budování řetězec na svém serveru, který představuje 1008 00:44:58,490 --> 00:44:59,936 všechno, co jsem napsal v tak daleko. 1009 00:44:59,936 --> 00:45:01,810 A pokaždé, když jsem typ další charakter, oni 1010 00:45:01,810 --> 00:45:04,530 používat jejich tajný recept z A vyhledávací algoritmus a přijít na to, 1011 00:45:04,530 --> 00:45:07,370 tím má na mysli tuto stránku kočka nebo tato kočka stránku nebo podobně? 1012 00:45:07,370 --> 00:45:10,620 Tak v určitém smyslu, že poskytuje mě s lepší zkušenosti v tom, že nemám ani 1013 00:45:10,620 --> 00:45:11,860 je třeba dokončit svůj myšlenku. 1014 00:45:11,860 --> 00:45:14,440 A skutečně, je to užitečný věc, automatického dokončování obecně. 1015 00:45:14,440 --> 00:45:17,690 Pokud se jejich algoritmy jsou dost dobré a jestli mé vyhledávání jsou dostatečně zřejmé, 1016 00:45:17,690 --> 00:45:19,300 Nemám zadejte celé slovo. 1017 00:45:19,300 --> 00:45:22,110 Chystají se mi říct, co to je, že jsem vlastně hledal. 1018 00:45:22,110 --> 00:45:25,940 Takže to, co Google nazývá instant vyhledávání jen pomocí AJAX, 1019 00:45:25,940 --> 00:45:30,820 pomocí kódu, který jim umožňuje požadovat dodatečný obsah pomocí webového prohlížeče 1020 00:45:30,820 --> 00:45:34,026 v zákulisí pomocí tohoto nový jazyk, JavaScript. 1021 00:45:34,026 --> 00:45:35,400 Takže máme pár minut odešel. 1022 00:45:35,400 --> 00:45:37,710 A dovolte mi zavolat můj kamarád Colton up na jeviště, 1023 00:45:37,710 --> 00:45:40,090 protože se zdálo, zejména zábava naposledy 1024 00:45:40,090 --> 00:45:42,290 zavést technologii že někteří z vás 1025 00:45:42,290 --> 00:45:44,769 vyjádřily zájem pro finální projekty. 1026 00:45:44,769 --> 00:45:47,310 Mysleli jsme si, že by bylo zábavné, aby up dobrovolník, i když, dnes 1027 00:45:47,310 --> 00:45:50,074 ukázat vám doplněk k to, že umožňuje vás-- jo, 1028 00:45:50,074 --> 00:45:50,990 Viděl jsem tuto hru jako první. 1029 00:45:50,990 --> 00:45:52,900 Pojď nahoru. 1030 00:45:52,900 --> 00:45:53,560 Velmi dobře. 1031 00:45:53,560 --> 00:45:55,035 Dobrá práce. 1032 00:45:55,035 --> 00:45:57,410 Chystám se na tomto projektu Na obrazovce se za chvíli. 1033 00:45:57,410 --> 00:45:58,150 Jaké je tvé jméno pro každého? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: Jsem 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: Jo. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID Malan: Rád tě vidím. 1040 00:46:01,250 --> 00:46:01,600 Dobře. 1041 00:46:01,600 --> 00:46:02,590 Dovolte mi, abych si to připraven. 1042 00:46:02,590 --> 00:46:04,423 Pojď k střední s Colton zde. 1043 00:46:04,423 --> 00:46:07,050 Co Colton má ve svých rukou dnes je dálkové ovládání. 1044 00:46:07,050 --> 00:46:10,440 Takže spíše než jen tak stát v trojrozměrný svět rozhlížet 1045 00:46:10,440 --> 00:46:14,080 jako Colton udělal, teď Efa může vlastně chodit tím, že jde nahoru, 1046 00:46:14,080 --> 00:46:16,689 dolů, doleva a doprava se jako Nintendo nebo Xbox řadič. 1047 00:46:16,689 --> 00:46:18,230 EFA: Chystám se spadnout z pódia. 1048 00:46:18,230 --> 00:46:20,500 DAVID Malan: Budu stát zhruba sem. 1049 00:46:20,500 --> 00:46:21,991 Ale, že je zde riziko. 1050 00:46:21,991 --> 00:46:22,490 DOBŘE. 1051 00:46:22,490 --> 00:46:25,690 Takže jděte do toho a dát ti na. 1052 00:46:25,690 --> 00:46:29,315 Nech mě jít dopředu a přepněte na obrazovku zde. 1053 00:46:29,315 --> 00:46:30,670 Dovolte mi, abych ztlumit světla. 1054 00:46:30,670 --> 00:46:32,780 A Colton, dovolte mi, abych přijít stánek vedle vás. 1055 00:46:32,780 --> 00:46:35,520 >> Chcete vysvětlit zde s mikrofonem, co děláme? 1056 00:46:35,520 --> 00:46:36,380 Tady máš. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Jistě. 1058 00:46:37,280 --> 00:46:39,980 Takže teď jsme naložení do Oculus, 1059 00:46:39,980 --> 00:46:43,070 Myslím, že není v provozu operating-- systém, ale hlavní program, kde 1060 00:46:43,070 --> 00:46:46,630 máte přístup ke všem hry a Aplikace, které jsou ve vaší knihovně. 1061 00:46:46,630 --> 00:46:50,060 Takže teď, měl by říci, klepněte na touchpad začít. 1062 00:46:50,060 --> 00:46:53,430 Touchpad to bude na na pravé straně headsetu. 1063 00:46:53,430 --> 00:46:54,569 Tak jděte do toho a tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: Oh, člověče. 1065 00:46:55,110 --> 00:46:56,443 DAVID Malan: Jo, tam jdete. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Kvalita Efa je vidět je mnohem vyšší kvalita. 1068 00:47:02,460 --> 00:47:03,831 To je jen Wi-Fi zde. 1069 00:47:03,831 --> 00:47:05,580 COLTON: Takže to, co jste bude chtít dělat 1070 00:47:05,580 --> 00:47:08,350 je dívat se směrem nahoru pravé části obrazovky. 1071 00:47:08,350 --> 00:47:10,420 Jo, že hra na velmi horním rohu. 1072 00:47:10,420 --> 00:47:14,780 A pak, když jste výběru to, klepněte na touchpad znovu. 1073 00:47:14,780 --> 00:47:17,010 Myslím, že jeho Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 A pak je zde je-- sem, ať mi držet své brýle pro vás. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Tak jsem mu prostě dal regulátor. 1077 00:47:25,790 --> 00:47:28,886 Takže teď můžete ovládat hru. 1078 00:47:28,886 --> 00:47:30,510 Může se pohybovat a tak podobně. 1079 00:47:30,510 --> 00:47:31,968 Tak jděte do toho a podívejte se až na vrchol. 1080 00:47:31,968 --> 00:47:33,640 Měli byste vidět novou hru. 1081 00:47:33,640 --> 00:47:36,310 Tak jděte do toho a vy můžete udělat. 1082 00:47:36,310 --> 00:47:39,320 Nyní byste měli být schopni ovládat si s regulátorem, 1083 00:47:39,320 --> 00:47:43,860 také, jakmile Hra načte tady. 1084 00:47:43,860 --> 00:47:46,356 To může být trochu děsivé. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: Teď mi řekněte. 1086 00:47:47,300 --> 00:47:50,132 DOBŘE. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: Dobře. 1088 00:47:51,080 --> 00:47:52,650 Takže potvrzují, že se můžete pohybovat kolem. 1089 00:47:52,650 --> 00:47:52,750 DOBŘE. 1090 00:47:52,750 --> 00:47:53,583 Můžete se pohybovat kolem. 1091 00:47:53,583 --> 00:47:54,300 Perfektní. 1092 00:47:54,300 --> 00:47:56,470 Takže když se podíváte dolů, máte mapu. 1093 00:47:56,470 --> 00:47:58,170 Mapa vám ukazuje, kde se právě nacházíte. 1094 00:47:58,170 --> 00:47:59,720 Můžete se podívat po místnosti. 1095 00:47:59,720 --> 00:48:01,440 Můžete úplně otočit. 1096 00:48:01,440 --> 00:48:02,128 Jo, přesně tak. 1097 00:48:02,128 --> 00:48:02,627 Otočit se. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Tak se podívejte na levé straně. 1100 00:48:07,125 --> 00:48:09,875 Myslím, že je to něco, co můžete vyzvednout na sudu v místnosti. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: Jak mohu získat map z cesty? 1102 00:48:11,709 --> 00:48:12,375 COLTON: Najděte. 1103 00:48:12,375 --> 00:48:12,980 Stačí se podívat nahoru. 1104 00:48:12,980 --> 00:48:13,480 Dobře. 1105 00:48:13,480 --> 00:48:13,765 Tady máš. 1106 00:48:13,765 --> 00:48:15,181 Nyní jděte do toho a jen otočit. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Tak se podívejte dál na levé straně. 1109 00:48:24,620 --> 00:48:25,530 Pohybujte se doleva. 1110 00:48:25,530 --> 00:48:26,960 Dívej odešel. 1111 00:48:26,960 --> 00:48:27,541 Pokračuj. 1112 00:48:27,541 --> 00:48:28,040 To jo. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: Oh, že cesta. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Jo. 1115 00:48:29,261 --> 00:48:30,999 Procházka k ní s regulátorem. 1116 00:48:30,999 --> 00:48:31,540 Tady máš. 1117 00:48:31,540 --> 00:48:32,790 Teď to měl říct si ji vyzvednout. 1118 00:48:32,790 --> 00:48:33,360 Tady máš. 1119 00:48:33,360 --> 00:48:34,290 Vyzvednout. 1120 00:48:34,290 --> 00:48:35,550 Dobře. 1121 00:48:35,550 --> 00:48:38,286 Nyní, pojďme dostat z této místnosti. 1122 00:48:38,286 --> 00:48:42,209 Jděte do toho a chodit na ty dveře. 1123 00:48:42,209 --> 00:48:45,000 Takže se chystáte hold-- říká podržte tlačítko přinutit ji otevřít. 1124 00:48:45,000 --> 00:48:46,333 Tak jděte do toho a podržte tlačítko. 1125 00:48:46,333 --> 00:48:48,250 Jo, nutit to otevřít. 1126 00:48:48,250 --> 00:48:48,750 Dobře. 1127 00:48:48,750 --> 00:48:49,410 Dobrá práce. 1128 00:48:49,410 --> 00:48:50,826 Teď jdeme ven z místnosti. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Takže já jdu nechat zbytek nahoru pro vás a uvidíte, co zjistíte. 1131 00:49:01,366 --> 00:49:02,865 EFA: Já nejdu v temné místnosti. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 OH Počkej. 1134 00:49:07,815 --> 00:49:09,314 Teď musím jít dolů temnou chodbu? 1135 00:49:09,314 --> 00:49:10,785 OK, já vracím [neslyšitelných]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: Dobře. 1138 00:49:16,270 --> 00:49:17,560 Některé další položky k vyzvednutí. 1139 00:49:17,560 --> 00:49:19,370 Vypadá to, že některé mince. 1140 00:49:19,370 --> 00:49:22,242 To je zámek pick. 1141 00:49:22,242 --> 00:49:24,200 Takže pokud zjistíte, zamčené dveře, můžete ho použít. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Jsi vyděšený? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: Ještě ne. 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-- jo. 1148 00:49:35,497 --> 00:49:37,330 Jen předstírat, že jste ve skutečnosti tam stál. 1149 00:49:37,330 --> 00:49:39,580 A pokud se dáte around-- musíš se na to zvyknout. 1150 00:49:39,580 --> 00:49:40,752 Ale to má smysl. 1151 00:49:40,752 --> 00:49:43,960 DAVID Malan: A když Efa pokračuje hrát, protože jsme mohli udělat to celý den, 1152 00:49:43,960 --> 00:49:45,381 můžeme všichni tip-toe tady. 1153 00:49:45,381 --> 00:49:48,130 Ale máme další dva páry, pokud byste chtěli přijít a hrát. 1154 00:49:48,130 --> 00:49:49,980 Jinak budeme vidět příštím středu. 1155 00:49:49,980 --> 00:49:51,354 Děkuji našemu dobrovolníkovi dnes. 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 >> [MUSIC - "Seinfeld THEME"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 Reproduktor 1: No, já jsem uvedení nové PL namontovat. 1161 00:50:00,180 --> 00:50:01,800 Právě jsem změnil OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> SPEAKER 2: Takže to, co přesně děláte? 1163 00:50:03,980 --> 00:50:07,063 >> Reproduktor 1: No, každý z these-- tady, ukážu vám to jeden v sem. 1164 00:50:07,063 --> 00:50:08,690 Můžete to vidět právě zde. 1165 00:50:08,690 --> 00:50:09,510 >> SPEAKER 3: Myslím, že jsem dobře s nimi. 1166 00:50:09,510 --> 00:50:09,933 Chcete víc? 1167 00:50:09,933 --> 00:50:11,325 >> SPEAKER 4: Ne, já jsem dobrý. [Neslyšitelný]. 1168 00:50:11,325 --> 00:50:12,200 >> SPEAKER 3: No, [neslyšitelný]. 1169 00:50:12,200 --> 00:50:12,700 Mají některé z nich. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 Reproduktor 1: Různé barvy. 1172 00:50:22,290 --> 00:50:22,890 SPEAKER 2: OK. 1173 00:50:22,890 --> 00:50:26,690 Reproduktor 1: Takže nakonec to, co to dělá, je to upraví barvu of--