1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID Malan: Olgu. 3 00:00:12,360 --> 00:00:15,970 See on CS50, ja see on nädala lõpuks üheksa. 4 00:00:15,970 --> 00:00:18,560 See oli keeristorm üle Viimase paari päeva jooksul. 5 00:00:18,560 --> 00:00:21,580 Ja probleem pani seitse, kui sa põlve sügavale ta aru, seal on üsna 6 00:00:21,580 --> 00:00:23,340 natuke uus, mis seal sees on. 7 00:00:23,340 --> 00:00:26,660 Aga vaatame, kas me saame panema kõik koos siin lühidalt 8 00:00:26,660 --> 00:00:29,230 enne siis pöördub ära veel teises suunas ja nägemine 9 00:00:29,230 --> 00:00:30,510 Kus mujal me minna ei saa. 10 00:00:30,510 --> 00:00:32,630 >> Seega seni oleme rääkinud HTML. 11 00:00:32,630 --> 00:00:33,740 Me oleme rääkinud CSS. 12 00:00:33,740 --> 00:00:34,705 Me oleme rääkinud PHP. 13 00:00:34,705 --> 00:00:36,520 Sul tekkisid SQL. 14 00:00:36,520 --> 00:00:38,360 Täna me räägime natuke umbes JavaScript. 15 00:00:38,360 --> 00:00:41,230 Aga kuidas kõik need erinevad keeltes kokku sobivad? 16 00:00:41,230 --> 00:00:44,970 >> Nii me rääkisime eelmisel nädalal umbes mõiste, mille server. 17 00:00:44,970 --> 00:00:48,470 Teeme lihtsalt joonistada ristkülik nagu web server siin. 18 00:00:48,470 --> 00:00:52,200 Ja web server teenib kindlasti faile. 19 00:00:52,200 --> 00:00:54,640 Ja mõned neist faile saab HTML-faile. 20 00:00:54,640 --> 00:00:58,270 Nii et üks asi, mis veebi server saab sülitama olla faili 21 00:00:58,270 --> 00:01:01,290 me lihtsalt juhtida niimoodi sisaldavad mõned HTML. 22 00:01:01,290 --> 00:01:04,786 Nii üldarusaadavat mõttes, mida Mis HTML saate teha? 23 00:01:04,786 --> 00:01:06,036 >> Publik: Page välimus kena. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID Malan: OK, teeb lehe välimus kena, kuigi ma arvan, et olen tõestanud 26 00:01:12,310 --> 00:01:13,370 et muidu. 27 00:01:13,370 --> 00:01:18,250 Nii HTML ei lase sul panema lehekülge struktuurilt ja see võimaldab teil 28 00:01:18,250 --> 00:01:22,410 omamoodi esteetiliselt märgistada lehel märgistada staatiline sisu, nii et te 29 00:01:22,410 --> 00:01:23,640 saab siis vaadata seda brauseris. 30 00:01:23,640 --> 00:01:24,690 >> Aga see on võti. 31 00:01:24,690 --> 00:01:26,130 See on staatiline sisu. 32 00:01:26,130 --> 00:01:28,590 Sa kirjutad seda, mida salvestada, ja siis vedada. 33 00:01:28,590 --> 00:01:31,130 Ja web server siis teenib ta kuni oma külastajaid. 34 00:01:31,130 --> 00:01:35,700 >> Aga me Stilisoida asju kasutades erinevat keel üldse. 35 00:01:35,700 --> 00:01:40,150 Hakkasime kasutama style atribuut teatavaid koode. 36 00:01:40,150 --> 00:01:43,400 Ja style atribuut paneme asjad nagu kirja suurus ja värv. 37 00:01:43,400 --> 00:01:46,460 Ja sa oled ilmselt hakanud avastama, või sa varsti lõplikuks 38 00:01:46,460 --> 00:01:50,160 projektide potentsiaalselt veel teisi omadused, mida saab kasutada CSS. 39 00:01:50,160 --> 00:01:54,710 Ja nii üldarusaadavat mõttes, mida tõesti siis ei CSS teha? 40 00:01:54,710 --> 00:01:57,810 Need on vaid näited. 41 00:01:57,810 --> 00:02:00,730 Mis see lasta sul seda teha HTML ei tundu, mida 42 00:02:00,730 --> 00:02:02,606 oleme näinud siiani? 43 00:02:02,606 --> 00:02:04,850 >> Publik: Määratle laadid ise. 44 00:02:04,850 --> 00:02:06,700 >> DAVID Malan: Määratle laadid ise. 45 00:02:06,700 --> 00:02:10,280 Nii määratleb asjad klasside te võivad olla tekkinud või üheselt 46 00:02:10,280 --> 00:02:13,800 kindlaks sõlmede dokument nii et saate Stilisoida neid. 47 00:02:13,800 --> 00:02:16,890 Aga täpsemalt, ma ütleksin, et CSS tegelikult võimaldab teha asju 48 00:02:16,890 --> 00:02:20,790 viimane miil ning võimaldab teil määrata palju täpsemalt esteetika, 49 00:02:20,790 --> 00:02:24,340 arvestades HTML enamasti võimaldab Sa struktuuri saidile. 50 00:02:24,340 --> 00:02:27,310 >> Ja kuigi seal on mõned vaikimisi, nagu nägime silt 51 00:02:27,310 --> 00:02:30,690 rubriik tag, mis jämedalt öeldes tehtud asjad suur ja julge. 52 00:02:30,690 --> 00:02:34,250 See on üsna üldine määratlus tag - suur ja julge. 53 00:02:34,250 --> 00:02:35,260 Mis font size on? 54 00:02:35,260 --> 00:02:36,080 Mis värvi see on? 55 00:02:36,080 --> 00:02:36,890 Kuidas julge on? 56 00:02:36,890 --> 00:02:39,830 Ja CSS võimaldab rohkem peeneks tune asjad niimoodi. 57 00:02:39,830 --> 00:02:42,150 Samuti paigutus, nagu mõned teist on näinud. 58 00:02:42,150 --> 00:02:45,180 >> Ja ausalt öeldes, CSS on natuke räpane keel. 59 00:02:45,180 --> 00:02:48,370 See on väga võimas, et saate sõna otseses mõttes igal veebilehel, et olete 60 00:02:48,370 --> 00:02:51,880 näha veebis täna, kuid see on selline valu kaela. 61 00:02:51,880 --> 00:02:54,440 Ja mõned teist on põrutasin oma peaga vastu seinu juba lihtsalt teha 62 00:02:54,440 --> 00:02:58,560 midagi loll nagu keskus menüü probleem pani seitse kui oled õppinud 63 00:02:58,560 --> 00:02:59,470 Sel hetkel juba. 64 00:02:59,470 --> 00:03:01,530 >> Aga aru, need asjad saada lihtsamaks ajas. 65 00:03:01,530 --> 00:03:02,820 Te hakkate märkama mustreid. 66 00:03:02,820 --> 00:03:06,020 Ja jälle, Google on sinu sõber eri viise, mille abil saab 67 00:03:06,020 --> 00:03:07,220 lahendada selliseid probleeme. 68 00:03:07,220 --> 00:03:11,520 >> Julgen öelda, CSS ja HTML enam üldiselt, siis on võimalik lahendada probleeme 69 00:03:11,520 --> 00:03:15,910 palju rohkem võimalusi, mis kõik võiks väga õige olla, kui sa saaksid 70 00:03:15,910 --> 00:03:18,900 midagi nagu C, isegi nüüd PHP või JavaScripti. 71 00:03:18,900 --> 00:03:21,080 Seal on lihtsalt palju erinevaid kuidas panna asju teha. 72 00:03:21,080 --> 00:03:22,570 >> Aga see hakkas saada räpane, me ütlesime. 73 00:03:22,570 --> 00:03:26,480 Just selline segunemine oma HTML ja oma CSS stiilis atribuut oli 74 00:03:26,480 --> 00:03:27,590 veidi lohakas. 75 00:03:27,590 --> 00:03:31,460 Ja nii me selle asemel öelda, omamoodi abstraktselt öeldes, et sa peaksid 76 00:03:31,460 --> 00:03:34,050 vähemalt hakkavad tegur välja oma CSS ilmselt. 77 00:03:34,050 --> 00:03:37,430 Ei oma stiili tunnused, kuid vähemalt kasutada style tag sees, mida 78 00:03:37,430 --> 00:03:38,840 osa veebilehe? 79 00:03:38,840 --> 00:03:39,560 >> Publik: Head. 80 00:03:39,560 --> 00:03:40,120 >> DAVID Malan: pähe. 81 00:03:40,120 --> 00:03:43,270 Senini oli meil ainult pealkirja üles olemas, kuid saate lisada ka stiil 82 00:03:43,270 --> 00:03:47,230 sildistamiseks ja võite panna CSS jämedalt räägi poole lehekülje ülaserva. 83 00:03:47,230 --> 00:03:52,550 Aga siis võtsime asjad sammu edasi ja me tegureid, et rohkem 84 00:03:52,550 --> 00:03:54,130 eraldi faili. 85 00:03:54,130 --> 00:03:57,240 >> Ja nii need kaks faili olid kuidagi nüüd seotud. 86 00:03:57,240 --> 00:03:59,550 Ja tõepoolest see oli tag et seda tegin. 87 00:03:59,550 --> 00:04:02,920 Ja mis oli üks üldine põhjusi faktooring meie CSS 88 00:04:02,920 --> 00:04:04,057 kõik rohkem? 89 00:04:04,057 --> 00:04:05,280 >> Publik: korduvkasutamine. 90 00:04:05,280 --> 00:04:05,785 >> DAVID Malan: korduvkasutamine. 91 00:04:05,785 --> 00:04:06,150 Eks ole? 92 00:04:06,150 --> 00:04:09,470 Võite näinud p-set seitse juba et palju lehti, 93 00:04:09,470 --> 00:04:12,260 ostmine lehel müügi lehele, portfelli lehel, on ilmselt 94 00:04:12,260 --> 00:04:13,550 struktureeritud mõnevõrra samamoodi. 95 00:04:13,550 --> 00:04:17,579 Seal CS50 rahandus logo ülaosas kui sa oled otsustanud, et seda muuta. 96 00:04:17,579 --> 00:04:19,839 Seal on jalus allosas lehekülge. 97 00:04:19,839 --> 00:04:24,315 Ja CSS võimaldab teil siis tegur see välja see eraldi faili, nii et kui 98 00:04:24,315 --> 00:04:27,780 sa tahad midagi muuta maailmas üle kogu oma saidile, saate tõesti 99 00:04:27,780 --> 00:04:29,390 lihtsalt muuta seda ühes kohas. 100 00:04:29,390 --> 00:04:32,750 >> Aga seal on hind, mida maksate potentsiaalselt poolt, kes on arvutatud välja 101 00:04:32,750 --> 00:04:38,380 CSS mu HTML faili eraldi faili viitamise seda 102 00:04:38,380 --> 00:04:40,650 tag, mis me nägime esmaspäeval. 103 00:04:40,650 --> 00:04:43,850 Mis võib Puuduseks on see? 104 00:04:43,850 --> 00:04:48,830 Mõeldes tagasi nädal tagasi, et kui me oleme räägime HTTP ja TCP / IP ja kuidas 105 00:04:48,830 --> 00:04:52,070 Internet töötab. 106 00:04:52,070 --> 00:04:53,530 Midagi on siin? 107 00:04:53,530 --> 00:04:54,730 >> Publik: See võtab rohkem aega. 108 00:04:54,730 --> 00:04:55,470 >> DAVID Malan: See võtab rohkem aega. 109 00:04:55,470 --> 00:04:56,750 Miks? 110 00:04:56,750 --> 00:04:59,450 >> Publik: [kuuldamatu]. 111 00:04:59,450 --> 00:04:59,750 >> DAVID Malan: Jah. 112 00:04:59,750 --> 00:05:01,240 Nii et see väidetavalt võtab natuke rohkem aega. 113 00:05:01,240 --> 00:05:04,290 Sest üks, CSS on ilmselt ei ole samas failis. 114 00:05:04,290 --> 00:05:06,920 Nüüd sa pead tegema mitte üks, vaid kaks taotlust. 115 00:05:06,920 --> 00:05:11,230 Ja kõik need taotlused, nagu nägime Chrome nn inspektor, 116 00:05:11,230 --> 00:05:15,740 ja me vaatasime võrgu tab, iga neid faile on vaja ühe HTTP 117 00:05:15,740 --> 00:05:18,360 taotluse, mis me nägime võtab mõned ajaga. 118 00:05:18,360 --> 00:05:19,290 Nüüd võib-olla see ei ole palju. 119 00:05:19,290 --> 00:05:20,670 Võibolla on see vaid 20 millisekundit. 120 00:05:20,670 --> 00:05:22,260 Võib-olla on 200 millisekundit. 121 00:05:22,260 --> 00:05:25,530 >> Aga mõtle lehekülg nagu Facebook, või CNN või Google, mis on palju 122 00:05:25,530 --> 00:05:28,060 suuremad näited me oleme vaatasin siiani. 123 00:05:28,060 --> 00:05:32,070 Need leheküljed võivad olla kümneid faile, millest igaüks võib nõuda 124 00:05:32,070 --> 00:05:33,550 faili allalaadimist. 125 00:05:33,550 --> 00:05:35,800 Nii et asjad võivad potentsiaalselt hakata aeglustuma. 126 00:05:35,800 --> 00:05:39,280 >> Ja eriti need päevad, mil me kõik mobiiltelefonid taskus ja 127 00:05:39,280 --> 00:05:43,010 aeglasem internetiühendused, võttes oodake veel paar millisekundit, paar 128 00:05:43,010 --> 00:05:46,110 rohkem millisekundi täiendavate faile saab tegelikult aeglane. 129 00:05:46,110 --> 00:05:50,430 Latentsus on sõna, mis kirjeldab objekti ootab, et sul on, et sa 130 00:05:50,430 --> 00:05:53,110 tekib siis, kui ootad mõned tükk informatsiooni. 131 00:05:53,110 --> 00:05:54,430 >> Aga ei pea. 132 00:05:54,430 --> 00:05:56,600 Nii see ei ole kõik omamoodi - 133 00:05:56,600 --> 00:05:58,170 see on tegelikult natuke kõikuma siin. 134 00:05:58,170 --> 00:06:02,970 Ohustavad nüüd, aga brauserid saab teha kui nad on targad, et vältida 135 00:06:02,970 --> 00:06:08,870 oleks vaja taotleda sama styles.css faili uuesti saab teha mida? 136 00:06:08,870 --> 00:06:09,390 >> Cache ta. 137 00:06:09,390 --> 00:06:10,370 Nii vahemällu - 138 00:06:10,370 --> 00:06:11,690 C-C-H-E - 139 00:06:11,690 --> 00:06:15,810 Üldiselt tähendab siin lihtsalt säästa fail, mida taotletakse esmakordselt, ja 140 00:06:15,810 --> 00:06:17,440 Seejärel kontrollige oma cache seda. 141 00:06:17,440 --> 00:06:20,400 Kontrolli oled omamoodi hoiuruum, ja kui sul on juba 142 00:06:20,400 --> 00:06:24,520 koopia styles.css, isegi kui mõned teised lehekülje p-set, või mis tahes veebilehel, 143 00:06:24,520 --> 00:06:28,560 taotleb uuesti, lihtsalt anda kasutaja sama puhverdatud koopia. 144 00:06:28,560 --> 00:06:30,140 Ei viitsinud seda taotlevad. 145 00:06:30,140 --> 00:06:32,560 >> Need on valdavalt olemas, kuigi, nagu mõned teist on rakendunud üle p-set. 146 00:06:32,560 --> 00:06:35,870 Kui teete muudatusi serveris ja sa lähed tagasi brauser ja te 147 00:06:35,870 --> 00:06:39,250 reload, mõnikord brauser ei sulle teene ja ei häiri 148 00:06:39,250 --> 00:06:43,660 uuesti allalaadimist styles.css fail sest nüüd, mis on vastuolus 149 00:06:43,660 --> 00:06:47,620 et neid stiile, et Facebook kasutab muudame tund tund või 150 00:06:47,620 --> 00:06:48,140 igapäevases? 151 00:06:48,140 --> 00:06:48,800 See on üsna väike. 152 00:06:48,800 --> 00:06:52,260 Nad võivad aja jooksul muutuda, kuid mitte minut või tund. 153 00:06:52,260 --> 00:06:55,810 >> Nii trikk, lihtsalt FYI tehes web arengut, on sageli hoidke 154 00:06:55,810 --> 00:06:59,500 tõstuklahvi näiteks ja seejärel klõpsake laadida oma brauseris, ja see 155 00:06:59,500 --> 00:07:03,280 tavaliselt sirvija reload kõik, isegi kui sul on juba 156 00:07:03,280 --> 00:07:04,180 see vahemälu. 157 00:07:04,180 --> 00:07:06,630 Nii et taas, tasa ja varjuküljed, kuid neid kõiki 158 00:07:06,630 --> 00:07:08,260 lõpuks disaini otsuseid. 159 00:07:08,260 --> 00:07:11,520 >> Nüüd, me ei ole lihtsalt lõpetada lugu siin. 160 00:07:11,520 --> 00:07:15,790 Kui ma nüüd tagasi minna ja edasi ja tagasi ja tagasi alustasime tutvustada mitte ainult 161 00:07:15,790 --> 00:07:18,060 HTML, kuid PHP. 162 00:07:18,060 --> 00:07:20,786 Nii üldarusaadavat mõttes, mida php tehkem? 163 00:07:20,786 --> 00:07:22,770 >> Publik: [kuuldamatu]. 164 00:07:22,770 --> 00:07:24,258 >> DAVID Malan: Mis see on? 165 00:07:24,258 --> 00:07:25,250 >> Publik: Hakata loogika arvesse kood. 166 00:07:25,250 --> 00:07:26,620 >> DAVID Malan: Jah, tutvustada loogika oma kood. 167 00:07:26,620 --> 00:07:29,570 Nii et see on tõsi programmeerimiskeelt silmad ja muutujate ja 168 00:07:29,570 --> 00:07:32,620 funktsioonid ning tingimused, ja kõik asju, mida me oleme kasutanud viis tagasi 169 00:07:32,620 --> 00:07:33,780 kui alates nullist. 170 00:07:33,780 --> 00:07:36,780 Ja PHP, mida me oleme näinud, mida saab kasutada kas käsurealt - see 171 00:07:36,780 --> 00:07:39,190 ei pea midagi tegema, web, kuigi see on 172 00:07:39,190 --> 00:07:43,150 tegelikult alguse ja mida see kipub olema hea ning soodustab - 173 00:07:43,150 --> 00:07:47,130 kuid mida saab kasutada PHP lihtsalt loomu ning asjaolu, et see on print () 174 00:07:47,130 --> 00:07:49,660 funktsioon ja printf () funktsiooni, või echo () funktsiooni. 175 00:07:49,660 --> 00:07:52,440 Seal on kobarad võimalusi, saab printida teksti PHP. 176 00:07:52,440 --> 00:07:56,540 >> Seega saate kasutada seda programmi keel väljund täpselt 177 00:07:56,540 --> 00:07:58,460 mida me rääkisime varem. 178 00:07:58,460 --> 00:08:01,360 Võite dünaamiliselt HTML. 179 00:08:01,360 --> 00:08:02,300 Võib-olla mitte kõik. 180 00:08:02,300 --> 00:08:06,460 Äkki kõva kood asjad, nagu päise ja jaluse ning logo, 181 00:08:06,460 --> 00:08:07,950 ja oma stiili lehed, ja kõik see. 182 00:08:07,950 --> 00:08:11,190 Aga midagi sellist p-pani seitse, kuhu manipuleerides varude ja 183 00:08:11,190 --> 00:08:14,690 näitab kasutaja portfell, mis on läheb dünaamiliselt muuta, võid 184 00:08:14,690 --> 00:08:18,960 kindlasti kasutada PHP ja loogika see annab sa nagu programmeerimiskeelt 185 00:08:18,960 --> 00:08:22,320 väljundi dünaamiliselt alamhulki lehel. 186 00:08:22,320 --> 00:08:25,900 >> Nii et kui te räägite dünaamilisi veebisaite, või veebi programmeerimine, mis on 187 00:08:25,900 --> 00:08:27,200 mida sa tegelikult räägid. 188 00:08:27,200 --> 00:08:31,450 Kasutades keeles nagu PHP või asjad nimetatakse Python või Ruby või Java või 189 00:08:31,450 --> 00:08:35,900 veel teisi keeli, päringu andmebaasi Sageli, või teise serverisse ja 190 00:08:35,900 --> 00:08:38,580 siis dünaamiliselt sülitama HTML. 191 00:08:38,580 --> 00:08:42,470 >> Nüüd lõpptulemus, kui kõrvale jätta, on et HTML kõige veebilehed, 192 00:08:42,470 --> 00:08:45,970 sealhulgas oma p-set seitse, on ilmselt saab olema tohutu segadus, kui 193 00:08:45,970 --> 00:08:48,060 te vaatate allikas kood brauseris. 194 00:08:48,060 --> 00:08:49,010 See ei ole suur asi. 195 00:08:49,010 --> 00:08:51,550 Sel hetkel, kui me hoolime stiil, me hoolime 196 00:08:51,550 --> 00:08:52,740 kraam, mis sa kirjutad. 197 00:08:52,740 --> 00:08:56,240 Me ei hooli kraami et mida teie kood väljundid. 198 00:08:56,240 --> 00:08:59,520 Nii et ärge muretsege taandus siin, kas see on PHP, mis on 199 00:08:59,520 --> 00:09:01,190 tegelikult kirjutamine asju. 200 00:09:01,190 --> 00:09:04,430 Lõppude brauser ei huvita, ja inimene ei saa vaadata 201 00:09:04,430 --> 00:09:05,400 tekkekohas niikuinii. 202 00:09:05,400 --> 00:09:09,000 Me personal Näiteks oleks vaadates oma PHP. 203 00:09:09,000 --> 00:09:13,440 >> Nii et lubage mul anda kiire näide nüüd miks muidu see võib osutuda kasulikuks. 204 00:09:13,440 --> 00:09:18,620 Nii öeldes, ma ei mäleta viimast kord kasutasin C lahendada probleem 205 00:09:18,620 --> 00:09:19,620 reaalses maailmas. 206 00:09:19,620 --> 00:09:22,330 See oli ilmselt lõpetanud kooli kui Mul oli vaja kasutada keelt, et 207 00:09:22,330 --> 00:09:26,710 oli suhteliselt madal tase ja andis mulle võimalus teha midagi väga kõrge 208 00:09:26,710 --> 00:09:30,720 täidab tõesti päästa nii palju CPU tsüklit, kui suutsin, suuresti 209 00:09:30,720 --> 00:09:33,990 sest olin kasutades tohutu andmekogumid ja iga protsessori tsükli arvestata. 210 00:09:33,990 --> 00:09:37,750 Ja ausalt öeldes, isegi asjad nagu telefonid need päevad ja muud seadmed 211 00:09:37,750 --> 00:09:39,910 kui sa ei ole päris nii palju mälu ja te ei saa päris olla nii 212 00:09:39,910 --> 00:09:44,160 palju CPU, kasutades kiiremini keeles on ikka ahvatlev. 213 00:09:44,160 --> 00:09:47,290 >> Kuid reaalses maailmas, kui sa lihtsalt taha visata mõned programmi koos 214 00:09:47,290 --> 00:09:50,340 analüüsida mõningaid andmeid või olete kogunud terve hunnik registreeringud 215 00:09:50,340 --> 00:09:53,330 mõned üliõpilased ja tahad väga kiiresti automatiseerida saates e-kirju 216 00:09:53,330 --> 00:09:56,240 ükshaaval iga üks neist registreerijatele, sa lähed, et jõuda 217 00:09:56,240 --> 00:09:59,240 kõrgemal tasemel keeles kui C nii rääkida. 218 00:09:59,240 --> 00:10:04,060 Midagi PHP või Python või Ruby, või pool tosinat teised, et on olemas 219 00:10:04,060 --> 00:10:04,550 nendel päevadel. 220 00:10:04,550 --> 00:10:07,200 Aga need kolm on ilmselt kõige trendikas praegu. 221 00:10:07,200 --> 00:10:10,840 >> Ja mida see tähendab, et saate avada tekstiredaktor nagu gedit või 222 00:10:10,840 --> 00:10:14,030 Kõige midagi ja siis lihtsalt alustada kirjalikult koodi ilma muretsema 223 00:10:14,030 --> 00:10:17,800 kompileerimine, ilma, et tõesti muretsema mälu haldamine, 224 00:10:17,800 --> 00:10:20,820 pidades meeles, kuigi see veidi räpasus lõpuks tulevad tagasi 225 00:10:20,820 --> 00:10:24,790 hammustada teid, kui andmekogum saab suurem või probleem muutub suur. 226 00:10:24,790 --> 00:10:27,230 Aga mida see tähendab meil on järgmine. 227 00:10:27,230 --> 00:10:29,860 >> Lubage mul minna ja joosta speller alates lahendamist kuus. 228 00:10:29,860 --> 00:10:33,480 Nii et see on minu Prefiksipuu põhinev rakendamine et ma kasutasin on suur 229 00:10:33,480 --> 00:10:35,500 pardale, kus ma läbi mitte nii hästi. 230 00:10:35,500 --> 00:10:38,720 Me tuleme tagasi nädala pärast ja vaadata neid, kes ei jõua atop 231 00:10:38,720 --> 00:10:40,430 suur pardal meie viimane loeng. 232 00:10:40,430 --> 00:10:44,520 Aga nüüd, lubage mul minna ja lihtsalt joosta oma lahenduse teksti ja me teeme 233 00:10:44,520 --> 00:10:48,460 King James Bible, ja siin me läheme. 234 00:10:48,460 --> 00:10:51,080 >> Nii et need on kõik väidetavalt valesti kirjutatud sõnade välja 235 00:10:51,080 --> 00:10:52,240 King James Bible. 236 00:10:52,240 --> 00:10:55,560 Ja minu rakendamisele kulus pool sekundit kokku. 237 00:10:55,560 --> 00:10:58,270 Nii ei ole liiga halb on see konkreetse arvutiga. 238 00:10:58,270 --> 00:11:01,540 Aga mõtle, kui palju kood oli vaja kirjutada. 239 00:11:01,540 --> 00:11:02,880 Mõtle, kui palju koodi sa pidid kirjutama. 240 00:11:02,880 --> 00:11:06,170 Mõtle mitu tundi veedetud D-hall või oma Dorm või kus iganes 241 00:11:06,170 --> 00:11:07,890 tegelikult kodeerimine üles, et lahendus. 242 00:11:07,890 --> 00:11:11,850 >> Noh, kui ma tegelikult olema kõrgem keeles nagu PHP, võtta teadmiseks 243 00:11:11,850 --> 00:11:13,350 Mida ma saan teha siin. 244 00:11:13,350 --> 00:11:16,410 Esimese, oletame, et see on hoopis sinu distributsioon kood. 245 00:11:16,410 --> 00:11:17,790 See on fail nimega speller. 246 00:11:17,790 --> 00:11:20,220 See on saadaval osana tänapäeva jaotus kood. 247 00:11:20,220 --> 00:11:22,670 Ja ma lähen laine mu kätt kõige kohta üksikasju, kuid see on tegelikult 248 00:11:22,670 --> 00:11:25,500 Huvitav näide sellest, kuidas sa võiks port keel 249 00:11:25,500 --> 00:11:28,870 nagu C üle PHP. 250 00:11:28,870 --> 00:11:33,420 Ma sõna otseses mõttes avanud kaks teksti aknad, üks minu C versiooni speller.c, 251 00:11:33,420 --> 00:11:36,960 ja hakkasin lihtsalt tõlkida see minu pea PHP ja kirjutades kasutades 252 00:11:36,960 --> 00:11:38,840 lähim samaväärseid ülesandeid. 253 00:11:38,840 --> 00:11:40,100 >> Nii mõned need asjad on erinevad. 254 00:11:40,100 --> 00:11:43,730 Me nägime viimast korda, et PHP ei kasuta sisaldavad üsna ühtemoodi. 255 00:11:43,730 --> 00:11:47,050 See kasutab nõuavad tavaliselt, kuigi hulka ei eksisteeri. 256 00:11:47,050 --> 00:11:50,330 Määrake on natuke erinev # Define C, kuid see on 257 00:11:50,330 --> 00:11:51,890 kuidas teha püsiv. 258 00:11:51,890 --> 00:11:55,860 $ Argc selgub olemas PHP, nii et me oleme näinud, et enne. 259 00:11:55,860 --> 00:11:58,650 Need on vaid muutuja kõiki mis algavad dollar märke. 260 00:11:58,650 --> 00:12:00,590 Meenuta need on lihtsalt hunnik ujuva punkti. 261 00:12:00,590 --> 00:12:03,970 >> Nii pikk lugu lühike, sa oled teretulnud flip läbi selle, kui uudishimulik, see on 262 00:12:03,970 --> 00:12:10,010 peaaegu line-for-line konverteerimine C versiooni speller.c arvesse PHP. 263 00:12:10,010 --> 00:12:12,630 Ja sa võid seda uuesti pool tosinat teistes keeltes. 264 00:12:12,630 --> 00:12:14,910 >> Aga mis on huvitav on see. 265 00:12:14,910 --> 00:12:16,910 Või mis on ausalt ehmatavam on see. 266 00:12:16,910 --> 00:12:20,790 Lubage mul minna ja kirjuta umbes dictionary.php, ja väidavad, et ma olen 267 00:12:20,790 --> 00:12:23,670 läheb minna ja uuesti rakendada lahendamist kuus siin. 268 00:12:23,670 --> 00:12:27,530 >> Teeme ettepaneku, et esiteks on see fail, mida viiakse ellu 269 00:12:27,530 --> 00:12:30,550 PHP, las ma avan oma silte niimoodi. 270 00:12:30,550 --> 00:12:34,780 Annan ennast globaalse muutuja, $ suurus muutub null. 271 00:12:34,780 --> 00:12:36,710 Ja ma annan mina hash tabel. 272 00:12:36,710 --> 00:12:38,110 Ma kasutan hash tabel selle asja. 273 00:12:38,110 --> 00:12:42,070 Kuidas deklareerida hash tabelit PHP? 274 00:12:42,070 --> 00:12:42,990 Valmis. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> Nii sulg sulg tähistab Mis PHP, nagu me oleme näinud? 277 00:12:48,870 --> 00:12:51,850 Massiiv, kuid massiivi võib olema assotsiatiivne massiiv. 278 00:12:51,850 --> 00:12:54,320 Assotsiatiivne massiiv on andmestruktuur 279 00:12:54,320 --> 00:12:55,860 seostab võtmed väärtused. 280 00:12:55,860 --> 00:12:59,430 >> Nüüd lihtsaim arvuliselt indekseeritud massiiv, need võtmed on mis? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Null, üks, kaks, kolm, eks? 283 00:13:03,960 --> 00:13:08,780 Vana kooli värk tagasi C. Kuid see ei saa Samuti strings nagu foo ja bar, 284 00:13:08,780 --> 00:13:12,210 või maxwell, või mis tahes sellise string. 285 00:13:12,210 --> 00:13:14,240 Ma võin ära, et vaid hetk. 286 00:13:14,240 --> 00:13:17,550 >> Lubage mul minna ja kuulutada funktsioon nagu - 287 00:13:17,550 --> 00:13:19,020 teeme load () esimene. 288 00:13:19,020 --> 00:13:20,690 Seega funktsioon load (). 289 00:13:20,690 --> 00:13:23,440 Ja PHP on veidi teistsugune, kuna sa sõna otseses mõttes tüüpi funktsiooni, kuid te 290 00:13:23,440 --> 00:13:24,930 ärge tippige tagastamise tüüp. 291 00:13:24,930 --> 00:13:28,760 Ma lähen edasi minna ja öelda, et load () funktsiooni peaks võtma 292 00:13:28,760 --> 00:13:31,000 argument $ sõnastik, lihtsalt nagu C versioon tegid. 293 00:13:31,000 --> 00:13:32,510 Ma teen et mälust. 294 00:13:32,510 --> 00:13:34,910 >> Ja pakun, et ma olen kavatsen seda teha. 295 00:13:34,910 --> 00:13:37,080 Ma lihtsalt teen foreach. 296 00:13:37,080 --> 00:13:40,710 Ma lähen kutsun funktsiooni nimetatakse fail (), mis kulgeb nimel, et 297 00:13:40,710 --> 00:13:44,990 fail, mis on varieeruv $ Sõnastik $ sõna. 298 00:13:44,990 --> 00:13:49,410 Ja siis sees minu jaoks loop siin, ma olen läheb minna ja säilitada oma 299 00:13:49,410 --> 00:13:57,440 $ Tabel, $ jutud tõele. 300 00:13:57,440 --> 00:13:57,918 Valmis. 301 00:13:57,918 --> 00:14:01,264 Oh, oota. 302 00:14:01,264 --> 00:14:02,422 Valmis. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> See on load () funktsioon öelda PHP. 305 00:14:04,970 --> 00:14:05,865 Nüüd, miks see toimib? 306 00:14:05,865 --> 00:14:07,010 Ja ma olen selline petmine siin. 307 00:14:07,010 --> 00:14:09,980 >> Niisiis, üks, foreach nägime lühidalt viimast korda. 308 00:14:09,980 --> 00:14:13,680 See tähendab lihtsalt, et saate kinnitada, üle array ilma häirib i 309 00:14:13,680 --> 00:14:16,150 ja n ja pluss pluss, ja kõik see. 310 00:14:16,150 --> 00:14:21,350 Sõnastik on muidugi faili nimi midagi suurt või väikest, kaks 311 00:14:21,350 --> 00:14:22,830 sõnastikud kasutasime viimast korda. 312 00:14:22,830 --> 00:14:26,715 Fail on funktsioon, mis avab teksti fail, loeb seda rida-realt, ja 313 00:14:26,715 --> 00:14:29,840 kätt tagasi tohutu hulga, iga, mille elemendid on 314 00:14:29,840 --> 00:14:31,340 joont, et fail. 315 00:14:31,340 --> 00:14:36,040 Nii et see kombinatsioon fopen ja fread ja samas loop ja kirjutamisel, 316 00:14:36,040 --> 00:14:37,080 ja kõik see. 317 00:14:37,080 --> 00:14:40,150 Lõpuks, nagu sõna tähendab lihtsalt, et see on muutuja Ma juurdepääs 318 00:14:40,150 --> 00:14:41,890 iga iteratsiooni selles silmus. 319 00:14:41,890 --> 00:14:46,910 >> Nii lühike, see üks liner tähendab siin avada faili, mille nimi on sisse 320 00:14:46,910 --> 00:14:50,750 sõnastik, muutuja, Käi see rida-realt, ja iga kord, kui sa 321 00:14:50,750 --> 00:14:54,290 line, kaupluse muutuja nimega sõna, ja siis midagi teha sõna. 322 00:14:54,290 --> 00:14:55,280 Mida ma tahan teha? 323 00:14:55,280 --> 00:14:58,110 Ma tahan, et sõna minu hash tabel. 324 00:14:58,110 --> 00:15:00,860 >> Noh, ma ei pane midagi minu hash tabelit just nagu C 325 00:15:00,860 --> 00:15:02,140 kasutades nurksulgudes. 326 00:15:02,140 --> 00:15:03,660 See on nimi, minu hash tabel. 327 00:15:03,660 --> 00:15:07,180 Ma lähen indeks et hash tabel selles kohas. 328 00:15:07,180 --> 00:15:08,920 Nii ei sulg null, ei sulg üks. 329 00:15:08,920 --> 00:15:11,990 Bracket quote lõppeb midagi, mis iganes see sõna. 330 00:15:11,990 --> 00:15:15,200 Ja nagu te võib-olla oma hash tabel töö Prefiksipuu, sa lihtsalt salvestada 331 00:15:15,200 --> 00:15:17,650 tõhusalt Loogiline kaudselt või otseselt. 332 00:15:17,650 --> 00:15:18,260 Valmis. 333 00:15:18,260 --> 00:15:20,000 Ma ladustamiseks väärtus true. 334 00:15:20,000 --> 00:15:23,150 >> Nüüd on paar asja Ma pealiskaudsust siin. 335 00:15:23,150 --> 00:15:27,720 Tehniliselt ei kavatse olla tüütu uuele reale / n, lõpus 336 00:15:27,720 --> 00:15:28,820 iga sõna. 337 00:15:28,820 --> 00:15:31,770 Nii et ma peaks ilmselt helistada PHP funktsiooni nimetatakse karbonaad (), mis 338 00:15:31,770 --> 00:15:33,460 sõnalt tükelda see välja lülitatud. 339 00:15:33,460 --> 00:15:35,020 Ja ma tegelikult vaja teha üks asi. 340 00:15:35,020 --> 00:15:38,380 Ma peaks ilmselt juurdekasvu suurus iga iteratsiooni, nii et ma olen kursis hoida 341 00:15:38,380 --> 00:15:39,560 maailmas, mis see on. 342 00:15:39,560 --> 00:15:43,180 Ja ausalt, ja see on üks lollim aspekte PHP, kui sa oled 343 00:15:43,180 --> 00:15:46,950 kasutades globaalse muutuja, peate selgesõnaliselt öelda, et sa oled. 344 00:15:46,950 --> 00:15:51,670 Nii et ma lähen tegelikult kirjutad ülemaailmne $ Suurus, global $ lauda ja nüüd 345 00:15:51,670 --> 00:15:52,690 mu funktsioon on täielik. 346 00:15:52,690 --> 00:15:57,475 >> Nii ei ole päris nii lihtne kui varem, kuid Tõenäoliselt jäi vähem aega kui C 347 00:15:57,475 --> 00:15:58,220 versioon ehk? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> Nüüd teeme check () funktsiooni. 350 00:16:00,390 --> 00:16:04,300 Vaatame, kui vähemalt viis tunni lõpus, et ta võttis meid C. Seega 351 00:16:04,300 --> 00:16:06,500 Lubage mul minna ja kuulutada vaadake funktsioonina. 352 00:16:06,500 --> 00:16:09,070 Võtab argument sõna, mis on läheb tulema speller. 353 00:16:09,070 --> 00:16:13,410 Ja ma lihtsalt kontrollida, kas järgmine muutuja isset tabel 354 00:16:13,410 --> 00:16:18,400 sulg strtolower sõna - 355 00:16:18,400 --> 00:16:20,590 olgem tasakaalu kõigi minu sulgudes - 356 00:16:20,590 --> 00:16:24,275 siis tagasi tõsi. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Else - 359 00:16:28,460 --> 00:16:30,330 See oli tõesti raske selle programmi raames. 360 00:16:30,330 --> 00:16:31,940 Else, tagastab false. 361 00:16:31,940 --> 00:16:32,630 Valmis. 362 00:16:32,630 --> 00:16:33,460 See kontroll (). 363 00:16:33,460 --> 00:16:34,520 >> Nüüd, miks see toimib? 364 00:16:34,520 --> 00:16:37,040 Noh, mida ma möödunud ühesõnaga mis on string. 365 00:16:37,040 --> 00:16:41,400 Kaks, Ma kontrollin sees hash tabel, kes nimetatakse $ tabel. 366 00:16:41,400 --> 00:16:45,470 Ma surumine väiketäheliseks helistades funktsiooni üsna sarnane tolower () in 367 00:16:45,470 --> 00:16:48,580 C, kuid see ei kogu sõna, mitte ühte märki. 368 00:16:48,580 --> 00:16:52,680 Ja kui see on seatud, teisisõnu seal on määratud väärtust, teisisõnu 369 00:16:52,680 --> 00:16:54,880 kui see on tõsi, siis jah, see on sõna. 370 00:16:54,880 --> 00:16:56,530 Sest ma panen ta sinna load (). 371 00:16:56,530 --> 00:16:59,100 Ja kui ei, siis ma lähen tagasi false. 372 00:16:59,100 --> 00:17:00,090 >> Nüüd teised on lihtne. 373 00:17:00,090 --> 00:17:03,570 Funktsioon suurus (), siis kuidas ma seda teen? 374 00:17:03,570 --> 00:17:05,230 Ma põhiliselt seda tagasi $ suurusest. 375 00:17:05,230 --> 00:17:07,770 Aga ma tehniliselt vaja seda tüütu asi. 376 00:17:07,770 --> 00:17:10,640 Ja tegelikult üles kuulda, olin lõikamine ühte nurka liiga palju. 377 00:17:10,640 --> 00:17:12,920 Mul on tõesti vaja teha global $ tabel. 378 00:17:12,920 --> 00:17:16,260 >> Aga mis öeldud, lossimiseks). 379 00:17:16,260 --> 00:17:17,380 Lossimiseks () on hämmastav. 380 00:17:17,380 --> 00:17:20,500 Funktsioon lossimiseks (). 381 00:17:20,500 --> 00:17:23,990 Kui ma tahan, et rakendada lossimiseks ()? 382 00:17:23,990 --> 00:17:25,079 Valmis. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> Nii lossimiseks (), mälu haldamine on täiesti hoolitseda sind 385 00:17:28,900 --> 00:17:31,800 midagi nagu PHP ja palju kõrgemal tasemel keeles. 386 00:17:31,800 --> 00:17:32,600 Nii et see on hämmastav. 387 00:17:32,600 --> 00:17:36,080 Nagu miks kurat me veetsime viimase kaheksa pluss nädalat C kirjalikult 388 00:17:36,080 --> 00:17:41,030 ilmselt tõesti aeglane, tõesti aeg tarbivad probleeme kümnete tundide 389 00:17:41,030 --> 00:17:42,530 töö kanname vööd? 390 00:17:42,530 --> 00:17:46,110 >> Noh, üks asi, see võib töötada trahvi väikesed programmid. 391 00:17:46,110 --> 00:17:47,840 Kindlasti kiirendada minu arengu ajal. 392 00:17:47,840 --> 00:17:49,790 Aga vaatame, mis juhtub reaalses maailmas. 393 00:17:49,790 --> 00:17:52,370 >> Lase mul minna sellesse kataloogi terminali aknas. 394 00:17:52,370 --> 00:17:53,370 Seal speller. 395 00:17:53,370 --> 00:17:56,570 Ja teate, kui kõrvale, ja te võite on tekkinud selle lahendamist 396 00:17:56,570 --> 00:17:58,190 kuus või probleem pani seitse. 397 00:17:58,190 --> 00:18:01,610 Sul ei ole rangelt pea lõppu PHP faile. php. 398 00:18:01,610 --> 00:18:05,250 Kui paned line niimoodi esimene kell väga top, mis on eriline joon 399 00:18:05,250 --> 00:18:10,980 süntaks, mis sisuliselt tähendab leida programmi nimega PHP ja kasutada seda 400 00:18:10,980 --> 00:18:12,270 tõlgendavad seda faili. 401 00:18:12,270 --> 00:18:15,410 Nüüd keegi ei tea, et Ma töötab PHP programm. 402 00:18:15,410 --> 00:18:19,860 Ma saan käivitada see lihtsalt nii, nagu see olid midagi koostatud C. 403 00:18:19,860 --> 00:18:20,650 >> Aga siin on asi. 404 00:18:20,650 --> 00:18:21,600 Tegelikult teeme seda jälle. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Seal speller. 407 00:18:25,390 --> 00:18:26,720 OK, 0,44 sekundit. 408 00:18:26,720 --> 00:18:28,080 See sai kiiremini seekord. 409 00:18:28,080 --> 00:18:29,745 >> Nüüd lähevad PHP versioon. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Nice touch. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Aga mõelge, kui palju aega Ma salvestatakse tööajal. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> Nii 3,59 sekundit, mis tegelikult ei kõla täpne kas. 417 00:19:01,020 --> 00:19:03,710 Aga see on, sest pikk lugu lühike, kui sa välja printida suur summa 418 00:19:03,710 --> 00:19:06,840 kraami ekraan, mis ise aeglustab asju ette. 419 00:19:06,840 --> 00:19:11,260 Mida see tegelikult oli CPU Seade oli 3,59 sekundi sisse 420 00:19:11,260 --> 00:19:15,260 vastandina C, mis võttis 0,44 sekundit viimasena. 421 00:19:15,260 --> 00:19:17,620 See on tõeliselt järjekorras suurus erinev. 422 00:19:17,620 --> 00:19:20,280 >> Nii et kui on mis hind tuleb? 423 00:19:20,280 --> 00:19:21,790 Miks on nii palju aeglasem? 424 00:19:21,790 --> 00:19:24,220 Miks PHP täita nii halvasti? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> Publik: Sa ei ole tegelikult kasutada hash tabel. 427 00:19:26,550 --> 00:19:27,710 >> DAVID Malan: ma ei ole tõesti kasutada hash tabel. 428 00:19:27,710 --> 00:19:28,760 Nii et ma sellist tegi. 429 00:19:28,760 --> 00:19:29,870 Nii et see on assotsiatiivne massiiv. 430 00:19:29,870 --> 00:19:33,650 Tõenäoliselt, kui inimesed PHP on väga targad, nad kasutasid all 431 00:19:33,650 --> 00:19:39,520 kapuuts tegelik hash tabel ellu midagi nagu C või C + +. 432 00:19:39,520 --> 00:19:41,290 Kuid. 433 00:19:41,290 --> 00:19:42,760 Jah. 434 00:19:42,760 --> 00:19:44,010 >> Publik: [kuuldamatu]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID Malan: Jah. 437 00:19:47,080 --> 00:19:50,780 Seega iga funktsiooni Kirjutasin nüüd - tegelikult, sa võid öelda, et veel kord 438 00:19:50,780 --> 00:19:51,480 veidi valjem? 439 00:19:51,480 --> 00:19:54,509 >> Publik: Kõik funktsioonid, mis sa lisada on palju rohkem täis 440 00:19:54,509 --> 00:19:56,610 võimsus üle - 441 00:19:56,610 --> 00:19:57,550 >> DAVID Malan: Nii et see on väga õige. 442 00:19:57,550 --> 00:20:01,490 Seal on palju rohkem üldkulusid, et me oleme tõesti ei näe, keskendudes ainult 443 00:20:01,490 --> 00:20:03,730 dictionary.php, mis ma kirjutasin. 444 00:20:03,730 --> 00:20:08,020 Seevastu seal on terve tõlk läheb taustal. 445 00:20:08,020 --> 00:20:12,040 Tõepoolest, kui ma jooksin selle programmi, siis ei töötab koostatud nulli ja need 446 00:20:12,040 --> 00:20:14,290 mõeldud minu Intel CPU. 447 00:20:14,290 --> 00:20:19,270 Pigem oli see töötab rida-realt PHP kood, mis näeb välja täpselt 448 00:20:19,270 --> 00:20:20,350 nagu me kirjutada seda. 449 00:20:20,350 --> 00:20:22,475 Ja nii iga kord, kui te kasutate tõlgendada keel, siis 450 00:20:22,475 --> 00:20:23,850 tegelikult ei maksa seda hinda. 451 00:20:23,850 --> 00:20:27,010 See saab võtta aega, et lugeda fail ülevalt alla, vasakult 452 00:20:27,010 --> 00:20:30,740 õige, ja siis täitma iga line ja jälle. 453 00:20:30,740 --> 00:20:34,250 >> Nüüd tegelikult eriti veebis saab tegelikult kiirendada seda protsessi 454 00:20:34,250 --> 00:20:38,660 vahemällu tulemused PHP koodi tõlgendada. 455 00:20:38,660 --> 00:20:41,640 Ja mis mõtet netis, sest kui sa ei ole üks kasutaja nagu 456 00:20:41,640 --> 00:20:46,300 mina siin, aga 1000 või 10000 kasutajat, siis võibolla esimest korda fail on 457 00:20:46,300 --> 00:20:49,050 juurde see on aeglane, kuid seejärel see on palju kiirem. 458 00:20:49,050 --> 00:20:51,000 >> Aga ka see jällegi on kompromiss. 459 00:20:51,000 --> 00:20:53,870 Ja midagi uuringuandmed määratud, või isegi midagi suurt nagu 460 00:20:53,870 --> 00:20:58,330 Selle kasutajad saavad lõpuks hakata tundma, et aeglustumine. 461 00:20:58,330 --> 00:21:02,670 >> Nii lühike, tõlgendatakse keeli väga moes, väga populaarne ja 462 00:21:02,670 --> 00:21:06,710 ausalt ilmselt keelte tuleks jõuda ülesannete lahendamisel 463 00:21:06,710 --> 00:21:08,200 pärast CS50. 464 00:21:08,200 --> 00:21:12,720 Aga aru, kui palju sa oled tõesti võttes iseenesestmõistetavana all kapuuts 465 00:21:12,720 --> 00:21:15,910 tegelikult on möödunud mitu nädalat hash tabeleid ja puud, ja püüab, 466 00:21:15,910 --> 00:21:20,770 mida kasutatakse lõppkokkuvõttes tegelikult rakendada asjad sulg, 467 00:21:20,770 --> 00:21:24,200 square bracket, mis meie võimuses, praegu tänulikult enesestmõistetavaks. 468 00:21:24,200 --> 00:21:26,360 >> Võtame pilk nüüd Selles web kontekstis. 469 00:21:26,360 --> 00:21:29,890 Ja ma mainisin viimast korda, et seal on hunnik superglobals PHP et 470 00:21:29,890 --> 00:21:32,490 ei ole tõesti asjakohane at käsureal. 471 00:21:32,490 --> 00:21:36,210 Nad on enam asjakohane seoses kasutades PHP web kontekstis. 472 00:21:36,210 --> 00:21:41,220 Nii töötab PHP veebiserver, et genereerida asju HTML. 473 00:21:41,220 --> 00:21:44,540 >> Ja me vaatas $ _GET ja $ _POST, ja see on kui automaatselt kasutajate 474 00:21:44,540 --> 00:21:49,100 input jõuab lihtsalt kui saadate moodustada fail lõpeb. PHP web 475 00:21:49,100 --> 00:21:50,460 server nagu aparaat. 476 00:21:50,460 --> 00:21:53,310 Aga vaatame lühidalt $ _COOKIE Ja $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> In üldarusaadavat mõttes, mida on küpsis nagu sa aru kontekstis 478 00:21:56,670 --> 00:21:58,220 kasutades veebis? 479 00:21:58,220 --> 00:21:59,450 >> Publik: failina arvutis. 480 00:21:59,450 --> 00:21:59,920 >> DAVID Malan: Jah. 481 00:21:59,920 --> 00:22:03,500 See fail kasutaja arvutisse istutatud tahes veebilehe 482 00:22:03,500 --> 00:22:04,410 juhtub, et külastada. 483 00:22:04,410 --> 00:22:07,334 Nii et kui te lähete Facebook, kui lähete et bankofamerica.com, kui lähete 484 00:22:07,334 --> 00:22:10,330 et google.com, kui lähete peaaegu iga kodulehel maailmas nendel päevadel, 485 00:22:10,330 --> 00:22:14,850 sealhulgas cs50.net, küpsise istutatud arvutisse, mis on 486 00:22:14,850 --> 00:22:19,800 kas väärtus salvestatakse RAM oma arvuti brauseri mällu või 487 00:22:19,800 --> 00:22:22,800 mõnikord tõepoolest faili talletatakse kõvakettal. 488 00:22:22,800 --> 00:22:26,960 >> Ja mida tavaliselt hoitakse seda faili ei ole sinu kasutaja nimi, mitte teie 489 00:22:26,960 --> 00:22:31,060 salasõna, tavaliselt mitte midagi tundlik, kui kodulehel ei ole nii 490 00:22:31,060 --> 00:22:35,040 hea oma julgeolekut, vaid pigem see on suur kordumatu tunnus seas 491 00:22:35,040 --> 00:22:35,680 muid asju. 492 00:22:35,680 --> 00:22:38,920 See on suur juhuslik number istutatud oma arvuti, kuid sa ei mõtle nagu 493 00:22:38,920 --> 00:22:42,740 omamoodi virtuaalne käsi tempel nagu alates klubi või mõned lõbustuspark, mis 494 00:22:42,740 --> 00:22:47,160 võimaldab töötajatele, omanikele, et teenus, et meenutada, kes sa oled. 495 00:22:47,160 --> 00:22:51,030 Nii et kui suur juhuslik arv on nagu 12345678, kuigi see on ilmselt 496 00:22:51,030 --> 00:22:54,180 mitte liiga juhuslik, mõtlevad, et kui käsitsi templi, et kui külastate 497 00:22:54,180 --> 00:22:57,930 facebook.com esmakordselt nad tembeldab selle numbri oma käsi. 498 00:22:57,930 --> 00:23:01,510 Ja siis, sest te räägite HTTP, siis on brauser, ja kuna Facebook 499 00:23:01,510 --> 00:23:06,440 Ilmselt räägib sama web server, protokoll HTTP ütleb, et 500 00:23:06,440 --> 00:23:09,930 millal sa hiljem külastada facebook.com, kas see teine 501 00:23:09,930 --> 00:23:13,560 hiljem tund hiljem, isegi järgmisel päeval nii kaua, kui te ei ole sõnaselgelt 502 00:23:13,560 --> 00:23:17,050 välja loginud, mis tõhusalt on nagu pesu käed. 503 00:23:17,050 --> 00:23:20,280 HTTP ütleb, et sa peaksid esitama oma käsi tempel iga kord, kui 504 00:23:20,280 --> 00:23:22,020 tagasi, et veebilehel. 505 00:23:22,020 --> 00:23:24,390 >> Mis Facebook siis ei on nad vaadata, et käsi tempel ja 506 00:23:24,390 --> 00:23:26,850 nad ütlevad, oh, 123456789. 507 00:23:26,850 --> 00:23:30,260 Ma ei tea, esmapilgul, et see David Malan Cambridge'is 508 00:23:30,260 --> 00:23:34,690 Massachusetts, kuid nad ei saa kontrollida nende andmebaasi ja öelda, oh, inimene 509 00:23:34,690 --> 00:23:39,930 kelle arvuti me istutatud 123456789 David Malan Cambridge, 510 00:23:39,930 --> 00:23:40,440 Massachusetts. 511 00:23:40,440 --> 00:23:46,000 Näitame, et kasutaja, siis tema konto lehel või oma News Feed. 512 00:23:46,000 --> 00:23:49,660 >> Aga seal on probleem, kui see kuidas web tõepoolest toimib. 513 00:23:49,660 --> 00:23:51,390 Võtame pilk kiire näite. 514 00:23:51,390 --> 00:23:55,190 Olgem tegelikult minna ütlema facebook.com. 515 00:23:55,190 --> 00:23:58,130 Aga enne kui me sinna minna, las mul minna ja avada Chrome'i 516 00:23:58,130 --> 00:23:59,790 Inspektor siin. 517 00:23:59,790 --> 00:24:01,140 Las ma vaatan võrgu alt. 518 00:24:01,140 --> 00:24:06,020 Ja nüüd lähme edasi ja kirjuta aastal https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 Ja ma teen selle nii, et me ei näe, kõik need ümbersuunamisi ja jäätmed 520 00:24:09,410 --> 00:24:10,660 aega vaadates läbi nende. 521 00:24:10,660 --> 00:24:12,690 Lubage mul Enter. 522 00:24:12,690 --> 00:24:13,130 >> Hea küll. 523 00:24:13,130 --> 00:24:14,580 Me näeme terve hulk taotlusi. 524 00:24:14,580 --> 00:24:15,640 Seal tuleb Facebook. 525 00:24:15,640 --> 00:24:16,930 Seal on terve hunnik faile. 526 00:24:16,930 --> 00:24:19,290 Ja siin, iga minu mainita latentsus viimast korda, see on 527 00:24:19,290 --> 00:24:21,240 palju HTTP päringuid. 528 00:24:21,240 --> 00:24:23,700 Aga esimene on ilmselt Kõige huvitavam. 529 00:24:23,700 --> 00:24:26,420 >> Teeme keri siin, ja Ma suumida teine. 530 00:24:26,420 --> 00:24:29,090 See saab olema selline jama, aga vaatame. 531 00:24:29,090 --> 00:24:31,660 Facebook saatis meid terve hunnik asju. 532 00:24:31,660 --> 00:24:33,490 >> Aga oota, huvitav. 533 00:24:33,490 --> 00:24:37,880 Nad istutamist mitte üks, vaid neli poolt templite peale minu poolt siin. 534 00:24:37,880 --> 00:24:40,400 Set-Cookie, Set-Cookie, set-cookie, set-cookie. 535 00:24:40,400 --> 00:24:44,030 Ja seal on mõned funktsioonid siin. 536 00:24:44,030 --> 00:24:46,170 Kõik nad mainida mõningaid objekti lõppemist. 537 00:24:46,170 --> 00:24:50,090 Ja tundub, et Facebook loodab mäleta mind kuni 2015. 538 00:24:50,090 --> 00:24:53,670 Nii et ilmselt aega, mille Ma pean välja logida või nad lihtsalt 539 00:24:53,670 --> 00:24:55,710 automaatselt eeldada, ma olen ei tule tagasi. 540 00:24:55,710 --> 00:24:57,840 Nii et tegelikult korralik ajaga. 541 00:24:57,840 --> 00:24:59,170 >> Ja seal on mõned muud asjad siin toimub. 542 00:24:59,170 --> 00:25:03,036 See küpsis olevat sunniviisiliselt välja öelda, see aegus 1970 543 00:25:03,036 --> 00:25:04,460 enne küpsised eksisteerinud. 544 00:25:04,460 --> 00:25:06,510 Nii brauser on lihtsalt läheb eeldada, OK, see on nagu 545 00:25:06,510 --> 00:25:07,910 pestes käed tempel. 546 00:25:07,910 --> 00:25:11,240 >> Aga nüüd, kui minu brauser teeb järgnevale - 547 00:25:11,240 --> 00:25:14,340 Lubage mul minna ja teha seda uuesti ja uuesti laadimise. 548 00:25:14,340 --> 00:25:18,170 Nüüd ma kerin tagasi top taotlus ja minna 549 00:25:18,170 --> 00:25:20,760 siin taotleda päiseid. 550 00:25:20,760 --> 00:25:21,390 Pange tähele, see. 551 00:25:21,390 --> 00:25:25,280 Nüüd ma alla ei vastus päised, aga teate seda ütleb taotluse päised. 552 00:25:25,280 --> 00:25:29,220 Ja teate, et minu brauser osana oma taotluse pärast lööb reload on 553 00:25:29,220 --> 00:25:32,780 Saadetud vähemalt järgmisi teavet. 554 00:25:32,780 --> 00:25:34,670 Ei ole määratud-cookie, kuid küpsise. 555 00:25:34,670 --> 00:25:38,750 Nii et see on joon, HTTP päis nii rääkida, kui minu brauser on omamoodi 556 00:25:38,750 --> 00:25:43,340 ning ilma minu teadmata esitades minu käes Facebook ülevaatus. 557 00:25:43,340 --> 00:25:46,020 >> Nii et need küpsised võivad olla kasutatakse siis mida? 558 00:25:46,020 --> 00:25:49,420 Tuletada meelde, kes sa oled, või mäletan, kuidas mitu korda sa oled olnud seal, või 559 00:25:49,420 --> 00:25:50,280 tegelikult midagi. 560 00:25:50,280 --> 00:25:52,742 >> Nii et siin on counter.php. 561 00:25:52,742 --> 00:25:53,780 Ja las ma suumida font. 562 00:25:53,780 --> 00:25:58,380 Ja iga kord, kui ma laadige see leht, teade see on meeles pidada, mitu korda 563 00:25:58,380 --> 00:25:59,250 Ma olen seal olnud. 564 00:25:59,250 --> 00:26:00,570 Noh, see pole veel kõik, et muljetavaldav. 565 00:26:00,570 --> 00:26:03,140 Ütleme lihtsalt sulgeb kaardi, ja nüüd lähme tagasi 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> Oh, see on huvitav. 568 00:26:08,970 --> 00:26:10,960 See ikka meeles, isegi kuigi ma suletud tab. 569 00:26:10,960 --> 00:26:14,010 Ja ausalt öeldes, kui ma brauseri sulgemiseks kui rakendatakse õigesti, I 570 00:26:14,010 --> 00:26:18,950 võiks ikka meeles pidada, et see kasutaja on kes ta oli esimene kord, ja 571 00:26:18,950 --> 00:26:22,840 ainult kord kui ma minema Chrome'i menüü mis siin on siin, ja minna 572 00:26:22,840 --> 00:26:25,990 Ajalugu ja klõpsa Kustuta sirvimise andmed, nagu mõned teist võib-olla ka 573 00:26:25,990 --> 00:26:33,050 Varem, alles siis küpsised tegelikult ajal kustutatakse web 574 00:26:33,050 --> 00:26:33,970 arengut. 575 00:26:33,970 --> 00:26:35,340 >> Seega, kui me läheme - 576 00:26:35,340 --> 00:26:37,080 olgem sulguks gedit siin. 577 00:26:37,080 --> 00:26:38,910 Ja kui me läheme nüüd selle faili. 578 00:26:38,910 --> 00:26:44,210 Lubage mul minna meie vhosts / localhost / avalik, ja las ma teen 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Pange tähele, et see on päris lihtne programm. 581 00:26:48,350 --> 00:26:50,250 See on päris lihtne veebileht. 582 00:26:50,250 --> 00:26:51,770 >> Nii top faili on lihtsalt kommentaarid. 583 00:26:51,770 --> 00:26:54,930 Aga siin on uus liin, mida võib nägime juba p-pani seitse, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 See on rida PHP kood, mis sisuliselt ütleb web server, teha 586 00:27:00,380 --> 00:27:03,400 kindel, et juurida käed ja teha Kontrollige käega marke. 587 00:27:03,400 --> 00:27:06,810 See on kõik, et liin ei, ja see teeb kõik, et protsessi juures. 588 00:27:06,810 --> 00:27:09,510 Siis teate ma pean lihtsalt mõlemad siin. 589 00:27:09,510 --> 00:27:14,150 Kui loendur võti sees selle eriline globaalse muutuja nimega 590 00:27:14,150 --> 00:27:18,010 $ _SESSION On seatud - teisisõnu, kui seal on mingi väärtus olemas - 591 00:27:18,010 --> 00:27:22,440 lähme see üles ja hoidke seda kohalikku muutuja nimega $ counter. 592 00:27:22,440 --> 00:27:27,000 Else, olgem anda $ counter Vaikimisi väärtus 0. 593 00:27:27,000 --> 00:27:30,320 >> Nüüd siin on üks aspekt, PHP, mis on nii õnnistus ja needus. 594 00:27:30,320 --> 00:27:32,080 PHP on natuke lohakas. 595 00:27:32,080 --> 00:27:35,160 Seega arvestades, C, mis oleks ulatus counter olnud 596 00:27:35,160 --> 00:27:36,725 kas siin või siin? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> See oleks olnud piiratud neile lokkis traksid. 599 00:27:41,690 --> 00:27:42,090 Arva ära? 600 00:27:42,090 --> 00:27:46,920 PHP, see on olemas ka väljaspool neid looksulg, siin ja siin, 601 00:27:46,920 --> 00:27:49,120 ja siin ja siin ja isegi allapoole. 602 00:27:49,120 --> 00:27:52,400 Nii et ma ütlen, et see on õnnistus, mis tähendab, et sa ei pea mõtlema, kui 603 00:27:52,400 --> 00:27:54,070 raske, kui me tegime nädalat tagasi. 604 00:27:54,070 --> 00:27:56,880 Aga see on ka natuke needus, et olenemata sellest, kus te kasutate muutuja 605 00:27:56,880 --> 00:28:00,020 PHP, vähemalt programmi niimoodi, see on ülemaailmselt kättesaadav 606 00:28:00,020 --> 00:28:01,170 parem või halvem. 607 00:28:01,170 --> 00:28:06,130 Nii et sa pead meeles pidama, et nüüd, oma muutujate ei ole määratud. 608 00:28:06,130 --> 00:28:07,640 Te võite need on määratud mujal. 609 00:28:07,640 --> 00:28:09,460 >> Aga mida ma teen lõpuks? 610 00:28:09,460 --> 00:28:13,160 Ma lähen hoida sees, et globaalne muutuja väärtus 611 00:28:13,160 --> 00:28:17,060 counter sisestada tulemus teeb counter + 1. 612 00:28:17,060 --> 00:28:18,910 Nii et see on lihtsalt aritmeetiline et ei 613 00:28:18,910 --> 00:28:20,590 juurdekasvu et counter. 614 00:28:20,590 --> 00:28:24,850 Ja see, et ma ladustamiseks et väärtus tagasi on siin tähendab 615 00:28:24,850 --> 00:28:29,970 sisuliselt uuendada andmebaasi meeles pidada, et kasutaja 123456789 olnud 616 00:28:29,970 --> 00:28:31,010 siin kaks korda. 617 00:28:31,010 --> 00:28:33,780 Ja kui ma seda uuesti, kui järgmine kord ma asendusostu lehekülge, see läheb kontrollima 618 00:28:33,780 --> 00:28:36,710 mu käsi tempel ja öelda, oh, kasutaja 123456789 on nüüd 619 00:28:36,710 --> 00:28:38,410 siin olnud kolm korda. 620 00:28:38,410 --> 00:28:43,390 >> Ja mis PHP jms keeles teeme meie jaoks on nad viinud 621 00:28:43,390 --> 00:28:47,720 kuidas ja kus ja kui kaua salvestada väärtused selles erilist 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 Ja see superglobal järgmine kord külastada lehekülge on justkui võluväel 624 00:28:52,750 --> 00:28:57,440 Eeltäidetud, täis väärtusi, seal olid sa viimati külastatud 625 00:28:57,440 --> 00:29:02,310 kas see oli hetk tagasi, nädal tagasi, või 2013 ja nüüd me räägime 626 00:29:02,310 --> 00:29:03,790 umbes 2015. 627 00:29:03,790 --> 00:29:07,600 PHP ja web server hoolitseda kõik selle teile. 628 00:29:07,600 --> 00:29:08,850 >> Publik: [kuuldamatu]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID Malan: Muutujad PHP on sisuliselt alati globaalne kui sa 631 00:29:15,760 --> 00:29:18,400 deklareerida neid sees funktsiooni ja siis nad on kohalikud 632 00:29:18,400 --> 00:29:19,420 funktsioon ainult. 633 00:29:19,420 --> 00:29:22,300 Aga kuna ma ei ole kirjutanud ühtegi funktsioone, on nad nüüd tõhusalt 634 00:29:22,300 --> 00:29:25,090 globaalne kogu minu pilt siin. 635 00:29:25,090 --> 00:29:26,040 >> Publik: Kas on võimalik et need kohalikud? 636 00:29:26,040 --> 00:29:28,470 >> DAVID Malan: Kas on olemas kuidas teha neid kohalik? 637 00:29:28,470 --> 00:29:30,680 Ainult pakkimine neid funktsioone. 638 00:29:30,680 --> 00:29:32,790 Mis viimane versioon PHP, saad seda teha koos 639 00:29:32,790 --> 00:29:34,130 anonüümne funktsioon. 640 00:29:34,130 --> 00:29:35,930 Aga rohkem, et kontekstis JavaScript. 641 00:29:35,930 --> 00:29:37,260 Aga lühike vastus on ei. 642 00:29:37,260 --> 00:29:40,888 Pikem vastus on jah. 643 00:29:40,888 --> 00:29:42,380 Nice. 644 00:29:42,380 --> 00:29:43,380 Hea küsimusele. 645 00:29:43,380 --> 00:29:43,930 Hea küll. 646 00:29:43,930 --> 00:29:47,760 >> Nii lõpuks leht ise on tegelikult üsna lihtne. 647 00:29:47,760 --> 00:29:51,470 Pange tähele, et kui ma väljumise PHP režiim, tagasivõtmine et kõik see kraam maha 648 00:29:51,470 --> 00:29:53,700 Allpool on ainult hakka sülitama välja toores brauseris. 649 00:29:53,700 --> 00:29:57,050 Mis on hea, sest ma ei taha saata kasutaja mõned HTML, kuid ma ei taha 650 00:29:57,050 --> 00:29:59,140 dünaamiliselt värskendada et HTML. 651 00:29:59,140 --> 00:30:03,930 Ja üks viis, kuidas ma seda teha ei sorteerima väga kiiresti langeda tagasi PHP 652 00:30:03,930 --> 00:30:07,730 režiimis sulg küsimärk võrdusmärk ning seejärel väljund väärtus 653 00:30:07,730 --> 00:30:08,650 counter. 654 00:30:08,650 --> 00:30:12,360 >> Või kui see tundub veidi segasena, see võrdusmärk on tegelikult vaid mõned 655 00:30:12,360 --> 00:30:16,190 süntaktiline suhkur sel printf ($ counter). 656 00:30:16,190 --> 00:30:19,160 Aga ausalt, see on natuke inetu ja natuke tüütu tüüp. 657 00:30:19,160 --> 00:30:23,660 Nii PHP väga kenasti pakub see funktsioon kus saab lihtsalt öelda, et see rohkem 658 00:30:23,660 --> 00:30:25,450 lühidalt samamoodi. 659 00:30:25,450 --> 00:30:26,940 >> Niisiis, mis toimub all kapuuts? 660 00:30:26,940 --> 00:30:31,210 Lähme kiiresti vaadata võrgustik tab siin counter.php. 661 00:30:31,210 --> 00:30:35,090 Ja lubage mul minna ja esimene olgem kustutada oma küpsiseid. 662 00:30:35,090 --> 00:30:38,670 Olgem selge sirvimise andmed alates algusest. 663 00:30:38,670 --> 00:30:39,680 Nüüd lähme tagasi siia. 664 00:30:39,680 --> 00:30:41,340 Nüüd laadige leht uuesti. 665 00:30:41,340 --> 00:30:42,170 Ja ma olen tagasi nullis. 666 00:30:42,170 --> 00:30:44,810 Kuna mu käsi tempel on pestud, Nüüd ma saan uue küpsise. 667 00:30:44,810 --> 00:30:48,780 >> Tõepoolest, kui ma vaatan võrgu kaart ja vaata vastus päised, teade 668 00:30:48,780 --> 00:30:51,960 et seade saadab mind küpsis, kelle nimi on mõnevõrra 669 00:30:51,960 --> 00:30:55,820 omavoliliselt, kuid selline mõistlikult, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 Ja see saadab mind see tõesti suur juhuslik number. 671 00:30:58,440 --> 00:30:59,440 See ei ole päris mitu. 672 00:30:59,440 --> 00:31:00,390 See ei ole päris kuueteistkümnendsüsteemis. 673 00:31:00,390 --> 00:31:03,600 See on mingi täht string, kuid arvatavasti on see juhuslik. 674 00:31:03,600 --> 00:31:06,830 Ja see on käsitsi templi nii, et rääkida, et ma viidates. 675 00:31:06,830 --> 00:31:11,960 >> Vahepeal, kui ma nuppu reload ja siis pilk see teine ​​joon minu teine 676 00:31:11,960 --> 00:31:17,600 taotlused, teatised nüüd, et minu soov päised sisaldavad PHPSESSID võrdub see, 677 00:31:17,600 --> 00:31:19,390 ei set-cookie, kuid ainult küpsise. 678 00:31:19,390 --> 00:31:22,950 Ja see on minu brauseri esitlus minu käest tempel. 679 00:31:22,950 --> 00:31:28,820 >> Nüüd nagu teaser ja me räägime veel Selle nädala või nii, kuid 680 00:31:28,820 --> 00:31:31,590 Millisel viisil see et sa kaitsetud oma Facebook konto 681 00:31:31,590 --> 00:31:34,137 kaitsetud ja muu selline moodustab haavatav? 682 00:31:34,137 --> 00:31:35,510 >> Publik: Kui keegi on oma küpsise. 683 00:31:35,510 --> 00:31:36,750 >> DAVID Malan: Jah, kui keegi on oma küpsise. 684 00:31:36,750 --> 00:31:39,920 Ma mõtlen tõesti, palju nagu mõned teist oleks proovinud nagu klubi või 685 00:31:39,920 --> 00:31:44,030 lõbustuspark, kui sa püüad midagi niimoodi kopeerida tempel, ehkki 686 00:31:44,030 --> 00:31:47,560 tagasi peale teise isiku poolt, ja siis ta esitab selle 687 00:31:47,560 --> 00:31:53,250 oma, kui see tegelikult ei vaata identsed, 123456789, siis web 688 00:31:53,250 --> 00:31:57,980 server on ilmselt lihtsalt läheb usun, et see kasutaja on teile. 689 00:31:57,980 --> 00:32:01,450 >> Ja see on tõesti peamine ohtu iga kord, kui kasutate küpsiseid 690 00:32:01,450 --> 00:32:05,420 sest kui keegi lihtsalt võltsib nii et räägi oma küpsis, arvud, mida ta 691 00:32:05,420 --> 00:32:08,660 on, kas tõesti kopeerides vaadates arvuti 692 00:32:08,660 --> 00:32:09,890 ja on nagu OK. 693 00:32:09,890 --> 00:32:14,520 Davidi Präänik JJ3JIK ja nii edasi, ja siis nad piisavalt targad, et teavad 694 00:32:14,520 --> 00:32:18,080 kuidas omamoodi käsitsi saata, et küpsist brauser või 695 00:32:18,080 --> 00:32:22,350 programmi nad kirjutavad, mida nad võiksid täielikult logige kodulehel teile. 696 00:32:22,350 --> 00:32:28,560 See ei ole nii raske teeselda, et olla keegi teine, kui me uuesti p-set 697 00:32:28,560 --> 00:32:30,790 kaks, millega kehtestati mida? 698 00:32:30,790 --> 00:32:32,065 >> Publik: krüptograafia. 699 00:32:32,065 --> 00:32:33,860 >> DAVID Malan: vähe natuke krüptograafia. 700 00:32:33,860 --> 00:32:36,550 Simple krüptograafia, vähemalt Standard Edition, kuid krüpto 701 00:32:36,550 --> 00:32:36,870 sellegipoolest. 702 00:32:36,870 --> 00:32:37,410 vähem. 703 00:32:37,410 --> 00:32:41,440 Nii selgub, kui te krüptida kõik need pealkirjad, kasutades midagi, mida 704 00:32:41,440 --> 00:32:48,770 võib nüüd rohkem teada lähedalt nagu SSL, secure socket layer või https:// URL 705 00:32:48,770 --> 00:32:51,890 siis kõik need asjad, mida me oleme olnud põrkav tegelikult kodeeritud, 706 00:32:51,890 --> 00:32:54,800 mis tähendab, et see on nagu sa ei saa lugeda käsi tempel. 707 00:32:54,800 --> 00:32:59,350 Ainult facebook.com ei või google.com, või sel juhul võivad seadme 708 00:32:59,350 --> 00:33:00,550 lugesin, et käsi tempel. 709 00:33:00,550 --> 00:33:04,020 >> Traagiline on küll, ja jälle, et see on liigagi sobivaks NSA stuff 710 00:33:04,020 --> 00:33:06,410 hilja, isegi SSL on purunev. 711 00:33:06,410 --> 00:33:09,850 Ja see tegelikult ei ole nii raske isegi crack et krüpteerimist. 712 00:33:09,850 --> 00:33:12,040 Mitte niivõrd lõhenemist krüpteerimine kuid tricking 713 00:33:12,040 --> 00:33:15,720 veebilehitsejate dekrüpteerimiseks andmed enneaegselt. 714 00:33:15,720 --> 00:33:17,880 Aga jälle, me kiusa selle enne pikk. 715 00:33:17,880 --> 00:33:21,242 Praegu lihtsalt karta. 716 00:33:21,242 --> 00:33:23,070 See on kahjuks selline tõsi. 717 00:33:23,070 --> 00:33:23,760 >> Hea küll. 718 00:33:23,760 --> 00:33:27,910 Nii, et kui see nüüd jäta meid? 719 00:33:27,910 --> 00:33:29,010 Noh, teeme selle ära. 720 00:33:29,010 --> 00:33:31,790 Lähme edasi ja võtta kiire teaser enne me pausi. 721 00:33:31,790 --> 00:33:33,790 Ja ma arvan, et me jõlkuma veidi kauem täna, kuid me ei kavatse sukelduda 722 00:33:33,790 --> 00:33:37,850 midagi täiesti uut ja seksikas, mis ihuma oma isu veelgi. 723 00:33:37,850 --> 00:33:38,950 Nii et see teaser. 724 00:33:38,950 --> 00:33:41,520 >> Nii SQL hakkasime rääkima kunagi nii lühidalt viimast korda. 725 00:33:41,520 --> 00:33:44,670 Sa tõesti, et su käed määrdunud mõned seda p-set seitse. 726 00:33:44,670 --> 00:33:46,480 Ja üldarusaadavat mõttes, mida see SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 heaks teha? 729 00:33:49,850 --> 00:33:50,310 Mis see on? 730 00:33:50,310 --> 00:33:51,546 Jah. 731 00:33:51,546 --> 00:33:53,240 >> Publik: Teeme teile juurdepääsu andmetele. 732 00:33:53,240 --> 00:33:53,360 >> DAVID Malan: Jah. 733 00:33:53,360 --> 00:33:55,120 See olgem teil juurdepääs andmetele andmebaasis. 734 00:33:55,120 --> 00:33:56,710 Structured Query Language. 735 00:33:56,710 --> 00:33:59,890 Ja see on sisuliselt programmeerimiskeelt. 736 00:33:59,890 --> 00:34:03,400 On omadusi see, et me isegi ei kasuta seda klassis. 737 00:34:03,400 --> 00:34:04,710 Aga sa ei saa tõhusalt define funktsioone. 738 00:34:04,710 --> 00:34:06,870 Neid nimetatakse salvestatud menetlused SQL. 739 00:34:06,870 --> 00:34:09,860 Aga me hoiame see üsna lihtne ja lihtsalt kasutada seda mõned põhilised toimingud 740 00:34:09,860 --> 00:34:14,320 nagu valides andmed, andmete sisestamiseks ajakohastada andmed ja andmete kustutamine. 741 00:34:14,320 --> 00:34:17,400 >> Ja sa tõesti arvad andmebaasi nagu SQL andmebaasi, kui lihtsalt 742 00:34:17,400 --> 00:34:18,800 on Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Kuna SQL viitab relatsiooniline andmebaasi, kus 744 00:34:21,989 --> 00:34:23,480 seoses tähendab lihtsalt tabeleid. 745 00:34:23,480 --> 00:34:24,739 Read ja veerud. 746 00:34:24,739 --> 00:34:27,929 Seega midagi saab panna tabelisse Asjalik või Google Docs, 747 00:34:27,929 --> 00:34:32,460 võid panna SQL andmebaas kuulutades tabelis. 748 00:34:32,460 --> 00:34:34,800 >> Nüüd, kuidas sa tegelikult pääseda et informatsiooni? 749 00:34:34,800 --> 00:34:38,239 Noh, käske või päringuid niimoodi. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, UPDATE ja DELETE. 751 00:34:40,199 --> 00:34:44,489 Ja enamasti on need neli ainult koostisosade pead 752 00:34:44,489 --> 00:34:47,370 midagi üsna võimsalt Probleemse pani seitse. 753 00:34:47,370 --> 00:34:49,940 >> Nüüd juba järgmisel päeval, siis oleks tegelikult suhelda andmebaasi 754 00:34:49,940 --> 00:34:52,730 must ja valge terminali aknas vilgub kiire niimoodi. 755 00:34:52,730 --> 00:34:56,370 Ja andmebaasi me töötab Seade on kutsutud MySQL, mis on 756 00:34:56,370 --> 00:34:58,560 tasuta ja avatud lähtekoodiga andmebaasi mootor. 757 00:34:58,560 --> 00:35:02,240 Kui sa Google ja lugeda Wikipedia artiklis, saate teada, et nimi on 758 00:35:02,240 --> 00:35:05,060 natuke üleminek mõnda Linuxit. 759 00:35:05,060 --> 00:35:10,460 Maria andmebaas on tegelikult toidulauale niiöelda MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Pikk lugu lühike, Oracle ostis MySQL. 761 00:35:12,740 --> 00:35:13,870 Oracle on suur firma. 762 00:35:13,870 --> 00:35:17,010 Inimesed on mures, et see oleks enam ei ole päris nii avatud lähtekoodiga, 763 00:35:17,010 --> 00:35:20,930 nii et see on lihtsalt koopia MySQL, mis on veel tasuta, ikka avatud lähtekoodiga ja 764 00:35:20,930 --> 00:35:23,550 paigaldada Fedora Linux vaikimisi. 765 00:35:23,550 --> 00:35:26,130 >> Aga see on selline valu kael tutvuda 766 00:35:26,130 --> 00:35:27,310 andmebaasis nii. 767 00:35:27,310 --> 00:35:30,560 Nii me lisada CS50 seade tasuta avatud lähtekoodiga tööriista nimega 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Lihtsalt juhus, et See on kirjutatud PHP. 770 00:35:33,940 --> 00:35:36,450 Ei ole olulist vaja PHP siin. 771 00:35:36,450 --> 00:35:40,090 Aga see on vaid veebipõhine vahend, mis me tasuta alla laadida, paigaldada 772 00:35:40,090 --> 00:35:43,850 seade, mis võimaldab meil graafiline kasutajaliides, mis 773 00:35:43,850 --> 00:35:48,610 uurida p-pani seitse andmebaas mis luua uusi andmebaase, 774 00:35:48,610 --> 00:35:51,980 öelda oma lõpliku projekti, kui soovite nagu, ja lõpuks luua 775 00:35:51,980 --> 00:35:55,900 dünaamilisi veebisaite nagu CS50 rahandus mis võimaldavad teil andmeid ning 776 00:35:55,900 --> 00:35:58,140 uuendada andmeid dünaamiliselt. 777 00:35:58,140 --> 00:36:01,420 >> Sa ei kavatse on kasutada lihtsalt lihttekstifaili või CSV. 778 00:36:01,420 --> 00:36:05,950 Võite tegelikult kasutada smart andmebaas programm, nii et saate käivitada rohkem 779 00:36:05,950 --> 00:36:10,240 keerukamaid päringuid lihtsalt lugemise läbi kõik lineaarselt. 780 00:36:10,240 --> 00:36:14,150 >> Nii näiteks on see, mida me anname sa karbist p-pani seitse. 781 00:36:14,150 --> 00:36:18,280 See tabel ilmselt vähemalt kolm veergu, millest üks on 782 00:36:18,280 --> 00:36:21,450 kasutajanimi, millest üks on hash, ja teine, mis on ID. 783 00:36:21,450 --> 00:36:26,200 >> Aga huvitav asi, ja ainult nalja teha üks mõte siin, kasutajanimi 784 00:36:26,200 --> 00:36:29,270 Oletatavalt juba unikaalne, eks? 785 00:36:29,270 --> 00:36:31,190 Ma mõtlen, et kõige tahes veebilehel, kui sul on kasutajanimi olemas 786 00:36:31,190 --> 00:36:32,370 ei saa olla kahte caesars. 787 00:36:32,370 --> 00:36:33,440 Ei saa olla kaks Malans. 788 00:36:33,440 --> 00:36:34,950 Ei saa olla kahte jharvards. 789 00:36:34,950 --> 00:36:35,600 Selle unikaalne. 790 00:36:35,600 --> 00:36:38,610 Muidu nad ei tea, mis jharvard see tegelikult on. 791 00:36:38,610 --> 00:36:42,710 Niisiis, milline võiks olla motivatsioon ka võttes kolmandast veerust vasakul 792 00:36:42,710 --> 00:36:46,970 seal nimetatakse ID, mis näeb number, mis on samamoodi unikaalne? 793 00:36:46,970 --> 00:36:51,300 See tundub natuke ülearune mulle esimesel pilgul. 794 00:36:51,300 --> 00:36:54,910 Miks võib see olla kaalukas olema mitte ainult unikaalne kasutajanimed, 795 00:36:54,910 --> 00:36:56,837 vaid ka unikaalne numbrid? 796 00:36:56,837 --> 00:36:59,460 >> Publik: Nad võivad olla sama salasõna. 797 00:36:59,460 --> 00:37:01,720 >> DAVID Malan: Inimesed võib-olla sama parooli, muidugi. 798 00:37:01,720 --> 00:37:03,900 See võib täiesti juhtuda. 799 00:37:03,900 --> 00:37:08,270 Aga kui nad on selle unikaalne kasutajanimi, I väidan, et see ei ole tegelikult 800 00:37:08,270 --> 00:37:11,630 küsimus, sest kui nad kirjuta oma kasutajanimi, ma ainult vaja vaadata oma 801 00:37:11,630 --> 00:37:15,060 Parooli nende hash sätestatut. 802 00:37:15,060 --> 00:37:15,970 Miks muidu? 803 00:37:15,970 --> 00:37:17,950 >> Publik: Faster otsimine. 804 00:37:17,950 --> 00:37:18,680 >> DAVID Malan: Faster otsimine. 805 00:37:18,680 --> 00:37:19,548 Miks? 806 00:37:19,548 --> 00:37:21,460 >> Publik: ID on vaid üks. 807 00:37:21,460 --> 00:37:24,040 >> DAVID Malan: ID on vaid üks märk, või täpsemalt, see on number, 808 00:37:24,040 --> 00:37:26,910 nii on see ilmselt 32 bitti või midagi sellist. 809 00:37:26,910 --> 00:37:30,270 Arvestades, et kasutajanimi, ilmselt Jason Hirschhorn on seal on mingisugune 810 00:37:30,270 --> 00:37:33,900 naeruväärselt pikk ja see läheb mind palju rohkem aega, et string 811 00:37:33,900 --> 00:37:40,910 võrrelge H-I-R-S-C-H-H-O-R-N ja võibolla / 0 või midagi sellist, et 812 00:37:40,910 --> 00:37:45,100 otsida Jason, mitte lihtsalt ütlesid mulle kasutaja number kaks. 813 00:37:45,100 --> 00:37:46,510 See on 32 bitti. 814 00:37:46,510 --> 00:37:48,550 See on ühe INT et sul on, mida võrrelda. 815 00:37:48,550 --> 00:37:52,150 Ja tõepoolest, see on täpselt, miks andmebaasid kipuvad Unikaalsete IDd 816 00:37:52,150 --> 00:37:53,710 rida neid. 817 00:37:53,710 --> 00:37:56,280 >> Nüüd sellest, mis muude andmete liigid on olemas lisaks INT ja ilmselt 818 00:37:56,280 --> 00:37:57,160 strings nagu see on? 819 00:37:57,160 --> 00:37:59,700 Noh, et olla õige, SQL andmebaase, nagu 820 00:37:59,700 --> 00:38:02,060 MySQL on CHAR väljad. 821 00:38:02,060 --> 00:38:05,320 Ja CHAR veidi eksitavalt ei ole ühe CHAR. 822 00:38:05,320 --> 00:38:10,290 CHAR väli MySQL andmebaasi üks või mitu märki, kuid see on 823 00:38:10,290 --> 00:38:11,780 fikseeritud arvu märke. 824 00:38:11,780 --> 00:38:15,710 >> Nii näiteks, kui ma lähen üle phpMyAdmin nagu te võib-olla juba, või 825 00:38:15,710 --> 00:38:21,340 varsti probleem seatud seitse, ja ma lähen minu andmebaasi ning lihtsalt lõbu pärast, 826 00:38:21,340 --> 00:38:25,700 olgem luua uus tabel nimega katsetada vaid kaks veergu. 827 00:38:25,700 --> 00:38:27,160 Ma siis nuppu Mine. 828 00:38:27,160 --> 00:38:30,070 Ja see muutub üsna tuttav, eriti kui te käpard 829 00:38:30,070 --> 00:38:31,130 ümber oma. 830 00:38:31,130 --> 00:38:34,140 Siin ma võiks kirjutada ID loomiseks Uue tabeli tüüp Int. 831 00:38:34,140 --> 00:38:37,770 Aga siin ma võiks kirjutada kasutajanime uuesti, et varem tabel. 832 00:38:37,770 --> 00:38:40,700 Ja teate mul on terve hunnik liiki valida. 833 00:38:40,700 --> 00:38:43,610 >> Ja just see on põhjus, miks phpMyAdmin on selline kena. 834 00:38:43,610 --> 00:38:46,770 See on selline enese õpetuse, mida saab lihtsalt mingi punkt ja klõpsake, ja 835 00:38:46,770 --> 00:38:50,730 vaata rippmenüüst menüüde ja tuletada et see, mida võimu SQL annab sulle. 836 00:38:50,730 --> 00:38:54,090 >> Ja tõepoolest, kui ma valin CHAR, ma siis tuleb täpsustada pikkus, või kuidas 837 00:38:54,090 --> 00:38:55,940 palju väärtusi, kui palju sümboliga. 838 00:38:55,940 --> 00:39:00,090 Nii väga ühised väärtused on asjad 255, kuid see on veidi pikk. 839 00:39:00,090 --> 00:39:02,250 Tavaliselt on kaheksa kasutajanime. 840 00:39:02,250 --> 00:39:03,590 Aga see on natuke väike nendel päevadel. 841 00:39:03,590 --> 00:39:05,430 Nii et see on disain otsus. 842 00:39:05,430 --> 00:39:08,630 Kas see 8 tähemärki, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 See on tõesti sinust. 844 00:39:09,830 --> 00:39:12,350 Aga CHAR valdkonnas on fikseeritud number. 845 00:39:12,350 --> 00:39:16,420 Nii et valida liiga vähe ja sa oled natuke kruvitud, kui soovite enam kasutajanimi. 846 00:39:16,420 --> 00:39:19,132 Vali liiga palju ja mida on Puuduseks? 847 00:39:19,132 --> 00:39:20,820 >> Publik: [kuuldamatu]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID Malan: See on raiskamine. 849 00:39:21,620 --> 00:39:24,835 Just nagu C, kui teil on suurem tüki mälu kui vaja, sa oled 850 00:39:24,835 --> 00:39:27,190 lihtsalt raiskab aega ja raiskab ruumi. 851 00:39:27,190 --> 00:39:31,430 Nii alternatiivina olemas VARCHAR, mis lahendab selle probleemi 852 00:39:31,430 --> 00:39:36,390 ravivad pikkus ei fikseeritud pikkusega kuid maksimaalne pikkus, ja kasutades 853 00:39:36,390 --> 00:39:40,990 muutuja arvuni, mis siis kipub kasutada ainult nii palju sümboliga kui 854 00:39:40,990 --> 00:39:42,710 tegelikult vajavad. 855 00:39:42,710 --> 00:39:43,670 See kõlab ideaalne. 856 00:39:43,670 --> 00:39:45,640 >> Miks me ei saada lahti SÜMBOL andmetüüp siis? 857 00:39:45,640 --> 00:39:48,500 Mis võib olla negatiivsed kasutades VARCHARs, mis kõlab 858 00:39:48,500 --> 00:39:51,644 nagu see on tore võita? 859 00:39:51,644 --> 00:39:52,596 Jah? 860 00:39:52,596 --> 00:39:53,846 >> Publik: [kuuldamatu]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID Malan: OK, hea. 863 00:39:57,790 --> 00:40:01,101 Seega, kui kõik andmed on sama pikkus, mis on mure? 864 00:40:01,101 --> 00:40:05,250 >> Publik: Sest sa raiskad andmed, öeldes neile kõik. 865 00:40:05,250 --> 00:40:09,060 >> DAVID Malan: Nii et kui kõik andmed on sama pikk, kuigi ma väidan, 866 00:40:09,060 --> 00:40:12,300 mis täpsustatakse maksimaalne pikkus on varchar ei erine 867 00:40:12,300 --> 00:40:16,070 täpsustades fikseeritud pikkusega CHAR kui sa tead, et number ette. 868 00:40:16,070 --> 00:40:19,500 Aga seal on tõesti, ja ma omamoodi väljavõte, vastus reaalsus 869 00:40:19,500 --> 00:40:22,610 et seal on veel maks, mis võiks olla tüütu, eriti kui sa 870 00:40:22,610 --> 00:40:25,920 tekib isiku nimi, mis on ebatavaliselt pikk, et sa ei 871 00:40:25,920 --> 00:40:26,860 prognoosida. 872 00:40:26,860 --> 00:40:31,420 Ja see on ka veidi vähem tõhus tegelikult otsida VARCHARs kui 873 00:40:31,420 --> 00:40:35,620 mitte otsides sümboliga, eriti kaua tabeleid, mis on palju ja 874 00:40:35,620 --> 00:40:36,510 palju andmeid. 875 00:40:36,510 --> 00:40:40,060 Nii ka siin, temaatilised on jälle ei ilmne valik. 876 00:40:40,060 --> 00:40:42,870 >> Nii lihtsalt, et anda teile tunde teiste andmetüübid, mis võivad pakkuda huvi 877 00:40:42,870 --> 00:40:45,400 kas p-set seitse või Tulevikus seal INT. 878 00:40:45,400 --> 00:40:47,270 Seal BIGINT, mis on nagu pikk pikk. 879 00:40:47,270 --> 00:40:48,880 See kipub olema 64 bitti. 880 00:40:48,880 --> 00:40:51,640 Ei Koma mis näete Ülesanded, mis on palju 881 00:40:51,640 --> 00:40:55,300 puhtam vastus probleemidele me esinenud float ja ujuv 882 00:40:55,300 --> 00:40:55,980 punkt ebatäpsus. 883 00:40:55,980 --> 00:40:57,390 Ja siis on DATETIME. 884 00:40:57,390 --> 00:41:01,530 Seal on sõna otseses mõttes andmetüüp, mis on sarnanema aasta, kuu, päev, 885 00:41:01,530 --> 00:41:03,730 ja tund, minut ja sekund. 886 00:41:03,730 --> 00:41:07,470 >> Aga SQL andmebaase ka asju, mida me helistame indeksid. 887 00:41:07,470 --> 00:41:11,630 Ja indeks on midagi, mida sa täpsustada, kui luua tabeli 888 00:41:11,630 --> 00:41:15,720 teha otsinguid ja muud toimingud tõhusamaks. 889 00:41:15,720 --> 00:41:18,550 Täpsemalt, ei midagi, mida nimetatakse PRIMARY indeks, mida võiks 890 00:41:18,550 --> 00:41:19,440 deklareerida järgmiselt. 891 00:41:19,440 --> 00:41:22,330 >> Me tegime seda teile kasutajate tabel anname. 892 00:41:22,330 --> 00:41:26,160 Aga teate kui ma käsitsi taasloomine kasutajate tabel siin annab 893 00:41:26,160 --> 00:41:27,110 see nimi kasutajatele. 894 00:41:27,110 --> 00:41:28,125 Ma juba määratud ID. 895 00:41:28,125 --> 00:41:29,330 Määratletud I INT. 896 00:41:29,330 --> 00:41:32,000 I määratletud kasutajanime maksimum 32 tähemärki. 897 00:41:32,000 --> 00:41:36,140 Aga kui me hoiame kerimine selles üsna lai aken, märkate seal 898 00:41:36,140 --> 00:41:38,260 hunnik muid asju ma ei määrata. 899 00:41:38,260 --> 00:41:40,950 >> Üks, ma ei saa määrata atribuudid meeldib, sa tead, mida see 900 00:41:40,950 --> 00:41:42,190 INT tuleks allkirjastamata. 901 00:41:42,190 --> 00:41:45,510 Ma ei taha, negatiivsed arvud, nii teeme seda allkirjastamata. 902 00:41:45,510 --> 00:41:48,660 Null ei ole siin oluline, sest Ma ei taha iga kasutaja 903 00:41:48,660 --> 00:41:49,640 olema kordumatu number. 904 00:41:49,640 --> 00:41:50,830 Ma ei taha, et see oleks null. 905 00:41:50,830 --> 00:41:52,330 >> Aga see on huvitav. 906 00:41:52,330 --> 00:41:57,780 Võin täpsustada, et ID on kas primaarvõtme selle andmebaasi või see on 907 00:41:57,780 --> 00:42:00,620 ainulaadne, või see on indekseeritud või täistekst. 908 00:42:00,620 --> 00:42:05,630 Nii tänases eesmärkidel pikk lugu Ühesõnaga, peamine vahend, et see peab 909 00:42:05,630 --> 00:42:10,570 olema nii sisuliselt kui ka tehniliselt valdkonnas, et me kasutame, et unikaalselt 910 00:42:10,570 --> 00:42:12,140 tuvastamiseks. 911 00:42:12,140 --> 00:42:16,140 >> Nii et kui me otsida kasutajatele, see on omamoodi on lubadus vaadata neid enamasti 912 00:42:16,140 --> 00:42:17,370 et kordumatu tunnus. 913 00:42:17,370 --> 00:42:21,930 Ja andmebaasi tagab, et kui sa on kasutaja number 3, siis ei saa 914 00:42:21,930 --> 00:42:25,400 füüsiliselt lisada uue kasutaja selle sama number 3. 915 00:42:25,400 --> 00:42:28,380 Andmebaas lihtsalt keelduda Muudatuste salvestamiseks. 916 00:42:28,380 --> 00:42:32,310 Milline on hea asi, sest sa võid kaitsta end ise. ise 917 00:42:32,310 --> 00:42:34,270 >> Alternatiivina kasutajanimi. 918 00:42:34,270 --> 00:42:37,670 Nii teise rea, mäletate, on kasutajanimi valdkonnas. 919 00:42:37,670 --> 00:42:41,860 Nii teise rea siin on kasutajanimi, nagu tegime kaugele vasakule seal. 920 00:42:41,860 --> 00:42:43,940 >> Nii et mida veel võiks ma tahan täpsustada? 921 00:42:43,940 --> 00:42:47,840 Ma ei tohi vastavalt SQL, täpsustada kaks peamist võtit. 922 00:42:47,840 --> 00:42:50,750 saab määrata ühine võti kuhu vaadata nii valdkondades, kuid nad ei saa 923 00:42:50,750 --> 00:42:52,260 eraldi olema esmane võtmed. 924 00:42:52,260 --> 00:42:54,750 Nii et see ei tule kõne allagi. 925 00:42:54,750 --> 00:42:56,040 Nii et mis võiks tahan valida? 926 00:42:56,040 --> 00:42:59,710 >> Noh, UNIQUE on sarnase sisuga primaarvõti, kui määrate selle 927 00:42:59,710 --> 00:43:03,570 valdkonnas peab olema ainulaadne, kuid see on ei kavatse olla üks 928 00:43:03,570 --> 00:43:04,410 Ma kasutan kogu aeg. 929 00:43:04,410 --> 00:43:08,450 Ja me ei kavatse kasutada seda üks kõik aeg, mis põhjusel jälle? 930 00:43:08,450 --> 00:43:10,490 See on aeglasem potentsiaalselt kui see on pikk kasutajanimi. 931 00:43:10,490 --> 00:43:11,740 See on lihtsalt aja raiskamine. 932 00:43:11,740 --> 00:43:16,140 >> INDEX, vahepeal ette, et see on ei kavatse olla unikaalne, kuid tahaks 933 00:43:16,140 --> 00:43:19,470 teil töötada oma võlu all kapuuts teha seda kiiremini minu jaoks 934 00:43:19,470 --> 00:43:21,420 otsida selles valdkonnas. 935 00:43:21,420 --> 00:43:23,320 Nii see ilmselt ei ole siin asjakohane. 936 00:43:23,320 --> 00:43:26,500 Kasutajanime, ma väita, et UNIQUE on hea vastus. 937 00:43:26,500 --> 00:43:31,200 Aga oletame, et me tegime kasutajatele rohkem huvitavam kui lihtsalt kasutajanimed 938 00:43:31,200 --> 00:43:32,430 hashes ja ID numbrid. 939 00:43:32,430 --> 00:43:33,860 Mis siis, kui me andsime inimestele täisnimed? 940 00:43:33,860 --> 00:43:37,700 Mis siis, kui me andsime neile aadressid ja muid andmeid nende kohta? 941 00:43:37,700 --> 00:43:43,360 >> Noh, kui olete määranud, et veerg andmebaasis on indekseeritud, mis tähendab, et 942 00:43:43,360 --> 00:43:47,730 MySQL või Oracle, või mis iganes andmebaas te kasutate, peaks töötama oma võlu 943 00:43:47,730 --> 00:43:51,300 ja kasutada mingit fancy andmed struktuur, nagu puu või Prefiksipuu või 944 00:43:51,300 --> 00:43:55,940 hash tabel või midagi, et tagada et kui sa otsida andmeid kasutades 945 00:43:55,940 --> 00:43:58,150 valige selle konkreetse valdkonna - 946 00:43:58,150 --> 00:44:01,310 nagu mulle näidata kõigile, et elab Oxford Street. 947 00:44:01,310 --> 00:44:02,540 Päringu niimoodi. 948 00:44:02,540 --> 00:44:06,250 Kui teil on eelnevalt kindlaks määratud, et soovite indeksi selles valdkonnas, 949 00:44:06,250 --> 00:44:09,050 otsingud on palju, palju kiiremini. 950 00:44:09,050 --> 00:44:12,090 >> Kui te ei täpsusta indeks, parim saate teha, on lineaarne otsing kui 951 00:44:12,090 --> 00:44:13,030 see ei järjestatud. 952 00:44:13,030 --> 00:44:16,220 Aga kui sa täpsustada INDEX, nutikas inimesed, kes on teinud andmebaasi - 953 00:44:16,220 --> 00:44:19,340 inimesed nagu sina, kes teavad nüüd puud ja püüab ja räsitabeli - 954 00:44:19,340 --> 00:44:23,220 automaatselt luua selliseid andmeid struktuuri RAM veenduda, et 955 00:44:23,220 --> 00:44:26,050 need otsingud on palju kiirem. 956 00:44:26,050 --> 00:44:29,660 >> FULLTEXT vahepeal on sarnase sisuga, kuid võimaldab teil teha wildcard 957 00:44:29,660 --> 00:44:35,480 otsingud, nagu mulle näidata kõigile, et elab tänavatel algab 958 00:44:35,480 --> 00:44:36,960 täht O ükskõik millisel põhjusel. 959 00:44:36,960 --> 00:44:38,850 Seda saab teha wildcard otsingud niimoodi. 960 00:44:38,850 --> 00:44:45,880 Või rohkem kaalukaid asju näitama mind kõigile, kes on sõna - 961 00:44:45,880 --> 00:44:49,400 näita mulle kõik, kelle nimi algab konkreetse kirja. 962 00:44:49,400 --> 00:44:51,880 Võid otsida märksõnu Sel viisil. 963 00:44:51,880 --> 00:44:52,630 Hea küll. 964 00:44:52,630 --> 00:44:55,760 >> Niisiis, disain võimalusi seal potentsiaalselt. 965 00:44:55,760 --> 00:44:57,740 On teisi, et ma laine mu käed. 966 00:44:57,740 --> 00:45:00,530 Selgub, et teil on eri ladustamise mootorid. 967 00:45:00,530 --> 00:45:04,390 Ja see on veel kauge kui me vajame Kindlasti jaoks probleem pani seitse. 968 00:45:04,390 --> 00:45:06,920 Vaikimisi te kasutate midagi, mida nimetatakse InnoDB. 969 00:45:06,920 --> 00:45:10,910 Näete mainita kusagil phpMyAdmin liides kõige tõenäolisem. 970 00:45:10,910 --> 00:45:14,130 Aga tean, et on ka teisi disain otsuseid, mis on potentsiaalsed 971 00:45:14,130 --> 00:45:18,030 huvi tulla lõpliku projekti kui sa midagi veebipõhine. 972 00:45:18,030 --> 00:45:19,330 >> Aga teeme seda. 973 00:45:19,330 --> 00:45:23,130 Lähme edasi ja pane see edasi ekraan nagu teaser lugu 974 00:45:23,130 --> 00:45:26,330 hõlmab teid, toakaaslane, ja klaas piima. 975 00:45:26,330 --> 00:45:28,240 Võtame kaks minutit või nii murda siin. 976 00:45:28,240 --> 00:45:31,060 Ja kui sa ei jääda umbes, lähme tulla tagasi, vaata natuke rohkem SQL, ja 977 00:45:31,060 --> 00:45:35,160 siis natuke JavaScripti p-set kaheksa meeles. 978 00:45:35,160 --> 00:45:36,120 >> Hea küll. 979 00:45:36,120 --> 00:45:40,420 Niisiis, oletame, et sa mõtled nurgas nii, et saate väga lihtsalt tekkida 980 00:45:40,420 --> 00:45:44,240 kontekstis, kasutades andmebaasi või ausalt, isegi kasutades reaalses maailmas asjad 981 00:45:44,240 --> 00:45:46,280 nagu sularahaautomaadid, et saada raha. 982 00:45:46,280 --> 00:45:47,640 Nii et siin on külmkapis. 983 00:45:47,640 --> 00:45:50,040 Oletame, et sul üks liiga oma Dorm või maja. 984 00:45:50,040 --> 00:45:54,990 Ja sul on üks toakaaslane, ja nii sa tõesti meeldib piim näiteks. 985 00:45:54,990 --> 00:45:57,210 >> Nii et sa koju klassis ühel päeval. 986 00:45:57,210 --> 00:45:58,490 Ta ei ole veel tagasi. 987 00:45:58,490 --> 00:45:59,180 Sa avada külmik. 988 00:45:59,180 --> 00:46:00,870 Sa tõesti tahad suur klaas piima. 989 00:46:00,870 --> 00:46:01,820 Ei ole piima. 990 00:46:01,820 --> 00:46:02,920 Nii et mida sa teed? 991 00:46:02,920 --> 00:46:03,840 Sa sulgeda külmik. 992 00:46:03,840 --> 00:46:04,670 Sa haara võtmed. 993 00:46:04,670 --> 00:46:05,930 Sa minema väljakule. 994 00:46:05,930 --> 00:46:09,240 Ja sa saad kooskõlas CVS neile ise kassasse asjad, mis alati 995 00:46:09,240 --> 00:46:11,180 võtab rohkem aega kui tegelikult võttes kassapidajad. 996 00:46:11,180 --> 00:46:11,820 Igatahes. 997 00:46:11,820 --> 00:46:15,490 >> Niisiis, vahepeal dot dot dot, oma toakaaslane koju ja ta 998 00:46:15,490 --> 00:46:17,440 Samamoodi on igatsus jaoks piima. 999 00:46:17,440 --> 00:46:20,380 Nii ta avab külmik, näeb sees, ja oh, neetud. 1000 00:46:20,380 --> 00:46:21,160 No piim. 1001 00:46:21,160 --> 00:46:24,750 Nii ta juhib tähelepanu, juhtub minema Lisa muud CVS, mis oli ainult 1002 00:46:24,750 --> 00:46:27,900 blokeerida kaugusel mingil põhjusel ja tal või ta saab kooskõlas osta piima. 1003 00:46:27,900 --> 00:46:30,480 >> Vahepeal sa tuled koju, ta või ta tuleb koju, ja mida teha 1004 00:46:30,480 --> 00:46:31,980 sa lõpuks on? 1005 00:46:31,980 --> 00:46:33,080 Kaks korda nii palju piima. 1006 00:46:33,080 --> 00:46:34,620 Aga sa tõesti ei meeldi piima nii palju. 1007 00:46:34,620 --> 00:46:37,300 Nüüd teil on nii palju piima, et nüüd üks neist on lihtsalt läheb hapuks 1008 00:46:37,300 --> 00:46:37,820 lõpuks. 1009 00:46:37,820 --> 00:46:39,370 Nii et see on tõesti halb probleem. 1010 00:46:39,370 --> 00:46:39,900 Eks ole? 1011 00:46:39,900 --> 00:46:41,990 >> Niisiis, mis juhtus? 1012 00:46:41,990 --> 00:46:44,810 Seega põhimõtteliselt on see omamoodi on naeruväärne näide. 1013 00:46:44,810 --> 00:46:48,580 Aga all kapuuts, mis meil on olnud juhtub siin on teile mõlemale kontrollida 1014 00:46:48,580 --> 00:46:52,390 seisundi mõned tükk mälu, külmkapp. 1015 00:46:52,390 --> 00:46:54,420 Mõlemad olete kontrollinud riik Mõnede muutuja. 1016 00:46:54,420 --> 00:46:57,360 Sa juhtisid sõlmimist mis sa siis tegutses. 1017 00:46:57,360 --> 00:47:01,420 Aga kahjuks, kui teie toakaaslane Selveri juures, seisund, mis 1018 00:47:01,420 --> 00:47:05,670 muutuja muutunud, ta tuli tagasi ja nüüd tahab muuta riiki, kuid 1019 00:47:05,670 --> 00:47:07,480 see on juba muutunud tema kohta. 1020 00:47:07,480 --> 00:47:11,120 Ja muidugi, ta ei oleks läinud poodi, kui nad teadsid, 1021 00:47:11,120 --> 00:47:13,010 et sa olid juba teel. 1022 00:47:13,010 --> 00:47:16,430 >> Nii reaalses maailmas, kuidas sa võisid Et seda probleemi vältida, eeldades, et teil on 1023 00:47:16,430 --> 00:47:18,940 külmik, teil on toakaaslane, ja mida sa tegelikult meeldib piima? 1024 00:47:18,940 --> 00:47:19,760 >> Publik: teavitamine. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID Malan: teavitamine. 1026 00:47:20,580 --> 00:47:21,160 OK. 1027 00:47:21,160 --> 00:47:22,500 Aga kuidas võib suhelda? 1028 00:47:22,500 --> 00:47:23,990 >> Publik: Jäta teadmiseks. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID Malan: Jäta teadmiseks, eks? 1030 00:47:25,480 --> 00:47:28,025 Alati jätke NB! fännid show. 1031 00:47:28,025 --> 00:47:31,580 Olgu, alati jätta tähele, või pane tõesti nagu tabalukk või midagi 1032 00:47:31,580 --> 00:47:35,440 on külmkapp, mis hoiab oma toakaaslane kontrollimise seisu 1033 00:47:35,440 --> 00:47:36,540 et muutuja. 1034 00:47:36,540 --> 00:47:40,800 >> Nüüd, miks see nii Sobiv Ülesanded seitse või sularahaautomaati. 1035 00:47:40,800 --> 00:47:46,780 Noh, kujutage ette maailma ATM kus sa võiksid minna kuni ATM 1036 00:47:46,780 --> 00:47:48,920 masin siin, ja teise ATM siin. 1037 00:47:48,920 --> 00:47:50,680 Ja see juhtub üsna sageli. 1038 00:47:50,680 --> 00:47:54,150 Ja arvan, et teil on kaks ATM kaarte, mis on võimalik saada. 1039 00:47:54,150 --> 00:47:57,420 Ja sa sisse logida mõlemad masinad tõhusalt samaaegselt loodetavasti 1040 00:47:57,420 --> 00:47:58,660 kui keegi vaatab. 1041 00:47:58,660 --> 00:48:01,260 Ja siis sa kirjutad oma PIN umbes samal ajal. 1042 00:48:01,260 --> 00:48:06,280 Ja siis sa saldopäring näha, kui palju raha sul on. 1043 00:48:06,280 --> 00:48:08,920 Ja oletame, et sul on $ 100 lahkus oma konto. 1044 00:48:08,920 --> 00:48:13,310 Nii et sisuliselt üheaegselt, siis öelda üks, null, null, siseneda. 1045 00:48:13,310 --> 00:48:16,000 Ja sa loodetavasti saan tagasi raha. 1046 00:48:16,000 --> 00:48:18,440 >> Aga kui palju raha võiks sa tagasi? 1047 00:48:18,440 --> 00:48:21,710 Nüüd arvutid lõpus päeval, eriti kui nad on rääkinud 1048 00:48:21,710 --> 00:48:27,360 serverid, ei pruugi asju järjekorras, mis on oodatud. 1049 00:48:27,360 --> 00:48:30,860 >> Nii oletame, mis juhtub, sest olenemata võrgu kiirus küsimusi seal 1050 00:48:30,860 --> 00:48:34,530 on või CPU küsimusi on, või midagi sellist, arvan, et 1051 00:48:34,530 --> 00:48:38,530 Esimene ATM kontrollib oma tasakaalu ja näeb, oh, see inimene on 100 $. 1052 00:48:38,530 --> 00:48:41,840 Aga siis saab segane, sest võib-olla backup toimub ja seega on 1053 00:48:41,840 --> 00:48:42,500 aeglustub. 1054 00:48:42,500 --> 00:48:45,080 Või äkki kui kontroll-, võrk ühendus on pisut aeglasem, sest 1055 00:48:45,080 --> 00:48:45,910 see lihtsalt juhtub. 1056 00:48:45,910 --> 00:48:47,100 Nad on füüsiline seade. 1057 00:48:47,100 --> 00:48:49,330 Nii vahepeal teise ATM küsib sama küsimuse. 1058 00:48:49,330 --> 00:48:53,030 Kui palju raha David on? $ 100 on vastus. 1059 00:48:53,030 --> 00:48:58,930 Aga sellepärast, et esimese ATM ei ole veel saatnud sõnumi lahutama $ 100, nii 1060 00:48:58,930 --> 00:49:03,000 Sularahaautomaadid on kontrollitud panga võlvkelder, näeme seal on $ 100 olemas, ja nüüd 1061 00:49:03,000 --> 00:49:07,160 mõlemad masinad potentsiaalselt on läheb sülitama vastus. 1062 00:49:07,160 --> 00:49:12,240 >> Nüüd on see suurepärane sa mõnes mõttes kui see, mida pank teeb lõpuks 1063 00:49:12,240 --> 00:49:17,200 on muuta summa miinus 100 võrra milles muutuja võrdseks 1064 00:49:17,200 --> 00:49:21,570 pangakonto võrdne 0, mitte tehes miinus 100. 1065 00:49:21,570 --> 00:49:24,410 Nüüd halvimal juhul panga jaoks - 1066 00:49:24,410 --> 00:49:27,470 või parim pank, vahepeal nad annavad sulle $ 200, ja 1067 00:49:27,470 --> 00:49:31,690 pangakonto näitab nüüd negatiivne $ 100, mis tegelikult ei ole 1068 00:49:31,690 --> 00:49:32,950 kasu sa üldse. 1069 00:49:32,950 --> 00:49:36,500 Aga asi on selles, et see rass tingimus kaks toakaaslased saada 1070 00:49:36,500 --> 00:49:40,660 piima, või kaks pangaautomaati üritavad raha ja muuta riigi võlvkelder 1071 00:49:40,660 --> 00:49:44,510 samal ajal on olemas mõni kord, kui on andmebaas. 1072 00:49:44,510 --> 00:49:48,290 >> Nüüd probleem seatud seitse, see küsimus tekib tunne, et kui ostad 1073 00:49:48,290 --> 00:49:52,110 osakaal Facebook stock, ja siis Näiteks ostate teine ​​osa 1074 00:49:52,110 --> 00:49:55,160 Facebook aktsia, mida on vaja teha Otsust on programmeerija. 1075 00:49:55,160 --> 00:49:58,710 Selleks, et otsustada, kuidas uuendada andmebaas, koefitsiendid sa lähed 1076 00:49:58,710 --> 00:50:02,250 on üks rida, et laos ja see on üks viis seda rakendada. 1077 00:50:02,250 --> 00:50:06,640 Ja sa lähed on üks osa FB, mis on nende börsikood 1078 00:50:06,640 --> 00:50:10,120 Selle kasutajanime või see kasutaja ID, kordumatu tunnus. 1079 00:50:10,120 --> 00:50:12,340 >> Kuid sama lugu võib juhtuda siin. 1080 00:50:12,340 --> 00:50:15,800 Kui te ei vali SQL, kui näete Probleemse pani seitse, kui näed, 1081 00:50:15,800 --> 00:50:18,460 oh, David on üks osa Facebooki aktsia. 1082 00:50:18,460 --> 00:50:23,240 Lubage mul nüüd muuta, et see oleks kaks aktsiat, sest ta tahab osta 1083 00:50:23,240 --> 00:50:24,120 Teine osa. 1084 00:50:24,120 --> 00:50:27,860 Aga oletame David oli tegelikult kaks brauseri aknad avatud, või oletada, et 1085 00:50:27,860 --> 00:50:32,150 see on ühine konto abikaasade ja mõlemad üritavad sooritada 1086 00:50:32,150 --> 00:50:36,770 sama operatsiooni ka seal, võimalik, et otsus oleks 1087 00:50:36,770 --> 00:50:39,670 baseeruvad eelmise riik maailmas - 1088 00:50:39,670 --> 00:50:41,290 kontol on üks osa - 1089 00:50:41,290 --> 00:50:45,630 ja nii inimesed, või mõlemad serverid nüüd proovida öelda juurdekasvu seda kaks aktsiat. 1090 00:50:45,630 --> 00:50:49,020 Aga sel juhul, sa võisid laetud minu raha nii aktsiatesse, kuid 1091 00:50:49,020 --> 00:50:50,830 suurendatakse ainult see üks kord. 1092 00:50:50,830 --> 00:50:54,730 >> Nii lühike, põhiprobleem siin, nagu nalja lahkumist 1093 00:50:54,730 --> 00:50:58,750 märkida või panna tabalukk, on see, kui kaks inimest, või kaks niidid - 1094 00:50:58,750 --> 00:50:59,930 arvan, et tagasi tühjalt - 1095 00:50:59,930 --> 00:51:03,220 saab kontrollida riigi mõne muutuja ja proovige seda muuta muutuja, 1096 00:51:03,220 --> 00:51:07,950 kuid need kaks asja ei juhtu juures Samas aga ei saa katkestada 1097 00:51:07,950 --> 00:51:11,500 teiste asju juhtub, andmeid saab sattuda väga imelik riik. 1098 00:51:11,500 --> 00:51:15,450 Ja te võite saada või saab kannatada selles mõttes, et raha näiteks. 1099 00:51:15,450 --> 00:51:18,110 >> Nii et probleem komplekti seitse, anname see üks rida koodi, mis pikemas 1100 00:51:18,110 --> 00:51:21,000 lugu lühike, lahendab selle probleem MySQL. 1101 00:51:21,000 --> 00:51:24,950 See on väga pikk juhend, mis ei isegi mahuksid ühele joon 1102 00:51:24,950 --> 00:51:30,370 ekraan siin tagab, et teie töö on see, mida nimetatakse aatomi. 1103 00:51:30,370 --> 00:51:33,720 See kõik juhtub korraga, või seda ei juhtu üldse. 1104 00:51:33,720 --> 00:51:37,530 See on väga pikk lause ei saa saada katkenud osaliselt. 1105 00:51:37,530 --> 00:51:39,840 >> Ja mis see on sõna otseses mõttes mida ta ütleb. 1106 00:51:39,840 --> 00:51:44,200 Lisada mõned tabel järgmise kolm välja need konkreetsed väärtused, 1107 00:51:44,200 --> 00:51:47,280 kuid korduv võti, ei tee sisestada. 1108 00:51:47,280 --> 00:51:48,280 Kas uuendada. 1109 00:51:48,280 --> 00:51:52,450 Nii et see on nagu teed SELECT ja INSERT niiöelda samal ajal. 1110 00:51:52,450 --> 00:51:55,150 Ja mis on peamine, mis on ilmselt on nimetatud siin? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Selgub, ja te näete seda probleem seatud seitse spec, sest 1113 00:52:01,380 --> 00:52:06,040 meil tunnistada, et on olemas unikaalne võti selle konkreetse tabeli nii, et 1114 00:52:06,040 --> 00:52:08,480 sa ei saa olla mitu rida sama kasutajaga 1115 00:52:08,480 --> 00:52:10,150 Sama senti aktsia sümbol - 1116 00:52:10,150 --> 00:52:13,780 selles näites siin, DVN.V on rumal senti aktsia, et me 1117 00:52:13,780 --> 00:52:14,980 vaadake ka spec. 1118 00:52:14,980 --> 00:52:17,860 Sest me oleme kuulutanud olema ainulaadne, mida see tähendab, et kui sa 1119 00:52:17,860 --> 00:52:23,580 proovige sisestada dubleeritud rida, sa oled asemel läheb uuendada ilma 1120 00:52:23,580 --> 00:52:27,020 keegi, kellel on võimalus muuta olukord maailmas nii. 1121 00:52:27,020 --> 00:52:29,400 Nii lühike, see tagab asjad on aatomi. 1122 00:52:29,400 --> 00:52:32,530 >> Üldiselt küll, andmebaaside nagu MySQL - 1123 00:52:32,530 --> 00:52:35,460 ja sa ei pea seda funktsiooni p-set seitse, kuid hoida seda meeles 1124 00:52:35,460 --> 00:52:36,200 tulevikus - 1125 00:52:36,200 --> 00:52:38,870 toetama nn tehingute kui sa ei saa öelda, 1126 00:52:38,870 --> 00:52:40,990 START TEHINGU sõnalt. 1127 00:52:40,990 --> 00:52:43,270 Seejärel saab täita kaks SQL avaldused. 1128 00:52:43,270 --> 00:52:45,710 Ja SQL, kui näete p-set seitse, tundub vähe 1129 00:52:45,710 --> 00:52:46,750 midagi sellist. 1130 00:52:46,750 --> 00:52:48,820 Uuenda tabel nimega konto. 1131 00:52:48,820 --> 00:52:52,550 Seadke tasakaal veerg võrdne olenemata tasakaalu veerg praegu 1132 00:52:52,550 --> 00:52:57,280 on miinus 1000, kui number konto number, nagu kasutaja ID, 1133 00:52:57,280 --> 00:53:00,830 võrdub 2 ja seejärel ajakohastada konto dot dot dot. 1134 00:53:00,830 --> 00:53:04,350 >> Nii üldarusaadavat mõttes, mida need kaks päringuid näivad teed 1135 00:53:04,350 --> 00:53:05,840 reaalses maailmas mõttes pangandus? 1136 00:53:05,840 --> 00:53:07,440 >> Publik: teisaldamine kokkuhoid. 1137 00:53:07,440 --> 00:53:08,020 >> DAVID Malan: Täpselt. 1138 00:53:08,020 --> 00:53:10,470 Raha ülekandmisega ühelt moodustavad teise. 1139 00:53:10,470 --> 00:53:14,400 Ja see on veel üks näide, kus sa tõesti need kaks asja juhtuda 1140 00:53:14,400 --> 00:53:15,570 või ei juhtu. 1141 00:53:15,570 --> 00:53:18,880 Sa ei taha midagi saada Nende keskel ja potentsiaalselt segi ajama 1142 00:53:18,880 --> 00:53:22,220 matemaatika või segi ajama, kui palju raha sul on, või kui palju 1143 00:53:22,220 --> 00:53:23,170 raha pangas on. 1144 00:53:23,170 --> 00:53:26,890 Niisiis, mida on tõesti tore tehingud MySQL on, ja 1145 00:53:26,890 --> 00:53:30,160 andmebaaside üldisemalt on see, et nad ja arukad inimesed, kes olen rakendatud 1146 00:53:30,160 --> 00:53:33,670 need funktsioonid välja mõtlema, kuidas teha kindel, et nii need asjad juhtuda 1147 00:53:33,670 --> 00:53:35,120 või üldse mitte. 1148 00:53:35,120 --> 00:53:38,580 >> Ja kui sa oled tõesti soovivad teha veebileht, mis on kasutatud inimest 1149 00:53:38,580 --> 00:53:41,490 campus, inimesed reaalses maailmas, tehes midagi startup mõttes 1150 00:53:41,490 --> 00:53:43,300 need on liiki disaini otsuseid, mis 1151 00:53:43,300 --> 00:53:45,020 saanud kunagi nii oluline. 1152 00:53:45,020 --> 00:53:48,240 Muidu hakkate kaota andmeid, kaotavad kasutajate või halvimal juhul kui 1153 00:53:48,240 --> 00:53:51,800 oleme näinud siin, potentsiaalselt kaotada raha. 1154 00:53:51,800 --> 00:53:56,180 Nii et taas, veel sellel aastal probleem määrata seitse, samuti võib-olla mõnede 1155 00:53:56,180 --> 00:53:57,530 sa lõplik projekte. 1156 00:53:57,530 --> 00:54:01,870 >> Nii muudame selle pildi pidime hetk tagasi just veel üks viis. 1157 00:54:01,870 --> 00:54:04,070 Nii et lubage mul tegelikult näha, kas ma suudan - 1158 00:54:04,070 --> 00:54:06,030 nope, mis on kadunud. 1159 00:54:06,030 --> 00:54:06,690 Siin see on. 1160 00:54:06,690 --> 00:54:09,020 >> Nii et see on koht, kus me pooleli viimast korda. 1161 00:54:09,020 --> 00:54:12,390 Ja selgub, me Toss üks asi veel arvesse segatakse siin - 1162 00:54:12,390 --> 00:54:14,510 keeles nimetatakse JavaScript. 1163 00:54:14,510 --> 00:54:18,060 Nii JavaScript tegelikult sobib sellesse tükk - 1164 00:54:18,060 --> 00:54:22,086 ja ma ei ole päris jätta piisavalt ruumi, nii see ei ole nüüd skaala. 1165 00:54:22,086 --> 00:54:23,900 OK, see on tõesti hale. 1166 00:54:23,900 --> 00:54:27,075 OK, nii see on JavaScript. 1167 00:54:27,075 --> 00:54:27,340 Hea küll. 1168 00:54:27,340 --> 00:54:28,760 Ma tõesti seda teha karuteene. 1169 00:54:28,760 --> 00:54:29,390 Hea küll. 1170 00:54:29,390 --> 00:54:34,790 >> Nii JavaScript on teine ​​programmeerimine keel ja meie viimane, kui see aitab 1171 00:54:34,790 --> 00:54:37,770 kinnitada, et seal ei ole palju rohkem on tuletõrjehüdrandid siin. 1172 00:54:37,770 --> 00:54:41,100 Nii JavaScript on ka tõlgendada keel, mis tähendab, et sa ei 1173 00:54:41,100 --> 00:54:42,670 kompileerida see nulli ja ones. 1174 00:54:42,670 --> 00:54:43,690 Sa lihtsalt käivitada. 1175 00:54:43,690 --> 00:54:47,680 Aga mis on põhimõtteliselt erinev JavaScript tavaliselt on, et sa 1176 00:54:47,680 --> 00:54:49,815 ärge seda oma veebiserver. 1177 00:54:49,815 --> 00:54:52,570 See ei saa toimuda Seade iseenesest. 1178 00:54:52,570 --> 00:54:57,490 Pigem ta saab alla laadida kasutaja poolt HTTP selaimiinsa - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox, mis iganes - 1180 00:55:00,260 --> 00:55:03,860 ja see on brauserit, mis täidab käesoleva eriti programmeerimiskeelt. 1181 00:55:03,860 --> 00:55:08,000 >> Nii, et oleks selge, PHP on seni olnud täidetakse kas käsurealt 1182 00:55:08,000 --> 00:55:11,290 meie must ja valge aknas serveris nagu seadme arvuti 1183 00:55:11,290 --> 00:55:14,490 nagu seade, või see on olnud sooritatud veebiserver 1184 00:55:14,490 --> 00:55:15,860 töötab arvuti. 1185 00:55:15,860 --> 00:55:20,490 Aga teema on see, et PHP seni on teostatud server-side, nii 1186 00:55:20,490 --> 00:55:24,820 kasutaja ja kasutaja brauseri kunagi näeb rida PHP kood. 1187 00:55:24,820 --> 00:55:28,530 >> Tegelikult, kui te kunagi avada brauseri veebisaidi või teise ja sa 1188 00:55:28,530 --> 00:55:32,400 tegelikult näha PHP kood oma aknas keegi on silmamunad. 1189 00:55:32,400 --> 00:55:34,950 Sest see ei ole mõeldud selleks, et olla saadetakse brauser otse. 1190 00:55:34,950 --> 00:55:38,150 See peaks olema täidetud ja välja millekski nagu HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Aga JavaScript on sisuliselt vastupidist. 1192 00:55:40,120 --> 00:55:44,350 See tähendas, et sõidetakse tavaliselt sees on kasutaja brauseri aken. 1193 00:55:44,350 --> 00:55:46,840 Ja milliseid veebisaite kasutada JavaScript siis nendel päevadel? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Nagu sõna otseses mõttes iga populaarne veebilehel. 1196 00:55:52,180 --> 00:55:55,430 Iga veebileht, et te ilmselt kasutada iga päev kasutada JavaScripti 1197 00:55:55,430 --> 00:55:57,330 Lihtsaim ja isegi seksikaim funktsioone. 1198 00:55:57,330 --> 00:55:59,800 >> Seega midagi nagu Facebook Jututuba kui te kasutate seda. 1199 00:55:59,800 --> 00:56:01,040 Kuidas see tegelikult toimib? 1200 00:56:01,040 --> 00:56:05,090 Noh siiani on kõik asjad oleme teha HTML ja PHP eeldab, et 1201 00:56:05,090 --> 00:56:08,750 sa tõmba URL ja vajutad Enter, ja näed mõned HTML-sisu. 1202 00:56:08,750 --> 00:56:11,970 Ja klõpsate linki, mis muudab URL, muutub leht ja uuestilaadimise 1203 00:56:11,970 --> 00:56:12,740 mõned uue sisu. 1204 00:56:12,740 --> 00:56:16,340 Klõpsake teise URL või esitama vormi, siis saada pühitakse teisele lehele ja 1205 00:56:16,340 --> 00:56:17,420 näete mõned uue sisu. 1206 00:56:17,420 --> 00:56:22,710 >> Aga kasutades midagi Facebook Chat, või Gchat või Google Maps, harva 1207 00:56:22,710 --> 00:56:27,350 Mis terve lehekülg värskendada, nii et näete valge ekraan hetkeks ja 1208 00:56:27,350 --> 00:56:28,470 siis uus sisu. 1209 00:56:28,470 --> 00:56:32,610 Pigem veebilehti täna on dünaamiliselt saada ajakohastatud uuesti ja 1210 00:56:32,610 --> 00:56:35,570 ja jälle kõik omamoodi ja kulisside taga. 1211 00:56:35,570 --> 00:56:38,560 Ja selgub, et kui sa minna midagi nagu Facebook või Gchat, 1212 00:56:38,560 --> 00:56:43,050 või Gmaili ja lehel uuendused automaatselt ilma pealelaadimisel 1213 00:56:43,050 --> 00:56:47,630 kogu ekraani, mis juhtus on see, et Teie brauser on teinud omamoodi salaja 1214 00:56:47,630 --> 00:56:49,410 täiendav HTTP taotlusi - 1215 00:56:49,410 --> 00:56:52,740 mitte kogu veebilehti, kuid ainult vähe tükkideks andmed, nagu 1216 00:56:52,740 --> 00:56:55,740 instant sõnum, et teie sõber lihtsalt saadetakse teile või staatuse värskendus 1217 00:56:55,740 --> 00:56:58,210 keegi lihtsalt saata teile või piiksuma et keegi lihtsalt saata. 1218 00:56:58,210 --> 00:57:02,120 See on lihtsalt tegemist vähe taotlusi andmed ja seejärel kasutades JavaScript, see 1219 00:57:02,120 --> 00:57:06,370 programmeerimise keel, seda muuta veebileht välja näeb ilma 1220 00:57:06,370 --> 00:57:09,860 server aidata, ilma et server on need HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Nii lühike, JavaScript saab kasutada siis mitte ainult tooma uued andmed 1222 00:57:13,820 --> 00:57:16,750 server ümberlaadimata kogu leht või plangil. 1223 00:57:16,750 --> 00:57:20,060 Samuti võib kasutada, et muuta nn DOM - 1224 00:57:20,060 --> 00:57:21,520 Document Object Model - 1225 00:57:21,520 --> 00:57:24,620 mis on lihtsalt fancy viis ütles puu HTML 1226 00:57:24,620 --> 00:57:26,220 et me nägime viimast korda. 1227 00:57:26,220 --> 00:57:31,640 >> Nii, et rahustada JavaScript on süntaktiliselt nii sarnane C samuti. 1228 00:57:31,640 --> 00:57:32,820 Ei ole põhifunktsioon. 1229 00:57:32,820 --> 00:57:35,430 Sa lihtsalt hakake kood ja see saab täidetud, või 1230 00:57:35,430 --> 00:57:36,900 tõlgendada enam korralikult. 1231 00:57:36,900 --> 00:57:38,660 Tingimused näeb välja selline. 1232 00:57:38,660 --> 00:57:41,230 Ei erine C või PHP, et asi. 1233 00:57:41,230 --> 00:57:43,890 Loogiline väljendeid või-ed kokku näeb välja selline. 1234 00:57:43,890 --> 00:57:45,590 Anded koos välja nägema selline. 1235 00:57:45,590 --> 00:57:47,750 >> Lülitid näeb välja selline. 1236 00:57:47,750 --> 00:57:49,440 Sest ring näeb välja selline. 1237 00:57:49,440 --> 00:57:51,060 Kuigi ring näeb välja selline. 1238 00:57:51,060 --> 00:57:53,316 Kas samas silmuseid näeb välja selline. 1239 00:57:53,316 --> 00:57:54,780 >> See on uus. 1240 00:57:54,780 --> 00:57:58,753 Nii JavaScript ei ole foreach ehitada per se, kuid see ehitada 1241 00:57:58,753 --> 00:58:03,870 muutuja i massiivi ja ma selles juhul muutub indeksi väärtus. 1242 00:58:03,870 --> 00:58:06,880 Nii et see on natuke erinev foreach, kuigi uued versioonid 1243 00:58:06,880 --> 00:58:10,280 JavaScript tulevad välja kogu aeg, nii et isegi need keele funktsioonid 1244 00:58:10,280 --> 00:58:10,880 arenevad. 1245 00:58:10,880 --> 00:58:16,920 >> Ja kõrvale JavaScript nendel päevadel saab kasutada ka serveris nagu 1246 00:58:16,920 --> 00:58:19,920 PHP abil raames kutsutakse Node.js. 1247 00:58:19,920 --> 00:58:24,670 Üks CS50 on TF, Kevin, on viinud seminar Node.js see on kättesaadav 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Nii et kui sa oled uudishimulik, tean, et sa saab kasutada seda serveripoolne nagu 1250 00:58:28,830 --> 00:58:33,870 hästi, kuid see on üsna hiljutine suundumus, kuid võimas seda. 1251 00:58:33,870 --> 00:58:35,270 >> See on veidi erinev. 1252 00:58:35,270 --> 00:58:37,910 See on massiiv JavaScript. 1253 00:58:37,910 --> 00:58:40,115 Ja mis lööb sind erinev versus C või PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Siin on mõned kiired lood saame öelda siin. 1256 00:58:47,420 --> 00:58:49,367 Mis puudu versus PHP? 1257 00:58:49,367 --> 00:58:51,652 >> Publik: [kuuldamatu]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID Malan: Jah? 1259 00:58:52,110 --> 00:58:53,322 Vabandame, ütlen veel kord? 1260 00:58:53,322 --> 00:58:54,740 >> Publik: Ei kuulutatakse tüüpi muutuja. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID Malan: Me ei kuulutatakse tüüpi muutuja. 1262 00:58:56,390 --> 00:58:59,630 Nii tegelikult üsna nagu PHP, me ei ole täpsustatakse tüüpi muutuja. 1263 00:58:59,630 --> 00:59:02,670 Pigem oleme rohkem üldmõistena öeldes var muutuja. 1264 00:59:02,670 --> 00:59:06,690 Meil ei ole PHP ebameeldivalt dollari märk, mis samas tüütu 1265 00:59:06,690 --> 00:59:09,160 tüüp, ei tee veel selge, et midagi on muutuv. 1266 00:59:09,160 --> 00:59:11,830 Arvestades siin, me oleme omamoodi tagasi C lähenemine just kutsudes 1267 00:59:11,830 --> 00:59:14,500 muutuja nime me tahame anda seda, nagu numbrid. 1268 00:59:14,500 --> 00:59:17,170 Ja samuti nagu PHP, meil Nurksulgudes eest 1269 00:59:17,170 --> 00:59:19,170 väärtused sees, et massiivi. 1270 00:59:19,170 --> 00:59:22,490 >> Nii muutujad JavaScript ka tunduda see. 1271 00:59:22,490 --> 00:59:26,900 Teade siin see on string kutsus s, aga samamoodi on meil määratlemata 1272 00:59:26,900 --> 00:59:28,750 et see on string. 1273 00:59:28,750 --> 00:59:33,160 Siin aga on funktsioon, mis ei ole olemas täpselt samamoodi PHP, 1274 00:59:33,160 --> 00:59:34,460 kuid natuke sarnaselt. 1275 00:59:34,460 --> 00:59:36,530 See on objekt JavaScript. 1276 00:59:36,530 --> 00:59:42,110 Ja objektid on omamoodi Šveitsi armee Nuga on andmestruktuur, mida 1277 00:59:42,110 --> 00:59:43,900 ei kasuta neid mistahes mitmeid asju. 1278 00:59:43,900 --> 00:59:46,860 >> Siin näiteks, me kuulutab muutuja nimega tsiteerida. 1279 00:59:46,860 --> 00:59:49,110 Tüüpi muutuja on objekt. 1280 00:59:49,110 --> 00:59:53,550 Sa ei mõtle seda kui C struct et on võtmed ja väärtused. 1281 00:59:53,550 --> 00:59:55,250 Sümbol on võti. 1282 00:59:55,250 --> 00:59:57,350 FB on väärtus, ilmselt aktsia sümbol. 1283 00:59:57,350 --> 00:59:57,930 Koma. 1284 00:59:57,930 --> 01:00:02,180 Hind on veel üks oluline ja selle väärtus on ilmselt ujukoma või 1285 01:00:02,180 --> 01:00:06,510 number üldisemalt JavaScript on $ 49,26. 1286 01:00:06,510 --> 01:00:09,030 >> Nii PHP ei ole - 1287 01:00:09,030 --> 01:00:12,980 me ei ole näinud PHP objektid üsna meeldib see, kuid me ei vaata analoog, 1288 01:00:12,980 --> 01:00:14,093 mis oli mis? 1289 01:00:14,093 --> 01:00:14,980 >> Publik: [kuuldamatu]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID Malan: assotsiatiivne massiivid. 1291 01:00:16,110 --> 01:00:19,990 Nii et PHP on assotsiatiivne massiivid mille süntaks on kunagi veidi nii 1292 01:00:19,990 --> 01:00:20,370 erinev - 1293 01:00:20,370 --> 01:00:21,780 nägime nurksulgudes. 1294 01:00:21,780 --> 01:00:23,860 Nägime imelik nooled sümbolid. 1295 01:00:23,860 --> 01:00:27,330 JavaScript on esemeid, kuid see on enamasti semantilist ja 1296 01:00:27,330 --> 01:00:29,260 erinevate sünonüümina nüüd. 1297 01:00:29,260 --> 01:00:35,060 Kuid nagu kõrvale, PHP on ka objekte, nii et Java ja muude 1298 01:00:35,060 --> 01:00:37,810 keeltes on objektide objektorienteeritud programmeerimine. 1299 01:00:37,810 --> 01:00:40,440 Aga me kasutame neid ainult andmetüüpe nüüd. 1300 01:00:40,440 --> 01:00:42,170 Objektid ja assotsiatiivne massiivid. 1301 01:00:42,170 --> 01:00:44,140 >> Seda võiks teha natuke selgem. 1302 01:00:44,140 --> 01:00:45,890 Siin miks ese on kasulik. 1303 01:00:45,890 --> 01:00:48,760 Kui soovite deklareerida üliõpilane, nagu Zamyla, saame tegelikult 1304 01:00:48,760 --> 01:00:52,630 kapseldada niiöelda seestpoolt, et objekti kasutades looksulgudes nagu 1305 01:00:52,630 --> 01:00:55,060 enne terve hunnik võtmeid ja väärtused siin. 1306 01:00:55,060 --> 01:00:59,150 Meil on ID, maja, ja nime Zamyla, järgneb semikoolon kui 1307 01:00:59,150 --> 01:01:00,690 tavaline lõpus. 1308 01:01:00,690 --> 01:01:04,840 >> Alla ka siin, see on veidi erinevad, kuid ka väga võimas 1309 01:01:04,840 --> 01:01:05,690 nendel päevadel. 1310 01:01:05,690 --> 01:01:08,780 Siin on massiiv, ja ma tean, et kuna seal nurksulg üles 1311 01:01:08,780 --> 01:01:11,090 top ja nurksulg allosas. 1312 01:01:11,090 --> 01:01:16,050 Ja see on massiiv, milliseid andmeid kirjuta ilmselt JavaScript? 1313 01:01:16,050 --> 01:01:21,260 See on rida tundub nagu kolm objekti. 1314 01:01:21,260 --> 01:01:24,580 Ja ma tean, et see objekt ainult sest lokkis traksid. 1315 01:01:24,580 --> 01:01:28,760 Ja teate seal on avatud lokkis traksidega, mõned asjad, close lokkis traksidega, koma 1316 01:01:28,760 --> 01:01:31,180 siis veel mõned, koma ja siis veel. 1317 01:01:31,180 --> 01:01:33,800 Nii et kolm argumenti eraldatud kaks koma. 1318 01:01:33,800 --> 01:01:36,810 >> Nii et see on massiiv kolm objekti. 1319 01:01:36,810 --> 01:01:39,940 Ja kõik need objektid tundub olevat õpilane või töötaja mõnes 1320 01:01:39,940 --> 01:01:42,370 sort, iga ID, maja ja nimi. 1321 01:01:42,370 --> 01:01:45,060 Aga ma olen nimetanud seda midagi nimega JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript Object märke. 1323 01:01:47,450 --> 01:01:52,060 Ja see on andmed kujul, mis tegelikult on nii väga populaarne ja 1324 01:01:52,060 --> 01:01:55,100 moes nendel päevadel, kui sa kirjutad rakendus, mis kasutab Facebook 1325 01:01:55,100 --> 01:01:59,150 API, Twitter API, tegelikult peaaegu iga API seal nendel päevadel, 1326 01:01:59,150 --> 01:02:02,820 sealhulgas mõned CS50 enda, andmed saad tagasi ei 1327 01:02:02,820 --> 01:02:04,720 vana kooli CSV formaadis. 1328 01:02:04,720 --> 01:02:06,780 >> Sest tagasivõtmine et CSV on super lihtne. 1329 01:02:06,780 --> 01:02:10,230 See on lihtsalt veerud on eraldatud komadega. 1330 01:02:10,230 --> 01:02:13,190 JSON andmeid annab rohkem metaandmed. 1331 01:02:13,190 --> 01:02:17,800 See seostab oluline iga väärtus nii nad ei pea lihtsalt eeldada, et 1332 01:02:17,800 --> 01:02:22,460 zeroth veerus on üks väärtus, veerg üks on teise veeru kaks on veel. 1333 01:02:22,460 --> 01:02:26,790 Kõik on JSON objekti siin on omamoodi ise kirjeldab, sest iga 1334 01:02:26,790 --> 01:02:30,940 üks nimed selles failis on sõna otseses mõttes nime ees seda 1335 01:02:30,940 --> 01:02:32,510 jutumärkide. 1336 01:02:32,510 --> 01:02:34,950 >> Võtame pilk mõned näited siin. 1337 01:02:34,950 --> 01:02:36,800 Lubage mul minna seade. 1338 01:02:36,800 --> 01:02:41,000 Ja lubage mul minna oma vhost Kataloog avalikuks. 1339 01:02:41,000 --> 01:02:45,590 Ja lubage mul minna JavaScript kataloog. 1340 01:02:45,590 --> 01:02:49,610 Ja olgem minna ja avada dom-0.html, kus DOM tähendab lihtsalt 1341 01:02:49,610 --> 01:02:51,010 Document Object Model. 1342 01:02:51,010 --> 01:02:53,490 See on puust asju, mis Mainisin. 1343 01:02:53,490 --> 01:02:54,950 >> Ja las ma välja järgmise. 1344 01:02:54,950 --> 01:02:57,720 Siin on veebileht, mille keha on üsna lihtne. 1345 01:02:57,720 --> 01:03:00,170 Nii siin all, teate mul vormi. 1346 01:03:00,170 --> 01:03:01,500 Me oleme näinud neid varem. 1347 01:03:01,500 --> 01:03:07,600 Sellel on kaks sisendit, millest üks on ID nime, millest üks on tüüpi 1348 01:03:07,600 --> 01:03:09,830 esitada, ning esimene üks tüüp on tekst. 1349 01:03:09,830 --> 01:03:11,900 Nii see tegelikult kõlab päris lihtne. 1350 01:03:11,900 --> 01:03:13,090 >> Lähme siit. 1351 01:03:13,090 --> 01:03:15,390 Lähme tagasi sellele lehele siin. 1352 01:03:15,390 --> 01:03:21,030 Läheme localhost ja mine Meie JavaScript kataloog ja minna 1353 01:03:21,030 --> 01:03:24,640 dom-0, ja siin on meil seda vormi. 1354 01:03:24,640 --> 01:03:26,550 Nii et ilmselt kõik see leht teeb. 1355 01:03:26,550 --> 01:03:28,740 See on nimi valdkonnas Submit nuppu. 1356 01:03:28,740 --> 01:03:30,340 Aga ma ei kavatse kasutada PHP siin. 1357 01:03:30,340 --> 01:03:34,310 Ma teen kõike kliendi poolel niiöelda JavaScript järgmiselt. 1358 01:03:34,310 --> 01:03:39,100 >> Pange tähele, et ma olen tõepoolest antud nimetus valdkonnas selle sisendi ainulaadne 1359 01:03:39,100 --> 01:03:42,350 tunnus, mis tegelikult päästa mind mõnda aega hetkel. 1360 01:03:42,350 --> 01:03:45,480 Ja teate Olen tutvustas teise tag peas minu veebilehele 1361 01:03:45,480 --> 01:03:46,565  tag. 1362 01:03:46,565 --> 01:03:50,120 >> Nii et see on selles mõttes, et JavaScript on kliendipoolse programmeerimiskeelt. 1363 01:03:50,120 --> 01:03:55,020 Sellisel juhul nagu CSS, ma olen panna seda otse sees minu HTML. 1364 01:03:55,020 --> 01:03:58,810 Kuid pange Olen deklareeritud funktsioon mis näeb välja natuke nagu PHP 1365 01:03:58,810 --> 01:04:01,530 lauseehituslikult, kuid see on tegelikult JavaScript, sest jällegi, see on 1366 01:04:01,530 --> 01:04:03,920 kliendipoolne brauser. 1367 01:04:03,920 --> 01:04:07,590 Ja võtke ära arvata, mida see läheb teha, kuigi mõned süntaks 1368 01:04:07,590 --> 01:04:09,338 siin on uus. 1369 01:04:09,338 --> 01:04:11,760 >> Publik: Ütle tere kes. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID Malan: See saab öelda tere sellele, kes külastab seda lehte. 1371 01:04:14,020 --> 01:04:15,120 Niisiis, kuidas? 1372 01:04:15,120 --> 01:04:18,070 >> Nii teate, selgub JavaScript seal on alert () funktsiooni. 1373 01:04:18,070 --> 01:04:22,840 See on väga omamoodi kurb funktsiooni tõesti lihtsalt kipub tüütama kasutajatele. 1374 01:04:22,840 --> 01:04:25,440 See ei ole see, mida peaks tegelikult kasutama tavaliselt, kuid see on kiire ja räpane 1375 01:04:25,440 --> 01:04:27,710 viis omamoodi trükkimise midagi et graafiline kasutajaliides 1376 01:04:27,710 --> 01:04:29,180 liides, nagu brauseris. 1377 01:04:29,180 --> 01:04:31,400 Pane tähele, mida ma pean string ülakoma. 1378 01:04:31,400 --> 01:04:36,010 Selgub, et erinevalt C, JavaScript võib tegelikult olla te kasutate ühe 1379 01:04:36,010 --> 01:04:38,730 hinnapakkumisi, ja ausalt öeldes on see lihtsalt selline stiililise konventsiooni vahel 1380 01:04:38,730 --> 01:04:41,180 JavaScript programmeerijad kasutada ülakoma. 1381 01:04:41,180 --> 01:04:43,750 PHP, kui neil tegelikult on veidi erinev tähendus. 1382 01:04:43,750 --> 01:04:45,810 Aga nüüd, lihtsalt tean, et see on ainus põhjus. 1383 01:04:45,810 --> 01:04:49,270 Konventsiooni JavaScript on sageli Kasutada ülakoma, kuid me ei kasuta 1384 01:04:49,270 --> 01:04:50,950 jutumärgid mõlemas kohas samuti. 1385 01:04:50,950 --> 01:04:52,610 >> Nii et see on huvitav. 1386 01:04:52,610 --> 01:04:56,430 Meenuta viimast korda, et meil oli see pilt ekraanil, mis juhtis puu 1387 01:04:56,430 --> 01:04:59,720 kus sa pidid HTML sõlm ja tippsõlme ja keha sõlme, 1388 01:04:59,720 --> 01:05:00,800 ja siis mingi teksti. 1389 01:05:00,800 --> 01:05:04,700 Aga seal oli üks eriline sõlm väga top, et ma helistasin dokument. 1390 01:05:04,700 --> 01:05:08,260 Noh, tuli välja JavaScript, iga kord, kui sa kirjutad programmi JavaScript 1391 01:05:08,260 --> 01:05:11,040 brauser, teil on juurdepääs eriline globaalse muutuja. 1392 01:05:11,040 --> 01:05:14,130 Sarnase sisuga PHP superglobals, see üks on kutsutud 1393 01:05:14,130 --> 01:05:16,050 väiketähti dokument. 1394 01:05:16,050 --> 01:05:21,480 >> See on nagu struct, kuid see struct Samuti on funktsioonide sees on. 1395 01:05:21,480 --> 01:05:23,790 Nii C struct lihtsalt on andmed tavaliselt. 1396 01:05:23,790 --> 01:05:29,060 Aga JavaScript objekt, sest see Tehniliselt on ka funktsioone, 1397 01:05:29,060 --> 01:05:31,830 muidu tuntud meetoditega sees on. 1398 01:05:31,830 --> 01:05:35,750 Ja võite helistada funktsioon sees Selle objekti sõnalt teeb oma 1399 01:05:35,750 --> 01:05:39,610 nimi, punkt, ja siis nimi funktsioon, või jälle meetod. 1400 01:05:39,610 --> 01:05:41,160 See on lihtsalt sünonüüm, tõesti. 1401 01:05:41,160 --> 01:05:42,450 >> Ja mida see funktsioon teeb? 1402 01:05:42,450 --> 01:05:43,840 Võite omamoodi arvata oma nime. 1403 01:05:43,840 --> 01:05:45,590 Hangi elemendi ID. 1404 01:05:45,590 --> 01:05:50,040 Nii see läheb otsima veebilehe otsida, et puu, otsin 1405 01:05:50,040 --> 01:05:55,210 sõltumata sõlme, AKA element, on unikaalse ID quote lõppeb nimi. 1406 01:05:55,210 --> 01:05:56,560 Ja mis ma nüüd teen? 1407 01:05:56,560 --> 01:06:00,350 Ma lähen, et saada raha sees et sõlme puust ja ma lähen 1408 01:06:00,350 --> 01:06:02,580 kuidagi tere öelda, et nimi. 1409 01:06:02,580 --> 01:06:05,360 >> Nii et arvan, kuigi me pole seda näinud veel, mida teha, pluss 1410 01:06:05,360 --> 01:06:07,396 sümbolid tähendavad siin ja siin ilmselt? 1411 01:06:07,396 --> 01:06:08,230 >> Publik: CONCATENATE. 1412 01:06:08,230 --> 01:06:09,220 >> DAVID Malan: CONCATENATE. 1413 01:06:09,220 --> 01:06:11,290 Just, ja need on vaid omamoodi disaini otsuseid 1414 01:06:11,290 --> 01:06:12,280 inimesed tegid aastat tagasi. 1415 01:06:12,280 --> 01:06:15,190 PHP, sa concatenate asju dots. 1416 01:06:15,190 --> 01:06:18,800 C, kui hüpata läbi mitme kõvadele ja Kõnefunktsioonid nagu strCopyDatabaseOK () või 1417 01:06:18,800 --> 01:06:20,600 strcat () või muid selliseid funktsioone. 1418 01:06:20,600 --> 01:06:22,060 Aga JavaScript, kasutate plussid. 1419 01:06:22,060 --> 01:06:24,770 Nii et see on lihtsalt concatenating kolm stringid - 1420 01:06:24,770 --> 01:06:27,850 tere, nime ja seejärel hüüumärk. 1421 01:06:27,850 --> 01:06:30,390 >> Niisiis, millal ja miks on see funktsioon nimetatakse küll? 1422 01:06:30,390 --> 01:06:33,150 Noh, arvan, et alates HTML allosas. 1423 01:06:33,150 --> 01:06:35,810 Miks tervitama () nimega, või millal? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Ilmselt nii hästi ma võin öelda, on esitama, kui see vorm on esitatud, 1426 01:06:44,030 --> 01:06:47,200 Ma teen kõik, mis on sees need jutumärgid. 1427 01:06:47,200 --> 01:06:50,900 Ja just, ma lähen helistada tervitama () ja siis tagasi vale. 1428 01:06:50,900 --> 01:06:53,090 >> Noh, vaatame, mis net mõju on siin esimene. 1429 01:06:53,090 --> 01:06:58,290 Nii et lubage mul minna ja kirjuta , ütleme, Loren, Saada. 1430 01:06:58,290 --> 01:06:59,440 Tere Loren. 1431 01:06:59,440 --> 01:07:02,990 Vaatame, kui võib-olla see oli lihtsalt õnnelik rakendamist. 1432 01:07:02,990 --> 01:07:03,200 Nope. 1433 01:07:03,200 --> 01:07:05,990 Nii see on kirjutades läbi mis iganes nime ma tegelikult sinna pannakse. 1434 01:07:05,990 --> 01:07:07,970 >> Aga teate, mis ei muuda. 1435 01:07:07,970 --> 01:07:10,360 URL on ikka dom-0.html. 1436 01:07:10,360 --> 01:07:11,820 Pole register.php. 1437 01:07:11,820 --> 01:07:13,110 Ei ole teist faili. 1438 01:07:13,110 --> 01:07:14,930 Teie ise ei atribuut. 1439 01:07:14,930 --> 01:07:19,720 Mis siis on see tagasi false arvatavasti teed? 1440 01:07:19,720 --> 01:07:23,660 Miks ma kutsudes tervitama () ja seejärel tagasisaatmisel vale ilmselt? 1441 01:07:23,660 --> 01:07:26,420 Mis tavaliselt juhtub, kui klõpsate Esitada vastavalt vormile, et isegi meil 1442 01:07:26,420 --> 01:07:27,854 näinud viimase nädala jooksul? 1443 01:07:27,854 --> 01:07:29,900 >> Publik: [kuuldamatu]. 1444 01:07:29,900 --> 01:07:30,860 >> DAVID Malan: See läheb kuhugi, eks? 1445 01:07:30,860 --> 01:07:32,720 See läheb mõne sihtkoha URL. 1446 01:07:32,720 --> 01:07:34,120 Aga ma ei taha, et see juhtuks siin. 1447 01:07:34,120 --> 01:07:37,620 Ma tahan, et mu veebilehe täiesti dünaamiline nagu Gmail, kus, kui sa oled 1448 01:07:37,620 --> 01:07:38,650 seal, siis seal viibida. 1449 01:07:38,650 --> 01:07:42,900 URL ei muutu nii, et näitab terve lehekülg uuesti laadida. 1450 01:07:42,900 --> 01:07:46,680 Pigem, ma tahan midagi muuta nagu printimisest midagi 1451 01:07:46,680 --> 01:07:48,320 siin ekraanil. 1452 01:07:48,320 --> 01:07:49,630 >> Noh las ma puhastan selle üles natuke. 1453 01:07:49,630 --> 01:07:55,370 Lubage mul avada ei dom-0, kuid Lubage mul avada dom-2. 1454 01:07:55,370 --> 01:07:57,350 Lihtsalt, et sa oled näinud mõned süntaks siin. 1455 01:07:57,350 --> 01:08:02,080 >> Selgub, et see, mida me Kas kasutab toores JavaScript. 1456 01:08:02,080 --> 01:08:04,420 Nii et see on tõesti keel JavaScript. 1457 01:08:04,420 --> 01:08:07,340 Mõned võite teada raamatukogu kutsus jQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Nii jQuery ei ole sama asi nagu JavaScript. 1459 01:08:09,980 --> 01:08:14,110 See on lihtsalt üks raamatukogu, mis tõesti nutikas kutt kirjutas ja populariseeritud selline 1460 01:08:14,110 --> 01:08:18,100 et peaaegu kõik maailmas praegu kasutab jQuery, kasutades JavaScript. 1461 01:08:18,100 --> 01:08:20,890 Ja esimesel pilgul, ausalt, see tundub veidi segasena. 1462 01:08:20,890 --> 01:08:24,990 Aga sa leiad, eriti kui sa lähed seal oma lõpliku projekti web 1463 01:08:24,990 --> 01:08:29,029 arengut, siis leiad, et see puhastab asju ja säästab üsna 1464 01:08:29,029 --> 01:08:30,229 paar rida koodi. 1465 01:08:30,229 --> 01:08:33,189 >> Niisiis olgem lihtsalt pilk kuidas see vorm töötab. 1466 01:08:33,189 --> 01:08:35,664 Pane tähele, mida ma eemaldada ilmselt minu HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Pole kohta esitama käitleja nii rääkida. 1469 01:08:40,630 --> 01:08:41,470 Ei ole atribuut. 1470 01:08:41,470 --> 01:08:43,359 Sest sa tead, mida Ma tegelikult ei meeldi? 1471 01:08:43,359 --> 01:08:45,640 Tundsin olime kuuluvate vanade harjumuste seal. 1472 01:08:45,640 --> 01:08:49,340 Just nagu ta oli hakanud tundma lohakas segunevad nii CSS 1473 01:08:49,340 --> 01:08:52,149 HTML, sest sa oled selline viskamine erinevates keeltes üle kogu 1474 01:08:52,149 --> 01:08:56,180 koht, samamoodi ei see enesetunne nagu halb tee minna, kui 1475 01:08:56,180 --> 01:09:01,069 Panen JavaScripti koodi sees minu HTML asemel faktooring välja. 1476 01:09:01,069 --> 01:09:02,279 >> Nii et see õppetund. 1477 01:09:02,279 --> 01:09:05,080 Dom-2.html, ma faktooring välja. 1478 01:09:05,080 --> 01:09:07,399 Ja ma teen asju veidi erinevalt. 1479 01:09:07,399 --> 01:09:09,630 Sest nüüd ma lähen laine mu käed , mida see tõepoolest 1480 01:09:09,630 --> 01:09:10,590 all kapuuts. 1481 01:09:10,590 --> 01:09:14,210 Aga just nüüd eeldada, et esimene koodirida selles raamatukogu 1482 01:09:14,210 --> 01:09:18,170 nimetatakse jQuery tähendab lihtsalt, kui dokument on valmis, tehke järgmist. 1483 01:09:18,170 --> 01:09:20,080 >> Kuna veebilehti võib võtta aega laadida. 1484 01:09:20,080 --> 01:09:23,029 Sa võid olla aeglane internet ühendus, ja see võib olla ketramine 1485 01:09:23,029 --> 01:09:25,290 ja ketramine, ja lõpuks see on laetud. 1486 01:09:25,290 --> 01:09:29,060 See koodirida lihtsalt ütleb oodake Kogu leht on valmis, dokument 1487 01:09:29,060 --> 01:09:31,189 on valmis, enne täidesaatva see kood. 1488 01:09:31,189 --> 01:09:34,390 >> Ja nüüd teate, et see on ilmselt kõige esimene kasulik 1489 01:09:34,390 --> 01:09:36,189 ära võtta jQuery. 1490 01:09:36,189 --> 01:09:42,140 See joon siin on väga sarnase sisuga sellele palju pikem rida siin. 1491 01:09:42,140 --> 01:09:46,920 Arvestades, et tooraine JavaScript koodi, seal olemas dokument globaalse objekti, 1492 01:09:46,920 --> 01:09:50,460 on funktsioon nimega getElementById () inimesed, kes kirjutas 1493 01:09:50,460 --> 01:09:55,720 jQuery lihtsustatud, et lihtsalt öelda, dollari märk, ja siis sees 1494 01:09:55,720 --> 01:10:00,250 Sulgudes panna kaks hinnapakkumisi ja seejärel pane hash sümbol, millele järgneb 1495 01:10:00,250 --> 01:10:02,250 unikaalne ID, mida soovite haarata. 1496 01:10:02,250 --> 01:10:06,170 Nii et see on võrdne document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Vahepeal. Esitama tähendab lihtsalt edasi esitamine mis tahes vormis sa oled 1498 01:10:11,090 --> 01:10:14,240 viidates vasakul, minge minna ja täita see. 1499 01:10:14,240 --> 01:10:16,600 Aga see on nüüd uudishimu ka. 1500 01:10:16,600 --> 01:10:19,560 Mis on imelik, mida Olen siin esile? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Mitte ainult see on omamoodi süntaktiliselt uus, seal on ka midagi puudu. 1503 01:10:28,594 --> 01:10:29,558 >> Publik: See on lihtsalt kutsutud funktsioon? 1504 01:10:29,558 --> 01:10:31,970 See ei ole nn hoiatus? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID Malan: Jah. 1506 01:10:32,440 --> 01:10:35,450 Noh, nii alert () ei tööta siin, kui aus olla. 1507 01:10:35,450 --> 01:10:39,520 Aga seal ei mainita Nime, nagu te teate, foo või 1508 01:10:39,520 --> 01:10:40,980 midagi siin. 1509 01:10:40,980 --> 01:10:43,830 Ja tõepoolest, see on üks funktsioone JavaScript et on üsna 1510 01:10:43,830 --> 01:10:45,370 võimas, kuid ka üsna uus. 1511 01:10:45,370 --> 01:10:47,460 Ja PHP tegelikult on see samuti. 1512 01:10:47,460 --> 01:10:49,500 >> Lubage mul minna ja teha midagi päris kiire. 1513 01:10:49,500 --> 01:10:52,030 Lubage mul minna ja panna see siia. 1514 01:10:52,030 --> 01:10:52,600 Lubage mul seda teha. 1515 01:10:52,600 --> 01:10:53,690 Funktsiooni. 1516 01:10:53,690 --> 01:10:56,455 Kutsume seda handler (). 1517 01:10:56,455 --> 01:10:58,290 Handler funktsioon nii rääkida. 1518 01:10:58,290 --> 01:11:00,110 Midagi, mis käsitleb teatud tööd. 1519 01:11:00,110 --> 01:11:02,700 Lubage mul koristada minu taandus. 1520 01:11:02,700 --> 01:11:04,380 Ja pane see siia. 1521 01:11:04,380 --> 01:11:06,090 Ja pane see siia. 1522 01:11:06,090 --> 01:11:06,470 Yep. 1523 01:11:06,470 --> 01:11:07,060 OK. 1524 01:11:07,060 --> 01:11:10,300 >> Nüüd mul on funktsioon nimega handler (), et ma tõesti ei tea, 1525 01:11:10,300 --> 01:11:10,890 mida see veel. 1526 01:11:10,890 --> 01:11:12,710 See lihtsalt on veel see värk. 1527 01:11:12,710 --> 01:11:13,900 Ups. 1528 01:11:13,900 --> 01:11:15,820 Võttis liiga palju. 1529 01:11:15,820 --> 01:11:18,490 Teeme seda. 1530 01:11:18,490 --> 01:11:18,990 Hea küll. 1531 01:11:18,990 --> 01:11:20,240 Vabandust. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Hea küll. 1534 01:11:23,690 --> 01:11:24,720 Lubage mul seda teha. 1535 01:11:24,720 --> 01:11:25,020 OK. 1536 01:11:25,020 --> 01:11:27,040 See ilus ja sirge edastada nüüd. 1537 01:11:27,040 --> 01:11:29,090 Lubage mul seda teha. 1538 01:11:29,090 --> 01:11:29,860 Tehke seda. 1539 01:11:29,860 --> 01:11:30,950 Ja OK. 1540 01:11:30,950 --> 01:11:33,080 Nüüd, paneme selle siia. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Enam programmeerimine lennult. 1543 01:11:37,270 --> 01:11:37,900 OK. 1544 01:11:37,900 --> 01:11:40,000 >> Nüüd lähme tagasi kui lugu algas. 1545 01:11:40,000 --> 01:11:43,530 Varem ma ütlesin, et see joon siin tähendab, et kui dokument on valmis, mine 1546 01:11:43,530 --> 01:11:44,380 minna ja seda teha. 1547 01:11:44,380 --> 01:11:45,660 Mida ma tahan teha? 1548 01:11:45,660 --> 01:11:49,070 Noh täpsemalt, ma tahan minna edasi ja tehke järgmist. 1549 01:11:49,070 --> 01:11:53,700 Käivita see koodirida ja seejärel mida ma tahan, et sa ei kutsuvad seda 1550 01:11:53,700 --> 01:11:56,370 töötada, kui vorm on esitatud. 1551 01:11:56,370 --> 01:11:57,730 >> Nüüd on see, mida on huvitav. 1552 01:11:57,730 --> 01:11:59,170 See ei ole iseenesest funktsiooni. 1553 01:11:59,170 --> 01:12:02,540 Pane tähele, ma ei esita sulgudes siin tavalisel viisil. 1554 01:12:02,540 --> 01:12:06,800 Ma sõna otseses mõttes möödaminnes funktsioon nimega handler () teise funktsiooni 1555 01:12:06,800 --> 01:12:10,800 kutsutakse esitama () argumendina nagu kuigi see on nagu muutuv. 1556 01:12:10,800 --> 01:12:14,290 Ja see on üks tunnuseid JavaScript on ülesandeid ise 1557 01:12:14,290 --> 01:12:15,710 on tõesti ainult esemed. 1558 01:12:15,710 --> 01:12:18,350 Tegelikult on nad tõesti lihtsalt muutujad mingisugune. 1559 01:12:18,350 --> 01:12:21,340 Ja kui nime funktsioon handler (), ei ole põhjus, miks ma ei saa 1560 01:12:21,340 --> 01:12:23,390 andke seda argumendina siin. 1561 01:12:23,390 --> 01:12:27,530 Ja see tähendab, kui vorm ID-demo on 1562 01:12:27,530 --> 01:12:29,320 esitatud, nimetame seda funktsiooni. 1563 01:12:29,320 --> 01:12:32,770 >> Aga nüüd, kui ma tagasi võtta kõik see, miks siis ma võib-olla teha 1564 01:12:32,770 --> 01:12:34,850 see hetk tagasi? 1565 01:12:34,850 --> 01:12:36,840 Noh, see on anonüümne funktsioon. 1566 01:12:36,840 --> 01:12:41,080 Sest ausalt öeldes, ma sain aru, miks ma olen häirib raisata aega kuulutatakse 1567 01:12:41,080 --> 01:12:45,540 funktsiooni nimetatakse handler () vaid helistada see üks ja ainus koht? 1568 01:12:45,540 --> 01:12:48,640 Kui ma ei pea nime, ja ma ei ole vaja kutsuda rohkem kui üks koht, 1569 01:12:48,640 --> 01:12:51,200 Ütleme lihtsalt rakendada funktsioon õigus, kus seda vaja on. 1570 01:12:51,200 --> 01:12:55,190 Ja nii JavaScript ja PHP tugi, mida kutsutakse anonüümne funktsioone 1571 01:12:55,190 --> 01:12:57,900 Lubage mul teha just seda siin. 1572 01:12:57,900 --> 01:12:59,570 >> Aga me lihtsalt kriimustada pinda. 1573 01:12:59,570 --> 01:13:02,430 Olgem kiusa vaid paar lõplik näited siin. 1574 01:13:02,430 --> 01:13:04,600 >> Kui ma minema quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Pange tähele, et see on tegelikult PHP funktsiooni PHP programm, mis ma kirjutasin 1577 01:13:11,870 --> 01:13:15,270 mis eeldab HTTP parameeter nimega sümbol, ja ma ei liigu 1578 01:13:15,270 --> 01:13:16,730 väärtus nagu FB. 1579 01:13:16,730 --> 01:13:20,010 Ja kui me tegelikult vaadata allikas kood, see on päringu tasuta veebisaidi 1580 01:13:20,010 --> 01:13:23,680 kutsus Yahoo Finance, nagu p-set seitse ja see on jälle mind 1581 01:13:23,680 --> 01:13:26,580 midagi ilmselt formaat tuntud on JSON - 1582 01:13:26,580 --> 01:13:28,010 JavaScript Object märke. 1583 01:13:28,010 --> 01:13:28,810 See on lihtsalt ese. 1584 01:13:28,810 --> 01:13:32,500 Märka lokkis traksid, jutumärgid, koolon ja koma. 1585 01:13:32,500 --> 01:13:34,720 >> Nüüd vahepeal see on päris lahe. 1586 01:13:34,720 --> 01:13:38,520 Sest ma ilmselt kasutada programmi keeles, et tekitada Aadressid 1587 01:13:38,520 --> 01:13:40,370 mis näeb välja selline dünaamiliselt, eks? 1588 01:13:40,370 --> 01:13:43,340 Ma ei muuda seda, et Google ja saada tagasi Google'i 1589 01:13:43,340 --> 01:13:47,930 aktsia hind $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Seega vaatame, kas me saame kasutada seda nüüd. 1591 01:13:49,640 --> 01:13:56,590 >> Lubage mul minna Ajax 0 siin, mis Tundub, et järgmine. 1592 01:13:56,590 --> 01:13:59,750 See on lihtsalt veebileht, mis on vormi nuppu. 1593 01:13:59,750 --> 01:14:05,860 Lubage mul siin minna ja kirjuta YHOO Yahoo aktsia sümbol, kliki siia 1594 01:14:05,860 --> 01:14:10,530 Quote, ja nüüd teate ma olen saanud tähelepanelik 32,86. 1595 01:14:10,530 --> 01:14:14,050 >> Las ma tegelikult minna Kasvataja versioon Selle lehe versioon kaks ja 1596 01:14:14,050 --> 01:14:17,530 kirjuta oletame Microsoft, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Saa Quote. 1598 01:14:18,410 --> 01:14:19,850 Ja nüüd teate, ei ole häire. 1599 01:14:19,850 --> 01:14:22,770 Pange tähele, kui ta ütleb hinna tuleb kindlaks määrata? 1600 01:14:22,770 --> 01:14:27,060 On lihtsamaid näiteid, mis vihjab mida Gchat ja Facebook 1601 01:14:27,060 --> 01:14:30,070 Vestlus ja Gmail ja muu selline veebilehed teete, tegelikult 1602 01:14:30,070 --> 01:14:31,290 muutes veebilehele. 1603 01:14:31,290 --> 01:14:31,800 >> Pange tähele, see. 1604 01:14:31,800 --> 01:14:33,120 Lubage mul asendusostu lehekülge. 1605 01:14:33,120 --> 01:14:35,080 Lubage mul avada Chrome'i inspektor. 1606 01:14:35,080 --> 01:14:36,890 Lubage mul minna elemendid tab siin. 1607 01:14:36,890 --> 01:14:42,310 Nüüd teate, kui ma suumida siin ja selle avada, teate, et see on minu 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - minu dokumendi objekti mudeli. 1609 01:14:44,500 --> 01:14:45,920 See on minu HTML. 1610 01:14:45,920 --> 01:14:48,750 Aga nüüd teate, kuigi see läheb olla natuke raske näha seda nii 1611 01:14:48,750 --> 01:14:52,080 kohas korraga, kui ma tüüpi FB siin, vaata alt 1612 01:14:52,080 --> 01:14:54,110 ekraani ainult. 1613 01:14:54,110 --> 01:14:57,720 >> See on tõepoolest muutub minu HTML lennult. 1614 01:14:57,720 --> 01:15:01,670 Ja ta teeb seda üsna lihtsalt tehes midagi sellist. 1615 01:15:01,670 --> 01:15:06,800 Kui ma avada ajax-2, teade rakendamisel midagi nii seksikas kui 1616 01:15:06,800 --> 01:15:09,560 , et kuigi see on päris kole, kuid nii kogenud kui et 1617 01:15:09,560 --> 01:15:11,910 funktsionaalselt, on mõned HTML allosas. 1618 01:15:11,910 --> 01:15:13,810 Aga teate ma kasutasin sildistada. 1619 01:15:13,810 --> 01:15:16,640 Me ei kasuta seda enne, kuid see on nagu, kuid see ei sunni 1620 01:15:16,640 --> 01:15:17,840 kõik peale uue rea. 1621 01:15:17,840 --> 01:15:20,830 See muudab ristkülikukujuline piirkond samal liinil põhiliselt. 1622 01:15:20,830 --> 01:15:22,870 >> Pange tähele, et ma andsin selle ID hinna. 1623 01:15:22,870 --> 01:15:26,800 Ja selgub, kasutades sama JavaScript raamatukogu, mul on funktsioon 1624 01:15:26,800 --> 01:15:30,440 nimetatakse quote () seda nimetatakse, kui vorm on esitatud. 1625 01:15:30,440 --> 01:15:31,800 Ja mida ma teen on see. 1626 01:15:31,800 --> 01:15:35,730 Teatan muutuja JavaScript nimega url, säästes raha 1627 01:15:35,730 --> 01:15:38,650 quote.php? symbol =. 1628 01:15:38,650 --> 01:15:44,220 Teisisõnu, ma ise olen hakanud valmistada HTTP taotluse ja seejärel 1629 01:15:44,220 --> 01:15:49,250 Ma concatenating peale, et koos plus olenemata elemendi ID 1630 01:15:49,250 --> 01:15:54,190 sümbol on, mida teate, et tekstiväli siinsamas. 1631 01:15:54,190 --> 01:15:56,630 Nii lihtsalt meeldib pidime vormid minevikus. 1632 01:15:56,630 --> 01:16:01,450 >> Ja siis selgub, jQuery, kui te helistada. val (), mis kutsub ja val 1633 01:16:01,450 --> 01:16:05,900 Funktsiooni väärtus funktsioon, mis saab olenemata kasutaja on kirjutatud sisse 1634 01:16:05,900 --> 01:16:08,920 Ja siis kõik võrguliiklust mis juhtub, on see. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> Ja kõrvale, dollari märk on lihtsalt stenografist märke. 1637 01:16:13,720 --> 01:16:16,860 See on tõesti jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Viige mind JSON selle URL, ja kui taotlus tuleb tagasi, nimetame seda 1639 01:16:21,520 --> 01:16:26,550 funktsioon ja liigu kui argument mis iganes tuli tagasi serverisse. 1640 01:16:26,550 --> 01:16:31,205 >> Nii teisisõnu, kui ma tagasi minna brauser ja ma lähen tagasi quote.php, 1641 01:16:31,205 --> 01:16:35,590 Mis minu brauser teeb on saada see patakas andmed. 1642 01:16:35,590 --> 01:16:38,930 Ja kui ma lähen selle veebilehe siin teate, kui me selle asemel minna võrku 1643 01:16:38,930 --> 01:16:43,820 tab ja selge see, ja siis kirjuta midagi GOOG Google ja saada 1644 01:16:43,820 --> 01:16:46,340 Tsiteeri märka leht ei muutunud. 1645 01:16:46,340 --> 01:16:50,990 Aga HTTP taotlus esitati, ja mida tulin siia tagasi, kui me vaatame 1646 01:16:50,990 --> 01:16:56,130 vastus on terve hunnik JSON et me siseneme lõpuks koos 1647 01:16:56,130 --> 01:16:58,070 Selle lihtsa line siin. 1648 01:16:58,070 --> 01:17:00,150 >> Andmed, mida ei saanud serverist. 1649 01:17:00,150 --> 01:17:02,120 Hind on nimi võti ma hoolin. 1650 01:17:02,120 --> 01:17:05,230 Nii data.price annab mulle. 1651 01:17:05,230 --> 01:17:07,540 >> Nüüd vahepeal ja see on viimane näide. 1652 01:17:07,540 --> 01:17:09,280 Seda saab teha veel rohkem lehel. 1653 01:17:09,280 --> 01:17:12,440 Üks tegelikult ka kaks. 1654 01:17:12,440 --> 01:17:14,780 Saame tagasi tuua sildistada, kui sa mäletad seda. 1655 01:17:14,780 --> 01:17:15,850 See JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Me saame seda teha. 1657 01:17:17,110 --> 01:17:17,690 Väga põnev. 1658 01:17:17,690 --> 01:17:18,800 Me lahkume, et pinge. 1659 01:17:18,800 --> 01:17:21,590 >> Aga rohkem põnevalt, saate selliseid asju tegema. 1660 01:17:21,590 --> 01:17:25,940 Kui ma lähen geolokaliseerimise-1, selgub et Chrome teab, et me oleme 1661 01:17:25,940 --> 01:17:30,672 laius, pikkus 42,37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Nii et seal on isegi rohkem seal Teie käsutuses. 1663 01:17:32,940 --> 01:17:34,290 Aga rohkem sellest järgmisel nädalal. 1664 01:17:34,290 --> 01:17:35,540 Näeme esmaspäeval. 1665 01:17:35,540 --> 01:17:37,558