1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [Muusika mängib] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH: Tere, kõigile. 5 00:00:12,700 --> 00:00:15,866 Aitäh poisid nii palju tulemas in vastik ilm viktoriin üks 6 00:00:15,866 --> 00:00:16,910 vaadata istungil. 7 00:00:16,910 --> 00:00:20,020 Nagu te teate, viktoriin üks on sel kolmapäeval. 8 00:00:20,020 --> 00:00:22,209 Nii et me läheme läbi hunnik teemasid. 9 00:00:22,209 --> 00:00:24,000 DAVIN: Kuule, ma oskan öelda midagi reaalset kiire? 10 00:00:24,000 --> 00:00:25,215 HANNAH: Jah, Davin siin toimub midagi öelda reaalne kiire. 11 00:00:25,215 --> 00:00:25,780 DAVIN: Sorry. 12 00:00:25,780 --> 00:00:29,490 Just reaalne kiire, kui teil on küsimusi viktoriini, võite minna online. 13 00:00:29,490 --> 00:00:32,420 Mine 2014 viktoriini üks umbes viktoriini. 14 00:00:32,420 --> 00:00:34,680 See sai logistika umbes kuhu minna, millal minna. 15 00:00:34,680 --> 00:00:38,100 Kui oled üheaegselt kaasatud, me oleme läheb on meik viktoriin 5:30. 16 00:00:38,100 --> 00:00:40,350 Või kui sina oled minu läkitanud küsimus, teil on mõni muu probleem. 17 00:00:40,350 --> 00:00:42,640 Aga 05:30 on make-up aeg kolmapäeval. 18 00:00:42,640 --> 00:00:44,540 Aga kui teil on küsimusi, üldisi küsimusi, 19 00:00:44,540 --> 00:00:45,748 Internetis on kõik logistika. 20 00:00:45,748 --> 00:00:47,690 Nii et vaadata seal esimene. 21 00:00:47,690 --> 00:00:49,070 >> HANNAH: Awesome. 22 00:00:49,070 --> 00:00:53,030 Nii et siin on suur teemade loetelu et me läheme läbi täna. 23 00:00:53,030 --> 00:00:57,390 Ma lähen, et katta kõik C kraami, mis seisneb selles, et esimeses veerus. 24 00:00:57,390 --> 00:01:00,710 Nii C värk, et me kaetud pärast viktoriini null. 25 00:01:00,710 --> 00:01:05,459 Alustades seotud nimekirja, mis sisaldab viiteid. 26 00:01:05,459 --> 00:01:07,668 >> Olgu, nii et me nägime seda Viimase läbivaatamise istungil 27 00:01:07,668 --> 00:01:10,000 nii et ma lähen läbi see on natuke kiirem. 28 00:01:10,000 --> 00:01:13,500 Just tõsta oma käsi, kui sa tahad mind aeglustada või tegeleda millegi veelgi. 29 00:01:13,500 --> 00:01:17,150 Aga me kasutame ahelloendid sest meil alanud C massiivid. 30 00:01:17,150 --> 00:01:20,920 Ja massiivid on suur, kuid Probleem on selles, nad on kindla suurusega. 31 00:01:20,920 --> 00:01:24,925 Ahelloendid võimaldab meil luua dünaamiliselt muutuva suuruse andmestruktuurid. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> Ja meil on meie põhilisi toiminguid, lisada, kustutada ja otsida. 34 00:01:32,320 --> 00:01:36,780 Ja me saame teha insert sisse Halvimal juhul konstantset aega 35 00:01:36,780 --> 00:01:39,140 kui me lihtsalt pane see alguses. 36 00:01:39,140 --> 00:01:45,220 Kustuta ja otsida, halvimal Juhul suur oh n korda. 37 00:01:45,220 --> 00:01:47,140 Nii jälle, lihtsalt klapp kaudu neid pilte, 38 00:01:47,140 --> 00:01:50,860 Ma tean, et me nägime neid viimast korda, kuid me soovite jälgida meie seotud nimekirja 39 00:01:50,860 --> 00:01:53,440 hoides silma peal pea meie seotud nimekirja. 40 00:01:53,440 --> 00:01:55,580 Kuna me teame, et iga üks meie sõlmed 41 00:01:55,580 --> 00:01:58,610 lihtsalt läheb osutavad Järgmine sõlm meie seotud nimekirja. 42 00:01:58,610 --> 00:02:00,460 >> Nii et see, kuidas me jälgida. 43 00:02:00,460 --> 00:02:02,910 Kuigi need ei ole pideva tükki mälu 44 00:02:02,910 --> 00:02:07,410 leiame neid lihtsalt pärast erinevad nooled. 45 00:02:07,410 --> 00:02:09,800 Siin on meie struktuur jaoks seotud nimekirja sõlme. 46 00:02:09,800 --> 00:02:11,440 Me nägime seda viimast korda. 47 00:02:11,440 --> 00:02:13,080 Meil on struct node. 48 00:02:13,080 --> 00:02:14,340 Ja tal on kaks omadused. 49 00:02:14,340 --> 00:02:17,020 Number üks, tegelik väärtus tahame salvestada. 50 00:02:17,020 --> 00:02:18,290 Sel juhul on täisarv. 51 00:02:18,290 --> 00:02:21,100 See võib olla string, siis võiks olema char, mida iganes sa tahad. 52 00:02:21,100 --> 00:02:24,710 Ja siis on meil jälgida Järgmine sõlm meie seotud nimekirja. 53 00:02:24,710 --> 00:02:29,797 Nii et saab olema kursor järgmisele sõlme. 54 00:02:29,797 --> 00:02:31,880 Kui sa olid lihtsalt teeme Otsingu nagu ma enne ütlesin, 55 00:02:31,880 --> 00:02:34,900 sa pead järgima oma nooltega. 56 00:02:34,900 --> 00:02:40,720 Täiendus, siis oleks jälgida kus ülejäänud oma nimekirja on. 57 00:02:40,720 --> 00:02:44,150 Ja sa tahad suunata juht näidata meie uus element, mis 58 00:02:44,150 --> 00:02:46,640 sel juhul on üks, ja siis üks punkt 59 00:02:46,640 --> 00:02:49,480 ülejäänud ahelloendid. 60 00:02:49,480 --> 00:02:52,996 Nii jälle, ma tean, et see on natuke natuke korda alates viktoriin null. 61 00:02:52,996 --> 00:02:55,370 Seega peame olema väga ettevaatlik umbes et kus me 62 00:02:55,370 --> 00:03:00,390 kas need pointings nii et me ei Kadottaa tagasi nimekirja. 63 00:03:00,390 --> 00:03:04,122 OK, mingeid küsimusi lihtsalt üksi ahelloendid? 64 00:03:04,122 --> 00:03:06,060 Awesome, OK, lahe. 65 00:03:06,060 --> 00:03:09,410 >> Nüüd me läheme peale midagi lihtsalt veidi keerulisem, 66 00:03:09,410 --> 00:03:10,920 kahekordselt seotud nimekirju. 67 00:03:10,920 --> 00:03:13,680 Nii et lisaks hoides teele järgmise sõlme, 68 00:03:13,680 --> 00:03:16,220 tahame ka jälgida Eelmise sõlme. 69 00:03:16,220 --> 00:03:19,580 Ja see võimaldab meil, kui me mingil hetkel meie seotud nimekirja, 70 00:03:19,580 --> 00:03:23,110 mitte ainult minna edasi, kuid Samuti itereerima tagasi. 71 00:03:23,110 --> 00:03:25,220 Sest nagu me nägime üksikult seotud nimekirja, 72 00:03:25,220 --> 00:03:27,980 Kui olime mõned sõlme, ja äkki oleme otsustanud, 73 00:03:27,980 --> 00:03:30,160 tegelikult, ma tahan minna sõlme vahetult enne mind, 74 00:03:30,160 --> 00:03:32,034 sa pead minema kõik Teel tagasi pea 75 00:03:32,034 --> 00:03:35,710 ja itereerima läbi kuni olete leidnud sõlme, mida otsisite. 76 00:03:35,710 --> 00:03:37,680 >> Nii et see teeb asjad veidi lihtsamaks, sest me oleme 77 00:03:37,680 --> 00:03:39,670 püüab itereerima meie seotud nimekirja. 78 00:03:39,670 --> 00:03:47,870 Aga see nõuab meilt jälgida ühe rohkem pointer, nii ühe sõlme star. 79 00:03:47,870 --> 00:03:50,830 Olgu, nii siin on lõbus osa. 80 00:03:50,830 --> 00:03:55,600 Me läheme harjutama rakendamisel kõrvaldama kahekordselt seotud nimekirju. 81 00:03:55,600 --> 00:03:58,660 Nii et see on midagi, mis on täiesti aus mäng viktoriini. 82 00:03:58,660 --> 00:04:00,750 See näitas üles viimase viktoriine. 83 00:04:00,750 --> 00:04:04,220 Nii kindlasti valmis koodi natuke C. 84 00:04:04,220 --> 00:04:07,900 Ära unusta, et kõik Sel lõbus PHP ja JavaScript, 85 00:04:07,900 --> 00:04:10,560 meil on veel meeles teha C. Nii värskendada, et 86 00:04:10,560 --> 00:04:12,146 kui te ei tunne roostes. 87 00:04:12,146 --> 00:04:14,580 >> Olgu, vaatame, kas me saame seda teha. 88 00:04:14,580 --> 00:04:16,312 OK, lahe. 89 00:04:16,312 --> 00:04:18,600 Nii et me läheme püüdma muuta otse siin 90 00:04:18,600 --> 00:04:20,707 ja loodetavasti see läheb nagu plaanitud. 91 00:04:20,707 --> 00:04:23,915 Olgu, keegi ei taha mulle anda soovitus, kuidas ma peaks alustama? 92 00:04:23,915 --> 00:04:27,030 Ainult eeldusel, ma olen tegemisel on see, et ma juba 93 00:04:27,030 --> 00:04:30,180 on määratletud struktuuri, üks I näitas viimasel leheküljel, 94 00:04:30,180 --> 00:04:31,420 viimasel slide. 95 00:04:31,420 --> 00:04:39,250 Ja ma ladustamiseks pea minu seotud nimekiri mõned pointer nimetatakse nimekirja. 96 00:04:39,250 --> 00:04:42,190 Kas keegi tahtma mind hakkas? 97 00:04:42,190 --> 00:04:45,410 >> Sihtrühm: Kas teil luua uus sõlme helistada läbi nimekirja? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH: Awesome, nii me ei kavatse luua 99 00:04:46,410 --> 00:04:47,951 uus sõlm roomama läbi nimekirja. 100 00:04:47,951 --> 00:04:48,570 Mulle meeldib, et. 101 00:04:48,570 --> 00:04:50,799 Ma lihtsalt nimetame seda pointer, kui see on OK. 102 00:04:50,799 --> 00:04:52,340 Ja kui see peaks esialgu alustada? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> Sihtrühm: ilmselt juht nimekirja. 105 00:04:59,840 --> 00:05:00,590 HANNAH: Beautiful. 106 00:05:00,590 --> 00:05:03,670 Me tahame alustada eesotsas, mis Ma ütlesin, saab olema salvestatud nimekirja. 107 00:05:03,670 --> 00:05:04,170 Awesome. 108 00:05:04,170 --> 00:05:05,220 Siiani nii hea. 109 00:05:05,220 --> 00:05:08,260 Ja nüüd, meie eesmärk on itereerima läbi nimekirja 110 00:05:08,260 --> 00:05:12,870 kuni leiame sõlm väärtus n, et me tahame kustutada. 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> Nüüd on osa, kus tahame kinnitada, läbi. 113 00:05:15,910 --> 00:05:19,488 Kas keegi soovitada viis itereerima kaudu? 114 00:05:19,488 --> 00:05:20,979 >> Sihtrühm: loop. 115 00:05:20,979 --> 00:05:21,840 >> HANNAH: loop. 116 00:05:21,840 --> 00:05:22,620 Ma armastan seda. 117 00:05:22,620 --> 00:05:25,550 Täpsemalt saame proovida samas silmus. 118 00:05:25,550 --> 00:05:30,919 OK, ja me teame, et oleme jõudnud lõpus meie nimekirjas kui see, mida? 119 00:05:30,919 --> 00:05:32,210 Sihtrühm: Kui osuti on null. 120 00:05:32,210 --> 00:05:33,418 HANNAH: Kui osuti on null. 121 00:05:33,418 --> 00:05:34,320 Ilus, ma armastan seda. 122 00:05:34,320 --> 00:05:35,110 OK, lahe. 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 Nii kahju, kui minu piirikasti traksidega on selline allakukkumist ekraani. 125 00:05:43,190 --> 00:05:44,090 Tõime selle tagasi. 126 00:05:44,090 --> 00:05:46,610 OK, lahe. 127 00:05:46,610 --> 00:05:48,690 Mis edasi? 128 00:05:48,690 --> 00:05:51,950 >> Nii et me teame, et me tahame kustutada sõlme, mis on väärtus n. 129 00:05:51,950 --> 00:05:56,340 Nii saab leida juhul, kui me tegelikult leida meie sõlme. 130 00:05:56,340 --> 00:05:57,840 Niisiis, kuidas ma kontrollin seda? 131 00:05:57,840 --> 00:06:02,210 Ma tahaks lihtsalt öelda, kui pointer, ja siis, kui ma tahad raha välja pointer, 132 00:06:02,210 --> 00:06:08,940 Ma lihtsalt nool n, võrdub n parameeter 133 00:06:08,940 --> 00:06:14,490 et me andsime selle funktsiooni sõlme, et me tahame tegelikult kustutada. 134 00:06:14,490 --> 00:06:17,090 Küsimused kuni here? 135 00:06:17,090 --> 00:06:18,360 Hea küll. 136 00:06:18,360 --> 00:06:24,140 OK, nii et nüüd joonistame kiire pilt laual, et seda visualiseerida. 137 00:06:24,140 --> 00:06:30,710 >> Ütleme, et seal on meie armas sõlme. 138 00:06:30,710 --> 00:06:34,480 Ja see on väärtus, ma lihtsalt öelda, neli. 139 00:06:34,480 --> 00:06:40,340 Ja see viitab järgmine sõlme meie seotud nimekirja. 140 00:06:40,340 --> 00:06:42,220 Ja seal on midagi enne seda. 141 00:06:42,220 --> 00:06:45,800 Nii et meil on meie eelmise osutades midagi. 142 00:06:45,800 --> 00:06:48,110 Sel juhul juhime tahapoole. 143 00:06:48,110 --> 00:06:50,960 OK, lihtsalt luues oma seotud nimekirja siin. 144 00:06:50,960 --> 00:06:53,630 Ja meil on nimekiri, mis osutab Selle struktuuri alustada. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 Ma joonistan ühe rohkem Täiendavalt. 147 00:07:00,485 --> 00:07:04,209 148 00:07:04,209 --> 00:07:06,117 OK. 149 00:07:06,117 --> 00:07:07,480 Ma punkti sellele edasi. 150 00:07:07,480 --> 00:07:09,550 Ja ma rõhutada, et üks tagasi. 151 00:07:09,550 --> 00:07:10,360 Oih, vabandust. 152 00:07:10,360 --> 00:07:12,710 Jah, sain selle tagasi. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 Kas see uuesti. 155 00:07:16,967 --> 00:07:18,330 OK, seal me läheme. 156 00:07:18,330 --> 00:07:19,910 Olgu, sain aru. 157 00:07:19,910 --> 00:07:21,780 OK, siin on meie pilt. 158 00:07:21,780 --> 00:07:24,860 >> OK, nii et me tahame uurida kahte juhtumit. 159 00:07:24,860 --> 00:07:27,330 Esimesel juhul on siis, kui sõlme tahame kustutada 160 00:07:27,330 --> 00:07:29,420 on algusest peale meie nimekirjas. 161 00:07:29,420 --> 00:07:34,070 Ja siis teisel juhul, et me tahame kaaluda, on, kas see on kusagil mujal. 162 00:07:34,070 --> 00:07:37,660 Ma saan aru, et see täiesti räpane juhtides kogu oma Kustutamise 163 00:07:37,660 --> 00:07:40,400 kuid loodetavasti me proovime selgeks teha mõned koodi. 164 00:07:40,400 --> 00:07:45,450 >> OK, nii et vaatame, mida rakendatakse juhul kus leidsime meie sõlme, 165 00:07:45,450 --> 00:07:48,900 ja see on päris alustada meie seotud nimekirja. 166 00:07:48,900 --> 00:07:50,810 Keegi mulle soovitus siin, et mida 167 00:07:50,810 --> 00:07:54,684 Ma peaks tegema, et tegelikult eemaldada meie sõlme? 168 00:07:54,684 --> 00:07:55,970 See on natuke keeruline. 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> Sihtrühm: Sa pead võtma node et oleks enne selle 171 00:07:59,628 --> 00:08:01,794 ja teha see käsk üks, mis oleks pärast seda, 172 00:08:01,794 --> 00:08:03,004 ja võtta sõlme oleks pärast ja teha 173 00:08:03,004 --> 00:08:04,554 see viidata sõlme enne seda. 174 00:08:04,554 --> 00:08:05,220 HANNAH: Täpselt. 175 00:08:05,220 --> 00:08:10,640 OK, nii et see on nii where-- meil kahel juhul. 176 00:08:10,640 --> 00:08:14,100 Meil on juhul, kui sõlme, et me otsime 177 00:08:14,100 --> 00:08:18,270 on esiküljel nimekirja. 178 00:08:18,270 --> 00:08:23,110 OK, ja siis nii, et teil Kirjeldatud viisil, eks? 179 00:08:23,110 --> 00:08:24,500 See on kusagil mujal nimekirja. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 Nii et sa ütlesid, peame vaadata sõlme eelmise, 182 00:08:32,840 --> 00:08:36,500 ja teha eelmise sõlme osutavad järgmise sõlme. 183 00:08:36,500 --> 00:08:40,510 Ütleme, et me oleme püüab välja võtta viie 184 00:08:40,510 --> 00:08:43,059 minu väga räpane joonistus siin. 185 00:08:43,059 --> 00:08:47,530 Me tahame veenduda, et Nelja nüüd juhib kuue. 186 00:08:47,530 --> 00:08:49,590 Nelja järgmise aspekti kuue. 187 00:08:49,590 --> 00:08:52,150 Ja kuue eelmise punkte neli. 188 00:08:52,150 --> 00:08:53,960 See on meie eesmärk siin, eks? 189 00:08:53,960 --> 00:08:56,150 See on see, mida ma arvan, et sa just ütles seal. 190 00:08:56,150 --> 00:08:58,450 >> OK, nii et lähme, et esimene tükk. 191 00:08:58,450 --> 00:09:02,300 Teeme olla Eelmise pointer eelmise. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 Nii nelja järgmise tuleks juhtida sellele, mida? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 Täpselt, sel juhul, kui kuus. 196 00:09:14,900 --> 00:09:18,470 Nii et me peaks ütlema pointer kõrval. 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 Hea küll. 199 00:09:21,150 --> 00:09:24,870 Nii saab vabaneda sellest kole pilt ja proovige juhtida veidi kenamaks üks. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 Meil on meie nimekirjas pea siin. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 Ja mis osutab esimese sõlme Meie seotud nimekirja, mida me ütlesime, on neli. 204 00:09:42,740 --> 00:09:45,620 Siin on meie teine ​​sõlm, viis. 205 00:09:45,620 --> 00:09:47,307 Ja meie kolmanda sõlme kuus. 206 00:09:47,307 --> 00:09:50,265 Just üritanud juhtida täpselt sama pilt, natuke puhtamalt. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 OK, nii et nelja järgmise Algselt juhib viie. 209 00:09:56,280 --> 00:09:58,620 Viis järgmise võrra kuus. 210 00:09:58,620 --> 00:10:00,170 Kuus eelmise punkte viis. 211 00:10:00,170 --> 00:10:02,470 Ja viis eelmist punkti neli. 212 00:10:02,470 --> 00:10:03,360 Nii palju ilusam! 213 00:10:03,360 --> 00:10:04,530 OK, lahe. 214 00:10:04,530 --> 00:10:07,770 >> Nüüd, mida me tegime lihtsalt siin, see koodirida, 215 00:10:07,770 --> 00:10:12,680 mis ütleb pointer eelmise Järgmisel, seega mida see tähendab? 216 00:10:12,680 --> 00:10:17,540 See tähendab, et kui me vaatame viie Eelmise sõlme, 217 00:10:17,540 --> 00:10:21,970 ja see on järgmine peaks nüüd punkt viie järgmise. 218 00:10:21,970 --> 00:10:27,840 Nii et sisuliselt, mis see teeb on mis on kustutamisel see nool 219 00:10:27,840 --> 00:10:29,640 ja teha see vahele jätta õigus üle viie. 220 00:10:29,640 --> 00:10:31,360 Kas on selge? 221 00:10:31,360 --> 00:10:33,200 Ma tean, et võib olla natuke pealiskaudsed. 222 00:10:33,200 --> 00:10:34,480 Ma näen mõnda head noogutab. 223 00:10:34,480 --> 00:10:35,390 See on hea. 224 00:10:35,390 --> 00:10:36,670 OK, lahe. 225 00:10:36,670 --> 00:10:39,590 Nüüd, mis on järgmine samm? 226 00:10:39,590 --> 00:10:42,060 >> Olen reset kõrval. 227 00:10:42,060 --> 00:10:45,297 Nüüd, mida teised nool ma pean muutma? 228 00:10:45,297 --> 00:10:46,130 See üks on siin. 229 00:10:46,130 --> 00:10:47,560 Kuus eelmine. 230 00:10:47,560 --> 00:10:50,620 Me ei taha kuus eelmise juhtida viis enam. 231 00:10:50,620 --> 00:10:54,580 Me tahame, et juhtida kuni nelja. 232 00:10:54,580 --> 00:10:56,190 Kas see pilt on mõtet? 233 00:10:56,190 --> 00:10:58,370 Nüüd me saame tegelikult võtta viis läbi. 234 00:10:58,370 --> 00:10:59,370 Nii lähme, et tükk. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 Mida ma peaksin tegema, enne kui ma reset kuus eelmise nelja? 237 00:11:11,180 --> 00:11:14,360 Kõik ideed on? 238 00:11:14,360 --> 00:11:17,369 >> Sihtrühm: Tasuta sõlme vahel neid seades selle tühjaks? 239 00:11:17,369 --> 00:11:17,910 HANNAH: Cool. 240 00:11:17,910 --> 00:11:21,100 Kindlasti on meie lõppeesmärk on saab olema vaba sõlme. 241 00:11:21,100 --> 00:11:22,490 Nii et me ei saa seda teha siin. 242 00:11:22,490 --> 00:11:23,540 Tasuta pointer. 243 00:11:23,540 --> 00:11:24,810 Absoluutselt. 244 00:11:24,810 --> 00:11:29,160 Kuid isegi enne seda, olgem lihtsalt-- meie eesmärk õigus 245 00:11:29,160 --> 00:11:38,730 siin on määrata kursori järgmise Eelmise võrdne pointer eelmise. 246 00:11:38,730 --> 00:11:40,760 Tean, et see muutub kaetud. 247 00:11:40,760 --> 00:11:45,440 Okei, Vőta lahe. 248 00:11:45,440 --> 00:11:46,990 Kas kõik näevad seda alumine rida? 249 00:11:46,990 --> 00:11:47,840 Või on see super väike? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> Nii et enne me ellu see rida siin, me tahame 252 00:11:54,300 --> 00:11:58,375 veenduda, et pointer kõrval ei ole null. 253 00:11:58,375 --> 00:12:00,500 Sest kui osuti kõrval on null, millist viga 254 00:12:00,500 --> 00:12:02,727 ma saan kui ma üritan viide nullviida? 255 00:12:02,727 --> 00:12:03,560 Sihtrühm: seg süü. 256 00:12:03,560 --> 00:12:05,660 HANNAH: seg süü, ilus. 257 00:12:05,660 --> 00:12:09,690 OK, nii et kui see pole null, siis on võimalik taastada. 258 00:12:09,690 --> 00:12:14,420 Ja meil on kuus punkti jälle neli. 259 00:12:14,420 --> 00:12:17,440 Küsimused kuni selle hetkeni? 260 00:12:17,440 --> 00:12:17,940 Jah? 261 00:12:17,940 --> 00:12:19,814 >> Sihtrühm: Oma esimesel kui avaldus, kas sa 262 00:12:19,814 --> 00:12:23,817 tähendab, et on nool Järgmise või [kuuldamatu]? 263 00:12:23,817 --> 00:12:25,150 HANNAH: Ma mõtlesin pointer nool n. 264 00:12:25,150 --> 00:12:30,270 Ühesõnaga, mida ma üritan teha on öelda, aktiivse sõlme, et ma olen 265 00:12:30,270 --> 00:12:34,100 iterating üle, aktiivse sõlme, et Otsin, ma salvestamine pointer. 266 00:12:34,100 --> 00:12:37,630 Ja ma tahan teada Osuti väärtus, mis antud juhul on n. 267 00:12:37,630 --> 00:12:39,500 Ja ma tahan näha, on sõlme Otsin 268 00:12:39,500 --> 00:12:42,790 sõlme Mind, mille eesmärk on kustutada? 269 00:12:42,790 --> 00:12:47,657 Nii et miks meil siin pointer n. 270 00:12:47,657 --> 00:12:49,857 >> Sihtrühm: Nii nool läheb n, siis väärtuse määramiseks 271 00:12:49,857 --> 00:12:52,058 ja hoidke seda sõlme nimetatakse n? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH: Nii et see on nagu siis, kui ma olen läbimas see seotud nimekirja 274 00:12:58,820 --> 00:13:00,310 ja osutades viis. 275 00:13:00,310 --> 00:13:03,600 Kui ma tahan saada, et raha, kui Ma tahan saada, et number, 5 276 00:13:03,600 --> 00:13:06,400 Mida ma pean tegema pointer nool n. 277 00:13:06,400 --> 00:13:06,900 Cool? 278 00:13:06,900 --> 00:13:07,900 Jah. 279 00:13:07,900 --> 00:13:11,200 >> Sihtrühm: N muutuja nimi? 280 00:13:11,200 --> 00:13:11,700 HANNAH: Jah. 281 00:13:11,700 --> 00:13:14,870 Nii et kui me klapp võrra tagasi slide, n on nimi 282 00:13:14,870 --> 00:13:18,660 väärtusest sees sõlme meie seotud nimekirja. 283 00:13:18,660 --> 00:13:21,510 Ja ma tean, et see võib natuke natuke segane, sest meil on ka 284 00:13:21,510 --> 00:13:24,680 kutsuvad asi et me tahame kustutada n. 285 00:13:24,680 --> 00:13:26,717 Nii et kui see üks rida pärineb. 286 00:13:26,717 --> 00:13:27,671 Jah? 287 00:13:27,671 --> 00:13:31,010 >> Sihtrühm: Mida on teil [Kuuldamatu], kuidas nad töötavad? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 Osuti [kuuldamatu]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH: Sure. 291 00:13:37,520 --> 00:13:40,027 Räägid about-- mis line? 292 00:13:40,027 --> 00:13:41,526 Sihtrühm: viimane rida [kuuldamatu]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH: Muidugi, OK. 295 00:13:45,250 --> 00:13:48,540 Nii vaatame pilti Selleks, et proovida seda seletada. 296 00:13:48,540 --> 00:13:51,030 Mul on kahju, et Kaamera oli küsimus 297 00:13:51,030 --> 00:13:54,580 saame selgitada pointer noolt pointer eelmise. 298 00:13:54,580 --> 00:14:01,510 OK, nii et ütleme me oleme viie ja meie eesmärk on kustutada viis. 299 00:14:01,510 --> 00:14:07,240 Nii pointer kõrval, mis nende kolm sõlmede kas see meile annab? 300 00:14:07,240 --> 00:14:10,840 See toob meid kuues sõlme, eks? 301 00:14:10,840 --> 00:14:16,490 >> OK, nii et nüüd me palume kuue eelmise. 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 Ja me ennistamist seda olema võrdne neli, 304 00:14:20,210 --> 00:14:23,214 mis juhtus viis eelmist. 305 00:14:23,214 --> 00:14:25,180 Ma tean, et see on super raske jälgida. 306 00:14:25,180 --> 00:14:29,286 Ma tõesti soovitan joonistada pilte Kui teil tekib küsimus niimoodi. 307 00:14:29,286 --> 00:14:30,242 Jah? 308 00:14:30,242 --> 00:14:32,617 >> Sihtrühm: Kas põhjusel, et meil ei ole [kuuldamatu]? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH: Täpselt. 311 00:14:38,570 --> 00:14:44,800 Nii et küsimus oli, miks me ei vaja vaadata siin? 312 00:14:44,800 --> 00:14:48,160 Miks me ei vaja kontrollida, et pointer eelmise ei võrdu tühjaks? 313 00:14:48,160 --> 00:14:50,070 Ja see on sellepärast, et me oleme Juba eraldada 314 00:14:50,070 --> 00:14:52,490 Juhul kui Osuti alguses. 315 00:14:52,490 --> 00:14:54,060 Väga hea küsimus. 316 00:14:54,060 --> 00:14:56,880 Midagi muud selles küsimuses? 317 00:14:56,880 --> 00:14:57,380 OK, lahe. 318 00:14:57,380 --> 00:14:58,360 Nii saab lõpetada see üles. 319 00:14:58,360 --> 00:14:59,890 Me oleme peaaegu kohal. 320 00:14:59,890 --> 00:15:01,310 >> Mis siis, kui see on peas? 321 00:15:01,310 --> 00:15:03,360 Mis siis, kui selle asemel, et poistamisyrityksen viis, 322 00:15:03,360 --> 00:15:06,240 me tegelikult tahtsime kustutada neli? 323 00:15:06,240 --> 00:15:07,270 Mida ma pean tegema? 324 00:15:07,270 --> 00:15:09,610 Noh, ma tahan, et taastada oma peas, mida? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Shout it out? 327 00:15:15,585 --> 00:15:16,710 Sihtrühm: ühe pärast seda. 328 00:15:16,710 --> 00:15:17,460 HANNAH: Beautiful. 329 00:15:17,460 --> 00:15:26,430 OK, nii et me tahame nimekirja, mida osutavad mis iganes meie pointer järgmise sõlme on. 330 00:15:26,430 --> 00:15:29,040 Väga hea. 331 00:15:29,040 --> 00:15:30,810 Ja just täielikkuse on sake, oleksime 332 00:15:30,810 --> 00:15:35,590 soovite kontrollida, et niikaua kui meie nimekirja ei ole null, niikaua meie loetelu ei ole 333 00:15:35,590 --> 00:15:42,730 tühi, siis soovitakse seada meie eelmise võrdne null. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 Küsimus nii palju? 336 00:15:50,230 --> 00:15:53,205 Üks samm eemal algus--? 337 00:15:53,205 --> 00:15:55,530 >> Sihtrühm: Kas oleks, kui loetelu ei ole võrdne null? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH: Jah, sa oled täiesti õigus. 339 00:15:56,950 --> 00:15:58,130 Mul on nii kahju. 340 00:15:58,130 --> 00:16:00,040 Kas see loetelu ei ole võrdne null. 341 00:16:00,040 --> 00:16:01,915 Awesome. 342 00:16:01,915 --> 00:16:04,245 Proovin tuua see kõik ekraanil. 343 00:16:04,245 --> 00:16:06,870 See on selline kukkuda. 344 00:16:06,870 --> 00:16:07,730 Vabandame, poisid. 345 00:16:07,730 --> 00:16:11,874 Ja last but not least, kõik me peame tegema, on tagasi. 346 00:16:11,874 --> 00:16:12,840 OK. 347 00:16:12,840 --> 00:16:15,400 See oli palju Täpötäysi tõesti kiiresti. 348 00:16:15,400 --> 00:16:16,800 Võtke teine ​​otsima selle üle. 349 00:16:16,800 --> 00:16:18,216 Ütle mulle, kui teil on mingeid küsimusi. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 Jah? 352 00:16:20,732 --> 00:16:26,940 >> Sihtrühm: Kui nimekirjas on pea, then-- oodake, nevermind. 353 00:16:26,940 --> 00:16:27,700 >> HANNAH: OK, hea. 354 00:16:27,700 --> 00:16:30,987 Nii et see on siis, kui nimekirja eesotsas, meil eemaldage see, et ükskõik, mida me sisestatud. 355 00:16:30,987 --> 00:16:31,486 Jah? 356 00:16:31,486 --> 00:16:33,777 >> Sihtrühm: Kas oskate selgitada Esimene, kui avalduse jälle? 357 00:16:33,777 --> 00:16:36,149 Kui kursor n on võrdne n? 358 00:16:36,149 --> 00:16:36,690 HANNAH: Sure. 359 00:16:36,690 --> 00:16:42,780 Nii et meie eesmärk kogu see funktsioon on kustutada sõlme, mis on väärtus n. 360 00:16:42,780 --> 00:16:47,460 Nii et kui me leiame, nagu me oleme iterating läbi meie nimekirjas, 361 00:16:47,460 --> 00:16:51,770 sõlme väärtusega n, mis on üks soovime kustutada. 362 00:16:51,770 --> 00:16:57,286 Nii kõik kustutamist juhtub sees nii suur, kui avaldus. 363 00:16:57,286 --> 00:16:58,593 Kas see on mõistlik? 364 00:16:58,593 --> 00:16:59,480 Külm. 365 00:16:59,480 --> 00:16:59,990 Jah? 366 00:16:59,990 --> 00:17:02,864 >> Sihtrühm: Võib-olla sa lihtsalt ei näe seda, aga sa ei vaja ka rida 367 00:17:02,864 --> 00:17:06,024 jaoks sirvimisel? 368 00:17:06,024 --> 00:17:06,690 HANNAH: Awesome. 369 00:17:06,690 --> 00:17:10,896 Toome selle üles natuke, ja me visata, et õige põhjas. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 Võibolla pardal oleks olen olnud veidi parem mõte. 372 00:17:15,490 --> 00:17:17,829 Niisiis, kuidas ma liigun pointer edasi? 373 00:17:17,829 --> 00:17:20,184 >> Sihtrühm: Pointer võrdub pointer pluss üks. 374 00:17:20,184 --> 00:17:21,599 >> HANNAH: Beautiful. 375 00:17:21,599 --> 00:17:25,050 Nii, mis võimaldab meil jätkata iterating kaudu. 376 00:17:25,050 --> 00:17:26,251 OK. 377 00:17:26,251 --> 00:17:27,750 Sihtrühm: Kas poleks seal olla muud? 378 00:17:27,750 --> 00:17:29,028 HANNAH: Veel üks kord? 379 00:17:29,028 --> 00:17:32,444 Sihtrühm: siis ei tekiks muidu pärast suur vana kui 380 00:17:32,444 --> 00:17:35,519 avaldus [kuuldamatu]? 381 00:17:35,519 --> 00:17:36,310 HANNAH: Milline osa? 382 00:17:36,310 --> 00:17:38,350 Mul on kahju. 383 00:17:38,350 --> 00:17:41,800 >> Sihtrühm: läbipääsusüsteemid, ei tohiks seal olla muud? 384 00:17:41,800 --> 00:17:43,550 HANNAH: Sa absoluutselt võiks olla teine. 385 00:17:43,550 --> 00:17:46,930 Sest mul on tagasipöördumise õigust seal, sa ei pea muud. 386 00:17:46,930 --> 00:17:48,760 Aga jah, hea küsimus. 387 00:17:48,760 --> 00:17:50,170 OK, jah? 388 00:17:50,170 --> 00:17:52,878 Sihtrühm: Kas me mõtleme pointer mis liigub läbi nimekirja 389 00:17:52,878 --> 00:17:56,610 nagu võttes väärtuse Iga sõlme nimekirja? 390 00:17:56,610 --> 00:18:00,650 Või peaksime arvan et kui omamoodi välise nimekirja? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH: kas üks on hea, ma arvan. 392 00:18:02,350 --> 00:18:05,880 Kuidas ma kujutan ette, et on Ma ütlen, OK, ma olen pointer. 393 00:18:05,880 --> 00:18:06,520 Ja see on minu jaoks. 394 00:18:06,520 --> 00:18:07,150 See on minu poolt. 395 00:18:07,150 --> 00:18:09,960 Ma lähen viitavad erinevad asju, mida ma tahan kinnitada, läbi. 396 00:18:09,960 --> 00:18:12,270 Esiteks, ma lähen juhtida juht nimekirja. 397 00:18:12,270 --> 00:18:14,144 Ja see ütleb mulle, ma olen läheb viitavad neli. 398 00:18:14,144 --> 00:18:18,060 Ja nii me, olles väljaspool nimekirja, Ma ei viita ükski kõnealustest elementidest. 399 00:18:18,060 --> 00:18:19,520 Nii et ma mõtlen ennast pointer. 400 00:18:19,520 --> 00:18:21,645 Sihtrühm: Nii et kui kustutad üks neist osadest, 401 00:18:21,645 --> 00:18:23,404 kustutate ise, kui nii võib öelda. 402 00:18:23,404 --> 00:18:24,070 HANNAH: Täpselt. 403 00:18:24,070 --> 00:18:25,920 Nii et sa kustutada asi sa osutades. 404 00:18:25,920 --> 00:18:28,340 Nii näiteks, et nägime, kus me oleme 405 00:18:28,340 --> 00:18:31,670 poistamisyrityksen viis, kui ma osutades viis, 406 00:18:31,670 --> 00:18:34,200 Ma tahan kustutada asi, mida ma olen viidates. 407 00:18:34,200 --> 00:18:35,870 Täpselt õige. 408 00:18:35,870 --> 00:18:36,577 Jah? 409 00:18:36,577 --> 00:18:39,410 Sihtrühm: Kas me oleme hoolitsenud Kui n ei ole nimekirjas? 410 00:18:39,410 --> 00:18:40,460 HANNAH: Kui n ei ole nimekirjas? 411 00:18:40,460 --> 00:18:43,501 Kõik, mis juhtub, on sul läheb itereerima läbi ja Kerrata 412 00:18:43,501 --> 00:18:47,616 läbi ja siis sa lähed saada kursoriga on null, 413 00:18:47,616 --> 00:18:48,990 ja siis sa lähed teha. 414 00:18:48,990 --> 00:18:50,812 >> Sihtrühm: Nii et meil on tagasi midagi? 415 00:18:50,812 --> 00:18:51,520 HANNAH: võiksime. 416 00:18:51,520 --> 00:18:54,500 Nii, et kui on määratletud käesoleva funktsioon, ma lihtsalt ütlen, et see liigub 417 00:18:54,500 --> 00:18:55,770 tühistada sõltumata. 418 00:18:55,770 --> 00:18:58,360 Aga te oleksite midagi nagu naasmist täisarv, 419 00:18:58,360 --> 00:19:00,920 ja on see tagasi negatiivne 1, kui see ei õnnestu. 420 00:19:00,920 --> 00:19:03,070 Midagi sellist. 421 00:19:03,070 --> 00:19:04,494 Küsimused with-- jah? 422 00:19:04,494 --> 00:19:05,410 Sihtrühm: [kuuldamatu]? 423 00:19:05,410 --> 00:19:05,993 HANNAH: Vabandust? 424 00:19:05,993 --> 00:19:07,419 Sihtrühm: [kuuldamatu]? 425 00:19:07,419 --> 00:19:07,960 HANNAH: Sure. 426 00:19:07,960 --> 00:19:11,730 Nii et actual-- Kui oleme kõik teinud seda tööd liikuvate 427 00:19:11,730 --> 00:19:16,530 kõik need nooled ümber, kogu meie Eesmärk oli vabaneda sõlme 428 00:19:16,530 --> 00:19:18,230 et me otsime. 429 00:19:18,230 --> 00:19:21,610 Nii sel juhul, vabastades pointer, kui ma osutades viis, 430 00:19:21,610 --> 00:19:24,670 see on nagu kustutades selle keskel sõlm. 431 00:19:24,670 --> 00:19:27,250 See on tasuta pointer osa. 432 00:19:27,250 --> 00:19:29,090 Mis mõtet? 433 00:19:29,090 --> 00:19:31,390 >> Sihtrühm: Nii et isegi mõelnud sa ei [kuuldamatu]? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH: Nii et me eeldada alguses meil oli nimekiri, mis oli already-- 435 00:19:36,060 --> 00:19:37,220 nad olid seda kokku panema. 436 00:19:37,220 --> 00:19:39,761 Nii et ehitada see nimekiri, nad vist [kuuldamatu]. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 Külm. 439 00:19:42,750 --> 00:19:44,490 Midagi muud on? 440 00:19:44,490 --> 00:19:46,386 Jah? 441 00:19:46,386 --> 00:19:49,204 >> Sihtrühm: Mida teha, kui nimekiri ei võrdu null rida? 442 00:19:49,204 --> 00:19:49,704 [Kuuldamatu]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH: Right here? 445 00:19:53,080 --> 00:19:53,840 Sihtrühm: Jah. 446 00:19:53,840 --> 00:19:57,370 HANNAH: OK, kõik, mida ma teen on ma lihtsalt hoolitsedes 447 00:19:57,370 --> 00:20:03,250 et enne kui ma püüan dereference nimekirja, Enne üritan pääseda eelmise, 448 00:20:03,250 --> 00:20:07,210 Ma tahan veenduda, et see ei ole null nii et ma ei saa seg süü. 449 00:20:07,210 --> 00:20:08,400 Külm. 450 00:20:08,400 --> 00:20:10,820 >> OK, ma tean, et see oli üsna palju läbi saama. 451 00:20:10,820 --> 00:20:14,950 Nii et see slide on teinud teile kättesaadavaks. 452 00:20:14,950 --> 00:20:17,341 Nii saab läbida seda üksikasjalikumalt. 453 00:20:17,341 --> 00:20:17,841 Jah? 454 00:20:17,841 --> 00:20:19,749 >> Sihtrühm: Miks nimekirja [kuuldamatu]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH: Sure. 457 00:20:24,670 --> 00:20:27,390 Nii nimekirja tõesti osutab see element siin, 458 00:20:27,390 --> 00:20:29,200 Esimene element nimekirjas. 459 00:20:29,200 --> 00:20:30,748 Seega ei saa eelmise. 460 00:20:30,748 --> 00:20:31,736 Jah? 461 00:20:31,736 --> 00:20:35,194 >> Sihtrühm: Kas pointer punkti samale aadressile mälu? 462 00:20:35,194 --> 00:20:38,404 Kas see viitavad samale aadress mällu sõlme 463 00:20:38,404 --> 00:20:40,640 et see osutab? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH: Jah, see juhib Käesoleva sõlme mälus. 465 00:20:43,865 --> 00:20:47,190 >> Sihtrühm: Õigus, nii kui sa [kuuldamatu]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH: Mõnes mõttes jah. 467 00:20:50,580 --> 00:20:51,280 OK. 468 00:20:51,280 --> 00:20:52,997 Olgu, liigume koos selle. 469 00:20:52,997 --> 00:20:55,330 Ja kui sul on veel küsimusi, kinni umbes aasta lõpus, 470 00:20:55,330 --> 00:20:57,130 ja me saame selle uuesti läbi. 471 00:20:57,130 --> 00:20:58,120 OK, lahe. 472 00:20:58,120 --> 00:21:00,490 Nüüd saame edasi liikuda hash tabeleid, katseid 473 00:21:00,490 --> 00:21:04,940 ja puud, mis sul on super tuttav p-set viis, speller. 474 00:21:04,940 --> 00:21:11,020 >> Nii hash tabelis on lihtsalt massiivi üksikult ahelloendid 475 00:21:11,020 --> 00:21:14,050 või kahekordselt ahelloendid tulevad välja sellest. 476 00:21:14,050 --> 00:21:16,380 Nii et meil on mingisugune on assotsiatiivne massiiv. 477 00:21:16,380 --> 00:21:21,280 Ja kuidas me teame, mis nende massiivid ämbrid sattuda, 478 00:21:21,280 --> 00:21:24,137 me kasutame hash funktsiooni. 479 00:21:24,137 --> 00:21:26,470 Nii sel juhul, kas keegi guess what hash funktsiooni 480 00:21:26,470 --> 00:21:28,636 oleks vaid põhinevad mõned sisend ja väljund? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> Sihtrühm: Kiri arv tähestikku. 483 00:21:33,194 --> 00:21:33,860 HANNAH: Täpselt. 484 00:21:33,860 --> 00:21:36,160 See lihtsalt paneb neid tähestikulises järjekorras. 485 00:21:36,160 --> 00:21:39,280 Kõik, mis algab Pannakse esimene ämber. 486 00:21:39,280 --> 00:21:43,340 Kõik koos B pannakse Teine ämber, nii edasi ja nii edasi. 487 00:21:43,340 --> 00:21:45,620 Awesome, OK. 488 00:21:45,620 --> 00:21:48,980 Ja hash funktsiooni on igal funktsioon, mis võtab sõna 489 00:21:48,980 --> 00:21:51,910 ja ütleb teile, mida Sajab see kuulub. 490 00:21:51,910 --> 00:21:55,150 Nii et mis kande meie massiivi see kuulub. 491 00:21:55,150 --> 00:21:58,080 >> Nii et iga kord, kui ma annaksin oma räsifunktsioon sõna 492 00:21:58,080 --> 00:22:00,660 see peaks mulle öelda sama pane iga kord. 493 00:22:00,660 --> 00:22:03,270 Nii et kui me kasutame hash funktsiooni Eelmise slaidi 494 00:22:03,270 --> 00:22:05,950 kus me sorteerimine Esimene täht, 495 00:22:05,950 --> 00:22:08,230 iga kord kui ma annaksin oma hash funktsiooni "apple" 496 00:22:08,230 --> 00:22:10,180 see peaks alati andma mulle tagasi 0. 497 00:22:10,180 --> 00:22:12,890 Nii et kui mul on õun panna minu hash tabelit, 498 00:22:12,890 --> 00:22:17,700 kui ma annan "apple" minu hash funktsiooni see peaks ütlema, mine pane see ämber 0. 499 00:22:17,700 --> 00:22:19,980 Kui ma otsin apple minu hash tabelis 500 00:22:19,980 --> 00:22:24,340 ja ma ütlen, kus võiks apple live, küsite teie hash funktsiooni. 501 00:22:24,340 --> 00:22:26,900 Ja ta ütleb, minge kopp 0. 502 00:22:26,900 --> 00:22:29,150 Kõik on korras? 503 00:22:29,150 --> 00:22:32,660 Küsimused koos räsifunktsioonid? 504 00:22:32,660 --> 00:22:34,570 Awesome. 505 00:22:34,570 --> 00:22:37,320 >> Siin on veidi rohkem üksikasjalik selgitus 506 00:22:37,320 --> 00:22:39,570 mida hash funktsiooni tunduda. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 Hea küll. 509 00:22:42,960 --> 00:22:45,960 Nüüd probleem hash funktsioonid on ideaalses maailmas, 510 00:22:45,960 --> 00:22:48,870 me oleks vaid üks asi iga ämber. 511 00:22:48,870 --> 00:22:50,900 Aga tegelikult pole mitte ainult üks sõna 512 00:22:50,900 --> 00:22:54,280 mis algab A. Seal ei ole ainult üks sõna, mis algab B. Nii 513 00:22:54,280 --> 00:22:56,960 sel juhul, kui me äkki saan "marja" 514 00:22:56,960 --> 00:22:58,710 ja me tahame panna meie hash tabelit, 515 00:22:58,710 --> 00:23:03,640 ja me näeme, oh ei, banaan on juba olemas, mida me teeme? 516 00:23:03,640 --> 00:23:05,900 >> Noh, meil on kaks võimalust. 517 00:23:05,900 --> 00:23:07,990 Esimene võimalus on lineaarne katsetamine, mis 518 00:23:07,990 --> 00:23:11,100 tähendab lihtsalt minna leida Järgmise tühi ämber. 519 00:23:11,100 --> 00:23:14,100 Mine leida järgmise tühja massiivi sisenemist. 520 00:23:14,100 --> 00:23:15,750 Ja lihtsalt panna "marja" seal. 521 00:23:15,750 --> 00:23:18,880 Nii et ma tean, et see peaks minna banaani kopp üks. 522 00:23:18,880 --> 00:23:22,155 Aga pane see kopp kolm, sest kopp kolm on tühi. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 Teine võimalus on ilmselt mida rakendada 525 00:23:26,680 --> 00:23:29,220 Teie p-set, kuhu oli eraldi ühendamine. 526 00:23:29,220 --> 00:23:33,990 Nii iga oma ämbrid, iga oma massiivi elemente, 527 00:23:33,990 --> 00:23:38,410 ei ole üksnes ühe sõna, kuid tegelikult omab viit sõnu. 528 00:23:38,410 --> 00:23:41,880 Nii et kui teil on olnud banaani oma hash tabelis 529 00:23:41,880 --> 00:23:44,740 ja äkki tahtis lisada marja-, pole probleemi. 530 00:23:44,740 --> 00:23:51,110 Lihtsalt lisada marja lõpuni või Alguses oma seotud nimekirja. 531 00:23:51,110 --> 00:23:54,040 OK, awesome. 532 00:23:54,040 --> 00:23:58,490 Küsimused koos hash tabelid, enne kui me minna? 533 00:23:58,490 --> 00:23:59,850 >> Hea küll. 534 00:23:59,850 --> 00:24:01,070 Puud ja proovib. 535 00:24:01,070 --> 00:24:07,980 OK, nii et see oli veel üks võimalus rakendamise sõnastik. 536 00:24:07,980 --> 00:24:09,100 Sa oleks võinud proovida. 537 00:24:09,100 --> 00:24:13,420 Nii et see on eriline puu käitub nagu mitmetasandiline hash tabelis. 538 00:24:13,420 --> 00:24:16,862 Nii näete pildil kui teil on massiivi 539 00:24:16,862 --> 00:24:19,320 juhib kamp massiivid Sel hetkel kamp massiivid 540 00:24:19,320 --> 00:24:20,390 Sel hetkel kamp massiivid. 541 00:24:20,390 --> 00:24:23,140 Ja me näeme täpselt, et näeksid tulevikus slide. 542 00:24:23,140 --> 00:24:26,070 Ja üldisemalt tree on lihtsalt mingi andmestruktuuri 543 00:24:26,070 --> 00:24:29,710 kus on andmed korraldati mõnes hierarhia. 544 00:24:29,710 --> 00:24:32,610 Nii et kui me nägime me oleme mingisugune arusaam 545 00:24:32,610 --> 00:24:36,130 on tipptasemel, järgmisele tasandile, järgmisele tasandile, järgmisele tasandile. 546 00:24:36,130 --> 00:24:39,690 Nii et see on tõenäoliselt kõige selgem mõned konkreetsed näited. 547 00:24:39,690 --> 00:24:40,880 Nii et siin on meie puu. 548 00:24:40,880 --> 00:24:42,970 Te näete, et see on teatud tasemeni 549 00:24:42,970 --> 00:24:45,480 et hakkame koos, et juurtipust üks. 550 00:24:45,480 --> 00:24:47,640 Ja me võime minna läbi meie puu. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> Kahendpuud teatud tüüpi puu. 553 00:24:53,910 --> 00:24:56,770 Ja ainus spetsifikatsioon jaoks Binääripuu 554 00:24:56,770 --> 00:25:01,130 on, et iga sõlm on maksimaalselt kahe lehed. 555 00:25:01,130 --> 00:25:03,960 Nii et te ei kavatse näe sõlmed on kolm või neli 556 00:25:03,960 --> 00:25:06,880 või mõne muu lehtede hulk. 557 00:25:06,880 --> 00:25:11,310 Ja siis veelgi täpsem on kahendotsingupuu 558 00:25:11,310 --> 00:25:18,010 kus iga sõlme vasakul sõlme läheb on väärtus väiksem. 559 00:25:18,010 --> 00:25:21,180 Ja iga väärtus õigus saab olema suurem. 560 00:25:21,180 --> 00:25:26,900 Nii et kui sa näed 44 on meie juure, vasakule, 11, 22, ja 33 561 00:25:26,900 --> 00:25:28,940 kõik vähem kui meie juure. 562 00:25:28,940 --> 00:25:33,890 Ja paremal on kõik numbrid bigger-- 66, 55, ja 77. 563 00:25:33,890 --> 00:25:37,380 Ja selle pakkumisega kehtib igal tasandil puu. 564 00:25:37,380 --> 00:25:42,690 >> Nii et kui me minna 22, 11, ja 33, veel 11 565 00:25:42,690 --> 00:25:46,950 on väiksem kui 22 ja 33 on suurem kui 22. 566 00:25:46,950 --> 00:25:50,160 Ja see lihtsustab otsing sest kui me otsime number, 567 00:25:50,160 --> 00:25:53,877 me teame täpselt, mis filiaali järgida alla. 568 00:25:53,877 --> 00:25:56,210 Nii et see peaks teile meelde tuletada natuke Kahendotsingupuu. 569 00:25:56,210 --> 00:25:56,967 Jah? 570 00:25:56,967 --> 00:25:58,835 >> Sihtrühm: Nii et kui sa oled kirjeldades binaarne, 571 00:25:58,835 --> 00:26:00,587 sa ütlesid, et see on kõige rohkem kahe lehed? 572 00:26:00,587 --> 00:26:01,170 HANNAH: Mm-hm. 573 00:26:01,170 --> 00:26:02,580 Sihtrühm: Kas see on vähem? 574 00:26:02,580 --> 00:26:03,121 HANNAH: Jah. 575 00:26:03,121 --> 00:26:06,720 Ütleme näiteks, siis ei olnud isegi mitmeid asju 576 00:26:06,720 --> 00:26:11,791 ja sa ei saa täita kõik teie lehed, on see hea, kui üks on üks. 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 Awesome. 579 00:26:12,789 --> 00:26:15,930 Muid küsimusi puud? 580 00:26:15,930 --> 00:26:16,670 OK. 581 00:26:16,670 --> 00:26:20,110 >> Tagasi meie üritab nagu ma rääkisin umbes natuke varem, 582 00:26:20,110 --> 00:26:23,900 kuidas meil need mitmetasandiline massiivid. 583 00:26:23,900 --> 00:26:26,280 Nii et kui hakkame ülaosas. 584 00:26:26,280 --> 00:26:29,030 Ja meil on võimalik jälgida kõiki antud sõna alla. 585 00:26:29,030 --> 00:26:30,780 Ütleme, et me tahame otsima Turing. 586 00:26:30,780 --> 00:26:34,380 Alustame kell T, järgige selle alla array, mis sisaldab U, 587 00:26:34,380 --> 00:26:37,350 ja järgige seda all, kuni me jõuda see väike delta, mis 588 00:26:37,350 --> 00:26:39,060 ütleb meile, et jah, olete leidnud sõna. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 Selge on üritab? 591 00:26:44,120 --> 00:26:48,138 Midagi sinna minema? 592 00:26:48,138 --> 00:26:48,908 Jah? 593 00:26:48,908 --> 00:26:51,866 Sihtrühm: Kas sümbol delta on hõivata ruumi sees proovida? 594 00:26:51,866 --> 00:26:54,532 HANNAH: Jah, nii see ei ole pruugi isegi pead olema delta. 595 00:26:54,532 --> 00:26:57,760 Aga me peame kuidagi öelda meie computer-- kahju, 596 00:26:57,760 --> 00:27:01,130 nii et me teame, et TUR ei ole sõna. 597 00:27:01,130 --> 00:27:04,180 Sest oletame, et meil ei olnud Selle mõiste delta, selle mõiste 598 00:27:04,180 --> 00:27:09,850 õnnitlused, olete leidnud sõna, see läheks läbi ja kinnitada, T-U-R, 599 00:27:09,850 --> 00:27:11,300 ja siis öelda, awesome, ma leidsin selle! 600 00:27:11,300 --> 00:27:12,670 See peab olema sõna. 601 00:27:12,670 --> 00:27:13,720 Aga see on tõesti ei ole. 602 00:27:13,720 --> 00:27:15,310 Me tahame kogu Turing olla sõna. 603 00:27:15,310 --> 00:27:17,760 Nii et me peame midagi on lõpuks, mis ütleb, õnnitlused, 604 00:27:17,760 --> 00:27:19,051 olete leidnud õigustatud sõna. 605 00:27:19,051 --> 00:27:21,680 Sihtrühm: Nii et kui teil on olnud nagu 26 tähte tähestikus, 606 00:27:21,680 --> 00:27:24,560 Te tegelikult on 27 võtmeid proovida? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH: Awesome, jah. 608 00:27:26,010 --> 00:27:28,210 Seega tegelikult ma arvan, et toimub järgmise slaidi. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 Kus kui teil on sõlme oma proovida, sa oled 611 00:27:32,880 --> 00:27:35,800 läheb on 27 last asemel 26. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 Kõik küsimused on? 614 00:27:40,050 --> 00:27:40,550 Jah? 615 00:27:40,550 --> 00:27:44,569 Sihtrühm: Miks üritab alustada nii palju ruumi [kuuldamatu] lähete? 616 00:27:44,569 --> 00:27:47,629 Miks on nii, loetakse [kuuldamatu]? 617 00:27:47,629 --> 00:27:48,170 HANNAH: Sure. 618 00:27:48,170 --> 00:27:48,790 Lähme tagasi. 619 00:27:48,790 --> 00:27:52,350 Küsimus on selles, miks on üritab nii palju suurem 620 00:27:52,350 --> 00:27:54,620 kui midagi hash tabelis. 621 00:27:54,620 --> 00:27:57,790 Nii iga nimetatud tasemed, isegi kui nad ei tõmmata, 622 00:27:57,790 --> 00:28:01,250 sul olema kõik 26 tähemärki. 623 00:28:01,250 --> 00:28:04,420 Ja sel põhjusel, et te ei saa öelda, oh, kuid nagu Turing, I 624 00:28:04,420 --> 00:28:07,570 ei pea olema ühegi nimetatud samu asju tasandil U. Noh, 625 00:28:07,570 --> 00:28:11,390 kui äkki sa tahtsid lisada midagi, mis oli, nagu T-H, 626 00:28:11,390 --> 00:28:14,800 sa pead olema võime lisada, et sõna. 627 00:28:14,800 --> 00:28:17,330 Nii iga üksik täht, sa lähed on 628 00:28:17,330 --> 00:28:19,730 on kamp massiivid tulevad välja sellest. 629 00:28:19,730 --> 00:28:24,060 Nii et näete, kuidas ta tahaks saada tõesti suur, väga kiiresti. 630 00:28:24,060 --> 00:28:26,560 Muid küsimusi? 631 00:28:26,560 --> 00:28:28,980 Hea küll. 632 00:28:28,980 --> 00:28:29,832 Jah? 633 00:28:29,832 --> 00:28:33,210 >> Sihtrühm: Millal proovib kiiremini kui hash tabeleid? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH: Millal proovib kiiremini kui hash tabeleid? 635 00:28:36,280 --> 00:28:39,120 Nii et kui teil oli tõesti halb hash funktsiooni. 636 00:28:39,120 --> 00:28:41,840 Ütleme, et ma olin nagu, siin on sinu hash funktsiooni. 637 00:28:41,840 --> 00:28:43,660 Ükskõik mis sõna sa annad mulle, ma olen alati 638 00:28:43,660 --> 00:28:47,740 läheb pane see massiiv kanne 0. 639 00:28:47,740 --> 00:28:52,000 Ja nii me lõpuks lihtsalt paneb kõik üks suur pikk seotud nimekirja. 640 00:28:52,000 --> 00:28:58,740 Ja nii lookup aega võtaks halvimal n, kas see on päris lõpus meie nimekirja. 641 00:28:58,740 --> 00:29:03,150 Mis proovida, me peame lihtsalt itereerima kirjade kaudu sõna. 642 00:29:03,150 --> 00:29:07,080 Nii et isegi kui lisasime kamp rohkem sõnu meie proovida, 643 00:29:07,080 --> 00:29:09,620 see ei vii meid enam leida eriti sõna. 644 00:29:09,620 --> 00:29:11,750 >> Kõik me peame tegema, on ette Näiteks sellisel juhul 645 00:29:11,750 --> 00:29:17,170 oletame, et me otsime zoom, me lihtsalt peame Käi 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, neli tähte. 647 00:29:19,840 --> 00:29:22,250 Nii et lihtsalt pikkus sõna zoom. 648 00:29:22,250 --> 00:29:25,400 See ei ole tähtis, kui palju rohkem sõnu me paneme selle proovida. 649 00:29:25,400 --> 00:29:30,225 Me ei saa alati seda neis neljas etapis. 650 00:29:30,225 --> 00:29:31,215 Awesome. 651 00:29:31,215 --> 00:29:32,205 Jah? 652 00:29:32,205 --> 00:29:34,185 >> Sihtrühm: Nii [kuuldamatu] on massiiv, eks? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH: Mm-hm. 654 00:29:35,322 --> 00:29:37,155 Sihtrühm: Kui sa oled otsin [kuuldamatu] 655 00:29:37,155 --> 00:29:40,929 sa pead läbi minema Sinu massiivi leida [kuuldamatu]? 656 00:29:40,929 --> 00:29:41,470 HANNAH: Sure. 657 00:29:41,470 --> 00:29:44,000 Sihtrühm: Kas see ei võta rohkem aega? 658 00:29:44,000 --> 00:29:46,370 HANNAH: Kui ma lähen öelda, et minu massiiv on alati 659 00:29:46,370 --> 00:29:49,250 saab olema A, B, C, D, E, F, G, blah blah blah, 660 00:29:49,250 --> 00:29:51,630 nii et kui ma alati tean, et see samas täpses järjekorras, 661 00:29:51,630 --> 00:29:53,880 kui ma alati tean, et see tähestiku järjekorras 662 00:29:53,880 --> 00:29:57,860 Võin ainult öelda, O on number nii ja nii tähestikus. 663 00:29:57,860 --> 00:29:59,620 Just hüpata selle koha jaoks. 664 00:29:59,620 --> 00:30:01,860 Sest mäletan, koos massiivid, suudame 665 00:30:01,860 --> 00:30:06,590 mis tahes osa, et massiivi pidevas ajal, kui me teame, kus me otsime. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 Jah? 668 00:30:09,580 --> 00:30:12,005 >> Sihtrühm: On eelmise lükake [kuuldamatu] 27, 669 00:30:12,005 --> 00:30:14,430 kuid 26 esimene. 670 00:30:14,430 --> 00:30:15,400 >> HANNAH: Vabandust? 671 00:30:15,400 --> 00:30:18,800 >> Sihtrühm: ei ole esimene üks 0, seega kas ei oleks 26? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH: Muidugi, nii et kui me ütleme, 27, mis on läheb meile indeksite 0 kuni 26. 673 00:30:24,900 --> 00:30:28,220 Aga kui sa tegelikult loota need välja, et see saab olema 27. 674 00:30:28,220 --> 00:30:30,007 Hea küsimus. 675 00:30:30,007 --> 00:30:30,590 Veel midagi? 676 00:30:30,590 --> 00:30:31,200 Jah? 677 00:30:31,200 --> 00:30:34,420 >> Sihtrühm: Nii on proovib aeglasem kui hash tabeleid? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH: Püüab ei kavatse olla, in Teoreetiliselt kiirem kui hash tabeleid 679 00:30:37,920 --> 00:30:39,760 kuid võtab rohkem mälu. 680 00:30:39,760 --> 00:30:40,534 Jah? 681 00:30:40,534 --> 00:30:41,450 Sihtrühm: [kuuldamatu]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH: Vabandust, ma ei kuule sind. 684 00:30:47,484 --> 00:30:48,400 Sihtrühm: [kuuldamatu]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0-25 annab sulle 26. 687 00:30:54,100 --> 00:30:56,958 >> HANNAH: 0-25 oleks teile 26, eks. 688 00:30:56,958 --> 00:30:58,457 >> Sihtrühm: Ja siis [kuuldamatu]. 689 00:30:58,457 --> 00:30:59,040 HANNAH: Right. 690 00:30:59,040 --> 00:31:04,760 Nii arvu me täpsustatakse on mitmeid asju meie massiivi. 691 00:31:04,760 --> 00:31:07,260 Nii et kui meil on 27, siis on annan meil 0 692 00:31:07,260 --> 00:31:10,620 läbi 26, mis annab meile ruumi, sel juhul 693 00:31:10,620 --> 00:31:12,770 Ma ei sh ülakoma. 694 00:31:12,770 --> 00:31:17,040 Nii et me lähme 0 kuni 25 on esimese 26 tähestiku tähti, 695 00:31:17,040 --> 00:31:18,990 või kõik 26 tähestiku tähti. 696 00:31:18,990 --> 00:31:21,190 Ja siis, et viimase asi sisenemisel 26, on 697 00:31:21,190 --> 00:31:24,598 saab olema kontrolli kaubamärgi või delta. 698 00:31:24,598 --> 00:31:26,960 Veel midagi? 699 00:31:26,960 --> 00:31:29,130 Awesome. 700 00:31:29,130 --> 00:31:30,020 Kaotasin oma ruumi. 701 00:31:30,020 --> 00:31:31,020 OK, lahe. 702 00:31:31,020 --> 00:31:33,240 >> Nii et me juba puudutanud seda. 703 00:31:33,240 --> 00:31:37,430 Aga suur kompromiss vahel üritab ja hash tabeleid 704 00:31:37,430 --> 00:31:39,720 on see, et katseid nähakse Teoreetiliselt pidev otsida 705 00:31:39,720 --> 00:31:42,890 korda, kuid kasutada kogu palju mälu. 706 00:31:42,890 --> 00:31:46,495 Olgu, nüüd on meil veidi vähem keerulisi struktuure, 707 00:31:46,495 --> 00:31:49,640 ja me teha koos C, ja me liikuda paremale mööda. 708 00:31:49,640 --> 00:31:51,930 >> Nii korstnad, nägime seda loeng, kus te 709 00:31:51,930 --> 00:31:55,020 on midagi virna, kus 710 00:31:55,020 --> 00:31:57,330 Viimane asi, mida sa paned korstnat läheb 711 00:31:57,330 --> 00:31:59,500 olla esimene asi, mida sa startida. 712 00:31:59,500 --> 00:32:02,880 Nii et see, mis tegelikult määrab stack on see, et viimane asi, mida sa panna 713 00:32:02,880 --> 00:32:06,080 saab olema esimene asi, mida startida. 714 00:32:06,080 --> 00:32:09,279 Ja terminoloogia, mida me kasutame kui me ei kavatse panna midagi, 715 00:32:09,279 --> 00:32:12,070 kui me ei kavatse midagi lisada Meie korstna, kutsume me seda lükates. 716 00:32:12,070 --> 00:32:14,970 Ja kui me võtame midagi off, me nimetame seda popping. 717 00:32:14,970 --> 00:32:17,080 Ja kui me läheme rakendada korstna, me 718 00:32:17,080 --> 00:32:20,660 tuleb kindlasti jälgida nii suuruse ja võimsusega. 719 00:32:20,660 --> 00:32:24,940 Nii koguarvust elemendid saame hoida ja praegune arv elemente 720 00:32:24,940 --> 00:32:27,880 et meie valduses. 721 00:32:27,880 --> 00:32:29,885 >> Ja väga sarnaselt, meil on järjekorrad. 722 00:32:29,885 --> 00:32:34,510 Ja ainus erinevus on selle asemel korstnad, 723 00:32:34,510 --> 00:32:37,630 me ütlesime viimane asi, me panna on esimene asi, mida me startida. 724 00:32:37,630 --> 00:32:40,940 Nii järjekorrad Esimene asi, mida me esitame 725 00:32:40,940 --> 00:32:43,129 läheb Esimene asi, mida me välja võtta. 726 00:32:43,129 --> 00:32:45,420 Nii et see on nagu kui sa oled tegelikult vooder üles poodi 727 00:32:45,420 --> 00:32:48,140 ja sa oled aidatakse, siis esimene inimene line 728 00:32:48,140 --> 00:32:50,880 peaks olema esimene inimene, kes on aidanud. 729 00:32:50,880 --> 00:32:52,220 Nii et oleks järjekorda. 730 00:32:52,220 --> 00:32:55,880 >> Seega on meil vaja jälgida suurus, võimsus, ja pea, sest me oleme 731 00:32:55,880 --> 00:33:01,130 aega võtab kõik off ees loetelu asemel tagasi. 732 00:33:01,130 --> 00:33:03,480 Küsimused, mis? 733 00:33:03,480 --> 00:33:06,330 Iga C küsimused, mis on häirib teid? 734 00:33:06,330 --> 00:33:09,590 Andmestruktuurid, ükskõik mis lõbusaid asju? 735 00:33:09,590 --> 00:33:10,530 Olgu, lahe. 736 00:33:10,530 --> 00:33:14,120 Nii et ma selle üle, et Alison on hüpata mõned programmeerimine. 737 00:33:14,120 --> 00:33:15,965 >> ALISON: Oh, me näeme. 738 00:33:15,965 --> 00:33:17,370 Me näeme, kui hästi ma teen siin. 739 00:33:17,370 --> 00:33:21,410 OK, ma lähen, et proovida ja sõita läbi selle kraami, poisid. 740 00:33:21,410 --> 00:33:24,540 Hannah läks väga in sügavus on kõik tema asjad. 741 00:33:24,540 --> 00:33:26,900 Ma lähen püüan anda Teile kiire lööklaine ülevaade 742 00:33:26,900 --> 00:33:31,290 nii et saame Davin kõik lõbus JavaScript ja julgeoleku asju 743 00:33:31,290 --> 00:33:33,380 et äkki sa tegelikult tahad rohkem kuulda. 744 00:33:33,380 --> 00:33:36,600 >> OK, kui Hannah ütles, kui teil on küsimusi, 745 00:33:36,600 --> 00:33:39,170 Ma lähen liiga kiiresti, siis palun andke teada. 746 00:33:39,170 --> 00:33:42,114 Ma vastan küsimustele vastavalt vajadusele. 747 00:33:42,114 --> 00:33:45,280 Nii alustada, me ei kavatse alustada ilmselt üks esimesi asju 748 00:33:45,280 --> 00:33:48,730 sa õppisid koos web programmeerimine, õigused. 749 00:33:48,730 --> 00:33:52,720 Nii chmod, kutid oleks pidanud meistrite juures see kõik veebis 750 00:33:52,720 --> 00:33:54,870 programmeerimine, et olete teinud viimasel ajal. 751 00:33:54,870 --> 00:33:57,320 See on põhimõtteliselt lihtsalt käsku mis muudab load 752 00:33:57,320 --> 00:34:00,779 või kasutusõigused Meie failisüsteemi objektide kohta. 753 00:34:00,779 --> 00:34:02,570 Muidugi, tegelikult vaadake neid, kui sa oled 754 00:34:02,570 --> 00:34:04,910 ilma igasuguste probleemideta nende ajal teie probleem komplekti, 755 00:34:04,910 --> 00:34:11,460 mida olete kasutanud ls -l, mis on pikk, saada vaade selline nagu see, 756 00:34:11,460 --> 00:34:14,209 kus te tegelikult näha kõike Faili kasutusõiguse. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> Ja tõesti, me lihtsalt läheb minema läbi päris kiiresti lihtsalt ilus 759 00:34:20,732 --> 00:34:21,940 palju, mida kõik need tähendavad. 760 00:34:21,940 --> 00:34:24,481 Nii oleme päeva siin, mis lihtsalt seisab kataloogi. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 Ilmselt just siin näeme rwx, mis on loetav, kirjutatav ja täidetavad. 763 00:34:31,739 --> 00:34:37,090 Need võivad samuti olla esindatud bitti, mida me võtame arvesse järgmisel lehel. 764 00:34:37,090 --> 00:34:40,699 Nii iga triaad, et me nägime siin, nii et see on kolm kolmikut. 765 00:34:40,699 --> 00:34:48,120 Oleme rwx, r midagi x ja r midagi x selle esimese faili. 766 00:34:48,120 --> 00:34:49,690 See on see üldine struktuur. 767 00:34:49,690 --> 00:34:50,940 >> Nii et meil on mõned kataloog. 768 00:34:50,940 --> 00:34:53,999 Meil on mõned grupid Nende õigused. 769 00:34:53,999 --> 00:34:57,040 Mõned grupp, mis on need õigused, ja maailmas, mis on loata. 770 00:34:57,040 --> 00:34:59,420 Sa ei mõtle neid nagu kolmkõla. 771 00:34:59,420 --> 00:35:01,130 Sa ei mõtle neid kolm bitti. 772 00:35:01,130 --> 00:35:04,060 Nii nad oskavad väärtused kuskil 0 kuni 773 00:35:04,060 --> 00:35:07,350 7, mistõttu mõnikord meil oli sa chmod 774 00:35:07,350 --> 00:35:17,510 600 asemel chmod rw iganes. 775 00:35:17,510 --> 00:35:19,170 Me võtame arvesse näiteks seal. 776 00:35:19,170 --> 00:35:24,260 Aga põhimõtteliselt, sa ei mõtle Nende kas lihtsalt rwx, 777 00:35:24,260 --> 00:35:28,520 või sa ei mõtle neid mõned number, kui see esimene siin 778 00:35:28,520 --> 00:35:31,480 esindab mitmeid vahel 0 ja 7, seda teine 779 00:35:31,480 --> 00:35:33,970 esindab mitmeid vahel 0 ja 7, ning kolmas 780 00:35:33,970 --> 00:35:38,245 tähistab number 0 kuni 7, OK? 781 00:35:38,245 --> 00:35:42,700 >> r väärtus on 4. w väärtus on 2 ja x 782 00:35:42,700 --> 00:35:49,230 väärtus on 1, mistõttu see luba siin oleks chmod 700. 783 00:35:49,230 --> 00:35:53,520 Kuna selles asjas, siis ütleb, et me on esimene natuke seal on keerata. 784 00:35:53,520 --> 00:35:55,380 Nii et meil on 4 lugemiseks. 785 00:35:55,380 --> 00:35:58,730 Teine natuke on keerata edasi w, mis on 2, nii et nüüd on meil 6. 786 00:35:58,730 --> 00:36:02,070 Ja kolmas bitt keerata x, mis on 1, seega saame seitse. 787 00:36:02,070 --> 00:36:04,820 Ja muidugi meie grupi ja meie maailmas on iga 0. 788 00:36:04,820 --> 00:36:07,770 Nii on see ka samaväärne chmod 700. 789 00:36:07,770 --> 00:36:12,081 Ja ma tahaksin kindlasti proovida mõista kaardistamise vahel. 790 00:36:12,081 --> 00:36:14,080 Ma ei ole kindel, kas see on tulla viktoriini enne, 791 00:36:14,080 --> 00:36:18,590 kuid see oleks küsimus, mida ma küsida. 792 00:36:18,590 --> 00:36:22,110 >> Natuke läheb veel sügavamale chmod siin, siin 793 00:36:22,110 --> 00:36:27,730 on väga üldine struktuuri chmod kõne. 794 00:36:27,730 --> 00:36:29,500 Nii et loomulikult oleme chmod siin. 795 00:36:29,500 --> 00:36:34,410 Viiteid, mis viitab see on Kes me oleme andes nende õigusi 796 00:36:34,410 --> 00:36:36,570 või kes me võttes neid load ära. 797 00:36:36,570 --> 00:36:44,330 Nii et meil on siin õigused, nagu me oleme teile chmod pluss x, 798 00:36:44,330 --> 00:36:45,440 nagu me näeme varsti. 799 00:36:45,440 --> 00:36:48,460 tähendab lihtsalt anda need konkreetsed õigused kõigile. 800 00:36:48,460 --> 00:36:49,600 Anna neile kõigile. 801 00:36:49,600 --> 00:36:55,370 Nii võib väga hästi olla u pluss x või g pluss x või o pluss x või mitu 802 00:36:55,370 --> 00:36:55,870 sätestatut. 803 00:36:55,870 --> 00:36:59,280 Nii et esimene osa on alati saab olema viiteid. 804 00:36:59,280 --> 00:37:03,220 Kes me oleme andes neid õigusi, või kes me võttes neid eemal? 805 00:37:03,220 --> 00:37:04,850 >> Teine on operaator. 806 00:37:04,850 --> 00:37:07,350 Nii kutid on kõige rohkem tegelenud pluss. 807 00:37:07,350 --> 00:37:12,140 See annab õigusi kes sa oled, mis annab neile, 808 00:37:12,140 --> 00:37:14,840 arvestades miinus loogiliselt eemaldab need. 809 00:37:14,840 --> 00:37:16,880 Nii midagi liiga kohutav seal. 810 00:37:16,880 --> 00:37:23,060 Ja siis režiimid on see, mida me rääkisime koos lugemine, kirjutamine, või täidesaatva. 811 00:37:23,060 --> 00:37:29,070 Nii pluss x tähendab anda käivitatava õigused kõigile. 812 00:37:29,070 --> 00:37:33,430 Ja seejärel, muidugi, mille konkreetse faili või kataloogi. 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 Igaüks hea chmod? 815 00:37:36,010 --> 00:37:37,850 Mitte liiga halb? 816 00:37:37,850 --> 00:37:42,417 >> OK, nii HTML, keegi teist on piisavalt vana mina-- MySpace vanus? 817 00:37:42,417 --> 00:37:44,750 Saatsin selle minu jagu, ja sõna otseses mõttes pool inimest 818 00:37:44,750 --> 00:37:45,790 vaatas mind nagu ma olin hull. 819 00:37:45,790 --> 00:37:47,498 Ja ma olin nagu, poisid, me ei ole nii vana. 820 00:37:47,498 --> 00:37:48,910 Tule nüüd. 821 00:37:48,910 --> 00:37:53,360 Nii HyperText Markup Language, see on ausalt lihtsalt viis, kuidas saate 822 00:37:53,360 --> 00:37:57,990 näidata teatud asju veebis. 823 00:37:57,990 --> 00:37:59,210 Nii et see on märgistuskeel. 824 00:37:59,210 --> 00:38:00,640 See ei ole skript keel. 825 00:38:00,640 --> 00:38:02,160 Ei ole loogiline ta. 826 00:38:02,160 --> 00:38:05,710 On lihtsalt muuta tee midagi ekraanile. 827 00:38:05,710 --> 00:38:07,670 OK, nii et on oluline vahet teha. 828 00:38:07,670 --> 00:38:12,030 Seda peetakse märkekeeles ei skript keel. 829 00:38:12,030 --> 00:38:15,100 >> Nii et siin on meil HTML teeke. 830 00:38:15,100 --> 00:38:20,390 Sellel slaidil on ilmselt kõige need, mida tuleb tuttav 831 00:38:20,390 --> 00:38:22,390 ja tõesti rahul. 832 00:38:22,390 --> 00:38:25,700 Nii et ilmselt on meil Meie HTML tag, mis 833 00:38:25,700 --> 00:38:29,930 määrab, et kõik Nende kahe on HTML. 834 00:38:29,930 --> 00:38:33,070 Meil on mõned link, mis loomulikult annan teile 835 00:38:33,070 --> 00:38:34,990 link välisele veebilehele. 836 00:38:34,990 --> 00:38:37,520 Mõned pealkiri, mis meie pea siin. 837 00:38:37,520 --> 00:38:40,020 Ja meil on meie keha h1, mis on kaudu, 838 00:38:40,020 --> 00:38:42,260 nii et teen selle kena ja julge ja suuremaks. 839 00:38:42,260 --> 00:38:46,040 Ja siis on meil mõned p, mis on lõikes. 840 00:38:46,040 --> 00:38:49,000 Sa peaksid ilmselt teadma, ja oskama asju 841 00:38:49,000 --> 00:38:54,030 nagu kuidas sa lisada pildi, on on muid päise klassi? 842 00:38:54,030 --> 00:38:57,240 Ma oleks kindlasti rahul div. 843 00:38:57,240 --> 00:39:00,840 Nii et need on enamus silte et siis peaks olema tuttav. 844 00:39:00,840 --> 00:39:04,370 Aga muidugi, nagu kõik muugi CS 50, loetelu ei ole ammendav. 845 00:39:04,370 --> 00:39:08,200 Seega veenduge, et värskendada seda. 846 00:39:08,200 --> 00:39:13,260 >> CSS, nii CSS, kui keegi teile vaadata minu seminar kaks nädalat tagasi, 847 00:39:13,260 --> 00:39:16,250 on tõesti ainult viis stiilis oma veebilehele? 848 00:39:16,250 --> 00:39:18,950 OK, nii et meil on mõned märgistuskeel. 849 00:39:18,950 --> 00:39:23,220 HTML, mis hoolitseb vaid teksti ja kus võiks olla lehel. 850 00:39:23,220 --> 00:39:25,760 Aga CSS on tõesti see, mida teeb see päris. 851 00:39:25,760 --> 00:39:30,690 Sa oleks võinud need oma HTML faile, kuid kui me räägime hiljem 852 00:39:30,690 --> 00:39:32,660 Ma olen päris kindel, et see võiks olla järgmine slaid, see 853 00:39:32,660 --> 00:39:35,620 on tavaks, ja tegelikult Praktikas, et me tõesti julgustada, 854 00:39:35,620 --> 00:39:40,670 teil hoida neid lahutada, kui me rääkida MVC ja et kogu paradigma. 855 00:39:40,670 --> 00:39:42,490 See on tõesti, mida see toidab. 856 00:39:42,490 --> 00:39:46,110 >> Nii CSS on lihtsalt võimalus teha asju vaadata päris. 857 00:39:46,110 --> 00:39:50,500 Asju siin, nagu keha ja #title ja .info, 858 00:39:50,500 --> 00:39:54,340 need on nn lülitid ja mida nad on need valida kindlaid asju 859 00:39:54,340 --> 00:39:59,260 jooksul oma HTML faili ja kohaldada sõltumata stiil, 860 00:39:59,260 --> 00:40:04,090 olenemata omamoodi asju, mida sa tahad, selle konkreetse osa veebi 861 00:40:04,090 --> 00:40:04,590 lehel. 862 00:40:04,590 --> 00:40:08,820 Nii et siin on meil taustavärvi ja värv 863 00:40:08,820 --> 00:40:12,450 ja fondipere mis kuramuse rakendada kõik, mis on organismile. 864 00:40:12,450 --> 00:40:15,530 Nii et kui me vaatasime siia tagasi, siis ei kohaldata pealkiri. 865 00:40:15,530 --> 00:40:22,340 Oleks kohaldatakse üksnes sellega, mis on Nende keha valijad, OK? 866 00:40:22,340 --> 00:40:25,250 >> Mis pealkiri siin, see on saab olema sama asi, 867 00:40:25,250 --> 00:40:28,410 teksti värvi on sinine on ainult kavatse 868 00:40:28,410 --> 00:40:33,870 mõjutada, mis on sees title valijad. 869 00:40:33,870 --> 00:40:36,580 Nagu ka info siin Teksti on roosa, 870 00:40:36,580 --> 00:40:38,600 olenemata tema info, mis on siinsamas. 871 00:40:38,600 --> 00:40:40,860 Nii et ainus asi, mis oleks roosa lehel 872 00:40:40,860 --> 00:40:44,100 on kuupäev, esmaspäev, november 17, 2014. 873 00:40:44,100 --> 00:40:48,770 OK, nii et CSS on lihtsalt võimalus on rohkem kontrolli over-- jah? 874 00:40:48,770 --> 00:40:51,850 >> Sihtrühm: Miks sa pead kasutada hash tiitliga? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH: Järgmine slaid, luban! 876 00:40:55,170 --> 00:40:56,810 Me saame seal. 877 00:40:56,810 --> 00:40:59,830 Nii et see on põhjus, miks me peame kasutama hash. 878 00:40:59,830 --> 00:41:03,429 Nii valijad võtta kolm peamist vorme, mis me räägime kutid kohta. 879 00:41:03,429 --> 00:41:05,595 Ma FTe tahad rohkem, seal on palju seal. 880 00:41:05,595 --> 00:41:07,540 Seal on suur CSS dokumendid. 881 00:41:07,540 --> 00:41:12,680 Seal on silt, mis on seotud lihtsalt oma tavaline silte HTML. 882 00:41:12,680 --> 00:41:17,210 Nii h1, p, div, H2, seda sorti asju. 883 00:41:17,210 --> 00:41:20,320 Ja me saame nimetada need nagu on. 884 00:41:20,320 --> 00:41:22,650 Nii nagu me näeme siin keha, see on normaalne tag. 885 00:41:22,650 --> 00:41:26,660 Nii saame lihtsalt panna keha kui me räägime meie CSS faili. 886 00:41:26,660 --> 00:41:29,730 >> Mis pealkiri, kogu põhjus, miks me on see hash on meil, mida on 887 00:41:29,730 --> 00:41:31,010 loetakse ID. 888 00:41:31,010 --> 00:41:35,400 Nii ID peaks olema alati unikaalne oma HTML-lehe 889 00:41:35,400 --> 00:41:37,930 nii et kui sa oled sellele viitavad, siis 890 00:41:37,930 --> 00:41:41,990 tean, et sa oled ainult viidates ühe konkreetse asja. 891 00:41:41,990 --> 00:41:46,270 Nii et kui siin, meie h1 siin, CS 50 läbivaatamise istungil 892 00:41:46,270 --> 00:41:47,810 meil on id pealkiri. 893 00:41:47,810 --> 00:41:54,280 Nii et lihtsalt viidata, et tükike meie HTML, teeme hash pealkiri. 894 00:41:54,280 --> 00:41:58,080 Just tavapäraselt ID on määratud koos hash nende ees. 895 00:41:58,080 --> 00:42:01,650 Samamoodi näeme info siin klassis. 896 00:42:01,650 --> 00:42:06,070 Ja nii klassi CSS on määratud dot klassi 897 00:42:06,070 --> 00:42:08,895 või dot iganes see klass on. 898 00:42:08,895 --> 00:42:10,850 Nii et kui siin, see on info. 899 00:42:10,850 --> 00:42:13,090 >> Nii et ma seda tagasi võtta. 900 00:42:13,090 --> 00:42:16,200 Mõlemad oleks roosa meie CSS siin 901 00:42:16,200 --> 00:42:18,430 sest nad mõlemad on klass info. 902 00:42:18,430 --> 00:42:23,070 Ja meie CSS faili, oleme määratud et midagi klassi info 903 00:42:23,070 --> 00:42:24,120 peab olema roosa. 904 00:42:24,120 --> 00:42:25,968 Kas on mõtet? 905 00:42:25,968 --> 00:42:27,435 Jah? 906 00:42:27,435 --> 00:42:30,731 >> Sihtrühm: Kui sa olid teha kõik organismis valge, 907 00:42:30,731 --> 00:42:32,814 ja siis te üritate teha midagi sees sinine, 908 00:42:32,814 --> 00:42:34,770 kas see põhjustada probleeme? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH: Nii CSS on kaskaadlaadistiku. 910 00:42:37,310 --> 00:42:40,730 Mida iganes on poole alt ülimuslik. 911 00:42:40,730 --> 00:42:44,080 Nii et kui sa midagi keha, ja teete kõike valge, 912 00:42:44,080 --> 00:42:49,300 ja siis hiljem muudad pealkirja või muudad teksti keha, 913 00:42:49,300 --> 00:42:50,560 see kirjutab, et. 914 00:42:50,560 --> 00:42:55,360 Nii midagi poole alt ülimuslik. 915 00:42:55,360 --> 00:42:56,730 Jah? 916 00:42:56,730 --> 00:42:59,627 >> Sihtrühm: Ja ID on unikaalne, kuid klassidel võivad olla rohkem? 917 00:42:59,627 --> 00:43:00,210 HANNAH: Right. 918 00:43:00,210 --> 00:43:06,320 Nii tähised peavad olema kordumatu ning Klassid võivad viitavad nii palju asju kui soovite. 919 00:43:06,320 --> 00:43:07,580 Muid küsimusi? 920 00:43:07,580 --> 00:43:09,800 Jah. 921 00:43:09,800 --> 00:43:11,210 >> Sihtrühm: [kuuldamatu]. 922 00:43:11,210 --> 00:43:13,509 Ma ei tea, kas mis muudab erinevus. 923 00:43:13,509 --> 00:43:15,217 HANNAH: Mul on kahju, milline oli küsimus? 924 00:43:15,217 --> 00:43:18,960 Sihtrühm: Seal on väike "F" ja kapitali "F." 925 00:43:18,960 --> 00:43:21,440 HANNAH: Nii vahe vahel väike "f" ja kapitali "F" 926 00:43:21,440 --> 00:43:22,606 ei tohiks midagi muuta. 927 00:43:22,606 --> 00:43:26,330 Nii "f" on 15 kas nii. 928 00:43:26,330 --> 00:43:28,130 Cool, midagi muud? 929 00:43:28,130 --> 00:43:29,930 Igaüks hea, CSS? 930 00:43:29,930 --> 00:43:30,850 Jah? 931 00:43:30,850 --> 00:43:31,790 >> Sihtrühm: Sorry. 932 00:43:31,790 --> 00:43:35,550 Kas teil on klassi ja ID? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH: Jah, saate küll. 934 00:43:38,030 --> 00:43:40,420 Asjad võivad olla nii klassi ja ID. 935 00:43:40,420 --> 00:43:44,670 Ja ma väga soovitada katsetamise ise. 936 00:43:44,670 --> 00:43:50,480 CSS õpid paremini lihtsalt muutes midagi, väga lihtne veebileht, 937 00:43:50,480 --> 00:43:53,440 koostamisel mõned CSS ja lihtsalt näha, kuidas nad suhtlevad. 938 00:43:53,440 --> 00:43:56,970 Ja saate omandada väga hea, intuitiivne tunne, kuidas see toimib. 939 00:43:56,970 --> 00:43:58,810 >> OK, kõik hea CSS? 940 00:43:58,810 --> 00:44:01,280 Sa oled kõik kavatse teha ilus veebilehed CSS nüüd. 941 00:44:01,280 --> 00:44:05,460 OK, heade tavade, vaid asjad, mida meeles pidada, asjad 942 00:44:05,460 --> 00:44:09,810 selle-- see on põhjus, miks me dokki sa disainer ja tühi-tähi. 943 00:44:09,810 --> 00:44:11,820 Nii sulgeda kõik oma HTML teeke. 944 00:44:11,820 --> 00:44:14,840 Nii et kui teil on avatud keha, seal peaks olema tihe keha. 945 00:44:14,840 --> 00:44:18,180 Kui teil on avatud punkt, seal peaks olema tihe lõikes. 946 00:44:18,180 --> 00:44:19,555 Kontrollige, et näha oma lehele kinnitab. 947 00:44:19,555 --> 00:44:23,330 Kutid peaks olema väga tuttav Selle p-seatud seitse 948 00:44:23,330 --> 00:44:26,350 CS 50 rahandus koos W3 validator. 949 00:44:26,350 --> 00:44:28,340 Ja nagu ma enne ütlesin, üks meie suur paradigmad 950 00:44:28,340 --> 00:44:33,780 on eraldades oma stiili CSS oma juurdehindlus, mis on HTML. 951 00:44:33,780 --> 00:44:36,900 Ja siis muidugi on meil see suur XKCD siin. 952 00:44:36,900 --> 00:44:38,280 Jee, Comic Relief! 953 00:44:38,280 --> 00:44:41,340 >> OK, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 Nende vahel ja HTTP, Põhimõtteliselt on nad mõlemad protokolle. 955 00:44:44,650 --> 00:44:46,810 Nii võid lihtsalt mõelda neist reeglistik 956 00:44:46,810 --> 00:44:50,110 mis reguleerivad, kuidas asjad liikuda kogu internet. 957 00:44:50,110 --> 00:44:53,410 Nii Käigukang protokolli või Internet Protocol, 958 00:44:53,410 --> 00:44:57,280 on lihtsalt võimalus veenduda, et andmeid saab, kuhu ta läheb 959 00:44:57,280 --> 00:45:00,030 ja et me ei tea, kui me kunagi puuduvad andmed. 960 00:45:00,030 --> 00:45:03,520 Nii et kui te mehed arvavad tagasi loengu Paar nädalat tagasi David 961 00:45:03,520 --> 00:45:06,980 kus meil oli neli ümbrikud, nad kõik olid nummerdatud nagu üks neljast, 962 00:45:06,980 --> 00:45:11,300 kaks neljast kolm neljast neli neli, see on lihtsalt reeglistik. 963 00:45:11,300 --> 00:45:13,830 Me ütlesime, OK, kui me oleme saates rohkem kui üks pakett, 964 00:45:13,830 --> 00:45:16,610 me number see, mida number on 965 00:45:16,610 --> 00:45:19,040 ja kui palju kokku, et kasutaja peaks saama. 966 00:45:19,040 --> 00:45:22,540 >> Ja see on lihtsalt ütlen kes võtab andmeid kas nad 967 00:45:22,540 --> 00:45:26,120 on saanud kõik, või kui midagi kadus mööda teed. 968 00:45:26,120 --> 00:45:28,840 Ja neil on vaja küsida seda uuesti. 969 00:45:28,840 --> 00:45:31,140 See on tõesti ainult reeglistik. 970 00:45:31,140 --> 00:45:33,650 See, kuidas sa ei mõtle seda, OK? 971 00:45:33,650 --> 00:45:37,700 Ja ka see määrab port, mis kutid can-- Tean ajal loeng, 972 00:45:37,700 --> 00:45:39,170 neil oli kogu sadamate nimekirja. 973 00:45:39,170 --> 00:45:41,630 Aga meil ei ole neid siin praegu. 974 00:45:41,630 --> 00:45:45,290 >> Nii hüperteksti edastamise protokoll on jällegi see on teine ​​protokoll. 975 00:45:45,290 --> 00:45:48,630 Nii et see on veel eeskirjad mis reguleerivad, sel juhul 976 00:45:48,630 --> 00:45:51,130 kuidas hüperteksti üle. 977 00:45:51,130 --> 00:45:54,340 Nii see lihtsalt võimaldab brauserid rääkida web servereid. 978 00:45:54,340 --> 00:45:56,910 Ja nagu me siin ütles, et see on nagu inimese tagasisidega. 979 00:45:56,910 --> 00:46:00,480 See on lihtsalt nii, et reguleerida kuidas veebiserver 980 00:46:00,480 --> 00:46:02,690 läheb suhelda oma brauserit. 981 00:46:02,690 --> 00:46:05,660 Ja meil on vaid paar näidet. 982 00:46:05,660 --> 00:46:09,100 Meil on mõned taotlused siin kus GET meetodiga. 983 00:46:09,100 --> 00:46:13,760 Meil on HTTP 1.1, mis on protokolli versioon meile. 984 00:46:13,760 --> 00:46:17,230 Ja siis, host, mis on see, mida me tegelikult püüab kasutada. 985 00:46:17,230 --> 00:46:21,800 Ja siis, kui sa näed siin oleme saaksin vastuse selle 200 986 00:46:21,800 --> 00:46:25,032 OK, kui meie HTTP vastust koodiga. 987 00:46:25,032 --> 00:46:27,240 Meil on suur nimekiri Ma lähen tõmba ühes sekundis 988 00:46:27,240 --> 00:46:29,430 et kutid peaks olema tuttav. 989 00:46:29,430 --> 00:46:35,750 Ja meil on selle sisu tüübi tekst / HTML, lihtsalt ütleb, millist tüüpi andmeid 990 00:46:35,750 --> 00:46:39,990 me saamist serverist, OK? 991 00:46:39,990 --> 00:46:44,230 See host ja selle sisu tüübi on osa HTTP päised. 992 00:46:44,230 --> 00:46:49,610 Sul võib olla nii vähe või nii vähe kui vajalikud kontekstis mida 993 00:46:49,610 --> 00:46:50,580 olete tegelevad. 994 00:46:50,580 --> 00:46:53,371 Mõnikord on teil palju tulevat infot oma server. 995 00:46:53,371 --> 00:46:56,040 Võib-olla nad taotlevad palju Teabe kasutaja. 996 00:46:56,040 --> 00:46:57,600 See varieerub sõltuvalt kontekstist. 997 00:46:57,600 --> 00:47:01,144 Kui te vaatate CS 50 Study, seal on palju rohkem seda. 998 00:47:01,144 --> 00:47:03,060 Aga meil on palju, et saada läbi, nii et ma lähen 999 00:47:03,060 --> 00:47:05,760 et lase käia, kui see on OK teiega? 1000 00:47:05,760 --> 00:47:07,960 Külm. 1001 00:47:07,960 --> 00:47:08,460 Hoia edasi. 1002 00:47:08,460 --> 00:47:11,182 Ma saan kindlasti, et terve nimekirja of-- huh! 1003 00:47:11,182 --> 00:47:13,140 Ma ei tea, miks see nii on kogu tee siia. 1004 00:47:13,140 --> 00:47:15,660 Ma arvasin, et sõna otseses mõttes kolis see, kui ma olin sitting-- 1005 00:47:15,660 --> 00:47:16,540 >> DAVIN: Kas sa tahad seda õpetada? 1006 00:47:16,540 --> 00:47:17,420 Või sa tahad, et seda õpetada? 1007 00:47:17,420 --> 00:47:20,010 >> Sihtrühm: Ma arvasin, et me võiksime lihtsalt näidata neid alustada. 1008 00:47:20,010 --> 00:47:22,210 Ma mõtlen, et sa ei saa minna neid veelgi, aga ma 1009 00:47:22,210 --> 00:47:26,030 arvasin, et see mõttekam, sest ma lihtsalt räägime HTTP staatused. 1010 00:47:26,030 --> 00:47:28,200 Nii et siin on kogu nimekirja. 1011 00:47:28,200 --> 00:47:31,730 Ma arvan, mida juhtub on Davin läheb minema neid hiljem. 1012 00:47:31,730 --> 00:47:35,330 Aga seal on terve nimekiri, eelvaate maitse tulla. 1013 00:47:35,330 --> 00:47:41,640 OK, me ei kavatse blow-- see läheb olema PHP kiirkursuse miski muu. 1014 00:47:41,640 --> 00:47:44,874 >> Nii PHP, hüperteksti preprotsessoris see on rekursiivne backronym, 1015 00:47:44,874 --> 00:47:46,540 mis tähendab, et see sai nimeks midagi muud. 1016 00:47:46,540 --> 00:47:49,050 Ja siis nad olid nagu see ei ole tegelikult mõtet. 1017 00:47:49,050 --> 00:47:52,210 Nii nad lihtsalt nimega it-- ja see oli akronüüm, 1018 00:47:52,210 --> 00:47:54,840 et nad just seda PHP hyper eeltöötluse, mis 1019 00:47:54,840 --> 00:47:55,980 lihtsalt ei ole mõtet. 1020 00:47:55,980 --> 00:47:57,714 Fun lugu. 1021 00:47:57,714 --> 00:47:58,880 See on programmeerimiskeelt. 1022 00:47:58,880 --> 00:48:02,360 Nii palju kui ma rõhutada, et HTML ei ole programmeerimiskeel, 1023 00:48:02,360 --> 00:48:05,350 see on märgistuskeel, PHP on programmeerimiskeelt. 1024 00:48:05,350 --> 00:48:07,422 Kuidas sa tead, et see on sest seal on loogika. 1025 00:48:07,422 --> 00:48:08,380 On conditionals. 1026 00:48:08,380 --> 00:48:12,750 Meil on muutujad, arvestades, et me pole ühtegi neist asjadest HTML. 1027 00:48:12,750 --> 00:48:16,960 >> Olgu siis meil on see veidi natuke siin see on nagu maitse PHP. 1028 00:48:16,960 --> 00:48:20,510 Nii põhitõdesid, muutujate nimed Alustame dollari märk. 1029 00:48:20,510 --> 00:48:21,500 Paljud inimesed meeldib. 1030 00:48:21,500 --> 00:48:22,371 Tuletab meile raha. 1031 00:48:22,371 --> 00:48:22,995 See kõik on tore. 1032 00:48:22,995 --> 00:48:25,280 Me kõik tahame PHP. 1033 00:48:25,280 --> 00:48:28,020 Nii et me ei täpsusta muutuja tüüp enam. 1034 00:48:28,020 --> 00:48:29,995 See määratakse töötamise ajal. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 Tõlk olema, oh, me lihtsalt joosta, 1037 00:48:35,890 --> 00:48:39,565 ja olenevalt kontekstist, me näeme, milliseid tüüpe 1038 00:48:39,565 --> 00:48:41,560 need muutujad olema. 1039 00:48:41,560 --> 00:48:42,815 Ei ole peamine ülesanne. 1040 00:48:42,815 --> 00:48:43,690 Asjad lihtsalt joosta. 1041 00:48:43,690 --> 00:48:47,851 Kutid oma impordi- oma viimase p-set, märkad seda. 1042 00:48:47,851 --> 00:48:49,350 Seal ei olnud tõesti põhiülesanne. 1043 00:48:49,350 --> 00:48:52,070 Sa lihtsalt kirjutasin, mida sa tahtsid juhtuda. 1044 00:48:52,070 --> 00:48:53,280 Ja see lihtsalt selline juhtus. 1045 00:48:53,280 --> 00:48:56,760 Nii et PHP jaoks. 1046 00:48:56,760 --> 00:48:59,180 >> Massiivid on väga sarnased. 1047 00:48:59,180 --> 00:49:01,270 Meil on veel see sulg. 1048 00:49:01,270 --> 00:49:05,940 Siin on mõned muutuja nimetatakse arr, ja see on võrdne 1049 00:49:05,940 --> 00:49:08,540 mina-- meil on normaalne sulg märke. 1050 00:49:08,540 --> 00:49:10,630 Ja meil on mõned põhiväärtus. 1051 00:49:10,630 --> 00:49:14,630 Ja suur erinevus vahel C ja PHP massiivid 1052 00:49:14,630 --> 00:49:19,330 on see, et me ei ole seda associate-- seostab väärtused võtmed. 1053 00:49:19,330 --> 00:49:22,440 Nii et selle asemel, et lihtsalt võttes massiivi indekseeritud 1054 00:49:22,440 --> 00:49:26,630 mitmeid või positsiooni selle elemendi massiivi, 1055 00:49:26,630 --> 00:49:29,060 me saame tegelikult seostab seda võtit. 1056 00:49:29,060 --> 00:49:36,700 Kui me ei saa öelda, OK, ma tahan iganes väärtus on seotud puu. 1057 00:49:36,700 --> 00:49:39,280 Ja võib-olla on meil puu läks banaan. 1058 00:49:39,280 --> 00:49:41,760 Nii ta tahaks tagasi banaan meile. 1059 00:49:41,760 --> 00:49:44,100 >> Aga põhimõtteliselt, kõige võimas asi see 1060 00:49:44,100 --> 00:49:47,960 on see, et kui te poisid mäletavad demo on loeng, kus me põhiliselt 1061 00:49:47,960 --> 00:49:53,050 kirjutasin speller PHP, ja see was-- lookup oli tõesti lihtsalt meeldib, 1062 00:49:53,050 --> 00:49:55,007 see võti olemas? 1063 00:49:55,007 --> 00:49:56,590 See on tõesti selline võimsus seda. 1064 00:49:56,590 --> 00:49:58,560 Sa ei pea itereerima läbi oma valikut. 1065 00:49:58,560 --> 00:50:00,311 Sa ei pea teadma mida ruumi see on. 1066 00:50:00,311 --> 00:50:01,976 See võiks olla aasta lõpus või alguses. 1067 00:50:01,976 --> 00:50:04,790 Niikaua kui sa tead võti mis on seotud raha, 1068 00:50:04,790 --> 00:50:09,740 PHP lihtsalt sülitada, et väärtus õigus tagasi saada sind, OK? 1069 00:50:09,740 --> 00:50:12,960 >> Ja siis on meil ka lihtsalt on lihtsalt sellepärast, et me 1070 00:50:12,960 --> 00:50:16,750 võib olla põhiväärtus paari ei tähenda, sa pead. 1071 00:50:16,750 --> 00:50:19,180 Võite ka lihtsalt luua tavaline massiiv nagu siin, 1072 00:50:19,180 --> 00:50:21,540 allosas, kus see on üks, kaks, kolm, neli. 1073 00:50:21,540 --> 00:50:22,510 Need on meie väärtused. 1074 00:50:22,510 --> 00:50:25,320 Ja tegelikult, nende juurde on indeksid. 1075 00:50:25,320 --> 00:50:26,830 Nii klahvi üks null. 1076 00:50:26,830 --> 00:50:28,610 Võtme kahe oleks üks. 1077 00:50:28,610 --> 00:50:31,910 Nii edasi ja nii edasi, välja arvatud juhul, Te olete ise määrata võtme, 1078 00:50:31,910 --> 00:50:34,630 siis võiks eeldada, et väärtus on lihtsalt oma indeks. 1079 00:50:34,630 --> 00:50:37,290 Kas on mõtet kõigile? 1080 00:50:37,290 --> 00:50:38,070 Ühtegi küsimust ei ole? 1081 00:50:38,070 --> 00:50:38,930 Awesome. 1082 00:50:38,930 --> 00:50:44,420 >> OK, foreach on viis itereerima läbi oma massiivid. 1083 00:50:44,420 --> 00:50:47,490 Nii et meil on siin midagi, lihtsalt üldine struktuur. 1084 00:50:47,490 --> 00:50:51,020 Nii foreach nimi Meie massiiv, kui mis tahes 1085 00:50:51,020 --> 00:50:53,930 soovite helistada iga element oma massiiv, 1086 00:50:53,930 --> 00:50:57,270 ja me saame teha midagi et element või selle väärtust. 1087 00:50:57,270 --> 00:50:58,680 Nii et meil on näiteks siin. 1088 00:50:58,680 --> 00:51:05,770 Meil on assotsiatiivne massiivi Nende kahe kirje 1089 00:51:05,770 --> 00:51:10,080 baariga olla seotud foo ja qux olla seotud baz. 1090 00:51:10,080 --> 00:51:12,180 Nii võtmed on suva ja baz. 1091 00:51:12,180 --> 00:51:13,650 Väärtused on baar ja qux. 1092 00:51:13,650 --> 00:51:18,560 Nii foreach on meil hulgaliselt siin, nagu põhiväärtus paari. 1093 00:51:18,560 --> 00:51:21,560 See võimaldab meil juurdepääs nii võti ja väärtus. 1094 00:51:21,560 --> 00:51:23,680 Võib-olla sa lihtsalt tahad väärtus, mille puhul 1095 00:51:23,680 --> 00:51:27,640 võid lihtsalt meeldib arr kui $ väärtus, ja siis 1096 00:51:27,640 --> 00:51:30,640 lihtsalt tutvumise väärtus kui itereerima kaudu. 1097 00:51:30,640 --> 00:51:32,600 Aga võib-olla mingil Seetõttu soovite võti, 1098 00:51:32,600 --> 00:51:35,460 mistõttu Valisin Selle näite asemel. 1099 00:51:35,460 --> 00:51:40,240 Nii saab tegelikult manipuleerida ja väärtuse antud juhul. 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 Küsimus? 1102 00:51:41,905 --> 00:51:44,279 >> Sihtrühm: Kui sa tahad lihtsalt manipuleerida võti, mis 1103 00:51:44,279 --> 00:51:45,910 mida sa pead tegema foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON: Right. 1105 00:51:47,360 --> 00:51:50,560 Nii et kui sa tahad manipuleerida lihtsalt klahvi 1106 00:51:50,560 --> 00:51:53,680 siis oleks siiski vaja süntaks, sest kui sa lihtsalt 1107 00:51:53,680 --> 00:51:56,930 on arr midagi, üks asi, see on 1108 00:51:56,930 --> 00:52:00,070 läheb endale soovid väärtust, mitte võtit. 1109 00:52:00,070 --> 00:52:06,780 Nii et kui te olete kunagi lihtsalt nagu arr nii, äkki see on nagu $ element, 1110 00:52:06,780 --> 00:52:11,670 see saab eeldada, et sa seda küsid vaid raha igas punktis. 1111 00:52:11,670 --> 00:52:13,879 Kui teil selgesõnaliselt soovi midagi võtmega, 1112 00:52:13,879 --> 00:52:16,170 isegi kui sa ei kavatse midagi teha raha, 1113 00:52:16,170 --> 00:52:18,430 sa pead selle struktuuri et meil on siin 1114 00:52:18,430 --> 00:52:22,330 kuhu selgesõnaliselt küsida nii võti ja väärtus. 1115 00:52:22,330 --> 00:52:24,170 Hea küsimus. 1116 00:52:24,170 --> 00:52:25,940 Veel midagi? 1117 00:52:25,940 --> 00:52:27,490 Külm. 1118 00:52:27,490 --> 00:52:29,911 >> Olgu, PHP ja HTML. 1119 00:52:29,911 --> 00:52:31,410 Oh, me oleme tagasi p-pani seitse uuesti. 1120 00:52:31,410 --> 00:52:35,380 Nii et see peaks vaatama natuke tuttav. 1121 00:52:35,380 --> 00:52:41,760 Nii et see on mõned lihtsad HTML kujul et on mingi sisend nimi tere. 1122 00:52:41,760 --> 00:52:43,820 Ja me näeme meil on meetod GET. 1123 00:52:43,820 --> 00:52:47,430 Ja kui me mäletame meie p-set, kui see vorm esitatakse, 1124 00:52:47,430 --> 00:52:58,130 ta saadab massiivi nimega $ _GET, mis on kõik need sisendid või muutujate 1125 00:52:58,130 --> 00:53:00,490 kujul, mis peaks olema manipuleerida meie PHP. 1126 00:53:00,490 --> 00:53:03,320 Nii sel juhul alla paneks oma nime. 1127 00:53:03,320 --> 00:53:04,370 Nad väidavad seda. 1128 00:53:04,370 --> 00:53:07,810 Ja me näeme, et me saaksin massiivi siin. 1129 00:53:07,810 --> 00:53:09,080 Meil on GET massiivi. 1130 00:53:09,080 --> 00:53:11,510 Ja me tutvumise nimi. 1131 00:53:11,510 --> 00:53:15,070 >> Nii ütleb, et OK, anna mulle väärtus, mis on seotud nime, 1132 00:53:15,070 --> 00:53:16,550 nimi on võti siin. 1133 00:53:16,550 --> 00:53:21,400 Ja mis seob otseselt sellele, mida me ütlesime meie panus nimi on. 1134 00:53:21,400 --> 00:53:28,960 Nii et see andis teile oluline, millises saab olema sinu rida siin. 1135 00:53:28,960 --> 00:53:31,220 Kas on mõtet kõigile? 1136 00:53:31,220 --> 00:53:32,070 Jah? 1137 00:53:32,070 --> 00:53:36,240 >> Sihtrühm: Kas nime SAADA suunata lilla joon [kuuldamatu]? 1138 00:53:36,240 --> 00:53:37,740 >> ALISON: See viitab sellele siin. 1139 00:53:37,740 --> 00:53:43,840 Nii selles valdkonnas siinsamas, see viitab sellele nimi. 1140 00:53:43,840 --> 00:53:47,800 Nii et see oleks võinud oma nime nagu telefoninumber, või mis iganes. 1141 00:53:47,800 --> 00:53:51,790 See nimi tegelikult ütleb, mida sa helistad selles valdkonnas? 1142 00:53:51,790 --> 00:53:53,600 Kuidas sul läheb viitavad selles valdkonnas? 1143 00:53:53,600 --> 00:53:57,670 Ja see nimi on tegelikult meeldib, me oleme öeldes selles valdkonnas on nn nime. 1144 00:53:57,670 --> 00:53:59,224 See, kuidas me kavatseme seda kasutada. 1145 00:53:59,224 --> 00:54:02,070 >> Sihtrühm: Nii see välja näeb, input nimi võrdub Bob, and-- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON: Õigus, siis saaksin Bob seal. 1147 00:54:04,380 --> 00:54:06,090 Täpselt. 1148 00:54:06,090 --> 00:54:07,800 Igaüks lahe? 1149 00:54:07,800 --> 00:54:10,990 Olgu, nii et olge versus POST, need on kaks peamist võimalust 1150 00:54:10,990 --> 00:54:14,880 et võtame andmeid HTTP taotluse. 1151 00:54:14,880 --> 00:54:17,370 Kutid oleks pidanud nägema Mõlema loodetavasti. 1152 00:54:17,370 --> 00:54:20,940 Nii GET teave läbib URL. 1153 00:54:20,940 --> 00:54:23,490 Nii et kui te kunagi teha Google otsinguid, YouTube, saate 1154 00:54:23,490 --> 00:54:25,130 ilmselt märgata küsimärk. 1155 00:54:25,130 --> 00:54:28,230 Ja siis kõik need sõnad et sa lihtsalt panna sinna. 1156 00:54:28,230 --> 00:54:31,410 Ja POST läbib andmeid HTTP sõnumi kehas. 1157 00:54:31,410 --> 00:54:36,922 Nii et erinevalt SAADA, siis millist kaaluda et andmed on kasutaja eest peidetud. 1158 00:54:36,922 --> 00:54:38,630 Aga mis on tegelikult oluline mõista 1159 00:54:38,630 --> 00:54:44,040 on see, et see on ikka sama ebakindel kui saad. 1160 00:54:44,040 --> 00:54:48,780 Analoogselt Mulle meeldib kasutada on, kui sa pead oma pangakonto number 1161 00:54:48,780 --> 00:54:52,795 ja sa kirjutad seda väljaspool ümbrikus, see on päris ohtlik. 1162 00:54:52,795 --> 00:54:55,920 Kui sa olid kirjutage see tükk paber ja pane see ümbrikusse, 1163 00:54:55,920 --> 00:54:58,850 see on ikka tõesti ohtlik, sest kõik mida sa pead tegema, on avada see üles 1164 00:54:58,850 --> 00:55:03,480 ja vaadata täitekoguse Sõnumi näha. 1165 00:55:03,480 --> 00:55:08,310 Nii et see on "peidetud" ja inimestele meeldib arvan, et see turvaline, kuid see tõesti ei ole. 1166 00:55:08,310 --> 00:55:11,000 Ja ma olen kindel Davin hakkab sattuda, et rohkem, võibolla. 1167 00:55:11,000 --> 00:55:12,850 Aga see on oluline vahet teha 1168 00:55:12,850 --> 00:55:15,820 ja midagi tõeliselt head mõista. 1169 00:55:15,820 --> 00:55:19,220 >> OK, SQL, Structured Query Language. 1170 00:55:19,220 --> 00:55:22,220 Kõik asjad, mis oleme näinud nii hiljuti! 1171 00:55:22,220 --> 00:55:25,400 Nii et see on põhimõtteliselt ainult projekteeritud, Ilmselt juhtimiseks andmeid. 1172 00:55:25,400 --> 00:55:30,560 Kutid oli palju kogemusi seda oma tabelid PHP MyAdmin. 1173 00:55:30,560 --> 00:55:34,100 Ja seal on neli päringut et me tahame kutid teada. 1174 00:55:34,100 --> 00:55:37,304 Nii et uuendada, lisada, valida ja kustutada. 1175 00:55:37,304 --> 00:55:38,970 Nii et sa tead neid väga hästi. 1176 00:55:38,970 --> 00:55:40,960 Me läheme nende kaudu väga kiiresti. 1177 00:55:40,960 --> 00:55:44,340 >> Nii uuendada, tõesti, kui see, mida võite arvata see, 1178 00:55:44,340 --> 00:55:46,740 see lihtsalt uuendab andmeid oma andmebaasi. 1179 00:55:46,740 --> 00:55:48,750 Nii et meil on mõned näiteks siin. 1180 00:55:48,750 --> 00:55:53,310 See on üldiselt struktuuri uuendus päring. 1181 00:55:53,310 --> 00:55:56,150 Nii et me update tabelis et me räägime. 1182 00:55:56,150 --> 00:56:00,520 Ja me tahame kehtestada teatud väärtusi, teatud veerud 1183 00:56:00,520 --> 00:56:02,600 võrdne konkreetsed väärtused. 1184 00:56:02,600 --> 00:56:07,500 Nii see lihtsalt uuendab tabel, muutes väärtusi kõikides ridades sel juhul. 1185 00:56:07,500 --> 00:56:13,690 Nii et see siin, tegeliku Näiteks on meil insert-- vabandust. 1186 00:56:13,690 --> 00:56:17,630 See slide arenenud ilma minuta märkamata. 1187 00:56:17,630 --> 00:56:22,230 >> Nii et see uuendused tabeli col1 võrdne et VAL1 kus maja võrdub "Currier." 1188 00:56:22,230 --> 00:56:25,300 Mis see üks teeb, on see muudab ainult, vaid 1189 00:56:25,300 --> 00:56:28,130 ajakohastab neid väärtusi teatud kohtades. 1190 00:56:28,130 --> 00:56:32,300 Nii selles esimene, see muudab need väärtused kõike oma lauda 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 See saab muuta veerus iga kirje 1193 00:56:35,820 --> 00:56:37,020 iga ühele reale. 1194 00:56:37,020 --> 00:56:40,840 Aga see, kui sa võiksid ma arvan et kui täpsustava. 1195 00:56:40,840 --> 00:56:44,020 Nii et see on ainult kavatse muuta see väga spetsiifilistes kohtades. 1196 00:56:44,020 --> 00:56:47,840 Nii p-pani seitse, kui võibolla uuendatud summa raha 1197 00:56:47,840 --> 00:56:53,050 et teie kasutaja olnud, siis ilmselt oli mõned kus ID võrdub sessiooni ID, eks? 1198 00:56:53,050 --> 00:56:55,280 >> Sest sa ei taha muuta selle rahasumma 1199 00:56:55,280 --> 00:56:57,630 iga isik, kes kasutas oma kodulehel. 1200 00:56:57,630 --> 00:57:00,480 Sa tahtsid, et muuta see üheks konkreetse isikuga, et isik on 1201 00:57:00,480 --> 00:57:02,410 kes oli kasutanud seda sel ajal. 1202 00:57:02,410 --> 00:57:04,320 Õigus? 1203 00:57:04,320 --> 00:57:07,510 OK, nii et sisestada, sisesta teatud väärtuste tabelid. 1204 00:57:07,510 --> 00:57:11,650 See on nagu siis, kui sa oled luua täiesti uus kasutaja. 1205 00:57:11,650 --> 00:57:14,240 Üldstruktuuri siin on lisada mis tahes tabelis 1206 00:57:14,240 --> 00:57:15,680 me räägime. 1207 00:57:15,680 --> 00:57:18,910 Väärtused, mis on väärtused, mis me tegelikult tahame lisada. 1208 00:57:18,910 --> 00:57:23,060 OK, nii nagu me näeme siin, me on lisada tabelisse. 1209 00:57:23,060 --> 00:57:27,790 See on konkreetsed sambad nende vastas väärtusi. 1210 00:57:27,790 --> 00:57:29,940 Nii et see ütleb, sisesta uus rida, mis sisaldab 1211 00:57:29,940 --> 00:57:33,660 väärtused VAL1 ja VAL2 alla need konkreetsed sambad. 1212 00:57:33,660 --> 00:57:39,240 >> Nii et äkki tahad ainult täita välja pool asju selles reas. 1213 00:57:39,240 --> 00:57:41,150 Just see osa siin saab teha. 1214 00:57:41,150 --> 00:57:43,280 See võimaldab teil tegelikult määrata, milline osa. 1215 00:57:43,280 --> 00:57:44,244 Jah? 1216 00:57:44,244 --> 00:57:52,150 >> Sihtrühm: Kas sa ainult [kuuldamatu] rea lahtrid [kuuldamatu]? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON: Kui teil on ainult täita teatud osa oma rida, 1218 00:57:55,000 --> 00:57:57,480 Ülejäänud need rakud on vaid tühi. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 Niikaua kui teil võimaldada neil tühi, see ei ole probleem. 1221 00:58:05,660 --> 00:58:09,570 Kui püüad pääseda neile, et see on läheb tagasi mõned tühjad element. 1222 00:58:09,570 --> 00:58:13,850 Kuid on oluline teada et teatud tabelid, 1223 00:58:13,850 --> 00:58:16,690 neid tuleks lubada null. 1224 00:58:16,690 --> 00:58:18,890 Võib-olla olete sattunud Probleem ajal oma p-set 1225 00:58:18,890 --> 00:58:21,320 sest me ei lase ühtegi oma väärtusi olla null. 1226 00:58:21,320 --> 00:58:26,110 Aga sa võid täpsustada vabatahtlik väärtust oma lauale. 1227 00:58:26,110 --> 00:58:29,640 >> OK, valige, nii et see on lihtsalt võimalus saada 1228 00:58:29,640 --> 00:58:33,790 konkreetseid andmeid tabel mõned tunnus, mis sa tahad. 1229 00:58:33,790 --> 00:58:37,990 Nii valida star tabelist, kus col võrdub midagi lihtsalt tähendab, 1230 00:58:37,990 --> 00:58:43,820 anna mulle kõik andmed, mis on seotud kus vastavad veerus on tõsi. 1231 00:58:43,820 --> 00:58:49,020 Nii star sel juhul tagasi kogu rida teile, OK? 1232 00:58:49,020 --> 00:58:54,880 >> Ja siis, antud juhul valige täht tabelis lihtsalt annab teile kogu tabeli. 1233 00:58:54,880 --> 00:58:58,940 Ja siis kustutage muidugi, see lihtsalt kustutab rida tabelist. 1234 00:58:58,940 --> 00:59:01,320 Nii kustutada tabelist, mis tahes laua me oleme 1235 00:59:01,320 --> 00:59:06,830 viitamine, kus teatud tunnus või mõni tingimus on tõene. 1236 00:59:06,830 --> 00:59:07,720 Jah? 1237 00:59:07,720 --> 00:59:08,700 >> Sihtrühm: Küsimus. 1238 00:59:08,700 --> 00:59:10,699 Miks sa Kahekordse hinnapakkumisi ja kas te 1239 00:59:10,699 --> 00:59:13,600 teha jutumärkide või ühe hinnapakkumisi, see teeb vahe? 1240 00:59:13,600 --> 00:59:18,235 >> ALISON: jutumärkide või ülakoma ei tee vahet SQL. 1241 00:59:18,235 --> 00:59:19,610 Ma arvasin, et ma nägin teist küsimust. 1242 00:59:19,610 --> 00:59:20,814 Jah? 1243 00:59:20,814 --> 00:59:25,070 >> Sihtrühm: Kas see ei mõjuta mida saab põgenenud päringu? 1244 00:59:25,070 --> 00:59:27,945 >> ALISON: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> ROB: Mida sa mõtled põgenenud päringu? 1246 00:59:31,410 --> 00:59:36,870 >> Sihtrühm: Kui keegi on ühe päringu vorm of-- 1247 00:59:36,870 --> 00:59:39,862 >> ROB: Kui keegi pane ülakoma aastal, 1248 00:59:39,862 --> 00:59:43,560 siis kui sa oled desinfitseerimist sisestuse siis see ei ole oluline. 1249 00:59:43,560 --> 00:59:46,205 Aga kui sa kasutad ühte koguaeg ja sa oled valesti 1250 00:59:46,205 --> 00:59:47,914 põgenevad oma sisendid, siis jah, nad vajavad 1251 00:59:47,914 --> 00:59:51,079 panna ülakoma murdmiseks oma koodi. kui te kasutate jutumärgid, 1252 00:59:51,079 --> 00:59:53,580 nad tuleb panna topelt Tsiteerin murda koodi. 1253 00:59:53,580 --> 00:59:56,163 Aga nii kaua kui sa põgeneda asju õigesti, see ei ole oluline. 1254 00:59:56,163 --> 00:59:59,220 See on lihtsalt läheb tõlkida õige sümbol niikuinii. 1255 00:59:59,220 --> 01:00:02,332 >> Sihtrühm: Mis põgeneda tähendab? 1256 01:00:02,332 --> 01:00:04,040 ALISON: Noh, nagu desinfitseerimiskemikaale ja põgeneda. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 Eksam, et meil on, suur XKCD koomiline, et nad tõmba, kus sa pead, 1259 01:00:13,820 --> 01:00:15,629 oh-- 1260 01:00:15,629 --> 01:00:16,670 ROB: See on viimase slaidi. 1261 01:00:16,670 --> 01:00:18,500 ALISON: See on viimase slaidi tõesti? 1262 01:00:18,500 --> 01:00:20,200 Oh my god. 1263 01:00:20,200 --> 01:00:21,780 Seal me läheme, täiuslik. 1264 01:00:21,780 --> 01:00:27,900 OK, nii et põhimõtteliselt saab süstida midagi sinna SQL päring 1265 01:00:27,900 --> 01:00:30,560 kui see puruneb oma koodi või kui David näitas 1266 01:00:30,560 --> 01:00:38,460 klassis, kui meil on üksikud quote 1 võrdub 1, ja kui meie koodi 1267 01:00:38,460 --> 01:00:41,230 me lihtsalt otse kopeerida, et, ja meil on lõppenud ülakoma, 1268 01:00:41,230 --> 01:00:44,740 Mis juhtub, on meil saada mõned väljend, mis 1269 01:00:44,740 --> 01:00:48,680 tulemus on tõsi, mis las keegi siseneda meie andmebaasi 1270 01:00:48,680 --> 01:00:51,720 ja saada andmeid, et me ei taha neid saada. 1271 01:00:51,720 --> 01:00:54,240 Nii desinfitseerimist sisendite tähendab lihtsalt hoolitsedes 1272 01:00:54,240 --> 01:00:57,680 et me pääseks nende tegelased ja nende valimiseks 1273 01:00:57,680 --> 01:01:01,720 kui sümbolit, mitte asju et tuleks lubada 1274 01:01:01,720 --> 01:01:04,990 võtta sõna-sõnalt meie SQL. 1275 01:01:04,990 --> 01:01:09,980 >> Nii suur asi, et me ütlesime et kutid tuleks kasutada 1276 01:01:09,980 --> 01:01:13,650 olid HTML erilist tähemärki, mis on midagi 1277 01:01:13,650 --> 01:01:15,730 et te võiksite heita pilgu. 1278 01:01:15,730 --> 01:01:17,240 OK, kustutada. 1279 01:01:17,240 --> 01:01:19,450 Andmetüübid, see kõik on võrgus. 1280 01:01:19,450 --> 01:01:23,510 Kuna meil on 15 minutit aega, ma olen lihtsalt läheb minema otse läbi selle. 1281 01:01:23,510 --> 01:01:28,500 PHP ja SQL, põhimõtteliselt on see lihtsalt pidime päringu funktsiooni, mis 1282 01:01:28,500 --> 01:01:31,520 aitas kaitsta Nende pahatahtlike rünnakute eest. 1283 01:01:31,520 --> 01:01:33,970 Nii et kui te kasutate Küsimus, olime hoolitsedes 1284 01:01:33,970 --> 01:01:36,560 et asjad desinfitseeritakse ja tühi-tähi. 1285 01:01:36,560 --> 01:01:41,070 >> MVC on lihtsalt disain paradigma nii mudeli arvates kontroller. 1286 01:01:41,070 --> 01:01:44,200 See on lihtsalt viis hoida asju kena ja lahku samamoodi 1287 01:01:44,200 --> 01:01:47,100 et meil on kombeks tegur välja kood funktsioone. 1288 01:01:47,100 --> 01:01:53,390 See on lihtsalt web design raamistik mis võimaldab teil teha sama asja. 1289 01:01:53,390 --> 01:01:54,760 Ma lähen jäta see. 1290 01:01:54,760 --> 01:01:58,530 >> See on midagi, mida ma oleks super mugav koos. 1291 01:01:58,530 --> 01:02:01,132 See on väga vähe laual. 1292 01:02:01,132 --> 01:02:03,090 See annab sulle funktsioon Näiteks mudel. 1293 01:02:03,090 --> 01:02:05,473 Ma lihtsalt läbimas seda, sest ma tõesti tahad Davin suutma rääkida. 1294 01:02:05,473 --> 01:02:07,140 Kui teil on küsimusi, vastake. 1295 01:02:07,140 --> 01:02:07,931 Ma olen siin pärast. 1296 01:02:07,931 --> 01:02:10,360 Tule minuga rääkida. 1297 01:02:10,360 --> 01:02:13,380 Mis, et meil on HTTP staatused. 1298 01:02:13,380 --> 01:02:16,270 Ja Davin läheb löök läbi selle 15 minutiga. 1299 01:02:16,270 --> 01:02:17,560 See saab olema suur. 1300 01:02:17,560 --> 01:02:18,893 >> DAVIN: OK. 1301 01:02:18,893 --> 01:02:20,312 Uh, mikrofon? 1302 01:02:20,312 --> 01:02:22,210 Jah. 1303 01:02:22,210 --> 01:02:23,336 Vabandust. 1304 01:02:23,336 --> 01:02:24,460 ALISON: viis valmistada. 1305 01:02:24,460 --> 01:02:25,335 DAVIN: Ei, ma olen valmis. 1306 01:02:25,335 --> 01:02:25,860 Ma olen valmis. 1307 01:02:25,860 --> 01:02:28,790 Teeme seda. 1308 01:02:28,790 --> 01:02:29,290 See on valmis. 1309 01:02:29,290 --> 01:02:30,041 OK. 1310 01:02:30,041 --> 01:02:30,540 Vabandust. 1311 01:02:30,540 --> 01:02:31,664 Ma voolanud kohvi ise. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 Ma ei tea, kas ma olen rohkem ärritunud, et ma vaatan rumal, 1314 01:02:38,210 --> 01:02:40,600 või et ma ei pea kohvi enam. 1315 01:02:40,600 --> 01:02:44,480 Igatahes, lihtsalt kiire teadaanne umbes lehel kutid on. 1316 01:02:44,480 --> 01:02:47,994 Nii et see leht teiega on ei ole ametlik Mis on viktoriini. 1317 01:02:47,994 --> 01:02:49,660 See on ametlik Mis on viktoriini. 1318 01:02:49,660 --> 01:02:52,520 Samuti veebilehel, siis rääkige sa, OK, see on viktoriini. 1319 01:02:52,520 --> 01:02:55,020 Nii vähe petma lehte sul on, ei ole ametnik. 1320 01:02:55,020 --> 01:02:56,690 Ja seal on vigu ta. 1321 01:02:56,690 --> 01:03:01,490 Nii parem mitte ainult pimesi kasutada. 1322 01:03:01,490 --> 01:03:04,390 Nii et jah, see on nii. 1323 01:03:04,390 --> 01:03:05,980 Nii lähme sinna reaalne kiire. 1324 01:03:05,980 --> 01:03:07,420 >> Nii HTTP staatused. 1325 01:03:07,420 --> 01:03:10,430 Mis juhtub, kui kodulehel, et kõik on korras. 1326 01:03:10,430 --> 01:03:11,144 Kõik on OK. 1327 01:03:11,144 --> 01:03:13,310 Kõik tuleb tagasi sa, kuidas sa tahad seda. 1328 01:03:13,310 --> 01:03:15,370 Sa saad 200 OK. 1329 01:03:15,370 --> 01:03:19,250 301, kus me oleme näinud, et 301 enne? 1330 01:03:19,250 --> 01:03:20,890 Oota, mis toimub? 1331 01:03:20,890 --> 01:03:23,250 Vabandust. 1332 01:03:23,250 --> 01:03:24,980 Nägime i tina loengu ajal turvalisust. 1333 01:03:24,980 --> 01:03:30,690 Nii käigus turvalisus, nii et kui David sisestatud http ja siis minna üritas cs50.net, 1334 01:03:30,690 --> 01:03:31,940 sa lähed, et näha 301 liigutada. 1335 01:03:31,940 --> 01:03:32,440 Miks? 1336 01:03:32,440 --> 01:03:35,570 Sest see läheb ümber automaatselt meie HTTPS. 1337 01:03:35,570 --> 01:03:38,649 >> Nii 301 liigutada, vaid see on põhimõtteliselt ümbersuunamist. 1338 01:03:38,649 --> 01:03:40,190 Ja sa ei mõtle selle peale niimoodi. 1339 01:03:40,190 --> 01:03:43,790 Iga seisunditest, mis algavad 2-ndatel, need on nagu OK, kõik on OK. 1340 01:03:43,790 --> 01:03:46,530 Iga seisunditest, et alustada 3, need on ümbersuunamist. 1341 01:03:46,530 --> 01:03:49,571 Staatused mis algavad 4, et vahendid seal on mingi kliendi viga. 1342 01:03:49,571 --> 01:03:52,440 Staatused mis algavad 5 see on mingi serveri viga. 1343 01:03:52,440 --> 01:03:54,680 Nii et sa selline lõhkuda staatused niimoodi. 1344 01:03:54,680 --> 01:03:59,120 Nii 304 ei ole muudetud, nii et teie server.c p-komplekti, nii oletame, et sul 1345 01:03:59,120 --> 01:04:00,600 koormatud cat.html. 1346 01:04:00,600 --> 01:04:03,360 Kõik tuleb tagasi, saad 200s, OK, tore. 1347 01:04:03,360 --> 01:04:04,540 >> Oletame, et sa värskendatakse seda. 1348 01:04:04,540 --> 01:04:07,310 Noh, sees, et cat.html, teil on JPEG. 1349 01:04:07,310 --> 01:04:09,520 Noh, et JPEG ei ole hakka uuesti laadida. 1350 01:04:09,520 --> 01:04:12,140 Sa ei kavatse kirjutada uut GET taotluse serverile, 1351 01:04:12,140 --> 01:04:13,980 ja siis saad kogu selle info tagasi. 1352 01:04:13,980 --> 01:04:17,560 See saab lihtsalt olema--, et pilt on saab olema puhverdatud oma masinale. 1353 01:04:17,560 --> 01:04:19,540 Ja nii, et pilt on 304. 1354 01:04:19,540 --> 01:04:20,720 Nii, et see ei ole muudetud. 1355 01:04:20,720 --> 01:04:24,600 Kui seejärel sulgeda, selge küpsised ja seejärel värskendage 1356 01:04:24,600 --> 01:04:27,490 ja proovige laadida, et leht uuesti, sa lähed, et näha 200s. 1357 01:04:27,490 --> 01:04:28,910 Sa ei lähe näha, et 304. 1358 01:04:28,910 --> 01:04:32,340 >> 400, halb taotluse reaalne kiire, nagu siis, kui te 1359 01:04:32,340 --> 01:04:34,880 ei kavatse saata JSON objekti server 1360 01:04:34,880 --> 01:04:38,090 ja teie JSON eesmärgiks oli vale, näete midagi sellist. 1361 01:04:38,090 --> 01:04:39,000 403, keelatud. 1362 01:04:39,000 --> 01:04:40,330 Kui soovite näha keelatud? 1363 01:04:40,330 --> 01:04:41,394 Tõenäoliselt Tõenäoliselt? 1364 01:04:41,394 --> 01:04:42,060 Sihtrühm: Chmod. 1365 01:04:42,060 --> 01:04:42,950 DAVIN: Chmod, jah. 1366 01:04:42,950 --> 01:04:44,730 Nii et sa ei ole määranud load korrektselt. 1367 01:04:44,730 --> 01:04:45,577 404, ei leitud. 1368 01:04:45,577 --> 01:04:46,410 See lihtsalt ei ole olemas. 1369 01:04:46,410 --> 01:04:48,670 Nii et kui sa kirjutad vale URL. 1370 01:04:48,670 --> 01:04:53,500 500 internal server viga, server Ilmselt ei olnud õiged. 1371 01:04:53,500 --> 01:04:56,260 Midagi ei oma lõppu, kuid midagi serveri poolel. 1372 01:04:56,260 --> 01:04:57,240 Ja 503? 1373 01:04:57,240 --> 01:04:59,502 Paljud inimesed nägid 503s viimase p-set. 1374 01:04:59,502 --> 01:05:00,460 Millal see juhtus? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 Kuulsin sosistab. 1377 01:05:05,660 --> 01:05:07,767 >> Sihtrühm: Kui Google otsustab oled robot. 1378 01:05:07,767 --> 01:05:10,350 DAVIN: Jah, kui Google otsustab Sa oled robot, saad 503s. 1379 01:05:10,350 --> 01:05:11,560 Nii et see on liiga palju. 1380 01:05:11,560 --> 01:05:14,620 Kui oled serverilt liiga palju, see on tavaliselt ajutised. 1381 01:05:14,620 --> 01:05:15,560 Ja enamik oled märganud seda. 1382 01:05:15,560 --> 01:05:16,185 Nii nägid 503. 1383 01:05:16,185 --> 01:05:19,282 Te olete võtnud vähe pausi, siis 503s läks 1384 01:05:19,282 --> 01:05:20,490 ja kõik oli korras. 1385 01:05:20,490 --> 01:05:26,640 >> Gabe: Real kiire, kui te poisid saada 500 ilmselt see viimane probleem seada? 1386 01:05:26,640 --> 01:05:27,954 Jah? 1387 01:05:27,954 --> 01:05:30,906 >> Sihtrühm: Tavaliselt, kui server on fail vales kohas 1388 01:05:30,906 --> 01:05:34,650 või [kuuldamatu] oma masin [kuuldamatu]. 1389 01:05:34,650 --> 01:05:38,870 >> Gabe: Nii et see võib olla konfiguratsiooni küsimus oma PHP serveris. 1390 01:05:38,870 --> 01:05:42,250 Aga see võib olla lihtsalt midagi nagu semikooloniga, et teie unustasin. 1391 01:05:42,250 --> 01:05:44,130 Kui sa kirjutad PHP, mõned vale süntaks 1392 01:05:44,130 --> 01:05:46,000 võib sulle midagi sellist. 1393 01:05:46,000 --> 01:05:46,960 OK? 1394 01:05:46,960 --> 01:05:48,610 >> DAVIN: Cool. 1395 01:05:48,610 --> 01:05:51,180 Kas sa tahad, et ma lihtsalt kuni AJAX? 1396 01:05:51,180 --> 01:05:52,950 >> Gabe: [kuuldamatu]. 1397 01:05:52,950 --> 01:05:53,450 DAVIN: OK. 1398 01:05:53,450 --> 01:05:54,230 Mis siis DOM? 1399 01:05:54,230 --> 01:05:55,290 Mis DOM seista? 1400 01:05:55,290 --> 01:05:56,990 >> Sihtrühm: Document Object Model. 1401 01:05:56,990 --> 01:05:57,490 DAVIN: Nice. 1402 01:05:57,490 --> 01:06:00,775 Ja miks see meile meeldib? 1403 01:06:00,775 --> 01:06:02,670 Awesome. 1404 01:06:02,670 --> 01:06:06,651 Õige, nii see lihtsalt võimaldab meil juurdepääs HTML, juurdepääs meie lehel väga kiiresti. 1405 01:06:06,651 --> 01:06:07,150 Miks? 1406 01:06:07,150 --> 01:06:09,980 Kuna me ravivad meie lehekülg, kus ravitakse meie HTML tags, 1407 01:06:09,980 --> 01:06:11,730 ravivad kõik sest kui nad objektid. 1408 01:06:11,730 --> 01:06:13,710 Kui me neid koheldakse nagu nad esemeid, siis mida me saame teha? 1409 01:06:13,710 --> 01:06:15,210 Noh, võib helistada funktsioone neile. 1410 01:06:15,210 --> 01:06:16,460 Ja see on oluline, siis miks? 1411 01:06:16,460 --> 01:06:19,200 Noh, kuna me ei kavatse kasutada JavaScript uuendada meie HTML, 1412 01:06:19,200 --> 01:06:20,500 uuendada objektid. 1413 01:06:20,500 --> 01:06:23,869 Nii et kui me kohtleme neid nagu objekte, siis saame helistada funktsioone neile. 1414 01:06:23,869 --> 01:06:26,660 Ma lähen sinna vähe rohkem kui ma minema JavaScript, 1415 01:06:26,660 --> 01:06:30,510 aga te olete kõik näinud nagu document.getElementById. 1416 01:06:30,510 --> 01:06:32,870 Nii dokument on oma element, saada osa ID, 1417 01:06:32,870 --> 01:06:35,087 nii et sa lähed otsima mõned ID HTML tag. 1418 01:06:35,087 --> 01:06:36,920 Ja siis, mida saate teha midagi muud, mis. 1419 01:06:36,920 --> 01:06:40,089 Näiteks nagu document.body, siis saab lisada lapse. 1420 01:06:40,089 --> 01:06:41,630 Nii et sa lähed leida dokumenti. 1421 01:06:41,630 --> 01:06:42,340 Sul on dokumendi. 1422 01:06:42,340 --> 01:06:43,629 Sa lähed leida keha. 1423 01:06:43,629 --> 01:06:44,420 Sa leidsid keha. 1424 01:06:44,420 --> 01:06:46,545 Ja siis sa lähed helistada mõne funktsiooni ta. 1425 01:06:46,545 --> 01:06:50,312 Nii lisab laps, ja te saate lisada mõned HTML koridori lõpus sees oma keha. 1426 01:06:50,312 --> 01:06:52,520 Ühesõnaga, sa oled lihtsalt käsitledes seda nagu objekt. 1427 01:06:52,520 --> 01:06:54,515 Sa ravivad HTML sildid nagu objekt. 1428 01:06:54,515 --> 01:06:57,071 Ja see on väga lihtne ja kiire minna nende kaudu. 1429 01:06:57,071 --> 01:06:59,070 Aga see võimaldab ka helistada funktsioone neile 1430 01:06:59,070 --> 01:07:04,410 nii saab manipuleerida ja muuta elemente. 1431 01:07:04,410 --> 01:07:10,162 >> Gabe: Arvestades seda, miks on JavaScript sellised kena keeles suhelda HTML? 1432 01:07:10,162 --> 01:07:12,870 Koefitsiendid on, kui inimesed olid valinud keelt brauser, 1433 01:07:12,870 --> 01:07:14,990 kliendi poolel JavaScript on tõesti kena, 1434 01:07:14,990 --> 01:07:16,765 see on tõesti hea käitlemise objektide kohta. 1435 01:07:16,765 --> 01:07:20,620 Ja objektid on selline nagu objektid, mis esinevad HTML, 1436 01:07:20,620 --> 01:07:23,940 nii et see on väga lihtne JavaScript mida teha, et selline käitlemine. 1437 01:07:23,940 --> 01:07:24,440 DAVIN: Nice. 1438 01:07:24,440 --> 01:07:25,670 Nii et siin on lihtsalt näide. 1439 01:07:25,670 --> 01:07:29,020 Nii et ma arvan, et eelmise aasta viktoriin, või äkki kaks aastat tagasi, me 1440 01:07:29,020 --> 01:07:30,840 küsis teil luua puu. 1441 01:07:30,840 --> 01:07:32,660 Nii et see on täpselt, mida sa teha. 1442 01:07:32,660 --> 01:07:34,255 Nii et sa hakata läbi dokumendi. 1443 01:07:34,255 --> 01:07:36,130 Ja siis sa põhimõtteliselt lihtsalt pilk sildid. 1444 01:07:36,130 --> 01:07:38,100 Nii et kui sa vaatad, siis Alustame HTML tag. 1445 01:07:38,100 --> 01:07:41,660 Ja siis sa saad vihjeid selle kohta, kuidas Selleks põhineb taandus. 1446 01:07:41,660 --> 01:07:43,870 Nii pea sellist hargneb. 1447 01:07:43,870 --> 01:07:46,242 Toas pea, meil on teine ​​silt pealkiri. 1448 01:07:46,242 --> 01:07:47,450 Niisiis, meil on pealkiri tag. 1449 01:07:47,450 --> 01:07:49,760 Ja sees, et meil on mõned string. 1450 01:07:49,760 --> 01:07:52,210 Ja nii me esindame string ringi. 1451 01:07:52,210 --> 01:07:54,010 Ja kõik sildid on väljakud. 1452 01:07:54,010 --> 01:07:56,270 >> Ja kui sa vaatad, kui me Mõtle seda kui puu 1453 01:07:56,270 --> 01:07:58,730 ja oletame, et HTML on vanem, siis pea ja keha 1454 01:07:58,730 --> 01:07:59,772 ei kavatse olla õed-vennad. 1455 01:07:59,772 --> 01:08:01,813 Nad mõlemad saab olema lapsed, et lapsevanem. 1456 01:08:01,813 --> 01:08:03,620 Nii, sest nad on nii õed-vennad, nad 1457 01:08:03,620 --> 01:08:06,590 saab olema omamoodi kõrval teineteist nii puu mudel. 1458 01:08:06,590 --> 01:08:08,590 Ja siis sa põhimõtteliselt teha täpselt sama asi. 1459 01:08:08,590 --> 01:08:13,512 Nii ei ole raske, kuid oleme palunud küsimused nagu seda enne mängust. 1460 01:08:13,512 --> 01:08:15,220 Gabe: Kas keegi Küsimuste nii palju? 1461 01:08:15,220 --> 01:08:16,357 Kas see on hea? 1462 01:08:16,357 --> 01:08:16,856 DAVIN: Cool. 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScript, OK, hea kraam. 1465 01:08:21,600 --> 01:08:24,069 Nii JavaScript, mida on JavaScript? 1466 01:08:24,069 --> 01:08:28,370 Noh, JavaScript on-- see on keeruline, kuid need 1467 01:08:28,370 --> 01:08:30,727 on mõned olulisemad sündmused et sa peaksid meeles pidama. 1468 01:08:30,727 --> 01:08:31,810 Esiteks, see on lõdvalt kirjutatud. 1469 01:08:31,810 --> 01:08:33,529 Mida see tähendab? 1470 01:08:33,529 --> 01:08:35,596 Nii PHP was-- jah, mis toimub? 1471 01:08:35,596 --> 01:08:39,854 >> Sihtrühm: Sa ei pea otseselt riik, millist tüüpi muutuja on. 1472 01:08:39,854 --> 01:08:40,479 DAVIN: Perfect. 1473 01:08:40,479 --> 01:08:43,270 Siis ta ütles, et sa ei pea selgesõnaliselt, millist tüüpi muutuja. 1474 01:08:43,270 --> 01:08:44,160 See on täpselt õige. 1475 01:08:44,160 --> 01:08:49,700 Nii C, kui mul oli int i võrdub 50, siis PHP, see on nagu see, $ i, 1476 01:08:49,700 --> 01:08:50,550 võrdub 50. 1477 01:08:50,550 --> 01:08:54,319 Siis JavaScript, milline oleks kõne olla? 1478 01:08:54,319 --> 01:08:55,260 Var, eks? 1479 01:08:55,260 --> 01:08:56,566 Oleks nagu var i võrdub 50. 1480 01:08:56,566 --> 01:08:58,649 Aga sa ei pea olema nagu, OK, see on int. 1481 01:08:58,649 --> 01:09:00,350 OK, see on string. 1482 01:09:00,350 --> 01:09:01,731 Ei ole vaja teha. 1483 01:09:01,731 --> 01:09:02,939 See on tõlgendatud keeles. 1484 01:09:02,939 --> 01:09:04,904 Mida see tähendab? 1485 01:09:04,904 --> 01:09:06,340 >> Sihtrühm: ei koguta. 1486 01:09:06,340 --> 01:09:10,470 >> DAVIN: Mis ei koostatud tähendab? 1487 01:09:10,470 --> 01:09:11,392 Jah? 1488 01:09:11,392 --> 01:09:15,336 >> Sihtrühm: Sa ei pea ümber koodi 1489 01:09:15,336 --> 01:09:18,294 saada see valmis arvuti käivitada. 1490 01:09:18,294 --> 01:09:23,144 See on lihtsalt võetud ajal täitmise ja arvuti [kuuldamatu]. 1491 01:09:23,144 --> 01:09:25,560 DAVIN: Jah, nii see läheb läbi tõlgi. 1492 01:09:25,560 --> 01:09:26,750 Aga sa oled täpselt õige. 1493 01:09:26,750 --> 01:09:28,319 Nii et te ei saa kunagi koostada, eks? 1494 01:09:28,319 --> 01:09:30,399 Kui sa teed oma PHP ja JavaScript koodi 1495 01:09:30,399 --> 01:09:31,365 sa ei helistanud kompileerida. 1496 01:09:31,365 --> 01:09:33,779 Sa ei helistanud midagi teha või midagi sellist. 1497 01:09:33,779 --> 01:09:34,800 Ongi, sest see on tõlgendanud. 1498 01:09:34,800 --> 01:09:37,319 Nii et iga kord, kui ta läheb läbi brauseri, see läheb läbi tõlgi. 1499 01:09:37,319 --> 01:09:40,370 Ja see läheb seda tõlgendada lihtsalt reaalajas kohe teie jaoks. 1500 01:09:40,370 --> 01:09:43,770 Millised on mõned positiivsed ja negatiivsed võttes tõlgendada keel 1501 01:09:43,770 --> 01:09:45,258 ja millel on koostatud keeles? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 Nii compiling-- jah, mis toimub? 1504 01:09:50,540 --> 01:09:52,444 >> Sihtrühm: tõlgenduses on aeglasem. 1505 01:09:52,444 --> 01:09:53,319 DAVIN: Mis mõttes? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> Sihtrühm: Kui olete koostada, sa ei pea 1508 01:09:59,091 --> 01:10:04,400 teha mingeid täiendavaid meetmeid, et täita see, et see [kuuldamatu]. 1509 01:10:04,400 --> 01:10:05,570 >> DAVIN: Õigus, täiuslik. 1510 01:10:05,570 --> 01:10:08,386 Nii et mida sa ütlesid on põhimõtteliselt, et koostamine, 1511 01:10:08,386 --> 01:10:10,760 kui sa koguda, teil on palju eelkulud, eks? 1512 01:10:10,760 --> 01:10:11,760 Sa lähed kompileerida. 1513 01:10:11,760 --> 01:10:13,750 Aga pärast seda, kui ta kompileerida, tõlkija läheb optimeerida. 1514 01:10:13,750 --> 01:10:14,840 See saab olema kiire. 1515 01:10:14,840 --> 01:10:16,170 See saab põhimõtteliselt tuleb nii kiiresti kui võimalik. 1516 01:10:16,170 --> 01:10:18,830 Suulise, kunagi on, et algsetele kuludele. 1517 01:10:18,830 --> 01:10:22,260 Pigem läheb veidi aeglasemalt iga kord, kui seda tõlgendada. 1518 01:10:22,260 --> 01:10:24,940 Ja sa lähed pea tõlgendavad seda iga kord. 1519 01:10:24,940 --> 01:10:27,114 Seega ei pea seda üks ajakulu, nüüd sa oled 1520 01:10:27,114 --> 01:10:29,530 läheb on seda tõlgendada iga kord lehekülg muudab. 1521 01:10:29,530 --> 01:10:31,890 >> Nii tõlgid on hea, sest sa ei pea kompileerida, 1522 01:10:31,890 --> 01:10:33,980 kuid nad on halvad, et iga ajalt leht laeb, see on 1523 01:10:33,980 --> 01:10:35,771 läheb on tõlgendab seda JavaScript. 1524 01:10:35,771 --> 01:10:40,520 Ja see läheb joosta veidi aeglasem kui kui sa olid kompileerida. 1525 01:10:40,520 --> 01:10:43,044 Võimaldab communicate-- oh oota. 1526 01:10:43,044 --> 01:10:44,960 Kasutatud manipuleerida sisu ja välimus. 1527 01:10:44,960 --> 01:10:46,043 Me lihtsalt rääkisime sellest. 1528 01:10:46,043 --> 01:10:47,250 Ta kasutab DOM. 1529 01:10:47,250 --> 01:10:49,930 AJAX, me võtame arvesse AJAX natuke. 1530 01:10:49,930 --> 01:10:51,520 Ja siis, et see on kliendi poolel. 1531 01:10:51,520 --> 01:10:53,110 Nii PHP on serveripoolne. 1532 01:10:53,110 --> 01:10:54,360 JavaScript on kliendi poolel. 1533 01:10:54,360 --> 01:10:57,780 Mis on positiivne, et? 1534 01:10:57,780 --> 01:10:58,280 Ta ütleb seda. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 See on kiirem, eks? 1537 01:11:02,780 --> 01:11:05,282 Sest sa ei pea mina-- see on kiirem. 1538 01:11:05,282 --> 01:11:07,490 Sa ei pea suhtlema mõne muu seadmega. 1539 01:11:07,490 --> 01:11:08,790 Kui sa oled lihtsalt oma klient, sa oled kunagi 1540 01:11:08,790 --> 01:11:11,280 läheb minema ja näha, mis on serveris 1541 01:11:11,280 --> 01:11:13,150 ja siis aru või midagi sellist. 1542 01:11:13,150 --> 01:11:15,410 Nii kliendi poolel kipub natuke kiiremini. 1543 01:11:15,410 --> 01:11:17,910 >> Gabe: Jah, aga see ei tähenda, PHP on 1544 01:11:17,910 --> 01:11:20,440 kiiremini JavaScript või midagi muud sarnased. 1545 01:11:20,440 --> 01:11:23,270 Nad juhivad liiki samal kiirus, sest nad on nii 1546 01:11:23,270 --> 01:11:24,490 tõlgendada keeles. 1547 01:11:24,490 --> 01:11:26,680 Asi, mis on aeglane siin on taotluse. 1548 01:11:26,680 --> 01:11:28,870 Nii et sa oled tegelikult toimub kogu tee üle Brasiilia 1549 01:11:28,870 --> 01:11:31,460 et saaksin teavet et seal elab. 1550 01:11:31,460 --> 01:11:34,590 Aga PHP ja JavaScript, nad selline sõidetud sama kiirusega. 1551 01:11:34,590 --> 01:11:37,930 See ei ole, et üks on kiiremini kui teine. 1552 01:11:37,930 --> 01:11:40,600 See ka, nipiga küsimus siit. 1553 01:11:40,600 --> 01:11:47,338 Nii JavaScript ei hakkaks kunagi masinkoodi, õige või vale? 1554 01:11:47,338 --> 01:11:48,590 >> Sihtrühm: False. 1555 01:11:48,590 --> 01:11:49,090 Gabe: False. 1556 01:11:49,090 --> 01:11:51,298 See peab muutuma masina koodi, kuna masin koodi 1557 01:11:51,298 --> 01:11:53,210 Ainuke asi, masin mõistab. 1558 01:11:53,210 --> 01:11:55,800 Kuigi see ei ole koostatud, see ikka saab masina koodi 1559 01:11:55,800 --> 01:11:59,120 sest tõlk on lihtsalt programm, mis läheb rida-realt 1560 01:11:59,120 --> 01:12:02,170 ja muundab selle rida midagi arvuti aru saab. 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 Külm. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> DAVIN: Siin on lihtsalt väga lihtne hello world JavaScript programm. 1565 01:12:12,890 --> 01:12:15,590 Nii et ma ei tea, kui-- olete näinud seda. 1566 01:12:15,590 --> 01:12:17,630 Aga sa lihtsalt pead HTML siin. 1567 01:12:17,630 --> 01:12:21,020 Ja selle asemel, et tegelikult paneb JavaScript script silte 1568 01:12:21,020 --> 01:12:22,810 nii et sa tavaliselt pane see pähe. 1569 01:12:22,810 --> 01:12:24,030 Sul on script sildid. 1570 01:12:24,030 --> 01:12:24,870 Viska sinna. 1571 01:12:24,870 --> 01:12:28,350 Kõik me oleme teinud siin me oleme seotud in-- nii et me oleme omavahel seotud JavaScript faili 1572 01:12:28,350 --> 01:12:29,137 niimoodi. 1573 01:12:29,137 --> 01:12:30,470 Ja te olete kõik teinud, eks? 1574 01:12:30,470 --> 01:12:34,740 Nii et kui sa kasutad jQuery ja underscore.js viimase p-set, 1575 01:12:34,740 --> 01:12:38,700 sa ei pea tonni koodi üles Stsenaariumi sildid, kuni oma peaga. 1576 01:12:38,700 --> 01:12:41,415 Sa võid seda teha, kuid selle asemel sa oled lihtsalt sidudes selle. 1577 01:12:41,415 --> 01:12:43,540 Ja sa sidudes seda Just nagu sa teha CSS. 1578 01:12:43,540 --> 01:12:50,186 Nii see lihtsalt muudab lugemise lihtsamaks nii koodi ei meeldi 1000 rida pikk 1579 01:12:50,186 --> 01:12:52,310 tonni funktsioone, mis sa ei pruugi olla kasutades. 1580 01:12:52,310 --> 01:12:53,518 >> Selle asemel, sa lihtsalt ühendada see. 1581 01:12:53,518 --> 01:12:55,050 See compartmentalizes ta. 1582 01:12:55,050 --> 01:13:00,110 See on nagu kirjalikult mõned header fail ja Seejärel sealhulgas päisefail C. 1583 01:13:00,110 --> 01:13:01,620 Mõtle seda lihtsalt niimoodi. 1584 01:13:01,620 --> 01:13:02,680 Mida see teeb? 1585 01:13:02,680 --> 01:13:04,560 Noh, see läheb jooksma. 1586 01:13:04,560 --> 01:13:05,410 See saab hoiatada. 1587 01:13:05,410 --> 01:13:08,020 Nii et sa lähed, et saada natuke pop-up nimetatakse hello world. 1588 01:13:08,020 --> 01:13:11,420 Kiire küsimus, vaid terve mõistuse kontrolli, nii näed siit organismis, 1589 01:13:11,420 --> 01:13:13,160 öelda keha, HTML siin. 1590 01:13:13,160 --> 01:13:14,080 Mis tuleb esimesena? 1591 01:13:14,080 --> 01:13:16,864 Kas ma näen keha, HTML siin või ma näen alert esimesena? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> Sihtrühm: Alert. 1594 01:13:20,820 --> 01:13:21,470 >> DAVIN: Right. 1595 01:13:21,470 --> 01:13:22,110 Ta ütleb, et teate. 1596 01:13:22,110 --> 01:13:22,610 Miks? 1597 01:13:22,610 --> 01:13:24,470 >> Sihtrühm: Sest sa minna ülevalt alla. 1598 01:13:24,470 --> 01:13:25,600 >> DAVIN: Jah. 1599 01:13:25,600 --> 01:13:26,100 Perfect. 1600 01:13:26,100 --> 01:13:29,207 Siis ta ütleb, lähed ülevalt alt, mis on täiesti õige. 1601 01:13:29,207 --> 01:13:30,790 Sa lähed minema ülevalt alla. 1602 01:13:30,790 --> 01:13:34,790 Ja JavaScript, jQuery, pead funktsioon, mis on nagu onload või valmis, 1603 01:13:34,790 --> 01:13:38,030 ja mis ütleb, OK, oodake, kuni kõik see HTML on koormatud. 1604 01:13:38,030 --> 01:13:39,580 Ja siis helistage JavaScript. 1605 01:13:39,580 --> 01:13:42,190 Kuna meil ei ole, et siin Kõige esimene asi, mis juhtub 1606 01:13:42,190 --> 01:13:43,920 on see saab minna ülevalt alla. 1607 01:13:43,920 --> 01:13:46,310 See saab löögi, et JS helistada, et see saab hoiatada. 1608 01:13:46,310 --> 01:13:49,510 Pärast seda, kui klõpsad OK, et alert kaob. 1609 01:13:49,510 --> 01:13:53,600 Siis läheb näidata sa keha HTML siin. 1610 01:13:53,600 --> 01:13:54,590 Nice. 1611 01:13:54,590 --> 01:14:00,880 >> OK, nii lihtsalt reaalne kiire, kirjalikult JavaScript on super kiire. 1612 01:14:00,880 --> 01:14:02,710 Selleks, et tunnistada muutuja, var nimi. 1613 01:14:02,710 --> 01:14:07,070 Nii C, teil on int i, siis on kuulutada, millist tüüpi ta on. 1614 01:14:07,070 --> 01:14:08,040 PHP, $. 1615 01:14:08,040 --> 01:14:08,755 JavaScript, var. 1616 01:14:08,755 --> 01:14:09,630 Me rääkisime sellest. 1617 01:14:09,630 --> 01:14:11,020 Hea küll, lähme. 1618 01:14:11,020 --> 01:14:12,510 >> Loops, sama asi. 1619 01:14:12,510 --> 01:14:14,230 Sama asi. 1620 01:14:14,230 --> 01:14:18,165 Funktsioon deklaratsioonid, nii nagu oled näinud C. 1621 01:14:18,165 --> 01:14:21,290 Ainuke asi, erinev on nii et kui saad teiste programmeerimiskeelte, 1622 01:14:21,290 --> 01:14:24,780 nagu siis, kui te võtate 51 järgmine semester ja sa teed koos ocaml, 1623 01:14:24,780 --> 01:14:26,690 saab tegeleda anonüümseks funktsioone. 1624 01:14:26,690 --> 01:14:28,240 Nii see on täpselt, mida sa pead siin. 1625 01:14:28,240 --> 01:14:31,560 Nii et sa tahad panna summa, mingi summa raha. 1626 01:14:31,560 --> 01:14:33,870 Aga te võite ainult siis tee seda üks kord. 1627 01:14:33,870 --> 01:14:37,310 Nii et sa ei taha seda nimetada funktsiooni Kokkuvõttes annab see funktsioon deklaratsiooni. 1628 01:14:37,310 --> 01:14:39,830 Selle asemel, et kasutada tuleb lihtsalt see anonüümse funktsiooni. 1629 01:14:39,830 --> 01:14:42,469 Ja sa oled näinud seda palju. 1630 01:14:42,469 --> 01:14:44,510 Näete näide Selle paari slaidid. 1631 01:14:44,510 --> 01:14:45,597 Jah, me näeme. 1632 01:14:45,597 --> 01:14:46,430 Gabe: Hea küsimus. 1633 01:14:46,430 --> 01:14:50,660 Kui oleks, mida soovid kasutada anonüümne funktsioon siin? 1634 01:14:50,660 --> 01:14:54,111 Põhimõtteliselt, kui sa tahad midagi, nagu juhul juhtuda. 1635 01:14:54,111 --> 01:14:55,860 Nii et kui hiir on klõpsatud, näiteks 1636 01:14:55,860 --> 01:14:57,790 sa tahad funktsiooni nimetatakse. 1637 01:14:57,790 --> 01:15:00,570 Nii te kaotate korral handler, siis läheb üritus, 1638 01:15:00,570 --> 01:15:02,870 selline funktsioon, mis sa tahad olla nn. 1639 01:15:02,870 --> 01:15:04,710 Ja mida sa möödaminnes on nagu lõpus 1640 01:15:04,710 --> 01:15:08,757 Päeva lihtsalt kursor et juhistes, funktsioon. 1641 01:15:08,757 --> 01:15:11,090 Nii see ei meeldi sa möödaminnes kogu kood, nagu 1642 01:15:11,090 --> 01:15:12,173 kursor funktsiooni. 1643 01:15:12,173 --> 01:15:17,871 Ja siis, kui keegi klõpsab hiir, siis selle funktsiooni saab nn. 1644 01:15:17,871 --> 01:15:22,340 >> DAVIN: massiivid, siis on massiiv deklaratsiooni. 1645 01:15:22,340 --> 01:15:23,990 Siis massiivi panna asjad. 1646 01:15:23,990 --> 01:15:25,769 Real kiire, siis mida see välja printida? 1647 01:15:25,769 --> 01:15:27,060 Mida kolmas element olla? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> Sihtrühm: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> DAVIN: Parem oleks "JS". 1651 01:15:33,940 --> 01:15:35,760 Oota, mine tagasi. 1652 01:15:35,760 --> 01:15:37,100 Mis on pikkus? 1653 01:15:37,100 --> 01:15:38,117 >> Sihtrühm: Kolm. 1654 01:15:38,117 --> 01:15:38,950 DAVIN: Kolm, eks? 1655 01:15:38,950 --> 01:15:40,210 Täpselt, mida sa arvad. 1656 01:15:40,210 --> 01:15:42,072 OK, nüüd minna. 1657 01:15:42,072 --> 01:15:43,530 Massiivid, võite lisada neile asju. 1658 01:15:43,530 --> 01:15:45,395 Nii et sa ei saa minna kaugemale esialgse piire. 1659 01:15:45,395 --> 01:15:46,740 Lihtsalt midagi, mida meeles pidada. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, et nad on vähe natuke rohkem andestav poolest asjad 1661 01:15:49,760 --> 01:15:50,570 niimoodi. 1662 01:15:50,570 --> 01:15:54,260 Objektid, väga meeldib struktuurideks C, väga palju 1663 01:15:54,260 --> 01:15:56,590 nagu assotsiatiivne massiivid PHP. 1664 01:15:56,590 --> 01:15:58,720 Te olete kõik olnud kogemusi sellega. 1665 01:15:58,720 --> 01:16:01,880 Nii JSON, kui sa möödaminnes JSON edasi-tagasi p-set kaheksa, 1666 01:16:01,880 --> 01:16:03,260 see on sinu eesmärk. 1667 01:16:03,260 --> 01:16:06,290 >> Nii et jah, näiteks reaalne kiire näide. 1668 01:16:06,290 --> 01:16:07,880 Siin on objekti. 1669 01:16:07,880 --> 01:16:12,700 Kuidas sa viide selle objekti, nii lihtsalt reaalne kiire, 1670 01:16:12,700 --> 01:16:18,630 oletame, et ma tahtsin leida välja, OK, mis on muidugi? 1671 01:16:18,630 --> 01:16:20,681 Ja nii objekti nimi siin on CS50. 1672 01:16:20,681 --> 01:16:23,180 Ja siis kui mul oli assotsiatiivne massiiv, kuidas ma seda teen? 1673 01:16:23,180 --> 01:16:24,580 Ma tulen võtme abil, eks? 1674 01:16:24,580 --> 01:16:26,030 Nii et mul on nimi massiivi. 1675 01:16:26,030 --> 01:16:30,160 Mul on sulg, hinnapakkumisi, võti, lõpuks hinnapakkumisi, lõpuks sulg, 1676 01:16:30,160 --> 01:16:33,610 ja mis viide, et element sees minu assotsiatiivne massiiv. 1677 01:16:33,610 --> 01:16:37,646 Kuidas viidatud Muidugi sees minu eesmärk? 1678 01:16:37,646 --> 01:16:39,170 Kas keegi teab? 1679 01:16:39,170 --> 01:16:40,622 >> Sihtrühm: [kuuldamatu]. 1680 01:16:40,622 --> 01:16:41,784 >> DAVIN: Mis on? 1681 01:16:41,784 --> 01:16:42,700 Sihtrühm: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 DAVIN: Õigus jah. 1683 01:16:43,510 --> 01:16:45,320 Nii CS50.course. 1684 01:16:45,320 --> 01:16:48,770 Nii kuidas sa viide asju sees JSON objekti punktiga. 1685 01:16:48,770 --> 01:16:53,114 >> Sihtrühm: Võite kasutada ka massiivi süntaks. 1686 01:16:53,114 --> 01:16:54,050 >> DAVIN: OK, fine. 1687 01:16:54,050 --> 01:16:57,544 >> Gabe: Võite kasutada ka CS50 sulg, string, nagu jutumärke. 1688 01:16:57,544 --> 01:16:59,210 Sihtrühm: Ma arvan, et see on identne PHP. 1689 01:16:59,210 --> 01:17:00,293 Gabe: See on sama asi. 1690 01:17:00,293 --> 01:17:02,487 DAVIN: Fine! 1691 01:17:02,487 --> 01:17:03,945 Aga näed seda teistes kohtades. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 Jah, nii edasi. 1694 01:17:10,480 --> 01:17:13,330 See on see, mida ma just ütlesin. 1695 01:17:13,330 --> 01:17:17,840 Nii arvesse JavaScript jQuery näiteks. 1696 01:17:17,840 --> 01:17:19,440 Nii et see on minu DOM, eks? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 Real kiire, nii et mul on pea, hello world, keha. 1699 01:17:25,410 --> 01:17:26,160 Mul on nuppu. 1700 01:17:26,160 --> 01:17:27,870 Ta ütleb, "push mind," nii et ma tahan vajutada seda. 1701 01:17:27,870 --> 01:17:29,745 Ja ma tahan teha midagi kui see on klõpsatud. 1702 01:17:29,745 --> 01:17:31,220 Õigus kõrval. 1703 01:17:31,220 --> 01:17:34,630 >> Õigus, nii et see on minu JavaScript. 1704 01:17:34,630 --> 01:17:37,790 Nii jQuery on lihtsalt lihtsam kuidas kirjutada JavaScript. 1705 01:17:37,790 --> 01:17:40,920 Nii et see, ja mida ma lähen näitan sa järgmisena läheb jQuery, 1706 01:17:40,920 --> 01:17:41,930 on identsed. 1707 01:17:41,930 --> 01:17:43,990 Nii nad teevad sama asja. 1708 01:17:43,990 --> 01:17:45,974 Just jQuery kipub olema veidi lihtsam. 1709 01:17:45,974 --> 01:17:47,140 Inimesed kipuvad meeldib rohkem. 1710 01:17:47,140 --> 01:17:48,390 See on palju funktsioone. 1711 01:17:48,390 --> 01:17:49,830 Nii et inimesed kalduvad kasutama jQuery. 1712 01:17:49,830 --> 01:17:53,270 Te kõik kasutatud jQuery viimase p-set. 1713 01:17:53,270 --> 01:17:54,270 Mis siis see teeb? 1714 01:17:54,270 --> 01:17:56,580 Mida see JavaScript-- nii see on lihtsalt JavaScript. 1715 01:17:56,580 --> 01:17:57,430 Mida see teeb? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 Mida see teeb? 1718 01:18:03,450 --> 01:18:04,890 >> Nii et esimene, näete akna onload. 1719 01:18:04,890 --> 01:18:05,390 Õigus? 1720 01:18:05,390 --> 01:18:06,640 Nii et me ei näinud, et enne. 1721 01:18:06,640 --> 01:18:09,380 Nii et see läheb oodake kuni kogu akna koormusi. 1722 01:18:09,380 --> 01:18:12,770 Nii see läheb oodake HTML, kõik pilte laadida 1723 01:18:12,770 --> 01:18:13,770 Enne seda ei midagi. 1724 01:18:13,770 --> 01:18:16,050 Ütleme, et meie DOM on koormatud. 1725 01:18:16,050 --> 01:18:17,270 Kõik on olemas. 1726 01:18:17,270 --> 01:18:19,080 Mis siis juhtub? 1727 01:18:19,080 --> 01:18:19,922 Jah? 1728 01:18:19,922 --> 01:18:22,880 >> Sihtrühm: Button paistab. 1729 01:18:22,880 --> 01:18:25,201 >> DAVIN: nupp on juba olemas. 1730 01:18:25,201 --> 01:18:26,700 Jah, nii nupu juba olemas. 1731 01:18:26,700 --> 01:18:31,190 Kuid see ei ütle, OK, kui ma vajutan nuppu, 1732 01:18:31,190 --> 01:18:33,650 nii nupp on juba seal niimoodi HTML tag. 1733 01:18:33,650 --> 01:18:35,980 Oota, mine tagasi reaalne kiire. 1734 01:18:35,980 --> 01:18:39,470 See tag õigus siin on saab olema nupp juba. 1735 01:18:39,470 --> 01:18:40,810 Seal on juba nuppu. 1736 01:18:40,810 --> 01:18:44,120 Aga siis, JavaScript tag, siinsamas, 1737 01:18:44,120 --> 01:18:46,160 ta ütleb, OK, ma tahan saada elemendi ID, 1738 01:18:46,160 --> 01:18:50,300 nii otsingu nupp lihtsalt ütleb, OK, ma tahan kaardistada muutuja seda nuppu. 1739 01:18:50,300 --> 01:18:53,120 Nii et muutuja on lihtsalt lihtsam viis pääseda seda nuppu. 1740 01:18:53,120 --> 01:18:57,300 Ja ma ütlen, OK, kui ma vajutan, et nuppu, nii et kui ma vajutan seda elementi, 1741 01:18:57,300 --> 01:18:59,560 ja see element viitab nuppu, kui ma vajutan seda, 1742 01:18:59,560 --> 01:19:00,875 siis ma tahan helistada funktsioon. 1743 01:19:00,875 --> 01:19:03,500 Siin on üks neid anonüümseid funktsioonid me rääkisime. 1744 01:19:03,500 --> 01:19:04,840 >> Just helistada mõne funktsiooni. 1745 01:19:04,840 --> 01:19:08,840 Toas selle funktsiooni, põhiliselt midagi, mida me oleme näinud palju, tähelepanelik. 1746 01:19:08,840 --> 01:19:10,477 Sa klõpsa Otsi nupul. 1747 01:19:10,477 --> 01:19:12,060 See saab põhimõtteliselt on nuppu. 1748 01:19:12,060 --> 01:19:13,040 Sa klõpsake seda. 1749 01:19:13,040 --> 01:19:14,040 Sa saad selle teate. 1750 01:19:14,040 --> 01:19:14,850 X välja. 1751 01:19:14,850 --> 01:19:15,754 Nii see on. 1752 01:19:15,754 --> 01:19:16,254 Jah? 1753 01:19:16,254 --> 01:19:21,980 >> Sihtrühm: Nii et kui paned script [Kuuldamatu], script tag oma HTML? 1754 01:19:21,980 --> 01:19:24,300 >> DAVIN: Võid panna script tag sirge peas 1755 01:19:24,300 --> 01:19:30,667 sest sa oled seda onload. 1756 01:19:30,667 --> 01:19:32,000 See on ka see, et sa pead nuppu. 1757 01:19:32,000 --> 01:19:34,166 Nii see läheb oodake klõpsate midagi. 1758 01:19:34,166 --> 01:19:37,470 Aga onload on lihtsalt olema ohutu, teha et kõik koormused oma HTML 1759 01:19:37,470 --> 01:19:38,170 eelnevalt. 1760 01:19:38,170 --> 01:19:39,247 Jah? 1761 01:19:39,247 --> 01:19:40,330 Sa tahad midagi öelda? 1762 01:19:40,330 --> 01:19:41,080 >> Gabe: [kuuldamatu]. 1763 01:19:41,080 --> 01:19:42,485 DAVIN: Jah. 1764 01:19:42,485 --> 01:19:45,426 >> Sihtrühm: Nii onload väldib määratlemisel muutuja nuppu Otsi 1765 01:19:45,426 --> 01:19:49,930 lihtsalt öeldes document.getElementById otsingu nupp dot [kuuldamatu]. 1766 01:19:49,930 --> 01:19:52,320 >> DAVIN: Kindlasti, aga siis Sinu string lihtsalt muutub tohutu. 1767 01:19:52,320 --> 01:19:55,553 Täpselt nii, see on lihtsalt oleks lihtsam, jah. 1768 01:19:55,553 --> 01:19:56,053 Jah? 1769 01:19:56,053 --> 01:19:57,886 >> Sihtrühm: Kust me luua window.onload? 1770 01:19:57,886 --> 01:19:58,951 Või document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> DAVIN: Jah, on küll. 1772 01:20:00,590 --> 01:20:02,094 Jah, seal on, ma kontrollisin. 1773 01:20:02,094 --> 01:20:03,710 >> Gabe: Ei ole neil hooli. 1774 01:20:03,710 --> 01:20:06,970 >> DAVIN: OK, nii et ma lähen öelda niikuinii. 1775 01:20:06,970 --> 01:20:11,005 Ühesõnaga, lihtsalt üldiselt, nii window.onload ootab, kuni teie DOM kõik 1776 01:20:11,005 --> 01:20:12,180 HTML, koormusi. 1777 01:20:12,180 --> 01:20:13,513 See ootab, kuni teie pilte laadida. 1778 01:20:13,513 --> 01:20:14,930 See ootab, kuni kõik koormusi. 1779 01:20:14,930 --> 01:20:18,410 document.ready, see lihtsalt ootab, kuni teie DOM koormusi. 1780 01:20:18,410 --> 01:20:22,190 Kui HTML on kõik olemas, kui Sinu DOM on olemas, käivitub. 1781 01:20:22,190 --> 01:20:23,400 See on ainus erinevus. 1782 01:20:23,400 --> 01:20:24,700 >> Gabe: Quick meelerahu vaadata siit. 1783 01:20:24,700 --> 01:20:29,060 Niisiis võib seda vaadelda liiki nagu koodirida, eks? 1784 01:20:29,060 --> 01:20:33,600 Sest see on window.onload võrdub hunnik asju. 1785 01:20:33,600 --> 01:20:39,030 Kui JavaScript loeb seda, tõsi või väär, funktsioon saab täita. 1786 01:20:39,030 --> 01:20:40,020 False. 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 Mis juhtub siin, sa oled lihtsalt möödaminnes Selle funktsiooni anonüümse funktsioonid 1789 01:20:44,470 --> 01:20:45,300 et window.onload. 1790 01:20:45,300 --> 01:20:48,480 Ja siis millal see tegelikult saada täidetud? 1791 01:20:48,480 --> 01:20:49,600 Kui aken koormusi. 1792 01:20:49,600 --> 01:20:50,420 See on sündmus. 1793 01:20:50,420 --> 01:20:52,460 Nii et jus t asi, mida me oleme räägime varem, eks? 1794 01:20:52,460 --> 01:20:54,580 Nii, kui toimub sündmus, funktsiooni juhtub. 1795 01:20:54,580 --> 01:20:55,746 Sama asi onclick. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> DAVIN: OK, nii et keegi võttis ära document.ready. 1798 01:21:03,130 --> 01:21:04,698 Aga see on täpselt same-- 1799 01:21:04,698 --> 01:21:06,864 Sihtrühm: dollari märk, mis on document.ready. 1800 01:21:06,864 --> 01:21:07,710 See on otsetee. 1801 01:21:07,710 --> 01:21:08,501 >> DAVIN: Oh, see on? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 OK, nii et see vahend document.ready, shortcut. 1804 01:21:15,500 --> 01:21:19,660 Kuid see on sama window.onload välja arvatud, et väike erinevus 1805 01:21:19,660 --> 01:21:20,680 Ma rääkisin sulle. 1806 01:21:20,680 --> 01:21:21,870 Ja see on jQuery. 1807 01:21:21,870 --> 01:21:25,190 Nii et see on täpselt sama asi-- see on JavaScript. 1808 01:21:25,190 --> 01:21:29,500 See on lihtsalt-- mõned inimesed arvavad, et see kui rohkem kerge, õhuke versioon 1809 01:21:29,500 --> 01:21:32,370 et on palju funktsioone et sa ilmselt kasutama. 1810 01:21:32,370 --> 01:21:34,500 Nii et see ei täpselt sama asi. 1811 01:21:34,500 --> 01:21:37,110 >> Nii asju omamoodi meelde. 1812 01:21:37,110 --> 01:21:40,364 Nii teiste Näiteks oleme oli document.getElementById, 1813 01:21:40,364 --> 01:21:42,280 seega oli meil selle pika string, mis läheb aina 1814 01:21:42,280 --> 01:21:44,290 element tahes ID ta on. 1815 01:21:44,290 --> 01:21:46,470 See on asendada käesoleva üleskutse siin. 1816 01:21:46,470 --> 01:21:50,860 Nii et näete dollari märk, siis sa näed quote, hashtag. 1817 01:21:50,860 --> 01:21:52,370 Hashtag on alati valijat. 1818 01:21:52,370 --> 01:21:54,730 Ta ütleb, OK, see on pistmist ID. 1819 01:21:54,730 --> 01:21:56,120 Mis valija klassi? 1820 01:21:56,120 --> 01:21:57,190 >> Sihtrühm: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> DAVIN: Dot, eks. 1822 01:21:57,960 --> 01:22:01,950 Kui sa oled lihtsalt läheb Valige silt, mis see on? 1823 01:22:01,950 --> 01:22:03,310 See on lihtsalt silt, täpselt. 1824 01:22:03,310 --> 01:22:05,560 Ja sa võiksid kasutada, et siin samuti. 1825 01:22:05,560 --> 01:22:08,560 >> Gabe: Ja tag, me mõtleme nagu div, näiteks või pea. 1826 01:22:08,560 --> 01:22:11,500 >> DAVIN: asutusele või p või midagi sellist jah. 1827 01:22:11,500 --> 01:22:14,390 Nii et siin, OK, selle asemel, et öelda: document.getElementById, 1828 01:22:14,390 --> 01:22:16,500 see on lihtsalt täpselt sama asi. 1829 01:22:16,500 --> 01:22:17,990 Lihtsalt jQuery, see on lühem. 1830 01:22:17,990 --> 01:22:19,860 Nii et see on lihtsam. 1831 01:22:19,860 --> 01:22:23,420 Niisiis, mitte rohkem onclick, klõpsake lihtsalt. 1832 01:22:23,420 --> 01:22:26,320 jQuery funktsiooni, nimetame seda funktsiooni. 1833 01:22:26,320 --> 01:22:27,580 Alert on täpselt sama. 1834 01:22:27,580 --> 01:22:29,452 Nii et see on natuke väiksem või natuke 1835 01:22:29,452 --> 01:22:32,410 lühem, veidi bit-- inimesed arvavad see on natuke lihtsam kirjutada, 1836 01:22:32,410 --> 01:22:34,600 natuke lihtsam aru saada. 1837 01:22:34,600 --> 01:22:35,640 Aga see on jQuery. 1838 01:22:35,640 --> 01:22:37,887 Paljud inimesed saavad vähe natuke segaduses ja mures 1839 01:22:37,887 --> 01:22:40,220 ja nad arvavad, OK, jQuery erineb JavaScript. 1840 01:22:40,220 --> 01:22:42,136 Mul on meeles pidada neid kaks eri asja. 1841 01:22:42,136 --> 01:22:42,740 See ei ole. 1842 01:22:42,740 --> 01:22:45,315 Ma mõtlen, et see on teistsugune süntaks. 1843 01:22:45,315 --> 01:22:46,970 Aga jQuery on JavaScript. 1844 01:22:46,970 --> 01:22:50,050 See on lihtsalt näiliselt parem versioon, et 1845 01:22:50,050 --> 01:22:51,967 võib olla lihtsam aru, mida inimesed kasutavad. 1846 01:22:51,967 --> 01:22:53,716 Gabe: Jah, oleks aus, et dollari märk 1847 01:22:53,716 --> 01:22:57,240 et näete jQuery, see on lihtsalt funktsiooni nime, et jQuery määratleb. 1848 01:22:57,240 --> 01:22:58,614 See ei ole midagi erilist. 1849 01:22:58,614 --> 01:23:03,140 Kas see on lihtsalt nime funktsiooni just nagu sina võiks määratleda dollari märk. 1850 01:23:03,140 --> 01:23:05,670 >> DAVIN: Jah, nii et sellest rääkinud. 1851 01:23:05,670 --> 01:23:06,680 Mõned kasulikud asjad. 1852 01:23:06,680 --> 01:23:10,414 Ma otsisin tagasi vana viktoriine. 1853 01:23:10,414 --> 01:23:13,080 Viimase paari viktoriinid, et nad pole pidid kasutama asjad niimoodi. 1854 01:23:13,080 --> 01:23:15,230 Nii document.ready, nii veenduge, et kõik on 1855 01:23:15,230 --> 01:23:17,410 laetud, enne kui hakkate asju. 1856 01:23:17,410 --> 01:23:20,120 Vali ID või valige klassi, ta tahaks lihtsalt 1857 01:23:20,120 --> 01:23:24,020 olema quote dot mõned klassi lõpus tsiteerida. 1858 01:23:24,020 --> 01:23:26,580 Esita, nii et kui sa oled plangil ja kõne 1859 01:23:26,580 --> 01:23:28,830 Selle funktsiooni pärast vormi leiab. 1860 01:23:28,830 --> 01:23:34,210 Väärtus, et oletame, et mul oli vorm esitamise, nagu kasutaja nimi, e-posti, 1861 01:23:34,210 --> 01:23:34,950 mis iganes. 1862 01:23:34,950 --> 01:23:36,010 Mul oli teksti kasti. 1863 01:23:36,010 --> 01:23:37,670 Nii et ma kirjutades, et teksti kasti. 1864 01:23:37,670 --> 01:23:42,170 Noh, kui sa tahad saada raha välja, et teksti kasti sa kasutad dot val. 1865 01:23:42,170 --> 01:23:44,050 Ja siis, siia alla dot HTML on sama 1866 01:23:44,050 --> 01:23:47,710 on nagu dokumendi dot getElementByld dot innerHTML. 1867 01:23:47,710 --> 01:23:50,890 Nii et läheb tagasi sa HTML sellest ID. 1868 01:23:50,890 --> 01:23:55,080 Siin lihtsalt kasutada mõned ID või mis iganes dot HTML. 1869 01:23:55,080 --> 01:23:56,930 See saad HTML sellest element. 1870 01:23:56,930 --> 01:24:00,130 Kui sa tahad siis muuda seda HTML saate andke seda midagi. 1871 01:24:00,130 --> 01:24:05,600 Nii et sa tahaks olla nagu dot HTML ja seejärel sees, hinnapakkumisi, uus HTML või midagi. 1872 01:24:05,600 --> 01:24:07,490 >> Gabe: OK, nii AJAX. 1873 01:24:07,490 --> 01:24:10,347 Mulle meeldib mõista AJAX tõesti hästi. 1874 01:24:10,347 --> 01:24:12,430 Nii et ma tahan, et sa poisid mõista AJAX tõesti hästi. 1875 01:24:12,430 --> 01:24:14,221 Sest kui te seda teete, sa oled päris palju läheb 1876 01:24:14,221 --> 01:24:16,810 mõista kõike, mis on pistmist HTTP, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript kuna kõik tuleb kokku AJAX. 1878 01:24:21,080 --> 01:24:25,130 AJAX ei ole keelt. 1879 01:24:25,130 --> 01:24:27,000 AJAX on tehnika. 1880 01:24:27,000 --> 01:24:31,690 Ja ta kasutab palju erinevaid tööriistu. 1881 01:24:31,690 --> 01:24:35,090 AJAX tähistab asünkroonne JavaScript XML. 1882 01:24:35,090 --> 01:24:36,730 Nii meetod, keele, andmeid. 1883 01:24:36,730 --> 01:24:40,610 >> Seega on peamine keel, mida me kasutame AJAX vallandada kõik 1884 01:24:40,610 --> 01:24:42,830 ja kõigega hakkama saada Hiljem on JavaScript. 1885 01:24:42,830 --> 01:24:45,160 Sellepärast see on seotud väga lähedal JavaScript. 1886 01:24:45,160 --> 01:24:49,810 Ja siis asünkroonne on sest me ei tee seda 1887 01:24:49,810 --> 01:24:51,980 korraga, kui me lehte laadida. 1888 01:24:51,980 --> 01:24:57,190 See on asi, mida me saame teha asju omamoodi paralleelselt. 1889 01:24:57,190 --> 01:24:59,725 Põhiidee AJAX on see, et sa tahad 1890 01:24:59,725 --> 01:25:02,170 see, et saaksin konkreetset teavet. 1891 01:25:02,170 --> 01:25:06,450 Näiteks, kui sa kirjutad uus kasutaja nime, kui sa registreerid kasutajanime 1892 01:25:06,450 --> 01:25:08,520 minu kasutaja nimi on abc123. 1893 01:25:08,520 --> 01:25:11,671 Ja seejärel, lõpus vormis, pead sa klikkima Edasta. 1894 01:25:11,671 --> 01:25:14,420 Ja see pidi minema server, ja siis vaadata, kas andmebaasis 1895 01:25:14,420 --> 01:25:15,594 abc123 on juba olemas. 1896 01:25:15,594 --> 01:25:18,510 Ja kui see on juba olemas, ta ütleb, Kasutaja nimi on juba andmebaasis. 1897 01:25:18,510 --> 01:25:21,010 Ja nad, sa pead täitma välja kogu vormi uuesti. 1898 01:25:21,010 --> 01:25:23,110 Ja see oli tõesti halb. 1899 01:25:23,110 --> 01:25:25,440 >> Ja siis inimesed ütlevad, OK, miks me ei võiks lihtsalt 1900 01:25:25,440 --> 01:25:29,560 teha väike HTTP taotluse vaid vaadata et näha, kas see kasutaja on andmebaasis 1901 01:25:29,560 --> 01:25:32,080 Enne kasutaja oli esitada kogu vormi? 1902 01:25:32,080 --> 01:25:36,350 Nii näiteks, kui kasutaja lõpetab kirjutades abc123, 1903 01:25:36,350 --> 01:25:39,660 Lähme serveriga vähe natuke ja lihtsalt saada õige või vale 1904 01:25:39,660 --> 01:25:43,080 serverist, kas see on kehtiv kasutajanimi või mitte. 1905 01:25:43,080 --> 01:25:49,250 OK, nii et on üks peamisi kasutab AJAX tänapäeval ikka. 1906 01:25:49,250 --> 01:25:52,130 >> DAVIN: Nii reaalne kiire, in Ajax kõne jQuery, 1907 01:25:52,130 --> 01:25:54,770 siis võiks tähendada, et teil tahan olla sünkroonne. 1908 01:25:54,770 --> 01:25:56,330 Te ei tohi seda teha. 1909 01:25:56,330 --> 01:25:57,640 Aga sa ei saa seda teha. 1910 01:25:57,640 --> 01:25:59,277 Ja kui sa tegid seda, mis juhtub? 1911 01:25:59,277 --> 01:26:01,610 Noh, näiteks, kui sa oled saada uudiseid või mis iganes, 1912 01:26:01,610 --> 01:26:05,464 Teie brauser on lihtsalt läheb oodake kuni selle kogu kõne on lõpetatud 1913 01:26:05,464 --> 01:26:08,130 asemel, et lasta teil teha muid asju õigesti, kui klõpsate seda. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> Gabe: See ei paneks enam. 1916 01:26:17,115 --> 01:26:19,681 Oh my god. 1917 01:26:19,681 --> 01:26:20,180 Sorry! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 Yup. 1920 01:26:23,601 --> 01:26:25,350 "In the past, Klient on vaja taotluse 1921 01:26:25,350 --> 01:26:26,840 Kogu sisu veebilehel. " 1922 01:26:26,840 --> 01:26:28,210 See, mida ma ütlesin. 1923 01:26:28,210 --> 01:26:30,070 See võimaldab meil saata täiendavaid GET või POST 1924 01:26:30,070 --> 01:26:32,140 taotlusi ilma reload oma brauserit. 1925 01:26:32,140 --> 01:26:34,806 Nii et päeva lõpuks, me oleme tegelikult teeb HTTP taotlusi 1926 01:26:34,806 --> 01:26:35,740 Siin saab JavaScript. 1927 01:26:35,740 --> 01:26:39,700 Sest enne, me ainult kasutatud JavaScript muuta HTML juba tekkinud. 1928 01:26:39,700 --> 01:26:43,110 Ja nüüd, me ei kasuta seda liides koos veebiserverite samuti. 1929 01:26:43,110 --> 01:26:46,140 Kuidas see juhtub on meil klient. 1930 01:26:46,140 --> 01:26:47,340 Davin on klient. 1931 01:26:47,340 --> 01:26:50,797 Ja tal on olemas kõik JavaScript näidata, kuna HTML on loll. 1932 01:26:50,797 --> 01:26:51,630 JavaScript on tark. 1933 01:26:51,630 --> 01:26:54,690 Nii Davin Davin on tema smart osa ja tema loll osa. 1934 01:26:54,690 --> 01:26:57,590 Ta läheb üles kasutama oma smart osa nüüd. 1935 01:26:57,590 --> 01:27:00,860 Ta läheb kasutama JavaScript taotlema, näiteks 1936 01:27:00,860 --> 01:27:04,340 kas abc123 on Andmebaasi või mitte. 1937 01:27:04,340 --> 01:27:08,450 >> Nii Davin, siis sa lihtsalt Kirjuta mulle HTTP taotluse. 1938 01:27:08,450 --> 01:27:09,197 Aitäh. 1939 01:27:09,197 --> 01:27:10,530 Nii ta just saatis HTTP taotluse. 1940 01:27:10,530 --> 01:27:11,270 Sa näed seda? 1941 01:27:11,270 --> 01:27:14,700 Ja see on ainult ühtemoodi et kõigi HTTP päringute saatmist. 1942 01:27:14,700 --> 01:27:16,830 Brauser, Google Chrome või midagi, on 1943 01:27:16,830 --> 01:27:19,570 näeme, et Davin on üritad saata HTTP taotluse, 1944 01:27:19,570 --> 01:27:20,930 aita hm natuke. 1945 01:27:20,930 --> 01:27:23,950 Ja seda lähe kõik viis server. 1946 01:27:23,950 --> 01:27:27,370 Nüüd, server läheb on PHP siin või mõnes muus keeles. 1947 01:27:27,370 --> 01:27:29,990 Täpselt nagu tavaline HTTP taotluse. 1948 01:27:29,990 --> 01:27:31,950 See on päris palju normaalse HTTP taotluse. 1949 01:27:31,950 --> 01:27:33,658 >> Ja siis, server ei ütle, OK, 1950 01:27:33,658 --> 01:27:37,270 Davin tahab mind kontrollida, kas Selle abc123 on andmebaasis. 1951 01:27:37,270 --> 01:27:38,310 Mine räägi mudel. 1952 01:27:38,310 --> 01:27:41,310 Mudel ütleb, et see ei ole. abc123 on hea kasutaja nimi. 1953 01:27:41,310 --> 01:27:47,940 Ja siis, web server läheb kasutada PHP muuta mingi fail. 1954 01:27:47,940 --> 01:27:52,280 See võib olla sõna otseses mõttes lihtsalt faili mis sisaldab "jah", või "ei, 1955 01:27:52,280 --> 01:27:53,315 või midagi sellist. 1956 01:27:53,315 --> 01:27:54,190 See võib olla mis tahes faili. 1957 01:27:54,190 --> 01:27:57,080 >> See võiks olla nagu ma lähen Kirjuta Davin pildi pardi 1958 01:27:57,080 --> 01:28:01,200 kas see on andmebaasi ja Kirjuta pildi hamster 1959 01:28:01,200 --> 01:28:02,420 kui see ei ole andmebaasis. 1960 01:28:02,420 --> 01:28:04,294 See oleks selline loll, kuid see töötab. 1961 01:28:04,294 --> 01:28:07,030 OK, nii et ma saadan pardi Davin. 1962 01:28:07,030 --> 01:28:08,150 Davin sain pardi. 1963 01:28:08,150 --> 01:28:13,330 Ja nüüd, kes läheb hakkama part? 1964 01:28:13,330 --> 01:28:16,390 Davin tark osa uuesti nii JavaScript, eks? 1965 01:28:16,390 --> 01:28:18,620 JavaScript keerutas taotluse ja JavaScript 1966 01:28:18,620 --> 01:28:22,300 läheb vastu nõudmisel ja tõlgendada seda mingil kujul. 1967 01:28:22,300 --> 01:28:26,630 >> Ja selles mõttes, et see läheb öelda, OK, kui part, siis ma olen hea. 1968 01:28:26,630 --> 01:28:30,770 Kui hamster, siis ma lähen öelda, ei, kasutajanimi on juba 1969 01:28:30,770 --> 01:28:31,970 olemas andmebaasis. 1970 01:28:31,970 --> 01:28:33,845 Aga tavaliselt, et sa pole läheb Kirjuta part. 1971 01:28:33,845 --> 01:28:36,740 Sa lähed saata midagi veidi targemaks. 1972 01:28:36,740 --> 01:28:40,320 Ja mida me kasutame on XML. 1973 01:28:40,320 --> 01:28:42,690 Ja viimasel ajal me kasutame JSON. 1974 01:28:42,690 --> 01:28:45,629 JSON on lihtsalt JavaScript Objekti Märge, mille 1975 01:28:45,629 --> 01:28:47,670 on põhimõtteliselt saad Kogu JavaScript objekti. 1976 01:28:47,670 --> 01:28:50,820 Ja kui panete selle faili lihtsalt meeldib et CS50 objekt, mis te poisid nägid. 1977 01:28:50,820 --> 01:28:53,090 Sa pane see fail ja saadad selle üle Davin. 1978 01:28:53,090 --> 01:28:55,850 >> Nii et kui ma oleks teha JavaScript objekti 1979 01:28:55,850 --> 01:28:59,570 ja lihtsalt öelda, kasutaja olemas, jah. 1980 01:28:59,570 --> 01:29:01,630 Või kasutaja olemas, ei ole. 1981 01:29:01,630 --> 01:29:02,810 Ja saatke see talle tagasi. 1982 01:29:02,810 --> 01:29:03,830 Ja miks JSON? 1983 01:29:03,830 --> 01:29:07,330 Sest inimene kes on saanud käesoleva on 1984 01:29:07,330 --> 01:29:10,030 kavatsete kasutada JavaScript hakkama vastust. 1985 01:29:10,030 --> 01:29:14,970 Ja JavaScript töötab nii hästi, sest seda nimetatakse JavaScript Object Märge. 1986 01:29:14,970 --> 01:29:15,470 Õigus? 1987 01:29:15,470 --> 01:29:19,660 Nii saab ta lihtsalt helistada funktsioon ja saada see kena objekti vastust. 1988 01:29:19,660 --> 01:29:22,890 Ja siis ta läheb tea, kas et kasutaja on andmebaasis või mitte. 1989 01:29:22,890 --> 01:29:25,230 >> Nii et näete, see kõik tulevad koos veebiserver, 1990 01:29:25,230 --> 01:29:28,450 ja siis seal on üks HTTP taotluse ja üks HTTP vastuse ja puha. 1991 01:29:28,450 --> 01:29:30,600 Seega veenduge, et te poisid mõista seda AJAX kõne 1992 01:29:30,600 --> 01:29:37,260 sest see aitab teil mõista kõiki mõistete me räägime. 1993 01:29:37,260 --> 01:29:40,260 >> Nii et siin on näiteks AJAX koos jQuery. 1994 01:29:40,260 --> 01:29:42,130 Ja siin me teeme get JSON. 1995 01:29:42,130 --> 01:29:45,660 Nii et me ei taha saada pilt kass siin, või part. 1996 01:29:45,660 --> 01:29:48,110 Me püüame saada JSON faili. 1997 01:29:48,110 --> 01:29:51,184 Ja siis me ootama see on tehtud, dot teinud. 1998 01:29:51,184 --> 01:29:52,850 See tähendab, et ma olen oodanud vastust. 1999 01:29:52,850 --> 01:29:54,180 See võib võtta natuke aega. 2000 01:29:54,180 --> 01:29:56,360 Siis näed natuke laadimist. 2001 01:29:56,360 --> 01:29:59,340 Kui sa tahad teha, et oma kodulehel. 2002 01:29:59,340 --> 01:30:01,440 Nii dot tehtud, ja mis siis juhtub siis, kui ta on teinud? 2003 01:30:01,440 --> 01:30:04,040 Jätate anonüümselt funktsiooni, just nagu me nägime enne. 2004 01:30:04,040 --> 01:30:07,800 Sest teha on sündmus, vaid nagu klikkides hiirt või mis iganes, 2005 01:30:07,800 --> 01:30:08,710 jQuery. 2006 01:30:08,710 --> 01:30:13,710 Nii et sa läbima selle funktsiooni andmete, teksti, staatus ja jqXHR. 2007 01:30:13,710 --> 01:30:15,790 Ja põhimõtteliselt see, vaid mõned muutujad 2008 01:30:15,790 --> 01:30:22,160 mida saab kasutada hiljem on staatuse HTTP päring, 2009 01:30:22,160 --> 01:30:24,470 andmed, et see läheb saata sulle tagasi. 2010 01:30:24,470 --> 01:30:28,740 Siis saab hiljem tõlgendada ja midagi sisukat ta. 2011 01:30:28,740 --> 01:30:30,240 Ja kui see ei õnnestu, siis võib see ebaõnnestub? 2012 01:30:30,240 --> 01:30:33,780 Noh, kui HTTP taotluse annab sa 500 või midagi sellist. 2013 01:30:33,780 --> 01:30:37,420 Siis see läheb sulle öelda staatus, millist rike, mis oli, 2014 01:30:37,420 --> 01:30:38,420 ja igasuguseid asju. 2015 01:30:38,420 --> 01:30:40,630 Sa pead veenduma, hakkama Mõlemal juhul 2016 01:30:40,630 --> 01:30:42,770 muidu programm läheb hulluks. 2017 01:30:42,770 --> 01:30:45,820 >> DAVIN: Nii et jah, see on täpselt mida sa nägid oma viimase p-set. 2018 01:30:45,820 --> 01:30:49,720 Tegelik AJAX kõne on get JSON. 2019 01:30:49,720 --> 01:30:50,587 See on üleskutse. 2020 01:30:50,587 --> 01:30:52,920 Ja siis, dot teinud on nagu kontrollib ta, kas see on edukas. 2021 01:30:52,920 --> 01:30:55,620 Kui see õnnestub, soovid teha midagi koos andmetega. 2022 01:30:55,620 --> 01:30:59,290 Sa saad tagasi, et JSON taotluse andmed. 2023 01:30:59,290 --> 01:31:00,600 See on see, mida sa saad tagasi. 2024 01:31:00,600 --> 01:31:04,470 Nii et kui sa mäletad oma p-set, Palju sa olid nagu andmete sulg i 2025 01:31:04,470 --> 01:31:06,302 või mis iganes, dot link või pealkirja järgi. 2026 01:31:06,302 --> 01:31:08,260 Ükskõik tuleb tagasi sellest JSON, olenemata 2027 01:31:08,260 --> 01:31:11,020 väljad on selles JSON objekti, see on, mida te saate tagasi. 2028 01:31:11,020 --> 01:31:12,394 Andmed on, mida sa saada tagasi. 2029 01:31:12,394 --> 01:31:15,510 Tekst staatuse, lihtsalt midagi, mis saate teada, mis juhtus. 2030 01:31:15,510 --> 01:31:20,570 Ja siis, jqXHR, see on lihtsalt jQuery XML HTTP taotluse. 2031 01:31:20,570 --> 01:31:21,990 See on nagu objekt. 2032 01:31:21,990 --> 01:31:23,932 Ja siis ei, nagu Gabe ütles. 2033 01:31:23,932 --> 01:31:27,140 Gabe: Meie väike näide abc123 lihtsalt vaadata, kas see on andmebaasi 2034 01:31:27,140 --> 01:31:32,260 või mitte, andmeid oleks midagi teeksin, kui andmed dot kasutajanime olemas, 2035 01:31:32,260 --> 01:31:37,720 mis on see, mida teie PHP genereeritakse teile, kui andmed dot kasutajanime olemas, siis 2036 01:31:37,720 --> 01:31:40,880 Ma lähen märku, kasutaja nimi on juba olemas. 2037 01:31:40,880 --> 01:31:44,300 Else, ma lihtsalt lase kasutaja toimida vormi täitmisel. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK, turvalisus, lahe. 2040 01:31:50,820 --> 01:31:52,060 >> DAVIN: Tahad mind? 2041 01:31:52,060 --> 01:31:54,500 >> Gabe: Mulle meeldib see. 2042 01:31:54,500 --> 01:31:57,680 Nii et kui miski tundub tuttav. 2043 01:31:57,680 --> 01:31:59,750 Me oleme peaaegu lõpetanud. 2044 01:31:59,750 --> 01:32:02,670 Nii et see on lihtsalt näide kutid nägid klassis. 2045 01:32:02,670 --> 01:32:04,860 Sa kasutasid argv1 siin. 2046 01:32:04,860 --> 01:32:06,460 See on nagu käsurea argument. 2047 01:32:06,460 --> 01:32:09,270 Ja me mälukoht kopeerimine, et puhvrisse suurus 12. 2048 01:32:09,270 --> 01:32:12,560 Milles probleem siin? 2049 01:32:12,560 --> 01:32:13,660 Buffer overflow! 2050 01:32:13,660 --> 01:32:15,400 Kuna meil on puhvri suurus 12. 2051 01:32:15,400 --> 01:32:18,400 argv1 võib olla suurusest kaks miljardit. 2052 01:32:18,400 --> 01:32:19,960 Me ei tee mingit piiri kontrollimiseks. 2053 01:32:19,960 --> 01:32:24,970 Nii et me võiks kopeerida palju mälu. 2054 01:32:24,970 --> 01:32:28,630 Ja me eriti halb midagi. 2055 01:32:28,630 --> 01:32:32,600 Mida me saaksime teha, et on väga tähenda sel juhul? 2056 01:32:32,600 --> 01:32:33,278 Jah? 2057 01:32:33,278 --> 01:32:36,528 Sihtrühm: Osa kaks miljardit asju sisaldab käivitatavat koodi, mis tagastab 2058 01:32:36,528 --> 01:32:38,127 [Kuuldamatu]. 2059 01:32:38,127 --> 01:32:38,710 Gabe: Täpselt. 2060 01:32:38,710 --> 01:32:41,110 Nii et selline asi, et inimesed kasutavad 2061 01:32:41,110 --> 01:32:43,344 Jailbreak iPhone, näiteks. 2062 01:32:43,344 --> 01:32:44,260 Nii et selline asi. 2063 01:32:44,260 --> 01:32:48,610 Kuna saate lihtsalt teha seadme täidavad mis tahes koodi, mis sulle meeldib. 2064 01:32:48,610 --> 01:32:50,247 Fix, nii fix on lihtne. 2065 01:32:50,247 --> 01:32:51,330 Just kontrollida piire. 2066 01:32:51,330 --> 01:32:53,455 Sa kontrollige null, sest me alati kontrollida null 2067 01:32:53,455 --> 01:32:54,940 kui me tegeleme stringe. 2068 01:32:54,940 --> 01:32:57,840 Ja siis, kui te võtate string pikkusega varem. 2069 01:32:57,840 --> 01:33:00,150 Ja kui string pikkus on kehtiv string 2070 01:33:00,150 --> 01:33:03,700 pikkusega, mis on lähemal 0 ja 12, siis oled hea. 2071 01:33:03,700 --> 01:33:07,144 >> DAVIN: Kui sa ei märgi jaoks null, reaalne kiire, mis juhtub? 2072 01:33:07,144 --> 01:33:07,810 Seda saad SEG süü. 2073 01:33:07,810 --> 01:33:10,850 Miks see SEG süü? 2074 01:33:10,850 --> 01:33:12,510 Kuna olete helistaja strlen on null. 2075 01:33:12,510 --> 01:33:13,010 Gabe: Jah. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 Õige või vale, kasutades üht parool on hea mõte. 2078 01:33:19,630 --> 01:33:20,430 >> Sihtrühm: False. 2079 01:33:20,430 --> 01:33:21,150 >> Gabe: False. 2080 01:33:21,150 --> 01:33:23,870 Kasuta palju paroole ja suur, pikk ones. 2081 01:33:23,870 --> 01:33:26,050 Tabalukk ikoonid turvalisuse tagamiseks. 2082 01:33:26,050 --> 01:33:27,080 >> Sihtrühm: False. 2083 01:33:27,080 --> 01:33:27,749 >> Gabe: False. 2084 01:33:27,749 --> 01:33:28,790 See ei tähenda midagi. 2085 01:33:28,790 --> 01:33:30,480 See on lihtsalt ikooni. 2086 01:33:30,480 --> 01:33:32,824 SSL kaitseb mees keset rünnak. 2087 01:33:32,824 --> 01:33:33,490 Sihtrühm: False. 2088 01:33:33,490 --> 01:33:34,110 Gabe: False. 2089 01:33:34,110 --> 01:33:35,355 OK, nii et kõik need on valed. 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 Nice. 2092 01:33:39,490 --> 01:33:40,220 [Kuuldamatu] 2093 01:33:40,220 --> 01:33:42,500 Tahad sellest rääkida? 2094 01:33:42,500 --> 01:33:43,259 Sinu kord. 2095 01:33:43,259 --> 01:33:45,050 DAVIN: ründed, mees keskelt. 2096 01:33:45,050 --> 01:33:47,134 Mis mees keset rünnak? 2097 01:33:47,134 --> 01:33:48,050 Sihtrühm: [kuuldamatu]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 DAVIN: Kui saadate HTTP taotluse, võivad nad seda teha, eks? 2100 01:33:54,020 --> 01:33:57,890 Aga kui saadate HTTPS, nad ilmselt ei saa seda teha. 2101 01:33:57,890 --> 01:33:59,952 Seal on palju punkte koos oma ühendus. 2102 01:33:59,952 --> 01:34:00,660 Sul on ruuterid. 2103 01:34:00,660 --> 01:34:01,746 Sul on DNS servereid. 2104 01:34:01,746 --> 01:34:04,120 Kui keegi suudab füüsiliselt vaata, mida saadate, 2105 01:34:04,120 --> 01:34:06,140 nii et keegi suudab tegelikult teie vahele, 2106 01:34:06,140 --> 01:34:08,840 klient ja server, ja on näha, mida saadate, 2107 01:34:08,840 --> 01:34:10,298 see on mees keset rünnak. 2108 01:34:10,298 --> 01:34:14,287 Nii, et näha mida sa üritad saada alates server, või oskab see-- hullem, 2109 01:34:14,287 --> 01:34:16,620 sa võiksid näha küpsiseid või midagi sellist. 2110 01:34:16,620 --> 01:34:19,290 >> Nii näiteks, kui te ei kasuta SSL ta 2111 01:34:19,290 --> 01:34:21,900 võib olla võimalik näha Teie sessioon ID küpsised. 2112 01:34:21,900 --> 01:34:25,460 Ja seda nimetatakse sessiooni kaaperdamise sest ta näeb oma ID küpsiseid, 2113 01:34:25,460 --> 01:34:28,317 ja siis ta on võimeline minema, et kodulehel ja teeselda, et olla teile. 2114 01:34:28,317 --> 01:34:31,150 Sest nii nagu PHP, mäletan kui me sisse loginud, mida me teeme? 2115 01:34:31,150 --> 01:34:33,340 Seame sessiooni ID võrdub ID. 2116 01:34:33,340 --> 01:34:34,810 Nii, mis tuvastab teie jaoks. 2117 01:34:34,810 --> 01:34:38,300 Sellepärast näed oma portfelli ja mitte kõigil teistelgi portfelli. 2118 01:34:38,300 --> 01:34:42,320 >> Noh, kui ma olen suutnud saada, et küpsis, siis ma saan logivad sellele lehele. 2119 01:34:42,320 --> 01:34:45,380 Ja siis ma lihtsalt näha oma kraami ja alustada ostu ja müügi kraami. 2120 01:34:45,380 --> 01:34:46,800 Nii et istungil ärandamine. 2121 01:34:46,800 --> 01:34:50,810 Aga sa ei peaks saama mina-- siis saab kasutada mees keset rünnak 2122 01:34:50,810 --> 01:34:52,290 isegi kui nad kasutavad SSL. 2123 01:34:52,290 --> 01:34:53,520 Aga sa ei peaks saama. 2124 01:34:53,520 --> 01:34:56,580 Kui nad kasutavad SSL, sa ei saa istungil kaaperdada. 2125 01:34:56,580 --> 01:34:58,927 Miks? 2126 01:34:58,927 --> 01:35:01,135 Sest see kõik on krüpteeritud, õige? kui see on krüpteeritud, 2127 01:35:01,135 --> 01:35:03,509 ja ma olen ikka mees keskel, ma ikka oma andmed. 2128 01:35:03,509 --> 01:35:04,279 See on hea. 2129 01:35:04,279 --> 01:35:05,070 Aga see on krüpteeritud. 2130 01:35:05,070 --> 01:35:07,750 Nii et ma ei saa tõesti kasutada. 2131 01:35:07,750 --> 01:35:09,840 Nii et kaks. 2132 01:35:09,840 --> 01:35:11,544 >> Real kiire, rist saidi taotluse võltsimine. 2133 01:35:11,544 --> 01:35:13,960 See on lihtsalt, kui seal on link ja et link teeb midagi 2134 01:35:13,960 --> 01:35:14,890 et te ei arva, et peaks tegema. 2135 01:35:14,890 --> 01:35:18,150 Nii näiteks, kui oli seos kavatsen osta aktsiaid või müüa varud, 2136 01:35:18,150 --> 01:35:19,360 ja sa ei tea seda. 2137 01:35:19,360 --> 01:35:22,040 Sa klikkinud lingile, saatis ostis 2138 01:35:22,040 --> 01:35:24,240 või müüakse midagi, mis sa ei tahtnud seda teha. 2139 01:35:24,240 --> 01:35:25,120 See on see. 2140 01:35:25,120 --> 01:35:30,720 >> Cross Site Scripting, et siin, sa möödaminnes läbi muutuja q, 2141 01:35:30,720 --> 01:35:33,510 lähitulede asemel mingi väärtus, ehk q on nagu nimi. 2142 01:35:33,510 --> 01:35:36,560 Nii lähitulede asemel q võrdsete Davin või midagi sellist, 2143 01:35:36,560 --> 01:35:38,740 Kui te ei kasuta HTML erilist tähemärki, kui te 2144 01:35:38,740 --> 01:35:43,100 ei pääse seda veendumaks, et see on OK, siis ma võiks sündis asemel, 2145 01:35:43,100 --> 01:35:46,910 oletame, et siin ma räägin print või midagi sellist, 2146 01:35:46,910 --> 01:35:51,070 siis ma saaks edasi siin script kõne. 2147 01:35:51,070 --> 01:35:53,140 >> Niisiis, selle asemel lihtsalt saada muutuja 2148 01:35:53,140 --> 01:35:54,960 Oleksin seejärel käivitada seda skripti kõne. 2149 01:35:54,960 --> 01:35:57,065 Nii sees, et script helistada, mida see teeb? 2150 01:35:57,065 --> 01:36:00,190 Dokumendi dot asukohta, mis läheb asukohta muuta dokumendis. 2151 01:36:00,190 --> 01:36:02,290 Nii et ma lähen ümber kuhugi mujale. 2152 01:36:02,290 --> 01:36:08,170 Seda nimetatakse halb poiss Selle näite puhul väga hea. 2153 01:36:08,170 --> 01:36:10,536 Ei saa mõelda sõna. 2154 01:36:10,536 --> 01:36:12,410 Ja siis, mida on isegi hullem on see, et ma lähen 2155 01:36:12,410 --> 01:36:16,832 et siis pane cookie, mis on umbes muutuja mul sellel veebilehel. 2156 01:36:16,832 --> 01:36:19,040 Ma lähen, et seada see võrdub Dokumendi dot küpsise. 2157 01:36:19,040 --> 01:36:20,660 Seega, ma lähen varastada teie küpsise. 2158 01:36:20,660 --> 01:36:22,951 Ja ma lähen ümber mõned andmed veebilehel 2159 01:36:22,951 --> 01:36:25,120 et te ei tohi pääseda. 2160 01:36:25,120 --> 01:36:29,250 Ja see kõik juhtub, sest sa oled ei pääseks, mida olete näinud. 2161 01:36:29,250 --> 01:36:29,910 Jah? 2162 01:36:29,910 --> 01:36:32,160 >> Sihtrühm: Nii lihtsalt selgeks teha, et see on 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com et on tundlikud selles. 2164 01:36:37,550 --> 01:36:39,300 Nii et link võib avalduda igal konkreetsel lehel. 2165 01:36:39,300 --> 01:36:42,200 Keegi klõpsab seda, läheb vulnerable.com. 2166 01:36:42,200 --> 01:36:43,700 Sul on küpsise vulnerable.com. 2167 01:36:43,700 --> 01:36:46,670 Oletame, et Facebook on haavatav, nii facebook.com. 2168 01:36:46,670 --> 01:36:48,310 Sul on Facebook küpsise. 2169 01:36:48,310 --> 01:36:50,925 Mida see teeb, et sa oled läheb facebook.com, 2170 01:36:50,925 --> 01:36:53,990 see on kohe suunan Teil badguy.com, 2171 01:36:53,990 --> 01:36:57,182 kuid kaasa arvatud oma cookie teavet. 2172 01:36:57,182 --> 01:36:59,310 Nii et see on kiire suunamine, kuid oma Facebooki cookie 2173 01:36:59,310 --> 01:37:02,572 on lisatud, et suunata, ja see, kuidas nad [kuuldamatu]. 2174 01:37:02,572 --> 01:37:04,280 Gabe: Jah, seal on väga keskmine asjad 2175 01:37:04,280 --> 01:37:06,070 et inimesed saaksid teha, kui seal on see. 2176 01:37:06,070 --> 01:37:09,190 Näiteks, kui Facebook lubatud kõik, et muuta oma kasutajanime 2177 01:37:09,190 --> 01:37:11,680 ja nad ei tee midagi meelerahu kontrolli, et sa 2178 01:37:11,680 --> 01:37:16,810 võiks lisada JavaScript asi, mis muudab oma pilt hamster. 2179 01:37:16,810 --> 01:37:22,590 Ja see lisab sama JavaScript arvesse kõiki, kes näeb oma lehele. 2180 01:37:22,590 --> 01:37:26,400 Nii kõigile, kes näeb oma lehele on sama asi kasutajanime. 2181 01:37:26,400 --> 01:37:30,104 Ja kuna see on viirus, see levib eksponentsiaalselt. 2182 01:37:30,104 --> 01:37:32,270 DAVIN: Me vahele viimase üks, ja siis me teinud. 2183 01:37:32,270 --> 01:37:34,120 Nii et see on lihtsalt üks näide. 2184 01:37:34,120 --> 01:37:36,120 Nii et see on nad pole põgenevad oma SQL tabeli. 2185 01:37:36,120 --> 01:37:37,090 Nii saab vähendada sellega. 2186 01:37:37,090 --> 01:37:38,805 Nii et sa tahad põgeneda asju. 2187 01:37:38,805 --> 01:37:44,010 See oli eelmises näites rist saidi skriptimine. 2188 01:37:44,010 --> 01:37:45,430 Sorry me jooksime natuke hilja. 2189 01:37:45,430 --> 01:37:46,870 Homme, sorry! 2190 01:37:46,870 --> 01:37:48,560 Homme on meil tööajal. 2191 01:37:48,560 --> 01:37:50,870 Nii office tundi Cabbot 8:00-11:00. 2192 01:37:50,870 --> 01:37:55,240 Tööajal on rangelt viktoriini küsimustele. 2193 01:37:55,240 --> 01:37:56,587