1 00:00:00,000 --> 00:00:02,862 >> [Muusika mängib] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID Humala: See on CS50. 4 00:00:11,580 --> 00:00:12,880 See on algusest nädalal üheksa. 5 00:00:12,880 --> 00:00:15,797 Ja see on see, mida oleks olnud hr Boole 200. sünnipäeva. 6 00:00:15,797 --> 00:00:17,630 Nii et see on stipendiaatide kellele oleme viidanud 7 00:00:17,630 --> 00:00:21,800 Juba mõnda korda, kuidas kasutada Loogiline muutujad õige ja vale, 8 00:00:21,800 --> 00:00:22,910 1 ja 0 ja selline. 9 00:00:22,910 --> 00:00:25,270 Ja see oli Google'i Tribute to teda täna. 10 00:00:25,270 --> 00:00:26,489 Ta oleks saanud 200. 11 00:00:26,489 --> 00:00:28,280 Nii et kui soovite liitu meiega CS50 lõunaeine 12 00:00:28,280 --> 00:00:30,279 heita pilk link muidugi kodulehel. 13 00:00:30,279 --> 00:00:33,580 Ja selline nägu ja sõpradele Nende ootame teid siin Cambridge. 14 00:00:33,580 --> 00:00:35,360 Näod nagu need ootavad teid New Haven. 15 00:00:35,360 --> 00:00:37,800 Ja tegelikult, Ken New Haven lahkelt teinud 16 00:00:37,800 --> 00:00:41,594 mida nimetatakse animeeritud GIF Eli siin hiljutisel lunch-- GIF on veel 17 00:00:41,594 --> 00:00:44,260 teise graafilise failivorming, kellega sa oled familiar-- et 18 00:00:44,260 --> 00:00:46,300 tundub veidi midagi sellist. 19 00:00:46,300 --> 00:00:48,179 Nii lihtsalt jada of-- OK. 20 00:00:48,179 --> 00:00:49,720 Keegi siin Cambridge naerab. 21 00:00:49,720 --> 00:00:51,720 Kuid New Haven, käesoleva on tõesti naljakas, eks? 22 00:00:51,720 --> 00:00:52,350 Hästi. 23 00:00:52,350 --> 00:00:53,940 >> Nii ei liitu meiega seal. 24 00:00:53,940 --> 00:00:55,900 Siin Harvardi Konkreetsemalt sel kolmapäeval, 25 00:00:55,900 --> 00:00:59,480 kui sa oled üliõpilane või uustulnuk even-- või isegi junior-- mõelnud teha 26 00:00:59,480 --> 00:01:01,563 lüliti sisse arvuti teaduse, tean, et saad 27 00:01:01,563 --> 00:01:04,440 Ole CS nõustamine õiglane see Kolmapäev, varsti pärast klassi 28 00:01:04,440 --> 00:01:08,040 4:00 arvutis teaduse hoone Maxwell Dworkin. 29 00:01:08,040 --> 00:01:11,890 Me paneme selle kohta kursuse veebisait homme, samuti. 30 00:01:11,890 --> 00:01:14,430 Donuts, ma ütlesin, saab kätte. 31 00:01:14,430 --> 00:01:15,180 >> Hästi. 32 00:01:15,180 --> 00:01:18,790 Nii naljakas story-- olin poking ümber internet, 33 00:01:18,790 --> 00:01:23,575 ja ma leidsin mõned vanad arhiivid minu endine kodulehel. 34 00:01:23,575 --> 00:01:25,950 Ja selgub out-- selle ümber aega, tundub väga aktuaalne 35 00:01:25,950 --> 00:01:28,910 kuna ma aru, et UC valimised on umbes käik uuesti. 36 00:01:28,910 --> 00:01:32,230 Nii et ma jooksin UC, kaotas vaeselt. 37 00:01:32,230 --> 00:01:34,770 Ja võib-olla oli see osaliselt, miks. 38 00:01:34,770 --> 00:01:37,600 Nii et see oli minu koduleheküljel ajal. 39 00:01:37,600 --> 00:01:40,477 Mingil põhjusel ma arvasin, et see oli hea mõte, enne ütlen inimestele 40 00:01:40,477 --> 00:01:43,310 Mis minu platvorm oli ja miks nad peaks hääletama mulle, et neil on 41 00:01:43,310 --> 00:01:47,770 klõpsata sisenemiseks teada, et informatsioon, mis tagantjärele on 42 00:01:47,770 --> 00:01:48,660 selline jube. 43 00:01:48,660 --> 00:01:50,910 Ma tõesti ei tea, mis see oli. 44 00:01:50,910 --> 00:01:53,140 >> Aga kindlasti ei ole aidata oma kampaania. 45 00:01:53,140 --> 00:01:56,874 Avastasin, et vanemate year-- Mul oli see Muppet kalender. 46 00:01:56,874 --> 00:01:58,540 Muppets olid omamoodi moes siis. 47 00:01:58,540 --> 00:01:59,456 Või äkki nad ei olnud. 48 00:01:59,456 --> 00:02:01,790 Mul oli Muppet kalender siis. 49 00:02:01,790 --> 00:02:04,860 Ja ma arvasin, et see oleks lahe nimi minu arvuti Harvard võrgus 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 Ajal, meil kõigil oli üheselt tuvastatav serveri nime. 52 00:02:10,370 --> 00:02:13,150 Ja sa võid valida mõned edevus nimi asemel oma nime. 53 00:02:13,150 --> 00:02:15,580 Ja ma läksin tuuker mingil põhjusel. 54 00:02:15,580 --> 00:02:19,040 >> Ja siis ma started-- veetsin palju aega klikkides neid linke 55 00:02:19,040 --> 00:02:20,280 täna hommikul. 56 00:02:20,280 --> 00:02:24,690 Ja see oli minu kohta lehel mis nüüd selline tundub jumalik. 57 00:02:24,690 --> 00:02:28,210 Aga see ka tunnistust ainult kui kaugele tehnoloogia on jõudnud. 58 00:02:28,210 --> 00:02:30,310 Ma mõtlen, et juba järgmisel päeval, 486 oli midagi. 59 00:02:30,310 --> 00:02:34,090 Nendel päevadel, see on super, super, super aeglane ja ka vähem 60 00:02:34,090 --> 00:02:36,216 kui sa oleks võinud oma omast taskust nendel päevadel. 61 00:02:36,216 --> 00:02:38,465 Seal on rohkem seal, et oli isegi piinlik. 62 00:02:38,465 --> 00:02:39,770 Nii et ma jätan ta seda. 63 00:02:39,770 --> 00:02:42,640 Aga see oli minu esimene Tuhoamisretki web-- oh ei. 64 00:02:42,640 --> 00:02:43,180 See polnud. 65 00:02:43,180 --> 00:02:47,000 Minu esimene tõeline Tuhoamisretki veebi programmeerimine oli selles kohas, mida ma lihtsalt unustasin. 66 00:02:47,000 --> 00:02:50,620 Mingil hetkel sain teada, kuidas teha korduvaid taustapilte. 67 00:02:50,620 --> 00:02:55,260 Ja nii ma leidsin selle plaatimistööd tõhusad, nagu hokimängija, jalgpall ja golf 68 00:02:55,260 --> 00:02:58,040 pall, või mis iganes see on jaoks Frosh IEd kodulehel. 69 00:02:58,040 --> 00:03:01,390 Ja see oli tegelikult, tegelikult esitas Esimene veebipõhine projekti võtsin nüüd-- 70 00:03:01,390 --> 00:03:03,880 Ma arvan, et võibolla üliõpilane aastal, junior year-- 71 00:03:03,880 --> 00:03:07,622 pärast pildistamist CS50 ja CS51, üks Ühise follow-klassi. 72 00:03:07,622 --> 00:03:09,330 Märkasin otsin läbi arhiivi 73 00:03:09,330 --> 00:03:12,150 et üks mu pärijatele ja sõbrad, Lee, millist muutunud 74 00:03:12,150 --> 00:03:13,480 autoriõigus ise. 75 00:03:13,480 --> 00:03:17,520 Aga see oli tõesti midagi sellist Ma peaks ise piinlikkust. 76 00:03:17,520 --> 00:03:19,370 Aga ajal, seda oli esimene veebileht, 77 00:03:19,370 --> 00:03:22,220 nagu ma ütlesin paar nädalat tagasi, mille uustulnuk saanud 78 00:03:22,220 --> 00:03:24,350 registreerida koduseinte spordi siin. 79 00:03:24,350 --> 00:03:27,950 Ja nii see osutub et taustapilte 80 00:03:27,950 --> 00:03:29,530 niimoodi ei ole nii hea idee. 81 00:03:29,530 --> 00:03:31,840 Aga veebis oli uus ja olime kõik katsetavad. 82 00:03:31,840 --> 00:03:34,310 Ja see on see, mida ma ilmselt tegid sel ajal. 83 00:03:34,310 --> 00:03:34,810 Hästi. 84 00:03:34,810 --> 00:03:38,020 Nii ilma pikema jututa, me minna käiku täna teile, tõesti, 85 00:03:38,020 --> 00:03:42,250 lõplik tükk, mis võivad teile Eriti kasulik lõplik projektide 86 00:03:42,250 --> 00:03:44,780 aga ka seda, et hakkab muuta kogu veeb 87 00:03:44,780 --> 00:03:46,680 tunnen natuke arusaadavamaks. 88 00:03:46,680 --> 00:03:49,460 Tõepoolest, me ei kavatse võtta kasutusele veel üks programmeerimiskeelt 89 00:03:49,460 --> 00:03:52,474 nimetatakse JavaScript, mis on sarnane ja erinevaid erinevalt 90 00:03:52,474 --> 00:03:54,140 alates keeltes me vaatasime siiani. 91 00:03:54,140 --> 00:03:55,807 >> Nii C, meenutavad, on see koostatud keeles. 92 00:03:55,807 --> 00:03:57,473 Sul on käivitada see läbi koostaja. 93 00:03:57,473 --> 00:03:59,810 Sa saad lähtekoodi vastuväiteid kood või nullidega ja need. 94 00:03:59,810 --> 00:04:03,000 Ja need on nullid ja need, mis Sinu CPU, Central Processing Unit, 95 00:04:03,000 --> 00:04:04,360 tegelikult aru. 96 00:04:04,360 --> 00:04:06,610 PHP seevastu ei ole kompileeritud keeles. 97 00:04:06,610 --> 00:04:08,772 See on see, mida? 98 00:04:08,772 --> 00:04:09,980 See on tõlgendatud keeles. 99 00:04:09,980 --> 00:04:11,750 Nii et mingi programmi nimetatakse tõlk, et 100 00:04:11,750 --> 00:04:13,708 on lugeda see-- ülevalt alt, vasakult right-- 101 00:04:13,708 --> 00:04:16,519 ja aru saada, mis kõik Sinu süntaks teeb ja tähendab, 102 00:04:16,519 --> 00:04:20,200 kas see on loop või seisund või mis tahes muu arvu programmeerimine 103 00:04:20,200 --> 00:04:20,740 konstrueerib. 104 00:04:20,740 --> 00:04:22,210 Nii et tõlgendanud keeles. 105 00:04:22,210 --> 00:04:23,910 >> Siis tutvustas HTML. 106 00:04:23,910 --> 00:04:26,440 Ja HTML ei ole isegi programmeerimiskeelt. 107 00:04:26,440 --> 00:04:28,110 Tahame kutsuda mida? 108 00:04:28,110 --> 00:04:31,650 Märgistuskeel, mis on lihtsalt mingi fancy viis öelda seda 109 00:04:31,650 --> 00:04:35,820 ei ole programmeerimisega konstruktsioone, nagu nägime isegi juba järgmisel päeval Scratch. 110 00:04:35,820 --> 00:04:36,720 Puuduvad silmuseid. 111 00:04:36,720 --> 00:04:37,920 Puuduvad tingimustel. 112 00:04:37,920 --> 00:04:40,820 See on tõesti keel umbes märgistus on teie andmeid 113 00:04:40,820 --> 00:04:43,620 ja vormindamist või struktureerimise see mingil moel. 114 00:04:43,620 --> 00:04:46,147 >> CSS, vahepeal sarnaselt ei programmeerimiskeelt. 115 00:04:46,147 --> 00:04:47,730 See on isegi rohkem esteetiliselt orienteeritud. 116 00:04:47,730 --> 00:04:50,470 Ja see võimaldab teil sorteerida ning peensusteni asjad kirja suurus ja värv 117 00:04:50,470 --> 00:04:51,850 ja paigutuse ning kõike seda. 118 00:04:51,850 --> 00:04:52,370 Siis oli meil 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Nii SQL on tõepoolest programmeerimine keelt mingis mõttes, 121 00:04:56,010 --> 00:04:59,330 kuigi kohandatud spetsiaalselt andmebaasides. 122 00:04:59,330 --> 00:05:03,347 Aga isegi kui me ainult tutvustab teile valida ja sisestada ja kustutada ja uuendada 123 00:05:03,347 --> 00:05:05,430 ja paar teistega Selgub, saate tegelikult 124 00:05:05,430 --> 00:05:07,380 kirjuta funktsioone või menetlused, nagu nad on 125 00:05:07,380 --> 00:05:11,270 nimetatakse, SQL, et otsida ja tegutseda päris PHP ja C funktsioone. 126 00:05:11,270 --> 00:05:12,390 Nii tean, et need on olemas. 127 00:05:12,390 --> 00:05:15,348 Aga me isegi ei viitsinud neid kui me lihtsalt kriimustada pinda siin. 128 00:05:15,348 --> 00:05:18,600 Ja siis JavaScript, viimane meie keeli ametlikult kasutusele. 129 00:05:18,600 --> 00:05:21,029 Nii JavaScript, liiga, on tõlgendanud keeles. 130 00:05:21,029 --> 00:05:23,070 Ja need tuttavad, teha soovite, et eristada seda 131 00:05:23,070 --> 00:05:26,960 mõned iseloomulikud nii C ja PHP? 132 00:05:26,960 --> 00:05:28,300 Mis teeb see erineb? 133 00:05:28,300 --> 00:05:29,650 >> Sihtrühm: See ei ole koostatud. 134 00:05:29,650 --> 00:05:29,930 >> DAVID Humala: Ütle uuesti? 135 00:05:29,930 --> 00:05:31,200 >> Sihtrühm: See ei ole koostatud. 136 00:05:31,200 --> 00:05:31,930 >> DAVID Humala: See ei ole koostatud. 137 00:05:31,930 --> 00:05:33,450 Nii see ka on tõlgendanud. 138 00:05:33,450 --> 00:05:34,760 Nii see ei ole koostatud. 139 00:05:34,760 --> 00:05:37,210 Aga mis teeb natuke nagu PHP. 140 00:05:37,210 --> 00:05:39,545 Aga see on ikka erinev PHP mõnel silmatorkav viis, 141 00:05:39,545 --> 00:05:40,920 vähemalt viis me kasutame seda. 142 00:05:40,920 --> 00:05:41,205 Jah? 143 00:05:41,205 --> 00:05:41,940 >> Sihtrühm: Ta jookseb kliendipoolse. 144 00:05:41,940 --> 00:05:44,000 >> DAVID Humala: Ta jookseb kliendipoolse tavaliselt. 145 00:05:44,000 --> 00:05:47,190 See on tõepoolest tähistav iseloomulik meiega kohe. 146 00:05:47,190 --> 00:05:51,170 C oli server-side mõttes et me tegime kõik CS50 IDE. 147 00:05:51,170 --> 00:05:53,630 PHP on seni olnud server-side niivõrd 148 00:05:53,630 --> 00:05:56,550 kuna ta on liiga, muutub interpreted-- ei koostatud, kuid interpreted-- 149 00:05:56,550 --> 00:06:00,690 sees CS50 IDE, mis muidugi on lihtsalt server või serverid pilve. 150 00:06:00,690 --> 00:06:03,070 >> Aga JavaScript, isegi kui sa lähed 151 00:06:03,070 --> 00:06:07,000 alustada kirjutamist, ütleme, pset Kaheksa ja võibolla lõplik projects-- oled 152 00:06:07,000 --> 00:06:09,620 läheb paremale seda CS50 IDE ja salvestage see 153 00:06:09,620 --> 00:06:14,760 olevate failide CS50 IDE, CS50 IDE ja omakorda pilv serverid 154 00:06:14,760 --> 00:06:19,160 millele see toimus, ei kavatse tõlgendada või täita oma koodi. 155 00:06:19,160 --> 00:06:23,880 Pigem läheb saadetakse muutmata kujul alla brauser. 156 00:06:23,880 --> 00:06:26,990 Ja see on siis läheb IE või Chrome või Firefox või Safari 157 00:06:26,990 --> 00:06:30,697 või mis iganes, et tegelikult tõlgendab see, ülevalt alla, vasakult paremale. 158 00:06:30,697 --> 00:06:32,780 Nii võti eraldusmärkide iseloomulik täna 159 00:06:32,780 --> 00:06:36,110 on see, et JavaScript on kliendipoolse ja PHP näiteks 160 00:06:36,110 --> 00:06:37,690 on server-side. 161 00:06:37,690 --> 00:06:40,920 Nüüd on sellel huvitavaid tähendusega jaoks, nagu intellektuaalomandi 162 00:06:40,920 --> 00:06:42,660 ja kes võib tegelikult näha oma koodi. 163 00:06:42,660 --> 00:06:44,860 Ja tõepoolest, võid minna veebis ja vaadata kõige 164 00:06:44,860 --> 00:06:47,530 mingi koodi, et keegi on kirjutatud JavaScript. 165 00:06:47,530 --> 00:06:50,230 Mõnikord on loetav, Mõnikord on obfuscated. 166 00:06:50,230 --> 00:06:52,550 Aga rohkem sellest õigeaegselt. 167 00:06:52,550 --> 00:06:57,530 >> Nii JavaScript, kenasti piisavalt, on super sarnased, süntaktiliselt, et C. 168 00:06:57,530 --> 00:06:59,364 Ja palju nagu PHP, pole peamine funktsioon. 169 00:06:59,364 --> 00:07:02,113 Kui te soovite alustada kirjalikult JavaScript koodi, kui sa näed täna 170 00:07:02,113 --> 00:07:03,270 sa lihtsalt alustada kirjutamist. 171 00:07:03,270 --> 00:07:06,910 Aga see on, näete, eriti kasulik kontekstis brausereid. 172 00:07:06,910 --> 00:07:09,820 Kuid mu väike disclaimer-- tavaliselt earlier-- 173 00:07:09,820 --> 00:07:13,790 oli öelda, et sa ei saa enam täna kasutamiseks JavaScript server-side 174 00:07:13,790 --> 00:07:17,655 kasutades väljamõeldud raames kutsutakse Node.js et mõned CS50 enda rakendused 175 00:07:17,655 --> 00:07:18,280 on kirjutatud. 176 00:07:18,280 --> 00:07:20,640 Vaata 50 tegelikult kasutab Node.js. 177 00:07:20,640 --> 00:07:24,140 Aga me ei kavatse keskenduda JavaScript kliendipoolne siin välja. 178 00:07:24,140 --> 00:07:26,750 >> Nii et siin on terve rida tingimusi, PHP. 179 00:07:26,750 --> 00:07:29,350 Vabandame, in-- tegelikult, et avalduses, samuti on õige. 180 00:07:29,350 --> 00:07:32,200 Siin on ka komplekt tingimused JavaScript. 181 00:07:32,200 --> 00:07:35,560 Süntaktiliselt on identne C ja PHP. 182 00:07:35,560 --> 00:07:39,040 Hr Boole väljendid on, Samuti süntaktiliselt 183 00:07:39,040 --> 00:07:41,190 identne nii C ja PHP. 184 00:07:41,190 --> 00:07:44,100 Meil on ka lülitite JavaScript et otsida identsed. 185 00:07:44,100 --> 00:07:46,350 Meil on silmad, mis on struktureeritud samamoodi, 186 00:07:46,350 --> 00:07:48,140 samas silmuseid, teha samas silmuseid. 187 00:07:48,140 --> 00:07:49,980 >> See üks on natuke erinev. 188 00:07:49,980 --> 00:07:53,120 PHP oli iga konstrukti et võite olla kasutades 189 00:07:53,120 --> 00:07:55,320 või siis kasutada pset seitse, ehk. 190 00:07:55,320 --> 00:07:59,460 JavaScript peab see eriversioon aga kus sa sõna otseses mõttes midagi öelda 191 00:07:59,460 --> 00:08:03,864 nagu muutuja võti objekti, mis on väga sisutihe viis öelda, 192 00:08:03,864 --> 00:08:06,780 kui mul on object-- ja me rääkida nende uuesti moment-- 193 00:08:06,780 --> 00:08:10,370 ja ma tahan korrata üle kõik võtme väärtus paare sees, 194 00:08:10,370 --> 00:08:13,620 Ma ei pea mõtlema, kuidas numbriliselt indeks neid null, üks, 195 00:08:13,620 --> 00:08:14,580 kaks, kolm. 196 00:08:14,580 --> 00:08:15,900 >> Ma sõna otseses mõttes öelda. 197 00:08:15,900 --> 00:08:20,740 Ja iga korduse JavaScript minu uuendab muutuv võti 198 00:08:20,740 --> 00:08:24,810 olla esimene võti, siis järgmine võti, siis järgmine võti, siis järgmine võti, 199 00:08:24,810 --> 00:08:25,510 ja nii edasi. 200 00:08:25,510 --> 00:08:30,000 Ja ma saan oma väärtust, koheldes objekti JavaScript, nagu me näeme, 201 00:08:30,000 --> 00:08:32,584 nagu oleks see on assotsiatiivne massiiv PHP. 202 00:08:32,584 --> 00:08:35,750 Tõepoolest, kui sa lõpuks mähitakse oma pahanda ümber, mida assotsiatiivne massiiv on 203 00:08:35,750 --> 00:08:40,140 PHP, sa ei mõtle seda nüüd identne objekt JavaScript. 204 00:08:40,140 --> 00:08:42,030 Aga see on natuke järeleandmisi. 205 00:08:42,030 --> 00:08:47,230 >> Massiivid otsida, kenasti piisavalt identsed PHP, välja arvatud üks märk. 206 00:08:47,230 --> 00:08:51,425 On üks asi puudu siin et me ei näe eelmisel nädalal PHP. 207 00:08:51,425 --> 00:08:52,050 Mis jätta? 208 00:08:52,050 --> 00:08:53,310 Jah? 209 00:08:53,310 --> 00:08:54,090 No dollari märk. 210 00:08:54,090 --> 00:08:56,240 Nii et me oleme tagasi enam normaalne maailmas, kus 211 00:08:56,240 --> 00:08:58,050 muutujad ei pea dollari märgid. 212 00:08:58,050 --> 00:09:00,810 Aga sa eesliide neid koos var tavaliselt. 213 00:09:00,810 --> 00:09:02,230 Ja var tähendab muutuja. 214 00:09:02,230 --> 00:09:06,440 Ja palju nagu PHP on lõdvalt typed-- kusjuures esineb liike, 215 00:09:06,440 --> 00:09:10,120 seal on numbrid ja stringid ja ujukite ja nii forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript korral on samuti tüübid. 217 00:09:11,570 --> 00:09:15,470 Aga see on lõdvalt kirjutada, et me oleme programmeerijad ei pea nende määramist. 218 00:09:15,470 --> 00:09:18,980 Me lihtsalt olema teadlik et erinevat tüüpi eksisteeri. 219 00:09:18,980 --> 00:09:21,690 >> Muutujad, meanwhile-- siin on, kuidas me võiks kuulutada "Hello, world" 220 00:09:21,690 --> 00:09:22,230 string. 221 00:09:22,230 --> 00:09:24,890 Pange tähele, et see on identne PHP, kuid ükski dollari märk. 222 00:09:24,890 --> 00:09:27,120 Ja see on midagi, me hakkate nägema rohkem täna 223 00:09:27,120 --> 00:09:30,990 kusjuures objekt oleks võtmed ja väärtused. 224 00:09:30,990 --> 00:09:32,990 Ja kui sa tahad proovida tuletada viimase week-- 225 00:09:32,990 --> 00:09:34,730 süntaks on veidi erinev. 226 00:09:34,730 --> 00:09:39,740 Aga natuke meelerahu kontroll-- kui palju võtmed see objekt näib olevat? 227 00:09:39,740 --> 00:09:40,850 Nii et ma näen nelja. 228 00:09:40,850 --> 00:09:43,560 Näen kahte. 229 00:09:43,560 --> 00:09:44,680 >> Nii et see on tegelikult kaks. 230 00:09:44,680 --> 00:09:47,260 Nii et see on kogumik kahe võtmega väärtus paare. 231 00:09:47,260 --> 00:09:49,820 Oluline on sümbol, mille väärtus on FB. 232 00:09:49,820 --> 00:09:52,620 Oluline on hind, mille väärtus on 101,53. 233 00:09:52,620 --> 00:09:54,230 Nii et need on kaks peamist-väärtus paare. 234 00:09:54,230 --> 00:09:58,120 Ja pidage meeles, PHP-- ja see on jälle justkui süntaktilise vahe. 235 00:09:58,120 --> 00:10:00,170 See pole veel kõik, mis intellektuaalselt huvitav. 236 00:10:00,170 --> 00:10:04,610 PHP võis kirjutatud sama asi nagu follows-- quote, võrdsetena. 237 00:10:04,610 --> 00:10:06,730 Ja ma saan muuta neid nurksulgudes. 238 00:10:06,730 --> 00:10:11,240 Ja siis ma seda muuta noteeritud sõna "hind." 239 00:10:11,240 --> 00:10:12,500 Ja siis ma ei kasuta koolonit. 240 00:10:12,500 --> 00:10:15,060 Mida ma kasutan eelmisel nädalal? 241 00:10:15,060 --> 00:10:18,290 Jah, võrdusmärk nool funky märke. 242 00:10:18,290 --> 00:10:21,470 >> Ja siis ma tegin sama asja siin. 243 00:10:21,470 --> 00:10:23,580 Sama asi siin. 244 00:10:23,580 --> 00:10:24,240 Ja ongi kõik. 245 00:10:24,240 --> 00:10:27,752 Nii et see on hea, kui see ei ole tõesti vajusid mälu lihtsalt 246 00:10:27,752 --> 00:10:29,960 veel, sest see on tõesti intellektuaalselt ebahuvitav. 247 00:10:29,960 --> 00:10:31,660 See on lihtsalt süntaktiliste erinevusi. 248 00:10:31,660 --> 00:10:33,230 Aga ideed on täpselt sama. 249 00:10:33,230 --> 00:10:35,910 Toas muutuja Laenu JavaScript 250 00:10:35,910 --> 00:10:39,020 on kogumik võtme-väärtuse paarid, millest üks on sümbol, millest üks 251 00:10:39,020 --> 00:10:39,690 on hind. 252 00:10:39,690 --> 00:10:42,340 Ja ma saan neile väärtustele järgmiste süntaks. 253 00:10:42,340 --> 00:10:46,280 Just nagu PHP, suutsin midagi like-- lasta 254 00:10:46,280 --> 00:10:48,590 mul see kast veidi suurem. 255 00:10:48,590 --> 00:10:52,750 Just nagu PHP, suutsin teha see-- oh, kurat võtaks. 256 00:10:52,750 --> 00:10:53,250 Ole nüüd. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Just nagu PHP-- OK, siis me lihtsalt kasutada saatejuht märkmeid. 259 00:11:00,800 --> 00:11:06,010 Just nagu PHP, suudan teha $ quote $ quote ["sümbol"], 260 00:11:06,010 --> 00:11:08,860 ja see mind väärtus "sümbol." 261 00:11:08,860 --> 00:11:12,800 In JavaScript, see saab olema identsed, millega ma ei saa lihtsalt teha. 262 00:11:12,800 --> 00:11:14,850 Ainuke asi, mis on puudu on dollari märk. 263 00:11:14,850 --> 00:11:17,470 >> Nii kenasti piisavalt, siis seal on mitte kõik, et palju uusi süntaks. 264 00:11:17,470 --> 00:11:21,025 Mis siis täna keskendume, tõesti, on mõningaid ideid ja taotlusi. 265 00:11:21,025 --> 00:11:22,900 Ja esimene selline rakendus, mida võiks 266 00:11:22,900 --> 00:11:26,090 näinud, kui sa sukeldus pset seitse juba on seda süntaksit. 267 00:11:26,090 --> 00:11:28,980 Nii pset seitse, kui olete näinud või ei näinud veel, 268 00:11:28,980 --> 00:11:33,570 tean, et seal on fail, mis me anname sa helistasid config.json-- JavaScript 269 00:11:33,570 --> 00:11:34,661 Objekti kuju. 270 00:11:34,661 --> 00:11:35,160 Miks? 271 00:11:35,160 --> 00:11:39,540 Me tahtsime, et oleks võimalik anda teile malli mõned key-väärtus paare. 272 00:11:39,540 --> 00:11:44,290 Me tahtsime, et oleks võimalik anda teile nimekirja peremehe nimi server. 273 00:11:44,290 --> 00:11:46,710 Me tahtsime teile kohatäide oma kasutajanime 274 00:11:46,710 --> 00:11:48,210 ja kohatäide parool. 275 00:11:48,210 --> 00:11:49,410 Kui sa ei näe see veel, ärge muretsege. 276 00:11:49,410 --> 00:11:51,340 Veel selle aasta pset seitse [? spec. ?] Ja siis, 277 00:11:51,340 --> 00:11:53,173 Ilmselt me ​​tahame sind täita ülesandeid 278 00:11:53,173 --> 00:11:55,310 sest kui sa sisse logida CS50 IDE, et igaüks teist 279 00:11:55,310 --> 00:11:57,630 on oma kasutajanimi ja parool. 280 00:11:57,630 --> 00:12:00,910 >> Nii võiksime olen kasutanud pool tosinat või rohkem erinevat vormingut. 281 00:12:00,910 --> 00:12:02,940 Me oleks võinud kasutada txt faili. 282 00:12:02,940 --> 00:12:04,570 Me võiksime kasutada CSV faili. 283 00:12:04,570 --> 00:12:06,745 Võiksime olen kasutanud INI faili, XML-faili, 284 00:12:06,745 --> 00:12:09,370 terve hulk rohkem lühendeid, et sa ei oleks kunagi kuulnud. 285 00:12:09,370 --> 00:12:11,244 See on selline meelevaldne lõpus päeval. 286 00:12:11,244 --> 00:12:16,030 Aga super populaarne nendel päevadel on tekst vormi nimetatakse JSON-- JavaScript Object 287 00:12:16,030 --> 00:12:18,460 Notation-- mis näeb välja selline. 288 00:12:18,460 --> 00:12:20,890 See on veidi segasena, aga märgata mustreid. 289 00:12:20,890 --> 00:12:24,180 Hakkad avatud lokkis traksidega, ja siis lõpuks sama. 290 00:12:24,180 --> 00:12:26,550 Toas see on midagi. 291 00:12:26,550 --> 00:12:27,920 See on oluline väärtus paari. 292 00:12:27,920 --> 00:12:30,580 Nii et see on objekt, mis ma olen vaadates ekraanil siin 293 00:12:30,580 --> 00:12:33,690 mis on üks võti, mis on üks väärtus. 294 00:12:33,690 --> 00:12:37,610 Ja just aimates põhineb Eelmise muster, mis on võti siin? 295 00:12:37,610 --> 00:12:39,790 Andmebaas on asi vasakul jämesooles. 296 00:12:39,790 --> 00:12:43,500 >> Nüüd, väärtus juhtub olema mitmekordse read seekord. 297 00:12:43,500 --> 00:12:46,760 Aga väärtus algab lokkis traksidega ja lõpeb lokkis traksidega. 298 00:12:46,760 --> 00:12:49,480 Mida soovitaksite on tüüpi väärtus andmebaasi? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 Sõnastik või lihtsalt rohkem lühidalt objekti. 301 00:12:54,670 --> 00:12:55,170 Õigus? 302 00:12:55,170 --> 00:13:00,010 See on omamoodi andmebaasi struktuur, mis võib kasutada muid struktuure ise. 303 00:13:00,010 --> 00:13:02,750 Nii et kui kogu see asi, mida me oleme kokkukutsumise object-- ja objekti 304 00:13:02,750 --> 00:13:07,101 on lihtsalt kamp võtmeväärtuste pairs-- väärtus andmebaasi ise on objekt. 305 00:13:07,101 --> 00:13:10,350 Väärtus andmebaasis on terve hunnik peamiste väärtus paare, millest esimene 306 00:13:10,350 --> 00:13:13,130 on peremees, siis nime ja seejärel kasutajanimi, siis parool 307 00:13:13,130 --> 00:13:17,550 iga, mille väärtused, vahepeal on lihtsalt igav string jutumärkidega. 308 00:13:17,550 --> 00:13:19,770 >> Nii et isegi kui see ei ole super selge lihtsalt veel, 309 00:13:19,770 --> 00:13:22,740 tean, et see on lihtsalt standard, üsna igav viis 310 00:13:22,740 --> 00:13:25,190 andmete salvestamiseks vormikohase. 311 00:13:25,190 --> 00:13:27,700 Aga tavalisemaid vigu sa võiks teha, isegi pset seitse, 312 00:13:27,700 --> 00:13:32,120 on vähe lollusi, nagu siis, kui sa kogemata jätta komaga seal. 313 00:13:32,120 --> 00:13:34,900 See läheb kaasa fail ei pea tingimata olema loetav. 314 00:13:34,900 --> 00:13:38,191 Kui te kogemata jätta asjad hinnapakkumisi, see ei kavatse olla loetav. 315 00:13:38,191 --> 00:13:41,654 Nii et see on päris nitpicky failivorming, kuid see on üks, mis on super ühist. 316 00:13:41,654 --> 00:13:44,820 Ja meil juhtub seda kasutada, kuigi sa ei kasuta JavaScript teisiti, 317 00:13:44,820 --> 00:13:46,330 in pset seitse. 318 00:13:46,330 --> 00:13:46,860 >> Hästi. 319 00:13:46,860 --> 00:13:48,110 Seega pidage meeles, see pilt. 320 00:13:48,110 --> 00:13:51,657 Me rääkisime, HTML, et kood tunduda see. 321 00:13:51,657 --> 00:13:54,740 See on HyperText Markup Language [Kuuldamatu] lihtsalt "Tere, maailm." 322 00:13:54,740 --> 00:13:57,570 Aga siis tegime ettepaneku aega tagasi, et kui see aitab, 323 00:13:57,570 --> 00:14:00,210 võiksite mõelda sellest juba puuna. 324 00:14:00,210 --> 00:14:03,730 Tegelikult taandus, et me kasutada ainult loetavuse päralt 325 00:14:03,730 --> 00:14:05,610 või stiili päralt kohta Vasakul liiki 326 00:14:05,610 --> 00:14:10,040 tõlgitakse see puu, kus te on mingi eriline Juursõlme võime me 327 00:14:10,040 --> 00:14:16,860 üldiselt nimetatakse dokumendi, millest allapoole on just HTML element või sildi, HTML, 328 00:14:16,860 --> 00:14:19,980 mis siis on kaks lapsed, pea ja keha. 329 00:14:19,980 --> 00:14:21,750 >> Ja siis omakorda pea on pealkiri. 330 00:14:21,750 --> 00:14:23,440 Ja pealkiri on teksti väärtus. 331 00:14:23,440 --> 00:14:26,130 Ja keha sarnaselt on teksti väärtus. 332 00:14:26,130 --> 00:14:29,220 Nii et kui sa oled mugav ütlus et jah, siis võiks seda HTML 333 00:14:29,220 --> 00:14:32,080 ja joonista pilt nagu see, paremal pool 334 00:14:32,080 --> 00:14:35,910 on kena vaimne mudel, sest nüüd et meil JavaScript, programmeerimine 335 00:14:35,910 --> 00:14:39,960 keeles, et brauserid viia ning tõlgendada teile, 336 00:14:39,960 --> 00:14:42,690 Selgub, et mida me parasjagu ei koodi 337 00:14:42,690 --> 00:14:45,320 on alustada manipuleerida seda puu struktuuri mälu. 338 00:14:45,320 --> 00:14:47,070 Me ei pea ehitama puu mälu. 339 00:14:47,070 --> 00:14:49,880 Me ei pea tegema omamoodi pset viis stiilis andmestruktuur 340 00:14:49,880 --> 00:14:50,650 keerukust. 341 00:14:50,650 --> 00:14:54,610 Brauser, kenasti piisavalt, pärast tõlgendamisel HTML ülevalt alla, 342 00:14:54,610 --> 00:14:58,600 vasakule või paremale, on sõna otseses mõttes läheb esitate meile samaväärne pointer 343 00:14:58,600 --> 00:15:00,840 sellele kogu puu tasuta. 344 00:15:00,840 --> 00:15:02,150 Ta teeb kõik raske töö. 345 00:15:02,150 --> 00:15:05,520 See, mida Mozilla ja Apple ja teised on teinud meie jaoks. 346 00:15:05,520 --> 00:15:09,400 >> Ja JavaScript hakkame oleks võimalik kontrollida ja muuta ning teha 347 00:15:09,400 --> 00:15:12,910 Huvitavat et puu, muidu tuntud 348 00:15:12,910 --> 00:15:15,880 kui DOM või Document Object Model. 349 00:15:15,880 --> 00:15:17,110 Milliseid asju? 350 00:15:17,110 --> 00:15:19,030 Noh, tuleb välja, et JavaScript, seal on 351 00:15:19,030 --> 00:15:22,800 Selle pesumaja nimekiri sündmused, mis võib toimuda. 352 00:15:22,800 --> 00:15:26,330 Ja me ei ole tõesti kasutas seda Sõna kuna nädalal null ja pset 353 00:15:26,330 --> 00:15:28,240 null, kui me rääkisime Scratch. 354 00:15:28,240 --> 00:15:31,390 Enamik teist ilmselt ei kasutanud sündmuse oma Scratch projekti. 355 00:15:31,390 --> 00:15:33,850 Aga sa võiks meenutada, lihtne Marco Polo 356 00:15:33,850 --> 00:15:36,760 Näiteks, kui meil oli kaks haldjaid, kellest üks ütles, Marco. 357 00:15:36,760 --> 00:15:40,180 Teised kellest siis upon kuulamine ja kohtuistungil, et ürituse ütles, Polo. 358 00:15:40,180 --> 00:15:42,080 Kui ei ole, võid vabalt tagasi vaadata, et palju tagasi. 359 00:15:42,080 --> 00:15:44,450 >> Aga see on lihtsalt öelda, ja saate laadi 360 00:15:44,450 --> 00:15:47,730 tuletada nende nimed asju, JavaScript, selgub, 361 00:15:47,730 --> 00:15:53,200 läheb meile, kuidas kuulata hiire allakäik või hiir läheb üles 362 00:15:53,200 --> 00:15:57,920 või võti läheb alla või võti läheb üles või onSubmit onselect 363 00:15:57,920 --> 00:15:59,740 või onresizing midagi. 364 00:15:59,740 --> 00:16:03,060 Teisisõnu, füüsilise tegevuse et inimene saaks võtta brauseris 365 00:16:03,060 --> 00:16:08,210 mida te teete iga päev, võite kirjutada kood, mis jälgib neid sündmusi 366 00:16:08,210 --> 00:16:10,220 ja siis teeb midagi asjakohast. 367 00:16:10,220 --> 00:16:14,130 >> Näiteks, kui te kasutate Google Maps, Mis juhtub, kui klõpsad ja liikuda 368 00:16:14,130 --> 00:16:16,250 hiire, tüüpiliselt? 369 00:16:16,250 --> 00:16:17,758 Kui teil klõpsata ja liigutada? 370 00:16:17,758 --> 00:16:18,258 Jah? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Täpselt. 373 00:16:22,200 --> 00:16:23,159 Kaardil hakkab liikuma. 374 00:16:23,159 --> 00:16:25,616 Nii saab omamoodi näha, mis on siin, mis on seal. 375 00:16:25,616 --> 00:16:27,130 Ja kuidas Google rakendada seda? 376 00:16:27,130 --> 00:16:29,421 Noh, arvatavasti on nad lehe paar neist Sündmuse 377 00:16:29,421 --> 00:16:31,720 kuulajad, mis ütleb, kuulake hiire 378 00:16:31,720 --> 00:16:35,410 down-- nii et kui kasutaja füüsiliselt surub oma puutepadi või tema hiir 379 00:16:35,410 --> 00:16:36,010 allapoole. 380 00:16:36,010 --> 00:16:38,350 Ja siis me otsime midagi liikumine 381 00:16:38,350 --> 00:16:41,145 või mõni muu sündmus, mis võimaldab meil jäädvustada lohistada. 382 00:16:41,145 --> 00:16:45,910 Ja tegelikult, drag on sarnaselt käesoleva dot dot dot nimekiri võimalikest valikutest. 383 00:16:45,910 --> 00:16:49,140 >> Nii et see saab olema võimas viis alustada vastates kasutaja 384 00:16:49,140 --> 00:16:52,824 isegi enne kui ta tegelikult klõpsab midagi selgesõnaline nagu esitama. 385 00:16:52,824 --> 00:16:55,240 Aga me ei kavatse võtta kasutusele paar teemat sinna. 386 00:16:55,240 --> 00:16:58,570 Aga kõigepealt lubage üleminek mõned tegelikku koodi. 387 00:16:58,570 --> 00:17:01,450 Nii et ma lähen edasi ja avada dom-0, 388 00:17:01,450 --> 00:17:05,869 mis on väga lihtne näide siin, et kui ma suumida lihtsalt 389 00:17:05,869 --> 00:17:08,500 on selle sisendi siin minu jaoks. 390 00:17:08,500 --> 00:17:12,410 Ja ma lähen edasi minna ja kirjutada "David" minu nimi ja vajutage Edasta. 391 00:17:12,410 --> 00:17:17,940 >> Ja siis, kuigi omamoodi odavalt, ma küsiks, et hüppab, mis ütleb, 392 00:17:17,940 --> 00:17:19,244 "Tere, David!" 393 00:17:19,244 --> 00:17:21,740 Nii et see on omamoodi nagu meie "Hello, world" 394 00:17:21,740 --> 00:17:25,150 et me tegime mõnda aega tagasi C ja isegi PHP sest ma olen dünaamiliselt 395 00:17:25,150 --> 00:17:26,310 väljastada minu nimi. 396 00:17:26,310 --> 00:17:28,230 Ma suudan kellegi nime siin. 397 00:17:28,230 --> 00:17:31,240 Ma võiks lihtsalt muuta seda, nagu, Hannah, kliki Saada. 398 00:17:31,240 --> 00:17:33,780 Ja tõepoolest, väike pop-up muutused. 399 00:17:33,780 --> 00:17:36,650 >> Nüüd, pop-ups on üks kõige kuritarvitanud omadused veebis. 400 00:17:36,650 --> 00:17:38,520 Ja tegelikult tagasi Päeva hüpikakende 401 00:17:38,520 --> 00:17:40,820 jõustusid moes, sest sa tahaks minna mõnda website-- 402 00:17:40,820 --> 00:17:43,604 ehk küsitav place-- See oleks siis äkki 403 00:17:43,604 --> 00:17:46,020 alustada peppering ekraani terve hunnik pop-ups. 404 00:17:46,020 --> 00:17:49,700 Ja nii see võime hüppavad aknad ees kasutajale 405 00:17:49,700 --> 00:17:52,372 ei olnud eriti hästi vastu inimkonna. 406 00:17:52,372 --> 00:17:54,080 Nii et miks sa näed Selle vältimiseks asi, 407 00:17:54,080 --> 00:17:55,706 mis lihtsalt teeb kogu see asi kole. 408 00:17:55,706 --> 00:17:57,996 Nii et me läheme vaja parem viis kiire kasutaja. 409 00:17:57,996 --> 00:17:59,350 Aga nüüd, et tundub, et töö. 410 00:17:59,350 --> 00:18:03,320 Nii lihtsalt intuitiivselt, mida Tundub, et siin toimub? 411 00:18:03,320 --> 00:18:07,870 Ma minna ja klõpsake Esita ning siis midagi juhtub, selgelt. 412 00:18:07,870 --> 00:18:12,870 Aga mida ei juhtu, et juhtus Viimase nädala igal ajal ma klõpsatud Esita? 413 00:18:12,870 --> 00:18:15,940 Mida ei juhtunud ekraanil? 414 00:18:15,940 --> 00:18:17,170 Vabandust? 415 00:18:17,170 --> 00:18:18,010 Värskenda. 416 00:18:18,010 --> 00:18:19,720 URL ei muutu üldse. 417 00:18:19,720 --> 00:18:22,250 Ma ütlesin, et see oli dom-0, ja ma olen ikka veel dom-0. 418 00:18:22,250 --> 00:18:26,890 Tavaliselt me ​​tahaks saada muutunud mõne muu URL, nagu register.php vms. 419 00:18:26,890 --> 00:18:29,560 >> Aga isegi kui ma jätta see asi klõpsates OK, 420 00:18:29,560 --> 00:18:32,310 märgata, et URL jääb täielikult panna. 421 00:18:32,310 --> 00:18:35,350 Ja tegelikult, kui ma olen natuke skeptiline, lubage mul avada Chrome. 422 00:18:35,350 --> 00:18:36,860 Lubage mul avada vahekaarti Network. 423 00:18:36,860 --> 00:18:38,360 Ja teate see on praegu tühi. 424 00:18:38,360 --> 00:18:40,700 Lubage mul minna ja uuesti Maria. 425 00:18:40,700 --> 00:18:42,810 Pole võrguliiklust üldse. 426 00:18:42,810 --> 00:18:44,320 Seega puudub HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Nii tõesti, kui ma vaadata lähtekoodi jaoks see-- andke mulle selle akna sulgeda 428 00:18:47,620 --> 00:18:49,480 ja minna Vaata Allikas. 429 00:18:49,480 --> 00:18:50,400 Huvitavad. 430 00:18:50,400 --> 00:18:53,520 Tundub, seal on mõned uued sildid, nende seas script. 431 00:18:53,520 --> 00:18:57,490 Võtame pilk jooksul CS50 IDE täpselt, mida ma saadetakse kasutaja. 432 00:18:57,490 --> 00:19:00,690 >> Nii et siin on-- olgem keskenduda HTML ainult. 433 00:19:00,690 --> 00:19:03,500 Siin on alumine pool dom-0.html. 434 00:19:03,500 --> 00:19:07,830 Ja märkad, et see sai tiitli, pea tag, keha sildi, vormi tag. 435 00:19:07,830 --> 00:19:11,257 Aga mis hüppab teile erinevad, eriti kui sa oled kunagi 436 00:19:11,257 --> 00:19:12,590 kirjutatud ühegi JavaScript ise. 437 00:19:12,590 --> 00:19:14,920 Lubage mul kerida natuke paremale siin. 438 00:19:14,920 --> 00:19:18,330 Mul on sisend, teise sisendiks esitada. 439 00:19:18,330 --> 00:19:21,410 Mul on ID, mis on selline uus. 440 00:19:21,410 --> 00:19:22,790 Aga me ei näe seda CSS. 441 00:19:22,790 --> 00:19:24,480 Mida muud on kindlasti uut? 442 00:19:24,480 --> 00:19:24,980 Jah? 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 >> Hästi. 446 00:19:32,760 --> 00:19:35,630 Nii et kui ta ütleb onSubmit, pane tähele, mis tundub järgivat. 447 00:19:35,630 --> 00:19:38,740 See on atribuut HTML nomenklatuur. 448 00:19:38,740 --> 00:19:40,944 Selle väärtus on see jutumärkide siin. 449 00:19:40,944 --> 00:19:42,860 Ja see tundub veidi imelik esmapilgul. 450 00:19:42,860 --> 00:19:44,050 See ei ole HTML. 451 00:19:44,050 --> 00:19:45,240 See ei ole CSS. 452 00:19:45,240 --> 00:19:47,580 See on, nagu te võite arvata, JavaScript. 453 00:19:47,580 --> 00:19:51,850 Seega tundub, et ehitada sinna veebileht on funktsioon nimega tervitama. 454 00:19:51,850 --> 00:19:54,250 Ja ma aimates, et lihtsalt sest see on sõna, tervitada. 455 00:19:54,250 --> 00:19:55,880 See ju avatud paren, lähedal paren, semikooloniga. 456 00:19:55,880 --> 00:19:58,095 Paistab C funktsioon, näeb välja nagu PHP funktsiooni. 457 00:19:58,095 --> 00:20:00,370 >> Ja tõepoolest, see läheb olla JavaScript funktsioon. 458 00:20:00,370 --> 00:20:01,440 Siis ma tagasi vale. 459 00:20:01,440 --> 00:20:03,440 Me tuleme tagasi et üks hetk. 460 00:20:03,440 --> 00:20:05,320 Aga kus on see funktsioon defineeritud? 461 00:20:05,320 --> 00:20:07,950 Noh las ma keri üles üles faili. 462 00:20:07,950 --> 00:20:11,710 Ja kuigi see on pikas reas, see on suhteliselt lihtne. 463 00:20:11,710 --> 00:20:15,000 Lubage mul suumimiseks siin keskenduda nende nelja. 464 00:20:15,000 --> 00:20:17,137 >> Nii JavaScript, lihtsalt nagu PHP, sa lihtsalt 465 00:20:17,137 --> 00:20:19,720 ütleme, sõna otseses mõttes sõna "funktsioon," nimi funktsiooni, 466 00:20:19,720 --> 00:20:22,700 ja siis sulgudes mis tahes arguments-- ühtegi argumenti käesolevas asjas. 467 00:20:22,700 --> 00:20:25,290 Ja pole mingit tagasipöördumist tüübist JavaScript, just nagu PHP. 468 00:20:25,290 --> 00:20:29,470 Nii et see on veidi vabam kui C. Avatud lokkis traksidega, tihe lokkis traksidega. 469 00:20:29,470 --> 00:20:33,270 Ehitatud JavaScript on funktsioon-- ei ole soovitatav funktsioon-- 470 00:20:33,270 --> 00:20:35,730 kuid funktsioon nimega alert kelle ainus eesmärk elus 471 00:20:35,730 --> 00:20:38,620 on tõmme, et päris kole küsib, et me nägime hetk tagasi. 472 00:20:38,620 --> 00:20:40,950 >> Nüüd on see omamoodi suutäie. 473 00:20:40,950 --> 00:20:42,560 Mis siin toimub? 474 00:20:42,560 --> 00:20:45,840 Nii hakakem esile kõik siin. 475 00:20:45,840 --> 00:20:48,540 See on sama argument hoiatada. 476 00:20:48,540 --> 00:20:49,530 Ja mis toimub? 477 00:20:49,530 --> 00:20:51,200 See lihtsalt tundub string. 478 00:20:51,200 --> 00:20:59,180 Ja selgub, et erinevalt PHP erinevalt C, ei ole oluline JavaScript 479 00:20:59,180 --> 00:21:01,090 Kui te ülakoma või jutumärkide. 480 00:21:01,090 --> 00:21:02,060 Nad on samaväärne. 481 00:21:02,060 --> 00:21:03,769 Ja ausalt öeldes, see on lihtsalt populaarne nendel päevadel 482 00:21:03,769 --> 00:21:06,726 JavaScript programmeerijad alati Kasutada ülakoma mingil põhjusel. 483 00:21:06,726 --> 00:21:07,840 See on lihtsalt asi, mida teha. 484 00:21:07,840 --> 00:21:09,710 Aga me võiksime kasutada jutumärkides, samuti. 485 00:21:09,710 --> 00:21:11,540 >> Nii pluss on uus tegelane. 486 00:21:11,540 --> 00:21:14,512 Aga need, kes seda teinud seda enne, mida ei pluss tähendab? 487 00:21:14,512 --> 00:21:16,440 Jah. 488 00:21:16,440 --> 00:21:17,120 CONCATENATE. 489 00:21:17,120 --> 00:21:18,570 Nii me nägime seda PHP. 490 00:21:18,570 --> 00:21:20,315 Seal on lihtsalt dot operaator PHP, et 491 00:21:20,315 --> 00:21:22,000 on concatenate kaks stringid koos. 492 00:21:22,000 --> 00:21:24,000 C oli tüütu seda teha. 493 00:21:24,000 --> 00:21:27,310 Meenuta pset kuus, mis oli especial valu kaela, 494 00:21:27,310 --> 00:21:29,470 siis oleks kasutada midagi strcat 495 00:21:29,470 --> 00:21:31,660 Pärast eraldamise mälu virnas või hunnik. 496 00:21:31,660 --> 00:21:34,243 Sul oli hüpata kaudu kõvadele lihtsalt concatenate kaks stringi. 497 00:21:34,243 --> 00:21:36,040 In JavaScript, see on super lihtne. 498 00:21:36,040 --> 00:21:38,030 Lihtsalt pluss operaatori vahel. 499 00:21:38,030 --> 00:21:41,420 >> Nii keeruka väljanägemisega asi tundub olevat see 500 00:21:41,420 --> 00:21:43,490 sest lõpus kogu see string, ma lihtsalt 501 00:21:43,490 --> 00:21:45,797 concatenate kohta hüüumärk. 502 00:21:45,797 --> 00:21:48,380 Nii et kui see, mis oli avanemise oli "Tere, David", "Tere, Hannah," 503 00:21:48,380 --> 00:21:52,740 "Tere, Maria," ja nii edasi, on selgelt et keset asi kahe 504 00:21:52,740 --> 00:21:55,215 plussid peab andma mulle juurdepääsu mida? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Mis on seal kindel? 507 00:22:01,991 --> 00:22:02,490 Jah. 508 00:22:02,490 --> 00:22:05,090 Nii et ma teeseldes siin vastata nende nimi, eks? 509 00:22:05,090 --> 00:22:10,380 Nii oma nimi hüppasid üles viimases tulemus. Mida see tähendab? 510 00:22:10,380 --> 00:22:15,080 Noh, ma varem väljapakutud et Pildi et nn DOM 511 00:22:15,080 --> 00:22:18,580 on see eriline root element tee kuni top nimetatakse dokumendi. 512 00:22:18,580 --> 00:22:21,660 Ja nüüd selgub, et läheb olla eriline globaalse muutuja 513 00:22:21,660 --> 00:22:25,250 JavaScript, ehitatud, mis on terve hulk kasulikke funktsioone. 514 00:22:25,250 --> 00:22:31,770 Kasulike funktsionaalsus on võime saada igal järeltulija sõlme. 515 00:22:31,770 --> 00:22:37,760 Need ruudud või ristkülikud või ellipsid on vaid tippe puu, nii rääkida. 516 00:22:37,760 --> 00:22:41,850 >> Nii selgub, et ehitatud JavaScript dokumendi objekti 517 00:22:41,850 --> 00:22:47,300 on funktsioon, sest muidu tuntakse meetod, mis nimetatakse getElementByld. 518 00:22:47,300 --> 00:22:50,410 Süntaks helistades Funktsiooni JavaScript 519 00:22:50,410 --> 00:22:55,220 mis on sees eseme või muutuja on lihtsalt dot märke. 520 00:22:55,220 --> 00:22:57,950 Ja me nägime seda C mida struct süntaks. 521 00:22:57,950 --> 00:23:03,530 Sa näed seda pset seitse, omamoodi, omamoodi, kui näed CS50 :: päring. 522 00:23:03,530 --> 00:23:08,070 Koolon koolon PHP on teine kuidas kutsuda funktsioon, mis on 523 00:23:08,070 --> 00:23:09,260 sees mingi objekti. 524 00:23:09,260 --> 00:23:11,960 >> Aga nüüd JavaScript, see on lihtsalt dot. 525 00:23:11,960 --> 00:23:14,170 Ja nii see funktsioon, kenasti piisavalt, millist 526 00:23:14,170 --> 00:23:16,810 ütleb, mida ta does-- saada elemendi ID. 527 00:23:16,810 --> 00:23:20,280 Element on lihtsalt teine ​​nimi silti või sõlme DOM. 528 00:23:20,280 --> 00:23:26,900 Ja nii saan elemendi ID "name" tähendab see-- siin on minu HTML. 529 00:23:26,900 --> 00:23:31,910 Ja põhineb see HTML, mida sõlme või mida HTML tag olen ma 530 00:23:31,910 --> 00:23:35,097 läheb programmiliselt antakse helistades document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Jah, täpselt. 533 00:23:38,500 --> 00:23:42,670 Ma lähen sisend element olemas, kelle ID on "nime." 534 00:23:42,670 --> 00:23:45,140 Nii öeldes saab mõtle seda funktsiooni, 535 00:23:45,140 --> 00:23:49,560 getElementByld, kui võimalus anda tagasi kursor selle konkreetse sõlme 536 00:23:49,560 --> 00:23:50,060 puu. 537 00:23:50,060 --> 00:23:51,980 Me ei ole koostatud selle puu, aga see on nii 538 00:23:51,980 --> 00:23:54,900 saada ligipääs sellele ristkülik või ristkülik 539 00:23:54,900 --> 00:23:58,090 poolt üheselt kindlaks selle kaudu oma ID. 540 00:23:58,090 --> 00:23:59,760 >> Nüüd, miks on see kasulik? 541 00:23:59,760 --> 00:24:01,510 Noh, selgub et kui olete saanud 542 00:24:01,510 --> 00:24:07,220 et sõlm, mis ristkülikut pilt, mis sõlme sees on, 543 00:24:07,220 --> 00:24:10,660 omakorda on terve hunnik properties-- võtme-väärtuse paarid 544 00:24:10,660 --> 00:24:13,480 või andmeid, millest üks on nn väärtus. 545 00:24:13,480 --> 00:24:16,500 Nii sõna otseses mõttes, see on selline suutäie selgitada kogu asja. 546 00:24:16,500 --> 00:24:19,370 Aga lõpus päeval, Kõik see teeb on teile 547 00:24:19,370 --> 00:24:23,070 string, et kasutaja sisestatud selles hierarhilises vormis. 548 00:24:23,070 --> 00:24:24,820 Aga ma ei meeldi paari neid asju. 549 00:24:24,820 --> 00:24:27,590 Või õigemini, seal on mõned uudishimu ikka. 550 00:24:27,590 --> 00:24:28,870 Kõik see tundus töötada. 551 00:24:28,870 --> 00:24:33,420 Miks sa arvad, et ma tagasi vale pärast helistab tervitama? 552 00:24:33,420 --> 00:24:35,910 See tundub veidi kole, et Mul on kaks avaldust seal 553 00:24:35,910 --> 00:24:38,730 eraldatud semikooloniga. 554 00:24:38,730 --> 00:24:39,310 Võtke vist. 555 00:24:39,310 --> 00:24:44,390 Kui ma välja tagasi vale, mida Võib juhtuda, vaid instinktiivselt? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Vabandame, öelge uuesti? 558 00:24:49,460 --> 00:24:50,530 >> Avage kamp Windows. 559 00:24:50,530 --> 00:24:52,780 Nii potentsiaalselt võibolla midagi niimoodi juhtuks. 560 00:24:52,780 --> 00:24:54,422 Mida veel? 561 00:24:54,422 --> 00:24:55,630 Võib esitada taotluse, kus? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 Samal lehel. 564 00:25:00,510 --> 00:25:03,110 Nii, et tegelikult see, et lähemale vastata siin 565 00:25:03,110 --> 00:25:05,890 kuigi erinevalt minevikus, ma ei ole 566 00:25:05,890 --> 00:25:09,300 määratud tegevuse omadus, mis tavaliselt me ​​peame tegema. 567 00:25:09,300 --> 00:25:11,780 Selgub seal on default. Kui te ei täpsusta tegevuskava, 568 00:25:11,780 --> 00:25:15,370 see on nagu öelda quote, lõppeb või faili nimi ise, 569 00:25:15,370 --> 00:25:17,850 mis antud juhul oleks olla nagu dom-0.html. 570 00:25:17,850 --> 00:25:20,420 See on lihtsalt selline järeldada, või pigem kaudselt. 571 00:25:20,420 --> 00:25:22,420 >> Ja kui ma ei tee seda, olgem märgata. 572 00:25:22,420 --> 00:25:23,230 Lubage mul salvestada. 573 00:25:23,230 --> 00:25:25,270 Ja ma olen ära tagastamise vale. 574 00:25:25,270 --> 00:25:27,759 Lubage mul minna tagasi selle Näiteks ja Sundlaadi ta. 575 00:25:27,759 --> 00:25:30,800 Ja te võite mind näinud soovitan Selle kohta CS50 Arutle kamp korda. 576 00:25:30,800 --> 00:25:34,560 Kui midagi on kunagi tegutsev funky ja brauseri ei käitu nagu te ootate, 577 00:25:34,560 --> 00:25:37,410 Sageli tahad hoida Shift ja seejärel nuppu Värskenda. 578 00:25:37,410 --> 00:25:41,480 See sunnib iga faili laadimiseks ja ei kasuta oma brauseri kohaliku vahemälu 579 00:25:41,480 --> 00:25:47,032 või koopia, nii et nüüd, lubage mul minna ja avada minu inspektor, vahekaarti Network. 580 00:25:47,032 --> 00:25:48,740 Ma lähen klõpsa Säilita Logi sest ma 581 00:25:48,740 --> 00:25:51,660 ei taha seda kustutada ridu kui ma saan pühitakse minema mujale. 582 00:25:51,660 --> 00:25:54,650 >> Lubage mul minna siin ja kirjuta Andi, kliki Saada. 583 00:25:54,650 --> 00:25:55,150 Hästi. 584 00:25:55,150 --> 00:25:56,480 See tundub nagu oodatud. 585 00:25:56,480 --> 00:25:57,440 See ütleb: "Tere, Andi." 586 00:25:57,440 --> 00:25:59,420 Lubage mul klõpsake OK. 587 00:25:59,420 --> 00:26:00,610 Huvitavad. 588 00:26:00,610 --> 00:26:05,100 Pange tähele, et lehekülge muuta, kuigi algne lehel. 589 00:26:05,100 --> 00:26:06,770 Märka URL liiki muutunud. 590 00:26:06,770 --> 00:26:09,430 Ta lisas, küsimärk, mis on tavaliselt indikaatorina 591 00:26:09,430 --> 00:26:11,260 et me püüdsime esitada midagi. 592 00:26:11,260 --> 00:26:13,570 Ja siis allosas, Veelgi täpsemalt, 593 00:26:13,570 --> 00:26:17,570 siin on tegelik HTTP taotlust, mis sai vastuseks 200, et 594 00:26:17,570 --> 00:26:18,490 tõi mulle siia tagasi. 595 00:26:18,490 --> 00:26:20,250 >> Nii et see pole see, mida me tahame teha, eks? 596 00:26:20,250 --> 00:26:22,166 Sest ma ei taha lehte ümber laadida. 597 00:26:22,166 --> 00:26:24,970 Ma asemel tahtis tagasi vale, et lühise 598 00:26:24,970 --> 00:26:28,840 brauseri vaikimisi käitumist, mis Loomulikult oli, esitama lehel. 599 00:26:28,840 --> 00:26:31,700 >> Võtame pilk natuke parem näide. 600 00:26:31,700 --> 00:26:33,920 See on dom versiooni üks. 601 00:26:33,920 --> 00:26:36,680 Ja märkate järgmist. 602 00:26:36,680 --> 00:26:39,150 See on OK, kui sa ei grok kõik rida koodi. 603 00:26:39,150 --> 00:26:41,750 Aga mis on täiesti erinev selle rakendamist? 604 00:26:41,750 --> 00:26:44,690 Ma sätestada see käitub Sama, teeb sama asja. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Mida ma ilmselt teisiti teha? 607 00:26:51,570 --> 00:26:52,266 Jah? 608 00:26:52,266 --> 00:26:53,182 >> Sihtrühm: [kuuldamatu]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID Humala: Jah. 611 00:27:04,170 --> 00:27:08,620 Nii funktsioon on defineeritud differently-- Teisisõnu, puudu kujul, 612 00:27:08,620 --> 00:27:13,180 seal on line 7-- või Pigem line 8-- enam 613 00:27:13,180 --> 00:27:15,070 Kas mul on onSubmit atribuut. 614 00:27:15,070 --> 00:27:16,750 Eelmises näites, mul oli see. 615 00:27:16,750 --> 00:27:18,530 Ja siis ma sõna otseses mõttes kirjutas oma koodi siin. 616 00:27:18,530 --> 00:27:20,210 Ja siis ma ütlesin tagasi vale. 617 00:27:20,210 --> 00:27:22,180 Ja kui see ei hõõru sa valesti veel 618 00:27:22,180 --> 00:27:26,140 see peaks hakkama niivõrd kui, nagu HTML, 619 00:27:26,140 --> 00:27:29,530 kui me hakkasime tegema koostööd segama see CSS stiili omadusi, 620 00:27:29,530 --> 00:27:32,890 see lihtsalt hakkas natuke räpane või tunnevad natuke valesti. 621 00:27:32,890 --> 00:27:35,020 >> Samamoodi siin, kui kui alustate HTML, 622 00:27:35,020 --> 00:27:37,419 ja siis automaatselt sulpsti mõned JavaScript koodi 623 00:27:37,419 --> 00:27:40,460 keset jutumärkide, see on ei kavatse olla väga hooldatav. 624 00:27:40,460 --> 00:27:40,630 Õigus? 625 00:27:40,630 --> 00:27:43,690 See ei ole isegi selge esimesel koht, kus JavaScripti koodi. 626 00:27:43,690 --> 00:27:46,590 Seega oleks tore, kui põhimõte parem disain, 627 00:27:46,590 --> 00:27:50,500 Jätame meie HTML täielikult eraldi JavaScripti. 628 00:27:50,500 --> 00:27:53,150 >> Nii et seda teha, mida me oleme teha siin on following-- 629 00:27:53,150 --> 00:27:56,790 me lihtsalt kasutada HTML Markup ainult. 630 00:27:56,790 --> 00:28:00,730 Ja nii versioonis üks selle kõik Mul on on vorm, millel on unikaalne ID. 631 00:28:00,730 --> 00:28:04,630 Ja siis siin ma olen ära eriline omadus JavaScript 632 00:28:04,630 --> 00:28:08,480 kusjuures ma ei ole see, mida on nimetatakse anonüümne funktsioon. 633 00:28:08,480 --> 00:28:14,150 Nii selgub, et kui ma kutsun document.getElementById of "demo" 634 00:28:14,150 --> 00:28:18,890 see on nagu andes mulle viit Selle sõlme minu puu, vormi element, 635 00:28:18,890 --> 00:28:20,100 niiöelda. 636 00:28:20,100 --> 00:28:22,220 >> Nüüd ma lihtsalt tean teades natuke HTML 637 00:28:22,220 --> 00:28:26,330 nüüd oleme lugenud mõned online viide, et vormi element toetab 638 00:28:26,330 --> 00:28:29,950 terve hunnik korral listeners-- sisse Teisisõnu, pesumaja nimekiri sündmus 639 00:28:29,950 --> 00:28:31,700 kuulajatele, et me nägime hetk tagasi. 640 00:28:31,700 --> 00:28:35,950 Ma tean, lugedes dokumentatsiooni et onSubmit on kehtiv juhul 641 00:28:35,950 --> 00:28:38,520 kuulaja jaoks vormi element. 642 00:28:38,520 --> 00:28:41,480 >> Nii et kui ma tean, et see on ohutu, et ma teeksin 643 00:28:41,480 --> 00:28:45,390 following-- saada, et sõlm puu, vormi element, 644 00:28:45,390 --> 00:28:48,070 Juurdepääs oma nn onSubmit vara. 645 00:28:48,070 --> 00:28:49,880 Nii dot tähendab lihtsalt see on vara, 646 00:28:49,880 --> 00:28:52,180 nagu eriline väärtus sees on. 647 00:28:52,180 --> 00:28:55,590 Ja mida andmete tüübi olen ma määrates ilmselt 648 00:28:55,590 --> 00:28:58,900 to onSubmit, mis on tõhusalt muutuja sees 649 00:28:58,900 --> 00:29:01,010 Selle sõlme puu? 650 00:29:01,010 --> 00:29:04,100 See on valdkond sees, et struct. 651 00:29:04,100 --> 00:29:05,810 Milline on andmete tüübi? 652 00:29:05,810 --> 00:29:07,030 >> Funktsioon, yeah. 653 00:29:07,030 --> 00:29:08,607 Nii selgub, et PHP on see. 654 00:29:08,607 --> 00:29:10,440 Ja kuigi me ei öelda teile seda, 655 00:29:10,440 --> 00:29:16,240 C on ka funktsioon suunanäitajaks, on võime läbida ja anda ülesandeid 656 00:29:16,240 --> 00:29:18,330 kui muutujate väärtused ise. 657 00:29:18,330 --> 00:29:20,280 Ja me ei hakka regress tagasi C. 658 00:29:20,280 --> 00:29:23,250 Aga nüüd selgub, et Paremal pool siin, 659 00:29:23,250 --> 00:29:26,260 kuigi see tundub veidi funky, tähendab see, hey brauser, 660 00:29:26,260 --> 00:29:27,550 mulle funktsiooni. 661 00:29:27,550 --> 00:29:30,560 Ma ei hakka isegi viitsinud andes seda nime, sest ma olen sõna otseses mõttes 662 00:29:30,560 --> 00:29:34,450 läheb loovutada olgem nimetame seda aadress seda funktsiooni 663 00:29:34,450 --> 00:29:35,994 kohe onSubmit. 664 00:29:35,994 --> 00:29:39,160 Teisisõnu, brauseri, siis ei ole vaja teada, mis seda funktsiooni nimetatakse. 665 00:29:39,160 --> 00:29:41,890 Sa lihtsalt pead teadma kui see on mälu. 666 00:29:41,890 --> 00:29:44,210 Ja nii piisab lihtsalt on võrdusmärk seal 667 00:29:44,210 --> 00:29:48,240 ja ei viitsinud nimetades seda, nagu suva või tervitama või mõni muu sõna. 668 00:29:48,240 --> 00:29:50,150 Ja nüüd on see lihtsalt stilistilise asi. 669 00:29:50,150 --> 00:29:53,100 Ma võiks liikuda selles lokkis traksidega peale the-- sorry-- järgmisele reale 670 00:29:53,100 --> 00:29:54,750 nagu me tavaliselt CS50. 671 00:29:54,750 --> 00:29:57,550 Aga JavaScript, et see on tegelikult stiililiselt ühise 672 00:29:57,550 --> 00:30:00,450 muudkui lokkis traksidega, siis Esimene, sellele esimesele reale. 673 00:30:00,450 --> 00:30:02,620 >> Aga edaspidi, seal on midagi huvitavat. 674 00:30:02,620 --> 00:30:05,830 See avatud lokkis traksidega lihtsalt piiritleb algust oma funktsiooni. 675 00:30:05,830 --> 00:30:09,320 Funktsioon on nüüd identsed, välja arvatud Olen 676 00:30:09,320 --> 00:30:11,452 lisatud tagastamise vale sees seda funktsiooni. 677 00:30:11,452 --> 00:30:13,160 Kuna selgub out-- ja siis oleks ainult 678 00:30:13,160 --> 00:30:14,980 Seda teame lugemine documentation-- 679 00:30:14,980 --> 00:30:19,740 et kui funktsioon, et te määrata et onSubmit handler naaseb vale, 680 00:30:19,740 --> 00:30:23,420 brauser lihtsalt teab ja on nõus mitte esitada kujul serverisse. 681 00:30:23,420 --> 00:30:27,210 Kui ta naaseb tõsi, esitab ta see server põhjustel me näeme 682 00:30:27,210 --> 00:30:28,700 on kasulikud hetk. 683 00:30:28,700 --> 00:30:31,000 >> Ja siis semikooloni pärast lokkis traksidega seal lihtsalt 684 00:30:31,000 --> 00:30:32,541 tähendab, et ma olen teinud Funktsiooni määrav. 685 00:30:32,541 --> 00:30:36,600 Sa tead, mida nimetame niipea kui kuulete esitamist. 686 00:30:36,600 --> 00:30:37,100 Hästi. 687 00:30:37,100 --> 00:30:40,650 See on ikka vaieldamatult selline kole. 688 00:30:40,650 --> 00:30:42,190 Mida rohkem me saame teha? 689 00:30:42,190 --> 00:30:45,000 >> Noh, selgub siis version kaks, mis on last-- 690 00:30:45,000 --> 00:30:46,780 ja me lihtsalt pilk see. 691 00:30:46,780 --> 00:30:49,850 Kell risk teha see koledam, selgub 692 00:30:49,850 --> 00:30:52,160 et seal on raamatukogu maailma nimega jQuery. 693 00:30:52,160 --> 00:30:54,900 Ja jQuery on super Populaarseim JavaScript raamatukogu 694 00:30:54,900 --> 00:30:57,930 see on nii populaarne, et kõige mis tahes JavaScript-- see ei ole 695 00:30:57,930 --> 00:31:00,540 tavaline, et inimesed segadusse jQuery JavaScript. 696 00:31:00,540 --> 00:31:01,070 Miks? 697 00:31:01,070 --> 00:31:04,990 JavaScript on ise väga lobise viise things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Sa lõpuks võttes väga pikk rida koodi. 700 00:31:10,510 --> 00:31:15,550 >> Nii mehe nimega John Resid, kes tegelikult töötab startup 701 00:31:15,550 --> 00:31:18,630 kuni nendel päevadel, tuli välja Selle raamatukogu aastat 702 00:31:18,630 --> 00:31:22,070 tagasi, et paljud inimesed on aidanud et nn jQuery, mis muudab 703 00:31:22,070 --> 00:31:23,449 süntaks järgmisel viisil. 704 00:31:23,449 --> 00:31:25,740 Ja just nii olen näinud seda, Sest sa oled alati 705 00:31:25,740 --> 00:31:28,140 vaata seda, kui teed veebipõhine lõplik projekt, 706 00:31:28,140 --> 00:31:33,270 see oleks samaväärne võimalus rakendamisel, et sama funktsiooni abil 707 00:31:33,270 --> 00:31:34,630 see eriline raamatukogu. 708 00:31:34,630 --> 00:31:36,680 >> Nüüd, selle asemel tease ta peale tervikuna, 709 00:31:36,680 --> 00:31:38,520 Lihtsalt pilk mõned mustrid. 710 00:31:38,520 --> 00:31:44,850 See süntaks on ilmselt kui palju anonüümseid funktsioone 711 00:31:44,850 --> 00:31:49,584 või nimetu funktsioonid või AKA lambda toimib? 712 00:31:49,584 --> 00:31:50,190 Kaks, eks? 713 00:31:50,190 --> 00:31:52,690 Ja sa tead, et isegi kui sa ei ole super hubane seda, 714 00:31:52,690 --> 00:31:55,780 lihtsalt asjaolu, et see ütleb funktsiooni () kaks korda. 715 00:31:55,780 --> 00:31:58,172 >> Ja selgub, et mida see kood on doing-- 716 00:31:58,172 --> 00:32:01,255 ja me vaadake Interneti viited, lõpuks selleni, et mõned aidata sellega. 717 00:32:01,255 --> 00:32:04,480 See tähendab lihtsalt, et kui dokument on valmis, 718 00:32:04,480 --> 00:32:07,490 minna ja registreerida järgmine funktsioon 719 00:32:07,490 --> 00:32:12,064 kui esitada käitlejale HTML element, kelle unikaalne idee on demo. 720 00:32:12,064 --> 00:32:14,480 Ja siis, kui see juhtub, Neid kutsutakse rida koodi. 721 00:32:14,480 --> 00:32:18,677 Ja see on traagiliselt rohkem lobise viis öelda tagasi vale. 722 00:32:18,677 --> 00:32:21,510 Ja me rääkisime sellest lihtsalt sellepärast, näete kood, nagu see online. 723 00:32:21,510 --> 00:32:23,140 Ja see on midagi, mida daunted. 724 00:32:23,140 --> 00:32:26,057 Aga mitte, pidage meeles, et see, mis on saab olema levinud JavaScript 725 00:32:26,057 --> 00:32:26,765 on see paradigma. 726 00:32:26,765 --> 00:32:29,510 Ja nii see on, miks me näitame seda nüüd. 727 00:32:29,510 --> 00:32:30,010 Hästi. 728 00:32:30,010 --> 00:32:32,730 Nii ei eluruumi liiga palju, et süntaks, 729 00:32:32,730 --> 00:32:37,800 on olemas mis tahes küsimustele Nende näidete või ideid siiani? 730 00:32:37,800 --> 00:32:38,300 Hästi. 731 00:32:38,300 --> 00:32:40,220 Nii saab seda kasutada midagi kasulikku. 732 00:32:40,220 --> 00:32:47,070 Making veebilehele, mis lihtsalt ütleb tere, nii ja nii ei ole nii huvitav, 733 00:32:47,070 --> 00:32:47,830 mitte jhk. 734 00:32:47,830 --> 00:32:51,038 See üks ei kavatse olla ilus, kuid see ei tee mitte midagi kasulikku. 735 00:32:51,038 --> 00:32:56,350 Las ma lähen tagasi oma kataloogi siin ja avada, öelda, vormi-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Nii arvan, et see on uustulnuk intramural spordi registreerimise leht 737 00:32:59,320 --> 00:33:01,780 ilma CSS või mingit mõtet disaini. 738 00:33:01,780 --> 00:33:05,404 Ja ma tahan minna ja registreerida siin parooliga. 739 00:33:05,404 --> 00:33:08,320 Ja ma nõustun tingimused ja klõpsake registri. 740 00:33:08,320 --> 00:33:11,700 Ja nüüd kodulehel ütleb: "Sa oled Registreeritud! (Noh, tegelikult mitte.) " 741 00:33:11,700 --> 00:33:15,070 See tundub nagu see toimis, kuid lubage mul minna ja Sundlaadi. 742 00:33:15,070 --> 00:33:18,720 >> Ja lubage mul öelda, ei, sa ei ole vajan oma tegeliku e-posti aadress. 743 00:33:18,720 --> 00:33:21,820 Või äkki me lihtsalt öelda mail seal. 744 00:33:21,820 --> 00:33:25,080 Parool, nagu, 12345. 745 00:33:25,080 --> 00:33:28,810 Ja siis, just sellepärast, et ma olen idioot, nüüd on 123456789. 746 00:33:28,810 --> 00:33:31,150 Ja ma ei kavatse kontrollida oma kasti. 747 00:33:31,150 --> 00:33:31,850 >> Hmm. 748 00:33:31,850 --> 00:33:32,350 Hästi. 749 00:33:32,350 --> 00:33:34,920 Nii et mitmeid võimalusi arenguruumi. 750 00:33:34,920 --> 00:33:39,070 Ja sa tead, või on näha pset seitse, et saate kirjutada code-- 751 00:33:39,070 --> 00:33:41,890 ja sa pead kirjutama koodi PHP-- kaitsta 752 00:33:41,890 --> 00:33:45,780 vastu selliseid kasutaja vigu, sest kasutaja selgelt 753 00:33:45,780 --> 00:33:46,790 ei teinud koostööd. 754 00:33:46,790 --> 00:33:49,680 Ja ta ei ole andnud teile kõigile väärtustab sa tahtsid või isegi formaadis 755 00:33:49,680 --> 00:33:50,630 et sa tahtsid neid. 756 00:33:50,630 --> 00:33:53,250 Nii näete pset seitse, et Me võiks kindlasti olla mõned 757 00:33:53,250 --> 00:33:55,680 Kui tingimused, mis ütlevad Kui e-posti aadress 758 00:33:55,680 --> 00:33:59,450 ei ole username@something.edu, me võiks lihtsalt 759 00:33:59,450 --> 00:34:02,575 öelda sorry ja vabandust kasutaja palju, nagu te võite olla pset seitse. 760 00:34:02,575 --> 00:34:05,700 Või kui nad ei ole kontrollinud, et kast Selgub, PHP, võite avastada, et 761 00:34:05,700 --> 00:34:06,200 liiga. 762 00:34:06,200 --> 00:34:09,389 Ja kindlasti, kui paroolid ei sobi nagu register.php 763 00:34:09,389 --> 00:34:11,521 jaoks pset seitse, võite avastada, et. 764 00:34:11,521 --> 00:34:13,770 Aga see valu on kaela, et nüüd on nad nõuda 765 00:34:13,770 --> 00:34:15,510 meil minna kõik viis server. 766 00:34:15,510 --> 00:34:17,053 Kasutaja on teavitatud viga. 767 00:34:17,053 --> 00:34:19,219 Ja vähemalt kui te ei kasuta mõned Kasvataja tehnikaid, 768 00:34:19,219 --> 00:34:20,929 nüüd on nad klõpsata tagasi noolt. 769 00:34:20,929 --> 00:34:23,300 Kas poleks tore, nagu palju veebisaite täna 770 00:34:23,300 --> 00:34:26,190 kui sul oleks vahetum tagasisidet, koheselt? 771 00:34:26,190 --> 00:34:31,389 >> Teisisõnu, lubage mul minna versioon üks, mis saab olema mingit ilusam. 772 00:34:31,389 --> 00:34:33,469 Aga see ei ole seda funktsiooni. 773 00:34:33,469 --> 00:34:39,590 Humala, 12345, 123456789, ei läheb kast, Registreeru. 774 00:34:39,590 --> 00:34:41,330 Paroolid ei kattu. 775 00:34:41,330 --> 00:34:44,459 Nii et kuigi see pop-up on ugly-- Me ei saa seda asendada lõpuks 776 00:34:44,459 --> 00:34:47,000 koos midagi Bootstrap, mis näete pset seitse 777 00:34:47,000 --> 00:34:50,239 on väga populaarne library-- tegin tuvastada, et paroolid ei kattu. 778 00:34:50,239 --> 00:34:50,739 Hästi. 779 00:34:50,739 --> 00:34:52,530 Noh, las ma lahendan et kui kasutaja. 780 00:34:52,530 --> 00:34:55,460 Lubage mul minna ja öelda, 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Ikka ei kontrollimiseks kokkuleppele. 782 00:34:57,780 --> 00:35:00,210 Sa pead nõustuma tingimusi. 783 00:35:00,210 --> 00:35:01,760 Miks? 784 00:35:01,760 --> 00:35:04,100 >> Kui me oleme juba paika pannud, et seal on viis, 785 00:35:04,100 --> 00:35:07,260 ja me oleme kohustatud teile pset seitse tuvastada viga 786 00:35:07,260 --> 00:35:09,780 tingimused, nagu seda server-side, miks ma peaksin 787 00:35:09,780 --> 00:35:13,940 viitsinud ka seda teed JavaScript? 788 00:35:13,940 --> 00:35:15,850 Mis argument kasuks, lisades, mida 789 00:35:15,850 --> 00:35:18,760 sa parasjagu näha kui some-- seal on veel keerulisemaks. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Võib-olla ei ole tagurpidi. 792 00:35:25,930 --> 00:35:26,924 Mis see võiks olla? 793 00:35:26,924 --> 00:35:27,840 Sihtrühm: [kuuldamatu]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID Humala: Oh, huvitav. 796 00:35:32,340 --> 00:35:33,530 Potentsiaalne ärakasutamine. 797 00:35:33,530 --> 00:35:37,540 Nii kindel, kui sa ei käitlemise ekslik kasutaja sisend, et suur, 798 00:35:37,540 --> 00:35:40,170 võibolla on kõik parem kui see isegi ei jõua oma server. 799 00:35:40,170 --> 00:35:42,160 Ma lükkaks sinna tagasi ja ütleme, siis tuleb ilmselt 800 00:35:42,160 --> 00:35:43,284 määrata need mõlemad probleemid. 801 00:35:43,284 --> 00:35:44,140 Aga see on õiglane. 802 00:35:44,140 --> 00:35:44,710 Mida veel? 803 00:35:44,710 --> 00:35:45,626 >> Sihtrühm: [kuuldamatu]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID Humala: Jah. 806 00:35:49,014 --> 00:35:51,680 See kood, nagu me varem öelnud, on tõlgendada kliendipoolse. 807 00:35:51,680 --> 00:35:53,846 See ei häiri server, mis tähendab seda ei juhtu 808 00:35:53,846 --> 00:35:55,930 mõjutada serveri koormus või võimsust. 809 00:35:55,930 --> 00:35:59,840 Ja nüüd, vähe vana mulle, see ei ole märkimisväärset mõju 810 00:35:59,840 --> 00:36:01,970 sest mul on üks kasutaja kohe. 811 00:36:01,970 --> 00:36:04,010 >> Aga kui sa oled igal kodulehel korraliku suurusega, 812 00:36:04,010 --> 00:36:07,400 Eriti suurim, nagu Facebook, rohkem võite hoida inimesi maha 813 00:36:07,400 --> 00:36:09,927 oma server parem sest server muidugi 814 00:36:09,927 --> 00:36:12,510 on ainult piiratud kogus RAM, hulga gigahertsi, 815 00:36:12,510 --> 00:36:16,340 hulga asju seda saab teha ajaühikus. 816 00:36:16,340 --> 00:36:19,170 Nii et kui seal on rohkem inimesi maailma lööb oma server, 817 00:36:19,170 --> 00:36:21,750 kogemata metsaraie valesti, sama hästi kui te 818 00:36:21,750 --> 00:36:23,254 saab hoida, et lasti maha oma server. 819 00:36:23,254 --> 00:36:25,420 Plus, eriti mobiilse device-- Kui olete kunagi 820 00:36:25,420 --> 00:36:29,190 logige my.harvard või Yale'i netid vms, 821 00:36:29,190 --> 00:36:32,330 seal on see peiteaeg palju veebilehed nagu see, mille ta võtab, 822 00:36:32,330 --> 00:36:34,110 nagu, kuradi teine ​​või kaks mõnikord. 823 00:36:34,110 --> 00:36:37,979 Ja siis, mu Jumal, kui sisestasite vale, siis sa pead vajuta tagasi ja uuesti sooritada. 824 00:36:37,979 --> 00:36:40,520 Nii et latency, eriti aeglasem võrguühenduste. 825 00:36:40,520 --> 00:36:43,030 Aga JavaScript, sest see töötab kliendi 826 00:36:43,030 --> 00:36:46,720 ja ei ole vaja minna edasi ja tagasi üle potentsiaalselt aeglane internet 827 00:36:46,720 --> 00:36:49,780 ühendus, võite saada peaaegu hetkega tagasisidet. 828 00:36:49,780 --> 00:36:50,760 >> Nii vaatame seda. 829 00:36:50,760 --> 00:36:54,280 Lubage mul avada vormi 0 vaadata HTML siin. 830 00:36:54,280 --> 00:36:56,040 Ja olgem lihtsalt näha, mis toimub. 831 00:36:56,040 --> 00:36:59,460 See on vorm, mille tegevus on register.php. 832 00:36:59,460 --> 00:37:01,530 Ma lihtsalt kasutades saada nii et ma ei näe URL. 833 00:37:01,530 --> 00:37:05,030 Aga paroole, me tahaks kindlasti tahame Selle muutmiseks postitada tegelikkuses. 834 00:37:05,030 --> 00:37:06,910 Siin on sisestusväli tüübiga teksti. 835 00:37:06,910 --> 00:37:09,050 Siin on veel üks sisend valdkonnas Sisestage parool. 836 00:37:09,050 --> 00:37:13,150 Siin on, kui sa pole kunagi näinud, sisend-tüüpi kast. 837 00:37:13,150 --> 00:37:15,250 >> Aga seal ei ole JavaScript siin üldse. 838 00:37:15,250 --> 00:37:18,170 See on lihtsalt HTML et läheb register.php. 839 00:37:18,170 --> 00:37:21,020 Aga versiooni üks, kus ma hakkasin saama need pop-ups, 840 00:37:21,020 --> 00:37:23,010 Vaatame, mis tegelikult juhtub siin. 841 00:37:23,010 --> 00:37:26,757 Versioonis üks, mida Ma lähen see-- ma 842 00:37:26,757 --> 00:37:29,340 arvasin, et võiks varisemine piisavalt piisavalt sõnu, aga ma jooksin välja. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> In versioon one-- seal me läheme. 845 00:37:38,590 --> 00:37:43,180 Versioonis üks, märka following-- ja ei ole parim rakendamine, 846 00:37:43,180 --> 00:37:44,420 aga see on minu esimene. 847 00:37:44,420 --> 00:37:47,680 Pange tähele, et allpool kujul, mul on script tag. 848 00:37:47,680 --> 00:37:49,430 Ja script tag tähendab, hey, brauser, siin 849 00:37:49,430 --> 00:37:52,340 on mõned koodi, Tavaliselt JavaScript. 850 00:37:52,340 --> 00:37:54,420 Ja nüüd, märkate, mida ma teen. 851 00:37:54,420 --> 00:37:59,070 On LINE suudan vaevu Loe see-- rida 32, siis ütleb, 852 00:37:59,070 --> 00:38:01,420 var form-- nii mulle muutuja nimega kujul. 853 00:38:01,420 --> 00:38:05,049 Ja siis saan document.getElementId "registreerimine". 854 00:38:05,049 --> 00:38:05,590 Mis see on? 855 00:38:05,590 --> 00:38:07,290 Noh, las ma kerida siin. 856 00:38:07,290 --> 00:38:11,510 Ja teate, ah, ma andsin vormi element suvaline, kuid kirjeldav idee 857 00:38:11,510 --> 00:38:13,050 Registreerimise. 858 00:38:13,050 --> 00:38:16,820 Nii et see annab mulle muutuja võimaldab mul haarata, et sõlm, 859 00:38:16,820 --> 00:38:19,580 et ristküliku puu nimega kujul. 860 00:38:19,580 --> 00:38:24,460 form.onsubmit vahenditega, hey brauser, registreerida sündmus kuulaja 861 00:38:24,460 --> 00:38:25,470 Selles vormis. 862 00:38:25,470 --> 00:38:28,890 Teisisõnu, kui see vorm on esitatud, täita järgmine kood. 863 00:38:28,890 --> 00:38:30,810 See ei ole vaja nime, sest miks sa pead teadma nime? 864 00:38:30,810 --> 00:38:32,880 Sa lihtsalt pead teadma mida täita, ergo 865 00:38:32,880 --> 00:38:35,610 see on anonüümne või lambda funktsiooni. 866 00:38:35,610 --> 00:38:37,632 Ja see funktsioon on kõik need read siin. 867 00:38:37,632 --> 00:38:40,840 Ja nüüd, kui aus olla, kuigi sa ei oleks kunagi kirjutatud JavaScript 868 00:38:40,840 --> 00:38:44,200 enne, see on lihtsalt C ja PHP loogika. 869 00:38:44,200 --> 00:38:51,720 Nii et kui form.email.value == "" - nii et kui e-posti valdkonnas on tühi, 870 00:38:51,720 --> 00:38:54,980 kisa kasutajale "Te peate annavad oma e-posti aadress. " 871 00:38:54,980 --> 00:38:58,980 Else kui form.password.value on tühi kisa kasutaja, 872 00:38:58,980 --> 00:39:00,400 "Te peate andma oma parooli." 873 00:39:00,400 --> 00:39:04,240 >> Veelgi huvitavam on loogiliselt kui form.password.value ei 874 00:39:04,240 --> 00:39:08,630 võrdne form.confirmation.value-- Kust kinnituse tulevad? 875 00:39:08,630 --> 00:39:09,470 Lubage mul kerida. 876 00:39:09,470 --> 00:39:12,870 Noh, ma helistasin selle sisendi valdkonnas siin salasõna. 877 00:39:12,870 --> 00:39:15,180 Ja ma helistasin selle ühe siin kinnitust. 878 00:39:15,180 --> 00:39:17,850 Ma oleks võinud seda nimetas Parooli kaks või midagi muud. 879 00:39:17,850 --> 00:39:20,560 Ma lihtsalt loogiliselt kontroll et need kaks on sama. 880 00:39:20,560 --> 00:39:25,760 Else-- selgub see hr Boole again-- tõeväärtuse, ruut. 881 00:39:25,760 --> 00:39:29,810 Nii et kui ma ütlen, hüüatus point-- Kui ei ole form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 kisa nii kasutajale. 883 00:39:31,820 --> 00:39:34,470 >> Nii et see süntaks näete on väga levinud JavaScript, 884 00:39:34,470 --> 00:39:35,970 kus teil see punktiir märke. 885 00:39:35,970 --> 00:39:37,460 Sa alustad objekt siin. 886 00:39:37,460 --> 00:39:41,430 Sa sukelduda sügavamale A vara nagu parool. 887 00:39:41,430 --> 00:39:43,280 Ja siis saad sa selle tegelikku väärtust. 888 00:39:43,280 --> 00:39:45,830 Ja jälle, siin on sisend. 889 00:39:45,830 --> 00:39:47,310 Siin on parool. 890 00:39:47,310 --> 00:39:50,860 Ja selle väärtus on sõltumata Inimese tegelikult kirjutada. 891 00:39:50,860 --> 00:39:53,610 >> Nii kõigis neis juhtudel, ma tagasi vale. 892 00:39:53,610 --> 00:39:55,800 Aga kui mitte, ma tagasi tõsi. 893 00:39:55,800 --> 00:39:58,030 Ja nii nüüd näeme kaalukaid kasutamine, kui 894 00:39:58,030 --> 00:40:00,620 siis oleks tagasi false lõpetada see, mida kasutaja teeb 895 00:40:00,620 --> 00:40:03,200 ja teha teda valida uuesti või kirjuta uuesti. 896 00:40:03,200 --> 00:40:05,870 Muidu me naasta tõsi. 897 00:40:05,870 --> 00:40:08,585 >> Ja lubage mul tutvustada üks muu variant see lihtsalt 898 00:40:08,585 --> 00:40:13,140 seemne mingi ettekujutus sellest. 899 00:40:13,140 --> 00:40:16,850 Noh, versioon 2 sellest, vormi-2-- Ma teen seda koos laine poolt. 900 00:40:16,850 --> 00:40:19,920 See on neile, uudishimulik, jQuery versioon, 901 00:40:19,920 --> 00:40:23,330 Neile, kes võiksid võõpama, et eelkõige raamatukogu. 902 00:40:23,330 --> 00:40:25,145 Aga olgem start-- ja küsimusi? 903 00:40:25,145 --> 00:40:29,230 Lubage mul peatuda hetkeks, sest et oli kiire ja palju. 904 00:40:29,230 --> 00:40:32,610 >> Aga hea asi on see, et kõik kood on üsna sama. 905 00:40:32,610 --> 00:40:33,985 Uus kraam, mida on dom? 906 00:40:33,985 --> 00:40:35,115 Mis need ristkülikud? 907 00:40:35,115 --> 00:40:35,990 Mis on need sõlmed? 908 00:40:35,990 --> 00:40:37,540 Mis anonüümne funktsioon? 909 00:40:37,540 --> 00:40:38,830 Mis sündmus handler? 910 00:40:38,830 --> 00:40:43,480 Aga õnneks, enamus sellest on lihtsalt ring täis, ütleme, nädal null. 911 00:40:43,480 --> 00:40:43,980 Hästi. 912 00:40:43,980 --> 00:40:46,070 Nii midagi veidi huvitavam? 913 00:40:46,070 --> 00:40:49,340 Noh, esiteks lubage mul minna edasi ja avada Google Maps. 914 00:40:49,340 --> 00:40:53,360 Ja märkad, et ette Praegu on sekundi murdosa, 915 00:40:53,360 --> 00:40:55,930 pane tähele, mis juhtub siis, kui Ma vajutan piisavalt kiiresti. 916 00:40:55,930 --> 00:40:59,720 Ja sellega seoses Harvardi on nii kiire, et sa tõesti ei märka seda. 917 00:40:59,720 --> 00:41:04,469 Aga mida sa selline omamoodi näha kui ma klõpsata ja liigutada tõesti kiire? 918 00:41:04,469 --> 00:41:07,010 Neile, vaadates online, kui sa aeglaselt seda 0,5x kiirusega, 919 00:41:07,010 --> 00:41:09,640 näed seda parem. 920 00:41:09,640 --> 00:41:13,550 >> Mis juhtub lihtsalt enne kui ma klõpsatud ja tirisid? 921 00:41:13,550 --> 00:41:15,900 Las ma proovin siin--, las ma teen midagi muud, näiteks 90210. 922 00:41:15,900 --> 00:41:17,550 Lähme kaugel. 923 00:41:17,550 --> 00:41:19,000 See oli tõesti kiire, liiga. 924 00:41:19,000 --> 00:41:22,460 Kuidas Disney World? 925 00:41:22,460 --> 00:41:23,190 Seal me läheme. 926 00:41:23,190 --> 00:41:23,690 OKEI. 927 00:41:23,690 --> 00:41:26,030 Mida sa nägid sekundi murdosa? 928 00:41:26,030 --> 00:41:27,200 Just, nagu ruudud, eks? 929 00:41:27,200 --> 00:41:28,930 Kohatäited plaadid? 930 00:41:28,930 --> 00:41:30,270 >> Noh, mis siin toimub? 931 00:41:30,270 --> 00:41:35,410 Google Maps on kena näide Selle tehnoloogia seda nimetatakse AJAX. 932 00:41:35,410 --> 00:41:38,510 Ja see on koht, kus me hakkame kasuta JavaScript eriti 933 00:41:38,510 --> 00:41:39,277 võluv viis. 934 00:41:39,277 --> 00:41:41,610 Juba järgmisel päeval oli Selle veebilehe nimega MapQuest. 935 00:41:41,610 --> 00:41:44,120 Ja ma oleks võtnud screenshot sellest alates 1990 936 00:41:44,120 --> 00:41:45,820 kus, kui sa tahtsid otsida siin kaardil 937 00:41:45,820 --> 00:41:48,590 siis oleks sõna otseses mõttes klõpsake noolt kuni ülaosas et näitasin teile 938 00:41:48,590 --> 00:41:49,870 erineva ruudu kaardil. 939 00:41:49,870 --> 00:41:51,790 Kui sa tahad liikuda vasakule, siis klõpsatud noole, mis näitas sulle 940 00:41:51,790 --> 00:41:53,210 erineva ruudu kaardil. 941 00:41:53,210 --> 00:41:54,840 Ja mõned veebilehed ikka seda teha täna. 942 00:41:54,840 --> 00:41:57,820 Aga isegi MapQuest on saanud parem, nagu Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> Selle asemel, mida on parem neid päeva on veebilehed, et kasutada AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- muidu tuntud Asynchronous JavaScript ja XML, 945 00:42:04,510 --> 00:42:08,370 mis on lihtsalt fancy viis öelda tehnoloogia või tehnikat, mis 946 00:42:08,370 --> 00:42:14,200 võimaldab brauseris JavaScript teha täiendavaid HTTP taotlusi 947 00:42:14,200 --> 00:42:16,390 pärast lehekülge on koormatud. 948 00:42:16,390 --> 00:42:17,479 Mida see tähendab? 949 00:42:17,479 --> 00:42:19,270 Noh, see oleks omamoodi tüütu Gmaili 950 00:42:19,270 --> 00:42:21,103 Kui iga kord, kui tahtsin kontrollida oma posti, 951 00:42:21,103 --> 00:42:24,940 sa olid sõna otseses mõttes tabas kontroll-R või Command-R või vajuta Reload nuppu 952 00:42:24,940 --> 00:42:26,580 ja kogu paganama lehele oleks uuesti. 953 00:42:26,580 --> 00:42:26,800 Õigus? 954 00:42:26,800 --> 00:42:28,460 Oleks vilkuma valge ilmselt teine. 955 00:42:28,460 --> 00:42:30,043 Sa näeksid loll progress bar. 956 00:42:30,043 --> 00:42:33,170 Ja lihtsalt et näha, kas teil on uusi mail, kogu veebilehe ja URL 957 00:42:33,170 --> 00:42:34,580 sa oled oleks uuesti laadida. 958 00:42:34,580 --> 00:42:35,960 >> Aga see pole see, mida juhtub Gmail. 959 00:42:35,960 --> 00:42:36,459 Õigus? 960 00:42:36,459 --> 00:42:40,300 Kui sa saad uue e-posti Gmail, mis juhtub ekraanil? 961 00:42:40,300 --> 00:42:41,480 See lihtsalt näitab üles, eks? 962 00:42:41,480 --> 00:42:44,280 See lihtsalt võluväel ilmub nagu uus rida tabelis. 963 00:42:44,280 --> 00:42:47,030 See tegelikult kaasneb korralik summa keerukust. 964 00:42:47,030 --> 00:42:51,892 Tegelikult, kui sa arvad seda puud, mis, kuigi on lihtne siin, 965 00:42:51,892 --> 00:42:54,100 Gmail-- ja ma pean otsima kell kood olla sure-- 966 00:42:54,100 --> 00:42:58,710 Tõenäoliselt on HTML tabeli või äkki järjestamata nimekirja, et see muudab 967 00:42:58,710 --> 00:43:01,060 iga oma postkastidesse kirju nagu. 968 00:43:01,060 --> 00:43:04,050 >> Ja kui te kujutate ette, see on on puu mälu, kui sa oled 969 00:43:04,050 --> 00:43:09,050 Gmaili, mis näeb välja selline omamoodi nagu see, kui Google saab aru, ooh, 970 00:43:09,050 --> 00:43:12,770 sul on uus e-posti, see ei ole soovite taastada terve puu. 971 00:43:12,770 --> 00:43:16,430 Pigem soovib leida sõlme puu, mis esindab oma postkasti 972 00:43:16,430 --> 00:43:18,580 ja lihtsalt sisestada uue sõlme. 973 00:43:18,580 --> 00:43:24,640 >> Nii väga sarnane pset viis, kus te tuli sisestada sõlmede ümber hash tabelit, 974 00:43:24,640 --> 00:43:28,410 Samamoodi ei Google kaudu JavaScript koodi, et see on kirjutatud, 975 00:43:28,410 --> 00:43:31,890 Rihma seda puud, aru saada, kus on see, et postkasti akna osa, 976 00:43:31,890 --> 00:43:33,440 ja siis lisab uue rea. 977 00:43:33,440 --> 00:43:37,460 Ja uue rea tähendab lihtsalt üks või enam uut tippe puu. 978 00:43:37,460 --> 00:43:41,340 >> Ja nii AJAX on see tehnika mis võimaldab just nii. 979 00:43:41,340 --> 00:43:44,440 Kui olete külastanud URL, aga hull pikk see on, 980 00:43:44,440 --> 00:43:46,472 ja kui leht on laaditud, saate siiski 981 00:43:46,472 --> 00:43:48,430 Haara rohkem andmeid internet-- kas see on 982 00:43:48,430 --> 00:43:52,460 talle või plaat on map-- haarata kulisside taga 983 00:43:52,460 --> 00:43:55,290 ja siis pistke see lehekülg nii, et inimene ei ole tegelikult 984 00:43:55,290 --> 00:43:56,910 pead ootama seda. 985 00:43:56,910 --> 00:43:58,980 >> Facebook Messenger töötab samamoodi. 986 00:43:58,980 --> 00:44:01,562 Iga rida teisi websites-- oh, tegelikult isegi seda. 987 00:44:01,562 --> 00:44:04,270 Ma mõtlen, et see on ausalt öeldes selline tüütu funktsioon nendel päevadel. 988 00:44:04,270 --> 00:44:07,500 Kui ma alustan otsivad cats-- seda on selline jube kasutaja kogemus. 989 00:44:07,500 --> 00:44:08,990 See lihtsalt hakkab otsima mind. 990 00:44:08,990 --> 00:44:10,050 Noh, mida ta teeb? 991 00:44:10,050 --> 00:44:12,920 URL ei ole muutunud sest ma hakkasin kirjutama. 992 00:44:12,920 --> 00:44:17,330 Aga mis toimub kogu wire-- OK, hmm huvitav. 993 00:44:17,330 --> 00:44:20,470 Mis toimub kogu traat siin lihtsalt muutub imelikum. 994 00:44:20,470 --> 00:44:21,090 >> OKEI. 995 00:44:21,090 --> 00:44:24,670 Nii et lubage mul minna ja kontrollida element ja minna vahekaarti Network 996 00:44:24,670 --> 00:44:27,040 ja proovige teha seda tehniline ja vähem umbes kassid. 997 00:44:27,040 --> 00:44:32,595 Nagu ma kirjutada, sõna otseses mõttes, kassid and-- mis toimub 998 00:44:32,595 --> 00:44:37,710 per-- Ma ei kavatse klõpsake seda. 999 00:44:37,710 --> 00:44:38,210 Hästi. 1000 00:44:38,210 --> 00:44:44,280 Nii siin, mis toimub iga kord, kui ma kirjutad, ilmselt? 1001 00:44:44,280 --> 00:44:45,000 Like, madal? 1002 00:44:45,000 --> 00:44:47,860 Mis toimub iga nende tegelased ma kirjutades minu klaviatuuri? 1003 00:44:47,860 --> 00:44:48,359 Jah? 1004 00:44:48,359 --> 00:44:50,950 Sihtrühm: [kuuldamatu]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID Humala: Täpselt. 1006 00:44:52,340 --> 00:44:55,600 Kõik need tegelased on läheb Google, üks korraga. 1007 00:44:55,600 --> 00:44:58,490 Nad ehitavad üles string oma server, mis tähistab 1008 00:44:58,490 --> 00:44:59,936 kõike olen sisestanud siiani. 1009 00:44:59,936 --> 00:45:01,810 Ja iga kord, kui ma kirjutada teise iseloomu, nad 1010 00:45:01,810 --> 00:45:04,530 kasutada oma saladust kaste on otsingu algoritm ja nuputada, 1011 00:45:04,530 --> 00:45:07,370 Kas ta tähenda see kass lehele või sellele kassile lehele vms? 1012 00:45:07,370 --> 00:45:10,620 Nii mingis mõttes annab see mulle parem kogemus, et ma isegi ei 1013 00:45:10,620 --> 00:45:11,860 peavad täitma minu mõte. 1014 00:45:11,860 --> 00:45:14,440 Ja tõepoolest, see on kasulik asi, autotäitm üldiselt. 1015 00:45:14,440 --> 00:45:17,690 Kui oma algoritme on piisavalt hea ja kui minu otsingud on ilmne piisavalt, 1016 00:45:17,690 --> 00:45:19,300 Mul ei ole kirjutada terve sõna. 1017 00:45:19,300 --> 00:45:22,110 Nad ei ütle mulle, mida see on ma tegelikult otsivad. 1018 00:45:22,110 --> 00:45:25,940 Mida Google nõuab kohest otsing on lihtsalt AJAX, 1019 00:45:25,940 --> 00:45:30,820 kasutades koodi, mis võimaldab neil taotleda täiendava sisu veebibrauseri kaudu 1020 00:45:30,820 --> 00:45:34,026 kulisside taga, kasutades seda Uue keele JavaScript. 1021 00:45:34,026 --> 00:45:35,400 Nii et meil on paar minutit aega. 1022 00:45:35,400 --> 00:45:37,710 Ja andke mulle helistama minu sõber Colton kuni lavale, 1023 00:45:37,710 --> 00:45:40,090 kuna see tundus eriti lõbus viimast korda 1024 00:45:40,090 --> 00:45:42,290 kehtestada tehnoloogia et mõned teist 1025 00:45:42,290 --> 00:45:44,769 on väljendanud huvi aastal lõpliku projekti. 1026 00:45:44,769 --> 00:45:47,310 Arvasime, et see oleks lõbus tuua kuni vabatahtlikuna, kuigi täna 1027 00:45:47,310 --> 00:45:50,074 näidata teile lisaks see, mis võimaldab sina-- yeah, 1028 00:45:50,074 --> 00:45:50,990 Ma nägin seda kätt esimene. 1029 00:45:50,990 --> 00:45:52,900 Tule üles. 1030 00:45:52,900 --> 00:45:53,560 Väga hästi tehtud. 1031 00:45:53,560 --> 00:45:55,035 Tubli töö. 1032 00:45:55,035 --> 00:45:57,410 Ma lähen projekti selle kohta ekraan hetk. 1033 00:45:57,410 --> 00:45:58,150 Mis su nimi on kõigi jaoks? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: ma olen Efa. 1035 00:45:59,180 --> 00:45:59,410 >> DAVID Humala: Etha? 1036 00:45:59,410 --> 00:45:59,785 >> EFA: EFA. 1037 00:45:59,785 --> 00:46:00,160 >> DAVID Humala: EFA? 1038 00:46:00,160 --> 00:46:00,730 >> EFA: Jah. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID Humala: Tore teid näha. 1040 00:46:01,250 --> 00:46:01,600 Hästi. 1041 00:46:01,600 --> 00:46:02,590 Las ma saan selle valmis. 1042 00:46:02,590 --> 00:46:04,423 Tulge üle keskel koos Colton siin. 1043 00:46:04,423 --> 00:46:07,050 Mis Colton on käes täna on kaugjuhtimispult. 1044 00:46:07,050 --> 00:46:10,440 Nii et pigem lihtsalt seista seal on kolmemõõtmelise maailma vaatan 1045 00:46:10,440 --> 00:46:14,080 nagu Colton tegin, nüüd Efa saab tegelikult jalutada minnes üles 1046 00:46:14,080 --> 00:46:16,689 alla, vasakule ja paremale nagu Nintendo või Xbox kontroller. 1047 00:46:16,689 --> 00:46:18,230 EFA: Ma lähen kukkuda etapil. 1048 00:46:18,230 --> 00:46:20,500 DAVID Humala: ma seista umbes siin. 1049 00:46:20,500 --> 00:46:21,991 Aga see on risk. 1050 00:46:21,991 --> 00:46:22,490 OKEI. 1051 00:46:22,490 --> 00:46:25,690 Nii et laske käia ja panna neid edasi. 1052 00:46:25,690 --> 00:46:29,315 Lubage mul minna ja lülitub ekraan siin. 1053 00:46:29,315 --> 00:46:30,670 Lubage mul päevasõidutulede tuled. 1054 00:46:30,670 --> 00:46:32,780 Ja Colton, lase mind tulnud seista sinu kõrval. 1055 00:46:32,780 --> 00:46:35,520 >> Kas sa tahad, et selgitada siin koos mikrofoniga, mida me teeme? 1056 00:46:35,520 --> 00:46:36,380 Palun. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Muidugi. 1058 00:46:37,280 --> 00:46:39,980 Nii just nüüd laadimise üles Oculus, 1059 00:46:39,980 --> 00:46:43,070 Ma arvan operating-- ei tööta süsteemi, kuid peamine programm, kus 1060 00:46:43,070 --> 00:46:46,630 pääsete kõik mängud ja apps, mis on oma raamatukogu. 1061 00:46:46,630 --> 00:46:50,060 Nii kohe, see peaks ütlema koputage puuteplaadi alustada. 1062 00:46:50,060 --> 00:46:53,430 Puuteplaat saab olema kohta paremal pool peakomplekti. 1063 00:46:53,430 --> 00:46:54,569 Nii et laske käia ja tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: Oh, mees. 1065 00:46:55,110 --> 00:46:56,443 DAVID Humala: Jah, seal lähete. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Kvaliteedi Efa on näha on palju kõrgema kvaliteediga. 1068 00:47:02,460 --> 00:47:03,831 See on lihtsalt Wi-Fi siin. 1069 00:47:03,831 --> 00:47:05,580 COLTON: Mis sa oled tahame seda teha 1070 00:47:05,580 --> 00:47:08,350 on välja ülalt paremas servas. 1071 00:47:08,350 --> 00:47:10,420 Yep, et mäng väga üleval paremal. 1072 00:47:10,420 --> 00:47:14,780 Ja siis, kui sa valides see, koputage puuteplaadi uuesti. 1073 00:47:14,780 --> 00:47:17,010 Ma arvan, et tema Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 Ja siis siin on a_N siin, las mul hoida oma prillid eest. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Nii et ma lihtsalt andsin talle kontroller. 1077 00:47:25,790 --> 00:47:28,886 Nüüd ta saab juhtida mängu. 1078 00:47:28,886 --> 00:47:30,510 Ta võib liikuda ja värki. 1079 00:47:30,510 --> 00:47:31,968 Nii et laske käia ja otsida üles. 1080 00:47:31,968 --> 00:47:33,640 Sa peaksid nägema New Game. 1081 00:47:33,640 --> 00:47:36,310 Nii et laske käia ja mida saate teha, et. 1082 00:47:36,310 --> 00:47:39,320 Nüüd siis peaks olema võimalik kontrollida ennast töötleja, 1083 00:47:39,320 --> 00:47:43,860 samuti kiiresti mängu laeb siin. 1084 00:47:43,860 --> 00:47:46,356 See võib olla natuke hirmutav. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: Nüüd sa mulle öelda. 1086 00:47:47,300 --> 00:47:50,132 OKEI. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: Okei. 1088 00:47:51,080 --> 00:47:52,650 Nii kinnitavad, et saate liikuda. 1089 00:47:52,650 --> 00:47:52,750 OKEI. 1090 00:47:52,750 --> 00:47:53,583 Võite liikuda. 1091 00:47:53,583 --> 00:47:54,300 Perfect. 1092 00:47:54,300 --> 00:47:56,470 Nii et kui sa vaatad alla, siis on kaart. 1093 00:47:56,470 --> 00:47:58,170 Kaart näitab, kus sa oled. 1094 00:47:58,170 --> 00:47:59,720 Võite vaadata ruumis ringi. 1095 00:47:59,720 --> 00:48:01,440 Võite täiesti ümber pöörata. 1096 00:48:01,440 --> 00:48:02,128 Jah, täpselt. 1097 00:48:02,128 --> 00:48:02,627 Pööra ümber. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Seega otsige oma vasakule. 1100 00:48:07,125 --> 00:48:09,875 Ma arvan, et seal on midagi, mida saab korja barreli ruumis. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: Kuidas saada map välja viis? 1102 00:48:11,709 --> 00:48:12,375 COLTON: Vaata üles. 1103 00:48:12,375 --> 00:48:12,980 Lihtsalt otsida. 1104 00:48:12,980 --> 00:48:13,480 Hästi. 1105 00:48:13,480 --> 00:48:13,765 Palun. 1106 00:48:13,765 --> 00:48:15,181 Nüüd minna ja lihtsalt ümber pöörata. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Nii vaatame kaugemale oma vasakule. 1109 00:48:24,620 --> 00:48:25,530 Liigu vasakule. 1110 00:48:25,530 --> 00:48:26,960 Hoidke vaadates vasakule. 1111 00:48:26,960 --> 00:48:27,541 Jätka. 1112 00:48:27,541 --> 00:48:28,040 Jah. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: Oh, nii. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Jah. 1115 00:48:29,261 --> 00:48:30,999 Kõnni suunas kontrolleriga. 1116 00:48:30,999 --> 00:48:31,540 Palun. 1117 00:48:31,540 --> 00:48:32,790 Nüüd peaks ütlema tulla. 1118 00:48:32,790 --> 00:48:33,360 Palun. 1119 00:48:33,360 --> 00:48:34,290 Pick it up. 1120 00:48:34,290 --> 00:48:35,550 Hästi. 1121 00:48:35,550 --> 00:48:38,286 Nüüd lähme siit toast välja. 1122 00:48:38,286 --> 00:48:42,209 Lase käia ja jalutada, et uks. 1123 00:48:42,209 --> 00:48:45,000 Nii et sa lähed hold-- öeldakse hoidke nuppu, et panna see avatud. 1124 00:48:45,000 --> 00:48:46,333 Nii et laske käia ja hoidke nuppu all. 1125 00:48:46,333 --> 00:48:48,250 Yep, sundides seda avada. 1126 00:48:48,250 --> 00:48:48,750 Hästi. 1127 00:48:48,750 --> 00:48:49,410 Tubli töö. 1128 00:48:49,410 --> 00:48:50,826 Nüüd kõnnid toast välja. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Nii et ma jätan ülejäänud up sulle ja vaata, mida sa teada. 1131 00:49:01,366 --> 00:49:02,865 EFA: ma ei kavatse pimedas ruumis. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 Oh, oota. 1134 00:49:07,815 --> 00:49:09,314 Nüüd on mul minna pimedas saalis? 1135 00:49:09,314 --> 00:49:10,785 OK, ma lähen tagasi [kuuldamatu]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: Okei. 1138 00:49:16,270 --> 00:49:17,560 Mõned rohkem punkte kiirenemist. 1139 00:49:17,560 --> 00:49:19,370 Paistab, mõned mündid. 1140 00:49:19,370 --> 00:49:22,242 See on lukk pick. 1141 00:49:22,242 --> 00:49:24,200 Nii et kui sa leiad lukustatud uks, mida saab kasutada, et. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Kas sa kardad? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: Pole veel. 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-- yeah. 1148 00:49:35,497 --> 00:49:37,330 Lihtsalt teeselda olete tegelikult seisis seal. 1149 00:49:37,330 --> 00:49:39,580 Ja kui lülitad lihtsalt ringi sa pead harjuda sellega. 1150 00:49:39,580 --> 00:49:40,752 Aga see on mõistlik. 1151 00:49:40,752 --> 00:49:43,960 DAVID Humala: Ja samas Efa jätkuvalt mängida, sest me ei tee seda kogu päeva, 1152 00:49:43,960 --> 00:49:45,381 me kõik tip-toe siin. 1153 00:49:45,381 --> 00:49:48,130 Aga meil on veel kaks paari, Kui soovite tulla ja mängida. 1154 00:49:48,130 --> 00:49:49,980 Vastasel juhul näeme Teile järgmise kolmapäeval. 1155 00:49:49,980 --> 00:49:51,354 Aitäh meie vabatahtlikele täna. 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 teema"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 SPEAKER 1: Noh, ma olen paneb uue PL mount. 1161 00:50:00,180 --> 00:50:01,800 Ma lihtsalt muutnud OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> SPEAKER 2: Mis siis täpselt sa teed? 1163 00:50:03,980 --> 00:50:07,063 >> SPEAKER 1: Noh, iga üks these-- Siin ma näitan sulle see siin. 1164 00:50:07,063 --> 00:50:08,690 Te näete seda siin. 1165 00:50:08,690 --> 00:50:09,510 >> SPEAKER 3: Ma arvan, et ma olen hea nende. 1166 00:50:09,510 --> 00:50:09,933 Sa tahad veel? 1167 00:50:09,933 --> 00:50:11,325 >> SPEAKER 4: Ei, ma olen hea. [Kuuldamatu]. 1168 00:50:11,325 --> 00:50:12,200 >> SPEAKER 3: Ei, [kuuldamatu]. 1169 00:50:12,200 --> 00:50:12,700 Kas mõned. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 SPEAKER 1: erinevat värvi. 1172 00:50:22,290 --> 00:50:22,890 SPEAKER 2: nuppu OK. 1173 00:50:22,890 --> 00:50:26,690 SPEAKER 1: Nii lõpuks, mida ta ei ole see reguleerib värvi of--