1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Nädal 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Harvardi Ülikool] 3 00:00:04,740 --> 00:00:07,170 [See on CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Hea küll. Tere tulemast tagasi. See on CS50, ja see on algus 9. nädalast. 5 00:00:12,350 --> 00:00:16,600 Täna keskendutakse eelkõige disain, enam kontekstis C 6 00:00:16,600 --> 00:00:20,010 kuid seoses PHP ja natuke SQL ja natuke JavaScript, 7 00:00:20,010 --> 00:00:23,730 Eriti suunas lõpuks nii pset 7 ja ka oma lõpliku projekti. 8 00:00:23,730 --> 00:00:26,310 Tegelikult, kui sa oled selle koha peal oma lõpliku projekti 9 00:00:26,310 --> 00:00:30,100 kus eeldatavasti alates tund või nii tagasi sa vähemalt hakanud mõtlema 10 00:00:30,100 --> 00:00:33,730 oma lõpliku projekti ja sa mõtled, mida soovite teha koostööd 1 või 2 klassikaaslased, 11 00:00:33,730 --> 00:00:36,150 kui sul on probleeme ühendavad ütles klassikaaslased, 12 00:00:36,150 --> 00:00:40,570 julgelt täitke vorm aadressil cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 See lihtsalt küsib, kes sa oled, millist projekti sa mõtled, 14 00:00:42,880 --> 00:00:44,870 kus sa elad lihtsalt logistilistel põhjustel. 15 00:00:44,870 --> 00:00:49,510 Ja siis kui sa tahad hoida silma peal üle järgmisel nädalal või nii arvutustabeli URL seal, 16 00:00:49,510 --> 00:00:53,520 saab siis näha ainult lugemiseks versiooni Google doc 17 00:00:53,520 --> 00:00:56,010 kus me selle teabe kogumiseks. 18 00:00:56,010 --> 00:00:58,930 Nii et kui sa tahad teha kellegagi, kõigi vahenditega vabalt jõuda inimesed 19 00:00:58,930 --> 00:01:00,480 kaudu, et mehhanism. 20 00:01:00,480 --> 00:01:02,690 Kuid enamik inimesed teevad tööd soolo. See on täiesti korras. 21 00:01:02,690 --> 00:01:06,120 Nii ei tunne, et see on kuidagi kohustuslik. 22 00:01:06,120 --> 00:01:09,680 Reedel oli see ainult mulle ja mõned meeskond siin, 23 00:01:09,680 --> 00:01:11,100 tühi teatri suures osas. 24 00:01:11,100 --> 00:01:14,600 Esines 3 turistid istub seal üleval, nii et oli natuke ebamugav. 25 00:01:14,600 --> 00:01:18,970 Mida me rääkisime oli andmebaasid ja me rääkisime pset 7 natuke. 26 00:01:18,970 --> 00:01:22,200 Ja kui sa ei juhtunud jõuda, et video lihtsalt veel, siis hästi. 27 00:01:22,200 --> 00:01:26,770 Ma püüan määratle tingimusi, mida me muidu enesestmõistetavaks 28 00:01:26,770 --> 00:01:28,840 aluseks reedel loeng. 29 00:01:28,840 --> 00:01:32,550 >> Aga täna me ei kavatse proovida sulle punkti 30 00:01:32,550 --> 00:01:34,990 mitte lihtsalt on võimalik teha midagi pset 7 31 00:01:34,990 --> 00:01:37,360 aga tõesti mõista, mis toimub all kapuuts, 32 00:01:37,360 --> 00:01:41,910 eriti mõned abstraktsioonid, et me paika panna functions.php faili 33 00:01:41,910 --> 00:01:45,780 teha oma elu natuke lihtsam, kuid nii, et te lõpuks aru 34 00:01:45,780 --> 00:01:48,760 nii et kui abirattad maha tulla paari nädala jooksul saab veel ellu 35 00:01:48,760 --> 00:01:53,750 reaalses maailmas ja seda kraami ilma CS50 raamistiku all teid. 36 00:01:53,750 --> 00:01:57,500 See $ _SESSION, you need, kes tunnevad 37 00:01:57,500 --> 00:02:01,960 või kes juba püütud video reedel, mida ei SESSION tehkem 38 00:02:01,960 --> 00:02:04,330 aastal PHP-põhine veebirakenduse? 39 00:02:04,330 --> 00:02:09,650 See on superglobal muutuja, mis tähendab, et see on sarnase sisuga GET ja POST 40 00:02:09,650 --> 00:02:13,970 ja mõned teised, kuid mis asi see on kasulik? 41 00:02:13,970 --> 00:02:18,320 >> Mis on SESSION kasutatakse? Jah. [Üliõpilane] Sisselogimine 42 00:02:18,320 --> 00:02:21,040 Vabandust? [Üliõpilane] Sisselogimine Sisselogimine Tõepoolest. 43 00:02:21,040 --> 00:02:25,100 Aastal pset 7 me kasutame selle sessiooni superglobal hõlbustada sisselogimist 44 00:02:25,100 --> 00:02:28,600 Ja mis on tore see superglobal, et see on assotsiatiivne massiiv. 45 00:02:28,600 --> 00:02:33,190 Assotsiatiivne massiiv, mäletate, on lihtsalt massiivi kuid mille indeksid ei pea enam olema numbrid 46 00:02:33,190 --> 00:02:37,670 nagu 012. Nad võivad olla numbrid või nad võivad olla isegi stringe. 47 00:02:37,670 --> 00:02:44,890 Ja nii kui oled sukeldunud pset 7 veel, siis võib meelde tuletada, et me oleme ladustamiseks võti nimega ID 48 00:02:44,890 --> 00:02:50,330 sees see assotsiatiivne massiiv, mille väärtus on umbes 123 - 49 00:02:50,330 --> 00:02:53,780 olenemata hetkel sisse logitud kasutaja ID on. 50 00:02:53,780 --> 00:02:59,470 Motivatsioon on see, et isegi kui kasutaja on külastanud localhost 51 00:02:59,470 --> 00:03:02,720 või minu koduleheküljel üldisemalt ja siis nad on sisse loginud, 52 00:03:02,720 --> 00:03:07,320 isegi kui nad ei kliki lingil või naasta oma veebilehel 5 minutit 53 00:03:07,320 --> 00:03:10,730 või isegi tund või isegi päev, kuid nad lahkuvad brauseri aken lahti, 54 00:03:10,730 --> 00:03:14,370 kaudu see superglobal saab Mäletan, et nad on sisse logitud 55 00:03:14,370 --> 00:03:21,140 >> Teisisõnu, see võimaldab mul hoida veidi pikemas perspektiivis midagi tahan umbes kasutaja. 56 00:03:21,140 --> 00:03:24,390 Ja te võite mõelda, et see tõesti nii kehastus ostukorv. 57 00:03:24,390 --> 00:03:27,740 Kohad nagu Amazon ilmselt laseb sul panna asjad ostukorv, 58 00:03:27,740 --> 00:03:32,230 kuid HTTP protokoll, et võimu Web, on kodakondsuseta 59 00:03:32,230 --> 00:03:34,230 selles mõttes, et kui te külastate veebisaiti, 60 00:03:34,230 --> 00:03:37,290 enamasti sa ei pea mõned pidevat võrguühendust 61 00:03:37,290 --> 00:03:39,270 vahel brauseri ja serveri. 62 00:03:39,270 --> 00:03:42,190 Niipea kui olete alla laadinud HTML ja JPEG ja GIF ja kõik, et 63 00:03:42,190 --> 00:03:48,200 ühendus kaob ja sa lihtsalt koopia HTML ja tühi-tähi serverist. 64 00:03:48,200 --> 00:03:53,000 Aga kui server soovib mäletan midagi sinust, 65 00:03:53,000 --> 00:03:57,580 koorem on serveris tegelikult salvestada see teave. 66 00:03:57,580 --> 00:04:00,130 Ja nii sa programmeerija, kes on üle serveri 67 00:04:00,130 --> 00:04:04,400 saab panna kõige ükskõik mida tahad sees see superglobal assotsiatiivne massiiv 68 00:04:04,400 --> 00:04:06,850 ja see on seal järgmine kord kasutaja tagasi tuleb, 69 00:04:06,850 --> 00:04:12,070 kas see on minuti või isegi päevad hiljem, kui nad sulgevad oma brauseri aknas, 70 00:04:12,070 --> 00:04:14,360 kus punkt SESSION kaob. 71 00:04:14,360 --> 00:04:17,779 Nii et see on üürike ladustamine, see on mitte-püsiv ning see on mõeldud taanduvad 72 00:04:17,779 --> 00:04:22,360 niipea kui kasutaja sulgeb oma brauseri - mitte ainult sakk sageli sirvija 73 00:04:22,360 --> 00:04:24,930 seeläbi tõhusalt logib kasutaja välja. 74 00:04:24,930 --> 00:04:28,000 Nii et kuidas see asi tegelikult ellu viia? 75 00:04:28,000 --> 00:04:31,360 Võtame Kiire pilk lihtsa näite me vaatasime reedel. 76 00:04:31,360 --> 00:04:33,340 Nende võõras, see oli nii lihtne see. 77 00:04:33,340 --> 00:04:35,910 See on veebileht, mille ainus eesmärk elus on mulle 78 00:04:35,910 --> 00:04:38,000 Mitu korda olen käinud siin lehel. 79 00:04:38,000 --> 00:04:41,670 See on esimene kord siin esmaspäeval, et käisin, nii ta ütleb: 0 korda. 80 00:04:41,670 --> 00:04:46,940 >> Aga kui ma hakkan uuesti seda lehte, see ütleb 1 kord, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 ja see lõpuks lihtsalt hoida lugedes üles, üles, üles, üles, üles 82 00:04:49,800 --> 00:04:53,130 iga kord, kui ma tegelikult käsku Värskenda seda. 83 00:04:53,130 --> 00:04:58,830 Niisiis, kuidas on selle töö? Laske mul minna sees see fail nimega counter.php. 84 00:04:58,830 --> 00:05:02,490 Ülaosa on kõik sinine kommentaare, kuid huvitavam osa on siin. 85 00:05:02,490 --> 00:05:06,670 Rea 13 kutsume seda funktsiooni session_start, 86 00:05:06,670 --> 00:05:09,600 ja see on sõna otseses mõttes kõik, mida pead tegema kui sa tahad pääseda 87 00:05:09,600 --> 00:05:13,610 sellele erilist superglobal nimega $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 Mistõttu on võimalik, ja me näeme hetke pärast, kuidas see kõik võimalik. 89 00:05:17,430 --> 00:05:20,350 In real 16 teadet, mida ma teen. 90 00:05:20,350 --> 00:05:25,960 Kui võti nimega counter - teisisõnu, indeksi väärtus - "counter" 91 00:05:25,960 --> 00:05:32,310 olemas sees see massiiv nimega SESSIOON, siis mida ma teen sellega rida allpool? 92 00:05:32,310 --> 00:05:36,650 Mis on eelarverea 18 teed? 93 00:05:36,650 --> 00:05:40,360 >> [Kuuldamatu õpilase vastus] Mis see on? [Üliõpilane] hoidmine väärtust. Hea. 94 00:05:40,360 --> 00:05:45,800 See ladustamiseks väärtus, mis on istung kohe uue kohaliku ajutise muutuja, 95 00:05:45,800 --> 00:05:48,250 $ Counter kõik väiketähed. 96 00:05:48,250 --> 00:05:50,770 Pange tähele, et PHP on juba natuke liiga laisk siin. 97 00:05:50,770 --> 00:05:55,550 Teade meil ei ole ühtegi viidet int või veepinnal või nööri või midagi sellist 98 00:05:55,550 --> 00:06:00,480 sest PHP on nõrgalt kirjutatud, kusjuures te ei pea täpsustada, millist tüüpi muutuja, 99 00:06:00,480 --> 00:06:03,310 ja selles asjas olen isegi ei deklareeritud seda veel. 100 00:06:03,310 --> 00:06:08,980 Ma tunnistades selle sees need looksulg ja erinevalt C, see on tegelikult midagi. 101 00:06:08,980 --> 00:06:13,800 Ükskõik kui sügavalt pesastatud muutuja deklaratsioon PHP - 102 00:06:13,800 --> 00:06:16,650 sees lokkis traksidega, sees lokkis traksidega jms - 103 00:06:16,650 --> 00:06:21,230 see tol ajahetkel olemas ülejäänud programmi, 104 00:06:21,230 --> 00:06:22,680 jaoks hea või halb. 105 00:06:22,680 --> 00:06:26,930 Nii see kohe muutub globaalne niipea kui sa defineerid seda me teeme siin. 106 00:06:26,930 --> 00:06:31,620 >> Vastasel juhul, kui ma ei leia, et seal on midagi istungil superglobal, 107 00:06:31,620 --> 00:06:34,680 Ma ilmselt initsialiseerimisel see muutuja loendur 0, 108 00:06:34,680 --> 00:06:37,580 seega lihtsalt eeldades, kasutaja ei ole kunagi varem siin olnud. 109 00:06:37,580 --> 00:06:40,030 Ja siis see muidugi on incrementing leti kuidas? 110 00:06:40,030 --> 00:06:44,480 Ma ajakohastamine väärtus, mis on sees see assotsiatiivne massiiv 111 00:06:44,480 --> 00:06:49,530 seades see võrdne olenemata counter praegu on +1. 112 00:06:49,530 --> 00:06:53,520 Kui ma keri siin HTML leht, see on tegelikult üsna lihtne. 113 00:06:53,520 --> 00:06:58,920 Ma pean kehas sellel leheküljel on: "Te olete seda saiti külastas nii-ja-nii korda." 114 00:06:58,920 --> 00:07:00,350 Ja see on PHP ehitada. 115 00:07:00,350 --> 00:07:06,080 Kui sul 00:07:12,600 See on tõesti samaväärne midagi printf, mis me oleme näinud mitmeid kordi C, 117 00:07:12,600 --> 00:07:15,940 kuigi nagu te teate juba alates spec pset 7, 118 00:07:15,940 --> 00:07:20,160 prindi on ka funktsioon, et lihtsalt trükib midagi välja, see ei ole tegelikult kasutada vormingu tähistamine, 119 00:07:20,160 --> 00:07:23,270 ja tegelikult võite öelda kaja samuti. 120 00:07:23,270 --> 00:07:27,460 Nad kõik on kunagi nii veidi erinev, kuigi lõpptulemus on lõppkokkuvõttes sama. 121 00:07:27,460 --> 00:07:31,270 Nii et see kasutamine võrdusmärki on lihtsalt omamoodi elegantne viis seda teha 122 00:07:31,270 --> 00:07:34,910 Veel lühidalt kui te muidu ei saa. 123 00:07:34,910 --> 00:07:38,370 Nii et kõik see sait ei. Ta prindib välja loenduri väärtus. 124 00:07:38,370 --> 00:07:40,550 Kuidas see kõik tegelikult toimub? 125 00:07:40,550 --> 00:07:43,250 Nette nädal või nii tagasi hakkasime otsima all kapuuts 126 00:07:43,250 --> 00:07:47,910 , kuidas veebileht töötab, kasutades seda Inspektor sakk. 127 00:07:47,910 --> 00:07:51,900 >> Chrome on see nii Mac versioon, Windows versiooni ja isegi Linuxi versioon, 128 00:07:51,900 --> 00:07:59,510 ja Firefox ja IE on sarnased, mille kaudu teil on selle sisseehitatud siluri 129 00:07:59,510 --> 00:08:01,400 sees brauser. 130 00:08:01,400 --> 00:08:03,040 Võtame pilk järgmine. 131 00:08:03,040 --> 00:08:06,960 Meil on terve hunnik kaarte siin, ja tuletada meelde, et kõige vasakpoolsema üks on elemendid, 132 00:08:06,960 --> 00:08:10,700 ja ükskõik kui godawful HTML ja JavaScript on leht, 133 00:08:10,700 --> 00:08:15,710 meelde tuletada, et elementidega kaardil saab tegelikult navigate HTML hierarhiliselt 134 00:08:15,710 --> 00:08:17,050 ja kena ja korralikult. 135 00:08:17,050 --> 00:08:19,370 Nii et kui sa üritad õppida veebilehel nagu Google või Facebook 136 00:08:19,370 --> 00:08:22,370 või tegelikult mis tahes veebisaidile, mõistad, et sa oled ilmselt parem 137 00:08:22,370 --> 00:08:26,360 vaadates lähtekoodi nii erinevalt vaatamise toores allikas, 138 00:08:26,360 --> 00:08:29,580 mis võib olla jama, nagu me oleme näinud eriti Google'i kodulehekülg. 139 00:08:29,580 --> 00:08:32,220 Nii et kui ma selle asemel klõpsa vahekaarti Network siin, 140 00:08:32,220 --> 00:08:34,830 Vaatame, mis toimub kui ma külastada seda lehekülge. 141 00:08:34,830 --> 00:08:38,669 Esiteks lubage mul kustutada vahemälu. 142 00:08:38,669 --> 00:08:43,570 Ma lähen minema Seaded Chrome ja seejärel minna Ajalugu 143 00:08:43,570 --> 00:08:46,420 ja siis Kustuta kõik sirvimisandmed. 144 00:08:46,420 --> 00:08:48,170 Sa võid kasutada seda teed muudel eesmärkidel, [naer] 145 00:08:48,170 --> 00:08:51,990 aga kui tegemist on arendada veebilehed, see on tegelikult kasulik - 146 00:08:51,990 --> 00:08:55,980 kui sa naerad sa tead. [Naer] 147 00:08:55,980 --> 00:08:59,310 See on tegelikult väga kasulik, kui arendada veebilehed, sest reaalsus on 148 00:08:59,310 --> 00:09:04,100 asjad nagu küpsised ja asjad puhverdatud HTML-faile, puhverdatud JavaScript failid 149 00:09:04,100 --> 00:09:06,390 saab reaalselt suur peavalu, sest kui mingil põhjusel 150 00:09:06,390 --> 00:09:11,500 brauser otsustab vahemälu mõnda faili ja veel oled teinud muudatusi selle faili serverisse 151 00:09:11,500 --> 00:09:14,670 kuid brauser ei tõesti aru, et fail on muutunud 152 00:09:14,670 --> 00:09:19,060 ja seega ei ole tegelikult uuesti laadida see isegi kui klõpsate Reload nuppu, 153 00:09:19,060 --> 00:09:23,210 üks surefire kuidas lihtsalt veenduda süü ei ole oma koodi, 154 00:09:23,210 --> 00:09:26,480 see on koos käitumine brauseri, on minna siia oma brauseris 155 00:09:26,480 --> 00:09:29,950 ja lihtsalt puhastada kogu ajalugu, nii et pole mingit segadust. 156 00:09:29,950 --> 00:09:33,210 >> Ja siis kui sa tõesti tahad olla paranoiline, sulgege brauser, taaskäivitage see, 157 00:09:33,210 --> 00:09:35,660 ja seejärel veenduge, et kõik töötab ootuspäraselt. 158 00:09:35,660 --> 00:09:38,820 Nii lühike, vahemälu tühjendamine on hea, kui teed areng. 159 00:09:38,820 --> 00:09:40,690 Nii et siin on meil Network sakk. 160 00:09:40,690 --> 00:09:46,020 Ma varem oli käinud kohas 9 korda, kuid lubage mul minna nüüd ja klõpsake Reload. 161 00:09:46,020 --> 00:09:47,500 Ja ma olen tagasi alla 0. 162 00:09:47,500 --> 00:09:52,100 Olgem tegelikult näha, kuidas see on, et selle sessiooni superglobal rakendatakse. 163 00:09:52,100 --> 00:09:55,990 Ma lähen klõpsa 1. HTTP taotluse, mis oli tehtud, 164 00:09:55,990 --> 00:09:58,810 ja see silumine aken laseb mul sisse vaatama seda. 165 00:09:58,810 --> 00:10:01,970 Siin ma näen lihtsalt vastus serverilt, mis ei ole huvitav. 166 00:10:01,970 --> 00:10:04,030 Olen näinud seda igal mitmel viisil. 167 00:10:04,030 --> 00:10:06,350 Aga mis on tehniliselt huvitav on päised. 168 00:10:06,350 --> 00:10:11,770 Kui ma keri siit ja keskenduda taotluse päised ja klõpsake vaata lähteteksti, 169 00:10:11,770 --> 00:10:14,400 mida ma näen, on sõna otseses mõttes HTTP päringu 170 00:10:14,400 --> 00:10:17,250 et lihtsalt läks minu brauseri server, 171 00:10:17,250 --> 00:10:21,400 GET on Keskne sõna ja siis / counter.php on faili nimi, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 olemisele versiooni HTTP, et minu brauser kasutab. 173 00:10:25,670 --> 00:10:31,070 See rida siin on väike meeldetuletus alates brauseri server mis serveri nimi on 174 00:10:31,070 --> 00:10:33,020 et ta tahab rääkida. 175 00:10:33,020 --> 00:10:38,200 Ja siis ülejäänud seda on mõnikord huvitav, kuid ei puuduta praegu. 176 00:10:38,200 --> 00:10:40,090 >> See on lihtsalt selline uudishimu. 177 00:10:40,090 --> 00:10:43,530 Cryptic kuigi see string on igal ajal teie brauser külastab veebilehte 178 00:10:43,530 --> 00:10:47,110 see on teavitada serveri millist brauserit sa kasutad 179 00:10:47,110 --> 00:10:50,040 ja millist operatsioonisüsteemi te kasutate ja millist versiooni sellest. 180 00:10:50,040 --> 00:10:52,650 Nii et kui sa oled kunagi mõelnud, kuidas veebilehed nagu CNN ja tühi-tähi 181 00:10:52,650 --> 00:10:56,860 tea, mis protsendid on Mac kasutajad veebis, PC kasutajad, 182 00:10:56,860 --> 00:11:00,820 IE kasutajad, Chrome kasutajad jms, sellepärast on kõik meie brauserid 183 00:11:00,820 --> 00:11:04,300 räägivad igale kodulehele seal me oleme. 184 00:11:04,300 --> 00:11:07,410 See ei pruugi tingimata sisaldada isikuandmeid, 185 00:11:07,410 --> 00:11:13,060 kuid see ei ütle server, mida teie IP-aadress on ja millist brauserit ja operatsioonisüsteemi sa kasutad. 186 00:11:13,060 --> 00:11:14,720 Nii et kui see info on. 187 00:11:14,720 --> 00:11:19,960 Aga mis on veel huvitav nüüd, kui tegemist on nende seansside on vastus header. 188 00:11:19,960 --> 00:11:22,530 Lubage mul klõpsake Kuva allikas kõrval vastust. 189 00:11:22,530 --> 00:11:24,590 Mis on huvitav siin on mõned asjad. 190 00:11:24,590 --> 00:11:27,580 1, me saime tagasi olekukoodi 200. 191 00:11:27,580 --> 00:11:29,840 Me ei näe seda olekukood sest see tähendab, et kõik on hästi. 192 00:11:29,840 --> 00:11:32,920 See tähendab sõna otseses mõttes okei erinevalt midagi muud. 193 00:11:32,920 --> 00:11:36,380 Mis number mõnikord me näeme, et see on halb? [Üliõpilane] 404. 194 00:11:36,380 --> 00:11:39,860 404, faili ei leitud, 403 võite olla Takistuseks pärast juba, 195 00:11:39,860 --> 00:11:43,660 mis on keelatud, mis tähendab, et sa unustasid chmod midagi, kõige tõenäolisem. 196 00:11:43,660 --> 00:11:45,190 Ja seal on hunnik teisi. 197 00:11:45,190 --> 00:11:47,760 >> Alla siin, see on natuke hull. 198 00:11:47,760 --> 00:11:52,340 Ma tõesti lihtsalt kirjutas seda faili paar minutit tagasi kleepida see gedit. 199 00:11:52,340 --> 00:11:57,100 Miks seda lehte lõppema aastal 1981, enne kui tegelikult oli veebist? 200 00:11:58,010 --> 00:12:00,730 Mis toimub seal? 201 00:12:00,730 --> 00:12:04,390 >> [Kuuldamatu õpilase vastus] ajatempli. Aga miks? 202 00:12:06,110 --> 00:12:09,120 See on mõnevõrra meelevaldne, aga see on tegelikult kasulik. 203 00:12:09,120 --> 00:12:15,500 Mida see ütleb minu brauser on see PHP fail sa oled taotlenud juba aegunud. 204 00:12:15,500 --> 00:12:18,580 Tegelikult on see lõppenud 30 aastat tagasi. 205 00:12:18,580 --> 00:12:20,260 Aga mida see tegelikult tähendab? 206 00:12:20,260 --> 00:12:22,500 See lihtsalt tähendab, et järgmine kord, kui kasutaja külastab seda lehte, 207 00:12:22,500 --> 00:12:25,540 kas ümberlaadimise või kirjutades URL aadressiribale 208 00:12:25,540 --> 00:12:28,010 veenduge, et minna ja tõmmata uus koopia. 209 00:12:28,010 --> 00:12:30,840 See on omamoodi näide vahemälu lõhkemiseni, 210 00:12:30,840 --> 00:12:33,790 loll sõna, mis tähendab lihtsalt üritab hoida brauserid 211 00:12:33,790 --> 00:12:37,260 alates tegelikult caching HTML, mis on saadetud serverist 212 00:12:37,260 --> 00:12:41,490 nii et sa ei kogemata tabas reload ja siis vaata sama failiversiooni. 213 00:12:41,490 --> 00:12:43,730 Sa tegelikult tahad server saata uue koopia. 214 00:12:43,730 --> 00:12:47,440 Nii et see on 1981 tähendab lihtsalt, et see, mida seade valimine 215 00:12:47,440 --> 00:12:50,280 kui suvalise kuupäeva minevikus. 216 00:12:50,280 --> 00:12:53,380 Aga tõeline mahlane rida on nüüd see. 217 00:12:53,380 --> 00:12:57,550 Isegi enne 50 oled ilmselt ähmaselt tuttav küpsiseid. 218 00:12:57,550 --> 00:13:01,820 Kuna just nüüd, eriti nende seas, vähem mugav või vahel, 219 00:13:01,820 --> 00:13:04,120 Mis on küpsis teie arusaam praegu 220 00:13:04,120 --> 00:13:06,980 kuigi me oleme tegemas oma arusaamist rohkem tehniline? 221 00:13:08,150 --> 00:13:10,070 Mis on küpsis? Jah. 222 00:13:10,070 --> 00:13:13,890 [Üliõpilane] infot kasutaja, meeldib kui nad on kirjutatud oma kasutaja nimi või midagi. 223 00:13:13,890 --> 00:13:17,370 >> Hea. See on infot kasutaja, kas nad on kirjutatud oma kasutaja nimi juba. 224 00:13:17,370 --> 00:13:21,190 Küpsised on viis, mille serverid ei mäleta midagi kasutaja. 225 00:13:21,190 --> 00:13:25,810 Ja mida küpsis tõesti on tekstifail või mõned jada bytes 226 00:13:25,810 --> 00:13:28,340 mis on istutatud server sees oma brauseris 227 00:13:28,340 --> 00:13:31,960 ja sees, et fail või nende seas baiti on mingi tunnus. 228 00:13:31,960 --> 00:13:35,640 Võibolla on see sõna otseses mõttes oma kasutaja nimi, kuid enamasti on see midagi rohkem segasena ilmega 229 00:13:35,640 --> 00:13:43,700 nagu see asi siin - bo8dal3ct ja nii edasi - see on tõesti suur täht string 230 00:13:43,700 --> 00:13:47,050 mis on tegelikult lihtsalt pidi olema kordumatu tunnus teile. 231 00:13:47,050 --> 00:13:49,790 Või sa ei mõtle seda kui omamoodi virtuaalne käsi tempel. 232 00:13:49,790 --> 00:13:53,020 Kui te lähete mõned klubi või lõbustuspargis, meeles pidada, et sa oled tegelikult makstud 233 00:13:53,020 --> 00:13:55,850 ja läinud, nad panid veidi punane kleebis käega mingi, 234 00:13:55,850 --> 00:13:59,270 ja mis meenutab inimesed letis, et olete juba makstud 235 00:13:59,270 --> 00:14:01,340 ja te võite tulla ja minna nagu soovid. 236 00:14:01,340 --> 00:14:04,250 Küpsised on veidi sarnase sisuga, et. 237 00:14:04,250 --> 00:14:08,070 Esimest korda käisin sellel veebilehel, nagu ma just tegin pärast puhastades minu vahemälu 238 00:14:08,070 --> 00:14:11,620 veebiserver, seade antud juhul pani pitseri minu käsi 239 00:14:11,620 --> 00:14:15,030 kelle nimi on PHPSESSID, sessiooni ID, 240 00:14:15,030 --> 00:14:18,260 mille väärtus on see tõesti pikk tähtnumbriline string. 241 00:14:18,260 --> 00:14:22,470 >> Nii et nüüd omamoodi ehib mu kätt nii et järgmine kord, kui ma tabanud asendusostu 242 00:14:22,470 --> 00:14:25,230 või käsitsi külastage URL brauseris 243 00:14:25,230 --> 00:14:29,230 minu brauser määratluse HTTP läheb esitada käsi tempel 244 00:14:29,230 --> 00:14:31,940 uuesti ja uuesti ja uuesti. 245 00:14:31,940 --> 00:14:34,550 Nii et kuigi server ei pruugi teada, kes ma olen, 246 00:14:34,550 --> 00:14:39,610 nad vähemalt teavad, et ma olen sama kasutaja või vähemalt täpsemalt sama brauserit. 247 00:14:39,610 --> 00:14:45,660 Ja nii see on lõppkokkuvõttes kuidas SESSIOON superglobal rakendatakse. 248 00:14:45,660 --> 00:14:51,200 Server pole aimugi, kes sa oled, kui sa uuesti veebilehel teist või kolmandat korda 249 00:14:51,200 --> 00:14:53,410 kui te esitate selle poolt tempel. 250 00:14:53,410 --> 00:14:55,530 Ja niipea, kui te esitate, et käsi tempel, 251 00:14:55,530 --> 00:14:59,370 veebiserver sisuliselt läheb natuke andmebaasi oma 252 00:14:59,370 --> 00:15:06,040 ja kontrolli, okei, ma just näinud aga tempel kasutaja bo8dal3ct ja nii edasi. 253 00:15:06,040 --> 00:15:09,850 Las ma vaatan, millist teavet programmeerija on salvestatud 254 00:15:09,850 --> 00:15:12,380 sees superglobal selle kasutaja, 255 00:15:12,380 --> 00:15:17,000 ja siis andke mulle veenduge, et need andmed on jälle sees istungi superglobal 256 00:15:17,000 --> 00:15:19,830 nii et programmeerija saab uuesti juurdepääsu et andmed 257 00:15:19,830 --> 00:15:23,360 isegi kui see loodi mõned minutid või tunnid tagasi. 258 00:15:23,360 --> 00:15:26,150 Nii et teiste sõnadega, küpsised, mis sai halb rap mõnda aega 259 00:15:26,150 --> 00:15:29,990 kuna ebakindlus brauserites ja nad saavad tõesti vastuolus meie privaatsuse ja kõik see, 260 00:15:29,990 --> 00:15:31,900 nad tegelikult on väga kasuliku sest ilma nendeta 261 00:15:31,900 --> 00:15:36,110 siis oleks pidevalt tuleb sisse logida iga Facebook leht, mida külastada 262 00:15:36,110 --> 00:15:40,680 või iga Gmaili e-posti lugeda, kui brauser ei ole mingil viisil meenutamise 263 00:15:40,680 --> 00:15:43,320 et olete juba kinnitatud. 264 00:15:43,320 --> 00:15:46,640 >> Nii et sel viisil küpsiseid saadetakse edasi-tagasi üle traadi. 265 00:15:46,640 --> 00:15:52,470 Teine uudishimu küpsised, eriti siin, et see on täiesti meiliga. 266 00:15:52,470 --> 00:15:54,930 Pole mingit krüpteerimist siin toimub üldse, 267 00:15:54,930 --> 00:15:57,240 ja tõesti ma HTTP hetkel. 268 00:15:57,240 --> 00:16:00,890 Üks meie lemmikud hetki CS50, mis on nüüd 2 aastat tagasi, 269 00:16:00,890 --> 00:16:04,750 aastal umbes samal ajal tööriist nimega Firesheep tuli välja. 270 00:16:04,750 --> 00:16:08,320 See oli vaba tarkvara, mis tegi turvalisuse teadlane 271 00:16:08,320 --> 00:16:13,250 kui äratus kogukonna öelda, kuidas atrociously rakendatud 272 00:16:13,250 --> 00:16:17,900 teatud autentimise mehhanismid veebis olid. 273 00:16:17,900 --> 00:16:22,880 Nii et mõnda aega, Facebook oli peaaegu täielikult HTTP, ei HTTPS. 274 00:16:22,880 --> 00:16:25,640 Ja isegi kui sa ei tea, kuidas krüpto töötab, S on turvaline 275 00:16:25,640 --> 00:16:27,950 nii et see tähendab, seal on vähemalt mõned krüpteerimine kaasatud. 276 00:16:27,950 --> 00:16:30,610 Facebook ei kasutatakse krüpteerimiseks kasutajanimed ja paroolid, 277 00:16:30,610 --> 00:16:33,560 kuid niipea, kui olete tutvunud oma pokes või sõnumeid või oma uudistevoo, 278 00:16:33,560 --> 00:16:35,360 kõik oli krüpteerimata. 279 00:16:35,360 --> 00:16:37,870 Nii oli Gmaili kuni vaid aasta või 2 tagasi. 280 00:16:37,870 --> 00:16:41,100 Iga kord, kui sisse logitud, jah, nad kasutasid turvaline krüpteering, 281 00:16:41,100 --> 00:16:44,300 kuid seejärel nad ei teinud seda. Ja miks see võiks olla? 282 00:16:44,300 --> 00:16:49,210 Miks mitte lihtsalt kasutada krüptograafia kogu aeg kasutusel juhtudel nagu see on? 283 00:16:49,210 --> 00:16:53,700 Mis see on? Arvan, et kuulsin midagi. [Üliõpilane] kiirus. 284 00:16:53,700 --> 00:16:56,250 Kiirus, eks? On viise selle ümber. 285 00:16:56,250 --> 00:16:59,610 Aga kui sa just mingi mõelda loogiliselt, kui te krüptida midagi, 286 00:16:59,610 --> 00:17:01,820 sa pead tegema vähemalt natuke rohkem tööd. 287 00:17:01,820 --> 00:17:05,460 Aastal pset 2 Kui rakendatakse Caesar või Vigenere või isegi crack, 288 00:17:05,460 --> 00:17:07,760 lihtsalt printida string on suhteliselt lihtne. 289 00:17:07,760 --> 00:17:12,040 Krüptimine ja seejärel printida string minimaalselt nõuab natuke rohkem tööd. 290 00:17:12,040 --> 00:17:14,520 >>  Super populaarne veebilehed nagu Google ja Facebook, 291 00:17:14,520 --> 00:17:18,839 kui sa pead tegema rohkem tööd iga kasutaja jaoks iga veebilehe nad külastavad, 292 00:17:18,839 --> 00:17:20,520 et lihtsalt võtab rohkem protsessori aega. 293 00:17:20,520 --> 00:17:22,920 Ja kui teil on vaja rohkem protsessori aega, peate rohkem servereid, 294 00:17:22,920 --> 00:17:24,270 mis tähendab, et peate rohkem raha. 295 00:17:24,270 --> 00:17:27,579 Ja nii juba aastaid see lihtsalt tõesti ei olnud hea tavaga. 296 00:17:27,579 --> 00:17:31,440 Inimesed kasutavad SSL krüpteeringut ainult siis, kui nad on vajalikud. 297 00:17:31,440 --> 00:17:34,960 Kuid selgus, ja kui see mehe koos Firesheep tehtud super selge, 298 00:17:34,960 --> 00:17:37,920 kui te poisid, kes on praegu Facebookis praegu - 299 00:17:37,920 --> 00:17:39,880 Out of uudishimu, vaatame, kas sa Fess üles. 300 00:17:39,880 --> 00:17:42,620 Kui oled Facebookis praegu mõnes lingile, isegi kui see pole esiplaanile, 301 00:17:42,620 --> 00:17:46,610 on oma URL HTTP või HTTPS? 302 00:17:46,610 --> 00:17:50,560 [Mitu õpilast] S. S? [Naer] 303 00:17:50,560 --> 00:17:55,510 Okei. Iga HTTP? Just 1? Okei. 304 00:17:55,510 --> 00:17:58,940 Nii et kõik meist ei saa häkkida, et kutt Facebook kontole kohe. 305 00:17:58,940 --> 00:18:04,100 Enamasti on see muutunud vaikimisi sisse lülitatud, vähemalt mõned veebilehed. 306 00:18:04,100 --> 00:18:08,120 Ja pikk lugu lühike, kui teie veebi liiklust ei ole krüpteeritud, 307 00:18:08,120 --> 00:18:12,960 mitte ainult ei HTML minna edasi ja tagasi üle WiFis krüpteerimata 308 00:18:12,960 --> 00:18:16,760 nii et ärge asjad küpsised minna edasi ja tagasi kogu õhk 309 00:18:16,760 --> 00:18:18,940 ilma igasuguse krüpteerimist. 310 00:18:18,940 --> 00:18:23,540 Nii et kui teil on lihtsalt natuke programmeerimise Savvy või natuke googeldamist oskusi 311 00:18:23,540 --> 00:18:27,410 leida vaba tarkvara, mis teeb seda, kõik mida sa pead tegema, on istuda Starbucks 312 00:18:27,410 --> 00:18:30,680 või istuda lennujaam, kus on tavaliselt krüpteerimata WiFi 313 00:18:30,680 --> 00:18:36,070 ja lihtsalt olge märksõnu nagu Set-Cookie: või PHPSESSID 314 00:18:36,070 --> 00:18:39,300 sest kui sul on tehniline Savvy lihtsalt vaadata WiFi 315 00:18:39,300 --> 00:18:43,010 kõigile bitti, mis voolavad läbi õhu see muster, 316 00:18:43,010 --> 00:18:50,840 saate siis öelda, et mehe PHPSESSID juhtub olema bo8dal ja nii edasi. 317 00:18:50,840 --> 00:18:53,890 Ja siis jälle, kui sa oled piisavalt tehniliselt Savvy või on õige vahend, 318 00:18:53,890 --> 00:18:58,890 saate siis lihtsalt ümber seadistada oma brauseri alustada esitades, et käsi tempel 319 00:18:58,890 --> 00:19:05,030 et Facebook.com ja Facebook on lihtsalt läheb eeldada, et sa oled see kutt 320 00:19:05,030 --> 00:19:09,880 sest kõik nad teavad, ei ole, kes sa oled, vaid et teil on selle kordumatu tunnus. 321 00:19:09,880 --> 00:19:14,650 Nii et kui sa varastada, et kordumatu tunnus ja esitada see veebiserver, kui sinu oma, 322 00:19:14,650 --> 00:19:16,860 nad lihtsalt läheb näidata teile, et inimese uudistevoo 323 00:19:16,860 --> 00:19:18,980 või selle isiku sõnumite või pokes. 324 00:19:18,980 --> 00:19:23,190 >> Ja ma Google nüüd kuidas aktiveerida HTTPS jaoks Facebook võibolla. 325 00:19:23,190 --> 00:19:25,150 Aga see on tõesti nii lihtne. 326 00:19:25,150 --> 00:19:27,660 Ja nii Facebook ja Google jms on saanud tõesti hea selles, 327 00:19:27,660 --> 00:19:31,870 kuid silma peal hoida kõik veel ühegi veebisaite külastada, et ei kasuta HTTP 328 00:19:31,870 --> 00:19:35,020 ja on mingi tundlikku teavet neile, 329 00:19:35,020 --> 00:19:37,490 kas see on majanduslikke või isiklikke vms. 330 00:19:37,490 --> 00:19:43,180 Kui nad ei kasuta seda, üsna tõenäoliselt võib küpsiseid niimoodi olema väga lihtsalt varastatud 331 00:19:43,180 --> 00:19:46,270 ja siis võltsitud, ja see on täpselt see, mida Firesheep tegi. 332 00:19:46,270 --> 00:19:48,250 Sa ei pea olema programmeerija. 333 00:19:48,250 --> 00:19:51,680 Kõik, mida pidin tegema oli on Interneti-ühendus, lae see tasuta tööriist, 334 00:19:51,680 --> 00:19:56,490 ja mida oleks vaja on sisselogimisel ja siis näitaks teile Facebook nimed 335 00:19:56,490 --> 00:20:00,170 inimese kohta Sanders, selles konkreetses meeleavaldus, teie ümber 336 00:20:00,170 --> 00:20:03,260 ja kõik, mida pidin tegema oli klõpsa oma nimi ja tarkvara automatiseerida protsessi 337 00:20:03,260 --> 00:20:05,970 nuusutamisel et küpsise, kui ta esitab Facebook kui sinu oma, 338 00:20:05,970 --> 00:20:07,990 ja voila, olete sisse logitud 339 00:20:07,990 --> 00:20:11,190 Nii et see on veel üks neist "ei tee seda" ametlikult. 340 00:20:11,190 --> 00:20:14,660 Kui teil on oma koduvõrku ja soovite käpard, kõigi vahenditega, 341 00:20:14,660 --> 00:20:17,530 aga aru, et see ei ületada piiri ülikooli keskkond. 342 00:20:17,530 --> 00:20:20,030 >> Aga eesmärk siin on tõesti rõhutada mitte kuidas seda teha 343 00:20:20,030 --> 00:20:22,320 aga kuidas kaitsta vastu selliseid asju. 344 00:20:22,320 --> 00:20:26,180 Ja triviaalne lahend siin, kuigi ta ise on vigane, 345 00:20:26,180 --> 00:20:31,360 on tõesti vähendada, kasutades mis tahes saite, mis ei kasuta HTTPS pidevalt. 346 00:20:31,360 --> 00:20:34,520 Nii saidid nagu Facebook ja Google on üha tihedamini ruudud 347 00:20:34,520 --> 00:20:36,200 kus saab valida sisse selline asi, 348 00:20:36,200 --> 00:20:40,000 ja pangad on olnud see juba aastaid samadel põhjustel. 349 00:20:40,000 --> 00:20:43,580 Nii lihtsalt natuke hirmu faktor, kui suudame. Aga see on see lühikokkuvõte. 350 00:20:43,580 --> 00:20:46,420 See, kuidas server mäletab, kes sa oled. 351 00:20:46,420 --> 00:20:50,760 Ja niipea, kui nad ei mäleta, kes sa oled, nad mäletavad midagi te 352 00:20:50,760 --> 00:20:56,140 et programmeerija on talletatud selle erilise superglobal nimega $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 Ja pset 7 me kasutame seda triviaalselt lihtsalt meeles pidada, int, 354 00:20:59,750 --> 00:21:02,260 nimelt ainulaadne kasutajatunnus, kes on sisse loginud, 355 00:21:02,260 --> 00:21:05,880 nii et me teame, et nad pole seal varem olnud. 356 00:21:05,880 --> 00:21:12,450 Kõik küsimused siis istungid või küpsiseid vms? 357 00:21:12,450 --> 00:21:15,130 Firesheep ei toimi nii hästi enam, 358 00:21:15,130 --> 00:21:18,310 ja sa pead panema oma arvuti erilist Siveetön ¾ 359 00:21:18,310 --> 00:21:20,700 nii et sa oled tegelikult kuulata liikluse peale ise. 360 00:21:20,700 --> 00:21:23,940 Nii et kui te praegu allalaadimine Firesheep, mõistan, et see ei ole päris nii lihtne 361 00:21:23,940 --> 00:21:26,850 nagu ta kunagi oli näidata. 362 00:21:26,850 --> 00:21:29,070 Hea küll. Ja ärge tehke seda Sanders. Kas see kodus. 363 00:21:29,070 --> 00:21:30,890 Andmebaase. 364 00:21:30,890 --> 00:21:33,580 Üks asi, me tegime pset 7 väga teadlikult 365 00:21:33,580 --> 00:21:37,780 aastal anname proovi andmebaasi tabeli kasutajatele, mis on umbes kasutajatunnused, 366 00:21:37,780 --> 00:21:41,020 mõned kasutajanimed, ja mõned krüpteeritud paroole seal. 367 00:21:41,020 --> 00:21:44,520 Ja nagu te näete, kui te ei ole juba, sa lähed pea muutma tabelis natuke. 368 00:21:44,520 --> 00:21:47,710 Sa lähed on lisada mõned vahemälu iga kasutajat selles tabelis, 369 00:21:47,710 --> 00:21:51,130 ja sa lähed on lisada teine ​​ajalugu tabel, portfellid tabel, 370 00:21:51,130 --> 00:21:53,310 või ehk nimetada seda midagi muud. 371 00:21:53,310 --> 00:21:56,740 Aga nii mõelnud, kuidas seda teha, teeme avada see tööriist 372 00:21:56,740 --> 00:22:00,570 mis me kasutasime reedel, aga kui harjumatu, aparaat kaasas tööriist 373 00:22:00,570 --> 00:22:04,680 nimetatakse phpMyAdmin mis on juhuslikult kirjutatud PHP, 374 00:22:04,680 --> 00:22:07,950 kuid tema eesmärk elus, kui ma sisse logida siin jharvard karmiinpunane, 375 00:22:07,950 --> 00:22:15,160 on mulle kasutajasõbralik viis vaatamise ja muudan andmebaasis. 376 00:22:15,160 --> 00:22:18,040 >> Andmebaas, mis ma olen töötab seade nimega MySQL. 377 00:22:18,040 --> 00:22:23,420 See on väga populaarne, ja see on tasuta avatud lähtekoodiga andmebaasi, mis on imeliselt lihtne kasutada, 378 00:22:23,420 --> 00:22:25,620 eriti ees lõpeb niimoodi. 379 00:22:25,620 --> 00:22:29,350 Mis see tööriist võimaldab mul teha, näiteks, on Hirm tabelid. 380 00:22:29,350 --> 00:22:30,890 Lubage mul minna ja seda teha. 381 00:22:30,890 --> 00:22:36,580 Reedel oleme loonud tabeli nimega õpilastele, et oli super lihtne. 382 00:22:36,580 --> 00:22:41,680 See oli 3 veergu - id, nimi ja e-posti - ja ma käsitsi sisestatud paar rida 383 00:22:41,680 --> 00:22:44,420 nagu David ja Mike sellel konkreetsel juhul. 384 00:22:44,420 --> 00:22:47,290 Võtkem see natuke edasi, ja oletame, et me taha mäletada rohkem 385 00:22:47,290 --> 00:22:49,660 kui lihtsalt nimi ja e-posti umbes kasutaja. 386 00:22:49,660 --> 00:22:53,090 Lubage mul kliki Struktuur siin üleval. 387 00:22:53,090 --> 00:22:55,440 Ja jälle pset te loeksite vajalikke samme siin, 388 00:22:55,440 --> 00:22:58,150 nii et ärge muretsege, kui mõned on see natuke kiire. 389 00:22:58,150 --> 00:22:59,690 Siis ma lähen klõpsa siin. 390 00:22:59,690 --> 00:23:02,270 Ma lähen lisada mõned veergude arvu pärast e-posti 391 00:23:02,270 --> 00:23:04,130 sest ma tahan lisada midagi maja. 392 00:23:04,130 --> 00:23:06,640 Ma unustasin salvestada õpilase maja. 393 00:23:06,640 --> 00:23:11,400 Lubage mul nuppu Mine, ja nüüd on meil see vorm, et kahjuks on veidi lai vasakult paremale, 394 00:23:11,400 --> 00:23:13,710 aga ma lähen helistada nimi selles valdkonnas maja, 395 00:23:13,710 --> 00:23:16,050 ja siis tüüp mul on nüüd valida. 396 00:23:16,050 --> 00:23:18,870 So let 's on lühike vestlus umbes erinevat tüüpi MySQL 397 00:23:18,870 --> 00:23:24,590 sest arvestades PHP on nõrgalt kirjutatud ja see omamoodi mängib kiire ja avar koos tüübid, 398 00:23:24,590 --> 00:23:29,430 andmebaasis eriti see on super oluline, et tegelikult kasutavad kirjutades oma eelise 399 00:23:29,430 --> 00:23:33,260 sest üks neist asjadest, MySQL ja muud andmebaasi mootorid teha saab 400 00:23:33,260 --> 00:23:37,910 on tagada, et te ei pane valeandmeid oma andmebaasi. 401 00:23:37,910 --> 00:23:41,850 See on omamoodi vaba veakontroll teile kättesaadavaks. 402 00:23:41,850 --> 00:23:46,250 >> Eluaseme me ilmselt ei taha seda int, mis on 32-bitine väärtus MySQL. 403 00:23:46,250 --> 00:23:49,810 Me tegime rääkida lühidalt reedel umbes varchar, mis tähistab eri pikkusega char. 404 00:23:49,810 --> 00:23:54,720 Mis see on? See võimaldab teil täpsustada, mida soovite, et see on string mingisugune. 405 00:23:54,720 --> 00:23:56,840 Sa tõesti ei tea ette, kui kaua see on, 406 00:23:56,840 --> 00:24:00,100 nii me suvaliselt öelda maja nimi võib olla 255 märki 407 00:24:00,100 --> 00:24:04,190 aga sa võiksid minna 32, 64 - suvaline arv tõesti. 408 00:24:04,190 --> 00:24:10,700 Aga ära kasutades varchar üle Väli char on mis? 409 00:24:10,700 --> 00:24:15,110 Lihtsalt intuitiivselt kui ma keri siin, märkate seal char ja seal on varchar. 410 00:24:15,110 --> 00:24:19,520 VARCHAR on eri pikkusega char; char on fikseeritud pikkusega char. 411 00:24:19,520 --> 00:24:24,730 Nii põhineb üksnes kõnealuse määratlusega, mis on kasuks või kahjuks kõik need? 412 00:24:24,730 --> 00:24:30,490 Teisisõnu, kes hoolib vahet, või miks peaks sul? 413 00:24:31,660 --> 00:24:35,750 >> Jah. [Üliõpilane] varchar on rohkem paindlikkust, kuid võtab rohkem mälu. 414 00:24:35,750 --> 00:24:40,730 Hea. VARCHAR kulub rohkem - Vaatame. Ma ei ole kindel, kas ma kuulsin seda õigust. 415 00:24:40,730 --> 00:24:42,360 Kas oskate öelda, et veel kord? 416 00:24:42,360 --> 00:24:45,850 [Üliõpilane] ma ütlesin varchar on ilmselt suuremat paindlikkust, kuid see võtab rohkem mälu. 417 00:24:45,850 --> 00:24:51,170 Huvitav. Okei. VARCHAR ilmselt annab rohkem paindlikkust, kuid võtab rohkem mälu. 418 00:24:51,170 --> 00:24:53,220 Viimane ei pruugi olla tõsi. 419 00:24:53,220 --> 00:24:56,290 See sõltub kontekstist, kuid olgem tagasi tulla, et. 420 00:24:56,290 --> 00:25:03,230 >> [Kuuldamatu õpilase vastus] Täpselt. 421 00:25:03,230 --> 00:25:06,900 See on tegelikult nii, et char on tavaliselt kasutada rohkem mälu 422 00:25:06,900 --> 00:25:10,950 sest char, nagu C, on nagu nöör, see on array tähemärki. 423 00:25:10,950 --> 00:25:13,690 Nii et kui sa ütled char valdkonnas pikkus 255, 424 00:25:13,690 --> 00:25:16,910 andmebaasis on sõna otseses mõttes annan teile 255 tähemärki. 425 00:25:16,910 --> 00:25:22,290 Ja kui see maja jõuab on Mather ja 6 märki kokku, 426 00:25:22,290 --> 00:25:25,090 sa raiskad üle 200 tähemärki. 427 00:25:25,090 --> 00:25:29,640 >> Nii varchar tõhusalt kasutab vaid nii palju sümboleid, mis on vajalik 428 00:25:29,640 --> 00:25:31,590 kuni summa. 429 00:25:31,590 --> 00:25:35,470 Aga auto hind on tegelikult jõudlust, potentsiaalselt. 430 00:25:35,470 --> 00:25:39,740 Kui sa tead juba ette, et kõik oma stringe saab olema 8 tähemärki - 431 00:25:39,740 --> 00:25:43,090 Näiteks oletame, et teil on vaja paroole pikkus 8 - 432 00:25:43,090 --> 00:25:47,350 Segamini kasutades char valdkonnas mõnikord, kuigi mitte sageli, 433 00:25:47,350 --> 00:25:51,100 on täpsustada fikseeritud pikkusega midagi nagu parool 434 00:25:51,100 --> 00:25:53,300 sest nüüd andmebaasi saab isegi targemaks. 435 00:25:53,300 --> 00:25:58,160 Kui ta teab, et iga char valdkonnas, iga stringi veerus on sama pikkusega, 436 00:25:58,160 --> 00:26:00,780 saad tagasi tunnuseks muutmälu. 437 00:26:00,780 --> 00:26:05,110 Võite hüpata üle erinevate char välju oma andmebaasi tabeli 438 00:26:05,110 --> 00:26:07,940 sest mõtle andmebaasi ridu ja veerge. 439 00:26:07,940 --> 00:26:11,670 Nii et kui igaüks stringid on sama pikkusega, 440 00:26:11,670 --> 00:26:17,820 sa tead, et esimene on kell bait 0, järgmise üks on bait 8 441 00:26:17,820 --> 00:26:20,240 ja siis 16 ja siis 24 jne. 442 00:26:20,240 --> 00:26:24,500 Nii et kui kõik stringid on sama pikkusega, saab hüpata ümber palju tõhusamalt. 443 00:26:24,500 --> 00:26:26,710 Nii et võib olla kasu nii jõudluse, 444 00:26:26,710 --> 00:26:29,420 kuid tavaliselt sul ei ole luksus, teades ette, 445 00:26:29,420 --> 00:26:32,170 nii varchar on tee minna. 446 00:26:32,170 --> 00:26:36,030 Siin on veel üks detail, et isegi Facebookis sattus lõpuks. 447 00:26:36,030 --> 00:26:39,670 Ints on suur, ja me justkui neid kasutada vaikimisi igal ajal tahame arv, 448 00:26:39,670 --> 00:26:41,750 aga see on ainult 32 bitti. 449 00:26:41,750 --> 00:26:46,210 >> Ja kuigi Facebook ei ole päris 4000000000 kasutajad nüüd, 450 00:26:46,210 --> 00:26:48,680 seal on kindlasti mõned inimesed seal mitme kontoga 451 00:26:48,680 --> 00:26:50,960 või kontodel, mis on avatud ja seejärel suletakse, 452 00:26:50,960 --> 00:26:55,130 ja nii Facebook ise usun, paar aastat tagasi oli ülemineku int 453 00:26:55,130 --> 00:27:00,010 et, nagu on tabavalt nimetatakse, BIGINT, mis on vaid 64 bitti asemel. 454 00:27:00,010 --> 00:27:02,230 Nii et ka see on disain otsuse. 455 00:27:02,230 --> 00:27:06,570 Sa oleks hämmastavalt õnnelik, kui oma lõpliku projekti lülitab käivitamisel 456 00:27:06,570 --> 00:27:10,010 on 4000000000 ja 1 kasutajad, anda või võtta, 457 00:27:10,010 --> 00:27:13,200 mille puhul kasutatakse ints võiks olla veidi lühinägelik. 458 00:27:13,200 --> 00:27:16,230 Aga tegelikult oma kasutajate tabel on ilmselt trahvi ints. 459 00:27:16,230 --> 00:27:19,340 Aga midagi pset 7, nagu oma ajaloo tabel, 460 00:27:19,340 --> 00:27:23,700 peate võib-olla tuhandeid, miljoneid kasutajaid kui te areneda etrade.com. 461 00:27:23,700 --> 00:27:26,020 Nii et arvestades ei pruugi teil olla rohkem kui 4 miljardit kasutajat, 462 00:27:26,020 --> 00:27:30,070 Nende kasutajate sul on võib-olla rohkem kui 4 miljardit tehingut aja jooksul - 463 00:27:30,070 --> 00:27:33,200 ostab ja müüb ja asju oma ajalugu. 464 00:27:33,200 --> 00:27:38,090 Nii et kui sul ennetada - jällegi, need on head probleemid on, kui sul on nii palju andmeid - 465 00:27:38,090 --> 00:27:40,920 kui sa ennetada andmed üle suurust int, 466 00:27:40,920 --> 00:27:47,740 läheb koos midagi BIGINT on suund ei piisavalt sageli vastu disainerid 467 00:27:47,740 --> 00:27:49,710 sest inimesed näitaja, et ei kavatse olla probleem, 468 00:27:49,710 --> 00:27:51,930 aga see on seda lihtne valida midagi suurem. 469 00:27:51,930 --> 00:27:55,380 Decimal me kasutame sisse pset 7, mis määratleb fikseeritud täpsus 470 00:27:55,380 --> 00:27:59,840 nii saab vältida puudutavates küsimustes ujukite ja kahekohalised ja reaalarvud jms. 471 00:27:59,840 --> 00:28:02,440 >> Ja siis on mõned teised valdkonnad siin. Me laine meie kätes neid mingil määral. 472 00:28:02,440 --> 00:28:07,270 Aga kuupäevade, kellaaegade kõigil on ettenähtud vormis MySQL, 473 00:28:07,270 --> 00:28:10,830 ja ära hoida kuupäevadel kuupäevad ja ei varchars 474 00:28:10,830 --> 00:28:15,730 tähendab, et andmebaasi saab tegelikult vormindada neid erinevates formaatides, 475 00:28:15,730 --> 00:28:18,800 kas USA formaadis või Euroopa formaadis vms - aga sa tahad seda - 476 00:28:18,800 --> 00:28:22,700 palju tõhusamalt kui ta oli vaid mõned üldised varchar. 477 00:28:22,700 --> 00:28:25,150 Ja siis seal on mõned muud binaarne, varbinary, plekid. 478 00:28:25,150 --> 00:28:28,580 Need on binaarne suuremõõtmeliste esemete, samuti saate salvestada binaarandmeid 479 00:28:28,580 --> 00:28:30,750 samuti geomeetriline andmeid andmebaasis. 480 00:28:30,750 --> 00:28:34,350 Aga meile me tavaliselt hoolivad ints ja varchars jms. 481 00:28:34,350 --> 00:28:36,230 Lőpetame seda näiteks maja. 482 00:28:36,230 --> 00:28:40,030 Maja ma omavoliliselt öelda on 255 tähemärki. 483 00:28:40,030 --> 00:28:42,850 Siis vaikeväärtus me võiks seda teha. 484 00:28:42,850 --> 00:28:47,440 Võiksime vaikimisi jätab kõik Mather House, näiteks. 485 00:28:47,440 --> 00:28:49,710 See, kuidas me saaksime täpsustada, et andmebaas 486 00:28:49,710 --> 00:28:52,460 tuleks tagada, et keegi on alati väärtus. Aga ma jätan selle olema. 487 00:28:52,460 --> 00:28:55,270 Tegelikult inimestele, kes elavad väljaspool õppeasutuse ja mitte majas, 488 00:28:55,270 --> 00:28:59,590 äkki ma tegelikult tahan täpsustada, et vaikimisi väärtust maja on NULL, 489 00:28:59,590 --> 00:29:04,890 ja siis ma pean selle kasti ja ütle andmebaasi see on okei, kui kasutaja majas on NULL. 490 00:29:04,890 --> 00:29:07,270 >> Jällegi, see on teine ​​kaitsemehhanism saab kehtestada 491 00:29:07,270 --> 00:29:10,590 nii et sa ei pea isegi pane see oma PHP koodi tingimata. 492 00:29:10,590 --> 00:29:14,630 Andmebaasis tagab, et asjad on või ei ole NULL. 493 00:29:14,630 --> 00:29:17,310 Ja siis viimaks, atribuudid. 494 00:29:17,310 --> 00:29:18,920 Ükski neist pole tegelikult oluline. 495 00:29:18,920 --> 00:29:22,880 Binary, allkirjastamata - ükski neist on seotud varchar. 496 00:29:22,880 --> 00:29:24,220 Indeks. 497 00:29:24,220 --> 00:29:27,320 Kas keegi teab või mäletan või on oletada, milline indeks on 498 00:29:27,320 --> 00:29:29,510 midagi nagu maja? 499 00:29:29,510 --> 00:29:35,240 Ka see on tegelikult oluline ja suhteliselt lihtne disain otsuse. 500 00:29:35,240 --> 00:29:39,200 Neile, kes pole veel seda näinud, reedel rääkisime põgusalt primaarseid võtmeid. 501 00:29:39,200 --> 00:29:43,240 Andmebaasi tabeli, primaarvõti on vallas või veerg 502 00:29:43,240 --> 00:29:46,270 mis identifitseerib read tabelis. 503 00:29:46,270 --> 00:29:49,150 Nii käesolevas tabelis meil sümbolid, meil on nimed ja e-kirju. 504 00:29:49,150 --> 00:29:52,050 Milline neist on parim kandidaat olema primaarvõti, 505 00:29:52,050 --> 00:29:55,810 kelle ülesandeks on üheselt identifitseerida rida? 506 00:29:55,810 --> 00:29:57,530 Ilmselt ID. 507 00:29:57,530 --> 00:29:59,930 Väidetavalt me ​​võiks ka kasutada, mida küll? 508 00:29:59,930 --> 00:30:02,860 Äkki võiks kasutada e-posti, sest teoreetiliselt on see ainulaadne 509 00:30:02,860 --> 00:30:05,380 kui inimesed jagavad e-posti kontosid. 510 00:30:05,380 --> 00:30:09,980 Kuid reaalsus on see, et kui te kasutate numbriline ID nagu 1234, 511 00:30:09,980 --> 00:30:14,170 see on ainult 32 bitti, samas e-posti aadress oleks see palju baite või see palju baite. 512 00:30:14,170 --> 00:30:16,610 Nii tõhususe kordumatute tunnuste, 513 00:30:16,610 --> 00:30:19,270 see kipub olema hea tava lihtsalt kasutada int 514 00:30:19,270 --> 00:30:23,090 isegi kui teil on mõned string kandidaat et sa peaksid arvatavasti kasutada. 515 00:30:23,090 --> 00:30:26,760 >> Sest midagi maja, see ei peaks olema primaarvõti 516 00:30:26,760 --> 00:30:30,770 sest siis ainult 1 inimene võib elada Ema ja 1 inimesel Currieri jms. 517 00:30:30,770 --> 00:30:32,790 Samuti ei tohiks see olla unikaalne. 518 00:30:32,790 --> 00:30:37,830 Vahe alg-ja ainulaadne on see, et juhul, kui meie praegune tabel, 519 00:30:37,830 --> 00:30:42,620 ID oleks esmane, kuid kiri ei ole esmane põhjusel me lihtsalt mainitud - 520 00:30:42,620 --> 00:30:44,740 Performance - kuid see peaks siiski olema unikaalne. 521 00:30:44,740 --> 00:30:47,200 Nii saate siiski jõustada unikaalsus tegemata nõude 522 00:30:47,200 --> 00:30:49,520 et see on super oluline primaarväli. 523 00:30:49,520 --> 00:30:52,610 Aga see on väga kasulik: Register. 524 00:30:52,610 --> 00:30:56,180 Kui sa tead juba ette oma lõpliku projekti, pset 7, või üldiselt 525 00:30:56,180 --> 00:30:59,480 et selles valdkonnas maja saab olema midagi, mida otsida palju 526 00:30:59,480 --> 00:31:01,910 kasutades valige märksõna või midagi muud, 527 00:31:01,910 --> 00:31:05,180 siis saate ennatlikult öelda andmebaas töötada oma võlu 528 00:31:05,180 --> 00:31:10,510 ja veenduge, et see tekitab mällu tahes väljamõeldud andmestruktuurid vaja 529 00:31:10,510 --> 00:31:13,770 kiirendada otsingud põhineb maja. 530 00:31:13,770 --> 00:31:17,860 Võib-olla ta kasutab hash tabelit, äkki ta kasutab seotud nimekirja. 531 00:31:17,860 --> 00:31:21,260 Tegelikult see kipub kasutama puu, sageli struktuuri, mida nimetatakse B-tree - 532 00:31:21,260 --> 00:31:24,090 ei kahendpuu kuid B-tree - mis on väga lai puu 533 00:31:24,090 --> 00:31:27,370 et võite näha klassi nagu CS124, andmestruktuuride klass. 534 00:31:27,370 --> 00:31:31,800 Aga lühidalt öeldes, sa ei pea muretsema, et kui kasutate Smart andmebaasi tarkvara. 535 00:31:31,800 --> 00:31:35,890 Sa võid öelda seda, "Index selles valdkonnas nii et ma ei otsi seda tõhusamalt." 536 00:31:35,890 --> 00:31:40,250 >> Kui jätate selle välja ja sa püüad otsida igaüks andmebaasis kes elab Mather, 537 00:31:40,250 --> 00:31:42,710 see vaimule lineaarne otsing. 538 00:31:42,710 --> 00:31:45,360 Ja kui sul on 6000 üliõpilastele, kõik elavad mõnes majas, 539 00:31:45,360 --> 00:31:47,900 sa lähed otsida kogu tabelist leida Matherites, 540 00:31:47,900 --> 00:31:52,190 arvestades, et kui sa ütled indeks, loodetavasti see midagi lähedal logaritmiline otsing 541 00:31:52,190 --> 00:31:54,510 leida seda tüüpi õpilased. 542 00:31:54,510 --> 00:31:56,750 See on lihtsalt vaba funktsioon sisse lülitada, 543 00:31:56,750 --> 00:31:59,530 kuigi see ei tulnud hinnaga mõned palju ruumi. 544 00:31:59,530 --> 00:32:02,690 Lõpuks auto-juurdekasvu, see AI valdkonnas, 545 00:32:02,690 --> 00:32:05,830 mis tähendab lihtsalt, kui see on int ja te ei taha hoolitseda juurdekasvu ise 546 00:32:05,830 --> 00:32:07,570 iga kord on uus kasutaja, kontrollige, 547 00:32:07,570 --> 00:32:11,910 ja iga kasutaja, et saab lisada automaatselt saada uus ID. 548 00:32:11,910 --> 00:32:15,620 Olgem nuppu Salvesta ja nüüd lähme norima selle disain. 549 00:32:15,620 --> 00:32:20,200 Kui ma minema Sirvi, teate, et nii Mike ja minu maja on NULL. 550 00:32:20,200 --> 00:32:22,420 Oskan kasutada phpMyAdmin muuta seda käsitsi. 551 00:32:22,420 --> 00:32:25,110 Ma ei saa minna siia ja kirjuta Ema ja vajuta Enter, 552 00:32:25,110 --> 00:32:27,740 ja nüüd teade tabelis on erinev. 553 00:32:27,740 --> 00:32:29,270 Aga märkate ma võiks teha ka midagi muud. 554 00:32:29,270 --> 00:32:33,530 Davidi ID on 1, seega phpMyAdmin jälle on vaid administratiivne vahend; 555 00:32:33,530 --> 00:32:35,970 see ei ole midagi oma kasutajate kunagi näha. 556 00:32:35,970 --> 00:32:38,810 Nii et kui ma selle asemel nuppu SQL sakk üles üles - 557 00:32:38,810 --> 00:32:41,450 ja jälle, pset 7 tutvustab teile rohkem nendele päringutele - 558 00:32:41,450 --> 00:32:45,260 Võin käsitsi käivitada SQL Structured Query Language käsk 559 00:32:45,260 --> 00:32:56,410 UPDATE kasutajad SET maja = "Pfoho", kus id = 1. 560 00:32:56,410 --> 00:33:00,830 Need SQL päringuid on kenasti piisavalt, päris loetav vasakult paremale. 561 00:33:00,830 --> 00:33:04,350 Uuenda kasutajate tabelis, määrata Väli maja Pfoho 562 00:33:04,350 --> 00:33:06,830 kus kasutaja ID on 1. 563 00:33:06,830 --> 00:33:11,480 Või ma võiks isegi teha, kus e = 'malan@harvard.edu ". 564 00:33:11,480 --> 00:33:14,860 Nii kaua, kui mis identifitseerib mind, et teeks samuti. 565 00:33:14,860 --> 00:33:18,810 Aga ID kipub olema võimsamat, nii teeme seda. 566 00:33:18,810 --> 00:33:22,950 Olgem nuppu Mine. Okei, lecture.users ei eksisteeri. Milline on minu viga? 567 00:33:22,950 --> 00:33:26,220 Mis on tabelis tegelikult nimetatakse siin? 568 00:33:26,220 --> 00:33:28,770 Seda nimetatakse õpilased lihtsalt sellepärast, et me tegime siin üleval vasakus ülaservas. 569 00:33:28,770 --> 00:33:31,860 Seda nimetatakse õpilased, mitte kasutajatele. Nii nuppu Mine nüüd. 570 00:33:31,860 --> 00:33:34,330 1 rida mõjutanud. Päring võttis aega 0,01 sekundit. 571 00:33:34,330 --> 00:33:38,010 Kui ma vajutan Sirvi nüüd, nüüd Malan elab Pfoho. 572 00:33:38,010 --> 00:33:42,070 Nii et see on teine ​​maitse SQL, kuid pset sõelub natuke rohkem sellest. 573 00:33:42,070 --> 00:33:44,710 >> Seal on loll otsus, mida ma olen juba siin. 574 00:33:44,710 --> 00:33:47,820 Ma väidan, et see andmebaasi disain on ebaefektiivne 575 00:33:47,820 --> 00:33:51,650 sest rohkem inimesi lisan õpilastele tabel, 576 00:33:51,650 --> 00:33:54,730 rohkem meist ma alustada lisades, rohkem TF ma alustada lisades, 577 00:33:54,730 --> 00:33:58,320 me kavatseme alustada näha, mida koondamised tabelis? 578 00:34:00,840 --> 00:34:06,020 >> Jah. [Üliõpilane] Nähes, et see on õpilased, me kasutame sama [kuuldamatu] 579 00:34:06,020 --> 00:34:07,360 Sama - Õigus, täpselt. 580 00:34:07,360 --> 00:34:10,400 Nii et kui 400 inimest elavad Ema, võta või jäta, 581 00:34:10,400 --> 00:34:15,000 lõpuks see tabel läheb on 400 rida, et öelda "Ema", "Ema" 582 00:34:15,000 --> 00:34:16,590 "Ema", "Ema", "Ema". 583 00:34:16,590 --> 00:34:19,820 Me raiskame kõik need baidid, ja seal on paar takeaways seal. 584 00:34:19,820 --> 00:34:23,080 1, seal on hull nurga juhul, kui kui keegi maksab palju raha 585 00:34:23,080 --> 00:34:25,949 ja sõnastatakse ümber Ema, meil muuta kogu meie andmebaasi tabelisse. 586 00:34:25,949 --> 00:34:29,730 See ei juhtu tihti, kuigi Pfoho oli kord kutsunud Põhja Maja 15 aastat tagasi, 587 00:34:29,730 --> 00:34:32,310 nii see juhtub. Aga see pole veel kõik, et veenvad. 588 00:34:32,310 --> 00:34:36,000 Selgem kui nurgas sarnast juhtumit vaja uuendada andmeid lahtiselt 589 00:34:36,000 --> 00:34:41,150 jaoks andmebaasi miks sa ladustamiseks MATHER uuesti ja uuesti ja uuesti ja uuesti? 590 00:34:41,150 --> 00:34:43,020 See on palju sümboleid, 6 tähemärki. 591 00:34:43,020 --> 00:34:45,500 Kas me isegi parem, eriti Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 Kindlasti me saame teha paremini kui palju märke. 593 00:34:48,320 --> 00:34:51,790 Miks mitte lihtsalt siduda kordumatu tunnus iga maja 594 00:34:51,790 --> 00:34:55,020 ja poodi, et iga kasutaja? Nii et proovime seda. 595 00:34:55,020 --> 00:35:00,610 Selle asemel, et lihtsalt kasutada õpilaste tabelit, lubage mul minna oma loengu andmebaas siin üleval vasakul. 596 00:35:00,610 --> 00:35:02,600 Teade siin öeldakse Loo tabel. 597 00:35:02,600 --> 00:35:04,550 Lubage mul luua uus tabel nimega maju. 598 00:35:04,550 --> 00:35:08,880 Veergude arvu saab olema 2. Enter. 599 00:35:08,880 --> 00:35:11,200 Nüüd on mul 2 välja. 600 00:35:11,200 --> 00:35:14,600 Ma nimetan seda nime, ja see saab olema varchar pikkuse 255, 601 00:35:14,600 --> 00:35:18,770 >> aga see on päris meelevaldne. Las ma panen selle siia alla kokkuleppeliselt. 602 00:35:18,770 --> 00:35:22,840 Nii pannakse ID siin. Anname igale majale kordumatu tunnus. 603 00:35:22,840 --> 00:35:25,360 Anname iga maja nimi. 604 00:35:25,360 --> 00:35:30,980 Olgem täpsustada, et identifikaatoriks allkirjastamata lihtsalt kokkuleppeliselt kasutada ainult positiivsed arvud. 605 00:35:30,980 --> 00:35:35,020 Lähme edasi ja annan selle auto juurdekasvu valdkonnas praegu. 606 00:35:35,020 --> 00:35:38,160 Ja me vajame midagi muud? 607 00:35:38,160 --> 00:35:41,010 Lähme edasi ja klõpsake nuppu Salvesta. 608 00:35:41,010 --> 00:35:42,480 Nüüd on mul teises tabelis. 609 00:35:42,480 --> 00:35:45,860 Teade nagu kõrvale see on veidi segasena SQL käsk 610 00:35:45,860 --> 00:35:50,280 et kui oleks pidanud kirjutama käsitsi, kui ei kasuta haldusakti tööriista nagu phpMyAdmin. 611 00:35:50,280 --> 00:35:51,990 Nii et teine ​​põhjus, miks me seda kasutada. 612 00:35:51,990 --> 00:35:55,480 See on imeliselt kasulik omamoodi pedagoogiliselt sest võite klõpsata ümber 613 00:35:55,480 --> 00:36:01,050 ja nuputada, kuidas asjad töötavad, lihtsalt kopeerida ja kleepida, mida phpMyAdmin tegi. 614 00:36:01,050 --> 00:36:04,150 Aga CREATE TABLE käsuga, mida oli lihtsalt täita, ja siin on mu laual. 615 00:36:04,150 --> 00:36:11,370 Lubage mul minna nüüd ja kasutada toores SQL asemel lihtsustavad klõpsates menüü Lisa jaotises. 616 00:36:11,370 --> 00:36:15,040 Las ma ei INSERT INTO majad, 617 00:36:15,040 --> 00:36:22,230 ja ma lähen ütlen nime maja läheb on väärtus "Ema". 618 00:36:22,230 --> 00:36:24,790 Nii see on. See süntaks on veidi segasena. 619 00:36:24,790 --> 00:36:26,660 See on nimi väljad tahame lisada. 620 00:36:26,660 --> 00:36:30,390 Need on väärtused, mida me tahame lisada nimetatud valdkondades. Lubage mul nuppu Mine. 621 00:36:30,390 --> 00:36:34,410 1 rida sisestatud võttis aega 0,02 sekundit. Lubage mul klõpsake Sirvi nüüd. 622 00:36:34,410 --> 00:36:42,020 >> Teade kui ma nuppu Sirvi, seal on Mather, kelle ID on oma automaatika ja number 1. 623 00:36:42,020 --> 00:36:45,000 Las ma teen veel ühe. Lubage mul minna SQL sakk. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO maju. Nimi maja läheb on väärtus Pfoho ja nii edasi. 625 00:36:52,950 --> 00:36:56,350 Mine. Ja ma ei saa seda enam teha uuesti ja uuesti ja uuesti. 626 00:36:56,350 --> 00:36:59,470 Või kui sa igavleda kasutades phpMyAdmin, võid lihtsalt kasutada menüü Lisa jaotises 627 00:36:59,470 --> 00:37:01,000 ja ei pea sisestama toores SQL. 628 00:37:01,000 --> 00:37:04,690 Sa võid paugu välja kiiremini, trükkides trükimasinal, näiteks Currieri, Enter, 629 00:37:04,690 --> 00:37:07,610 ja nüüd, kui meil klõpsake Sirvi, seal on Currieri ID-3. 630 00:37:07,610 --> 00:37:09,920 Nii et see on see, mida me mõtleme auto-juurdekasvu. 631 00:37:09,920 --> 00:37:12,280 Aga nüüd on meil määrata midagi õpilased. 632 00:37:12,280 --> 00:37:16,240 Õpilaste mida peaks andmete tüüpi maja valdkonnas praegu olla? 633 00:37:16,240 --> 00:37:19,450 See peaks olema int, eks? 634 00:37:19,450 --> 00:37:23,950 Nii et eesmärk siin on tegurdada, muidu tuntud normaliseerida, tabelid 635 00:37:23,950 --> 00:37:27,940 nii et me ei salvesta informatsiooni liigselt üheski minu tabelid. 636 00:37:27,940 --> 00:37:31,130 Ja jälle tee me olime siin kavatseb öelda Ema, Ema, 637 00:37:31,130 --> 00:37:34,220 Ema, Ema, Pfoho, Pfoho, Pfoho, Pfoho, mis on väga üleliigne 638 00:37:34,220 --> 00:37:36,240 seisukohalt raiskamine tähemärki. 639 00:37:36,240 --> 00:37:40,820 Nii et lubage mul minna ja muuta, kui klõpsate struktuur, 640 00:37:40,820 --> 00:37:44,620 ja las ma minna ja vaadata välja maja valdkonnas nuppu Muuda, 641 00:37:44,620 --> 00:37:46,990 ja nüüd ma lähen selle muutmiseks olema int. 642 00:37:46,990 --> 00:37:49,490 255 ei ole enam oluline. 643 00:37:49,490 --> 00:37:54,010 Lubage mul minna ja öelda, et on hea, kui see on ikka NULL. Salvesta. 644 00:37:54,010 --> 00:37:55,870 Nüüd tabelis õpilased on muudetud edukalt, 645 00:37:55,870 --> 00:37:59,090 ja märgata taas maja on int. 646 00:37:59,090 --> 00:38:02,220 Nagu kõrvale, ignoreerida number sulgudes, kui on tegemist täisarvudega. 647 00:38:02,220 --> 00:38:03,770 >> See on pärand põhjustel. 648 00:38:03,770 --> 00:38:06,920 Juba järgmisel päeval, kui sa ei ole GUIs, siis selle asemel oli käsurea keskkond, 649 00:38:06,920 --> 00:38:11,580 10 ja 11 täpsustatud, kui palju märke, mida peaks näitama 650 00:38:11,580 --> 00:38:13,950 Terminali aknasse tegelikult kuvada väljad. 651 00:38:13,950 --> 00:38:19,150 See on midagi pistmist natuke pikkuse tegelik valdkonnas, nii me lihtsalt ignoreerida, et nüüd. 652 00:38:19,150 --> 00:38:20,990 Nüüd ma pean minema tabelis. 653 00:38:20,990 --> 00:38:24,610 Ja kui Taavet elab Ema, maja ei tohiks olla 0, 654 00:38:24,610 --> 00:38:27,350 mis on vaikimisi int lähim väärtus on NULL. 655 00:38:27,350 --> 00:38:29,810 Ta peaks elama maja 1. 656 00:38:29,810 --> 00:38:36,870 Olgem omavoliliselt öelda, et Mike elab Pfoho, nii maja number 2. 657 00:38:36,870 --> 00:38:40,160 Nüüd on mu laua paistab pisut rohkem segasena. 658 00:38:40,160 --> 00:38:41,960 Aga pean tõhusust. 659 00:38:41,960 --> 00:38:44,860 Ma olen nüüd kasutades ainult 32 bitti tuvastada maja, 660 00:38:44,860 --> 00:38:49,530 mis tähendab, seal on ainult 1 kanooniline määratlus minu maja Ema ja Pfoho 661 00:38:49,530 --> 00:38:52,090 ja see on majades tabelis. 662 00:38:52,090 --> 00:38:55,880 Nii et kui ma tahan nüüd ühineks neid tabeleid, mõtle seda nii. 663 00:38:55,880 --> 00:39:01,980 Siin on mul õpilased lauda ja parempoolne seal on need numbrid, 1 ja 2. 664 00:39:01,980 --> 00:39:04,180 1 on Mather, 2 on Pfoho. 665 00:39:04,180 --> 00:39:08,580 Meil on samad numbrid selles teises tabelis, mida nimetatakse majad, 666 00:39:08,580 --> 00:39:11,020 1 ja 2 ja 3 jaoks need 3 maja. 667 00:39:11,020 --> 00:39:14,990 Mida me nüüd tahame teha, on olla võime kood, PHP ja SQL, 668 00:39:14,990 --> 00:39:18,800 sorteerida ning ühineks neid tabeleid, kus juhul, kui need on õpilased ja need on majad, 669 00:39:18,800 --> 00:39:22,050 me tahame kuidagi neid omavahel kombineerida nii, et 1 read kuni 1 670 00:39:22,050 --> 00:39:25,670 2 rida kuni 2, ja et me saaksime aru saada, kus David 671 00:39:25,670 --> 00:39:28,000 ja kus Mike ja kus kõik elavad. 672 00:39:28,000 --> 00:39:31,850 Selleks on meil võimalik täita SQL päring nagu pärast. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM õpilased LIITU maja - 674 00:39:40,470 --> 00:39:43,000 Ja nüüd, millised väljad tahame ühineda? 675 00:39:43,000 --> 00:39:49,520 Nii students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> Vähe segasena, kuid see osa tähendab sõna otseses mõttes luua uus ajutine tabel 677 00:39:54,150 --> 00:39:56,690 see on ühinemise tulemusena õpilased ja maju. 678 00:39:56,690 --> 00:40:00,340 Ja kuidas soovite ühendada tippude mu sõrmed siin? 679 00:40:00,340 --> 00:40:05,280 Määra õpilaste maja valdkonnas võrdne maja "ID valdkonnas. 680 00:40:05,280 --> 00:40:10,220 Ja kui ma nüüd nuppu Mine, ma saan tagasi täpselt, mida lootsin. 681 00:40:10,220 --> 00:40:15,890 David on Mather, Mike on Pfoho, ja ma ka näha unikaalsete identifikaatorite. 682 00:40:15,890 --> 00:40:18,640 Aga point on nüüd mul on täielik tabel. 683 00:40:18,640 --> 00:40:23,020 Ja nii Buffee siin pset 7 või tõesti lõpliku projekti: 684 00:40:23,020 --> 00:40:25,830 Kui leiate, et olete ladustamiseks iga tükk info liigselt, 685 00:40:25,830 --> 00:40:28,850 kas see on maja, võibolla on see linn, riik, ja ZIP 686 00:40:28,850 --> 00:40:32,050 kus ZIP saab tavaliselt, kuid mitte alati kasutada kordumatu tunnus, 687 00:40:32,050 --> 00:40:35,810 ei lähe läbi kasutamise vaimselt ja siis midagi phpMyAdmin 688 00:40:35,810 --> 00:40:40,660 Faktooringu, et ühiste andmete tõttu eriti kui teie koduleheküljel saab rohkem ka kasutatakse 689 00:40:40,660 --> 00:40:45,440 ja üha populaarsemaks, on see, kuidas sa veenduge, et kõik on super kiire, 690 00:40:45,440 --> 00:40:51,930 andes andmebaasi nii palju vihjeid selle ainulaadsust kui võimalik. 691 00:40:51,930 --> 00:40:53,860 See oli palju. 692 00:40:53,860 --> 00:40:59,010 Kas on küsimusi? Hea küll. Võtame 5-minutilise vaheaja seal ja koondada. 693 00:41:01,600 --> 00:41:03,540 Hea küll. 694 00:41:03,540 --> 00:41:08,680 Järgnev on näide, mida kasutati mõned aastad tagasi kui võtsin CS161, 695 00:41:08,680 --> 00:41:10,960 mis on operatsioonisüsteemide klassi kolledži 696 00:41:10,960 --> 00:41:15,160 mis on tuntud hämmastav, kuid hull töö mahtu, 697 00:41:15,160 --> 00:41:19,810 ja see keskendub tõesti mõnede madala probleeme, mis tekivad operatsioonisüsteemide 698 00:41:19,810 --> 00:41:22,700 ja ka isegi maailmas andmebaase. 699 00:41:22,700 --> 00:41:27,040 >> Lugu, mis öeldi mu professor, Margo Seltzer, et aasta oli järgmine. 700 00:41:27,040 --> 00:41:30,990 Oletame, et teil on vähe Dorm külmik teile ja teie toakaaslane 701 00:41:30,990 --> 00:41:34,030 ja nii sa tõesti meeldib piim. 702 00:41:34,030 --> 00:41:36,360 Nii et te tulete klassi üks päev, su toakaaslane ei ole veel olemas, 703 00:41:36,360 --> 00:41:39,650 avate külmik, ja sa mõistad, "Oh kurat, me oleme väljas piima." 704 00:41:39,650 --> 00:41:42,070 Nii et sa sulgeda külmik, jalutad üle tänava CVS 705 00:41:42,070 --> 00:41:45,830 ja saada üha pikad read ostma piima CVS. 706 00:41:45,830 --> 00:41:48,470 Vahepeal oma toakaaslase jõuab koju oma klassi, 707 00:41:48,470 --> 00:41:51,690 tuleb tuppa, avab külmkapi tõesti tahavad mõned piima, 708 00:41:51,690 --> 00:41:54,130 avab külmkapi ja "Kurat, ei piima." 709 00:41:54,130 --> 00:41:57,890 Nii ta sulgeb külmik, kõnnib uksest välja ja läheb Abp 710 00:41:57,890 --> 00:42:00,910 või mujal kui CVS kuhu ei kavatse juhtuma üksteist 711 00:42:00,910 --> 00:42:02,790 minna saaksin piima. 712 00:42:02,790 --> 00:42:04,820 Muidugi paar minutit hiljem, nii saad koju 713 00:42:04,820 --> 00:42:07,740 ja nüüd on kaks korda nii palju piima, kui sa tegelikult tahtsid. 714 00:42:07,740 --> 00:42:10,670 Ja kui piima, nüüd siis läheb minema halb, sest sulle meeldib piim 715 00:42:10,670 --> 00:42:14,200 aga sa tõesti ei meeldi piim, nii et nüüd teil on liiga palju piima, nii see läheb hapuks. 716 00:42:14,200 --> 00:42:16,830 See on kohutav, kohutav olukord. 717 00:42:16,830 --> 00:42:22,920 Mis oleks lahendanud selle vasturääkivus, kui sa olid esimene toakaaslane koju? Jah. 718 00:42:22,920 --> 00:42:25,970 [Üliõpilane] Sa oleks pidanud jättis teate. [Naer] 719 00:42:25,970 --> 00:42:28,090 Hea. Sa oleks pidanud jättis teate. 720 00:42:28,090 --> 00:42:32,320 Sa oleks pidanud Post-it märkmepaberi või nagu öeldes: "Möödas piima," 721 00:42:32,320 --> 00:42:36,830 ja siis teie toakaaslane kontseptuaalselt oleks lukustades tegelikult teeme seda. 722 00:42:36,830 --> 00:42:38,010 Või võite minna 1 samm edasi. 723 00:42:38,010 --> 00:42:41,060 Võid sõna otseses mõttes lukustada külmkapp koos mingi tabalukk, 724 00:42:41,060 --> 00:42:44,870 ja nüüd teie toakaaslane on sõna otseses mõttes lukustades külmkapp. 725 00:42:44,870 --> 00:42:48,520 Kui me üldistada tagasi programmeerimine, 726 00:42:48,520 --> 00:42:51,610 saate peaaegu mõelda külmik kui mingi muutuja või struct, 727 00:42:51,610 --> 00:42:53,500 mingi konteiner teadmiseks. 728 00:42:53,500 --> 00:42:58,290 Probleem põhimõtteliselt on selles, et te mõlemad lubati kontrollida 729 00:42:58,290 --> 00:43:02,370 või lugeda riigi andmete struktuur, 730 00:43:02,370 --> 00:43:08,050 aga sa vaatasid seda eri aegadel ja veel nii tegite otsuse 731 00:43:08,050 --> 00:43:11,920 põhineb olukorda maailmas nendel erinevatel aegadel. 732 00:43:11,920 --> 00:43:15,570 Nii oli teile lukustatud külmkapp, siis oleks vähemalt vältida teie toakaaslane 733 00:43:15,570 --> 00:43:19,070 alates on olnud võimalik kontrollida olukorda maailmas, 734 00:43:19,070 --> 00:43:22,530 nii, et ta ei saanud teha sama otsus. 735 00:43:22,530 --> 00:43:25,780 Nii andmebaase, nagu selgub, on see probleem pidevalt. 736 00:43:25,780 --> 00:43:31,050 >> Vaatame, kas me saame ehitada stsenaarium. 737 00:43:31,050 --> 00:43:34,310 Oletame, et sa oled mingi paha poiss ja te lähete Bank of America 738 00:43:34,310 --> 00:43:37,950 või mõnda muud kohad ruut, et on paar sularahaautomaati kõrvuti, 739 00:43:37,950 --> 00:43:41,200 ja millegipärast sa arvasin, kuidas eksemplaris Pangakaart - ole nii raske. 740 00:43:41,200 --> 00:43:42,730 See on lihtsalt magnetriba. 741 00:43:42,730 --> 00:43:45,180 Ja mis sa tahad proovida teha, on mängida seda mängu 742 00:43:45,180 --> 00:43:49,060 mille paned 1 kaart 1 masin, teine ​​kaart teise masina, 743 00:43:49,060 --> 00:43:51,980 ja sa sisuliselt tahan proovida raha välja üheaegselt, 744 00:43:51,980 --> 00:43:54,930 sest kujutan ette, et lugu läheb järgmine. 745 00:43:54,930 --> 00:43:57,350 Masina vasakul võtab oma kaardi ja PIN-koodi, 746 00:43:57,350 --> 00:44:00,240 ja siis sa ütled: "Anna mulle 100 $." 747 00:44:00,240 --> 00:44:04,790 ATM on programmeeritud kõigepealt tegema valige oma andmebaasis või võrdväärne - 748 00:44:04,790 --> 00:44:10,780 mis iganes andmebaasi see kasutab - et näha kas see kasutaja on vähemalt $ 100 oma kontole? 749 00:44:10,780 --> 00:44:16,180 Kui jah, siis sülitama $ 100 ja lahutada 100 $ oma tasakaalu. 750 00:44:16,180 --> 00:44:20,470 Aga muidugi, kui seal on mitu masinat siit või mitmel moel kontrollimise 751 00:44:20,470 --> 00:44:23,560 riik sellest maailmast, panga võlvkelder, et näha, kui palju raha sul on, 752 00:44:23,560 --> 00:44:26,780 arvan, et lihtsalt juhuslikult masina vasakul ja paremal 753 00:44:26,780 --> 00:44:30,140 nii küsida, et küsimus on umbes sama ajahetke. 754 00:44:30,140 --> 00:44:34,160 >> Ja see saab kindlasti juhtuda. Sularahaautomaadid on arvutid nendel päevadel. 755 00:44:34,160 --> 00:44:37,670 Nii et kui masin vasakul ütleb: "Jah, teil on vähemalt $ 100," 756 00:44:37,670 --> 00:44:42,150 Vahepeal masin paremal ütleb: "Jah, teil on vähemalt $ 100," 757 00:44:42,150 --> 00:44:47,420 siis mõlemad jätkata lõpetada oma saadete ja tegelikult sülitama $ 100 758 00:44:47,420 --> 00:44:50,820 ja ütlevad: "Varem teil oli 200 $." 759 00:44:50,820 --> 00:44:54,890 "Lubage mul uuendada muutuja nüüd 100 $ jäänud arvesse." 760 00:44:54,890 --> 00:44:58,780 Aga kui mõlemad on kontrollida oma kontojääki ja leidis, et see on $ 200 761 00:44:58,780 --> 00:45:02,000 ja nad mõlemad siis teha matemaatika ja öelda, 200-100, 762 00:45:02,000 --> 00:45:06,990 masinad on potentsiaalselt sülitama 2 100 $ arveid iga masin, 763 00:45:06,990 --> 00:45:11,360 kuid nad pole ainult uuendanud oma summa saldo olema 100 $. 764 00:45:11,360 --> 00:45:15,130 Teisisõnu, sa oled välja võtta $ 200, kuid kuna nad kontrollisid olukorda maailmas 765 00:45:15,130 --> 00:45:18,840 üheaegselt ja seejärel teha otsuse aluseks seda väärtust, 766 00:45:18,840 --> 00:45:21,930 nad ei pruugi teha matemaatika lõppkokkuvõttes õigesti. 767 00:45:21,930 --> 00:45:25,520 Nii et panga olukord liiga tõesti on mingi töösulg 768 00:45:25,520 --> 00:45:28,450 nii et niipea, kui olete märkinud riigi mõne muutuja 769 00:45:28,450 --> 00:45:31,220 see on tõesti oluline, nagu teie kontoseisu 770 00:45:31,220 --> 00:45:36,070 ei lase kellelgi teisel teha otsuseid, mis põhinevad et kuni oled valmis teeb oma asja, 771 00:45:36,070 --> 00:45:38,920 kus antud juhul olete ATM vasakul. 772 00:45:38,920 --> 00:45:41,160 Lukustage kõik teisedki välja. 773 00:45:41,160 --> 00:45:44,650 Võite tegelikult saavutada seda efekti paari erinevalt. 774 00:45:44,650 --> 00:45:48,660 >> Lihtsaim viis MySQL on rida SQL mis meie Teile andsime 775 00:45:48,660 --> 00:45:52,030 aastal lahendamist spetsifikatsioon, mis näeb välja täpselt nagu see. 776 00:45:52,030 --> 00:45:57,420 INSERT INTO tabel - mis iganes seda nimetatakse - id, sümbol, ja osa, aktsiate arv, 777 00:45:57,420 --> 00:45:59,660 Järgmised väärtused, näiteks. 778 00:45:59,660 --> 00:46:03,370 Kui te ei ole lugenud spec veel, see on näide kaasates kuidas sa minna 779 00:46:03,370 --> 00:46:07,340 osta 10 aktsiat seda penny stock president Skroob, 780 00:46:07,340 --> 00:46:10,340 kelle kasutajatunnus juhtub olema number 7? 781 00:46:10,340 --> 00:46:14,070 See ütleb INSERT INTO tabel järgmise id, sümbol ja aktsiate arv 782 00:46:14,070 --> 00:46:18,200 7. "DVN.V", ja 10. 783 00:46:18,200 --> 00:46:21,510 Aga - Aga, aga, aga - teine ​​rida on oluline. 784 00:46:21,510 --> 00:46:26,310 ON korduv võti UPDATE aktsiate = aktsiat + VALUES (aktsiad). 785 00:46:26,310 --> 00:46:28,350 Nii et täiesti segasena suunatud esimesel pilgul. 786 00:46:28,350 --> 00:46:31,990 Kuid tõsiasi, et see SQL päring, kuigi see wrapid peale 2 rida, 787 00:46:31,990 --> 00:46:35,920 on 1 pikk päringu, see tähendab, et see on aatomi 788 00:46:35,920 --> 00:46:41,000 selles mõttes, et selle päringu kas täidetakse kõik koos või üldse mitte. 789 00:46:41,000 --> 00:46:45,100 Ja definitsiooni järgi MySQL, see on, kuidas nad ellu selle päringu. 790 00:46:45,100 --> 00:46:51,010 See on definitsiooni kohaselt manuaal tagatud täita kõik korraga või üldse mitte. 791 00:46:51,010 --> 00:46:54,020 Motivatsiooni see on järgmine. 792 00:46:54,020 --> 00:46:58,540 Kui sel juhul sa üritad osta 10 aktsiaid, 793 00:46:58,540 --> 00:47:02,260 see on selline sama lugu nagu piim, see on selline sama lugu nagu ATM. 794 00:47:02,260 --> 00:47:04,970 >> Kui teete vea, et nad ei kasuta seda süntaksit 795 00:47:04,970 --> 00:47:09,610 kuid selle asemel valida andmebaasist näha, kuidas paljud aktsiad see penny stock 796 00:47:09,610 --> 00:47:13,750 ei president Skroob on, ja arvan, et ta on 10 aktsiat, 797 00:47:13,750 --> 00:47:19,330 ja siis mõned sekundi murdosa hiljem sa siis teha UPDATE avaldus, 798 00:47:19,330 --> 00:47:24,810 mis on teise avalduse SQL, mis ütleb minna ja lisada veel 10 aktsiat 799 00:47:24,810 --> 00:47:28,700 tema praegune 10, nii et ideaalis kogusumma on 20, 800 00:47:28,700 --> 00:47:33,490 Probleem on, sest tänapäeva andmebaasi süsteeme ja kuna tänapäeva arvutid 801 00:47:33,490 --> 00:47:35,990 teil on mitu protsessorit, mitme protsessorituuma - 802 00:47:35,990 --> 00:47:38,920 teisisõnu, arvutid võib sõna otseses mõttes tegema mitu asja korraga - 803 00:47:38,920 --> 00:47:44,270 ei ole mingit garantiid, et teie SELECT ja oma UPDATE sel juhul 804 00:47:44,270 --> 00:47:46,150 hakkavad juhtuma seljad. 805 00:47:46,150 --> 00:47:49,140 Nii halb stsenaarium oleks sa SELECT 806 00:47:49,140 --> 00:47:51,670 näha, kuidas paljud aktsiad see penny stock ei Skroob on, 807 00:47:51,670 --> 00:47:54,710 ja siis lihtsalt juhuslikult teise andmebaasipäring täidetakse - 808 00:47:54,710 --> 00:47:57,740 võibolla selle Skroob teises brauseri aknas üritab osta 10 aktsiat 809 00:47:57,740 --> 00:48:00,700 teises aknas üldse palju nagu ATM - 810 00:48:00,700 --> 00:48:05,410 ja arvan, et teine ​​päring satub vahel SELECT ja UPDATE. 811 00:48:05,410 --> 00:48:10,210 See võiks olla nii, et Skroob nüüd kaotab mõned aktsiate arv 812 00:48:10,210 --> 00:48:14,340 sest teine ​​protsess on kontrolli riik oma maailma, 813 00:48:14,340 --> 00:48:17,800 või ta saab rohkem aktsiaid kui ta peaks olema. 814 00:48:17,800 --> 00:48:23,250 Me ei hakka üksikasju täpselt neid eriti lugu read oleks, 815 00:48:23,250 --> 00:48:28,380 kuid küsimus on, kui sa pead kontrollima muutujate väärtus ja seejärel teha otsus, 816 00:48:28,380 --> 00:48:32,500 kui seal on oht keegi teine ​​teeb midagi vahel need 2 avaldused, 817 00:48:32,500 --> 00:48:36,220 nagu võib juhtuda mitmeprotsessoriliste süsteeme, mitmesoonelised süsteemid, 818 00:48:36,220 --> 00:48:41,220 arvutid, mis suudavad teha mitut asja korraga, halbu asju võib juhtuda 819 00:48:41,220 --> 00:48:44,530 nagu pangakontod debiteeritakse valesti, ostes kaks korda nii palju piima, 820 00:48:44,530 --> 00:48:46,730 või antud juhul vale aktsiate arv. 821 00:48:46,730 --> 00:48:48,370 Aga seal on lihtsam viis mõelda selle üle. 822 00:48:48,370 --> 00:48:53,290 >> Selgub, et SQL toetab ka, kui teil konfigureerida oma tabeli õigesti, 823 00:48:53,290 --> 00:48:56,920 midagi, mida nimetatakse tehingud, mis ma väidan on tegelikult isegi lihtsam mõista 824 00:48:56,920 --> 00:49:00,650 kui see, aga see pole 1-liner, nii et see on tegelikult natuke rohkem kaasatud. 825 00:49:00,650 --> 00:49:04,960 Seal on sõna otseses mõttes avalduse SQL nimega START tehinguga. 826 00:49:04,960 --> 00:49:08,300 Just nagu seal on SELECT, UPDATE, INSERT, DELETE ning ühineda ja hunnik teisi, 827 00:49:08,300 --> 00:49:10,970 on märksõnad nagu START tehinguga. 828 00:49:10,970 --> 00:49:13,560 Ja mida sa siis teha seoses pset 7 - 829 00:49:13,560 --> 00:49:17,270 sa ei pea seda tegema pset 7; ta on selgesõnaliselt loobunud kuna ei vaja, 830 00:49:17,270 --> 00:49:18,830 kuid lõplik projekte võib olla kasulik - 831 00:49:18,830 --> 00:49:22,820 kui sa nimetad päringu START tehingu ja siis teine ​​päring 832 00:49:22,820 --> 00:49:25,620 ja siis teine ​​päring ja siis teine, teine, ja teine, 833 00:49:25,620 --> 00:49:31,860 neid päringuid tegelikult ei või läbi viia enne helistamist SQL toime panna 834 00:49:31,860 --> 00:49:37,220 kus punkt, kas see on 2 avaldusi või 20 avaldused, nad kõik hukati korraga, 835 00:49:37,220 --> 00:49:42,770 mis tähendab, keegi teine ​​ei saa kogemata liiga palju osta piima või deebet liiga palju raha 836 00:49:42,770 --> 00:49:46,340 või osta liiga palju aktsiaid, kuna kõik Teie päringuid täidab 837 00:49:46,340 --> 00:49:48,410 seljad et seljad. 838 00:49:48,410 --> 00:49:51,580 Ja see on super oluline, eriti kui sa teed midagi sellist. 839 00:49:51,580 --> 00:49:54,900 See on suvaline näide, mis ütleb, olgem uuendada pangakonto 840 00:49:54,900 --> 00:50:00,200 seades tasakaalu võrdne tasakaal - $ 1000, kus pangakonto number on 2. 841 00:50:00,200 --> 00:50:04,260 Ja siis teine ​​väide on nüüd lähme hoiule, et $ 1000 842 00:50:04,260 --> 00:50:07,310 võetud kellegi teise pangakontole, mille kontonumber on 1. 843 00:50:07,310 --> 00:50:10,400 >> Teisisõnu, see on suurepärane näide sellest, kus te soovite veenduda 844 00:50:10,400 --> 00:50:13,590 et nii need avaldused juhtub või üldse mitte 845 00:50:13,590 --> 00:50:15,450 sest muidu klient ei kavatse saada kruvitud 846 00:50:15,450 --> 00:50:17,670 ja sa lähed võtta oma raha ja ei hoiule mujale, 847 00:50:17,670 --> 00:50:20,470 või pank ei hakka kruvitud, kus sa lähed hoiule raha 848 00:50:20,470 --> 00:50:23,140 kuid tegelikult ei lahutama selle kasutaja konto. 849 00:50:23,140 --> 00:50:25,810 Nii et sa tahad, et nad mõlemad tegutsevad koos. 850 00:50:25,810 --> 00:50:29,140 Seega siseneb maailma tehingud. 851 00:50:29,140 --> 00:50:31,360 Nii et see on midagi hoida tagasi teie arvates, 852 00:50:31,360 --> 00:50:34,710 mitte niivõrd selleks, et lihtsalt lõplik projekt, 853 00:50:34,710 --> 00:50:36,700 aga kui sa tahad teha oma lõpliku projekti kuhugi, 854 00:50:36,700 --> 00:50:39,040 kui soovite alustada mõne firma ümber, 855 00:50:39,040 --> 00:50:41,270 kui sa tahad, et lahendada mõned üliõpilased probleem ülikoolilinnakus 856 00:50:41,270 --> 00:50:45,210 ja tegelikult on elada, aktiivne kodulehel, need on omamoodi peen vigu, mis võivad tekkida 857 00:50:45,210 --> 00:50:49,480 kui sa ei ole päris läbi mõelda, mis võib juhtuda, kui 2 inimest 858 00:50:49,480 --> 00:50:54,190 Proovite kasutada oma kodulehel sõnalt sama ajahetke, 859 00:50:54,190 --> 00:50:56,890 kusjuures nende küsimustele muidu saad põimunud. 860 00:50:58,840 --> 00:51:01,420 >> Valmis mõned JavaScript, teaser selle? 861 00:51:01,420 --> 00:51:04,320 See on meie viimane keel poolaastal. Hea küll. 862 00:51:04,320 --> 00:51:09,940 Õnneks JavaScript tundub väga, väga, väga sarnane 2 keelt, C ja PHP, 863 00:51:09,940 --> 00:51:11,140 me oleme seni teinud. 864 00:51:11,140 --> 00:51:14,340 Pole JavaScript pset 7, aga see on uskumatult kasulik vahend 865 00:51:14,340 --> 00:51:18,840 kui on tegemist tehes veebipõhine lõpliku projekti või tõesti ainult veebi programmeerimine üldisemalt. 866 00:51:18,840 --> 00:51:20,950 Nii kiire ülevaate midagi, mida nimetatakse DOM. 867 00:51:20,950 --> 00:51:23,600 Siin on super lihtne veebileht, mis tõesti lihtsalt ütleb tere, maailm 868 00:51:23,600 --> 00:51:25,970 nii pealkirjas ja keha. 869 00:51:25,970 --> 00:51:29,270 Nagu taandus on teinud ettepaneku mõnda aega, 870 00:51:29,270 --> 00:51:31,380 on tõepoolest hierarhia veebilehtedele. 871 00:51:31,380 --> 00:51:34,220 Ma võin joonistada see sama HTML koodi nagu puu, 872 00:51:34,220 --> 00:51:37,470 Mõeldes tagasi meie arutelude andmestruktuurid C, järgmiselt. 873 00:51:37,470 --> 00:51:40,710 Mul on mõned erilised Juursõlme nimega dokument sõlme, 874 00:51:40,710 --> 00:51:43,650 ja me näeme analoog sellest JavaScript hetk. 875 00:51:43,650 --> 00:51:48,330 Esimene laps ja ainus laps, et antud juhul on HTML teegid. 876 00:51:48,330 --> 00:51:49,880 Pole mingit otsest kaardistamine DOCTYPE. 877 00:51:49,880 --> 00:51:53,170 See on eriline asi, et me peaks lihtsalt ignoreerida, kui tegemist on käesoleva DOM, 878 00:51:53,170 --> 00:51:55,810 Selle Document Object Model puust. 879 00:51:55,810 --> 00:51:59,530 Pange tähele, et HTML teegid, mis ma olen kujutatud suvaliselt nagu ristkülik, 880 00:51:59,530 --> 00:52:02,890 on 2 last: pea ja keha. 881 00:52:02,890 --> 00:52:04,840 >> Need on samamoodi joonistada ristkülik. 882 00:52:04,840 --> 00:52:08,970 On tähendusrikas piltlikult, et pea on vasakule keha. 883 00:52:08,970 --> 00:52:11,960 Mõju on, et pea tuleb esmalt puus. 884 00:52:11,960 --> 00:52:14,910 Nii et seal on tegelikult käsivad puu kui teha seda niimoodi, 885 00:52:14,910 --> 00:52:17,460 kuigi kuju ja tühi-tähi on meelevaldsed. 886 00:52:17,460 --> 00:52:20,360 Head vahepeal on ühe lapse nimega pealkiri, 887 00:52:20,360 --> 00:52:25,170 ja pealkiri on tegelikult tema enda laps, kes on "Hello, world", 888 00:52:25,170 --> 00:52:32,210 mis ma teadlikult juhtis nagu ovaalne siin teha seda veidi erinev ristkülik. 889 00:52:32,210 --> 00:52:37,420 Need ruudud on elemendid, samas tere, maailm on tõesti teksti sõlme. 890 00:52:37,420 --> 00:52:39,850 Nii et see on sõlme puu, aga see on teist tüüpi sõlme 891 00:52:39,850 --> 00:52:41,730 nii et ma joonistasin seda omavoliliselt erinevalt. 892 00:52:41,730 --> 00:52:45,000 Samamoodi ei keha on laps nimega hello, world samuti, 893 00:52:45,000 --> 00:52:47,910 nii erinevad sõlme, kuigi nad juhuslikult sama teksti, 894 00:52:47,910 --> 00:52:52,100 aga ma olen ära, kasutades sama kuju. Nii et keda see huvitab? 895 00:52:52,100 --> 00:52:56,820 Noh, mis on tore umbes HTML on, et see on see hierarhiline olemus. 896 00:52:56,820 --> 00:53:01,010 Ja mis on tore JavaScript ja eelkõige raamatukogudel, mis on vabalt saadaval 897 00:53:01,010 --> 00:53:07,120 ja populaarne nagu jQuery, saate navigeerida puu struktuuri nii hämmastavalt lihtne. 898 00:53:07,120 --> 00:53:11,790 Kõiki asju me tegime C viiteid ja liiklevad puud ja recursing kohta sõlmede 899 00:53:11,790 --> 00:53:15,300 vasak lapse õigus laps, äkki saame omamoodi enesestmõistetavaks 900 00:53:15,300 --> 00:53:19,450 nagu oleks hämmastavalt valgustav kui mitte natuke masendav 901 00:53:19,450 --> 00:53:22,470 kuid mitte pooltki tõhus viis edasi minna programmeerimine. 902 00:53:22,470 --> 00:53:24,470 Ja nii nende kõrgema taseme keelte nagu JavaScript 903 00:53:24,470 --> 00:53:28,340 me suutma liikuda selle puu palju rohkem intuitiivselt. 904 00:53:28,340 --> 00:53:30,430 >> Ja tõepoolest süntaks saab olema üsna tuttav. 905 00:53:30,430 --> 00:53:32,950 Kui sa oled kunagi näinud JavaScript enne, see on tõesti kena viide 906 00:53:32,950 --> 00:53:35,910 alates Mozilla inimesed, inimesed, kes teevad Firefox 907 00:53:35,910 --> 00:53:38,370 nii et ärge vabalt sirvida, et endale sobival ajal. 908 00:53:38,370 --> 00:53:41,590 Mis leiad - ja need slaidid on identne sellega, mida me kasutada teisel päeval - 909 00:53:41,590 --> 00:53:44,030 Samamoodi peamine on läinud. 910 00:53:44,030 --> 00:53:47,010 Nii et kui sa kirjutad programmi JavaScript ei ole peamine funktsioon. 911 00:53:47,010 --> 00:53:48,690 Sa lihtsalt hakake kirjutama koodi. 912 00:53:48,690 --> 00:53:51,660 Aga võti vahet JavaScript ja C ja PHP 913 00:53:51,660 --> 00:53:55,890 on see, et arvestades, C ja PHP seni on ellu viidud serveripoolne 914 00:53:55,890 --> 00:53:59,180 mida seade antud juhul või üldisemalt server, 915 00:53:59,180 --> 00:54:04,270 JavaScript mille konstruktsioon on tavaliselt täide brauserit. 916 00:54:04,270 --> 00:54:08,440 Teisisõnu, sa võiksid kirjutada JavaScripti koodi, kui me parasjagu, 917 00:54:08,440 --> 00:54:13,080 serveris on seadmega, kuid teil lisada see vahel oma HTML hulgas oma CSS, 918 00:54:13,080 --> 00:54:16,100 hulgas oma GIF ja oma PNGs ja oma JPEG 919 00:54:16,100 --> 00:54:19,170 nii et kui kasutaja külastab oma veebilehel, kui te kasutate JavaScript, 920 00:54:19,170 --> 00:54:21,770 et JavaScript kood pärineb serveri brauser, 921 00:54:21,770 --> 00:54:24,540 ja see on brauser, mis tegelikult täidab selle. 922 00:54:24,540 --> 00:54:27,960 Nii et see on mõtestatud mõju isegi intellektuaalne omand. 923 00:54:27,960 --> 00:54:32,600 See on selline tobe, et isegi mõelda kaitsta oma IP kui tegemist JavaScripti koodi 924 00:54:32,600 --> 00:54:37,560 sest iseloomust keel see läheb täide tavaliselt brauseri poolel. 925 00:54:37,560 --> 00:54:40,360 >> Võite varjuta seda, mis tähendab, et saate muuta see otsima hull ja kole 926 00:54:40,360 --> 00:54:45,400 ilma tühik, jube muutuja nimed, et oleks raskem inimesi varastada teie IP, 927 00:54:45,400 --> 00:54:48,120 kuid põhiline on see, et see täidetakse brauseri poolel. 928 00:54:48,120 --> 00:54:51,790 Isegi kui kõrvale JavaScript saab serveripoolne, 929 00:54:51,790 --> 00:54:54,480 Kõige tavalisem juhul praegu on veel brauseri. 930 00:54:54,480 --> 00:54:59,800 Ja siin on kuidas see välja näeb. Siin on kui-else if-muidu ehitada nagu C, nagu PHP. 931 00:54:59,800 --> 00:55:02,420 Siin on Boole'i ​​avaldis, kui sa "või" 2 asja kokku. 932 00:55:02,420 --> 00:55:04,330 Siin on siis "ja" 2 asja kokku. 933 00:55:04,330 --> 00:55:08,300 Siin on lüliti avaldus, mis on sarnane PHP 934 00:55:08,300 --> 00:55:10,810 aastal, et saate sisse lülitada erinevaid väärtusi. 935 00:55:10,810 --> 00:55:15,180 Loops sarnaselt on ette silmuseid siin, mis on üles ehitatud samamoodi ka see, mida me oleme näinud. 936 00:55:15,180 --> 00:55:18,110 Kuigi silmad; meil teha samas silmuseid. 937 00:55:18,110 --> 00:55:20,290 Muutujad, kunagi nii veidi erinev. 938 00:55:20,290 --> 00:55:24,560 Sa deklareerida muutujaid nagu sa PHP ja C 939 00:55:24,560 --> 00:55:27,860 kuid sarnaselt on JavaScript nõrgalt kirjutatud. 940 00:55:27,860 --> 00:55:32,730 Te ei täpsusta int või veepinnal või nööri või midagi sellist tavaliselt. 941 00:55:32,730 --> 00:55:34,240 Saate määrata var. 942 00:55:34,240 --> 00:55:38,040 Sa ei pea täpsustama var, kuid see mõjutab kui te seda ei tee. 943 00:55:38,040 --> 00:55:42,000 Tavaliselt, kui jätate var, kogemata luua globaalne muutuja asemel kohalik. 944 00:55:42,000 --> 00:55:46,420 Nii et andke mulle ettepaneku, et sa peaaegu alati öelda var ja siis muutuja nimi. 945 00:55:46,420 --> 00:55:48,740 See ei ole liik, see on lihtsalt var muutuja. 946 00:55:48,740 --> 00:55:52,930 See oleks näiteks, kas see on 123 või "hello, world". 947 00:55:52,930 --> 00:55:58,910 Massiivid on olemas ja süntaktiliselt sarnane PHP. 948 00:55:58,910 --> 00:56:03,690 Ma ütlen var numbrid ja siis ma kasutan nurksulgudes uuesti kuulutada muutuja 949 00:56:03,690 --> 00:56:08,870 mille tüüp on massiiv, mis on need konkreetsed numbrid selle eraldatud komadega. 950 00:56:08,870 --> 00:56:11,740 Ja siis lõpuks, see on ainus, mis tõesti muutunud. 951 00:56:11,740 --> 00:56:16,700 Tuletame meelde, et PHP oleksime ellu assotsiatiivne massiiv üliõpilane 952 00:56:16,700 --> 00:56:20,220 nagu Zamyla et võiks näeb välja selline, kus muutuja on kutsutud õpilane. 953 00:56:20,220 --> 00:56:23,370 Nurksulgudes tähendab siin tuleb massiivi. 954 00:56:23,370 --> 00:56:28,500 >> Asjaolu, et ma ei kasuta numbrilisi indekseid kuid stringid - id, maja, ja nime - 955 00:56:28,500 --> 00:56:30,990 tähendab, et see on assotsiatiivne massiiv, 956 00:56:30,990 --> 00:56:34,490 ja need nooled võrdusmärgi ja nurgelised sulg 957 00:56:34,490 --> 00:56:37,310 tähendab, et oluline on "id", väärtus on 1; 958 00:56:37,310 --> 00:56:39,310 Oluline on "maja" on väärtus Winthrop Maja; 959 00:56:39,310 --> 00:56:41,800 Oluline on "nimi", väärtus on Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 Nii et seal on 3 võtit sees see assotsiatiivne massiiv, millest igaühel on oma väärtus. 961 00:56:47,110 --> 00:56:52,880 Me oleme näinud, et pset 7, või sa varsti tuleb aga JavaScript sama mõte, 962 00:56:52,880 --> 00:56:55,220 kuid see saab välja nägema selline. 963 00:56:55,220 --> 00:57:00,070 Nii var õpilane - no dollari märk ja ei mainita tüüp ikka vaid var - 964 00:57:00,070 --> 00:57:05,860 võrdne ja avage looksulg sest JavaScript, kui sul on võti väärtus paare, 965 00:57:05,860 --> 00:57:08,900 sa tegelikult kasutada midagi, mida nimetatakse objekti. 966 00:57:08,900 --> 00:57:13,490 Ja neile, kes ei võta APC vms võiks meenutada objektid Java 967 00:57:13,490 --> 00:57:15,140 või sarnast keelt. 968 00:57:15,140 --> 00:57:17,880 JavaScript ei ole Java, kõigepealt. 969 00:57:17,880 --> 00:57:21,600 See oli tahtlik design otsus aastat tagasi koputama välja midagi, mis oli populaarne, 970 00:57:21,600 --> 00:57:25,640 oma nime, kuigi see ei ole põhiline seoses Java ise. 971 00:57:25,640 --> 00:57:31,490 JavaScript on objektid ja nende loomise teel lokkis traksidega märke. 972 00:57:31,490 --> 00:57:36,710 Objektid JavaScript on päris palju võrdub assotsiatiivse massiivi PHP 973 00:57:36,710 --> 00:57:40,030 kui tegemist on andmete salvestamiseks sees neist. 974 00:57:40,030 --> 00:57:44,100 >> Kuid veelgi võimsalt JavaScript saate seostada väga lihtsalt funktsioonid 975 00:57:44,100 --> 00:57:48,040 sees objekt ja kuigi seda saab teha ka teistes keeltes, 976 00:57:48,040 --> 00:57:50,040 see on üsna levinud paradigma, nagu me näeme. 977 00:57:50,040 --> 00:57:54,380 Lühidalt, see objekt esindab õpilase, kes on eriti Zamyla, 978 00:57:54,380 --> 00:58:00,380 ja see on sarnane kontseptuaalselt, lihtsalt süntaktiliselt erineb see. 979 00:58:00,380 --> 00:58:03,840 Olgem tegelikult kasutavad JavaScripti fail. 980 00:58:03,840 --> 00:58:05,570 Tuleb välja, seal on skript tag. 981 00:58:05,570 --> 00:58:08,180 Me oleme näinud stiilis tag ja me oleme näinud teiste HTML teeke. 982 00:58:08,180 --> 00:58:11,510 Script tag tegelikult leidub seal JavaScripti koodi. 983 00:58:11,510 --> 00:58:15,500 Lubage mul minna seadet, kus meil on mõned lähtekoodi eelnevalt tehtud. 984 00:58:15,500 --> 00:58:18,700 Ma ei ole postitanud veel seda veebilehel, kuid ma teen seda pärast klassis. 985 00:58:18,700 --> 00:58:21,770 Olgem avada see üks, blink.html. 986 00:58:21,770 --> 00:58:27,560 Tagasi 1990ndatel oli sõna otseses mõttes HTML sildi vilkuv silt, 987 00:58:27,560 --> 00:58:30,340 ja see oli üks imeliselt liigne silte Internetis 988 00:58:30,340 --> 00:58:36,140 mille soovite külastada mõnda 1990ndate stiilis veebilehel ja alustada nähes tekst vilgub sulle meeldib see, 989 00:58:36,140 --> 00:58:39,810 tulemused markii tag, mis oli tekst läheb niimoodi. 990 00:58:39,810 --> 00:58:45,070 Üks väheseid kordi, kus maailm on tegelikult kokku lepitud web standard, 991 00:58:45,070 --> 00:58:48,250 igaüks kõikjal tappis vilguvad tag mõned aastad tagasi. 992 00:58:48,250 --> 00:58:52,860 Aga me ei saa taaselustada ta peab olema JavaScript kuna tutvustamise võimu sul on 993 00:58:52,860 --> 00:58:56,660 kui saab kirjutada programmi sees veebilehele. 994 00:58:56,660 --> 00:59:00,240 Esiteks olgem vahele jätta uusi asju ja keskenduda ainult vana. 995 00:59:00,240 --> 00:59:01,780 >> Siin on vana kraam selles näites. 996 00:59:01,780 --> 00:59:06,350 Mul on HTML teegid, pea tag, ja pealkiri tag. 997 00:59:06,350 --> 00:59:11,210 Siis mul on body siin div, mis meenutavad just ristkülikukujuline jagamise leheküljel 998 00:59:11,210 --> 00:59:14,720 et olen andnud unikaalne ID meelevaldselt "tervitus" kuni, 999 00:59:14,720 --> 00:59:18,320 lihtsalt nii on mul võimalus üheselt sellele viitavad, et on mõned väga lihtsad tekst: 1000 00:59:18,320 --> 00:59:20,220 hello, world. 1001 00:59:20,220 --> 00:59:23,940 Nüüd las ma kerin kuni ülemise selle faili ja näha, mis on uus. 1002 00:59:23,940 --> 00:59:27,710 Esimene asi, mis uudist üleval on script tag, 1003 00:59:27,710 --> 00:59:31,280 ja sees skripti tag teade olen deklareeritud funktsioon. 1004 00:59:31,280 --> 00:59:34,610 Tunnistada funktsiooni JavaScript, üsna sarnane PHP, 1005 00:59:34,610 --> 00:59:37,930 sa sõna otseses mõttes kirjutada funktsioon siis funktsiooni nimi, sulgudes, 1006 00:59:37,930 --> 00:59:40,400 ja võibolla mõned argumendid, kui ta võtab tahes. 1007 00:59:40,400 --> 00:59:43,510 Siis mul on oma lokkis traksidega nagu tavaliselt, ja nüüd on meil mõned veidi uus kood 1008 00:59:43,510 --> 00:59:45,230 aga vaatame, mida see tähendab. 1009 00:59:45,230 --> 00:59:48,670 Nii var div, see lihtsalt tähendab mulle muutuja nimega div. 1010 00:59:48,670 --> 00:59:50,530 Ma võinuks see suva, aga ma tahtsin seda kutsuda div 1011 00:59:50,530 --> 00:59:52,620 põhjustel, mis on selge teine. 1012 00:59:52,620 --> 00:59:57,480 Siis selgub JavaScript - ja see on JavaScripti koodi varjatud minu veebileht - 1013 00:59:57,480 --> 01:00:01,760 on olemas spetsiaalne globaalne muutuja kehvasti nimega dokument. 1014 01:00:01,760 --> 01:00:04,780 JavaScript on tegelikult objektorienteeritud keeles. 1015 01:00:04,780 --> 01:00:07,230 Me ei hakka üksikasjalikult 50, mida see tähendab, 1016 01:00:07,230 --> 01:00:11,180 kuid nüüd tean, et objekt on päris palju nagu struct. 1017 01:00:11,180 --> 01:00:14,740 Nagu nägime tee tagasi, kui ühel esimesel probleem seab 1018 01:00:14,740 --> 01:00:17,150 kus me esitame palju teavet struct, 1019 01:00:17,150 --> 01:00:21,330 Samamoodi on dokumenteerida erilist struct kaasas brauser, 1020 01:00:21,330 --> 01:00:24,810 Kaasas suvalisel veebilehel. See ei ole midagi, mida ma loodud. 1021 01:00:24,810 --> 01:00:28,210 Toas käesoleva dokumendi struktuuri, kuigi te ei ole mitte ainult andmete 1022 01:00:28,210 --> 01:00:30,010 kuid teil ka funktsioone. 1023 01:00:30,010 --> 01:00:34,090 >> Ja iga kord, kui on funktsiooni sees struktuur, sees objekt, 1024 01:00:34,090 --> 01:00:36,490 seda nimetatakse meetodit. Aga see on sama asi. 1025 01:00:36,490 --> 01:00:40,110 Meetod on funktsioon, mis lihtsalt nii juhtub olema sees midagi muud. 1026 01:00:40,110 --> 01:00:42,990 Nii et see tähendab, et see eriline globaalse muutuja nimega dokument 1027 01:00:42,990 --> 01:00:47,690 on funktsioon nimega getElementById et sõna otseses mõttes ei tee seda. 1028 01:00:47,690 --> 01:00:52,460 See on sulle element DOM, Document Object Model puust, 1029 01:00:52,460 --> 01:00:55,520 kelle ID on sel juhul tervitus. 1030 01:00:55,520 --> 01:00:59,200 Teisisõnu, kogu selle aja veetsime kohta andmestruktuurid tuleb mängu siin. 1031 01:00:59,200 --> 01:01:01,400 See pilt DOM, et meil oli hetk tagasi, 1032 01:01:01,400 --> 01:01:06,100 kuigi leht on natuke erinev, kui mul oleks div siin pildil, 1033 01:01:06,100 --> 01:01:11,180 mida document.getElementById saaks naasta mind efektiivse pointer 1034 01:01:11,180 --> 01:01:15,440 et ristküliku puu, viidates ristküliku puu. 1035 01:01:15,440 --> 01:01:18,410 Nii see on, mida see tähendab, et tegelikult kõne üks neist funktsioone. 1036 01:01:18,410 --> 01:01:21,960 Sel juhul jälle see div. See ei ole asutuse või pealkiri. 1037 01:01:21,960 --> 01:01:26,480 Nii et vaatame, mida ma siis teha selle div nüüd, et mul on see sees selle muutuja nimega div. 1038 01:01:26,480 --> 01:01:32,580 Tuleb välja, peab olema JavaScript teil on võime näpistama CSS lehele dünaamiliselt. 1039 01:01:32,580 --> 01:01:39,060 Siiani on kõik CSS me oleme teinud, kuigi piiratud on stiili tunnused, 1040 01:01:39,060 --> 01:01:41,730 või kus mujal on meil panna CSS? 1041 01:01:42,730 --> 01:01:45,810 Ma nagu ärahellitatud, et üks. Stiilis tag ülaosas faili. 1042 01:01:45,810 --> 01:01:49,180 Või kolmas koht on olnud? 1043 01:01:50,710 --> 01:01:54,590 >> Väline fail, midagi. Css. 1044 01:01:54,590 --> 01:01:56,730 Nii et need on 3-kohaline oleme teinud CSS seni 1045 01:01:56,730 --> 01:01:59,310 kuid saak on meil kõva kodeeritud see kõik. 1046 01:01:59,310 --> 01:02:04,060 Kui te olete otsustanud kui tuvi arvesse pset 7, otsustasime enne loengut mida meie CSS oleks. 1047 01:02:04,060 --> 01:02:07,380 Aga kui sa tahad muuta oma CSS, tegelikult võite seda teha 1048 01:02:07,380 --> 01:02:09,370 kui sul on tegelik programmeerimiskeelt. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - ei programmeerimiskeeli. JavaScript on. 1050 01:02:13,910 --> 01:02:18,200 Nii selgub, et niipea, kui olete üks neist ristkülikut puult 1051 01:02:18,200 --> 01:02:23,050 nimetatakse DOM, ta on ise mõned andmed sees on. 1052 01:02:23,050 --> 01:02:27,820 Nii div et ma lihtsalt haarasin puult on, mida me nimetame vara sees on 1053 01:02:27,820 --> 01:02:34,390 nimetatakse stiili ja stiili, pakub iseenesest vara kutsus nähtavus. 1054 01:02:34,390 --> 01:02:37,330 Ma tean, et see ainult soojaks CSS kasutusjuhend. 1055 01:02:37,330 --> 01:02:41,160 Tuleb välja, seal on nähtavus CSS vara, mis teeb mida ta ütleb. 1056 01:02:41,160 --> 01:02:44,530 See teeb midagi nähtav või mitte, nähtav või mitte. 1057 01:02:44,530 --> 01:02:46,810 Ja kuidas sa seda see on. 1058 01:02:46,810 --> 01:02:50,510 Ma palun programmiliselt kui nähtavus see div on peidetud, 1059 01:02:50,510 --> 01:02:53,390 Mida ma selle ära muuta? Nähtav. 1060 01:02:53,390 --> 01:02:58,840 Else if nähtavust see leht pole peidetud, loogiliselt ma oleks varjatud. 1061 01:02:58,840 --> 01:03:04,070 Mul pole aimugi, miks see on nähtav ja peidetud ja ei ole nähtav ja nähtamatu. 1062 01:03:04,070 --> 01:03:06,000 See oli kehv kujundus otsus mööda teed. 1063 01:03:06,000 --> 01:03:09,530 Aga need on tõesti vastandid CSS: nähtav ja peidetud. 1064 01:03:09,530 --> 01:03:15,520 Kõik see on siis tähendab see muuta CSS mu faili sisse ja välja, sisse ja välja 1065 01:03:15,520 --> 01:03:16,870 selle konkreetse div. 1066 01:03:16,870 --> 01:03:20,630 Aga jälle, see on funktsioon nimega vilguvad. Kui on vilkuv funktsioon nimega? 1067 01:03:20,630 --> 01:03:24,080 Tuleb välja, et seal on teine ​​eriline globaalse muutuja nimega aknas 1068 01:03:24,080 --> 01:03:28,220 sarnase sisuga dokument, kuid arvestades, et dokument käsitleb oma veebilehel, 1069 01:03:28,220 --> 01:03:31,700 nagu DOM puu, HTML saadetud serverist 1070 01:03:31,700 --> 01:03:35,250 aken viitab kroom ümber, aadressiribale tiitliribal 1071 01:03:35,250 --> 01:03:37,880 ja kõik see värk ümber oma veebilehel. 1072 01:03:37,880 --> 01:03:42,800 >> Ja selgub, et aken objekt on eriline funktsioon sees ta kutsus setInterval 1073 01:03:42,800 --> 01:03:44,360 mis teeb mida ta ütleb. 1074 01:03:44,360 --> 01:03:48,600 See loob intervall - antud juhul iga 500 millisekundit - 1075 01:03:48,600 --> 01:03:52,270 ja võtta arvan, mida läheb tegema iga 500 millisekundit? 1076 01:03:52,270 --> 01:03:55,240 See saab täita selle funktsiooni vilguvad. 1077 01:03:55,240 --> 01:03:58,560 Ja mis on tore siin on, et me oleks võinud teha seda C kuigi me kunagi ei teinud. 1078 01:03:58,560 --> 01:04:01,580 C temal on midagi, mida nimetatakse funktsiooni osuti, kus saab läbida funktsioonid ümber 1079 01:04:01,580 --> 01:04:03,140 argumentidena. 1080 01:04:03,140 --> 01:04:07,620 Samamoodi JavaScript Kas te kaotate nime funktsiooni teise funktsiooni. 1081 01:04:07,620 --> 01:04:10,630 Ja teate, mis ma teen. Ma ei tee seda. 1082 01:04:10,630 --> 01:04:14,380 Kui ma panen sulgudes vilguvad, see tähendaks helistada vilkuv funktsioon. 1083 01:04:14,380 --> 01:04:17,430 Kui ma jätta neid, mis tähendab, et siin on vilkuv funktsioon 1084 01:04:17,430 --> 01:04:21,330 nii et setInterval võib seda nimetada iga 500 millisekundi jooksul. 1085 01:04:21,330 --> 01:04:28,200 Nii et lõpptulemus, metsik, kuigi see on, on see, et kui ma minema localhost ja minna blink.html, 1086 01:04:28,200 --> 01:04:32,120 Mul on nüüd see juhtub ikka ja jälle. 1087 01:04:32,120 --> 01:04:34,950 Ja kui ma tegelikult kontrollida Element, vaatame, kas me saame seda näha. 1088 01:04:34,950 --> 01:04:38,550 Lubage mul Kontrollige Element, las ma kerin alla natuke, 1089 01:04:38,550 --> 01:04:44,320 lase mul valida elementide sisaldus üle siin, ja märgata DOM sees Chrome'i inspektor. 1090 01:04:44,320 --> 01:04:48,840 See on sõna otseses mõttes muutub edasi-tagasi iga 500 millisekundi jooksul. 1091 01:04:48,840 --> 01:04:55,660 Kui läheme meie sõber Nate, 1092 01:04:55,660 --> 01:05:00,020 kui te kunagi mõelnud, kuidas see töötab, samasugune mõte intervalliga, 1093 01:05:00,020 --> 01:05:04,810 aga Nate on tegelikult teinud väga tõhusat kasutamist värvi selles konkreetses asjas. 1094 01:05:04,810 --> 01:05:07,350 Mida rohkem me saame tegelikult pistmist? 1095 01:05:07,350 --> 01:05:09,990 Olgem avada veel üks näide ja proovida midagi 1096 01:05:09,990 --> 01:05:12,940 see on programmiliselt veelgi kasulikum kui teha asjad vilguvad. 1097 01:05:12,940 --> 01:05:17,990 Lubage mul minna meie vormid kataloog täna ja minna form0. 1098 01:05:17,990 --> 01:05:20,820 See oli koledaim võimaliku vormi, et ma võiks tulla, 1099 01:05:20,820 --> 01:05:23,290 ja las ma näitan teile kuidas see välja näeb brauseris. 1100 01:05:23,290 --> 01:05:28,960 >> Lubage mul minna localhost / vorme, ja see on form0. 1101 01:05:28,960 --> 01:05:33,400 See on super kole HTML-vormi, mis on paar valdkondades e-posti, parooli, 1102 01:05:33,400 --> 01:05:37,190 parool ja seejärel veidi ruut nõustuma mõned tingimused. 1103 01:05:37,190 --> 01:05:41,350 Saak kui ma külastan seda vormi ja ma ei taha anda sulle oma e-posti aadress, 1104 01:05:41,350 --> 01:05:44,730 Ma ei taha nõustuda tingimustega võibolla, ma ei kliki Registreeri 1105 01:05:44,730 --> 01:05:46,920 ja see laseb mind läbi niikuinii. 1106 01:05:46,920 --> 01:05:50,800 See juhtub esitada loll PHP fail nimega dump.php. 1107 01:05:50,800 --> 01:05:58,420 Kõik see on välja printida sisu $ _GET lihtsalt diagnostikaks. 1108 01:05:58,420 --> 01:06:01,580 See oli see, mida esitas kasutaja just nüüd. 1109 01:06:01,580 --> 01:06:05,010 Aga arvan, et me tegelikult tahame kinnitada kasutaja vormi esitamise. 1110 01:06:05,010 --> 01:06:06,530 Lubage mul minna version 1. 1111 01:06:06,530 --> 01:06:11,420 See on form1.html. Tundub esteetiliselt sama halb, kuid märgata, kuidas meeldib see. 1112 01:06:11,420 --> 01:06:15,450 Kui ma vajutan Registreeri ilma koostööd, saan karjus. 1113 01:06:15,450 --> 01:06:17,320 "Sa pead andma oma e-posti aadress." 1114 01:06:17,320 --> 01:06:21,670 Hea küll. Nii et lubage mul proovida seda. Nii malan@harvard.edu. Ma ei vaja parooli. 1115 01:06:21,670 --> 01:06:25,100 Registreeru. "Te peate määrama parooli." Hea küll. 1116 01:06:25,100 --> 01:06:28,470 Nii et ma annab parooli karmiinpunane. Registreeru. 1117 01:06:28,470 --> 01:06:32,300 "Paroolid ei kattu." Ma pean nüüd kirjuta karmiinpunane siin. 1118 01:06:32,300 --> 01:06:35,710 Ma kogemata kontrollida seda. Registreeru. 1119 01:06:35,710 --> 01:06:39,860 "Te peate nõustuma tingimustega." Hea küll. Leppige seal. Registreeru. 1120 01:06:39,860 --> 01:06:43,700 Ja nüüd ta näitab mulle, diagnostika väljund seal. 1121 01:06:43,700 --> 01:06:45,630 >> Nii et mis just juhtus? 1122 01:06:45,630 --> 01:06:48,330 Meil on olnud see võime kinnitada vormi sõlmimiseks. 1123 01:06:48,330 --> 01:06:51,420 Tegelikult, kui sa sukelduda pset 7, seal vabandada funktsioon 1124 01:06:51,420 --> 01:06:54,620 mis muudab selle üsna lihtne kisa kasutajale kiri ekraanil. 1125 01:06:54,620 --> 01:06:57,580 Ma kasutan veidi teistsuguse mehhanismi, hoiatusfunktsioon 1126 01:06:57,580 --> 01:07:03,690 mis ei ole funktsioon, mis on naeratanud kuna see teeb väga inetu kasutaja sõnumeid. 1127 01:07:03,690 --> 01:07:05,710 Aga vaatame, mida ma siin teen. 1128 01:07:05,710 --> 01:07:09,620 See on form1.html ja märkate, et mul on päris tuttav süntaksit: 1129 01:07:09,620 --> 01:07:12,920 body, vormi tag tegevuse atribuut, meetod atribuut. 1130 01:07:12,920 --> 01:07:17,050 Aga märkate Andsin oma vormi unikaalne ID mugavamaks. 1131 01:07:17,050 --> 01:07:19,190 Siis ma pean talle valdkonnas, mille tüüp on tekst, 1132 01:07:19,190 --> 01:07:23,780 UUS valdkonnas, mille tüüp on UUS, kinnitus valdkonnas, mille tüüp on parool, 1133 01:07:23,780 --> 01:07:28,070 ja siis kast, mille nimi on kokkuleppe üle siin, tüüp on ruut. 1134 01:07:28,070 --> 01:07:30,380 Ja siis mul submit nuppu. 1135 01:07:30,380 --> 01:07:33,050 Aga märkate ülaosas mida rohkem mul. 1136 01:07:33,050 --> 01:07:35,810 Esiteks, seal on teine ​​kasutamise script tag. 1137 01:07:35,810 --> 01:07:40,520 Kui teil on mõned JavaScripti koodi teises fail, just nagu CSS siis saate selle lisada. 1138 01:07:40,520 --> 01:07:44,530 Ja sa teha, et skript allikas, ja siis märkate Ma ühendavad ilmselt 1139 01:07:44,530 --> 01:07:50,349 kuni googleapis.com väga pikka teed, kuid mille faili nimi lõppeb jquery.min 1140 01:07:50,349 --> 01:07:52,420 minimaalse. js. 1141 01:07:52,420 --> 01:07:55,969 jQuery on super populaarne raamatukogu JavaScript, et lihtsalt muudab JavaScript 1142 01:07:55,969 --> 01:07:58,230 kõik kasutajasõbralikum kasutada. 1143 01:07:58,230 --> 01:08:00,610 See on tegelikult muutunud de facto standardiks. 1144 01:08:00,610 --> 01:08:04,090 Nii et kuigi mida sa parasjagu näha ei ole puhas JavaScript iseenesest 1145 01:08:04,090 --> 01:08:09,340 see on raamatukogu peal JavaScript meelega CS50 raamatukogu on kiht 1146 01:08:09,340 --> 01:08:13,670 peal madala C-koodi; tegelikkus on peaaegu kõik Interneti kasutab seda. 1147 01:08:13,670 --> 01:08:18,030 Nii et ei ole need abirattad. See on lihtsalt parim tava, nendel päevadel. 1148 01:08:18,030 --> 01:08:22,830 Nüüd märkate allpool, mis on mu enda skript sildi, ja teate mida ma olen teinud siin. 1149 01:08:22,830 --> 01:08:27,450 Selgub, et jQuery teeb midagi natuke uhke. 1150 01:08:27,450 --> 01:08:29,660 JavaScript on dollari märgid, kuid need on mõttetu. 1151 01:08:29,660 --> 01:08:32,870 >> Nad on nagu täht A või B või C. 1152 01:08:32,870 --> 01:08:36,670 jQuery on lihtsalt vastu konventsiooni või omamoodi laid nõude asjaolule, 1153 01:08:36,670 --> 01:08:40,280 et $ on oma eriline sümbol. 1154 01:08:40,280 --> 01:08:44,950 Nii et niipea kui laete selle ülemaailmse JavaScript faili siia üles koos script tag, 1155 01:08:44,950 --> 01:08:49,080 teil on juurdepääs spetsiaalse globaalne muutuja, mis nimetatakse $. 1156 01:08:49,080 --> 01:08:53,009 See on rohkem õigesti nimetatakse jQuery, kuid see ei tundu pooltki nii seksikas kui $. 1157 01:08:53,009 --> 01:08:56,250 Aga $ ei ole erilist tähendust. PHP tal eriline tähendus. 1158 01:08:56,250 --> 01:08:58,440 Sa pidid olema selle ees muutuja. 1159 01:08:58,440 --> 01:09:01,670 See on lihtsalt seksikas asi, et nad võtsid. 1160 01:09:01,670 --> 01:09:03,389 Mis siin toimub? 1161 01:09:03,389 --> 01:09:08,830 Teade Ma möödaminnes jQuery funktsiooni minu globaalse muutuja dokument 1162 01:09:08,830 --> 01:09:10,860 ja siis ma helistan. valmis. 1163 01:09:10,860 --> 01:09:15,480 Mis jQuery sisuliselt on see võimaldab teil võtta mõned vanilje JavaScript asjad 1164 01:09:15,480 --> 01:09:17,889 nagu dokumendi objekt, akna objekti, 1165 01:09:17,889 --> 01:09:20,790 ja kui te kaotate seda, et jQuery funktsioon - 1166 01:09:20,790 --> 01:09:24,429 ja jälle, et oleks selge, et see on funktsioon nimega jQuery - 1167 01:09:24,429 --> 01:09:28,240 mida ta teeb on see naaseb sa eriversioon dokument 1168 01:09:28,240 --> 01:09:30,700 millel on rohkem funktsioone sellega seotud. 1169 01:09:30,700 --> 01:09:34,760 Nii toores JavaScript ei ole valmis funktsiooni, 1170 01:09:34,760 --> 01:09:37,810 kuid kui te kaotate dokumendi jQuery funktsiooni esimese, 1171 01:09:37,810 --> 01:09:40,960 see läheb sulle erilise versiooni dokumendist objekti 1172 01:09:40,960 --> 01:09:43,030 mis on rohkem väljamõeldud omadusi. 1173 01:09:43,030 --> 01:09:48,230 Ja sellepärast inimestele meeldib see. See lihtsalt teeb asjad lihtsamaks teha, kui me parasjagu näha. 1174 01:09:48,230 --> 01:09:49,820 Mida see rida koodi tähendab? 1175 01:09:49,820 --> 01:09:52,690 See koodirida tähendab siin, kui dokument on valmis - 1176 01:09:52,690 --> 01:09:56,830 teisisõnu, kui brauser on lõpetanud lugemise see fail ülevalt alla - 1177 01:09:56,830 --> 01:09:59,200 edasi minna ja käivitada järgmine funktsioon. 1178 01:09:59,200 --> 01:10:03,540 Mis on tegelikult huvitav JavaScript - ja PHP on see samuti - 1179 01:10:03,540 --> 01:10:05,450 on anonüümne funktsioone. 1180 01:10:05,450 --> 01:10:10,560 JavaScript saad kuulutada funktsioone, mis ei ole nimi, vaid neil on keha. 1181 01:10:10,560 --> 01:10:12,570 Teade mis siin toimub. 1182 01:10:12,570 --> 01:10:16,220 >> See on funktsioon, mida nimetatakse valmis, ja see tähendab, tehke järgmist 1183 01:10:16,220 --> 01:10:20,220 kui kogu kodulehekülg on valmis, kui see kõik on lugeda serverist. 1184 01:10:20,220 --> 01:10:23,090 Mida sa tahad teha? Ma tahan täita patakas kood. 1185 01:10:23,090 --> 01:10:27,120 Pange tähele, et me ei taha täita see kood kohe. 1186 01:10:27,120 --> 01:10:34,350 Kui ma jätta seda, tähendaks see kohe nende täitmise rida koodi. 1187 01:10:34,350 --> 01:10:39,040 Kuid tõsiasi, et ma räägin ei, ei, ei, mähi seda anonüümne funktsioon nagu see 1188 01:10:39,040 --> 01:10:43,000 vahendid ei käivita veel; nimetame seda lõpuks. 1189 01:10:43,000 --> 01:10:45,430 Me nägime seda hetk tagasi meie endisel kujul näiteks. 1190 01:10:45,430 --> 01:10:49,990 Mis funktsioon ei kutsume lõpuks 500 millisekundit hiljem? Blink. 1191 01:10:49,990 --> 01:10:51,480 Nii et sama mõte. 1192 01:10:51,480 --> 01:10:53,950 Jällegi, isegi kui see tundub veidi imelik, võtke nüüd edasi usus 1193 01:10:53,950 --> 01:10:57,060 et kuulutada anonüümne funktsioon, mis kutsutakse lõpuks, 1194 01:10:57,060 --> 01:11:01,720 sa lihtsalt kirjutada funktsioon () { 1195 01:11:01,720 --> 01:11:05,380 Mida kood me kavatseme ellu lõpuks? Järgmised. 1196 01:11:05,380 --> 01:11:10,460 Ka see tundub veidi uut, kuid see tähendab, siin on jQuery funktsiooni, 1197 01:11:10,460 --> 01:11:13,430 ja see nüüd on otsetee. 1198 01:11:13,430 --> 01:11:18,830 See HTML koodi allosas ekraani muidugi on mõned puud esindus. 1199 01:11:18,830 --> 01:11:21,730 See ei ole see. Seda lehekülge on huvitavam kui see hello, world näite. 1200 01:11:21,730 --> 01:11:25,210 Aga seal on mõned puud, mis vastab käesoleva HTML. 1201 01:11:25,210 --> 01:11:28,910 Oleks tüütu on rakendada mingi rekursiivne funktsioon 1202 01:11:28,910 --> 01:11:34,380 alustada Juursõlme ja seejärel leida sõlme kelle ID on registreerimine. 1203 01:11:34,380 --> 01:11:38,340 Mis siis jQuery teeb super lihtne meile on sõna otseses mõttes seda. 1204 01:11:38,340 --> 01:11:43,000 Lase käia ja mind iganes div või mis tahes kujul, olenemata HTML element 1205 01:11:43,000 --> 01:11:45,820 on ID registreerimisel. 1206 01:11:45,820 --> 01:11:52,440 See võrdub document.getElementById ("registreerimine"). 1207 01:11:52,440 --> 01:11:54,170 >> Miks inimesed nagu jQuery? 1208 01:11:54,170 --> 01:12:00,110 Sest see on lühem kirjutada. Aga see kõik on. See on sama mõte. 1209 01:12:00,110 --> 01:12:02,630 Too mulle tag kelle ID on registreerimine. 1210 01:12:02,630 --> 01:12:06,300 Ja kui see silt, mis juhtub olema kujul, esitatakse, 1211 01:12:06,300 --> 01:12:08,300 minna ja täita seda koodi. 1212 01:12:08,300 --> 01:12:11,320 Võtame ühe otsima nüüd, kuidas me teeme vormi kinnitamine. 1213 01:12:11,320 --> 01:12:15,950 Süntaks on küll segasena alguses, kuid mis toimub? 1214 01:12:15,950 --> 01:12:21,050 Kui see koodirida on tõsi, ma lähen kisa kasutaja anda oma e-posti aadress. 1215 01:12:21,050 --> 01:12:22,970 Mis on see rida koodi? 1216 01:12:22,970 --> 01:12:25,560 $ Tähendab jQuery. Nüüd märka seda. 1217 01:12:25,560 --> 01:12:27,920 See on selline nagu CSS. 1218 01:12:27,920 --> 01:12:33,370 Kui olete sukeldunud CSS veel, tead, mis see tähendab, element, mille ID on registreerimine. 1219 01:12:33,370 --> 01:12:39,840 Ruum tähendab leida laps või järeltulija registreerimine kelle nimi on sisend. 1220 01:12:39,840 --> 01:12:42,970 Ja siis see asi nurksulgudes on vähe filter. 1221 01:12:42,970 --> 01:12:47,010 Ja isegi kui see tundub segasena, tähendab see lihtsalt minema vorm, mille ID on registreerimine, 1222 01:12:47,010 --> 01:12:51,230 mine sisend element sees, et kelle nimi on e-post, 1223 01:12:51,230 --> 01:12:55,440 ja siis saad selle raha, mis iganes selle raha juhtub olema - 1224 01:12:55,440 --> 01:12:59,670 asdf, kas see on kõik, mida ma trükitud või malan@harvard.edu kui see, mida ma kirjutada. 1225 01:12:59,670 --> 01:13:05,250 Nii et kui väärtus kujul e-posti väli == midagi, kisa kasutaja. 1226 01:13:05,250 --> 01:13:09,700 Else if väärtus parooli väli == midagi, kisa kasutaja. 1227 01:13:09,700 --> 01:13:19,520 >> Else if väärtus parooli väli ei võrdu väärtuse kinnitamine valdkonnas, 1228 01:13:19,520 --> 01:13:22,850 mis oli muu element, kisa kasutaja. 1229 01:13:22,850 --> 01:13:25,680 Ja siis lõpuks - ja see liiga on mõned uued süntaks oma, 1230 01:13:25,680 --> 01:13:29,270 aga kui oled näinud, see on vähemalt natuke mõistlikum - 1231 01:13:29,270 --> 01:13:34,060 else if vorm, mille ID on registreerimine on sisend elementi, mille nimi on kokkulepe 1232 01:13:34,060 --> 01:13:39,720 ja kontrollitakse seda, minna ja karjuda kasutaja. 1233 01:13:39,720 --> 01:13:42,520 Nii et ma täiesti tunnistama, see on täiesti valdav esimesel pilgul. 1234 01:13:42,520 --> 01:13:46,530 See on palju uusi süntaks. Aga kõik jQuery järgmiselt selliseid mustreid. 1235 01:13:46,530 --> 01:13:49,880 Ja ausalt, ma ei tea isegi seda olid kuni paar minutit tagasi. 1236 01:13:49,880 --> 01:13:53,640 Ma Googled, "Kuidas sa kontrollida, kas on kastike on jQuery?" 1237 01:13:53,640 --> 01:13:55,680 ja see on süntaks, sest seal on erinevaid viise, kuidas seda teha 1238 01:13:55,680 --> 01:13:58,010 tegelike toores JavaScripti koodi. 1239 01:13:58,010 --> 01:14:01,030 Nii nagu väga esilehel Ülesanded nr 7 rõhutatakse, 1240 01:14:01,030 --> 01:14:04,500 pset 7 on väga palju harjutus eellaadimisel ise 1241 01:14:04,500 --> 01:14:08,650 kus oleme pakkunud loodetavasti kontseptuaalne raamistik, millega tegeleda pset. 1242 01:14:08,650 --> 01:14:12,280 >> Aga nagu sageli juhtub web disain, see on kuni teil tõesti tuhnima, 1243 01:14:12,280 --> 01:14:16,680 lisada pikad kood ja näiteid veebist nii kaua, kui te tsiteerivad neid 1244 01:14:16,680 --> 01:14:17,960 kohta tingimused, et esimese lehe, 1245 01:14:17,960 --> 01:14:21,460 ja mõistma, et õppimine HTML, CSS, JavaScript ja isegi SQL 1246 01:14:21,460 --> 01:14:26,020 on tõesti mõeldud seda kodus kasutada, kui me hakkame võtma need abirattad maha. 1247 01:14:26,020 --> 01:14:29,150 Ja aru ka seal on nii palju asju, mida saate teha brauserit. 1248 01:14:29,150 --> 01:14:33,790 Toas enamik neist elementidest on ka teisi asju nimetatakse sündmuseohjurite. 1249 01:14:33,790 --> 01:14:37,140 Ja kuigi me just vaatasin need nn onSubmit ja onready, 1250 01:14:37,140 --> 01:14:40,310 saate teha asju nagu onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 nagu siis, kui kasutaja puutub võtme, saab kuulata selle ja võti üles. 1252 01:14:43,410 --> 01:14:45,940 Gmail on kiirklahvide. 1253 01:14:45,940 --> 01:14:49,490 Kuidas Google rakendada kiirklahve nagu C komponeerida? 1254 01:14:49,490 --> 01:14:54,120 Nad kuulavad sündmustest, nagu neid nimetatakse, nagu onkeypress või onkeyup ja onkeydown. 1255 01:14:54,120 --> 01:14:56,360 Kui olete kunagi tiirles hiirt mõned menüüvalik 1256 01:14:56,360 --> 01:15:00,180 ja äkki, voila, ilmub menüü või graafiline muudab värvi, 1257 01:15:00,180 --> 01:15:01,920 kuidas nad seda teevad? 1258 01:15:01,920 --> 01:15:06,940 Selle asemel, et kuulata onready või onSubmit, siis kuulake onmouseover või onMouseOut. 1259 01:15:06,940 --> 01:15:10,920 >> Nii lühike, neid väga lihtne põhitõdesid, et oleme hakanud kriimustada pinda täna 1260 01:15:10,920 --> 01:15:13,940 ja me sukelduda veelgi kolmapäeval, pead üha enam 1261 01:15:13,940 --> 01:15:17,530 pädevus rakendada erinevaid asju, et sa oled juba tuttav. 1262 01:15:17,530 --> 01:15:21,620 Nii et olgem lõpe, ja me jätkame seda kolmapäeval. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]