1 00:00:00,000 --> 00:00:02,862 >> [Glazbom] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID Malan: Ovo je CS50. 4 00:00:11,580 --> 00:00:12,880 To je početak tjedna devet. 5 00:00:12,880 --> 00:00:15,797 I to je ono što bi bio gospodina Boole 200. rođendan. 6 00:00:15,797 --> 00:00:17,630 Dakle, ovo je momci kome smo aludirali 7 00:00:17,630 --> 00:00:21,800 neko vrijeme o korištenju Boolean varijable pravi i lažni, 8 00:00:21,800 --> 00:00:22,910 1 i 0 i tako. 9 00:00:22,910 --> 00:00:25,270 A to je Googleov danak mu i danas. 10 00:00:25,270 --> 00:00:26,489 On bi se okrenuo 200. 11 00:00:26,489 --> 00:00:28,280 Dakle, ako želite pridružite nam se za CS50 ručak, 12 00:00:28,280 --> 00:00:30,279 pogledajte link na web stranici tečaja je. 13 00:00:30,279 --> 00:00:33,580 A takvih lica i prijateljima kao oni čekaju vas ovdje u Cambridgeu. 14 00:00:33,580 --> 00:00:35,360 Lica poput ovih očekuju vas u New Havenu. 15 00:00:35,360 --> 00:00:37,800 A, u stvari, Kena u New Haven molimo napravio 16 00:00:37,800 --> 00:00:41,594 ono što se zove animirani GIF od Eli ovdje na nedavni lunch-- GIF još 17 00:00:41,594 --> 00:00:44,260 drugi grafički format datoteke, s kojima ste familiar-- da 18 00:00:44,260 --> 00:00:46,300 izgleda malo nešto ovako. 19 00:00:46,300 --> 00:00:48,179 Tako je samo slijed of-- OK. 20 00:00:48,179 --> 00:00:49,720 Nitko ovdje u Cambridgeu se smije. 21 00:00:49,720 --> 00:00:51,720 No, u New Havenu, ovaj stvarno smiješno, zar ne? 22 00:00:51,720 --> 00:00:52,350 U redu. 23 00:00:52,350 --> 00:00:53,940 >> Dakle, nemojte da nam se pridružite tamo. 24 00:00:53,940 --> 00:00:55,900 Ovdje na Harvardu, Naime, u srijedu, 25 00:00:55,900 --> 00:00:59,480 ako ste student ili brucoš even-- ili čak junior-- razmišlja o izradi 26 00:00:59,480 --> 00:01:01,563 prekidač u računalu znanost, znamo da bit 27 00:01:01,563 --> 00:01:04,440 biti CS savjetovanje sajam ovo Srijeda, nedugo nakon klasa 28 00:01:04,440 --> 00:01:08,040 u 4:00 sati u računalu Znanost zgrada Maxwell Dworkin. 29 00:01:08,040 --> 00:01:11,890 Mi ćemo staviti na tečaj a Web stranica do sutra, kao dobro. 30 00:01:11,890 --> 00:01:14,430 Donuts, ja sam rekla, bit će poslužen. 31 00:01:14,430 --> 00:01:15,180 >> U redu. 32 00:01:15,180 --> 00:01:18,790 Tako smiješno story-- sam poking oko na internetu, 33 00:01:18,790 --> 00:01:23,575 i ja pronašao neke stare arhive moje bivše web stranice. 34 00:01:23,575 --> 00:01:25,950 I ispada out-- oko ovoga Vrijeme, čini se vrlo pravovremeno 35 00:01:25,950 --> 00:01:28,910 jer sam shvatila da je UC izbori Spremate se zupčanik gore opet. 36 00:01:28,910 --> 00:01:32,230 Tako sam trčao za UC, izgubili jadno. 37 00:01:32,230 --> 00:01:34,770 A možda je to bio dijelom zašto. 38 00:01:34,770 --> 00:01:37,600 Dakle, ovo je moja web stranica u to vrijeme. 39 00:01:37,600 --> 00:01:40,477 Iz nekog razloga, mislio sam da je dobra ideja, prije nego što govorim ljudima 40 00:01:40,477 --> 00:01:43,310 ono što mi je platforma bila i zašto trebao glasovati za mene, da imaju 41 00:01:43,310 --> 00:01:47,770 kliknite za ulazak kako bi saznali da Informacije koje retrospektivno je 42 00:01:47,770 --> 00:01:48,660 vrsta jezivo. 43 00:01:48,660 --> 00:01:50,910 Ja stvarno ne znam što je to. 44 00:01:50,910 --> 00:01:53,140 >> No, to sigurno nije pomoći mojoj kampanji. 45 00:01:53,140 --> 00:01:56,874 Također sam pronašao da je viši year-- sam imao ovaj Muppet kalendar. 46 00:01:56,874 --> 00:01:58,540 Muppets su vrsta u modi tada. 47 00:01:58,540 --> 00:01:59,456 Ili možda oni nisu bili. 48 00:01:59,456 --> 00:02:01,790 Imao sam Muppet kalendar tada. 49 00:02:01,790 --> 00:02:04,860 I ja sam mislio da bi bilo cool ime moj računalo na Harvardu mreži 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 U to vrijeme, svi smo imali jedinstveno Prepoznatljiva domaćin imena. 52 00:02:10,370 --> 00:02:13,150 A možete izabrati neku taštinu ime, umjesto vlastitog imena. 53 00:02:13,150 --> 00:02:15,580 I ja sam otišao s čovjek žaba iz nekog razloga. 54 00:02:15,580 --> 00:02:19,040 >> A onda sam started-- proveo sam puno vremena da kliknete kroz ove linkove 55 00:02:19,040 --> 00:02:20,280 jutros. 56 00:02:20,280 --> 00:02:24,690 I to je bio moj o stranici koji se sada nekako čini sladak. 57 00:02:24,690 --> 00:02:28,210 Ali to također svjedoči samo koliko tehnologija je došao. 58 00:02:28,210 --> 00:02:30,310 Mislim, natrag u dan, 486 je bilo nešto. 59 00:02:30,310 --> 00:02:34,090 Ovih dana, to je super, super, super spori i dobro manje 60 00:02:34,090 --> 00:02:36,216 nego što bi mogli imati u svom vlastite džepove ovih dana. 61 00:02:36,216 --> 00:02:38,465 Postoji više tamo je još više neugodno. 62 00:02:38,465 --> 00:02:39,770 Dakle, ja ću ostati na tome. 63 00:02:39,770 --> 00:02:42,640 Ali to je bio moj prvi nalet u web-- Oh, ne. 64 00:02:42,640 --> 00:02:43,180 To nije bilo. 65 00:02:43,180 --> 00:02:47,000 Moj prvi pravi nalet u web programiranja je ovaj site, koji sam zaboravio. 66 00:02:47,000 --> 00:02:50,620 U nekom trenutku, saznao sam kako ponavljajuće pozadinske slike. 67 00:02:50,620 --> 00:02:55,260 I tako sam pronašao ovo pločica snazi, kao što su hokej igrač, nogomet, golf i 68 00:02:55,260 --> 00:02:58,040 lopta, ili što god da je za web stranice Frosh IM. 69 00:02:58,040 --> 00:03:01,390 I to je zapravo, istinski prvi web-based projekt sam uzeo on-- 70 00:03:01,390 --> 00:03:03,880 Mislim da student godine, mlađi year-- 71 00:03:03,880 --> 00:03:07,622 nakon uzimanja CS50 i CS51, jedan od uobičajenih follow-na nastavu. 72 00:03:07,622 --> 00:03:09,330 Primijetio sam u potrazi kroz arhivu 73 00:03:09,330 --> 00:03:12,150 da je jedan od mojih nasljednika i prijatelji, Lee, vrsta promijenila 74 00:03:12,150 --> 00:03:13,480 autorsko pravo za sebe. 75 00:03:13,480 --> 00:03:17,520 Ali ovo je doista nešto što Trebam posjedovati pogođenost na. 76 00:03:17,520 --> 00:03:19,370 No, u to vrijeme, ovaj Bio je to prvi web stranice, 77 00:03:19,370 --> 00:03:22,220 kao što sam rekao prije nekoliko tjedana, kojim bi brucoš 78 00:03:22,220 --> 00:03:24,350 Registrirajte se za intramuralnih sportova ovdje. 79 00:03:24,350 --> 00:03:27,950 I tako ispada da pozadinske slike 80 00:03:27,950 --> 00:03:29,530 kao da nisu tako dobra ideja. 81 00:03:29,530 --> 00:03:31,840 No, web je novo, i bili smo svi eksperimentiranje. 82 00:03:31,840 --> 00:03:34,310 I to je ono što sam očito nije u to vrijeme. 83 00:03:34,310 --> 00:03:34,810 U redu. 84 00:03:34,810 --> 00:03:38,020 Dakle, bez dodatnih teškoća, možemo prebaciti zupčanici danas ti dati, zapravo, 85 00:03:38,020 --> 00:03:42,250 konačni komad koji možete naći osobito korisno za završne projekte 86 00:03:42,250 --> 00:03:44,780 ali i da će početi napraviti cijeli world wide web 87 00:03:44,780 --> 00:03:46,680 osjećam malo više razumljivo. 88 00:03:46,680 --> 00:03:49,460 Doista, idemo uvesti još jedan programski jezik 89 00:03:49,460 --> 00:03:52,474 zove JavaScript je to slično i drugačiji na različite načine 90 00:03:52,474 --> 00:03:54,140 od jezika što smo pogledali do sada. 91 00:03:54,140 --> 00:03:55,807 >> Dakle C, podsjetimo, ovo sastavio jezik. 92 00:03:55,807 --> 00:03:57,473 Moraš pokrenuti kroz prevodilac. 93 00:03:57,473 --> 00:03:59,810 Možete dobiti izvorni kod za prigovor broj, ili nula i one. 94 00:03:59,810 --> 00:04:03,000 A oni su nula i one koje procesora, središnja procesorska jedinica, 95 00:04:03,000 --> 00:04:04,360 zapravo razumijem. 96 00:04:04,360 --> 00:04:06,610 PHP, s druge strane, nije sastavio jezika. 97 00:04:06,610 --> 00:04:08,772 To je što? 98 00:04:08,772 --> 00:04:09,980 To je tumačiti jezik. 99 00:04:09,980 --> 00:04:11,750 Dakle, postoji neki program zove tumača koji 100 00:04:11,750 --> 00:04:13,708 mora pročitati it-- vrh se dno, lijeva na redu- 101 00:04:13,708 --> 00:04:16,519 i shvatiti što sve Vaš sintakse radi i znači, 102 00:04:16,519 --> 00:04:20,200 da li je petlja ili uvjet ili bilo koji drugi broj programiranje 103 00:04:20,200 --> 00:04:20,740 konstrukti. 104 00:04:20,740 --> 00:04:22,210 Tako da je tumači jezikom. 105 00:04:22,210 --> 00:04:23,910 >> Onda smo uveli HTML. 106 00:04:23,910 --> 00:04:26,440 I HTML nije ni programski jezik. 107 00:04:26,440 --> 00:04:28,110 Mi bi ga ono zovu? 108 00:04:28,110 --> 00:04:31,650 Označni jezik, što je samo vrsta fancy način govoreći to 109 00:04:31,650 --> 00:04:35,820 nema programske konstrukte kao što su vidjeli smo još u dan ispočetka. 110 00:04:35,820 --> 00:04:36,720 Nema petlje. 111 00:04:36,720 --> 00:04:37,920 Nema uvjeta. 112 00:04:37,920 --> 00:04:40,820 To je stvarno jezik o obilježavanju svoje podatke 113 00:04:40,820 --> 00:04:43,620 i oblikovanje ili to strukturiranje na neki način. 114 00:04:43,620 --> 00:04:46,147 >> CSS, u međuvremenu, na sličan način Ne programski jezik. 115 00:04:46,147 --> 00:04:47,730 To je čak i više estetski orijentirani. 116 00:04:47,730 --> 00:04:50,470 I to vam omogućuje sortiranje fino podešavanje stvari kao što su veličina fonta i boje 117 00:04:50,470 --> 00:04:51,850 i plasman i sve to. 118 00:04:51,850 --> 00:04:52,370 Tada smo imali 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Dakle SQL je doista programiranje jezik u nekom smislu, 121 00:04:56,010 --> 00:04:59,330 iako po mjeri posebno za baze podataka. 122 00:04:59,330 --> 00:05:03,347 No, iako smo vas samo upoznati odabir i umetanje i brisanje i ažuriranje 123 00:05:03,347 --> 00:05:05,430 i par drugih, Ispada možete zapravo 124 00:05:05,430 --> 00:05:07,380 pisanje funkcije ili postupci, kao što su 125 00:05:07,380 --> 00:05:11,270 zove, u SQL kako izgledaju i djeluju prilično poput PHP i C funkcijama. 126 00:05:11,270 --> 00:05:12,390 Dakle, znamo da oni postoje. 127 00:05:12,390 --> 00:05:15,348 Ali mi ni ne zamaram se s njima kao što smo upravo ogrepsti površinu ovdje. 128 00:05:15,348 --> 00:05:18,600 A onda JavaScript, posljednji naši jezici službeno uveden. 129 00:05:18,600 --> 00:05:21,029 Dakle JavaScript je, također, tumači jezikom. 130 00:05:21,029 --> 00:05:23,070 A oni poznaju, ne Želite li se razlikovao 131 00:05:23,070 --> 00:05:26,960 s nekim karakteristika iz oba C i PHP? 132 00:05:26,960 --> 00:05:28,300 Ono što ga čini različitim? 133 00:05:28,300 --> 00:05:29,650 >> PUBLIKA: To nije sastavio. 134 00:05:29,650 --> 00:05:29,930 >> DAVID Malan: Reci opet? 135 00:05:29,930 --> 00:05:31,200 >> PUBLIKA: To nije sastavio. 136 00:05:31,200 --> 00:05:31,930 >> DAVID Malan: To nije sastavio. 137 00:05:31,930 --> 00:05:33,450 Tako je, također, interpretira. 138 00:05:33,450 --> 00:05:34,760 Dakle, to nije sastavio. 139 00:05:34,760 --> 00:05:37,210 No, da je to nešto poput PHP čini. 140 00:05:37,210 --> 00:05:39,545 Ali to je još uvijek razlikuje od PHP na neki upečatljiv način, 141 00:05:39,545 --> 00:05:40,920 barem na način na koji ćemo ga koristiti. 142 00:05:40,920 --> 00:05:41,205 Da? 143 00:05:41,205 --> 00:05:41,940 >> PUBLIKA: Ona radi na strani klijenta. 144 00:05:41,940 --> 00:05:44,000 >> DAVID Malan: Ona radi na strani klijenta, obično. 145 00:05:44,000 --> 00:05:47,190 To je doista razlikovna karakteristična je za nas u ovom trenutku. 146 00:05:47,190 --> 00:05:51,170 C je na strani poslužitelja u smislu da smo učinili sve što je u CS50 IDE. 147 00:05:51,170 --> 00:05:53,630 PHP do sada je strani poslužitelja mjeri 148 00:05:53,630 --> 00:05:56,550 kao što je, također, dobiva interpreted-- Ne sastavio, ali interpreted-- 149 00:05:56,550 --> 00:06:00,690 unutar CS50 IDE, što naravno je samo poslužitelj ili poslužitelje u oblaku. 150 00:06:00,690 --> 00:06:03,070 >> Ali JavaScript, čak iako ti ideš 151 00:06:03,070 --> 00:06:07,000 za početak pisanja za, recimo, pset osam, a možda i konačni projects-- ste 152 00:06:07,000 --> 00:06:09,620 će to pravo u CS50 IDE i spremite ga 153 00:06:09,620 --> 00:06:14,760 u datotekama unutar CS50 IDE, CS50 IDE i, s druge strane, oblak poslužitelje 154 00:06:14,760 --> 00:06:19,160 na kojem to domaćin, ne ide tumačiti ili izvršavati svoj kod. 155 00:06:19,160 --> 00:06:23,880 Umjesto toga, to će biti poslan u nepromijenjenom obliku do pregledniku. 156 00:06:23,880 --> 00:06:26,990 I onda će biti IE ili Chrome ili Firefox ili Safari 157 00:06:26,990 --> 00:06:30,697 ili što god da je zapravo tumači je, od vrha do dna, s lijeva na desno. 158 00:06:30,697 --> 00:06:32,780 Dakle, ključni razlikovanja karakteristična za danas 159 00:06:32,780 --> 00:06:36,110 je da je JavaScript strani klijenta i PHP, na primjer, 160 00:06:36,110 --> 00:06:37,690 je na strani poslužitelja. 161 00:06:37,690 --> 00:06:40,920 Sada, to ima zanimljive posljedice Jer, kao što je, intelektualno vlasništvo 162 00:06:40,920 --> 00:06:42,660 a koji zapravo mogu vidjeti svoj kod. 163 00:06:42,660 --> 00:06:44,860 I doista, možete ići na webu i vidjeti najviše 164 00:06:44,860 --> 00:06:47,530 bilo kod koji netko ima pisane u JavaScriptu. 165 00:06:47,530 --> 00:06:50,230 Ponekad je čitati, Ponekad je obfuscated. 166 00:06:50,230 --> 00:06:52,550 No, više o tome u dogledno vrijeme. 167 00:06:52,550 --> 00:06:57,530 >> Dakle JavaScript, dosta lijepo je super slično, sintaktički, na C 168 00:06:57,530 --> 00:06:59,364 I baš kao PHP, nema glavna funkcija. 169 00:06:59,364 --> 00:07:02,113 Ako želite početi pisati JavaScript kôd, kao što ćete vidjeti danas 170 00:07:02,113 --> 00:07:03,270 vi samo početi pisati. 171 00:07:03,270 --> 00:07:06,910 Ali, to je, vidjet ćete, osobito korisno u kontekstu web preglednicima. 172 00:07:06,910 --> 00:07:09,820 Međutim, moj mali disclaimer-- obično earlier-- 173 00:07:09,820 --> 00:07:13,790 je reći da možete sve Danas uporabu JavaScript strani poslužitelja 174 00:07:13,790 --> 00:07:17,655 pomoću fancy okvir pod nazivom Node.js da su neki od CS50 vlastitih aplikacija 175 00:07:17,655 --> 00:07:18,280 su napisane u. 176 00:07:18,280 --> 00:07:20,640 Provjerite 50 zapravo koristi Node.js. 177 00:07:20,640 --> 00:07:24,140 Ali ćemo se usredotočiti na JavaScript strani klijenta ovdje na van. 178 00:07:24,140 --> 00:07:26,750 >> Dakle, ovdje je set uvjeta u PHP. 179 00:07:26,750 --> 00:07:29,350 Žao nam je, in-- zapravo, da izjava, previše točna. 180 00:07:29,350 --> 00:07:32,200 Ovdje je također skup uvjeti u JavaScriptu. 181 00:07:32,200 --> 00:07:35,560 Sintaktički, da je identičan C i PHP. 182 00:07:35,560 --> 00:07:39,040 G. Boole-a izrazi, Slično tome, sintaktički 183 00:07:39,040 --> 00:07:41,190 identična oba C i PHP. 184 00:07:41,190 --> 00:07:44,100 Također imamo sklopke u JavaScript koji izgleda identično. 185 00:07:44,100 --> 00:07:46,350 Imamo za petlje koje su strukturirane identično, 186 00:07:46,350 --> 00:07:48,140 dok petlje, učiniti dok petlje. 187 00:07:48,140 --> 00:07:49,980 >> Ovaj je malo drugačiji. 188 00:07:49,980 --> 00:07:53,120 PHP je imala za svaki konstrukt da bi moglo biti koristi 189 00:07:53,120 --> 00:07:55,320 ili će koristiti u pset sedam, možda. 190 00:07:55,320 --> 00:07:59,460 JavaScript je ovu posebnu verziju Doista, gdje ti je doslovno nešto reći 191 00:07:59,460 --> 00:08:03,864 kao i za varijablu ključ u objekt, koji je vrlo sažet način govoreći, 192 00:08:03,864 --> 00:08:06,780 ako sam dobio object-- i mi ćemo razgovarati o tim opet u moment-- 193 00:08:06,780 --> 00:08:10,370 i ja želim ponoviti preko svega od ključnih parova vrijednosti unutar, 194 00:08:10,370 --> 00:08:13,620 Ja ne moram shvatiti kako numerički indeks ih nula, jedan, 195 00:08:13,620 --> 00:08:14,580 dva, tri. 196 00:08:14,580 --> 00:08:15,900 >> Ja doslovno može reći. 197 00:08:15,900 --> 00:08:20,740 I na svakoj iteraciji, JavaScript za mene će ažurirati varijablu ključ 198 00:08:20,740 --> 00:08:24,810 biti prvi ključ, onda sljedeći ključ, onda sljedeći ključ, onda sljedeći ključ, 199 00:08:24,810 --> 00:08:25,510 i tako dalje. 200 00:08:25,510 --> 00:08:30,000 A ja mogu dobiti na vrijednost obradom objekt u JavaScript, kao što ćemo vidjeti, 201 00:08:30,000 --> 00:08:32,584 kao da to je asocijativni niz u PHP. 202 00:08:32,584 --> 00:08:35,750 Doista, ako je konačno omotan svoj smeta oko ono što je asocijativni niz 203 00:08:35,750 --> 00:08:40,140 u PHP-u, možete misliti o tome za sada kao identičan objekt u JavaScript. 204 00:08:40,140 --> 00:08:42,030 Ali to je malo preveliko pojednostavljivanje. 205 00:08:42,030 --> 00:08:47,230 >> Nizovi izgleda, dosta lijepo, identični u PHP osim jednog lika. 206 00:08:47,230 --> 00:08:51,425 Postoji jedna stvar nedostaje ovdje kako smo vidjeli prošli tjedan s PHP. 207 00:08:51,425 --> 00:08:52,050 Što je izostavljeno? 208 00:08:52,050 --> 00:08:53,310 Da? 209 00:08:53,310 --> 00:08:54,090 Ne dolar znak. 210 00:08:54,090 --> 00:08:56,240 Tako smo natrag do normalnije svijet u kojem 211 00:08:56,240 --> 00:08:58,050 varijable nemaju dolar znakove. 212 00:08:58,050 --> 00:09:00,810 Ali vi se ispred njih s var, tipično. 213 00:09:00,810 --> 00:09:02,230 A var znači varijablu. 214 00:09:02,230 --> 00:09:06,440 I baš kao PHP je labavo typed-- gdje postoje vrste, 215 00:09:06,440 --> 00:09:10,120 postoje brojevi i nizovi i pluta i tako forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript sličan je vrste. 217 00:09:11,570 --> 00:09:15,470 Ali to labavo se upisali u tome smo među programeri ne morate ih navesti. 218 00:09:15,470 --> 00:09:18,980 Samo moramo biti svjesni da postoje različite vrste. 219 00:09:18,980 --> 00:09:21,690 >> Varijable, meanwhile-- evo kako bismo mogli proglasiti "Hello, World" 220 00:09:21,690 --> 00:09:22,230 kao string. 221 00:09:22,230 --> 00:09:24,890 Obavijest da je identičan PHP, ali nitko dolar znak. 222 00:09:24,890 --> 00:09:27,120 A to je nešto što ćemo početi dobivati ​​više danas, 223 00:09:27,120 --> 00:09:30,990 gdje imate objekt s ključeva i vrijednosti. 224 00:09:30,990 --> 00:09:32,990 A ako želite probati zaključiti iz prošle week-- 225 00:09:32,990 --> 00:09:34,730 sintaksa je malo drugačija. 226 00:09:34,730 --> 00:09:39,740 No, malo zdravog razuma check-- koliko Tipke se taj objekt izgleda da? 227 00:09:39,740 --> 00:09:40,850 Tako ja vidim četiri. 228 00:09:40,850 --> 00:09:43,560 Vidim dva. 229 00:09:43,560 --> 00:09:44,680 >> Dakle, to je zapravo dva. 230 00:09:44,680 --> 00:09:47,260 Dakle, ovo je skup dva para ključ-vrijednost. 231 00:09:47,260 --> 00:09:49,820 Ključ je simbol čija je vrijednost FB. 232 00:09:49,820 --> 00:09:52,620 Ključ je cijena čija je vrijednost 101.53. 233 00:09:52,620 --> 00:09:54,230 Dakle, to su dva para ključ-vrijednost. 234 00:09:54,230 --> 00:09:58,120 I zapamtite, PHP-- a to je opet samo vrsta sintaktičke razlike. 235 00:09:58,120 --> 00:10:00,170 To nije sve što je intelektualno zanimljiv. 236 00:10:00,170 --> 00:10:04,610 PHP možda napisao ovo isto stvar kao follows-- citat, jednako. 237 00:10:04,610 --> 00:10:06,730 I ja to promijeniti do uglate zagrade. 238 00:10:06,730 --> 00:10:11,240 A onda sam to promijeniti kotirana riječ, "cijena". 239 00:10:11,240 --> 00:10:12,500 A onda sam ne koristite debelo crijevo. 240 00:10:12,500 --> 00:10:15,060 Što sam koristiti prošli tjedan? 241 00:10:15,060 --> 00:10:18,290 Da, znak jednakosti arrow funky zapis. 242 00:10:18,290 --> 00:10:21,470 >> A onda sam istu stvar ovdje. 243 00:10:21,470 --> 00:10:23,580 Ista stvar ovdje. 244 00:10:23,580 --> 00:10:24,240 I to je sve. 245 00:10:24,240 --> 00:10:27,752 Dakle, to je u redu ako nema stvarno potopljen u memoriju samo 246 00:10:27,752 --> 00:10:29,960 Još jer to je stvarno intelektualno nezanimljiv. 247 00:10:29,960 --> 00:10:31,660 To je samo sintaktičke razlike. 248 00:10:31,660 --> 00:10:33,230 No ideje su potpuno isti. 249 00:10:33,230 --> 00:10:35,910 Unutar ove varijable citat JavaScript 250 00:10:35,910 --> 00:10:39,020 je skup ključ-vrijednost parova, od kojih je simbol, od kojih 251 00:10:39,020 --> 00:10:39,690 je cijena. 252 00:10:39,690 --> 00:10:42,340 A ja mogu dobiti na tim vrijednostima uz sljedeću sintaksu. 253 00:10:42,340 --> 00:10:46,280 Baš kao u PHP-u, što sam mogao nešto volimo-članovima pustiti 254 00:10:46,280 --> 00:10:48,590 ja bi ovaj okvir malo veći. 255 00:10:48,590 --> 00:10:52,750 Baš kao u PHP-u, što sam mogao bi this-- Oh, prokletstvo. 256 00:10:52,750 --> 00:10:53,250 Ajde. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Baš kao u PHP-- redu, mi ćemo samo koristiti predstavljača bilješke. 259 00:11:00,800 --> 00:11:06,010 Baš kao u PHP-u, ja mogu napraviti $ $ citat citat ["simbol"], 260 00:11:06,010 --> 00:11:08,860 i to će me doći vrijednost "simbola." 261 00:11:08,860 --> 00:11:12,800 U JavaScript, to će biti identična, gdje ja mogu samo to učiniti. 262 00:11:12,800 --> 00:11:14,850 Jedina stvar koja je nestalo je dolar znak. 263 00:11:14,850 --> 00:11:17,470 >> Dakle dovoljno lijepo, onda postoji nije sve toliko nova sintakse. 264 00:11:17,470 --> 00:11:21,025 Dakle, ono što je danas ćemo se usredotočiti na, zapravo, je neke od ideja i programa. 265 00:11:21,025 --> 00:11:22,900 I prvi takav Zahtjev da biste mogli 266 00:11:22,900 --> 00:11:26,090 Vidio ako zaronio pset sedam već je to sintakse. 267 00:11:26,090 --> 00:11:28,980 Tako je u pset sedam, ako ste vidjeti ili ne vidjeti još, 268 00:11:28,980 --> 00:11:33,570 znam da postoji datoteka koja dajemo što se zove config.json-- JavaScript 269 00:11:33,570 --> 00:11:34,661 Objekt zapis. 270 00:11:34,661 --> 00:11:35,160 Zašto? 271 00:11:35,160 --> 00:11:39,540 Željeli smo biti u mogućnosti da Vam ponudimo predložak s nekim ključ-vrijednost parova. 272 00:11:39,540 --> 00:11:44,290 Željeli smo biti u mogućnosti da vam dati popis domaćina, naziv poslužitelja. 273 00:11:44,290 --> 00:11:46,710 Željeli smo da vam dati rezervirano mjesto za svoje korisničko ime 274 00:11:46,710 --> 00:11:48,210 i rezervirano mjesto za Vašu lozinku. 275 00:11:48,210 --> 00:11:49,410 Ako niste vidim to još, ne brinite. 276 00:11:49,410 --> 00:11:51,340 Više o tome u pset sedam [? spec. ?] I onda, 277 00:11:51,340 --> 00:11:53,173 Očito, mi vam želimo ispuniti zadatke 278 00:11:53,173 --> 00:11:55,310 jer kada se prijavite na CS50 IDE, svatko od vas 279 00:11:55,310 --> 00:11:57,630 imati vlastiti korisničko ime i lozinku. 280 00:11:57,630 --> 00:12:00,910 >> Tako bismo mogli smo koristiti pola tuceta ili više različitih formata datoteka. 281 00:12:00,910 --> 00:12:02,940 Mogli smo koristili .txt datoteku. 282 00:12:02,940 --> 00:12:04,570 Mogli bismo koristiti CSV datoteku. 283 00:12:04,570 --> 00:12:06,745 Mogli smo upotrebljava INI datoteka, XML datoteka, 284 00:12:06,745 --> 00:12:09,370 cijela hrpa više akronimi da možda nećete imati ikada čuo. 285 00:12:09,370 --> 00:12:11,244 To je vrsta proizvoljna na kraju dana. 286 00:12:11,244 --> 00:12:16,030 Ali super popularan ovih dana je tekst Format naziva JSON-- JavaScript objekta 287 00:12:16,030 --> 00:12:18,460 Notation-- koji izgleda ovako. 288 00:12:18,460 --> 00:12:20,890 To je malo zagonetan, ali primijetiti obrasce. 289 00:12:20,890 --> 00:12:24,180 Možete početi s otvorenim kovrčava Brace, a završava s istim. 290 00:12:24,180 --> 00:12:26,550 Unutar to je nešto. 291 00:12:26,550 --> 00:12:27,920 To je ključ-vrijednost par. 292 00:12:27,920 --> 00:12:30,580 Dakle, to je objekt koji sam gledajući na ekranu ovdje 293 00:12:30,580 --> 00:12:33,690 da ima jednu tipku, koja ima jednu vrijednost. 294 00:12:33,690 --> 00:12:37,610 I samo zaključi na temelju prethodni uzorak, što je ključ ovdje? 295 00:12:37,610 --> 00:12:39,790 Baza podataka je stvar lijeva kolona. 296 00:12:39,790 --> 00:12:43,500 >> Sada, vrijednost se dogoditi da se a više linija ovaj put. 297 00:12:43,500 --> 00:12:46,760 No, vrijednost počinje s kovrčava brace i završava s kovrčavom braće. 298 00:12:46,760 --> 00:12:49,480 Pa što bi ti predložiti je Vrsta vrijednosti baze podataka? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 Rječnik ili, jednostavno više jezgrovito, objekt. 301 00:12:54,670 --> 00:12:55,170 Pravo? 302 00:12:55,170 --> 00:13:00,010 To je vrsta strukture podataka koje možete koristiti i druge strukture unutar sebe. 303 00:13:00,010 --> 00:13:02,750 Dakle, ako sve ovo smo Pozivanje object-- i objekt 304 00:13:02,750 --> 00:13:07,101 je samo hrpa ključne vrijednosti pairs-- Vrijednost same baze podataka je objekt. 305 00:13:07,101 --> 00:13:10,350 Vrijednost baze podataka ima cijela hrpa ključnih parova vrijednosti, od kojih je prvi 306 00:13:10,350 --> 00:13:13,130 je domaćin, a zatim ime, a zatim korisničko ime, a zatim lozinka 307 00:13:13,130 --> 00:13:17,550 svaki od čije vrijednosti, u međuvremenu, to je samo dosadno niz u dvostrukim navodnicima. 308 00:13:17,550 --> 00:13:19,770 >> Dakle, čak i ako to nije super jasna samo još, 309 00:13:19,770 --> 00:13:22,740 znam da je to samo standard, prilično dosadan način 310 00:13:22,740 --> 00:13:25,190 pohranjivanja podataka u standardnom formatu. 311 00:13:25,190 --> 00:13:27,700 No uobičajene pogreške koje se Možda bi, čak iu pset sedam, 312 00:13:27,700 --> 00:13:32,120 su malo glupe stvari, kao i ako slučajno izostaviti zarez tamo. 313 00:13:32,120 --> 00:13:34,900 To će rezultirati u datoteci Ne nužno biti čitljivi. 314 00:13:34,900 --> 00:13:38,191 Ako ste slučajno izostaviti stvari kao što je citati, to neće biti čitljiv. 315 00:13:38,191 --> 00:13:41,654 Dakle, to je prilično nitpicky format datoteke, ali to je onaj koji je super čest. 316 00:13:41,654 --> 00:13:44,820 I mi se dogoditi da ga koristiti, iako ne koristite bilo koji JavaScript inače, 317 00:13:44,820 --> 00:13:46,330 u pset sedam. 318 00:13:46,330 --> 00:13:46,860 >> U redu. 319 00:13:46,860 --> 00:13:48,110 Dakle, ne zaboravite ovu sliku. 320 00:13:48,110 --> 00:13:51,657 Razgovarali smo o, u HTML, koji šifra može izgledati ovako. 321 00:13:51,657 --> 00:13:54,740 To je Hypertext Markup Language [Nečujan] za samo "Halo, svijeta." 322 00:13:54,740 --> 00:13:57,570 Ali onda smo predložila dok leđa da ako to pomaže, 323 00:13:57,570 --> 00:14:00,210 možda želite početi razmišljati o tome je već kao stablo. 324 00:14:00,210 --> 00:14:03,730 U stvari, uvlaka koje koristiti samo zbog čitljivosti u 325 00:14:03,730 --> 00:14:05,610 ili zbog o stilu u lijevi može vrsta 326 00:14:05,610 --> 00:14:10,040 biti preveden na ovom stablu, gdje vas imaju neke posebne korijen čvor da ćemo 327 00:14:10,040 --> 00:14:16,860 generički zove dokument, ispod koje je korijen HTML element ili oznaka, HTML, 328 00:14:16,860 --> 00:14:19,980 koji tada ima dva Djeca, glave i tijela. 329 00:14:19,980 --> 00:14:21,750 >> A onda opet, glava ima naslov. 330 00:14:21,750 --> 00:14:23,440 A naslov ima tekst vrijednost. 331 00:14:23,440 --> 00:14:26,130 I tijelo slično je tekst vrijednost. 332 00:14:26,130 --> 00:14:29,220 Dakle, ako ste zadovoljni izreka da da, mogli uzeti ovaj HTML 333 00:14:29,220 --> 00:14:32,080 i nacrtati sliku kao ovo je desna strana 334 00:14:32,080 --> 00:14:35,910 je lijep mentalni model, jer se sada da imamo JavaScript, programski 335 00:14:35,910 --> 00:14:39,960 jezik koji preglednici mogu izvršiti i tumačiti za vas 336 00:14:39,960 --> 00:14:42,690 ispada da ono što mi smo o učiniti u kodu 337 00:14:42,690 --> 00:14:45,320 se početi manipulirati ovo Struktura stabla u memoriji. 338 00:14:45,320 --> 00:14:47,070 Nemamo graditi stabla u memoriji. 339 00:14:47,070 --> 00:14:49,880 Ne morate učiniti vrsta pset pet stilu struktura podataka 340 00:14:49,880 --> 00:14:50,650 složenosti. 341 00:14:50,650 --> 00:14:54,610 Preglednik, lijepo dovoljno, nakon tumačenje HTML vrha do dna, 342 00:14:54,610 --> 00:14:58,600 lijevo ili desno, doslovno će ruke nam ekvivalent pokazivač 343 00:14:58,600 --> 00:15:00,840 toj cijeloj stabla besplatno. 344 00:15:00,840 --> 00:15:02,150 To se sve od teškog rada. 345 00:15:02,150 --> 00:15:05,520 To je ono što Mozilla i Apple i drugi su učinili za nas. 346 00:15:05,520 --> 00:15:09,400 >> A s JavaScript ćemo moći kontrolirati i mijenjati i raditi 347 00:15:09,400 --> 00:15:12,910 zanimljivosti u da stablo, inače poznat 348 00:15:12,910 --> 00:15:15,880 kao DOM ili Document Object Model. 349 00:15:15,880 --> 00:15:17,110 Koje vrste stvari? 350 00:15:17,110 --> 00:15:19,030 Pa, ispada da u JavaScriptu, postoji 351 00:15:19,030 --> 00:15:22,800 ovo praonica popis događaji koji se odvijaju. 352 00:15:22,800 --> 00:15:26,330 A mi stvarno nisu koristili da Riječ budući tjedna nule i pset 353 00:15:26,330 --> 00:15:28,240 nula, kada smo razgovarali o ispočetka. 354 00:15:28,240 --> 00:15:31,390 Većina vas vjerojatno nisu koristili događaj u vašem Scratch projekt. 355 00:15:31,390 --> 00:15:33,850 Ali možda sjetiti jednostavna Marco Polo 356 00:15:33,850 --> 00:15:36,760 Primjerice, kada smo imali dva Duhovi, od kojih je jedan rekao, Marco. 357 00:15:36,760 --> 00:15:40,180 Drugi od kojih onda, nakon slušanja i sluh taj događaj, rekao je, Polo. 358 00:15:40,180 --> 00:15:42,080 Ako ne, slobodno osvrnuti tako daleko unatrag. 359 00:15:42,080 --> 00:15:44,450 >> No, to je samo da kažu, a možete vrsta 360 00:15:44,450 --> 00:15:47,730 zaključiti iz imena tih stvari, JavaScript, ispada, 361 00:15:47,730 --> 00:15:53,200 će nam način za slušanje za miš ide dolje ili miš ide gore 362 00:15:53,200 --> 00:15:57,920 tipku ili ide dolje ili ključ ide gore ili onsubmit onselect 363 00:15:57,920 --> 00:15:59,740 ili onresizing nešto. 364 00:15:59,740 --> 00:16:03,060 Drugim riječima, svaka fizička radnja da čovjek može uzeti s preglednikom 365 00:16:03,060 --> 00:16:08,210 što činite svaki dan, možete napisati broj za koji sluša one događaje 366 00:16:08,210 --> 00:16:10,220 a onda se nešto odgovarajuće. 367 00:16:10,220 --> 00:16:14,130 >> Na primjer, ako koristite Google Maps, što se događa ako kliknete i potez 368 00:16:14,130 --> 00:16:16,250 miš, obično? 369 00:16:16,250 --> 00:16:17,758 Ako kliknete i povučete? 370 00:16:17,758 --> 00:16:18,258 Da? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Točno. 373 00:16:22,200 --> 00:16:23,159 Karta počne kretati. 374 00:16:23,159 --> 00:16:25,616 Tako možete vidjeti kakve što je ovdje, ono što je tamo. 375 00:16:25,616 --> 00:16:27,130 A kako Google provesti kako? 376 00:16:27,130 --> 00:16:29,421 Pa, vjerojatno, oni su pomoću par tih događaja 377 00:16:29,421 --> 00:16:31,720 slušatelji, jedan koji kaže, slušati na mišu 378 00:16:31,720 --> 00:16:35,410 down-- pa kad se fizički gura svoj trackpad ili njegov miša 379 00:16:35,410 --> 00:16:36,010 prema dolje. 380 00:16:36,010 --> 00:16:38,350 I onda tražimo nešto poput pokreta 381 00:16:38,350 --> 00:16:41,145 ili neki drugi događaj koji omogućuje nam da hvatanje povucite. 382 00:16:41,145 --> 00:16:45,910 A u stvari, povucite je na sličan način u ovom dot dot dot popis mogućih opcija. 383 00:16:45,910 --> 00:16:49,140 >> Dakle, to će biti snažan način za početi reagirati na korisnika 384 00:16:49,140 --> 00:16:52,824 čak i prije nego je on ili ona klikne nešto eksplicitno kao što pošaljete. 385 00:16:52,824 --> 00:16:55,240 Ali ćemo predstaviti par tema doći. 386 00:16:55,240 --> 00:16:58,570 Ali prvo, neka je tranzicija do neke stvarne koda. 387 00:16:58,570 --> 00:17:01,450 Tako ću otići naprijed i otvoriti dom-0, 388 00:17:01,450 --> 00:17:05,869 koji je vrlo jednostavan primjer da se ovdje, ako sam povećavanje jednostavno 389 00:17:05,869 --> 00:17:08,500 ima tu ulaz ovdje za mene. 390 00:17:08,500 --> 00:17:12,410 I ja ću ići naprijed i upišite "David" za moje ime i kliknite Pošalji. 391 00:17:12,410 --> 00:17:17,940 >> A onda, doduše nekako jeftino, sam imati ovaj redak koji pops gore koji kaže: 392 00:17:17,940 --> 00:17:19,244 "Pozdrav, David!" 393 00:17:19,244 --> 00:17:21,740 Dakle, ovo je vrsta kao i naš "Hello, World" 394 00:17:21,740 --> 00:17:25,150 da mi je neko vrijeme natrag u C i ni u PHP jer sam dinamički 395 00:17:25,150 --> 00:17:26,310 reproduciraju moje ime. 396 00:17:26,310 --> 00:17:28,230 Ja mogu napraviti ime tuđe ovdje. 397 00:17:28,230 --> 00:17:31,240 Ja jednostavno mogao promijeniti to, kao, Hannah, kliknite Pošalji. 398 00:17:31,240 --> 00:17:33,780 I doista, malo pop-up promjena. 399 00:17:33,780 --> 00:17:36,650 >> Sada, pop-up prozore su jedan od većina zlostavljali značajke webu. 400 00:17:36,650 --> 00:17:38,520 A u stvari, još u su dan pop-up blokeri 401 00:17:38,520 --> 00:17:40,820 došla u modu, jer vas će ići na neki website-- 402 00:17:40,820 --> 00:17:43,604 možda upitna mjesto-- da bi onda odjednom 403 00:17:43,604 --> 00:17:46,020 započeti peppering zaslon s cijela hrpa pop-up prozora. 404 00:17:46,020 --> 00:17:49,700 I tako to sposobnost da poskočiti Prozori ispred korisnika 405 00:17:49,700 --> 00:17:52,372 nije bila osobito dobro primljena od strane čovječanstva. 406 00:17:52,372 --> 00:17:54,080 Dakle, to je zato što vidite to spriječili stvar, 407 00:17:54,080 --> 00:17:55,706 što samo čini sve ovo ružno. 408 00:17:55,706 --> 00:17:57,996 Tako ćemo trebati bolji način za brz korisnik. 409 00:17:57,996 --> 00:17:59,350 No, za sada, kako se čini da rade. 410 00:17:59,350 --> 00:18:03,320 Dakle, samo intuitivno, što izgleda da se događa ovdje? 411 00:18:03,320 --> 00:18:07,870 Idem naprijed i kliknite Pošalji i onda se nešto događa, očito. 412 00:18:07,870 --> 00:18:12,870 No, ono što se ne događa da se nije dogodilo prošli tjedan bilo koje vrijeme sam kliknuo Pošaljite? 413 00:18:12,870 --> 00:18:15,940 Što se nije dogodilo na zaslonu? 414 00:18:15,940 --> 00:18:17,170 Žao nam je? 415 00:18:17,170 --> 00:18:18,010 Ponovno učitati. 416 00:18:18,010 --> 00:18:19,720 URL nije promijenio sve. 417 00:18:19,720 --> 00:18:22,250 Rekao sam da je dom-0, i ja sam još uvijek na DOM-0. 418 00:18:22,250 --> 00:18:26,890 Normalno, mi bismo se promijenili na neki drugi URL, kao register.php ili slično. 419 00:18:26,890 --> 00:18:29,560 >> No, čak i kad sam odbaciti ova stvar klikom redu, 420 00:18:29,560 --> 00:18:32,310 primijetiti da URL ostaje u potpunosti na mjestu. 421 00:18:32,310 --> 00:18:35,350 A, u stvari, ako sam malo skeptični, neka mi se otvoriti Chrome. 422 00:18:35,350 --> 00:18:36,860 Dopustite mi otvoriti karticu Network. 423 00:18:36,860 --> 00:18:38,360 I obavijest da je prazan u trenutku. 424 00:18:38,360 --> 00:18:40,700 Dopustite mi ići naprijed i ponovno Maria. 425 00:18:40,700 --> 00:18:42,810 Nema mrežni promet god. 426 00:18:42,810 --> 00:18:44,320 Dakle, nema HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Dakle, istina, ako ja pogledajte izvorni kod za this-- neka mi zatvorite ovaj prozor 428 00:18:47,620 --> 00:18:49,480 i idite na View Source. 429 00:18:49,480 --> 00:18:50,400 Zanimljivo. 430 00:18:50,400 --> 00:18:53,520 Izgleda da postoji neki nove oznake, među njima skripta. 431 00:18:53,520 --> 00:18:57,490 Tako ćemo pogledati unutar CS50 IRO je točno ono što sam poslan korisniku. 432 00:18:57,490 --> 00:19:00,690 >> Dakle ovdje is-- neka je usredotočiti na samo HTML. 433 00:19:00,690 --> 00:19:03,500 Evo donja polovica DOM-0.html. 434 00:19:03,500 --> 00:19:07,830 I obavijest da je dobio titulu, glava oznake, tijelo tag, oblik oznaka. 435 00:19:07,830 --> 00:19:11,257 No, ono što skače na vas kao drugačije, pogotovo ako ste nikada 436 00:19:11,257 --> 00:19:12,590 napisano bilo JavaScript sebe. 437 00:19:12,590 --> 00:19:14,920 Dopustite mi dođite malo do ovdje. 438 00:19:14,920 --> 00:19:18,330 Imam ulaz, još jedan ulaz za podnijeti. 439 00:19:18,330 --> 00:19:21,410 Imam ID, koja je vrsta novo. 440 00:19:21,410 --> 00:19:22,790 Ali mi je vidjeti s CSS. 441 00:19:22,790 --> 00:19:24,480 Što je još svakako novo? 442 00:19:24,480 --> 00:19:24,980 Da? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 Lijepo. 445 00:19:32,140 --> 00:19:32,760 >> U redu. 446 00:19:32,760 --> 00:19:35,630 Pa gdje piše onsubmit, primijetiti ono što se čini da slijede. 447 00:19:35,630 --> 00:19:38,740 Ovo je atribut u HTML nomenklaturi. 448 00:19:38,740 --> 00:19:40,944 Njegova vrijednost je ovo citirao niz ovdje. 449 00:19:40,944 --> 00:19:42,860 I to izgleda malo čudno na prvi pogled. 450 00:19:42,860 --> 00:19:44,050 Nije HTML. 451 00:19:44,050 --> 00:19:45,240 Nije CSS. 452 00:19:45,240 --> 00:19:47,580 To je, kao što ste mogli pogoditi, JavaScript. 453 00:19:47,580 --> 00:19:51,850 Dakle, čini se da je izgrađen u ovo web stranica je funkcija zove pozdravi. 454 00:19:51,850 --> 00:19:54,250 I ja sam zaključi da je upravo jer je riječ, pozdravljam. 455 00:19:54,250 --> 00:19:55,880 Ima otvoreni navodnik, bliski zagrada, točka i zarez. 456 00:19:55,880 --> 00:19:58,095 Izgleda kao funkciju C, izgleda kao PHP funkcije. 457 00:19:58,095 --> 00:20:00,370 >> I doista, to će biti funkcija JavaScript. 458 00:20:00,370 --> 00:20:01,440 Onda sam povratka lažna. 459 00:20:01,440 --> 00:20:03,440 Mi ćemo se vratiti da je u samo jednom trenutku. 460 00:20:03,440 --> 00:20:05,320 Ali gdje je ova funkcija definirana? 461 00:20:05,320 --> 00:20:07,950 Pa neka mi pomičite se gore na vrhu datoteke. 462 00:20:07,950 --> 00:20:11,710 I iako je dugi red, to je relativno jednostavan. 463 00:20:11,710 --> 00:20:15,000 Dopustite mi smanjivanje i ovdje usredotočiti na ove četiri linije. 464 00:20:15,000 --> 00:20:17,137 >> Tako je u JavaScript, samo kao što su PHP, samo 465 00:20:17,137 --> 00:20:19,720 recimo, doslovno, riječ "funkcija" naziv funkcije, 466 00:20:19,720 --> 00:20:22,700 a onda zagrada s bilo arguments-- nema argumente u ovom slučaju. 467 00:20:22,700 --> 00:20:25,290 I nema povratka tipa u JavaScriptu, baš kao i PHP. 468 00:20:25,290 --> 00:20:29,470 Dakle, to je malo blazi od C. Otvorite kovrčava braće, u neposrednoj blizini kovrčava braće. 469 00:20:29,470 --> 00:20:33,270 Izgrađen u JavaScript je function-- Ne preporučuje function-- 470 00:20:33,270 --> 00:20:35,730 ali funkcija zove upozorenja čija je jedina svrha u životu 471 00:20:35,730 --> 00:20:38,620 je podići da dosta ružno potaknuti da smo vidjeli maloprije. 472 00:20:38,620 --> 00:20:40,950 >> Sada je to vrsta zalogaj. 473 00:20:40,950 --> 00:20:42,560 Što se događa ovdje? 474 00:20:42,560 --> 00:20:45,840 Tako ćemo početi označite sve što je ovdje. 475 00:20:45,840 --> 00:20:48,540 To je isti argument da upozore. 476 00:20:48,540 --> 00:20:49,530 I što se događa? 477 00:20:49,530 --> 00:20:51,200 To samo izgleda kao niz. 478 00:20:51,200 --> 00:20:59,180 I to ispada, za razliku od PHP i za razliku od C, to ne smeta u JavaScript 479 00:20:59,180 --> 00:21:01,090 ako ti jednostruke navodnike ili dvostruki navodnici. 480 00:21:01,090 --> 00:21:02,060 Oni će biti jednaka. 481 00:21:02,060 --> 00:21:03,769 I iskreno, to je samo popularan ovih dana 482 00:21:03,769 --> 00:21:06,726 za JavaScript programere uvijek Koristite jednostruke navodnike zbog nekog razloga. 483 00:21:06,726 --> 00:21:07,840 To je samo stvar za učiniti. 484 00:21:07,840 --> 00:21:09,710 Ali bismo mogli koristiti dvostruke navodnike, kao dobro. 485 00:21:09,710 --> 00:21:11,540 >> Dakle plus je novi lik. 486 00:21:11,540 --> 00:21:14,512 No, one od vas koji ste učinili ovo prije, što više reći? 487 00:21:14,512 --> 00:21:16,440 Da. 488 00:21:16,440 --> 00:21:17,120 Spojite. 489 00:21:17,120 --> 00:21:18,570 Tako smo to vidjeli u PHP. 490 00:21:18,570 --> 00:21:20,315 Postoji samo točka Operator u PHP da 491 00:21:20,315 --> 00:21:22,000 će spojite dvije žice zajedno. 492 00:21:22,000 --> 00:21:24,000 C je bol u vratu to učiniti. 493 00:21:24,000 --> 00:21:27,310 Podsjetimo iz pset šest, što je osobita bol u vratu, 494 00:21:27,310 --> 00:21:29,470 ti bi koristiti nešto poput strcat 495 00:21:29,470 --> 00:21:31,660 Nakon dodjele memorije na stog ili gomila. 496 00:21:31,660 --> 00:21:34,243 Morao si skakati kroz hoops samo da spojite dvije žice. 497 00:21:34,243 --> 00:21:36,040 U JavaScript, to je super jednostavno. 498 00:21:36,040 --> 00:21:38,030 Samo korištenje plus operatera između njih. 499 00:21:38,030 --> 00:21:41,420 >> Tako je kompleks izgleda stvar čini se da je to 500 00:21:41,420 --> 00:21:43,490 jer na kraju Cijeli ovaj niz, samo sam 501 00:21:43,490 --> 00:21:45,797 spojite se na uskličnika. 502 00:21:45,797 --> 00:21:48,380 Dakle, ako je ono što je iskakanje gore je "Pozdrav, David", "Pozdrav, Hannah," 503 00:21:48,380 --> 00:21:52,740 "Zdravo, Marija", i tako dalje, očito da srednji stvar između dva 504 00:21:52,740 --> 00:21:55,215 plusa mora mi dati pristup što? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Što je tamo sigurno? 507 00:22:01,991 --> 00:22:02,490 Da. 508 00:22:02,490 --> 00:22:05,090 Zato ću ovdje pretvara odgovoriti na svoje ime, zar ne? 509 00:22:05,090 --> 00:22:10,380 Dakle, njihova imena popped u finalu Rezultat. Dakle, što to znači? 510 00:22:10,380 --> 00:22:15,080 Pa, predložio sam ranije da je slika koja tzv DOM 511 00:22:15,080 --> 00:22:18,580 ima tu posebnu root elementa put do vrha naziva dokumenta. 512 00:22:18,580 --> 00:22:21,660 I sad, ispada da će biti posebna globalna varijabla 513 00:22:21,660 --> 00:22:25,250 u JavaScriptu, izgrađen u koji je cijela hrpa korisnih funkcionalnosti. 514 00:22:25,250 --> 00:22:31,770 Među korisnim funkcionalnost je sposobnost da se u svakom nasljedniku čvor. 515 00:22:31,770 --> 00:22:37,760 Ti kvadrata ili pravokutnika ili elipse samo čvorova u stablu, da se tako izrazim. 516 00:22:37,760 --> 00:22:41,850 >> Tako ispada da je izgrađen u JavaScript je predmet dokumenta 517 00:22:41,850 --> 00:22:47,300 je funkcija, inače poznat kao metoda, koja se zove getElementById. 518 00:22:47,300 --> 00:22:50,410 Sintaksa za pozivanje funkcija u JavaScriptu 519 00:22:50,410 --> 00:22:55,220 koji je unutar objekta ili A varijabla je samo s dot notaciji. 520 00:22:55,220 --> 00:22:57,950 A vidjeli smo to u C što struct sintakse. 521 00:22:57,950 --> 00:23:03,530 To možemo vidjeti u pset sedam, vrsta, vrsta, kad vidite CS50 :: upita. 522 00:23:03,530 --> 00:23:08,070 Debelo crijevo debelo crijevo u PHP je još način pozivanja funkciju koja je 523 00:23:08,070 --> 00:23:09,260 unutar nekog objekta. 524 00:23:09,260 --> 00:23:11,960 >> No, za sada u JavaScript, to je samo točka. 525 00:23:11,960 --> 00:23:14,170 I tako je ova funkcija, dosta lijepo, vrsta 526 00:23:14,170 --> 00:23:16,810 kaže ono što does-- dobili elementa po ID. 527 00:23:16,810 --> 00:23:20,280 Element je samo drugo ime za oznaku ili čvor u DOM. 528 00:23:20,280 --> 00:23:26,900 I tako dobili elementa po ID "ime" znači this-- evo moj HTML. 529 00:23:26,900 --> 00:23:31,910 I na temelju ovog HTML, što čvor ili što HTML tag sam ja 530 00:23:31,910 --> 00:23:35,097 će programski biti zbrinut pozivom document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Da, točno. 533 00:23:38,500 --> 00:23:42,670 Idem dobiti ulaz Element postoji čiji ID je "ime". 534 00:23:42,670 --> 00:23:45,140 Znači konkretno, možete mislim ove funkcije, 535 00:23:45,140 --> 00:23:49,560 getElementById, kao način davanja natrag pokazivač na taj određeni čvor 536 00:23:49,560 --> 00:23:50,060 u stablo. 537 00:23:50,060 --> 00:23:51,980 Nismo izvučeni ovo stabla, ali to je način 538 00:23:51,980 --> 00:23:54,900 dobivanje pristupa koji pravokutnik ili da je pravokutnik 539 00:23:54,900 --> 00:23:58,090 tako jedinstveno identificira ga putem svoje osobne iskaznice. 540 00:23:58,090 --> 00:23:59,760 >> Sad, zašto je to korisno? 541 00:23:59,760 --> 00:24:01,510 Pa, to ispada da nakon što ste stečen 542 00:24:01,510 --> 00:24:07,220 da čvor, koji pravokutnik od slika, da čvor unutar nje, 543 00:24:07,220 --> 00:24:10,660 pak, ima cijela hrpa properties-- parova ključ-vrijednost 544 00:24:10,660 --> 00:24:13,480 ili podataka, od kojih je jedan nazivaju vrijednost. 545 00:24:13,480 --> 00:24:16,500 Dakle doslovno, to je vrsta zalogaj objasniti cijelu stvar. 546 00:24:16,500 --> 00:24:19,370 Ali na kraju dana, Sve to čini se dati vam 547 00:24:19,370 --> 00:24:23,070 niz koje korisnik upisali u u tom hijerarhijskom način. 548 00:24:23,070 --> 00:24:24,820 Ali ja se ne sviđa Nekoliko od tih stvari. 549 00:24:24,820 --> 00:24:27,590 Ili radije, postoji neki znatiželja još. 550 00:24:27,590 --> 00:24:28,870 Sve to kao da rade. 551 00:24:28,870 --> 00:24:33,420 Zašto misliš da sam se vratio lažno nakon poziva pozdraviti? 552 00:24:33,420 --> 00:24:35,910 Ovo izgleda malo ružno, da Imam dvije tvrdnje postoji 553 00:24:35,910 --> 00:24:38,730 odvojene zarezom. 554 00:24:38,730 --> 00:24:39,310 Pogodi. 555 00:24:39,310 --> 00:24:44,390 Ako sam maknuti return false, što bi se moglo dogoditi, samo instinktivno? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Žao nam je, kažu opet? 558 00:24:49,460 --> 00:24:50,530 >> Otvorite hrpa Windows. 559 00:24:50,530 --> 00:24:52,780 Dakle, potencijalno možda nešto kao što je to će se dogoditi. 560 00:24:52,780 --> 00:24:54,422 Što drugo? 561 00:24:54,422 --> 00:24:55,630 Možda podnijeti zahtjev gdje? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 Na istoj stranici. 564 00:25:00,510 --> 00:25:03,110 Dakle, u stvari, to je to bliže odgovoriti ovdje, 565 00:25:03,110 --> 00:25:05,890 iako, za razliku od u prošlosti, nisam 566 00:25:05,890 --> 00:25:09,300 navedeno je akcija atribut, što je normalno moramo učiniti. 567 00:25:09,300 --> 00:25:11,780 Ispada postoji zadana. Ako ne odredite akciju, 568 00:25:11,780 --> 00:25:15,370 to je kao što je rekao citat, citat ili naziv same datoteke, 569 00:25:15,370 --> 00:25:17,850 što u ovom slučaju bi biti poput DOM-0.html. 570 00:25:17,850 --> 00:25:20,420 To je samo vrsta zaključiti, odnosno podrazumijeva. 571 00:25:20,420 --> 00:25:22,420 >> I tako, ako ne to, neka je primijetiti. 572 00:25:22,420 --> 00:25:23,230 Dopustite mi da spasi ovo. 573 00:25:23,230 --> 00:25:25,270 I ja sam uklonjena return false. 574 00:25:25,270 --> 00:25:27,759 Dopustite mi da se vrati na ovo primjer i sila ga ponovno. 575 00:25:27,759 --> 00:25:30,800 A možda ste vidjeli mi predlažemo ovo CS50 Porazgovarajte hrpu puta. 576 00:25:30,800 --> 00:25:34,560 Ako je išta ikad djeluje funky i preglednik ne ponaša kao što se i očekuje, 577 00:25:34,560 --> 00:25:37,410 često ćete želite zadržati Shift i kliknite Obnovi. 578 00:25:37,410 --> 00:25:41,480 To će prisiliti svaku datoteku za ponovno učitavanje i ne koristite vašeg web preglednika lokalnu predmemoriju 579 00:25:41,480 --> 00:25:47,032 ili kopija, tako da se sada, neka mi ići naprijed i otvoriti moj inspektore, karticu Network. 580 00:25:47,032 --> 00:25:48,740 Idem kliknite Sačuvaj Prijavite jer sam 581 00:25:48,740 --> 00:25:51,660 ne želim ga izbrisati retke Jednom sam se whisked daleko negdje drugdje. 582 00:25:51,660 --> 00:25:54,650 >> Dopustite mi ići naprijed i ovdje upišite Andi, kliknite Pošalji. 583 00:25:54,650 --> 00:25:55,150 U redu. 584 00:25:55,150 --> 00:25:56,480 To mi se čini kako se i očekivalo. 585 00:25:56,480 --> 00:25:57,440 Ona kaže: "Dobar dan, Andi." 586 00:25:57,440 --> 00:25:59,420 Dopustite mi da kliknite OK. 587 00:25:59,420 --> 00:26:00,610 Zanimljivo. 588 00:26:00,610 --> 00:26:05,100 Obavijest da je stranica promijenio, iako na izvornu stranicu. 589 00:26:05,100 --> 00:26:06,770 Obavijest URL vrsta promijenila. 590 00:26:06,770 --> 00:26:09,430 Ona dodaje upitnik, što je obično pokazatelj 591 00:26:09,430 --> 00:26:11,260 da smo pokušali dostaviti nešto. 592 00:26:11,260 --> 00:26:13,570 A onda na dnu, još eksplicitnije, 593 00:26:13,570 --> 00:26:17,570 Ovdje je stvarna HTTP zahtjev, što je dobio odgovor da je 200 594 00:26:17,570 --> 00:26:18,490 doveo me ovamo. 595 00:26:18,490 --> 00:26:20,250 >> Dakle, to nije ono što želimo učiniti, zar ne? 596 00:26:20,250 --> 00:26:22,166 Jer ja ne želim reload cijelu stranicu. 597 00:26:22,166 --> 00:26:24,970 I umjesto htjela vratiti lažna kako bi kratkog spoja 598 00:26:24,970 --> 00:26:28,840 zadano ponašanje preglednika, koji bio je, naravno, da podnese stranicu. 599 00:26:28,840 --> 00:26:31,700 >> Tako ćemo pogledati na marginalno bolje primjer. 600 00:26:31,700 --> 00:26:33,920 To je dom inačica jedan. 601 00:26:33,920 --> 00:26:36,680 I primijetiti sljedeće. 602 00:26:36,680 --> 00:26:39,150 To je u redu ako ne zahvatite sve linija koda. 603 00:26:39,150 --> 00:26:41,750 No, ono što je bitno drugačija o ovom provedbu? 604 00:26:41,750 --> 00:26:44,690 Ja ću propisuju se ponaša Isto, radi istu stvar. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Što sam očito učinio drugačije? 607 00:26:51,570 --> 00:26:52,266 Da? 608 00:26:52,266 --> 00:26:53,182 >> PUBLIKA: [nečujan]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID Malan: Da. 611 00:27:04,170 --> 00:27:08,620 Dakle, funkcija definirana differently-- Drugim riječima, odsutnim iz obrasca, 612 00:27:08,620 --> 00:27:13,180 gore na liniji 7-- ili a, linija više nije 8-- 613 00:27:13,180 --> 00:27:15,070 moram se onsubmit atribut. 614 00:27:15,070 --> 00:27:16,750 U prethodnom primjeru, imao sam to. 615 00:27:16,750 --> 00:27:18,530 A onda sam doslovno napisao moj kod ovdje. 616 00:27:18,530 --> 00:27:20,210 I onda sam rekao return false. 617 00:27:20,210 --> 00:27:22,180 A ako to nije trljati vi ipak pogrešan način, 618 00:27:22,180 --> 00:27:26,140 to bi trebalo početi u mjeri u kojoj što je, baš kao u HTML, 619 00:27:26,140 --> 00:27:29,530 kada smo počeli da ga zajedno miješati CSS u stilu atributa, 620 00:27:29,530 --> 00:27:32,890 je tek počeo da se malo neuredan ili osjetiti malo krivo. 621 00:27:32,890 --> 00:27:35,020 >> Isto tako ovdje, ako počnete uzimati HTML, 622 00:27:35,020 --> 00:27:37,419 i onda automatski buć JavaScript kod 623 00:27:37,419 --> 00:27:40,460 u sredini citirani niza, to je ne će biti vrlo održivi. 624 00:27:40,460 --> 00:27:40,630 Pravo? 625 00:27:40,630 --> 00:27:43,690 To nije ni očito na prvi mjesto gdje JavaScript kôd. 626 00:27:43,690 --> 00:27:46,590 Dakle, to bi bilo jako lijepo kao načelo boljeg dizajna, 627 00:27:46,590 --> 00:27:50,500 neka je zadržati naše HTML potpunosti odvojiti od našeg JavaScript. 628 00:27:50,500 --> 00:27:53,150 >> Dakle, za to, što smo učinio ovdje je following-- 629 00:27:53,150 --> 00:27:56,790 jednostavno koristiti HTML samo oznake. 630 00:27:56,790 --> 00:28:00,730 I tako je u verziji jedno od toga, svi Imam je oblik s jedinstvenim ID. 631 00:28:00,730 --> 00:28:04,630 I onda ovdje, ja sam iskoristivši o posebnoj značajci JavaScript 632 00:28:04,630 --> 00:28:08,480 gdje mogu imati ono što je naziva anonimni funkcija. 633 00:28:08,480 --> 00:28:14,150 Tako ispada da ako ja zovem document.getElementById o 'demo' 634 00:28:14,150 --> 00:28:18,890 to je kao da mi je pokazivač ovaj čvor u mom stablu, oblik elementa, 635 00:28:18,890 --> 00:28:20,100 da se tako izrazim. 636 00:28:20,100 --> 00:28:22,220 >> Sada, ja samo znam iz znajući malo HTML 637 00:28:22,220 --> 00:28:26,330 Sada imamo pročitati neke online referenca, koji oblik elementa podržava 638 00:28:26,330 --> 00:28:29,950 cijela hrpa događaja listeners-- u Drugim riječima, praonica popis događaja 639 00:28:29,950 --> 00:28:31,700 slušatelji koje smo vidjeli prije nekoliko trenutaka. 640 00:28:31,700 --> 00:28:35,950 Znam iz čitanja dokumentacije da onsubmit je valjan događaj 641 00:28:35,950 --> 00:28:38,520 slušatelj za oblik elementa. 642 00:28:38,520 --> 00:28:41,480 >> Tako jednom znam da, to je sigurno za mene 643 00:28:41,480 --> 00:28:45,390 following-- dobiti taj čvor od drveta, oblik elementa, 644 00:28:45,390 --> 00:28:48,070 ili pristupiti tzv onsubmit nekretnina. 645 00:28:48,070 --> 00:28:49,880 Dakle, točka samo znači to je imovina, 646 00:28:49,880 --> 00:28:52,180 kao posebne vrijednosti unutar nje. 647 00:28:52,180 --> 00:28:55,590 A što sam ja tip podataka dodjelu, očito, 648 00:28:55,590 --> 00:28:58,900 na onsubmit, koji je učinkovito varijabla u 649 00:28:58,900 --> 00:29:01,010 tog čvora u stablu? 650 00:29:01,010 --> 00:29:04,100 To je područje unutar tog Struct. 651 00:29:04,100 --> 00:29:05,810 Što je tip podataka? 652 00:29:05,810 --> 00:29:07,030 >> Funkcija, da. 653 00:29:07,030 --> 00:29:08,607 Tako ispada da je PHP je ovo. 654 00:29:08,607 --> 00:29:10,440 I iako smo nije vam reći o tome, 655 00:29:10,440 --> 00:29:16,240 C također ima funkciju pokazivače, u sposobnost da prođe i dodijeliti funkcije 656 00:29:16,240 --> 00:29:18,330 kao same vrijednosti varijabli. 657 00:29:18,330 --> 00:29:20,280 A mi ne ide na regres natrag na C 658 00:29:20,280 --> 00:29:23,250 No, za sada, ispada da na desnoj strani ovdje, 659 00:29:23,250 --> 00:29:26,260 iako izgleda malo funky, to znači, hej preglednik, 660 00:29:26,260 --> 00:29:27,550 dajte mi funkciju. 661 00:29:27,550 --> 00:29:30,560 Neću se ni truditi daje to ime, jer sam doslovno 662 00:29:30,560 --> 00:29:34,450 će dodijeliti nazovimo ga adresu ove funkcije 663 00:29:34,450 --> 00:29:35,994 odmah onsubmit. 664 00:29:35,994 --> 00:29:39,160 Drugim riječima, preglednik, ne trebate znati što je ova funkcija zove. 665 00:29:39,160 --> 00:29:41,890 Vi samo trebate znati gdje je u memoriji. 666 00:29:41,890 --> 00:29:44,210 I tako je dovoljno samo imaju znak jednakosti tamo 667 00:29:44,210 --> 00:29:48,240 a ne da gnjaviti imenujući to, kao što je foo ili pozdraviti ili bilo koje druge riječi. 668 00:29:48,240 --> 00:29:50,150 I sada je to samo stilska stvar. 669 00:29:50,150 --> 00:29:53,100 Sam mogao pomaknuti tu kovrčavu braće na the-- sorry-- sljedeći redak 670 00:29:53,100 --> 00:29:54,750 kao i obično učiniti CS50. 671 00:29:54,750 --> 00:29:57,550 No, u JavaScriptu, to je zapravo stilski zajedničko 672 00:29:57,550 --> 00:30:00,450 samo zadržati kovrčavu braće je Prva, na toj prvoj crti. 673 00:30:00,450 --> 00:30:02,620 >> No u nastavku, postoji ništa zanimljivo. 674 00:30:02,620 --> 00:30:05,830 To otvoren kovrčava braće jednostavno markira početak moje funkcije. 675 00:30:05,830 --> 00:30:09,320 Funkcija je sada identična, osim što imam 676 00:30:09,320 --> 00:30:11,452 uključen return false unutar ove funkcije. 677 00:30:11,452 --> 00:30:13,160 Jer ispada out-- i ti bi samo 678 00:30:13,160 --> 00:30:14,980 znam iz čitanja documentation-- 679 00:30:14,980 --> 00:30:19,740 da ako funkciju koju dodijelite na onsubmit rukovatelj vraća false, 680 00:30:19,740 --> 00:30:23,420 preglednik samo zna i slaže ne podnese obrazac na poslužitelju. 681 00:30:23,420 --> 00:30:27,210 Ako se vrati točno, to će dostaviti to poslužitelju razloga vidjet ćemo 682 00:30:27,210 --> 00:30:28,700 korisni su samo na trenutak. 683 00:30:28,700 --> 00:30:31,000 >> A onda je točka-zarez nakon Kovrčava braće postoji samo 684 00:30:31,000 --> 00:30:32,541 znači sam učinio definiraju funkciju. 685 00:30:32,541 --> 00:30:36,600 Znaš što nazvati čim kao što ste čuli podnesak. 686 00:30:36,600 --> 00:30:37,100 U redu. 687 00:30:37,100 --> 00:30:40,650 To je još uvijek uvjerljivo vrsta ružno. 688 00:30:40,650 --> 00:30:42,190 Što još možemo učiniti? 689 00:30:42,190 --> 00:30:45,000 >> Pa, ispada onda u verzija dva, što je last-- 690 00:30:45,000 --> 00:30:46,780 A mi ćemo samo pogled na ovo. 691 00:30:46,780 --> 00:30:49,850 Na rizik od izrade je ružnije, ispada 692 00:30:49,850 --> 00:30:52,160 da postoji knjižnica u svijet zove jQuery. 693 00:30:52,160 --> 00:30:54,900 I jQuery je super popularni JavaScript biblioteka 694 00:30:54,900 --> 00:30:57,930 to je toliko popularan da je većina bilo JavaScript-- to nije 695 00:30:57,930 --> 00:31:00,540 neuobičajeno da ljudi brkaju jQuery s JavaScriptom. 696 00:31:00,540 --> 00:31:01,070 Zašto? 697 00:31:01,070 --> 00:31:04,990 JavaScript sebi ima vrlo preopširan načinima obavljanja things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Vi ćete imati vrlo duge linije koda. 700 00:31:10,510 --> 00:31:15,550 >> Dakle, čovjek po imenu John RESID, koji zapravo radi za stavljanje u pogon 701 00:31:15,550 --> 00:31:18,630 do ovih dana, izašao Uz to knjižnica godina 702 00:31:18,630 --> 00:31:22,070 Prije da su mnogi ljudi su doprinijeli kako se zove jQuery koji se mijenja 703 00:31:22,070 --> 00:31:23,449 sintaksa na sljedeći način. 704 00:31:23,449 --> 00:31:25,740 I samo tako da ste vidjeli ovo, jer ćete uvijek 705 00:31:25,740 --> 00:31:28,140 vidjeti ako obavljajući web-based konačni projekt, 706 00:31:28,140 --> 00:31:33,270 to bi bilo jednako način provedbi istu funkciju pomoću 707 00:31:33,270 --> 00:31:34,630 Ova posebna knjižnica. 708 00:31:34,630 --> 00:31:36,680 >> Sada, umjesto da zafrkavati osim što je u cijelosti, 709 00:31:36,680 --> 00:31:38,520 neka je samo pogledati neke obrasce. 710 00:31:38,520 --> 00:31:44,850 Ovo čini se da sintaksa koliko anonimni funkcionira 711 00:31:44,850 --> 00:31:49,584 ili bezimeni funkcije ili AKA lambda funkcije? 712 00:31:49,584 --> 00:31:50,190 Dva, zar ne? 713 00:31:50,190 --> 00:31:52,690 A znate da, čak i ako nisi super udoban s tim, 714 00:31:52,690 --> 00:31:55,780 samo činjenica da je to kaže funkcija () dva puta. 715 00:31:55,780 --> 00:31:58,172 >> I ispada da što je to kod je doing-- 716 00:31:58,172 --> 00:32:01,255 a mi ćemo se odnose na online referenci, u konačnici, za neke pomoći s ovim. 717 00:32:01,255 --> 00:32:04,480 To samo znači da kada dokument je spreman, 718 00:32:04,480 --> 00:32:07,490 ići naprijed i registrirati Sljedeća funkcija 719 00:32:07,490 --> 00:32:12,064 kao dostavi rukovatelj za HTML Element čija je jedinstvena ideja je demo. 720 00:32:12,064 --> 00:32:14,480 I onda, kad se to dogodi, Te dvije linije koda. 721 00:32:14,480 --> 00:32:18,677 A to je, nažalost, više preopširan način govoreći return false. 722 00:32:18,677 --> 00:32:21,510 A mi to spomenuo samo zato vidjet ćete kod ovako online. 723 00:32:21,510 --> 00:32:23,140 A to je ništa biti daunted. 724 00:32:23,140 --> 00:32:26,057 Ali umjesto toga, imajte na umu da ono što je će biti uobičajene u JavaScriptu 725 00:32:26,057 --> 00:32:26,765 je to paradigma. 726 00:32:26,765 --> 00:32:29,510 I tako to je razlog zašto smo ga pokazati za sada. 727 00:32:29,510 --> 00:32:30,010 U redu. 728 00:32:30,010 --> 00:32:32,730 Dakle, bez stana previše mnogo toga sintaksu, 729 00:32:32,730 --> 00:32:37,800 se postoje bilo kakva pitanja o ovi primjeri ili ideje do sada? 730 00:32:37,800 --> 00:32:38,300 U redu. 731 00:32:38,300 --> 00:32:40,220 Tako ćemo koristiti ovu za nešto korisno. 732 00:32:40,220 --> 00:32:47,070 Izrada web stranice koje jednostavno kaže halo, tako i tako nije sve što je zanimljivo, 733 00:32:47,070 --> 00:32:47,830 ne underwhelm. 734 00:32:47,830 --> 00:32:51,038 To ne će biti lijepa, ali to će učiniti nešto korisno. 735 00:32:51,038 --> 00:32:56,350 Pusti me natrag u moj direktorij ovdje i otvoriti, kažu, forma-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Dakle, pretpostavimo da je to brucoš intramuralnih sportski registracija stranica 737 00:32:59,320 --> 00:33:01,780 bez CSS ili bilo kojem smislu dizajna. 738 00:33:01,780 --> 00:33:05,404 I ja želim ići naprijed i Registrirajte se ovdje lozinkom. 739 00:33:05,404 --> 00:33:08,320 I ja ću se složiti s uvjetima a uvjeti i kliknite registar. 740 00:33:08,320 --> 00:33:11,700 A sada je web stranica kaže: "Vi ste registrirana! (Pa, zapravo i nije.) " 741 00:33:11,700 --> 00:33:15,070 To mi se čini kao da je radio, ali neka mi ići naprijed i prisiliti Reload. 742 00:33:15,070 --> 00:33:18,720 >> I dopustite mi da kažem, ne, ne potrebna mi stvarnu adresu e-pošte. 743 00:33:18,720 --> 00:33:21,820 Ili možda smo samo ću reći mail tamo. 744 00:33:21,820 --> 00:33:25,080 Lozinka će biti, kao, 12345. 745 00:33:25,080 --> 00:33:28,810 A onda, samo zato što sam idiot, sada je 123456789. 746 00:33:28,810 --> 00:33:31,150 I neću da provjerite svoj okvir. 747 00:33:31,150 --> 00:33:31,850 >> Hmm. 748 00:33:31,850 --> 00:33:32,350 U redu. 749 00:33:32,350 --> 00:33:34,920 Dakle, postoji nekoliko mogućnosti za poboljšanje ovdje. 750 00:33:34,920 --> 00:33:39,070 I znate, ili će vidjeti pset sedam, da možete pisati code-- 751 00:33:39,070 --> 00:33:41,890 a vi ćete morati napisati kod u PHP-- braniti 752 00:33:41,890 --> 00:33:45,780 protiv ove vrste korisnika pogreške jer je korisnik jasno 753 00:33:45,780 --> 00:33:46,790 nije surađivao. 754 00:33:46,790 --> 00:33:49,680 On ili ona vam nije dao sve vrijednosti ste htjeli ili čak u obliku 755 00:33:49,680 --> 00:33:50,630 da ih je htio. 756 00:33:50,630 --> 00:33:53,250 Dakle, što ćete vidjeti u pset sedam da svakako mogao imati neke 757 00:33:53,250 --> 00:33:55,680 ako uvjeti da kažu ako je e-mail adresu 758 00:33:55,680 --> 00:33:59,450 nije username@something.edu, smo mogli samo 759 00:33:59,450 --> 00:34:02,575 kažu žao i ispričavam korisniku mnogo, kao što bi moglo biti u pset sedam. 760 00:34:02,575 --> 00:34:05,700 Ili ako nisu provjereni taj okvir, Ispada u PHP-u, možete otkriti da, 761 00:34:05,700 --> 00:34:06,200 previše. 762 00:34:06,200 --> 00:34:09,389 I svakako, ako se lozinke nisu isti kao u register.php 763 00:34:09,389 --> 00:34:11,521 za pset sedam, možete otkriti da. 764 00:34:11,521 --> 00:34:13,770 No, to je bol u vrat, da sada tražiti 765 00:34:13,770 --> 00:34:15,510 nam da ide sve na putu do poslužitelja. 766 00:34:15,510 --> 00:34:17,053 Korisnik je obaviješten o poruci. 767 00:34:17,053 --> 00:34:19,219 I barem ako ne koristite neki ljubitelj tehnike, 768 00:34:19,219 --> 00:34:20,929 Sada oni moraju kliknite strelicu Natrag. 769 00:34:20,929 --> 00:34:23,300 Zar ne bi bilo lijepo, kao što su puno web danas, 770 00:34:23,300 --> 00:34:26,190 ako ste imali više neposrednog povratne informacije, odmah? 771 00:34:26,190 --> 00:34:31,389 >> Drugim riječima, pustite me na verziju jedan, koji će biti ljepše. 772 00:34:31,389 --> 00:34:33,469 No, ona ima tu značajku. 773 00:34:33,469 --> 00:34:39,590 Malan, 12345, 123456789, ne će provjeriti okvir, registrirajte se. 774 00:34:39,590 --> 00:34:41,330 Lozinke se ne podudaraju. 775 00:34:41,330 --> 00:34:44,459 Dakle, iako je to pop-up je ugly-- možemo zamijeniti ovu kraju 776 00:34:44,459 --> 00:34:47,000 s nečim kao što Bootstrap, što ćete vidjeti u pset sedam 777 00:34:47,000 --> 00:34:50,239 je vrlo popularan library-- jesam otkriti da su lozinke se ne podudaraju. 778 00:34:50,239 --> 00:34:50,739 U redu. 779 00:34:50,739 --> 00:34:52,530 Pa, neka mi popraviti kao korisnik. 780 00:34:52,530 --> 00:34:55,460 Dopustite mi ići naprijed i reći 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Još uvijek ne provjeri ugovor. 782 00:34:57,780 --> 00:35:00,210 Morate pristati na Uvjeti. 783 00:35:00,210 --> 00:35:01,760 Pa zašto? 784 00:35:01,760 --> 00:35:04,100 >> Ako smo već postavio da postoji način, 785 00:35:04,100 --> 00:35:07,260 a mi smo ti potrebna u pset sedam otkriti pogrešku 786 00:35:07,260 --> 00:35:09,780 uvjeti kao što je ovaj strani poslužitelja, zašto bih 787 00:35:09,780 --> 00:35:13,940 smetaju i to u JavaScriptu? 788 00:35:13,940 --> 00:35:15,850 Što je argument u korist dodavanja ono 789 00:35:15,850 --> 00:35:18,760 ste o kako bi vidjeli što some-- postoji dodatna složenost. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Možda nema naopako. 792 00:35:25,930 --> 00:35:26,924 Što bi to moglo biti? 793 00:35:26,924 --> 00:35:27,840 PUBLIKA: [nečujan]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID Malan: O, zanimljivo. 796 00:35:32,340 --> 00:35:33,530 Potencijalni eksploatira. 797 00:35:33,530 --> 00:35:37,540 Pa jeste, ako niste rukovanje pogrešan unos korisnika koja bi, 798 00:35:37,540 --> 00:35:40,170 možda je sve bolje, ako to ni ne dosegnete svoj poslužitelj. 799 00:35:40,170 --> 00:35:42,160 Ja bi gurnuti natrag tamo i recimo, vjerojatno biste trebali 800 00:35:42,160 --> 00:35:43,284 popraviti oba od tih problema. 801 00:35:43,284 --> 00:35:44,140 No, to je fer. 802 00:35:44,140 --> 00:35:44,710 Što drugo? 803 00:35:44,710 --> 00:35:45,626 >> PUBLIKA: [nečujan]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID Malan: Da. 806 00:35:49,014 --> 00:35:51,680 Ovaj kod, kao što smo rekli prije, tumačiti na strani klijenta. 807 00:35:51,680 --> 00:35:53,846 To ne smeta poslužitelja, što znači da ne 808 00:35:53,846 --> 00:35:55,930 utjecati teret ili je kapacitet poslužitelja. 809 00:35:55,930 --> 00:35:59,840 A sada, za malo stare mene, to nema značajnog učinka 810 00:35:59,840 --> 00:36:01,970 jer imam jedan korisnik upravo sada. 811 00:36:01,970 --> 00:36:04,010 >> Ali, ako ste bilo web stranice pristojne veličine, 812 00:36:04,010 --> 00:36:07,400 Posebno je najveći, kao što su Facebook, više možete zadržati ljude izvan 813 00:36:07,400 --> 00:36:09,927 vašeg poslužitelja bolje jer poslužitelj, naravno, 814 00:36:09,927 --> 00:36:12,510 samo ima konačnu količinu RAM-a, konačan broj GHz, 815 00:36:12,510 --> 00:36:16,340 konačan broj stvari to može učiniti po jedinici vremena. 816 00:36:16,340 --> 00:36:19,170 Dakle, ako ima više ljudi u svijet udaranje poslužitelja, 817 00:36:19,170 --> 00:36:21,750 slučajno se prijavite pogrešno, baš kao i ako vas 818 00:36:21,750 --> 00:36:23,254 može zadržati rasteretiti vaš poslužitelj. 819 00:36:23,254 --> 00:36:25,420 Osim toga, pogotovo na mobitelu device-- ako ste ikada 820 00:36:25,420 --> 00:36:29,190 prijavite se na my.harvard ili Yale je netid ili slično, 821 00:36:29,190 --> 00:36:32,330 tu je to kašnjenje s puno web stranice kao što je to čemu što je potrebno, 822 00:36:32,330 --> 00:36:34,110 kao, prokleto sekundu-dvije ponekad. 823 00:36:34,110 --> 00:36:37,979 A onda, Bože moj, ako pogrešno, onda morate uzvratiti i ponoviti ga. 824 00:36:37,979 --> 00:36:40,520 Tako je latencija, osobito na sporiji mrežnim vezama. 825 00:36:40,520 --> 00:36:43,030 Ali JavaScript, jer to radi na klijentu 826 00:36:43,030 --> 00:36:46,720 i ne treba ići naprijed i natrag preko potencijalno sporog interneta 827 00:36:46,720 --> 00:36:49,780 veze, možete dobiti gotovo trenutna povratna. 828 00:36:49,780 --> 00:36:50,760 >> Pa pogledajmo ovo. 829 00:36:50,760 --> 00:36:54,280 Dopustite mi da se otvori forma-0 i pogledajte HTML ovdje. 830 00:36:54,280 --> 00:36:56,040 I neka je samo vidjeti što se događa. 831 00:36:56,040 --> 00:36:59,460 To je oblik čija je akcija register.php. 832 00:36:59,460 --> 00:37:01,530 Ja sam samo pomoću dobiti tako da sam mogao vidjeti URL. 833 00:37:01,530 --> 00:37:05,030 Ali za lozinke, mi bismo sigurno želite da se to promijeni na post u stvarnosti. 834 00:37:05,030 --> 00:37:06,910 Evo polje za unos tipa teksta. 835 00:37:06,910 --> 00:37:09,050 Evo još jedan ulaz Područje tipa lozinkom. 836 00:37:09,050 --> 00:37:13,150 Evo, ako ste nikada nije vidio, unos tipa kućicu. 837 00:37:13,150 --> 00:37:15,250 >> Ali nema JavaScript Ovdje god. 838 00:37:15,250 --> 00:37:18,170 To je samo HTML da ide register.php. 839 00:37:18,170 --> 00:37:21,020 No, u verziji jedne, gdje sam počeo se one pop-up prozora, 840 00:37:21,020 --> 00:37:23,010 da vidimo što se zapravo događa ovdje. 841 00:37:23,010 --> 00:37:26,757 U verziji jednom, što Idem see-- I 842 00:37:26,757 --> 00:37:29,340 Mislio sam da bi moglo zatajiti dovoljno s dovoljno riječi, ali je ponestalo. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> U verziji one-- tamo idemo. 845 00:37:38,590 --> 00:37:43,180 U verziji jednom, primjećujete following-- i nije najbolji provedba, 846 00:37:43,180 --> 00:37:44,420 ali to je moj prvi. 847 00:37:44,420 --> 00:37:47,680 Obavijest da ispod oblik, imam oznaku skripte. 848 00:37:47,680 --> 00:37:49,430 I tag skriptu znači, hej, preglednik, ovdje 849 00:37:49,430 --> 00:37:52,340 dolazi neki kod u, obično, JavaScript. 850 00:37:52,340 --> 00:37:54,420 A sada, primijetiti što radim. 851 00:37:54,420 --> 00:37:59,070 Na line-- sam jedva pročitati it-- linija 32, ona kaže, 852 00:37:59,070 --> 00:38:01,420 var form-- mi tako dati varijabla zove forma. 853 00:38:01,420 --> 00:38:05,049 I onda bi document.getElementId o "registracije". 854 00:38:05,049 --> 00:38:05,590 Što je ovo? 855 00:38:05,590 --> 00:38:07,290 Pa, neka mi natrag ovdje. 856 00:38:07,290 --> 00:38:11,510 I napomena, ah, dala sam oblik elementa proizvoljna, ali opisno ideja 857 00:38:11,510 --> 00:38:13,050 registracije. 858 00:38:13,050 --> 00:38:16,820 Dakle, to mi daje varijablu koja mi omogućuje da iskoristite taj čvor, 859 00:38:16,820 --> 00:38:19,580 da pravokutnik u stablo naziva obrasca. 860 00:38:19,580 --> 00:38:24,460 form.onsubmit znači, hej preglednik, Registrirajte se događaj slušatelja 861 00:38:24,460 --> 00:38:25,470 na ovom obrascu. 862 00:38:25,470 --> 00:38:28,890 Drugim riječima, kada je ovaj obrazac podnesen, izvršiti sljedeći kod. 863 00:38:28,890 --> 00:38:30,810 To ne treba ime, jer Zašto trebate znati ime? 864 00:38:30,810 --> 00:38:32,880 Vi samo trebate znati Što izvršiti, ergo 865 00:38:32,880 --> 00:38:35,610 to je anonimni ili lambda funkcija. 866 00:38:35,610 --> 00:38:37,632 I to je funkcija sve ove linije ovdje. 867 00:38:37,632 --> 00:38:40,840 A sada, da budem iskren, čak i ako ne bi nikada napisao JavaScript 868 00:38:40,840 --> 00:38:44,200 prije, to je samo C i PHP logike. 869 00:38:44,200 --> 00:38:51,720 Dakle, ako form.email.value == "" - pa ako je polje e-mail je prazno, 870 00:38:51,720 --> 00:38:54,980 vikati na korisnika s "Morate dati svoju adresu e-pošte. " 871 00:38:54,980 --> 00:38:58,980 Inače, ako form.password.value je prazno vikati na korisnika, 872 00:38:58,980 --> 00:39:00,400 "Morate dati svoju lozinku." 873 00:39:00,400 --> 00:39:04,240 >> Još zanimljivije logično, Ako form.password.value ne 874 00:39:04,240 --> 00:39:08,630 jednako form.confirmation.value-- Odakle dolaze potvrda iz? 875 00:39:08,630 --> 00:39:09,470 Dopustite mi natrag. 876 00:39:09,470 --> 00:39:12,870 Pa, nazvao sam to ulaz Polje ovdje lozinkom. 877 00:39:12,870 --> 00:39:15,180 I ovdje se zove ovaj potvrde. 878 00:39:15,180 --> 00:39:17,850 Mogao sam ga nazvao Lozinka dva ili bilo što drugo. 879 00:39:17,850 --> 00:39:20,560 Ja samo logično provjeru da ove dvije su isti. 880 00:39:20,560 --> 00:39:25,760 Else-- ispada ovo je gospodin Boole again-- Booleova vrijednost, potvrdni okvir. 881 00:39:25,760 --> 00:39:29,810 Dakle, ako ja kažem, usklik point-- ako ne i form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 vikati na korisnika kao dobro. 883 00:39:31,820 --> 00:39:34,470 >> Dakle, to sintaksa vidjet ćete je vrlo česte u JavaScript, 884 00:39:34,470 --> 00:39:35,970 gdje imate ovu točkastu zapis. 885 00:39:35,970 --> 00:39:37,460 Možete početi s objektom ovdje. 886 00:39:37,460 --> 00:39:41,430 Možete roniti dublje a do svojstvo kao što je lozinka. 887 00:39:41,430 --> 00:39:43,280 I onda ste dobili na svojoj stvarnoj vrijednosti. 888 00:39:43,280 --> 00:39:45,830 I opet, ovdje je ulaz. 889 00:39:45,830 --> 00:39:47,310 Ovdje je ime lozinka. 890 00:39:47,310 --> 00:39:50,860 I njegova vrijednost je bez obzira na Ljudsko je zapravo upisali u. 891 00:39:50,860 --> 00:39:53,610 >> Tako je u svim tim slučajevi, vratio sam se lažno. 892 00:39:53,610 --> 00:39:55,800 Ali ako se ne vraćam istina. 893 00:39:55,800 --> 00:39:58,030 I tako sada vidimo uvjerljiv korištenje kada 894 00:39:58,030 --> 00:40:00,620 ti bi return false se zaustaviti što korisnik je radi 895 00:40:00,620 --> 00:40:03,200 i učiniti ga ili joj izabrati ponovno ili ponovno upisati. 896 00:40:03,200 --> 00:40:05,870 Inače, vraćamo istina. 897 00:40:05,870 --> 00:40:08,585 >> I neka mi predstaviti jedan druga varijanta to samo 898 00:40:08,585 --> 00:40:13,140 zasijati neko razumijevanje istih. 899 00:40:13,140 --> 00:40:16,850 Pa, u verziji 2. ovog, oblik-2-- Učinit ću to s pokretom ruke. 900 00:40:16,850 --> 00:40:19,920 To je, za one znatiželjan, jQuery verzija, 901 00:40:19,920 --> 00:40:23,330 one koji možda žele praćakati u toj knjižnici. 902 00:40:23,330 --> 00:40:25,145 Ali neka start-- i bilo kakvih pitanja? 903 00:40:25,145 --> 00:40:29,230 Dopustite mi stanka za trenutak jer da je brzo i mnogo. 904 00:40:29,230 --> 00:40:32,610 >> No, lijepa stvar ovdje je da sve koda je ljepušan velik dio isti. 905 00:40:32,610 --> 00:40:33,985 Nova stvar je što je dom? 906 00:40:33,985 --> 00:40:35,115 Što su ti pravokutnici? 907 00:40:35,115 --> 00:40:35,990 Što su ti čvorovi? 908 00:40:35,990 --> 00:40:37,540 Što je anonimni funkcija? 909 00:40:37,540 --> 00:40:38,830 Što je rukovatelj događaj? 910 00:40:38,830 --> 00:40:43,480 No, srećom, većina to je samo puni krug od, recimo, tjedan dana nula. 911 00:40:43,480 --> 00:40:43,980 U redu. 912 00:40:43,980 --> 00:40:46,070 Tako nešto zanimljivo nešto? 913 00:40:46,070 --> 00:40:49,340 Pa, prije svega, pustite me naprijed i otvoriti Google Maps. 914 00:40:49,340 --> 00:40:53,360 A vi ćete primijetiti da je za Trenutak, na djelić sekunde, 915 00:40:53,360 --> 00:40:55,930 primijetiti što se događa kada Ja kliknite dovoljno brzo. 916 00:40:55,930 --> 00:40:59,720 I ova veza na Harvardu je tako brzo da zapravo ne primjećujete. 917 00:40:59,720 --> 00:41:04,469 Ali što ti vrsta vrsta vidjeti ako ja kliknite i povucite jako brzo? 918 00:41:04,469 --> 00:41:07,010 Oni od vas gleda na internetu, ako usporiti to brzinom 0,5x, 919 00:41:07,010 --> 00:41:09,640 možete vidjeti bolje. 920 00:41:09,640 --> 00:41:13,550 >> Što se događa samo prije nego što sam kliknuo i vukao? 921 00:41:13,550 --> 00:41:15,900 Dopustite mi da pokušam here-- neka mi učiniti nešto drugo, kao što je 90210. 922 00:41:15,900 --> 00:41:17,550 Idemo daleko. 923 00:41:17,550 --> 00:41:19,000 To je bilo jako brzo, previše. 924 00:41:19,000 --> 00:41:22,460 Kako o Disney World? 925 00:41:22,460 --> 00:41:23,190 Idemo tamo. 926 00:41:23,190 --> 00:41:23,690 U REDU. 927 00:41:23,690 --> 00:41:26,030 Što ste vidjeli na djelić sekunde? 928 00:41:26,030 --> 00:41:27,200 Baš kao što, trgovima, zar ne? 929 00:41:27,200 --> 00:41:28,930 Rezervirana mjesta za pločice? 930 00:41:28,930 --> 00:41:30,270 >> Pa, što se ovdje događa? 931 00:41:30,270 --> 00:41:35,410 Google Maps je lijep primjer ova tehnologija koja se zove AJAX. 932 00:41:35,410 --> 00:41:38,510 I ovo je mjesto gdje ćemo početi koristite JavaScript u posebno 933 00:41:38,510 --> 00:41:39,277 primamljiv način. 934 00:41:39,277 --> 00:41:41,610 Natrag u dan, nije bilo ove web stranice zove MapQuest. 935 00:41:41,610 --> 00:41:44,120 I ja sam trebala uzet Screenshot to od 1990-ih, 936 00:41:44,120 --> 00:41:45,820 gdje ako ste htjeli pogledati ovdje na karti, 937 00:41:45,820 --> 00:41:48,590 ti bi doslovno kliknite strelicu gore na vrhu koji vam je pokazao 938 00:41:48,590 --> 00:41:49,870 drugačiji kvadrat karte. 939 00:41:49,870 --> 00:41:51,790 Ako biste željeli pomicanje lijevo, te klikne strelicu koja vam je pokazao 940 00:41:51,790 --> 00:41:53,210 drugačiji kvadrat karte. 941 00:41:53,210 --> 00:41:54,840 I neke web stranice je i danas. 942 00:41:54,840 --> 00:41:57,820 No, čak i MapQuest je stečen bolje, kao što su Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> Umjesto toga, ono što je bolje to dana je web stranice koje koriste AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- mesar Asinkroni JavaScript i XML, 945 00:42:04,510 --> 00:42:08,370 što je samo fancy način govoreći tehnologija ili tehnika koja 946 00:42:08,370 --> 00:42:14,200 omogućuje preglednik pomoću JavaScript napraviti dodatne HTTP zahtjeva 947 00:42:14,200 --> 00:42:16,390 nakon što je stranica je učitan. 948 00:42:16,390 --> 00:42:17,479 Dakle, što to znači? 949 00:42:17,479 --> 00:42:19,270 Pa, to bi bilo kakav neugodno u Gmailu 950 00:42:19,270 --> 00:42:21,103 ako svaki put kad je htio provjeriti svoj mail, 951 00:42:21,103 --> 00:42:24,940 doslovno udario Kontrola-R ili Naredba-R ili kliknite na gumb Osvježi 952 00:42:24,940 --> 00:42:26,580 a cijeli prokleto stranica će se ponovno učitati. 953 00:42:26,580 --> 00:42:26,800 Pravo? 954 00:42:26,800 --> 00:42:28,460 To bi bljesak bijele Vjerojatno za sekundu. 955 00:42:28,460 --> 00:42:30,043 Ti bi vidjeti glupu napredak šipka. 956 00:42:30,043 --> 00:42:33,170 I samo da vidi ako imate novu pošte, cijela web stranica i URL 957 00:42:33,170 --> 00:42:34,580 ste u će morati ponovno učitavanje. 958 00:42:34,580 --> 00:42:35,960 >> Ali to nije ono što se događa u Gmailu. 959 00:42:35,960 --> 00:42:36,459 Pravo? 960 00:42:36,459 --> 00:42:40,300 Kada dobijete novu e-poštu u Gmail, ono što se događa na ekranu? 961 00:42:40,300 --> 00:42:41,480 To samo pokazuje da se, zar ne? 962 00:42:41,480 --> 00:42:44,280 To samo magično pojavi kao novi redak u tablici. 963 00:42:44,280 --> 00:42:47,030 To zapravo uključuje pristojan iznos složenosti. 964 00:42:47,030 --> 00:42:51,892 Zapravo, ako mislite o ovom stablu, koji iako je jednostavan ovdje 965 00:42:51,892 --> 00:42:54,100 Gmail-- i ja bih pogledati na kodu da bude sure-- 966 00:42:54,100 --> 00:42:58,710 Vjerojatno ima HTML tablicu ili možda neuređen popis da čini 967 00:42:58,710 --> 00:43:01,060 svaki od vaših inbox e-pošte kao. 968 00:43:01,060 --> 00:43:04,050 >> I tako, ako zamislite to postoji je stablo u memoriji kada ste 969 00:43:04,050 --> 00:43:09,050 koristiti Gmail što izgleda vrsta vrsta ovako, kada je Google shvaća, ooh, 970 00:43:09,050 --> 00:43:12,770 imate novi e-mail, to ne žele obnoviti cijeli stablo. 971 00:43:12,770 --> 00:43:16,430 Umjesto toga, on želi pronaći čvor u stablo koje predstavlja vaš inbox 972 00:43:16,430 --> 00:43:18,580 i samo stavite novi čvor. 973 00:43:18,580 --> 00:43:24,640 >> Dakle, vrlo slično pset pet, gdje vas morali umetnuti čvorova u hash tablici, 974 00:43:24,640 --> 00:43:28,410 Slično se Google, preko JavaScript kôd koji se piše, 975 00:43:28,410 --> 00:43:31,890 Traverse ovog stabla, shvatiti gdje je da Spremnik dio prozora, 976 00:43:31,890 --> 00:43:33,440 a zatim umetnuti novi redak. 977 00:43:33,440 --> 00:43:37,460 A novi red samo znači jedno ili više novih čvorova u stablu. 978 00:43:37,460 --> 00:43:41,340 >> I tako AJAX je ova tehnika koji omogućuje upravo to. 979 00:43:41,340 --> 00:43:44,440 Nakon što ste posjetili URL, Međutim ludi dugo je, 980 00:43:44,440 --> 00:43:46,472 a kada je stranica učitan, još uvijek možete 981 00:43:46,472 --> 00:43:48,430 zgrabite više podataka iz internet-- li je 982 00:43:48,430 --> 00:43:52,460 e-mail ili pločica od map-- iskoristite ga iza kulisa 983 00:43:52,460 --> 00:43:55,290 a zatim ga umetnite u stranicu tako da je ljudsko ne stvarno 984 00:43:55,290 --> 00:43:56,910 morati pričekati za to. 985 00:43:56,910 --> 00:43:58,980 >> Facebook Messenger radi na isti način. 986 00:43:58,980 --> 00:44:01,562 Bilo koji broj ostalih websites-- Oh, zapravo, čak i to. 987 00:44:01,562 --> 00:44:04,270 Mislim, ovo je, iskreno, vrsta neugodno značajka ovih dana. 988 00:44:04,270 --> 00:44:07,500 Ako sam početi tražiti cats-- to je vrsta grozan korisničko iskustvo. 989 00:44:07,500 --> 00:44:08,990 To samo počinje u potrazi za mene. 990 00:44:08,990 --> 00:44:10,050 Pa što se to radi? 991 00:44:10,050 --> 00:44:12,920 URL stvarno nije promijenila otkad sam počeo tipkati. 992 00:44:12,920 --> 00:44:17,330 No, što se događa diljem wire-- redu, hmm zanimljivo. 993 00:44:17,330 --> 00:44:20,470 Što se događa diljem Žica ovdje samo dobiva čudnije. 994 00:44:20,470 --> 00:44:21,090 >> U REDU. 995 00:44:21,090 --> 00:44:24,670 Pa neka mi ići naprijed i pregledajte element i idite na karticu Network 996 00:44:24,670 --> 00:44:27,040 i pokušati napraviti ovo tehnički i manje o mačkama. 997 00:44:27,040 --> 00:44:32,595 Kao što sam tip, doslovno, mačke and-- što se događa 998 00:44:32,595 --> 00:44:37,710 per-- neću kliknuti to. 999 00:44:37,710 --> 00:44:38,210 U redu. 1000 00:44:38,210 --> 00:44:44,280 Dakle ovdje, što se događa svaki Vrijeme sam upišete, očito? 1001 00:44:44,280 --> 00:44:45,000 Kao, niska razina? 1002 00:44:45,000 --> 00:44:47,860 Što se događa sa svakim od njih likove sam tipkati na moje tipkovnice? 1003 00:44:47,860 --> 00:44:48,359 Da? 1004 00:44:48,359 --> 00:44:50,950 PUBLIKA: [nečujan]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID Malan: Točno. 1006 00:44:52,340 --> 00:44:55,600 Svaka od tih znakova je ide na Google, jednu po jednu. 1007 00:44:55,600 --> 00:44:58,490 Oni su izgradnju niz na njihovom poslužitelju koji predstavlja 1008 00:44:58,490 --> 00:44:59,936 sve što sam upisali u do sada. 1009 00:44:59,936 --> 00:45:01,810 I svaki put sam tip još jedan lik, oni 1010 00:45:01,810 --> 00:45:04,530 koristiti svoj tajni umak od A algoritam za pretraživanje i shvatiti, 1011 00:45:04,530 --> 00:45:07,370 on znači ova mačka stranicu ili je to mačka stranica ili slično? 1012 00:45:07,370 --> 00:45:10,620 Dakle, u nekom smislu, to mi pruža bolje iskustvo da radim ni 1013 00:45:10,620 --> 00:45:11,860 potrebno je završiti svoju misao. 1014 00:45:11,860 --> 00:45:14,440 I doista, to je korisno stvar, samodovršetak u cjelini. 1015 00:45:14,440 --> 00:45:17,690 Ako su njihovi algoritmi su dovoljno dobri a ako su moje pretraga dovoljno očite, 1016 00:45:17,690 --> 00:45:19,300 Ne morate upisati cijelu riječ. 1017 00:45:19,300 --> 00:45:22,110 Oni će mi reći što je to se ja zapravo tražim. 1018 00:45:22,110 --> 00:45:25,940 Dakle, ono što Google naziva Instant traži samo pomoću AJAX, 1019 00:45:25,940 --> 00:45:30,820 pomoću koda koji im omogućuje da zatraže dodatni sadržaj putem web preglednika 1020 00:45:30,820 --> 00:45:34,026 iza kulisa koriste ovo novi jezik, JavaScript. 1021 00:45:34,026 --> 00:45:35,400 Dakle, imamo par minuta preostalo. 1022 00:45:35,400 --> 00:45:37,710 I neka mi nazvati moj prijatelj Colton na pozornicu, 1023 00:45:37,710 --> 00:45:40,090 jer se činilo osobito zabavno zadnji put 1024 00:45:40,090 --> 00:45:42,290 uvođenje tehnologije da su neki od vas 1025 00:45:42,290 --> 00:45:44,769 izrazili interes u za konačne projekte. 1026 00:45:44,769 --> 00:45:47,310 Mislili smo da bi bilo zabavno da bi do volonter, ipak, danas 1027 00:45:47,310 --> 00:45:50,074 da vam pokazati dodatak to da you-- omogućuje da, 1028 00:45:50,074 --> 00:45:50,990 Prvi put vidio sam ovu ruku. 1029 00:45:50,990 --> 00:45:52,900 Dođi gore. 1030 00:45:52,900 --> 00:45:53,560 Vrlo dobro učinio. 1031 00:45:53,560 --> 00:45:55,035 Dobar posao. 1032 00:45:55,035 --> 00:45:57,410 Idem projicirati to na zaslon u samo trenutak. 1033 00:45:57,410 --> 00:45:58,150 Koje je vaše ime za sve? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: Ja sam 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: Da. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID Malan: Lijepo vas je vidjeti. 1040 00:46:01,250 --> 00:46:01,600 U redu. 1041 00:46:01,600 --> 00:46:02,590 Dopustite mi da to spremni. 1042 00:46:02,590 --> 00:46:04,423 Dođite na to Srednji sa Colton ovdje. 1043 00:46:04,423 --> 00:46:07,050 Što Colton ima u rukama Danas je daljinski upravljač. 1044 00:46:07,050 --> 00:46:10,440 Dakle, umjesto da samo stajati tamo u trodimenzionalni svijet gleda oko 1045 00:46:10,440 --> 00:46:14,080 kao Colton učinio, sada EFA može zapravo hodaju okolo po ide gore, 1046 00:46:14,080 --> 00:46:16,689 dolje, lijevo i desno poput Nintendo ili Xbox kontroler. 1047 00:46:16,689 --> 00:46:18,230 EFA: Idem da padne s pozornice. 1048 00:46:18,230 --> 00:46:20,500 DAVID Malan: Hoću stajati otprilike ovdje. 1049 00:46:20,500 --> 00:46:21,991 Ali to je rizik. 1050 00:46:21,991 --> 00:46:22,490 U REDU. 1051 00:46:22,490 --> 00:46:25,690 Pa ići naprijed i staviti one na. 1052 00:46:25,690 --> 00:46:29,315 Dopustite mi ići naprijed i prebacivanje na zaslon ovdje. 1053 00:46:29,315 --> 00:46:30,670 Dopustite mi dim svjetla. 1054 00:46:30,670 --> 00:46:32,780 I Colton, neka me dolaze stajati pored tebe. 1055 00:46:32,780 --> 00:46:35,520 >> Želite li objasniti ovdje s mikrofonom što radimo? 1056 00:46:35,520 --> 00:46:36,380 Izvoli. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Naravno. 1058 00:46:37,280 --> 00:46:39,980 Dakle, sada smo učitava se Oculus, 1059 00:46:39,980 --> 00:46:43,070 Mislim operating-- ne radi sustav, ali je glavni program, u kojem 1060 00:46:43,070 --> 00:46:46,630 možete pristupiti svim igrama i aplikacije koje su u vašoj knjižnici. 1061 00:46:46,630 --> 00:46:50,060 Pa sad, to treba reći dodirnite touchpad za početak. 1062 00:46:50,060 --> 00:46:53,430 Touchpad će biti na desna strana slušalice. 1063 00:46:53,430 --> 00:46:54,569 Pa ići naprijed i tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: Oh, čovječe. 1065 00:46:55,110 --> 00:46:56,443 DAVID Malan: Da, tamo idete. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Kvaliteta EFA je viđenje je puno kvalitetniji. 1068 00:47:02,460 --> 00:47:03,831 Ovo je samo Wi-Fi ovdje. 1069 00:47:03,831 --> 00:47:05,580 COLTON: Pa što si će htjeti raditi 1070 00:47:05,580 --> 00:47:08,350 je gledati prema vrhu Pravo na zaslonu. 1071 00:47:08,350 --> 00:47:10,420 Da, da igra na samom vrhu desno. 1072 00:47:10,420 --> 00:47:14,780 I onda kada ste odabiru je, ponovno dotaknite dodirnu plohu. 1073 00:47:14,780 --> 00:47:17,010 Mislim na Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 A onda je ovdje A- ovdje, neka mi držite naočale za vas. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Zato sam mu samo dao kontroler. 1077 00:47:25,790 --> 00:47:28,886 Tako sada on može kontrolirati igru. 1078 00:47:28,886 --> 00:47:30,510 On može kretati i stvari kao što je to. 1079 00:47:30,510 --> 00:47:31,968 Dakle, ići naprijed i gledati na vrh. 1080 00:47:31,968 --> 00:47:33,640 Te bi trebao vidjeti novu igru. 1081 00:47:33,640 --> 00:47:36,310 Pa ići naprijed i to možete učiniti. 1082 00:47:36,310 --> 00:47:39,320 Sada biste trebali biti u mogućnosti kontrolirati se s kontrolerom, 1083 00:47:39,320 --> 00:47:43,860 kao i, što je prije igra učitava ovdje. 1084 00:47:43,860 --> 00:47:46,356 To može biti malo zastrašujuće. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: Sad mi reci. 1086 00:47:47,300 --> 00:47:50,132 U REDU. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: U redu. 1088 00:47:51,080 --> 00:47:52,650 Dakle, potvrđuju da možete kretati. 1089 00:47:52,650 --> 00:47:52,750 U REDU. 1090 00:47:52,750 --> 00:47:53,583 Možete se kretati. 1091 00:47:53,583 --> 00:47:54,300 Savršeno. 1092 00:47:54,300 --> 00:47:56,470 Dakle, ako pogledate dolje, imate kartu. 1093 00:47:56,470 --> 00:47:58,170 Karta ti pokazuje gdje si. 1094 00:47:58,170 --> 00:47:59,720 Možete pogledati po sobi. 1095 00:47:59,720 --> 00:48:01,440 Možete potpuno okrenuti. 1096 00:48:01,440 --> 00:48:02,128 Da, točno. 1097 00:48:02,128 --> 00:48:02,627 Okrenuti se. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Pa pogledajte na svoju lijevu stranu. 1100 00:48:07,125 --> 00:48:09,875 Mislim da postoji nešto što možete pokupiti na bačve u sobi. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: Kako mogu dobiti map zabit? 1102 00:48:11,709 --> 00:48:12,375 COLTON: Potražite. 1103 00:48:12,375 --> 00:48:12,980 Dovoljno je pogledati gore. 1104 00:48:12,980 --> 00:48:13,480 U redu. 1105 00:48:13,480 --> 00:48:13,765 Izvoli. 1106 00:48:13,765 --> 00:48:15,181 Sada idi naprijed i samo okrenuti. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Pa pogledajte dalje na svom lijevo. 1109 00:48:24,620 --> 00:48:25,530 Držite se kreće lijevo. 1110 00:48:25,530 --> 00:48:26,960 Držite gleda lijevo. 1111 00:48:26,960 --> 00:48:27,541 Nastavi. 1112 00:48:27,541 --> 00:48:28,040 Da. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: Oh, na taj način. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Da. 1115 00:48:29,261 --> 00:48:30,999 Šetnja prema njoj s kontrolerom. 1116 00:48:30,999 --> 00:48:31,540 Izvoli. 1117 00:48:31,540 --> 00:48:32,790 Sada to treba reći to podići. 1118 00:48:32,790 --> 00:48:33,360 Izvoli. 1119 00:48:33,360 --> 00:48:34,290 Podignuti. 1120 00:48:34,290 --> 00:48:35,550 U redu. 1121 00:48:35,550 --> 00:48:38,286 Sada, neka je izaći iz ove sobe. 1122 00:48:38,286 --> 00:48:42,209 Idi naprijed i prošetati do vrata. 1123 00:48:42,209 --> 00:48:45,000 Dakle, ti si idući u hold-- ona kaže držite tipku na silu otvoriti. 1124 00:48:45,000 --> 00:48:46,333 Pa ići naprijed i držite gumb. 1125 00:48:46,333 --> 00:48:48,250 Da, prisiljavajući ga otvoriti. 1126 00:48:48,250 --> 00:48:48,750 U redu. 1127 00:48:48,750 --> 00:48:49,410 Dobar posao. 1128 00:48:49,410 --> 00:48:50,826 Sada smo hodanje iz sobe. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Zato ću ostaviti ostatak do vama i vidjeti što ste saznali. 1131 00:49:01,366 --> 00:49:02,865 EFA: Ne idem u mračnoj sobi. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 Čekaj. 1134 00:49:07,815 --> 00:49:09,314 Sada moram ići niz mračnu dvoranu? 1135 00:49:09,314 --> 00:49:10,785 OK, vraćam [nečujan]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: U redu. 1138 00:49:16,270 --> 00:49:17,560 Neki više stavki pokupiti. 1139 00:49:17,560 --> 00:49:19,370 Izgleda kao neki novac. 1140 00:49:19,370 --> 00:49:22,242 To je zaključavanje pokupiti. 1141 00:49:22,242 --> 00:49:24,200 Dakle, ako ste pronašli zaključan Vrata, možete koristiti. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Jeste li uplašeni? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: Ne još. 1145 00:49:29,371 --> 00:49:29,871 COLTON: U redu. 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend-- da. 1148 00:49:35,497 --> 00:49:37,330 Samo pretvarati da si zapravo stoji tamo. 1149 00:49:37,330 --> 00:49:39,580 A ako uključite around-- moraš naviknuti na to. 1150 00:49:39,580 --> 00:49:40,752 Ali to ima smisla. 1151 00:49:40,752 --> 00:49:43,960 DAVID Malan: I dok EFA nastavlja igrati, jer smo mogli učiniti cijeli dan, 1152 00:49:43,960 --> 00:49:45,381 možemo svi tip-nožni prst ovdje. 1153 00:49:45,381 --> 00:49:48,130 Ali imamo još dva para, Ako želite da se i igrati. 1154 00:49:48,130 --> 00:49:49,980 Inače, vidjet ćemo sljedeći put u srijedu. 1155 00:49:49,980 --> 00:49:51,354 Hvala vam na naš volonter danas. 1156 00:49:51,354 --> 00:49:52,101 [PLJESAK] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [MUSIC - "Seinfeld TEMA"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 SPEAKER 1: Pa, ja sam stavljajući novi PL montirati na. 1161 00:50:00,180 --> 00:50:01,800 Upravo sam promijenio OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> ZVUČNIK 2: Pa što točno radiš? 1163 00:50:03,980 --> 00:50:07,063 >> SPEAKER 1: Pa, svatko od these-- ovdje, ja ću vam pokazati jedan u ovdje. 1164 00:50:07,063 --> 00:50:08,690 Možete ga vidjeti ovdje. 1165 00:50:08,690 --> 00:50:09,510 >> SPEAKER 3: Mislim da sam dobar s njima. 1166 00:50:09,510 --> 00:50:09,933 Želite još? 1167 00:50:09,933 --> 00:50:11,325 >> SPEAKER 4: Ne, ja sam dobar. [Nečujan]. 1168 00:50:11,325 --> 00:50:12,200 >> SPEAKER 3: Ne, [nečujan]. 1169 00:50:12,200 --> 00:50:12,700 Imati neke. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 SPEAKER 1: Različite boje. 1172 00:50:22,290 --> 00:50:22,890 ZVUČNIK 2: OK. 1173 00:50:22,890 --> 00:50:26,690 SPEAKER 1: Dakle u konačnici to što ipak se podešava boju of--