1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [Zenelejátszási] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH: Üdv mindenkinek. 5 00:00:12,700 --> 00:00:15,866 Köszönöm srácok, hogy eljöttetek ki A undorító időjárás kvíz egy 6 00:00:15,866 --> 00:00:16,910 felülvizsgálja ülésén. 7 00:00:16,910 --> 00:00:20,020 Mint tudjátok, kvíz az egyik szerdán. 8 00:00:20,020 --> 00:00:22,209 Így fogunk menni egy csomó téma. 9 00:00:22,209 --> 00:00:24,000 DAVIN: Hé, mondhatok valami tényleg gyorsan? 10 00:00:24,000 --> 00:00:25,215 HANNAH: Igen, Davin folyik hogy mondjon valamit gyorsan. 11 00:00:25,215 --> 00:00:25,780 DAVIN: Sorry. 12 00:00:25,780 --> 00:00:29,490 Csak tényleg gyorsan, ha kérdésed van a kvíz, mehetsz online. 13 00:00:29,490 --> 00:00:32,420 Menjünk az 2014 quiz egy, a kvíz. 14 00:00:32,420 --> 00:00:34,680 Van rajta logisztikai mintegy hová menjen, ha menni. 15 00:00:34,680 --> 00:00:38,100 Ha egyszerre beiratkozott vagyunk Lesz egy smink kvíz at 05:30. 16 00:00:38,100 --> 00:00:40,350 Vagy ha te küldtél engem olyan kérdés, van néhány más kérdés. 17 00:00:40,350 --> 00:00:42,640 De 05:30 a make-up idő szerdán. 18 00:00:42,640 --> 00:00:44,540 De ha kérdésed van, Általános kérdések, 19 00:00:44,540 --> 00:00:45,748 Online-t a logisztika. 20 00:00:45,748 --> 00:00:47,690 Így ellenőrizni ott először. 21 00:00:47,690 --> 00:00:49,070 >> HANNAH: Awesome. 22 00:00:49,070 --> 00:00:53,030 Tehát itt a nagy témák listája hogy fogunk átmenni ma. 23 00:00:53,030 --> 00:00:57,390 Megyek minden a C cucc, ami az első oszlopban. 24 00:00:57,390 --> 00:01:00,710 Így a C dolog, hogy mi borított után kvíz nulla. 25 00:01:00,710 --> 00:01:05,459 Kezdve a láncolt lista, amely magában foglalja a mutatók. 26 00:01:05,459 --> 00:01:07,668 >> Rendben, így látta ezt Az elmúlt felülvizsgálati ülésén, 27 00:01:07,668 --> 00:01:10,000 úgyhogy megyek keresztül, ez egy kicsit gyorsabb. 28 00:01:10,000 --> 00:01:13,500 Csak emelje fel a kezét, ha azt akarod, hogy lassítják, vagy foglalkozzon valami újabb. 29 00:01:13,500 --> 00:01:17,150 De az általunk használt láncolt listák miatt elkezdtük a C tömbökkel. 30 00:01:17,150 --> 00:01:20,920 És tömbök nagy, de a probléma az, hogy van egy fix méretű. 31 00:01:20,920 --> 00:01:24,925 Láncolt listák teszi számunkra, hogy hozzon létre dinamikusan méretű adatszerkezeteket. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> És mi van a alapműveletek Insert, Delete, és keresni. 34 00:01:32,320 --> 00:01:36,780 És nem tehetünk betétet Legrosszabb esetben állandó idő 35 00:01:36,780 --> 00:01:39,140 ha azt csak a legelején. 36 00:01:39,140 --> 00:01:45,220 Törlésére és lekérdezésére, legrosszabb esetében nagy oh n időt. 37 00:01:45,220 --> 00:01:47,140 Tehát újra, csak a flip keresztül ezek a képek, 38 00:01:47,140 --> 00:01:50,860 Tudom, hogy láttuk az elmúlt időben, de szeretné nyomon követni a mi láncolt lista 39 00:01:50,860 --> 00:01:53,440 nyilvántartja a vezetője a láncolt lista. 40 00:01:53,440 --> 00:01:55,580 Mert tudjuk, hogy Minden egyik csomópontok 41 00:01:55,580 --> 00:01:58,610 csak fog mutatni a következő csomópontot a mi láncolt lista. 42 00:01:58,610 --> 00:02:00,460 >> Szóval így vagyunk nyomon követni. 43 00:02:00,460 --> 00:02:02,910 Bár ezek nem folyamatos darab memória, 44 00:02:02,910 --> 00:02:07,410 találjuk őket, egyszerűen következő különböző nyilak. 45 00:02:07,410 --> 00:02:09,800 Itt a mi szerkezete Egy láncolt lista csomópontot. 46 00:02:09,800 --> 00:02:11,440 Ezt láttuk utoljára. 47 00:02:11,440 --> 00:02:13,080 Megvan a struct csomópontot. 48 00:02:13,080 --> 00:02:14,340 És ez a két tulajdonság. 49 00:02:14,340 --> 00:02:17,020 Számú, a tényleges értéket akarunk tárolni. 50 00:02:17,020 --> 00:02:18,290 Ebben az esetben, ez egy egész szám. 51 00:02:18,290 --> 00:02:21,100 Ez lehet egy string, lehetett egy char, amit akarsz. 52 00:02:21,100 --> 00:02:24,710 És akkor mi van nyomon követni A következő csomópontot a mi láncolt lista. 53 00:02:24,710 --> 00:02:29,797 Szóval ez lesz a mutatót a következő csomópontot. 54 00:02:29,797 --> 00:02:31,880 Ha éppen csinál keresés, mint már mondtam, 55 00:02:31,880 --> 00:02:34,900 ha volna, hogy kövesse a nyilak lefelé. 56 00:02:34,900 --> 00:02:40,720 Beillesztés, akkor nyomon követheti hol a többi a lista. 57 00:02:40,720 --> 00:02:44,150 És szeretné irányítani a fejét hogy pont a mi új elem, amely 58 00:02:44,150 --> 00:02:46,640 ebben az esetben egy, majd az egyik fog mutatni 59 00:02:46,640 --> 00:02:49,480 hogy a fennmaradó a láncolt lista. 60 00:02:49,480 --> 00:02:52,996 Tehát újra, tudom, hogy ez egy kicsit bit megismétlődik a kvíz nulla. 61 00:02:52,996 --> 00:02:55,370 Tehát meg kell nagyon óvatosnak kell a sorrendet, amelyben azt 62 00:02:55,370 --> 00:03:00,390 ezek a pointings így nem veszítjük hátul a listán. 63 00:03:00,390 --> 00:03:04,122 OK, bármilyen kérdése a Csak egyszeresen láncolt listák? 64 00:03:04,122 --> 00:03:06,060 Félelmetes, OK, hűvös. 65 00:03:06,060 --> 00:03:09,410 >> Szóval most elmegyünk rá valamit csak egy kicsit bonyolultabb, 66 00:03:09,410 --> 00:03:10,920 kétszeresen láncolt listák. 67 00:03:10,920 --> 00:03:13,680 Tehát megőrzése mellett a követni a következő csomópontot, 68 00:03:13,680 --> 00:03:16,220 Azt is szeretné nyomon követni az előző csomópont. 69 00:03:16,220 --> 00:03:19,580 És ez lehetővé teszi számunkra, hogy, ha mi vagyunk valamikor a mi láncolt lista, 70 00:03:19,580 --> 00:03:23,110 nem csak menni előre, de is iterációkhoz hátra. 71 00:03:23,110 --> 00:03:25,220 Mert mint láttuk, az egyszeresen láncolt lista, 72 00:03:25,220 --> 00:03:27,980 ha mi voltunk néhány csomópontot, és hirtelen, úgy döntöttünk, 73 00:03:27,980 --> 00:03:30,160 Igazából akarok menni A csomópont jobb előttem, 74 00:03:30,160 --> 00:03:32,034 ha volna, hogy menjen minden Az utat vissza a fejét 75 00:03:32,034 --> 00:03:35,710 és halad végig, amíg meg nem találta A csomópont, amit keresett. 76 00:03:35,710 --> 00:03:37,680 >> Tehát ez teszi a dolgokat valamivel könnyebb, mint mi vagyunk 77 00:03:37,680 --> 00:03:39,670 próbál iterálására keresztül kapcsolódik listán. 78 00:03:39,670 --> 00:03:47,870 De ez megköveteli tőlünk, hogy nyomon követhesse az egyik Több mutató, így még egy node csillag. 79 00:03:47,870 --> 00:03:50,830 Rendben, akkor itt jön az érdekes rész. 80 00:03:50,830 --> 00:03:55,600 Fogunk gyakorolni végrehajtási távolítsa el a kétszeresen láncolt listák. 81 00:03:55,600 --> 00:03:58,660 Tehát ez olyan dolog, ami teljesen fair játék a kvíz. 82 00:03:58,660 --> 00:04:00,750 Ez tűnt fel a múlt vetélkedők. 83 00:04:00,750 --> 00:04:04,220 Tehát feltétlenül kell készíteni kódolni egy kicsit a C. 84 00:04:04,220 --> 00:04:07,900 Ne felejtsük el, hogy minden ebben a szórakoztató PHP és JavaScript, 85 00:04:07,900 --> 00:04:10,560 amit még meg kell emlékezni csinálni C. Tehát ecsettel fel, hogy 86 00:04:10,560 --> 00:04:12,146 Ha érzel magadban rozsdás. 87 00:04:12,146 --> 00:04:14,580 >> Rendben, lássuk, ha ezt meg tudjuk tenni. 88 00:04:14,580 --> 00:04:16,312 OK, hűvös. 89 00:04:16,312 --> 00:04:18,600 Így fogunk próbálni szerkeszteni jobb itt, 90 00:04:18,600 --> 00:04:20,707 és remélhetőleg ez a terv szerint halad. 91 00:04:20,707 --> 00:04:23,915 Rendben, nem mindenki akar adni nekem egy javaslat, hogy hogyan kell kezdeni? 92 00:04:23,915 --> 00:04:27,030 Az egyetlen feltételezés vagyok készítés az, hogy én már 93 00:04:27,030 --> 00:04:30,180 olyan struktúrával definiált, a Egy Megmutattam az utolsó oldalon, 94 00:04:30,180 --> 00:04:31,420 az utolsó diát. 95 00:04:31,420 --> 00:04:39,250 És én tárolására vezetője én kötött lista néhány mutatót nevű listán. 96 00:04:39,250 --> 00:04:42,190 Akar valaki kap én kezdődött? 97 00:04:42,190 --> 00:04:45,410 >> Közönség: lehet létrehozni egy új node, hogy hívja ki a listából? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH: Félelmetes, így fogunk létrehozni 99 00:04:46,410 --> 00:04:47,951 Új csomópont feltérképezni a listában. 100 00:04:47,951 --> 00:04:48,570 Nekem tetszik. 101 00:04:48,570 --> 00:04:50,799 Én csak nevezni pointer, ha ez rendben van. 102 00:04:50,799 --> 00:04:52,340 És hol kell az eredetileg kezdeni? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> Közönség: valószínűleg A lista élére. 105 00:04:59,840 --> 00:05:00,590 HANNAH: Gyönyörű. 106 00:05:00,590 --> 00:05:03,670 Szeretnénk elindítani az élén, amely Azt mondtam fog tárolni listán. 107 00:05:03,670 --> 00:05:04,170 Félelmetes. 108 00:05:04,170 --> 00:05:05,220 Eddig jó. 109 00:05:05,220 --> 00:05:08,260 És most, a célunk az, hogy halad végig a listát 110 00:05:08,260 --> 00:05:12,870 amíg meg nem találjuk a csomópontot értéke n, hogy szeretnénk törölni. 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> Tehát most az a rész, ahol akarunk halad végig. 113 00:05:15,910 --> 00:05:19,488 Tud valaki arra utalnak, módja annak, hogy halad végig? 114 00:05:19,488 --> 00:05:20,979 >> Közönség: A hurok. 115 00:05:20,979 --> 00:05:21,840 >> HANNAH: A hurok. 116 00:05:21,840 --> 00:05:22,620 Imádom. 117 00:05:22,620 --> 00:05:25,550 Pontosabban, mi lehet próbálni egy while ciklus. 118 00:05:25,550 --> 00:05:30,919 OK, és tudjuk, hogy elértük Vége a listán, ha mi? 119 00:05:30,919 --> 00:05:32,210 Közönség: Amikor mutató null. 120 00:05:32,210 --> 00:05:33,418 HANNAH: Amikor mutató null. 121 00:05:33,418 --> 00:05:34,320 Gyönyörű, imádom. 122 00:05:34,320 --> 00:05:35,110 OK, hűvös. 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 Szóval sajnálom, ha én befoglaló zárójel fajta esett le a képernyőn. 125 00:05:43,190 --> 00:05:44,090 Mi hozta vissza. 126 00:05:44,090 --> 00:05:46,610 OK, hűvös. 127 00:05:46,610 --> 00:05:48,690 Mi a következő lépés? 128 00:05:48,690 --> 00:05:51,950 >> Tehát tudjuk, hogy szeretnénk törölni A csomópont, aminek értéke n. 129 00:05:51,950 --> 00:05:56,340 Szóval találjuk az esetben, ha mi valójában találni a csomópontot. 130 00:05:56,340 --> 00:05:57,840 Szóval hogyan tudom megnézni, hogy? 131 00:05:57,840 --> 00:06:02,210 Én csak azt mondom, ha a mutató, majd ha én Szeretném az értéket ki a pointer, 132 00:06:02,210 --> 00:06:08,940 Csak azt nyíl n, értéke N, a paraméter 133 00:06:08,940 --> 00:06:14,490 amit mi adtunk, hogy ezt a funkciót, a node, hogy azt akarjuk, hogy valóban törölni. 134 00:06:14,490 --> 00:06:17,090 Bármilyen kérdése, amíg itt? 135 00:06:17,090 --> 00:06:18,360 Rendben van. 136 00:06:18,360 --> 00:06:24,140 OK, így most nézzük felhívni egy gyors kép A fórumon annak érdekében, hogy megjelenítsék ezt a. 137 00:06:24,140 --> 00:06:30,710 >> Tehát mondjuk van kedves csomópontot. 138 00:06:30,710 --> 00:06:34,480 És van egy értéke, én csak azt mondom négy. 139 00:06:34,480 --> 00:06:40,340 És megjegyzi, hogy a következő csomópontért a láncolt lista. 140 00:06:40,340 --> 00:06:42,220 És semmit sem előtte. 141 00:06:42,220 --> 00:06:45,800 Tehát van a korábbi rámutatva, hogy semmi. 142 00:06:45,800 --> 00:06:48,110 Ebben az esetben, akkor pont hátrafelé. 143 00:06:48,110 --> 00:06:50,960 OK, csak beállítani a láncolt lista itt. 144 00:06:50,960 --> 00:06:53,630 És van egy lista, amely rámutat hogy ezt a struktúrát, hogy kezdődik. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 Én felhívni még egyet A teljesség kedvéért. 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 Én pont ezt a forward. 150 00:07:07,480 --> 00:07:09,550 És Én pont, hogy egy vissza. 151 00:07:09,550 --> 00:07:10,360 Hoppá, sajnálom. 152 00:07:10,360 --> 00:07:12,710 Igen, van ez visszafelé. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 Újra meg újra. 155 00:07:16,967 --> 00:07:18,330 OK, ott megyünk. 156 00:07:18,330 --> 00:07:19,910 Rendben, megvan. 157 00:07:19,910 --> 00:07:21,780 OK, itt van a kép. 158 00:07:21,780 --> 00:07:24,860 >> OK, így szeretnénk két esetet kell megvizsgálni. 159 00:07:24,860 --> 00:07:27,330 Az első esetben, ha a node akarunk törölni 160 00:07:27,330 --> 00:07:29,420 a legelején a listánkon. 161 00:07:29,420 --> 00:07:34,070 És akkor, a második esetben, hogy azt akarjuk, hogy fontolja meg, ha ez bárhol máshol. 162 00:07:34,070 --> 00:07:37,660 Megértem, hogy ez egy teljesen rendetlen rajz az én törlés, 163 00:07:37,660 --> 00:07:40,400 de remélhetőleg megpróbálunk hogy ez világos néhány kódot. 164 00:07:40,400 --> 00:07:45,450 >> OK, úgyhogy azt az esetet, ahol megtaláltuk a csomópont, 165 00:07:45,450 --> 00:07:48,900 és ez a nagyon kezdete a láncolt lista. 166 00:07:48,900 --> 00:07:50,810 Valaki adjon nekem egy javaslat az, hogy mi 167 00:07:50,810 --> 00:07:54,684 Azt kell tennie, hogy el kellett távolítania a csomópont? 168 00:07:54,684 --> 00:07:55,970 Ez egy kicsit trükkös. 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> Közönség: Meg kell venni a csomópont lenne előtte 171 00:07:59,628 --> 00:08:01,794 és ez pont a az egyik, hogy lenne utána, 172 00:08:01,794 --> 00:08:03,004 és megteszi a csomópont, amely lenne utána, és 173 00:08:03,004 --> 00:08:04,554 Emlékeztet, hogy a csomópont előtt. 174 00:08:04,554 --> 00:08:05,220 HANNAH: Pontosan. 175 00:08:05,220 --> 00:08:10,640 OK, így ez a helyzet where-- van két esetben. 176 00:08:10,640 --> 00:08:14,100 Megvan az esetben, ha a node, hogy keresünk 177 00:08:14,100 --> 00:08:18,270 az első a listán. 178 00:08:18,270 --> 00:08:23,110 OK, majd a helyzet, hogy leírt egyébként, ugye? 179 00:08:23,110 --> 00:08:24,500 Ez valahol máshol a listán. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 Szóval azt mondta, meg kell nézd meg a csomópont korábbi, 182 00:08:32,840 --> 00:08:36,500 és hogy az előző csomópont pont a következő csomópontot. 183 00:08:36,500 --> 00:08:40,510 Tehát mondjuk mi vagyunk megpróbálja kivenni öt 184 00:08:40,510 --> 00:08:43,059 én nagyon rendetlen rajzot ide. 185 00:08:43,059 --> 00:08:47,530 Azt szeretnénk, hogy győződjön meg arról, hogy Négy utal most már hat. 186 00:08:47,530 --> 00:08:49,590 Négy következő pont hat. 187 00:08:49,590 --> 00:08:52,150 És hat korábbi pont négy. 188 00:08:52,150 --> 00:08:53,960 Ez a célunk itt, ugye? 189 00:08:53,960 --> 00:08:56,150 Ez az, amit azt hiszem, csak azt mondta ott. 190 00:08:56,150 --> 00:08:58,450 >> OK, úgyhogy kap, hogy első darabja. 191 00:08:58,450 --> 00:09:02,300 Csináljuk a van előző pointer előző. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 Tehát négy következő mutatnia kellene, mi? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 Pontosan, ebben az esetben, hat. 196 00:09:14,900 --> 00:09:18,470 Tehát azt kell mondanom, pointer mellett. 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 Rendben van. 199 00:09:21,150 --> 00:09:24,870 Akkor most hogy eltűnjön ez a csúnya képet és próbálja felhívni a kissé szebb. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 Megvan a lista feje van. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 És hogy pont az első csomópont a láncolt lista, amely azt mondta, négy. 204 00:09:42,740 --> 00:09:45,620 Itt a második csomópont, öt. 205 00:09:45,620 --> 00:09:47,307 És mi a harmadik csomópont, hat. 206 00:09:47,307 --> 00:09:50,265 Csak próbálják felhívni a pontosan ugyanolyan kép, csak egy kicsit tisztábban. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 OK, így négy következő Eredetileg arra utal, hogy öt. 209 00:09:56,280 --> 00:09:58,620 Öt következő pont hat. 210 00:09:58,620 --> 00:10:00,170 Hat korábbi pont öt. 211 00:10:00,170 --> 00:10:02,470 És öt korábbi pont négy. 212 00:10:02,470 --> 00:10:03,360 Sokkal szebb! 213 00:10:03,360 --> 00:10:04,530 OK, hűvös. 214 00:10:04,530 --> 00:10:07,770 >> Tehát most, hogy mit csináltunk, csak Itt, ebben a kódsort, 215 00:10:07,770 --> 00:10:12,680 amely azt mondja, pointer előző legközelebb, ezért ez mit jelent? 216 00:10:12,680 --> 00:10:17,540 Ez azt jelenti, ha keresünk Öt, itt az előző csomópont, 217 00:10:17,540 --> 00:10:21,970 és ez a következő lépés most pont öt következő. 218 00:10:21,970 --> 00:10:27,840 Tehát lényegében ez mit csinál az, hogy van törölné ezt a nyilat 219 00:10:27,840 --> 00:10:29,640 és így kihagyja jobb mint öt. 220 00:10:29,640 --> 00:10:31,360 Világos? 221 00:10:31,360 --> 00:10:33,200 Tudom, hogy lehet egy kicsit vázlatos. 222 00:10:33,200 --> 00:10:34,480 Látok néhány fej bólint. 223 00:10:34,480 --> 00:10:35,390 Ez jó. 224 00:10:35,390 --> 00:10:36,670 OK, hűvös. 225 00:10:36,670 --> 00:10:39,590 Most, mi a következő lépés? 226 00:10:39,590 --> 00:10:42,060 >> Már állítani a másikra. 227 00:10:42,060 --> 00:10:45,297 Most, mely más nyíl Hogy tudok változtatni? 228 00:10:45,297 --> 00:10:46,130 Ez az egyik itt. 229 00:10:46,130 --> 00:10:47,560 Hat korábbi. 230 00:10:47,560 --> 00:10:50,620 Nem akarjuk, hogy a hat korábbi hogy pont öt többé. 231 00:10:50,620 --> 00:10:54,580 Azt akarjuk, hogy pont a négy. 232 00:10:54,580 --> 00:10:56,190 Ez azt a képet értelme? 233 00:10:56,190 --> 00:10:58,370 Így most már valóban megteszi ötben. 234 00:10:58,370 --> 00:10:59,370 Szóval térjünk hogy a darab. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 Mit kell tennem, mielőtt állítsa vissza a hat korábbi négy? 237 00:11:11,180 --> 00:11:14,360 Van ötleted van? 238 00:11:14,360 --> 00:11:17,369 >> Közönség: Szabad a csomópont között ezeket a beállítást null? 239 00:11:17,369 --> 00:11:17,910 HANNAH: Cool. 240 00:11:17,910 --> 00:11:21,100 Határozottan, a végső cél lesz, hogy kiszabadítsa a csomópontot. 241 00:11:21,100 --> 00:11:22,490 Így nem tehetünk, hogy itt van. 242 00:11:22,490 --> 00:11:23,540 Ingyenes pointer. 243 00:11:23,540 --> 00:11:24,810 Abszolút. 244 00:11:24,810 --> 00:11:29,160 De még ezt megelőzően, nézzük Csak-- célunk jobb 245 00:11:29,160 --> 00:11:38,730 Itt van, hogy hozzanak melletti mutatóra előző egyenlő, a mutató az előző. 246 00:11:38,730 --> 00:11:40,760 Tudom, hogy ez már fedezett fel. 247 00:11:40,760 --> 00:11:45,440 Oké, take-- cool. 248 00:11:45,440 --> 00:11:46,990 Lehet, hogy mindenki látja ezt a lényeg? 249 00:11:46,990 --> 00:11:47,840 Vagy ez szuper apró? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> Szóval mielőtt végrehajtja ez a sor itt, azt akarjuk, 252 00:11:54,300 --> 00:11:58,375 meggyőződni arról, hogy pointer következő nem null. 253 00:11:58,375 --> 00:12:00,500 Mert ha melletti mutatóra van null, milyen hiba 254 00:12:00,500 --> 00:12:02,727 kapok, amikor megpróbálom hivatkozhat egy null pointer? 255 00:12:02,727 --> 00:12:03,560 Közönség: Seg hiba. 256 00:12:03,560 --> 00:12:05,660 HANNAH: A seg hiba, gyönyörű. 257 00:12:05,660 --> 00:12:09,690 OK, így ha ez nem null, akkor vissza lehet állítani. 258 00:12:09,690 --> 00:12:14,420 És már hat ponttal ismét négy. 259 00:12:14,420 --> 00:12:17,440 Kérdések amíg ez a pont? 260 00:12:17,440 --> 00:12:17,940 Igen? 261 00:12:17,940 --> 00:12:19,814 >> Közönség: Az első if, ugye 262 00:12:19,814 --> 00:12:23,817 jelenti, hogy a nyíl Ezután vagy [hallható]? 263 00:12:23,817 --> 00:12:25,150 HANNAH: Úgy értettem egérmutató n. 264 00:12:25,150 --> 00:12:30,270 Tehát alapvetően, mit akarok csinálni mondania, az aktuális elem, hogy én vagyok 265 00:12:30,270 --> 00:12:34,100 iterálás, a jelenlegi csomópont, amely Nézem, én tárolja pointer. 266 00:12:34,100 --> 00:12:37,630 És tudni akarom, hogy egérmutató érték, amely ebben az esetben n. 267 00:12:37,630 --> 00:12:39,500 És azt akarom látni, A csomópont keresem 268 00:12:39,500 --> 00:12:42,790 a csomópont a célom, hogy törölni? 269 00:12:42,790 --> 00:12:47,657 Szóval ezért van itt pointer n. 270 00:12:47,657 --> 00:12:49,857 >> Közönség: Tehát a nyíl megy hogy n, a megadott érték 271 00:12:49,857 --> 00:12:52,058 és tárolja a csomópont úgynevezett n? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH: Tehát ez olyan, mint ha én vagyok megy keresztül ez a láncolt lista 274 00:12:58,820 --> 00:13:00,310 és rámutatva, hogy öt. 275 00:13:00,310 --> 00:13:03,600 Ha azt szeretnénk, hogy ezt az értéket, ha Azt akarom, hogy ez a szám, 5, 276 00:13:03,600 --> 00:13:06,400 Meg kell tennem mutató nyíl n. 277 00:13:06,400 --> 00:13:06,900 Cool? 278 00:13:06,900 --> 00:13:07,900 Igen. 279 00:13:07,900 --> 00:13:11,200 >> Közönség: N és a változó nevét? 280 00:13:11,200 --> 00:13:11,700 HANNAH: Igen. 281 00:13:11,700 --> 00:13:14,870 Ha tehát flip vissza egy dia, n értéke a neve 282 00:13:14,870 --> 00:13:18,660 értékének belsejében a csomópontért a láncolt lista. 283 00:13:18,660 --> 00:13:21,510 És tudom, hogy lehet, hogy egy kicsit kicsit zavaros, mert mi is 284 00:13:21,510 --> 00:13:24,680 a hívás a dolog hogy szeretnénk törölni n. 285 00:13:24,680 --> 00:13:26,717 Tehát ott, hogy egy vonal származik. 286 00:13:26,717 --> 00:13:27,671 Igen? 287 00:13:27,671 --> 00:13:31,010 >> Közönség: Mit kell [Hallhatatlan] hogyan működnek? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 A pointer [hallhatatlan]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH: Persze. 291 00:13:37,520 --> 00:13:40,027 Te beszélsz about-- melyik vonal? 292 00:13:40,027 --> 00:13:41,526 Közönség: Az utolsó sor [hallhatatlan]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH: Persze, OK. 295 00:13:45,250 --> 00:13:48,540 Szóval nézzük a képet annak érdekében, hogy megpróbálják megmagyarázni ezt. 296 00:13:48,540 --> 00:13:51,030 Sajnálom, hogy a kamerát, az volt a kérdés 297 00:13:51,030 --> 00:13:54,580 Mivel magyarázható pointer nyílra pointer előző. 298 00:13:54,580 --> 00:14:01,510 OK, így mondjuk mi vagyunk az öt és a célunk az, hogy törölje az öt. 299 00:14:01,510 --> 00:14:07,240 Tehát melletti mutatóra, amely ezen három csomópont mond ez nekünk? 300 00:14:07,240 --> 00:14:10,840 Ez elvezet minket a hatodik csomópont, ugye? 301 00:14:10,840 --> 00:14:16,490 >> OK, így most kérünk a hat korábbi. 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 És mi alaphelyzetbe állítása hogy egyenlő négy, 304 00:14:20,210 --> 00:14:23,214 amely történetesen öt korábbi. 305 00:14:23,214 --> 00:14:25,180 Tudom, ez szuper Nehéz nyomon követni. 306 00:14:25,180 --> 00:14:29,286 Nagyon ajánlom neked rajzolni Ha kapsz egy kérdés, mint ez. 307 00:14:29,286 --> 00:14:30,242 Igen? 308 00:14:30,242 --> 00:14:32,617 >> Közönség: az oka, hogy nincs egy [hallhatatlan]? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH: Pontosan. 311 00:14:38,570 --> 00:14:44,800 Szóval a kérdés az volt, hogy miért nem azt nem kell ellenőrizni itt? 312 00:14:44,800 --> 00:14:48,160 Miért nem kell ellenőrizni, hogy pointer korábbi nem egyenlő null? 313 00:14:48,160 --> 00:14:50,070 És ez azért van, mert Már elkülöníteni 314 00:14:50,070 --> 00:14:52,490 a helyzet, ha az egérmutató a legelején. 315 00:14:52,490 --> 00:14:54,060 Nagyon jó kérdés. 316 00:14:54,060 --> 00:14:56,880 Bármi mást erről? 317 00:14:56,880 --> 00:14:57,380 OK, hűvös. 318 00:14:57,380 --> 00:14:58,360 Tehát fejezzük be azt. 319 00:14:58,360 --> 00:14:59,890 Már majdnem ott vagyunk. 320 00:14:59,890 --> 00:15:01,310 >> Szóval mi van, ha ez az élén? 321 00:15:01,310 --> 00:15:03,360 Mi lenne, ha ahelyett, megpróbálta törölni öt, 322 00:15:03,360 --> 00:15:06,240 igazából akartam törölni négy? 323 00:15:06,240 --> 00:15:07,270 Mit is kell tenned? 324 00:15:07,270 --> 00:15:09,610 Nos, azt akarom állítani a fejem, hogy mit? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Shout ki? 327 00:15:15,585 --> 00:15:16,710 Közönség: Az egyik utána. 328 00:15:16,710 --> 00:15:17,460 HANNAH: Gyönyörű. 329 00:15:17,460 --> 00:15:26,430 OK, így szeretnénk felsorolni, hogy mutasson hogy bármi legyen a pointer következő csomópont. 330 00:15:26,430 --> 00:15:29,040 Jó. 331 00:15:29,040 --> 00:15:30,810 És csak a teljesség által kedvéért, mi lenne 332 00:15:30,810 --> 00:15:35,590 ellenőrizni kívánja, hogy amíg mi lista nem nulla, amíg A lista nem 333 00:15:35,590 --> 00:15:42,730 üres, akkor szeretnénk beállítani Korábbi egyenlő null. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 Kérdés eddig? 336 00:15:50,230 --> 00:15:53,205 Egy lépésre from--? 337 00:15:53,205 --> 00:15:55,530 >> Közönség: Lenne, ha felsorolás nem egyenlő null? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH: Igen, igazad teljesen igaza van. 339 00:15:56,950 --> 00:15:58,130 Annyira sajnálom. 340 00:15:58,130 --> 00:16:00,040 Ez a lista nem egyenlő null. 341 00:16:00,040 --> 00:16:01,915 Félelmetes. 342 00:16:01,915 --> 00:16:04,245 Próbál, hogy ez az egész a képernyőn. 343 00:16:04,245 --> 00:16:06,870 Ez a fajta esett le. 344 00:16:06,870 --> 00:16:07,730 Sajnálom, srácok. 345 00:16:07,730 --> 00:16:11,874 És végül, de nem utolsósorban, az összes meg kell tennie, hogy cserébe. 346 00:16:11,874 --> 00:16:12,840 OK. 347 00:16:12,840 --> 00:16:15,400 Ez rengeteg zsúfolásig A nagyon gyorsan. 348 00:16:15,400 --> 00:16:16,800 Vegyünk egy második nézni ezt át. 349 00:16:16,800 --> 00:16:18,216 Mondd meg nekem, ha bármilyen kérdése van. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 Igen? 352 00:16:20,732 --> 00:16:26,940 >> Közönség: Ha a lista a fej, ​​then-- várni, sebaj. 353 00:16:26,940 --> 00:16:27,700 >> HANNAH: OK, jó. 354 00:16:27,700 --> 00:16:30,987 Tehát ez, ha a lista élén, mi távolítsa el azt, hogy bármit is be. 355 00:16:30,987 --> 00:16:31,486 Igen? 356 00:16:31,486 --> 00:16:33,777 >> Közönség: Meg tudod magyarázni, Az első, ha a nyilatkozatot újra? 357 00:16:33,777 --> 00:16:36,149 Ha a mutató, hogy n egyenlő n? 358 00:16:36,149 --> 00:16:36,690 HANNAH: Persze. 359 00:16:36,690 --> 00:16:42,780 Tehát a célunk ennek az egész funkció törölni a csomópont, aminek értéke n. 360 00:16:42,780 --> 00:16:47,460 Ezért ha úgy találjuk, mint mi vagyunk iterációjával keresztül listán, 361 00:16:47,460 --> 00:16:51,770 A csomópont értéke n, ez Az egyik akarunk törölni. 362 00:16:51,770 --> 00:16:57,286 Így minden a törlés történik belsejét, hogy nagy, ha a nyilatkozatot. 363 00:16:57,286 --> 00:16:58,593 Van ennek értelme? 364 00:16:58,593 --> 00:16:59,480 Cool. 365 00:16:59,480 --> 00:16:59,990 Igen? 366 00:16:59,990 --> 00:17:02,864 >> Közönség: Talán csak nem látjuk , de nem kell még egy sort 367 00:17:02,864 --> 00:17:06,024 lapozása listán? 368 00:17:06,024 --> 00:17:06,690 HANNAH: Awesome. 369 00:17:06,690 --> 00:17:10,896 Nézzük, hogy ezt egy kicsit, és fogjuk dobni ezt a jogot az alján. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 Lehet, hogy a fedélzeten volna már egy kicsit jobb ötletem. 372 00:17:15,490 --> 00:17:17,829 Szóval hogyan mozgok mutatót előre? 373 00:17:17,829 --> 00:17:20,184 >> Közönség: Pointer egyenlő mutató plusz egy. 374 00:17:20,184 --> 00:17:21,599 >> HANNAH: Gyönyörű. 375 00:17:21,599 --> 00:17:25,050 Úgy, hogy lehetővé teszi számunkra, hogy továbbra iterációjával keresztül. 376 00:17:25,050 --> 00:17:26,251 OK. 377 00:17:26,251 --> 00:17:27,750 Közönség: Nem lenne ott lenni más? 378 00:17:27,750 --> 00:17:29,028 HANNAH: Még egy időben? 379 00:17:29,028 --> 00:17:32,444 Közönség: Nem lenne ott lenni else után a nagy öreg, ha 380 00:17:32,444 --> 00:17:35,519 nyilatkozatot [hallhatatlan]? 381 00:17:35,519 --> 00:17:36,310 HANNAH: Melyik része? 382 00:17:36,310 --> 00:17:38,350 Sajnálom. 383 00:17:38,350 --> 00:17:41,800 >> Közönség: A bejárás, Nem kellene egy más? 384 00:17:41,800 --> 00:17:43,550 HANNAH: Egészen lehettek mást. 385 00:17:43,550 --> 00:17:46,930 Mert van egy visszatérő joga van, akkor nem kell egy mást. 386 00:17:46,930 --> 00:17:48,760 De igen, jó kérdés. 387 00:17:48,760 --> 00:17:50,170 OK, igen? 388 00:17:50,170 --> 00:17:52,878 Közönség: Meg tudjuk gondolni pointer hogy halad végig a listát 389 00:17:52,878 --> 00:17:56,610 mint vevő az értéke Az egyes node a listán? 390 00:17:56,610 --> 00:18:00,650 Vagy inkább úgy mondanám, hogy egyfajta külső a listára? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH: Vagy valamelyik rendben van, azt hiszem. 392 00:18:02,350 --> 00:18:05,880 Én úgy elképzelni, hogy Azt mondják, OK, én vagyok a mutató. 393 00:18:05,880 --> 00:18:06,520 És ez nekem. 394 00:18:06,520 --> 00:18:07,150 Ez a kezemet. 395 00:18:07,150 --> 00:18:09,960 Megyek, hogy pont a másik dolgokat, hogy azt akarom, hogy halad végig. 396 00:18:09,960 --> 00:18:12,270 Először fogok mutatni A lista élére. 397 00:18:12,270 --> 00:18:14,144 És, hogy azt mondja, én vagyok fog mutatni, hogy négy. 398 00:18:14,144 --> 00:18:18,060 És így velem, hogy a külső a listára, Azt is pont minden egyes ilyen elemek. 399 00:18:18,060 --> 00:18:19,520 Szóval azt hiszem magamról, pointer. 400 00:18:19,520 --> 00:18:21,645 Közönség: Tehát ha törli Egy ilyen elem, 401 00:18:21,645 --> 00:18:23,404 törli magát, hogy úgy mondjam. 402 00:18:23,404 --> 00:18:24,070 HANNAH: Pontosan. 403 00:18:24,070 --> 00:18:25,920 Szóval törölje a dolog te mutat. 404 00:18:25,920 --> 00:18:28,340 Azaz, például, hogy Láttuk, hol vagyunk 405 00:18:28,340 --> 00:18:31,670 megpróbálta törölni öt, ha én vagyok a mutató öt, 406 00:18:31,670 --> 00:18:34,200 Azt akarom, hogy törölje a amit én mutatva. 407 00:18:34,200 --> 00:18:35,870 Pontosan így van. 408 00:18:35,870 --> 00:18:36,577 Igen? 409 00:18:36,577 --> 00:18:39,410 Közönség: Van már gondoskodott a esetben, ha n nem a listán? 410 00:18:39,410 --> 00:18:40,460 HANNAH: Ha n nem szerepel a listán? 411 00:18:40,460 --> 00:18:43,501 Minden, ami történni fog az Ön majd halad végig, és iterate 412 00:18:43,501 --> 00:18:47,616 keresztül, majd fogsz hogy a mutatóra, hogy null, 413 00:18:47,616 --> 00:18:48,990 majd fogsz tenni. 414 00:18:48,990 --> 00:18:50,812 >> Közönség: Szóval van vissza semmit? 415 00:18:50,812 --> 00:18:51,520 HANNAH: tudtuk. 416 00:18:51,520 --> 00:18:54,500 Az is, hogy ha meg van adva ez a funkciót, csak annyit, hogy visszatér 417 00:18:54,500 --> 00:18:55,770 semmissé függetlenül. 418 00:18:55,770 --> 00:18:58,360 De akkor lehetett volna valamit mint egész szám visszaadása 419 00:18:58,360 --> 00:19:00,920 és már akkor vissza Negatív 1, ha nem sikerül. 420 00:19:00,920 --> 00:19:03,070 Valami ilyesmi. 421 00:19:03,070 --> 00:19:04,494 Kérdések with-- igen? 422 00:19:04,494 --> 00:19:05,410 Közönség: [hallható]? 423 00:19:05,410 --> 00:19:05,993 HANNAH: Tessék? 424 00:19:05,993 --> 00:19:07,419 Közönség: [hallható]? 425 00:19:07,419 --> 00:19:07,960 HANNAH: Persze. 426 00:19:07,960 --> 00:19:11,730 Szóval ez a actual-- egyszer voltunk elvégezni ezt a munkát a mozgó 427 00:19:11,730 --> 00:19:16,530 Mindezen nyilak körül, az egész célja az volt, hogy megszabaduljon a csomópont 428 00:19:16,530 --> 00:19:18,230 hogy keresünk. 429 00:19:18,230 --> 00:19:21,610 Tehát ebben az esetben, megkímélve pointer, ha én vagyok mutatva öt, 430 00:19:21,610 --> 00:19:24,670 ez olyan, mint törölné ezt a középső csomópont. 431 00:19:24,670 --> 00:19:27,250 Ez az ingyenes pointer része. 432 00:19:27,250 --> 00:19:29,090 Van ennek értelme? 433 00:19:29,090 --> 00:19:31,390 >> Közönség: Így is gondoltam nem tetted [hallhatatlan]? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH: Tehát kezdetén feltételeztem volt néhány listán volt already-- 435 00:19:36,060 --> 00:19:37,220 zárták be ezt együtt. 436 00:19:37,220 --> 00:19:39,761 Tehát azért, hogy létrehozzunk erre listájában, akkor biztos [hallhatatlan]. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 Cool. 439 00:19:42,750 --> 00:19:44,490 Bármi más ezzel? 440 00:19:44,490 --> 00:19:46,386 Igen? 441 00:19:46,386 --> 00:19:49,204 >> Közönség: Mi van, ha a listában nem egyezik meg a null vonalat? 442 00:19:49,204 --> 00:19:49,704 [Hallhatatlan]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH: Pont itt? 445 00:19:53,080 --> 00:19:53,840 Közönség: Igen. 446 00:19:53,840 --> 00:19:57,370 HANNAH: OK, minden, amit csinálok hogy én vagyok csak megbizonyosodtunk 447 00:19:57,370 --> 00:20:03,250 hogy mielőtt megpróbálom, követéssel listán, Mielőtt megpróbálok hozzáférni az előző, 448 00:20:03,250 --> 00:20:07,210 Azt szeretnénk, hogy győződjön meg arról, hogy ez nem null így nem kap egy seg hiba. 449 00:20:07,210 --> 00:20:08,400 Cool. 450 00:20:08,400 --> 00:20:10,820 >> OK, tudom, hogy ez elég Sok átvészelni. 451 00:20:10,820 --> 00:20:14,950 Tehát ez a slide lesz elérhetővé teszi. 452 00:20:14,950 --> 00:20:17,341 Szóval lehet menni rajta részletesen. 453 00:20:17,341 --> 00:20:17,841 Igen? 454 00:20:17,841 --> 00:20:19,749 >> Közönség: Miért tüntetnek fel [hallhatatlan]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH: Persze. 457 00:20:24,670 --> 00:20:27,390 Szóval lista igazán mutat ez az elem itt, 458 00:20:27,390 --> 00:20:29,200 Az első elem a listában. 459 00:20:29,200 --> 00:20:30,748 Így nem volt már. 460 00:20:30,748 --> 00:20:31,736 Igen? 461 00:20:31,736 --> 00:20:35,194 >> Közönség: Vajon a pointer pont ugyanarra a címre a memóriában? 462 00:20:35,194 --> 00:20:38,404 Vajon mind ugyanarra A cím memóriában, mint a csomópont 463 00:20:38,404 --> 00:20:40,640 hogy ez mutatva, hogy? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH: Igen, ez rámutat hogy ez a csomópont a memóriában. 465 00:20:43,865 --> 00:20:47,190 >> Közönség: Rendben, tehát ha [hallhatatlan]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH: Bizonyos értelemben igen. 467 00:20:50,580 --> 00:20:51,280 OK. 468 00:20:51,280 --> 00:20:52,997 Rendben, menjünk együtt ezt. 469 00:20:52,997 --> 00:20:55,330 És ha további kérdései vannak, sehova végén, 470 00:20:55,330 --> 00:20:57,130 és mi lehet menni rajta újra. 471 00:20:57,130 --> 00:20:58,120 OK, hűvös. 472 00:20:58,120 --> 00:21:00,490 Most, hogy lépni hash táblák, próbálkozás, 473 00:21:00,490 --> 00:21:04,940 és a fák, amelyek megvan super ismeri a p-be öt, helyesírás. 474 00:21:04,940 --> 00:21:11,020 >> Tehát hash tábla csak egy tömb egyenként kapcsolt listák 475 00:21:11,020 --> 00:21:14,050 vagy kétszeresen láncolt listák jön ki belőle. 476 00:21:14,050 --> 00:21:16,380 Tehát van valamiféle Az asszociatív tömb. 477 00:21:16,380 --> 00:21:21,280 És hogyan tudjuk, hogy ezek közül tömbök vödrök bejutni, 478 00:21:21,280 --> 00:21:24,137 használjuk a hash függvény. 479 00:21:24,137 --> 00:21:26,470 Tehát ebben az esetben, lehet valaki kitalálni, mi a hash függvény 480 00:21:26,470 --> 00:21:28,636 lenne csak az alapján, Az input és output? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> Közönség: Letter száma az ábécé. 483 00:21:33,194 --> 00:21:33,860 HANNAH: Pontosan. 484 00:21:33,860 --> 00:21:36,160 Ez csak teszi őket ábécé sorrendben. 485 00:21:36,160 --> 00:21:39,280 Minden, ami kezdődik, A helyezik az első vödör. 486 00:21:39,280 --> 00:21:43,340 Minden, a B kerül be a második vödör, így tovább, és így tovább. 487 00:21:43,340 --> 00:21:45,620 Félelmetes, OK. 488 00:21:45,620 --> 00:21:48,980 És a hash függvény minden működést, mely egy szó 489 00:21:48,980 --> 00:21:51,910 és megmondja, hogy mi vödör tartozik az. 490 00:21:51,910 --> 00:21:55,150 Tehát melyik bejegyzés a array tartozik az. 491 00:21:55,150 --> 00:21:58,080 >> Így minden alkalommal adom hash függvény egy szót, 492 00:21:58,080 --> 00:22:00,660 meg kell mondani, ugyanazon helyezze minden egyes alkalommal. 493 00:22:00,660 --> 00:22:03,270 Tehát, ha a hash függvény Az előző diára 494 00:22:03,270 --> 00:22:05,950 ahol mi vagyunk válogatás a első betű az ábécé, 495 00:22:05,950 --> 00:22:08,230 minden alkalommal adom hash függvény "alma" 496 00:22:08,230 --> 00:22:10,180 azt mindig add vissza 0. 497 00:22:10,180 --> 00:22:12,890 Tehát ha van egy alma tenni az én hash tábla, 498 00:22:12,890 --> 00:22:17,700 ha adok "alma" az én hash függvény, meg kell mondani, menj tedd a vödörbe 0. 499 00:22:17,700 --> 00:22:19,980 Ha én keresek egy Az Apple az én hash tábla 500 00:22:19,980 --> 00:22:24,340 és azt mondom, ahol erejével apple Élő, akkor kérdezze meg hash függvény. 501 00:22:24,340 --> 00:22:26,900 És azt mondja, menjen a vödör 0. 502 00:22:26,900 --> 00:22:29,150 Rendben? 503 00:22:29,150 --> 00:22:32,660 Kérdések a hash függvények? 504 00:22:32,660 --> 00:22:34,570 Félelmetes. 505 00:22:34,570 --> 00:22:37,320 >> Itt van egy valamivel több, részletes magyarázatot 506 00:22:37,320 --> 00:22:39,570 amit egy hash függvény nézhet. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 Rendben van. 509 00:22:42,960 --> 00:22:45,960 Nos, a probléma a hash funkciók egy ideális világban, 510 00:22:45,960 --> 00:22:48,870 mi lenne csak egy dolog, minden vödör. 511 00:22:48,870 --> 00:22:50,900 De a valóságban, van Nem csak egy szót 512 00:22:50,900 --> 00:22:54,280 kezdődő A. Ott nem csak egy szó, hogy elindul a B. Tehát 513 00:22:54,280 --> 00:22:56,960 Ebben az esetben, ha hirtelen kap "bogyó" 514 00:22:56,960 --> 00:22:58,710 és azt akarjuk, hogy tedd a mi hash tábla, 515 00:22:58,710 --> 00:23:03,640 és látjuk, ó, nem, banán már ott, mit fogunk csinálni? 516 00:23:03,640 --> 00:23:05,900 >> Nos, van két lehetőség. 517 00:23:05,900 --> 00:23:07,990 Az első lehetőség lineáris szondázás, amely 518 00:23:07,990 --> 00:23:11,100 csak azt jelenti, menj találja A következő üres vödröt. 519 00:23:11,100 --> 00:23:14,100 Keresd meg a következő üres tömböt bejegyzést. 520 00:23:14,100 --> 00:23:15,750 És csak hogy "bogyó" van. 521 00:23:15,750 --> 00:23:18,880 Úgy tudom, hogy kéne menjen banán vödör egyet. 522 00:23:18,880 --> 00:23:22,155 De csak betette a vödör három, mert vödör három üres. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 Egy másik lehetőség az, valószínűleg amit végre 525 00:23:26,680 --> 00:23:29,220 a p-set, ahol volt külön kötésével. 526 00:23:29,220 --> 00:23:33,990 Tehát minden a vödrök, minden a tömb elemeit, 527 00:23:33,990 --> 00:23:38,410 nem csak a birtokában szavakat, de valójában tartja a mutatót a szavak listáját. 528 00:23:38,410 --> 00:23:41,880 Tehát, hogy ha volt banán a hash tábla 529 00:23:41,880 --> 00:23:44,740 és akkor hirtelen akart hozzáadni bogyó, nem probléma. 530 00:23:44,740 --> 00:23:51,110 Csak add bogyó a végéig, vagy Kezdetben a láncolt lista. 531 00:23:51,110 --> 00:23:54,040 OK, félelmetes. 532 00:23:54,040 --> 00:23:58,490 Kérdések a hash asztalok, mielõtt? 533 00:23:58,490 --> 00:23:59,850 >> Rendben van. 534 00:23:59,850 --> 00:24:01,070 Fák és próbál. 535 00:24:01,070 --> 00:24:07,980 OK, így ez volt a másik lehetőség végrehajtására szótárban. 536 00:24:07,980 --> 00:24:09,100 Akkor lehetett volna tenni egy próbát. 537 00:24:09,100 --> 00:24:13,420 Szóval ez egy különleges fajta fa, úgy viselkedik, mint egy multi-level hash tábla. 538 00:24:13,420 --> 00:24:16,862 Így látni fogod a kép ahol van egy tömbben, hogy 539 00:24:16,862 --> 00:24:19,320 rámutat, hogy egy csomó tömbök Ezen a ponton, hogy egy csomó tömbök 540 00:24:19,320 --> 00:24:20,390 Ezen a ponton, hogy egy csomó tömbök. 541 00:24:20,390 --> 00:24:23,140 És majd meglátjuk, hogy pontosan mit nézne ki a jövő slide. 542 00:24:23,140 --> 00:24:26,070 És általában egy fa csak olyan adatok szerkezete 543 00:24:26,070 --> 00:24:29,710 amelyben az adatok szervezett egy hierarchia. 544 00:24:29,710 --> 00:24:32,610 Szóval, ha láttuk mi valamiféle megértést 545 00:24:32,610 --> 00:24:36,130 A felső szinten egy következő szintre, a következő szintre, a következő szintre. 546 00:24:36,130 --> 00:24:39,690 Tehát valószínűleg ez a legtisztább néhány konkrét példát. 547 00:24:39,690 --> 00:24:40,880 Tehát itt a mi fán. 548 00:24:40,880 --> 00:24:42,970 Láthatjuk, hogy tevékenység különösen szinten 549 00:24:42,970 --> 00:24:45,480 hogy kezdjük, hogy gyökér csomópontot, egy. 550 00:24:45,480 --> 00:24:47,640 És mi lehet lemenni a mi fán. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> A bináris fa egy adott típusú fa. 553 00:24:53,910 --> 00:24:56,770 És az egyetlen specifikáció egy bináris fa 554 00:24:56,770 --> 00:25:01,130 az, hogy minden csomópont legfeljebb két levél. 555 00:25:01,130 --> 00:25:03,960 Szóval nem fog lát E csomópontok három vagy négy 556 00:25:03,960 --> 00:25:06,880 vagy valamilyen más levelek száma. 557 00:25:06,880 --> 00:25:11,310 És akkor még speciálisabb egy bináris kereső fa 558 00:25:11,310 --> 00:25:18,010 ahol minden csomópont, hogy a bal oldalon a node megy, hogy egy kisebb értékkel. 559 00:25:18,010 --> 00:25:21,180 És minden értéket a jobb lesz nagyobb. 560 00:25:21,180 --> 00:25:26,900 Tehát, ha látsz 44 van a gyökere, balra, 11, 22, és 33 561 00:25:26,900 --> 00:25:28,940 mind kevesebb, mint a gyökér. 562 00:25:28,940 --> 00:25:33,890 És a jobb oldalon az összes számok bigger-- 66, 55, és 77. 563 00:25:33,890 --> 00:25:37,380 És ez a tulajdonság igaz minden szinten a fa. 564 00:25:37,380 --> 00:25:42,690 >> Tehát amikor megyünk le 22, 11, és 33, még mindig 11 565 00:25:42,690 --> 00:25:46,950 kisebb, mint a 22 és 33 nagyobb, mint 22. 566 00:25:46,950 --> 00:25:50,160 És ez megkönnyíti a keresés mert ha keresünk egy számot, 567 00:25:50,160 --> 00:25:53,877 tudjuk, pontosan melyik ága, hogy kövesse le. 568 00:25:53,877 --> 00:25:56,210 Szóval ez emlékeztetném önöket a kis bináris keresés. 569 00:25:56,210 --> 00:25:56,967 Igen? 570 00:25:56,967 --> 00:25:58,835 >> Közönség: Tehát, ha éppen leíró bináris, 571 00:25:58,835 --> 00:26:00,587 Ön azt mondta, hogy legfeljebb két levél? 572 00:26:00,587 --> 00:26:01,170 HANNAH: Mm-hm. 573 00:26:01,170 --> 00:26:02,580 Közönség: Lehet, hogy kevesebb? 574 00:26:02,580 --> 00:26:03,121 HANNAH: Igen. 575 00:26:03,121 --> 00:26:06,720 Mondjuk, például, ha nem volt páros számú dolgok 576 00:26:06,720 --> 00:26:11,791 és te nem töltse ki az összes levelek, semmi baj, ha az ember egy. 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 Félelmetes. 579 00:26:12,789 --> 00:26:15,930 Bármilyen további kérdése van a fákat? 580 00:26:15,930 --> 00:26:16,670 OK. 581 00:26:16,670 --> 00:26:20,110 >> Vissza a próbálkozás, mint én beszélek egy kicsit korábban, 582 00:26:20,110 --> 00:26:23,900 hogyan kell ezeket a multi-level tömbök. 583 00:26:23,900 --> 00:26:26,280 Tehát ebben az esetben, kezdjük a tetején. 584 00:26:26,280 --> 00:26:29,030 És tudjuk követni az adott szót le. 585 00:26:29,030 --> 00:26:30,780 Tehát mondjuk azt akartuk, keresni Turing. 586 00:26:30,780 --> 00:26:34,380 Kezdjük a T kövesse le tömbbé tartalmazó U, 587 00:26:34,380 --> 00:26:37,350 és kövesse le, amíg meg éri el ezt a kis delta, amely 588 00:26:37,350 --> 00:26:39,060 azt mondja, igen, akkor megtalálta a szót. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 Világos megpróbálja? 591 00:26:44,120 --> 00:26:48,138 Bármi, hogy menjen oda? 592 00:26:48,138 --> 00:26:48,908 Igen? 593 00:26:48,908 --> 00:26:51,866 Közönség: Vajon a szimbóluma delta Van helyet követel magának az esélyt? 594 00:26:51,866 --> 00:26:54,532 HANNAH: Igen, így nem is szükségszerűen kell hogy legyen a delta. 595 00:26:54,532 --> 00:26:57,760 De szükségünk van valamilyen módon mondjuk a computer-- sajnálom, 596 00:26:57,760 --> 00:27:01,130 így tudjuk, hogy TUR nem egy szó. 597 00:27:01,130 --> 00:27:04,180 Mert mondjuk nem volt Ez a koncepció a delta, ez a koncepció 598 00:27:04,180 --> 00:27:09,850 gratulálok, hogy talált egy szót, ez megy keresztül, és léptetjük T-U-R, 599 00:27:09,850 --> 00:27:11,300 majd azt mondják, félelmetes, megtaláltam! 600 00:27:11,300 --> 00:27:12,670 Meg kell egy szót. 601 00:27:12,670 --> 00:27:13,720 De ez tényleg nem. 602 00:27:13,720 --> 00:27:15,310 Szeretnénk egészében Turing, hogy egy szót sem. 603 00:27:15,310 --> 00:27:17,760 Tehát mi kell valamit a end, hogy azt mondja, gratulálok, 604 00:27:17,760 --> 00:27:19,051 megtalálta jogos szót. 605 00:27:19,051 --> 00:27:21,680 Közönség: Tehát, ha kellett, mint 26 betű az ábécében, 606 00:27:21,680 --> 00:27:24,560 azt, hogy tényleg kell 27 kulcsokat a próbát? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH: Félelmetes, igen. 608 00:27:26,010 --> 00:27:28,210 Tehát valójában, azt hiszem, hogy lesz a következő dia. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 Ahol ha van egy node a próbát, akkor 611 00:27:32,880 --> 00:27:35,800 megy, hogy 27 gyermek helyett 26. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 Bármilyen kérdése van ezzel? 614 00:27:40,050 --> 00:27:40,550 Igen? 615 00:27:40,550 --> 00:27:44,569 Közönség: Miért próbál felvenni, így sok hely [hallhatatlan] kirovó? 616 00:27:44,569 --> 00:27:47,629 Miért kell tekinteni [hallhatatlan]? 617 00:27:47,629 --> 00:27:48,170 HANNAH: Persze. 618 00:27:48,170 --> 00:27:48,790 Menjünk vissza. 619 00:27:48,790 --> 00:27:52,350 A kérdés az, hogy miért a próbálkozás sokkal nagyobb 620 00:27:52,350 --> 00:27:54,620 mint olyasmi, mint egy hash táblát. 621 00:27:54,620 --> 00:27:57,790 Így minden egyes ilyen szintek, akkor is, ha ők nem készült itt, 622 00:27:57,790 --> 00:28:01,250 van, hogy mind a 26 karaktert. 623 00:28:01,250 --> 00:28:04,420 És az oka, hogy nem tudsz azt mondják, ó, de mint a Turing, I 624 00:28:04,420 --> 00:28:07,570 nem kell, hogy bármely olyan Ugyanazokat a dolgokat szintjén U. Nos, 625 00:28:07,570 --> 00:28:11,390 ha hirtelen ezt szeretnéd elérni valami, ami olyan volt, mint a T-H, 626 00:28:11,390 --> 00:28:14,800 azt kell, hogy a képessége hozzátéve, hogy szót. 627 00:28:14,800 --> 00:28:17,330 Tehát minden egyes betű, fogsz is 628 00:28:17,330 --> 00:28:19,730 hogy van egy csomó tömbök jön ki belőle. 629 00:28:19,730 --> 00:28:24,060 Így láthatja, hogyan lennék igazán nagy, nagyon gyors. 630 00:28:24,060 --> 00:28:26,560 Más kérdés? 631 00:28:26,560 --> 00:28:28,980 Rendben van. 632 00:28:28,980 --> 00:28:29,832 Igen? 633 00:28:29,832 --> 00:28:33,210 >> Közönség: Mikor próbálkozás gyorsabb, mint hash táblát? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH: Mikor próbálkozás gyorsabb, mint hash táblát? 635 00:28:36,280 --> 00:28:39,120 Tehát, ha volt egy igazán rossz hash függvény. 636 00:28:39,120 --> 00:28:41,840 Mondjuk én, mint itt a hasító függvény. 637 00:28:41,840 --> 00:28:43,660 Nem számít, milyen szót adsz nekem, én mindig 638 00:28:43,660 --> 00:28:47,740 megy, hogy a tömb bejegyzés 0. 639 00:28:47,740 --> 00:28:52,000 És így a végén csak üzembe mindent egy nagy, hosszú láncolt lista. 640 00:28:52,000 --> 00:28:58,740 És így a keresési időt venne igénybe a legrosszabb n, ha ez a legvégén a listánkon. 641 00:28:58,740 --> 00:29:03,150 A próbát, már csak azt kell iterálására levelek útján a szót. 642 00:29:03,150 --> 00:29:07,080 Tehát még ha hozzá egy csomó több szót a próbát, 643 00:29:07,080 --> 00:29:09,620 hogy nem vesz minket tovább megtalálni egy adott szót. 644 00:29:09,620 --> 00:29:11,750 >> Mindössze annyit kell tennie, hogy a Például ebben az esetben, 645 00:29:11,750 --> 00:29:17,170 mondjuk keresünk zoom, mi lenne csak ki kell végighaladni 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, négy betű. 647 00:29:19,840 --> 00:29:22,250 Tehát ez csak a hossza a szó zoom. 648 00:29:22,250 --> 00:29:25,400 Nem számít, hogy hány több szót tesszük ebben a próbát. 649 00:29:25,400 --> 00:29:30,225 Mindig lehet kapni e négy lépésből áll. 650 00:29:30,225 --> 00:29:31,215 Félelmetes. 651 00:29:31,215 --> 00:29:32,205 Igen? 652 00:29:32,205 --> 00:29:34,185 >> Közönség: Szóval [hallható] egy tömb, ugye? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH: Mm-hm. 654 00:29:35,322 --> 00:29:37,155 Közönség: Ha keres [hallható], 655 00:29:37,155 --> 00:29:40,929 azt kell átmenni a tömb találni [hallhatatlan]? 656 00:29:40,929 --> 00:29:41,470 HANNAH: Persze. 657 00:29:41,470 --> 00:29:44,000 Közönség: Ez nem azt több időt vesz igénybe? 658 00:29:44,000 --> 00:29:46,370 HANNAH: Ha megyek azt mondják, hogy én tömb mindig 659 00:29:46,370 --> 00:29:49,250 lesz az A, B, C, D, E, F, G, bla-bla-bla, 660 00:29:49,250 --> 00:29:51,630 Tehát, ha mindig tudom, hogy ez pontosan ugyanolyan sorrendben, 661 00:29:51,630 --> 00:29:53,880 Ha mindig tudom, hogy ez ábécésorrendben, 662 00:29:53,880 --> 00:29:57,860 Én csak azt mondom O száma így és így az ABC-ben. 663 00:29:57,860 --> 00:29:59,620 Ugorjon arra a helyre. 664 00:29:59,620 --> 00:30:01,860 Mert emlékszem, a tömbök, akkor érheti el 665 00:30:01,860 --> 00:30:06,590 minden eleme a tömbben állandó idő, ha tudjuk, hogy hol is keresünk. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 Igen? 668 00:30:09,580 --> 00:30:12,005 >> Közönség: az előző csúsztassa [hallhatatlan] 27, 669 00:30:12,005 --> 00:30:14,430 de 26 az első. 670 00:30:14,430 --> 00:30:15,400 >> HANNAH: Tessék? 671 00:30:15,400 --> 00:30:18,800 >> Közönség: Nem ez az első Egy 0, tehát nem lenne 26? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH: Persze, így amikor azt mondjuk, 27, ennyi elmondja nekünk indexek 0-tól 26. 673 00:30:24,900 --> 00:30:28,220 De ha valóban számít ezeket ki, hogy lesz 27. 674 00:30:28,220 --> 00:30:30,007 Jó kérdés. 675 00:30:30,007 --> 00:30:30,590 Van még valami? 676 00:30:30,590 --> 00:30:31,200 Igen? 677 00:30:31,200 --> 00:30:34,420 >> Közönség: Így van próbálkozás lassabb, mint a hash táblát? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH: Megpróbálja lesznek, a Elméletileg gyorsabb, mint hash táblák 679 00:30:37,920 --> 00:30:39,760 de több memóriát. 680 00:30:39,760 --> 00:30:40,534 Igen? 681 00:30:40,534 --> 00:30:41,450 Közönség: [hallható]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH: Sajnálom, én nem hallom. 684 00:30:47,484 --> 00:30:48,400 Közönség: [hallható]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0-25 ad 26. 687 00:30:54,100 --> 00:30:56,958 >> HANNAH: 0 25 fő kapsz 26, jobbra. 688 00:30:56,958 --> 00:30:58,457 >> Közönség: És akkor [hallhatatlan]. 689 00:30:58,457 --> 00:30:59,040 HANNAH: Így van. 690 00:30:59,040 --> 00:31:04,760 Így a szám mi megadásával is a néhány dolog a tömbben. 691 00:31:04,760 --> 00:31:07,260 Tehát ha van 27, ez elmondja nekünk 0 692 00:31:07,260 --> 00:31:10,620 a 26, amely megadja minket szoba, ebben az esetben, 693 00:31:10,620 --> 00:31:12,770 Én nem beleértve az aposztróf. 694 00:31:12,770 --> 00:31:17,040 Tehát mi megvagyunk 0-tól 25-a Az első 26 az ábécé betűit, 695 00:31:17,040 --> 00:31:18,990 vagy mind a 26 betű az ábécé. 696 00:31:18,990 --> 00:31:21,190 És akkor, hogy az utolsó dolog, belépéskor 26, az 697 00:31:21,190 --> 00:31:24,598 lesz az ellenőrzés jelöli meg, vagy a delta. 698 00:31:24,598 --> 00:31:26,960 Van még valami? 699 00:31:26,960 --> 00:31:29,130 Félelmetes. 700 00:31:29,130 --> 00:31:30,020 Elvesztettem a helyet. 701 00:31:30,020 --> 00:31:31,020 OK, hűvös. 702 00:31:31,020 --> 00:31:33,240 >> Így már érintettem ezt. 703 00:31:33,240 --> 00:31:37,430 De a nagy kompromisszum között a kísérletek és hash táblák 704 00:31:37,430 --> 00:31:39,720 az, hogy megpróbálja biztosítani, a Elméletileg állandó felnéz 705 00:31:39,720 --> 00:31:42,890 szor de egy csomó memóriát. 706 00:31:42,890 --> 00:31:46,495 Rendben, most már valamivel kevésbé bonyolult szerkezetek, 707 00:31:46,495 --> 00:31:49,640 és mi történhet C, és mi költözünk végig. 708 00:31:49,640 --> 00:31:51,930 >> Tehát halom, láttuk ezt előadótermekben, ahol 709 00:31:51,930 --> 00:31:55,020 Van valami, mint egy köteg tálcák, ahol 710 00:31:55,020 --> 00:31:57,330 Az utolsó dolog, amit tesz A stack megy 711 00:31:57,330 --> 00:31:59,500 hogy az első dolog, amit felszállni. 712 00:31:59,500 --> 00:32:02,880 Szóval ez az, ami igazán meghatározza a stack az, hogy az utolsó dolog, amit fel 713 00:32:02,880 --> 00:32:06,080 lesz az első dolog, amit felszállni. 714 00:32:06,080 --> 00:32:09,279 És a terminológiát, hogy az általunk használt ha fogunk tenni valamit, 715 00:32:09,279 --> 00:32:12,070 ha fogunk adni valamit a verem, ezt nevezzük rámenős. 716 00:32:12,070 --> 00:32:14,970 És ha veszünk valamit off, hívjuk pukkanó. 717 00:32:14,970 --> 00:32:17,080 És ha megyünk végre egy köteg, mi 718 00:32:17,080 --> 00:32:20,660 meg kell bizonyosodni arról, hogy nyomon követhesse mind a méret és a kapacitás. 719 00:32:20,660 --> 00:32:24,940 Így az összes elemet tudunk tartása és az aktuális elemek száma 720 00:32:24,940 --> 00:32:27,880 hogy tartunk. 721 00:32:27,880 --> 00:32:29,885 >> És nagyon hasonlóan, mi sorokat. 722 00:32:29,885 --> 00:32:34,510 És az egyetlen különbség ehelyett a halom, 723 00:32:34,510 --> 00:32:37,630 azt mondta, az utolsó dolog, amit fel az első dolog, amit felszállni. 724 00:32:37,630 --> 00:32:40,940 Tehát a sorok, a első dolog, amit beviszünk a 725 00:32:40,940 --> 00:32:43,129 lesz a első dolog, amit kivenni. 726 00:32:43,129 --> 00:32:45,420 Tehát ez olyan, mint ha valóban rajthoz áll a boltban 727 00:32:45,420 --> 00:32:48,140 és te is segített, akkor az első személy sorban 728 00:32:48,140 --> 00:32:50,880 legyen az első, aki segíteni. 729 00:32:50,880 --> 00:32:52,220 Szóval ez lenne a sorban. 730 00:32:52,220 --> 00:32:55,880 >> Tehát meg kell nyomon követni a méret, kapacitás, és a fejét, mivel mi vagyunk 731 00:32:55,880 --> 00:33:01,130 fog tartani mindenkit le az elülső A lista helyett vissza. 732 00:33:01,130 --> 00:33:03,480 Kérdések a véleményed? 733 00:33:03,480 --> 00:33:06,330 Bármilyen C kérdésére gondod? 734 00:33:06,330 --> 00:33:09,590 Adatstruktúrák, bármely olyan vicces dolgokat? 735 00:33:09,590 --> 00:33:10,530 Rendben, jó. 736 00:33:10,530 --> 00:33:14,120 Úgyhogy átadja Alison hogy ugorj be néhány programozási. 737 00:33:14,120 --> 00:33:15,965 >> ALISON: Ó, majd meglátjuk. 738 00:33:15,965 --> 00:33:17,370 Meglátjuk, milyen jól csinálok itt. 739 00:33:17,370 --> 00:33:21,410 OK, megyek próbálni, és repülni révén ez a cucc, srácok. 740 00:33:21,410 --> 00:33:24,540 Hannah nagyon ban mélység minden holmiját. 741 00:33:24,540 --> 00:33:26,900 Megyek próbálja beadni egy gyors robbanás áttekintése 742 00:33:26,900 --> 00:33:31,290 hogy mi lehet eljutni Davin minden A szórakoztató JavaScript és biztonsági dolgok 743 00:33:31,290 --> 00:33:33,380 hogy talán valóban szeretne többet hallani. 744 00:33:33,380 --> 00:33:36,600 >> OK, mint Hannah azt mondta, ha Ha bármilyen kérdése, 745 00:33:36,600 --> 00:33:39,170 Én is megyek gyorsan, kérjük, tudassa velem. 746 00:33:39,170 --> 00:33:42,114 Én válaszolni a kérdésekre, ha szükséges. 747 00:33:42,114 --> 00:33:45,280 Így kezdeni, fogunk kezdeni talán az egyik legelső dolog, 748 00:33:45,280 --> 00:33:48,730 megtanultad a web programozás, az engedélyeket. 749 00:33:48,730 --> 00:33:52,720 Tehát chmod, srácok kellett volna mesterek ebben minden web 750 00:33:52,720 --> 00:33:54,870 programozási, hogy már késõn csináltál. 751 00:33:54,870 --> 00:33:57,320 Ez alapvetően csak a parancs amely megváltoztatja az engedélyeket 752 00:33:57,320 --> 00:34:00,779 vagy a hozzáférési jogosultságok A mi fájlrendszer-objektumok. 753 00:34:00,779 --> 00:34:02,570 Persze, hogy ténylegesen ezeket, ha 754 00:34:02,570 --> 00:34:04,910 hogy bármilyen baj ezekkel során a problémát készletek, 755 00:34:04,910 --> 00:34:11,460 lehet, hogy használt ls -l, ami hosszú, hogy a néző olyan, mint ez a, 756 00:34:11,460 --> 00:34:14,209 ahol valóban látni az összes Az engedélyeket a fájlt. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> És tényleg, mi csak fog menni keresztül elég gyorsan csak szép 759 00:34:20,732 --> 00:34:21,940 sokat, amit minden egyes ilyen jelenti. 760 00:34:21,940 --> 00:34:24,481 Szóval még nap itt, amelyek csak áll a könyvtár. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 Természetesen itt azt látjuk, rwx, amely olvasható, írható, és végrehajtható. 763 00:34:31,739 --> 00:34:37,090 Ezek is képviselteti magát bit, amit majd bejutni a következő oldalon. 764 00:34:37,090 --> 00:34:40,699 Így minden triád, hogy láttuk Itt, így három triádok. 765 00:34:40,699 --> 00:34:48,120 Mi már rwx, r semmi x és r semmi x ehhez első fájlt. 766 00:34:48,120 --> 00:34:49,690 Ez az általános képletben. 767 00:34:49,690 --> 00:34:50,940 >> Így van némi könyvtárban. 768 00:34:50,940 --> 00:34:53,999 Van néhány felhasználói csoport ezekkel a jogosultságokkal. 769 00:34:53,999 --> 00:34:57,040 Néhány csoport, amely ezeket az engedélyeket, és a világnak, hogy van egy engedélyt. 770 00:34:57,040 --> 00:34:59,420 Azt lehet gondolni ezeket a triád. 771 00:34:59,420 --> 00:35:01,130 Azt lehet gondolni ezeket három bit. 772 00:35:01,130 --> 00:35:04,060 Így azok az értékek követése bárhol a 0-ig 773 00:35:04,060 --> 00:35:07,350 7, ezért néha mi volt teszel chmod 774 00:35:07,350 --> 00:35:17,510 Helyett 600 chmod rw bármi. 775 00:35:17,510 --> 00:35:19,170 Veszünk egy példa van. 776 00:35:19,170 --> 00:35:24,260 De alapvetően, akkor gondolom, Ezeknek, mint akár csak rwx, 777 00:35:24,260 --> 00:35:28,520 vagy tudod gondolni rájuk, mint valami száma, ahol az első egy van 778 00:35:28,520 --> 00:35:31,480 jelentése közötti szám 0 és 7, ez a második egy 779 00:35:31,480 --> 00:35:33,970 jelentése közötti szám 0 és 7, valamint a harmadik egy 780 00:35:33,970 --> 00:35:38,245 számot jelent 0 és 7 között, OK? 781 00:35:38,245 --> 00:35:42,700 >> r értéke 4. w értéke 2, és x 782 00:35:42,700 --> 00:35:49,230 értéke 1, ezért ez a engedélyt kellene legyen chmod 700. 783 00:35:49,230 --> 00:35:53,520 Mivel ebben az esetben is, ez azt mondja, már az első bit van van tükrözve. 784 00:35:53,520 --> 00:35:55,380 Tehát van 4-olvasás. 785 00:35:55,380 --> 00:35:58,730 A második bit van tükrözve a w, amely 2, így most már 6. 786 00:35:58,730 --> 00:36:02,070 És a harmadik bit van tükrözve az x, ami 1, így jutunk hét. 787 00:36:02,070 --> 00:36:04,820 És persze, a csoport és a világot egyaránt 0. 788 00:36:04,820 --> 00:36:07,770 Tehát ez is a megfelelője chmod 700. 789 00:36:07,770 --> 00:36:12,081 És azt is biztosan megpróbál megérteni a leképezés között. 790 00:36:12,081 --> 00:36:14,080 Nem vagyok benne biztos, hogy van felér egy kvíz előtt, 791 00:36:14,080 --> 00:36:18,590 de jó lenne egy kérdés, hogy én lehet kérni. 792 00:36:18,590 --> 00:36:22,110 >> Csak egy kicsit még tovább megy tovább chmod itt, itt 793 00:36:22,110 --> 00:36:27,730 a nagyon általános szerkezete a chmod hívás. 794 00:36:27,730 --> 00:36:29,500 Így persze, már chmod itt. 795 00:36:29,500 --> 00:36:34,410 Referenciák, mire is utal, hogy a Kik vagyunk teremtve ezen engedélyekkel 796 00:36:34,410 --> 00:36:36,570 vagy akik már szedik ezeket jogosultságokat re. 797 00:36:36,570 --> 00:36:44,330 Tehát van egy itt a jogosultságokat, mint mi adtam neked chmod a plusz x, 798 00:36:44,330 --> 00:36:45,440 mint látni fogjuk hamarosan. 799 00:36:45,440 --> 00:36:48,460 Egy csak azt jelenti, hogy ezek a konkrét engedélyeket mindenkinek. 800 00:36:48,460 --> 00:36:49,600 Adj nekik minden. 801 00:36:49,600 --> 00:36:55,370 Szóval akkor nagyon is van u plus x vagy g plusz x vagy o plusz x vagy több 802 00:36:55,370 --> 00:36:55,870 cikke. 803 00:36:55,870 --> 00:36:59,280 Tehát ez az első rész mindig lesz hivatkozásokat. 804 00:36:59,280 --> 00:37:03,220 Kik vagyunk mi, így ezeket az engedélyeket az, vagy akik azt figyelembe őket távol? 805 00:37:03,220 --> 00:37:04,850 >> A második az üzemeltető. 806 00:37:04,850 --> 00:37:07,350 Szóval ti nagyrészt foglalkozott plusz. 807 00:37:07,350 --> 00:37:12,140 Ez ad jogosultsága Aki adsz nekik, 808 00:37:12,140 --> 00:37:14,840 míg mínusz, logikusan, eltávolítja azokat. 809 00:37:14,840 --> 00:37:16,880 Tehát semmi túl szörnyű ott. 810 00:37:16,880 --> 00:37:23,060 És akkor módok, amit megbeszéltünk olvasás, írás, vagy végrehajtó. 811 00:37:23,060 --> 00:37:29,070 Tehát egy plusz x azt jelenti, hogy futtatható engedélyeket mindenkinek. 812 00:37:29,070 --> 00:37:33,430 És aztán, persze, amelyre fájl vagy könyvtár. 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 Mindenki jó chmod? 815 00:37:36,010 --> 00:37:37,850 Nem is rossz? 816 00:37:37,850 --> 00:37:42,417 >> OK, így HTML, bárki közületek elég idős to-- MySpace korban? 817 00:37:42,417 --> 00:37:44,750 Elküldtem ezt az én szakaszt, és szó szerint a megkérdezettek fele 818 00:37:44,750 --> 00:37:45,790 nézett rám, mint egy őrült. 819 00:37:45,790 --> 00:37:47,498 És én, mint a srácok, nem vagyunk olyan öreg. 820 00:37:47,498 --> 00:37:48,910 Gyerünk. 821 00:37:48,910 --> 00:37:53,360 Tehát Hypertext Markup Language, ez tényleg csak egy módja, 822 00:37:53,360 --> 00:37:57,990 megjelenítésére bizonyos dolgokat az interneten. 823 00:37:57,990 --> 00:37:59,210 Szóval ez egy leíró nyelv. 824 00:37:59,210 --> 00:38:00,640 Ez nem egy programozási nyelv. 825 00:38:00,640 --> 00:38:02,160 Nincs logika azt. 826 00:38:02,160 --> 00:38:05,710 Ez egyszerűen változtatni a Így valami jelenik meg. 827 00:38:05,710 --> 00:38:07,670 OK, szóval ez egy fontos Különbséget kell tenni. 828 00:38:07,670 --> 00:38:12,030 Ez tekinthető egy leíró nyelv, Nem egy programozási nyelv. 829 00:38:12,030 --> 00:38:15,100 >> Tehát itt van a mi HTML. 830 00:38:15,100 --> 00:38:20,390 Ezen slide valószínűleg a legtöbb azokat, amiket meg kell ismernie 831 00:38:20,390 --> 00:38:22,390 és igazán kényelmes. 832 00:38:22,390 --> 00:38:25,700 Tehát nyilvánvaló, hogy van a HTML tag, amely 833 00:38:25,700 --> 00:38:29,930 jelöli, hogy mindent E két lesznek HTML. 834 00:38:29,930 --> 00:38:33,070 Van néhány link, amely Nyilvánvalóan Önnek 835 00:38:33,070 --> 00:38:34,990 egy linket egy külső weboldalon. 836 00:38:34,990 --> 00:38:37,520 Néhány cím belül fejünk itt. 837 00:38:37,520 --> 00:38:40,020 És mi van a test H1, amely egy fejléc, 838 00:38:40,020 --> 00:38:42,260 így lesz, hogy szép és merész és nagyobb. 839 00:38:42,260 --> 00:38:46,040 És akkor mi van némi p, amely egy bekezdés. 840 00:38:46,040 --> 00:38:49,000 Akkor valószínűleg tudja, és ismernie kell a dolgokat 841 00:38:49,000 --> 00:38:54,030 mint azt, hogyan képet beszúrni, amelyek Van más header osztályok? 842 00:38:54,030 --> 00:38:57,240 Azt biztosan kényelmes div. 843 00:38:57,240 --> 00:39:00,840 Tehát ezek többsége címkék hogy meg kell ismernie kell. 844 00:39:00,840 --> 00:39:04,370 De természetesen, mint minden a CS 50, a lista nem teljes. 845 00:39:04,370 --> 00:39:08,200 Ügyeljen arra, hogy ecsettel fel, hogy. 846 00:39:08,200 --> 00:39:13,260 >> CSS, így CSS, ha valakinek nézni én szemináriumot a két héttel ezelőtti, 847 00:39:13,260 --> 00:39:16,250 tényleg csak egy módja stílust a weboldal? 848 00:39:16,250 --> 00:39:18,950 OK, így van némi jelölőnyelv. 849 00:39:18,950 --> 00:39:23,220 HTML, amely gondoskodik a csak a szöveg és hol lehet az oldalon. 850 00:39:23,220 --> 00:39:25,760 De CSS valóban mi teszi elég. 851 00:39:25,760 --> 00:39:30,690 Lehet, hogy ezeket a HTML fájlokat, de fogunk beszélni később, 852 00:39:30,690 --> 00:39:32,660 Biztos vagyok benne, hogy talán hogy a következő diát, akkor 853 00:39:32,660 --> 00:39:35,620 Általános gyakorlat, és ténylegesen gyakorlatot, hogy valóban ösztönözni, 854 00:39:35,620 --> 00:39:40,670 , hogy tartsa őket egymástól, amikor beszélni MVC, és hogy az egész paradigma. 855 00:39:40,670 --> 00:39:42,490 Ez tényleg, mi ez táplálja. 856 00:39:42,490 --> 00:39:46,110 >> Tehát CSS csak egy módja annak, hogy hogy a dolgok nézel. 857 00:39:46,110 --> 00:39:50,500 A dolog van, mint a test és #title és .info, 858 00:39:50,500 --> 00:39:54,340 ezek az úgynevezett választók és mit úgy csinálják, hogy válasszuk külön a dolgokat 859 00:39:54,340 --> 00:39:59,260 belül a HTML fájlt és alkalmazni mindegy, milyen stílusban, 860 00:39:59,260 --> 00:40:04,090 bármilyen fajta dolog, amit akar, E sajátos eleme a web 861 00:40:04,090 --> 00:40:04,590 oldalon. 862 00:40:04,590 --> 00:40:08,820 Tehát itt van egy háttérszínt és egy színes 863 00:40:08,820 --> 00:40:12,450 és Betűcsalád, amit most alkalmazott, hogy bármi is van a szervezetben. 864 00:40:12,450 --> 00:40:15,530 Tehát, ha nézett vissza ide, hogy nem vonatkozna a cím. 865 00:40:15,530 --> 00:40:22,340 Ez csak azokra mi Ezekben test választók, OK? 866 00:40:22,340 --> 00:40:25,250 >> A cím itt, ez lesz ugyanaz a dolog, 867 00:40:25,250 --> 00:40:28,410 a színe a szöveg hogy kék csak akkor fog 868 00:40:28,410 --> 00:40:33,870 befolyásolja, ami belül A cím választók. 869 00:40:33,870 --> 00:40:36,580 Valamint az információ itt A szöveget a pink, 870 00:40:36,580 --> 00:40:38,600 bármi van info, ami itt van. 871 00:40:38,600 --> 00:40:40,860 Tehát az egyetlen dolog, ami lenne pink ezen az oldalon 872 00:40:40,860 --> 00:40:44,100 az időpont, hétfő, november 17, 2014. 873 00:40:44,100 --> 00:40:48,770 OK, így CSS csak egy módja annak, hogy több ellenőrzés over-- igen? 874 00:40:48,770 --> 00:40:51,850 >> Közönség: Miért kell használja a hash cím? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH: Next slide, megígérem! 876 00:40:55,170 --> 00:40:56,810 Mi lesz ott. 877 00:40:56,810 --> 00:40:59,830 Tehát ezért kell használnunk hash. 878 00:40:59,830 --> 00:41:03,429 Tehát választók veszi három fő formákat, hogy beszéljen nektek szól. 879 00:41:03,429 --> 00:41:05,595 Azt fyou szeretne többet, rengeteg odakint. 880 00:41:05,595 --> 00:41:07,540 Ott nagy CSS dokumentációt. 881 00:41:07,540 --> 00:41:12,680 Van egy tag nevét, amely arról szól, hogy csak a szokásos címkéket HTML-ben. 882 00:41:12,680 --> 00:41:17,210 Tehát H1, p, div, h2, azok a dolgok. 883 00:41:17,210 --> 00:41:20,320 És mi csak megnevezni azokat, ahogy van. 884 00:41:20,320 --> 00:41:22,650 Tehát mint látjuk itt test, ez egy normális tag. 885 00:41:22,650 --> 00:41:26,660 Szóval csak fel testben, ha beszélünk a mi CSS fájlban. 886 00:41:26,660 --> 00:41:29,730 >> Címmel, az egész oka van ezt hash van, mi van 887 00:41:29,730 --> 00:41:31,010 minősül ID. 888 00:41:31,010 --> 00:41:35,400 Tehát egy azonosítót mindig belül egyedi HTML oldalt 889 00:41:35,400 --> 00:41:37,930 úgy, hogy ha a utalva rá, akkor 890 00:41:37,930 --> 00:41:41,990 tudom, hogy te csak utalva hogy egy adott dolog. 891 00:41:41,990 --> 00:41:46,270 Tehát ebben az esetben is, a mi H1 itt, CS 50 felülvizsgálati ülésén, 892 00:41:46,270 --> 00:41:47,810 van egy id cím. 893 00:41:47,810 --> 00:41:54,280 Tehát annak érdekében, hogy csak nézze meg, hogy darab a HTML, mi egy hash címet. 894 00:41:54,280 --> 00:41:58,080 Csak egyezményesen azonosítókat jelölnek A kettőskereszt előttük. 895 00:41:58,080 --> 00:42:01,650 Ugyanígy, azt látjuk, info itt van egy osztályban. 896 00:42:01,650 --> 00:42:06,070 És így osztályban CSS jelölték a dot osztály 897 00:42:06,070 --> 00:42:08,895 vagy pont, amit az osztályban van. 898 00:42:08,895 --> 00:42:10,850 Tehát ebben az esetben is, ez info. 899 00:42:10,850 --> 00:42:13,090 >> Így hát vegye vissza. 900 00:42:13,090 --> 00:42:16,200 Mindkét lennének rózsaszín a mi CSS itt 901 00:42:16,200 --> 00:42:18,430 mert mindketten egy osztály info. 902 00:42:18,430 --> 00:42:23,070 És a mi CSS fájlban, már kijelölt hogy semmit egy osztály info 903 00:42:23,070 --> 00:42:24,120 legyen rózsaszín. 904 00:42:24,120 --> 00:42:25,968 Van ennek értelme? 905 00:42:25,968 --> 00:42:27,435 Igen? 906 00:42:27,435 --> 00:42:30,731 >> Közönség: Ha volt, hogy mindenre a szervezetben fehér, 907 00:42:30,731 --> 00:42:32,814 majd megpróbáljuk valami benne kék, 908 00:42:32,814 --> 00:42:34,770 azt, hogy problémát okozhat? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH: Tehát CSS Cascading Style Sheets. 910 00:42:37,310 --> 00:42:40,730 Tehát bármit is felé alján előnyt élvez. 911 00:42:40,730 --> 00:42:44,080 Tehát, ha valamit csinálni test, és te is mindent fehér, 912 00:42:44,080 --> 00:42:49,300 majd később megváltoztatja a címet vagy megváltoztatja a szöveget belüli test, 913 00:42:49,300 --> 00:42:50,560 felülírja ezt. 914 00:42:50,560 --> 00:42:55,360 Tehát semmi felé alján előnyt élvez. 915 00:42:55,360 --> 00:42:56,730 Igen? 916 00:42:56,730 --> 00:42:59,627 >> Közönség: És azonosítók egyediek, de az osztályok lehetnek még? 917 00:42:59,627 --> 00:43:00,210 HANNAH: Így van. 918 00:43:00,210 --> 00:43:06,320 Tehát azonosítók egyedinek kell lennie, és osztályok olvassa el, nagyon sok mindent, mint szeretné. 919 00:43:06,320 --> 00:43:07,580 Más kérdés? 920 00:43:07,580 --> 00:43:09,800 Igen. 921 00:43:09,800 --> 00:43:11,210 >> Közönség: [hallható]. 922 00:43:11,210 --> 00:43:13,509 Kíváncsi vagyok, hogy ez teszi a különbséget. 923 00:43:13,509 --> 00:43:15,217 HANNAH: Sajnálom, mi volt a kérdés? 924 00:43:15,217 --> 00:43:18,960 Közönség: Van kicsi "F" és a tőke "F." 925 00:43:18,960 --> 00:43:21,440 HANNAH: Tehát a különbség közötti kis "f" és a tőke "F" 926 00:43:21,440 --> 00:43:22,606 nem tesz különbséget. 927 00:43:22,606 --> 00:43:26,330 Tehát "f" lesz 15 mindkét irányban. 928 00:43:26,330 --> 00:43:28,130 Cool, bármi más? 929 00:43:28,130 --> 00:43:29,930 Mindenki jó, CSS? 930 00:43:29,930 --> 00:43:30,850 Igen? 931 00:43:30,850 --> 00:43:31,790 >> Közönség: Sorry. 932 00:43:31,790 --> 00:43:35,550 Lehet, hogy van egy osztály és az ID? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH: Igen, ez lehetséges. 934 00:43:38,030 --> 00:43:40,420 A dolgok már mind az osztály és az azonosító. 935 00:43:40,420 --> 00:43:44,670 És én nagyon ajánlom tesztelik ezeket a saját. 936 00:43:44,670 --> 00:43:50,480 CSS akkor tanulnak a legjobban, csak azzal, hogy valamit, nagyon egyszerű internetes oldalt, 937 00:43:50,480 --> 00:43:53,440 kidolgozása CSS-t, és csak látva, hogyan hatnak egymásra. 938 00:43:53,440 --> 00:43:56,970 És akkor nyereség egy nagyon jó, intuitív értelme, hogyan működik. 939 00:43:56,970 --> 00:43:58,810 >> OK, mindenki jó CSS-t? 940 00:43:58,810 --> 00:44:01,280 Mind meg fogtok tenni szép weboldalak CSS most. 941 00:44:01,280 --> 00:44:05,460 OK, a legjobb gyakorlatok, csak dolgokat kell szem előtt tartani, a dolgok 942 00:44:05,460 --> 00:44:09,810 hogy-- ezért is kiköthet Ön a designer és miegymás. 943 00:44:09,810 --> 00:44:11,820 Tehát zárja be az összes HTML tag. 944 00:44:11,820 --> 00:44:14,840 Tehát ha van egy nyitott szervezet, léteznie kell egy közeli testet. 945 00:44:14,840 --> 00:44:18,180 Ha van egy nyitott bekezdés, léteznie kell egy közel bekezdés. 946 00:44:18,180 --> 00:44:19,555 Ellenőrizze, hogy az oldal érvényesíti. 947 00:44:19,555 --> 00:44:23,330 Srácok, jól kell ismerniük ezzel származó p-set hét 948 00:44:23,330 --> 00:44:26,350 A CS 50 pénzügyek A W3 elfogadó. 949 00:44:26,350 --> 00:44:28,340 És mint már mondtam, Az egyik nagy paradigmák 950 00:44:28,340 --> 00:44:33,780 elválasztja a stílus CSS az Ön jelölés, amely HTML. 951 00:44:33,780 --> 00:44:36,900 És aztán, persze, van ez a nagy XKCD le ide. 952 00:44:36,900 --> 00:44:38,280 Hurrá, komikus! 953 00:44:38,280 --> 00:44:41,340 >> OK, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 Ezek között és a HTTP, Alapvetően mindketten protokollokat. 955 00:44:44,650 --> 00:44:46,810 Szóval akkor csak gondolja Ezek a szabályok 956 00:44:46,810 --> 00:44:50,110 szabályozzák, hogy milyen dolgokat mozog az interneten keresztül. 957 00:44:50,110 --> 00:44:53,410 Tehát adásellenŒrzŒ protokoll, illetve internet protokoll, 958 00:44:53,410 --> 00:44:57,280 csak egy módja annak, hogy hogy az adatok kap hová megy 959 00:44:57,280 --> 00:45:00,030 és hogy tudjuk, ha mi valaha hiányzó adatokat. 960 00:45:00,030 --> 00:45:03,520 Tehát, ha hiszitek, vissza előadás Pár héttel ezelőtt David 961 00:45:03,520 --> 00:45:06,980 ahol volt négy borítékot, akkor mind számozzák, mint a négy, 962 00:45:06,980 --> 00:45:11,300 kettő, négy, három, négy, négy a Négy, ez csak egy szabályrendszer. 963 00:45:11,300 --> 00:45:13,830 Mi azt mondtuk, rendben, amikor mi vagyunk küld több mint egy csomag, 964 00:45:13,830 --> 00:45:16,610 fogjuk, hogy megszámlálja azt milyen számról van 965 00:45:16,610 --> 00:45:19,040 és összesen hány, hogy A felhasználó kap. 966 00:45:19,040 --> 00:45:22,540 >> És ez csak azt mondom, aki kap az adatokat, hogy azok 967 00:45:22,540 --> 00:45:26,120 ütött mindent, vagy ha valami eltévedt az út mentén. 968 00:45:26,120 --> 00:45:28,840 És meg kell kérni újra. 969 00:45:28,840 --> 00:45:31,140 Ez tényleg csak egy szabályrendszer. 970 00:45:31,140 --> 00:45:33,650 Így lehet gondolni rá, OK? 971 00:45:33,650 --> 00:45:37,700 És azt is, hogy meghatározza a port, amely srácok can-- Tudom során előadást, 972 00:45:37,700 --> 00:45:39,170 volt egy egész portok listáját. 973 00:45:39,170 --> 00:45:41,630 De nem kell őket itt. 974 00:45:41,630 --> 00:45:45,290 >> Tehát Hypertext Transfer Protocol van, újra, ez egy másik protokollt. 975 00:45:45,290 --> 00:45:48,630 Szóval ez egy szabályzat hogy szabályozzák, ebben az esetben, 976 00:45:48,630 --> 00:45:51,130 hogyan hypertext át. 977 00:45:51,130 --> 00:45:54,340 Tehát csak lehetővé teszi a böngészők beszélni web szerverek. 978 00:45:54,340 --> 00:45:56,910 És ahogy mondta itt, hogy mint az emberi kézfogás. 979 00:45:56,910 --> 00:46:00,480 Ez csak egy módja annak, hogy szabályozzák hogy a webszerver 980 00:46:00,480 --> 00:46:02,690 fog lépni a böngészőben. 981 00:46:02,690 --> 00:46:05,660 És mi van, csak egy pár példa. 982 00:46:05,660 --> 00:46:09,100 Van néhány kérést itt ahol GET a módszer. 983 00:46:09,100 --> 00:46:13,760 Van HTTP 1.1, amely protokollverziót számunkra. 984 00:46:13,760 --> 00:46:17,230 És akkor, a házigazda, amely a mi mi próbálunk elérni. 985 00:46:17,230 --> 00:46:21,800 Aztán, ahogy itt látsz, azt egy kis választ ezzel 200 986 00:46:21,800 --> 00:46:25,032 OK, mint a mi HTTP válasz kódját. 987 00:46:25,032 --> 00:46:27,240 Van egy nagy listát fogok hogy húzza fel egy másodperc alatt 988 00:46:27,240 --> 00:46:29,430 hogy a srácok meg kell ismernie. 989 00:46:29,430 --> 00:46:35,750 És mi van a tartalom text / html típusú, ami csak azt mondja, hogy milyen típusú adatok 990 00:46:35,750 --> 00:46:39,990 vagyunk fogadására a szerverről, OK? 991 00:46:39,990 --> 00:46:44,230 Ez a gép és a tartalom típus részei a HTTP fejléceket. 992 00:46:44,230 --> 00:46:49,610 Akkor lehet, mint néhány vagy kevés, szükséges összefüggésben, amit 993 00:46:49,610 --> 00:46:50,580 te dolgod. 994 00:46:50,580 --> 00:46:53,371 Néha lesz egy csomó származó információk a szerver. 995 00:46:53,371 --> 00:46:56,040 Talán ők kérő sok származó információk a felhasználó. 996 00:46:56,040 --> 00:46:57,600 A szükséges idő függ a kontextusban. 997 00:46:57,600 --> 00:47:01,144 Ha megnézzük a CS 50 Study, van egy csomó bővebben. 998 00:47:01,144 --> 00:47:03,060 De van egy csomó, hogy keresztül, úgyhogy megyek 999 00:47:03,060 --> 00:47:05,760 hogy tessék, ha ez rendben van veletek? 1000 00:47:05,760 --> 00:47:07,960 Cool. 1001 00:47:07,960 --> 00:47:08,460 Várj. 1002 00:47:08,460 --> 00:47:11,182 Én biztosan van, hogy teljes lista of-- huh! 1003 00:47:11,182 --> 00:47:13,140 Nem tudom, miért van ez egészen ide. 1004 00:47:13,140 --> 00:47:15,660 Azt hittem, a szó szoros értelmében költözött közben voltam sitting-- 1005 00:47:15,660 --> 00:47:16,540 >> DAVIN: Szeretné tanítani? 1006 00:47:16,540 --> 00:47:17,420 Vagy azt akarod, hogy tanítsa meg? 1007 00:47:17,420 --> 00:47:20,010 >> Közönség: Gondoltam Csak mutasd meg nekik kezdeni. 1008 00:47:20,010 --> 00:47:22,210 Úgy értem, akkor menj be őket tovább, de én 1009 00:47:22,210 --> 00:47:26,030 gondoltam, hogy több értelme, mert én csak beszélek HTTP státusz. 1010 00:47:26,030 --> 00:47:28,200 Tehát itt a teljes lista. 1011 00:47:28,200 --> 00:47:31,730 Azt hiszem, mi fog történni a Davin fog menni később. 1012 00:47:31,730 --> 00:47:35,330 De van egy teljes lista, a ízelítőt az ízét, hogy jöjjön. 1013 00:47:35,330 --> 00:47:41,640 OK, fogunk blow-- ez megy hogy a PHP gyorstalpaló, mint senki más. 1014 00:47:41,640 --> 00:47:44,874 >> Tehát PHP, a hipertext feldolgozó, ez egy rekurzív backronym, 1015 00:47:44,874 --> 00:47:46,540 ami azt jelenti nevezték valami mást. 1016 00:47:46,540 --> 00:47:49,050 És akkor olyanok voltak, mint ez a nem igazán van értelme. 1017 00:47:49,050 --> 00:47:52,210 Így csak elemzi it-- és ez egy mozaikszó, 1018 00:47:52,210 --> 00:47:54,840 így csak tette PHP hipertext feldolgozó, amely 1019 00:47:54,840 --> 00:47:55,980 Csak nincs értelme. 1020 00:47:55,980 --> 00:47:57,714 Szórakoztató történet. 1021 00:47:57,714 --> 00:47:58,880 Ez egy programozási nyelv. 1022 00:47:58,880 --> 00:48:02,360 Tehát, mint szeretném hangsúlyozni, hogy HTML nem egy programozási nyelv, 1023 00:48:02,360 --> 00:48:05,350 ez egy leíró nyelv, a PHP egy programozási nyelv. 1024 00:48:05,350 --> 00:48:07,422 Hogyan tudod ezt mert van logika. 1025 00:48:07,422 --> 00:48:08,380 Vannak feltételes. 1026 00:48:08,380 --> 00:48:12,750 Van változók, míg mi Van senki azok közül a dolgok HTML. 1027 00:48:12,750 --> 00:48:16,960 >> Rendben, akkor itt van ez a kis Néha itt, hogy olyan, mint egy kis ízelítőt a PHP. 1028 00:48:16,960 --> 00:48:20,510 Tehát alapjait, változó neve kezdeni egy dollár jel. 1029 00:48:20,510 --> 00:48:21,500 Sok ember szereti. 1030 00:48:21,500 --> 00:48:22,371 Emlékeztet minket a pénz. 1031 00:48:22,371 --> 00:48:22,995 Ez mind jó. 1032 00:48:22,995 --> 00:48:25,280 Mindannyian szeretnénk PHP. 1033 00:48:25,280 --> 00:48:28,020 Tehát nem ad meg változó típusát többé. 1034 00:48:28,020 --> 00:48:29,995 Ez határozza meg futás közben. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 A tolmács lesz, mint, Ó, akkor csak végigmenni, 1037 00:48:35,890 --> 00:48:39,565 és értelem szerűen, majd meglátjuk, milyen típusú 1038 00:48:39,565 --> 00:48:41,560 ezeket a változókat szükség van. 1039 00:48:41,560 --> 00:48:42,815 Nincs fő funkciója. 1040 00:48:42,815 --> 00:48:43,690 A dolgok csak futni. 1041 00:48:43,690 --> 00:48:47,851 Srácok az Ön import a utolsó p-be, akkor veszi észre. 1042 00:48:47,851 --> 00:48:49,350 Nem volt igazán a fő funkciója. 1043 00:48:49,350 --> 00:48:52,070 Csak azt írtam, amit akartad, akkor. 1044 00:48:52,070 --> 00:48:53,280 És ez csak egyfajta történt. 1045 00:48:53,280 --> 00:48:56,760 Szóval ez PHP az Ön számára. 1046 00:48:56,760 --> 00:48:59,180 >> A tömbök nagyon hasonló. 1047 00:48:59,180 --> 00:49:01,270 Még mindig van ez a konzol. 1048 00:49:01,270 --> 00:49:05,940 Itt van néhány változót nevű arr, és ez egyenlő 1049 00:49:05,940 --> 00:49:08,540 to-- megvan a normális konzol jelöléssel. 1050 00:49:08,540 --> 00:49:10,630 És van néhány alapvető érték. 1051 00:49:10,630 --> 00:49:14,630 És a nagy különbség a C és PHP tömbök 1052 00:49:14,630 --> 00:49:19,330 az, hogy mi lehet ennek a associate-- hozzárendeljük az értékeket kulcsokat. 1053 00:49:19,330 --> 00:49:22,440 Tehát ahelyett, hogy csak úgy, tömb indexelt 1054 00:49:22,440 --> 00:49:26,630 száma, vagy a pozíció ezen elem a tömbben, 1055 00:49:26,630 --> 00:49:29,060 mi is valójában társítását a gombot. 1056 00:49:29,060 --> 00:49:36,700 Ahol azt mondhatjuk, OK, azt akarom, amit értéket rendel hozzá a gyümölcs. 1057 00:49:36,700 --> 00:49:39,280 És talán van gyümölcs ment banán. 1058 00:49:39,280 --> 00:49:41,760 Így bejöttünk, banán nekünk. 1059 00:49:41,760 --> 00:49:44,100 >> De alapvetően, a leginkább nagy dolog ez a 1060 00:49:44,100 --> 00:49:47,960 az, hogy ha a srácok emlékszik a demo előadás, ahol alapvetően 1061 00:49:47,960 --> 00:49:53,050 Átírta helyesírás PHP és was-- keresési tényleg csak tetszik, 1062 00:49:53,050 --> 00:49:55,007 nem ez a kulcs létezik? 1063 00:49:55,007 --> 00:49:56,590 Ez tényleg ilyen az erejét. 1064 00:49:56,590 --> 00:49:58,560 Nem kell iterációkhoz át a tömböt. 1065 00:49:58,560 --> 00:50:00,311 Önnek nem kell tudni mi helyet bent van. 1066 00:50:00,311 --> 00:50:01,976 Ez lehet a végén, vagy az elején. 1067 00:50:01,976 --> 00:50:04,790 Mindaddig, amíg tudod, hogy a legfontosabb ami társított értéket, 1068 00:50:04,790 --> 00:50:09,740 PHP is csak köpni, hogy értéke Rögtön jövök ki rád, OK? 1069 00:50:09,740 --> 00:50:12,960 >> És akkor, mi is csak van csak azért, mert 1070 00:50:12,960 --> 00:50:16,750 lehet kulcs érték párok nem jelenti azt, hogy. 1071 00:50:16,750 --> 00:50:19,180 Azt is csak létre egy normális tömb, mint itt, 1072 00:50:19,180 --> 00:50:21,540 az alján, ahol ez csak egy, kettő, három, négy. 1073 00:50:21,540 --> 00:50:22,510 Ezek értékeinket. 1074 00:50:22,510 --> 00:50:25,320 És valóban, a kulcsok pedig a mutatók. 1075 00:50:25,320 --> 00:50:26,830 Tehát a legfontosabb egy nulla lenne. 1076 00:50:26,830 --> 00:50:28,610 A gomb két lenne az egyik. 1077 00:50:28,610 --> 00:50:31,910 Így tovább és így tovább, hacsak Ön kifejezetten hozzá egy kulcsot, 1078 00:50:31,910 --> 00:50:34,630 akkor feltételezhetjük, hogy a értéke csak az index. 1079 00:50:34,630 --> 00:50:37,290 Van ennek értelme mindenki számára? 1080 00:50:37,290 --> 00:50:38,070 Nem kérdés? 1081 00:50:38,070 --> 00:50:38,930 Félelmetes. 1082 00:50:38,930 --> 00:50:44,420 >> OK, foreach egy módja annak, hogy halad végig a tömbök. 1083 00:50:44,420 --> 00:50:47,490 Szóval van itt valami, csak az általános szerkezet. 1084 00:50:47,490 --> 00:50:51,020 Tehát foreach, a nevét a tömb, mint bármi 1085 00:50:51,020 --> 00:50:53,930 szeretnénk felhívni minden eleme a tömb, 1086 00:50:53,930 --> 00:50:57,270 és mi tehetünk valamit elemnek vagy ezzel az értékkel. 1087 00:50:57,270 --> 00:50:58,680 Tehát van példának. 1088 00:50:58,680 --> 00:51:05,770 Van egy asszociatív tömb két bejegyzés 1089 00:51:05,770 --> 00:51:10,080 bárral, hogy hozzájárulhatunk ize és qux részvétel a BAZ. 1090 00:51:10,080 --> 00:51:12,180 Tehát kulcsok ize és BAZ. 1091 00:51:12,180 --> 00:51:13,650 Az értékek bár és qux. 1092 00:51:13,650 --> 00:51:18,560 Tehát foreach, van array itt is, mint a kulcs-érték párt. 1093 00:51:18,560 --> 00:51:21,560 Ez lehetővé teszi számunkra, hogy hozzáférést mind a kulcs és érték. 1094 00:51:21,560 --> 00:51:23,680 Lehet, hogy csak azt a érték, amely esetben 1095 00:51:23,680 --> 00:51:27,640 akkor csak csinálni, mint arr as $ ertek, és akkor 1096 00:51:27,640 --> 00:51:30,640 csak elérni a értékét ahogy halad végig. 1097 00:51:30,640 --> 00:51:32,600 De talán, valamilyen Ezért szeretné a kulcsot, 1098 00:51:32,600 --> 00:51:35,460 ezért úgy döntöttem, ezt a példát helyette. 1099 00:51:35,460 --> 00:51:40,240 Így valóban manipulálni kulcs és érték ebben az esetben. 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 Kérdés? 1102 00:51:41,905 --> 00:51:44,279 >> Közönség: Ha akarta, hogy Csak manipulálni a kulcsot, ami 1103 00:51:44,279 --> 00:51:45,910 meg kell csinálni foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON: Így van. 1105 00:51:47,360 --> 00:51:50,560 Tehát, ha akar manipulálni, csak a kulcsot, 1106 00:51:50,560 --> 00:51:53,680 te még mindig szükség erre szintaxis mert ha éppen 1107 00:51:53,680 --> 00:51:56,930 van arr, mint valami, az egyik dolog, ez 1108 00:51:56,930 --> 00:52:00,070 Feltételezem, hogy szeretné az érték, nem a legfontosabb. 1109 00:52:00,070 --> 00:52:06,780 Tehát, ha valaha csak meg, mint arr, mint, talán ez olyan, mint $ elem, 1110 00:52:06,780 --> 00:52:11,670 ez lesz a feltételezés, hogy kérded A csak az érték minden ponton. 1111 00:52:11,670 --> 00:52:13,879 Ha kifejezetten akar tenni valamit a legfontosabb, 1112 00:52:13,879 --> 00:52:16,170 akkor is, ha nem fogod mit kezdeni az értéket, 1113 00:52:16,170 --> 00:52:18,430 Szüksége van erre szerkezete hogy itt van 1114 00:52:18,430 --> 00:52:22,330 hová kifejezetten kéri mind a kulcs, és az értéket. 1115 00:52:22,330 --> 00:52:24,170 Nagy kérdés. 1116 00:52:24,170 --> 00:52:25,940 Van még valami? 1117 00:52:25,940 --> 00:52:27,490 Cool. 1118 00:52:27,490 --> 00:52:29,911 >> Rendben, PHP és HTML. 1119 00:52:29,911 --> 00:52:31,410 Ó, mi vissza p-set hét újra. 1120 00:52:31,410 --> 00:52:35,380 Tehát ez kell nézni egy kicsit ismerős. 1121 00:52:35,380 --> 00:52:41,760 Tehát ez néhány egyszerű HTML form hogy van néhány input name of helló. 1122 00:52:41,760 --> 00:52:43,820 És látjuk, mi van a módszer GET. 1123 00:52:43,820 --> 00:52:47,430 És ha arra gondolunk, a mi p-set, amikor a lapot bemutatják, 1124 00:52:47,430 --> 00:52:58,130 küld nevű tömbben $ _GET, amely az összes ilyen bemenet vagy változók 1125 00:52:58,130 --> 00:53:00,490 formájában, hogy legyen manipulálni a PHP. 1126 00:53:00,490 --> 00:53:03,320 Tehát ebben az esetben, a felhasználó tenné, hogy a nevükben. 1127 00:53:03,320 --> 00:53:04,370 Azt állítják azt. 1128 00:53:04,370 --> 00:53:07,810 És azt látjuk, hogy egy kis tömb itt. 1129 00:53:07,810 --> 00:53:09,080 Megvan a GET tömb. 1130 00:53:09,080 --> 00:53:11,510 És mi hozzáférnek a nevét. 1131 00:53:11,510 --> 00:53:15,070 >> Úgy, hogy azt mondja, OK, adj a értéket, ami jár a nevet, 1132 00:53:15,070 --> 00:53:16,550 elnevezésére a kulcs itt. 1133 00:53:16,550 --> 00:53:21,400 És, hogy a térképeket közvetlenül a mi mondtuk input név. 1134 00:53:21,400 --> 00:53:28,960 Szóval ez adta meg a kulcsot, hogy mit lesz a tömb itt. 1135 00:53:28,960 --> 00:53:31,220 Van ennek értelme mindenki számára? 1136 00:53:31,220 --> 00:53:32,070 Igen? 1137 00:53:32,070 --> 00:53:36,240 >> Közönség: Az a név, a GET lásd A lila vonal [hallhatatlan]? 1138 00:53:36,240 --> 00:53:37,740 >> ALISON: Arra utal, hogy ez az itt. 1139 00:53:37,740 --> 00:53:43,840 Tehát ezen a területen itt, arra utal, hogy ez a név itt. 1140 00:53:43,840 --> 00:53:47,800 Tehát ez lehetett volna elemzi mint a telefonszámot, vagy bármi más. 1141 00:53:47,800 --> 00:53:51,790 Ez a név is mondja, hogy mi hívsz ezen a területen? 1142 00:53:51,790 --> 00:53:53,600 Hogyan fogsz olvassa el ezen a területen? 1143 00:53:53,600 --> 00:53:57,670 És ez a név az tetszik, mi vagyunk mondván ezen a területen az úgynevezett nevet. 1144 00:53:57,670 --> 00:53:59,224 Így fogunk hozzáférni. 1145 00:53:59,224 --> 00:54:02,070 >> Közönség: Így van ez tetszik, input neve egyet Bob, és-- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON: Jobb, akkor kapnánk Bob odalent. 1147 00:54:04,380 --> 00:54:06,090 Pontosan. 1148 00:54:06,090 --> 00:54:07,800 Mindenki jó? 1149 00:54:07,800 --> 00:54:10,990 Rendben, úgyhogy versus POST, ez az a két fő módja 1150 00:54:10,990 --> 00:54:14,880 hogy átadjuk az adatokat egy HTTP kérést. 1151 00:54:14,880 --> 00:54:17,370 Srácok kellett volna látni mindkét remélhetőleg. 1152 00:54:17,370 --> 00:54:20,940 Tehát a GET, az információs áthalad a URL-t. 1153 00:54:20,940 --> 00:54:23,490 Tehát, ha valaha is Google keresések, YouTube, akkor 1154 00:54:23,490 --> 00:54:25,130 valószínűleg észre néhány kérdőjel. 1155 00:54:25,130 --> 00:54:28,230 És akkor, az összes szó hogy csak fel oda. 1156 00:54:28,230 --> 00:54:31,410 És POST halad az adatokat A HTTP üzenet törzsét. 1157 00:54:31,410 --> 00:54:36,922 Annyira nem GET, akkor milyen fontolóra hogy az adatokat el van rejtve a felhasználó. 1158 00:54:36,922 --> 00:54:38,630 De ami igazán Fontos megérteni, 1159 00:54:38,630 --> 00:54:44,040 az, hogy ez még mindig ugyanolyan biztonságos, mint a GET. 1160 00:54:44,040 --> 00:54:48,780 Az analógia szeretem használni, ha akkor a bankszámla számát 1161 00:54:48,780 --> 00:54:52,795 és írsz a külső egy borítékot, hogy elég biztonságos. 1162 00:54:52,795 --> 00:54:55,920 Ha úgy döntesz, hogy írja le egy darab papírt és tedd a borítékba, 1163 00:54:55,920 --> 00:54:58,850 ez még mindig nagyon biztonságos, mert a Mindössze annyit kell tennie, hogy megnyitja hogy akár 1164 00:54:58,850 --> 00:55:03,480 és nézd meg a tényleges tartalom Az üzenet látni. 1165 00:55:03,480 --> 00:55:08,310 Szóval ez a "rejtett", és az emberek, mint a Szerintem ez biztos, de ez tényleg nem. 1166 00:55:08,310 --> 00:55:11,000 És biztos vagyok benne, Davin lesz bejutni, hogy több, talán. 1167 00:55:11,000 --> 00:55:12,850 De ez egy fontos distinkció 1168 00:55:12,850 --> 00:55:15,820 és valami igazán jó, hogy megértsük. 1169 00:55:15,820 --> 00:55:19,220 >> OK, SQL, Structured Query Language. 1170 00:55:19,220 --> 00:55:22,220 Az összes dolgot, láttuk, így az utóbbi időben! 1171 00:55:22,220 --> 00:55:25,400 Tehát ez alapvetően csak tervezték, Nyilvánvaló, hogy az adatkezelés. 1172 00:55:25,400 --> 00:55:30,560 Srácok, volt egy csomó tapasztalat Ezt a táblákat PHP MyAdmin. 1173 00:55:30,560 --> 00:55:34,100 És van négy közös lekérdezések hogy szeretnénk, ha a srácok tudni. 1174 00:55:34,100 --> 00:55:37,304 Szóval van update, insert, válassza, és törölje. 1175 00:55:37,304 --> 00:55:38,970 Úgyhogy győződjön meg róla, hogy ismeri azokat is. 1176 00:55:38,970 --> 00:55:40,960 Fogunk menni rajtuk keresztül nagyon gyorsan. 1177 00:55:40,960 --> 00:55:44,340 >> Szóval frissíteni, tényleg, azt, hogy milyen gondolná igen, 1178 00:55:44,340 --> 00:55:46,740 ez csak frissíti adatbázisának adataival. 1179 00:55:46,740 --> 00:55:48,750 Így van némi példának. 1180 00:55:48,750 --> 00:55:53,310 Ez az általános szerkezet egy frissítő lekérdezés. 1181 00:55:53,310 --> 00:55:56,150 Így frissíti a táblázatot hogy beszélünk. 1182 00:55:56,150 --> 00:56:00,520 És szeretnénk állítani bizonyos értékek, bizonyos oszlopok 1183 00:56:00,520 --> 00:56:02,600 egyenlő konkrét értékeket. 1184 00:56:02,600 --> 00:56:07,500 Tehát ez csak frissíti a táblázatot, változó értékek az összes sorok ebben az esetben. 1185 00:56:07,500 --> 00:56:13,690 Tehát ebben az egy itt, egy tényleges Például, van insert-- sajnálom. 1186 00:56:13,690 --> 00:56:17,630 Hogy slide fejlett nélkülem észrevennénk. 1187 00:56:17,630 --> 00:56:22,230 >> Tehát ez frissítések táblázat col1 egyenlő hogy ért1, ahol house egyenlő "Currier." 1188 00:56:22,230 --> 00:56:25,300 Milyen ez nem az, ez csak a változások, csak 1189 00:56:25,300 --> 00:56:28,130 frissíti ezeket az értékeket adott helyen. 1190 00:56:28,130 --> 00:56:32,300 Tehát ebben elsőt, megváltoztatja ezeket a értékeket mindent az asztalra, 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 Ez meg fogja változtatni ezt oszlop minden egyes bejegyzés, 1193 00:56:35,820 --> 00:56:37,020 minden egyes sorban. 1194 00:56:37,020 --> 00:56:40,840 De hová, amit lehetett gondolok rá, mint egy selejtezőn. 1195 00:56:40,840 --> 00:56:44,020 Tehát ez csak akkor fog változtatni ez nagyon különleges hely. 1196 00:56:44,020 --> 00:56:47,840 Tehát a p-be hét, amikor Talán frissíteni a készpénz összegének 1197 00:56:47,840 --> 00:56:53,050 hogy a felhasználói volna, akkor valószínűleg már ahol néhány ID egyenlő session ID, ugye? 1198 00:56:53,050 --> 00:56:55,280 >> Mert nem akarom, hogy megváltoztatni a készpénz összegének 1199 00:56:55,280 --> 00:56:57,630 minden személy, aki használta a honlapon. 1200 00:56:57,630 --> 00:57:00,480 Meg akarta megváltoztatni egy konkrét személyt, hogy az illető személy 1201 00:57:00,480 --> 00:57:02,410 Aki volt használ ez abban az időben. 1202 00:57:02,410 --> 00:57:04,320 Ugye? 1203 00:57:04,320 --> 00:57:07,510 OK, így helyezze, betét Bizonyos értékek a táblákba. 1204 00:57:07,510 --> 00:57:11,650 Ez olyan, mint amikor te ami a márka új felhasználót. 1205 00:57:11,650 --> 00:57:14,240 Az általános szerkezet itt A illeszteni bármilyen asztalon 1206 00:57:14,240 --> 00:57:15,680 beszélünk. 1207 00:57:15,680 --> 00:57:18,910 Értékeket, hogy azokat az értékeket, mi valójában szeretné szúrni. 1208 00:57:18,910 --> 00:57:23,060 OK, így látjuk itt, már szúrni asztalra. 1209 00:57:23,060 --> 00:57:27,790 Ez bizonyos oszlopokat azok megfeleltek értékeket. 1210 00:57:27,790 --> 00:57:29,940 Tehát ez azt mondja, insert Új sort tartalmazó 1211 00:57:29,940 --> 00:57:33,660 értékeket ért1 és értl2 alatt Ezek bizonyos oszlopokat. 1212 00:57:33,660 --> 00:57:39,240 >> Így talán csak szeretné kitölteni a fél a dolgok ebben a sorban. 1213 00:57:39,240 --> 00:57:41,150 Ez az, amit ez a rész itt nyílik lehetősége. 1214 00:57:41,150 --> 00:57:43,280 Ez lehetővé teszi, hogy valóban melyik részét. 1215 00:57:43,280 --> 00:57:44,244 Igen? 1216 00:57:44,244 --> 00:57:52,150 >> Közönség: Tud csak [hallhatatlan] sejtek a row [hallhatatlan]? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON: Ha csak kitölteni egyes részei a sorban, 1218 00:57:55,000 --> 00:57:57,480 a többi, e sejtek csak üres. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 Mindaddig, amíg lehetővé teszik számukra, hogy lehet üres, ez nem probléma. 1221 00:58:05,660 --> 00:58:09,570 Ha megpróbálja elérni őket, ez fog visszatérni néhány üres elem. 1222 00:58:09,570 --> 00:58:13,850 De fontos tudni hogy bizonyos táblák, 1223 00:58:13,850 --> 00:58:16,690 Nekik kell tenni, hogy semmis. 1224 00:58:16,690 --> 00:58:18,890 Lehet, hogy befut egy probléma során a p-set 1225 00:58:18,890 --> 00:58:21,320 mert nem hagyja, Ön értékek semmis. 1226 00:58:21,320 --> 00:58:26,110 De megadhat egy opcionális értéket a táblázatban. 1227 00:58:26,110 --> 00:58:29,640 >> OK, válassza, így ez Csak egy módja 1228 00:58:29,640 --> 00:58:33,790 konkrét adatokat a tábla valamilyen azonosító, amit akar. 1229 00:58:33,790 --> 00:58:37,990 Tehát válassza csillag asztalhoz, ahol col egyenlő valamit, csak azt jelenti, 1230 00:58:37,990 --> 00:58:43,820 adj minden adat, ahol ez külön oszlopban igaz. 1231 00:58:43,820 --> 00:58:49,020 Tehát a csillag ebben az esetben vissza az egész sort, neked, OK? 1232 00:58:49,020 --> 00:58:54,880 >> És akkor, ebben az esetben válassza csillag táblázatban csak megadja neked a teljes táblázatot. 1233 00:58:54,880 --> 00:58:58,940 És akkor, törölje nyilván, ez csak törli a sort a táblázatból. 1234 00:58:58,940 --> 00:59:01,320 Tehát törölni asztal, bármilyen asztalon vagyunk 1235 00:59:01,320 --> 00:59:06,830 hivatkozva, ahol bizonyos konkrét azonosító vagy valamilyen feltétel igaz. 1236 00:59:06,830 --> 00:59:07,720 Igen? 1237 00:59:07,720 --> 00:59:08,700 >> Közönség: Kérdés. 1238 00:59:08,700 --> 00:59:10,699 Miért kettős idézetek, valamint attól, hogy 1239 00:59:10,699 --> 00:59:13,600 nem dupla idézőjelek vagy szimpla idézetek, nem mindegy, hogy a különbség? 1240 00:59:13,600 --> 00:59:18,235 >> ALISON: dupla idézőjelek vagy szimpla idézőjelet nem tesz különbséget a SQL. 1241 00:59:18,235 --> 00:59:19,610 Azt hittem, láttam egy másik kérdés. 1242 00:59:19,610 --> 00:59:20,814 Igen? 1243 00:59:20,814 --> 00:59:25,070 >> Közönség: Nem lesz hatással, amit lesz megszökött a lekérdezés? 1244 00:59:25,070 --> 00:59:27,945 >> ALISON: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> Rob: Mit értesz az alatt, megszökött a lekérdezés? 1246 00:59:31,410 --> 00:59:36,870 >> Közönség: Ha valaki egy egyetlen lekérdezést formájában of-- 1247 00:59:36,870 --> 00:59:39,862 >> Rob: Ha valaki tedd egy idézet, 1248 00:59:39,862 --> 00:59:43,560 akkor mindaddig, amíg te fertőtlenítő a bemenetet, akkor nem számít. 1249 00:59:43,560 --> 00:59:46,205 De ha egy egységes árajánlatot, és akkor helytelenül 1250 00:59:46,205 --> 00:59:47,914 menekülés a bemenetek, akkor igen, meg kell 1251 00:59:47,914 --> 00:59:51,079 hogy egy aposztróf, hogy megtörjék A kód. ha használja idézőjelek, 1252 00:59:51,079 --> 00:59:53,580 meg kell tenni a kettős idézni, hogy megtörje a kódot. 1253 00:59:53,580 --> 00:59:56,163 De amíg menekülni a dolgokat helyesen, ez nem számít. 1254 00:59:56,163 --> 00:59:59,220 Ez csak fog fordítani A megfelelő szimbólum egyébként. 1255 00:59:59,220 --> 01:00:02,332 >> Közönség: Mit jelent menekülési jelent? 1256 01:00:02,332 --> 01:00:04,040 ALISON: Nos, mint fertőtlenítéshez és a menekülés. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 A vizsga hogy mi van, a nagy XKCD comic, hogy húzza fel, ahol van, 1259 01:00:13,820 --> 01:00:15,629 oh-- 1260 01:00:15,629 --> 01:00:16,670 Rob: Ez az utolsó kép. 1261 01:00:16,670 --> 01:00:18,500 ALISON: Ez az utolsó dia, tényleg? 1262 01:00:18,500 --> 01:00:20,200 Oh my god. 1263 01:00:20,200 --> 01:00:21,780 Oda megyünk, tökéletes. 1264 01:00:21,780 --> 01:00:27,900 OK, így alapvetően is adható valamit ebbe SQL lekérdezés 1265 01:00:27,900 --> 01:00:30,560 ahol összetöri a kódot, vagy David mutatott 1266 01:00:30,560 --> 01:00:38,460 osztályban, ha van néhány egyágyas quote 1 értéke 1, és ha a mi kódot, 1267 01:00:38,460 --> 01:00:41,230 mi csak közvetlenül másolni, hogy, és van egy végződő aposztróf 1268 01:00:41,230 --> 01:00:44,740 mi történik, megkapjuk Néhány kifejezés, 1269 01:00:44,740 --> 01:00:48,680 értéke igaz-e, hogy lesz legyen valaki be adatbázisunkban 1270 01:00:48,680 --> 01:00:51,720 és kap adatokat, hogy mi Nem akarom, hogy kap. 1271 01:00:51,720 --> 01:00:54,240 Tehát fertőtlenítő bemenetek csak azt jelenti, ügyelve arra, 1272 01:00:54,240 --> 01:00:57,680 hogy mi elől ezeket a karakterek és kijelöli ezeket 1273 01:00:57,680 --> 01:01:01,720 mint karakter, és nem a dolgok hogy lehetővé kell tenni, 1274 01:01:01,720 --> 01:01:04,990 szerint kell érteni mint a mi SQL utasítást. 1275 01:01:04,990 --> 01:01:09,980 >> Tehát a nagy dolog, hogy azt mondtuk hogy a srácok kell a 1276 01:01:09,980 --> 01:01:13,650 voltak HTML speciális karaktereket; ami valami 1277 01:01:13,650 --> 01:01:15,730 hogy érdemes egy pillantást. 1278 01:01:15,730 --> 01:01:17,240 OK, törölheti. 1279 01:01:17,240 --> 01:01:19,450 Adattípusok, ez az összes online. 1280 01:01:19,450 --> 01:01:23,510 Mivel mi már 15 perc van hátra, én vagyok csak fog menni egészen erre. 1281 01:01:23,510 --> 01:01:28,500 PHP és SQL, tulajdonképpen ez az, Csak volt egy lekérdezés funkciót, hogy 1282 01:01:28,500 --> 01:01:31,520 segített véd rosszindulatú támadások ellen. 1283 01:01:31,520 --> 01:01:33,970 Tehát, ha használja query voltunk meggyőződve arról, 1284 01:01:33,970 --> 01:01:36,560 hogy a dolgok megtisztítva és miegymás. 1285 01:01:36,560 --> 01:01:41,070 >> MVC csak egy tervezési paradigmát, így a modell, nézet, kontroller. 1286 01:01:41,070 --> 01:01:44,200 Ez csak egy módja annak, hogy a dolgok szép és szét ugyanúgy 1287 01:01:44,200 --> 01:01:47,100 hogy hajlamosak vagyunk tényező out kódot funkciókat. 1288 01:01:47,100 --> 01:01:53,390 Ez csak egy web design keret amely lehetővé teszi, hogy nem ugyanaz a dolog. 1289 01:01:53,390 --> 01:01:54,760 Megyek átugrani. 1290 01:01:54,760 --> 01:01:58,530 >> Ez olyan dolog, hogy én lenne szuper kényelmes a. 1291 01:01:58,530 --> 01:02:01,132 Ez egy jó kis asztalon. 1292 01:02:01,132 --> 01:02:03,090 Ez adja a funkciót példa a modell. 1293 01:02:03,090 --> 01:02:05,473 Én csak megy keresztül, mert én Nagyon szeretnék Davin, hogy képes beszélni. 1294 01:02:05,473 --> 01:02:07,140 Ha bármilyen kérdése van, nyugodtan. 1295 01:02:07,140 --> 01:02:07,931 Itt leszek után. 1296 01:02:07,931 --> 01:02:10,360 Csak gyere velem beszélni. 1297 01:02:10,360 --> 01:02:13,380 Azzal, hogy mi HTTP státusz. 1298 01:02:13,380 --> 01:02:16,270 És Davin ki fog robbantani ezen keresztül 15 perc alatt. 1299 01:02:16,270 --> 01:02:17,560 Ez nagy durranás lesz. 1300 01:02:17,560 --> 01:02:18,893 >> DAVIN: OK. 1301 01:02:18,893 --> 01:02:20,312 Uh, a mikrofon? 1302 01:02:20,312 --> 01:02:22,210 Igen. 1303 01:02:22,210 --> 01:02:23,336 Bocsánat. 1304 01:02:23,336 --> 01:02:24,460 ALISON: Way kell készíteni. 1305 01:02:24,460 --> 01:02:25,335 DAVIN: Nem, én kész vagyok. 1306 01:02:25,335 --> 01:02:25,860 Én készen állok. 1307 01:02:25,860 --> 01:02:28,790 Csináljuk meg. 1308 01:02:28,790 --> 01:02:29,290 Ez kész. 1309 01:02:29,290 --> 01:02:30,041 OK. 1310 01:02:30,041 --> 01:02:30,540 Bocsánat. 1311 01:02:30,540 --> 01:02:31,664 Én kiömlött kávé magam. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 Nem tudom, ha én több vagyok ideges, hogy nézek ki buta, 1314 01:02:38,210 --> 01:02:40,600 vagy azt, hogy nem kell a kávé többé. 1315 01:02:40,600 --> 01:02:44,480 Különben is, csak egy gyors bejelentését a lap nektek. 1316 01:02:44,480 --> 01:02:47,994 Szóval ez a lap a srácok nem a hivatalos, mi van a kvíz. 1317 01:02:47,994 --> 01:02:49,660 Ez a hivatalos, mi van a kvíz. 1318 01:02:49,660 --> 01:02:52,520 Szintén a honlapon, elmondjuk Ön, OK, ez lesz a kvíz. 1319 01:02:52,520 --> 01:02:55,020 Tehát a kis puskát van, nem hivatalos. 1320 01:02:55,020 --> 01:02:56,690 És vannak hibák rajta. 1321 01:02:56,690 --> 01:03:01,490 Tehát legjobb, ha nem csak vakon használni. 1322 01:03:01,490 --> 01:03:04,390 Szóval igen, ennyi. 1323 01:03:04,390 --> 01:03:05,980 Szóval térjünk ebbe gyorsan. 1324 01:03:05,980 --> 01:03:07,420 >> Tehát HTTP státusz. 1325 01:03:07,420 --> 01:03:10,430 Tehát mi történik, ha a website, minden rendben van. 1326 01:03:10,430 --> 01:03:11,144 Minden rendben. 1327 01:03:11,144 --> 01:03:13,310 Minden jön vissza téged, ahogy te szeretnéd. 1328 01:03:13,310 --> 01:03:15,370 Kapsz egy 200 OK. 1329 01:03:15,370 --> 01:03:19,250 301, ahol láttunk, hogy 301 előtt? 1330 01:03:19,250 --> 01:03:20,890 Várj, mi van? 1331 01:03:20,890 --> 01:03:23,250 Bocsánat. 1332 01:03:23,250 --> 01:03:24,980 Láttuk i tin előadás során a biztonság. 1333 01:03:24,980 --> 01:03:30,690 Tehát ez alatt a biztonság, így ha David beírt http majd megpróbált megnyitni cs50.net, 1334 01:03:30,690 --> 01:03:31,940 fogsz látni 301 mozgott. 1335 01:03:31,940 --> 01:03:32,440 Miért? 1336 01:03:32,440 --> 01:03:35,570 Mert ez lesz átirányítani akkor automatikusan a HTTPS. 1337 01:03:35,570 --> 01:03:38,649 >> Tehát 301 mozdult, csak ez alapvetően egy átirányítást. 1338 01:03:38,649 --> 01:03:40,190 És akkor gondolj rá, mint ez. 1339 01:03:40,190 --> 01:03:43,790 Bármelyik állapotok kezdődő 2-es, olyanok, mint, OK, minden rendben. 1340 01:03:43,790 --> 01:03:46,530 Bármelyik állapotok indul 3, ezek az átirányítást. 1341 01:03:46,530 --> 01:03:49,571 Státuszok kezdődő 4, azt jelenti, van valamilyen kliens hibát. 1342 01:03:49,571 --> 01:03:52,440 Státuszok kezdődő 5, hogy valamiféle server error. 1343 01:03:52,440 --> 01:03:54,680 Szóval egyfajta szakítani A státuszok ilyesmi. 1344 01:03:54,680 --> 01:03:59,120 Tehát 304 nem és nem módosul, így a server.c p beállítást, így mondjuk 1345 01:03:59,120 --> 01:04:00,600 betöltött cat.html. 1346 01:04:00,600 --> 01:04:03,360 Minden jön vissza, kapsz 200s, OK, nagyszerű. 1347 01:04:03,360 --> 01:04:04,540 >> Tegyük fel, hogy felfrissült meg. 1348 01:04:04,540 --> 01:04:07,310 Nos, amit belül cat.html, van egy JPEG. 1349 01:04:07,310 --> 01:04:09,520 Nos, JPEG nem lesz, hogy újratöltve. 1350 01:04:09,520 --> 01:04:12,140 Nem fogsz más állásra GET kérést a szervernek, 1351 01:04:12,140 --> 01:04:13,980 majd kap minden információt vissza. 1352 01:04:13,980 --> 01:04:17,560 Ez fog most be--, hogy a kép lesz cache-elt a gépen. 1353 01:04:17,560 --> 01:04:19,540 És hogy a kép lesz a 304. 1354 01:04:19,540 --> 01:04:20,720 Szóval ez nem módosult. 1355 01:04:20,720 --> 01:04:24,600 Ha majd zárja ki, egyértelmű cookie-kat, majd frissítse 1356 01:04:24,600 --> 01:04:27,490 és próbálja meg betölteni az oldalt Ismét fogsz látni 200s. 1357 01:04:27,490 --> 01:04:28,910 Nem fogsz látni, hogy 304. 1358 01:04:28,910 --> 01:04:32,340 >> 400, a rossz kérésére, valós Gyors, mint ha 1359 01:04:32,340 --> 01:04:34,880 akartál küldeni JSON objektumot a szerver 1360 01:04:34,880 --> 01:04:38,090 és a JSON helytelen volt, látni fogod, valami ilyesmi. 1361 01:04:38,090 --> 01:04:39,000 403, tilos. 1362 01:04:39,000 --> 01:04:40,330 Ha azt akarod látni a tiltott? 1363 01:04:40,330 --> 01:04:41,394 Valószínűleg Valószínűleg? 1364 01:04:41,394 --> 01:04:42,060 Közönség: Chmod. 1365 01:04:42,060 --> 01:04:42,950 DAVIN: Chmod, igen. 1366 01:04:42,950 --> 01:04:44,730 Tehát nem állított jogosultságok helyesen. 1367 01:04:44,730 --> 01:04:45,577 404, nem található. 1368 01:04:45,577 --> 01:04:46,410 Ez egyszerűen nem létezik. 1369 01:04:46,410 --> 01:04:48,670 Tehát ha beírja a rossz URL. 1370 01:04:48,670 --> 01:04:53,500 500, belső szerver hiba, a szerver Valószínűleg nem volt rendesen beállítva. 1371 01:04:53,500 --> 01:04:56,260 Valami nem a vég, hanem valamit a szerver oldalon. 1372 01:04:56,260 --> 01:04:57,240 És 503? 1373 01:04:57,240 --> 01:04:59,502 Sokan látták 503s az elmúlt p-set. 1374 01:04:59,502 --> 01:05:00,460 Mikor történt ez? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 Hallottam suttogás. 1377 01:05:05,660 --> 01:05:07,767 >> Közönség: Amikor a Google úgy dönt, te egy robot. 1378 01:05:07,767 --> 01:05:10,350 DAVIN: Ja, amikor a Google úgy dönt, te egy robot, kapsz 503s. 1379 01:05:10,350 --> 01:05:11,560 Szóval ez egy túlterhelés. 1380 01:05:11,560 --> 01:05:14,620 Ha már kérte a szerver túl sok, ez általában átmeneti. 1381 01:05:14,620 --> 01:05:15,560 És a legtöbben észre. 1382 01:05:15,560 --> 01:05:16,185 Szóval látta 503. 1383 01:05:16,185 --> 01:05:19,282 Lehet, hogy volna egy kicsit szünet, majd a 503s elment, 1384 01:05:19,282 --> 01:05:20,490 és minden rendben volt. 1385 01:05:20,490 --> 01:05:26,640 >> GABE: Real gyors, mikor van srácok 500 Valószínűleg ez az utolsó probléma van beállítva? 1386 01:05:26,640 --> 01:05:27,954 Igen? 1387 01:05:27,954 --> 01:05:30,906 >> Közönség: Általában, ha a szerver egy fájl rossz helyre 1388 01:05:30,906 --> 01:05:34,650 vagy [hallható] a gép [hallhatatlan]. 1389 01:05:34,650 --> 01:05:38,870 >> GABE: Így lehet, hogy egy konfigurációs kérdés a PHP a szerveren. 1390 01:05:38,870 --> 01:05:42,250 De lehet, hogy csak valami mint egy pontosvessző, hogy a elfelejtettem. 1391 01:05:42,250 --> 01:05:44,130 Ha gépelés PHP, néhány helytelen szintaxis 1392 01:05:44,130 --> 01:05:46,000 Lehet, hogy neked valami ilyesmi. 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 Akarod, hogy nem csak addig, amíg AJAX? 1396 01:05:51,180 --> 01:05:52,950 >> GABE: [hallható]. 1397 01:05:52,950 --> 01:05:53,450 DAVIN: OK. 1398 01:05:53,450 --> 01:05:54,230 Szóval mi a DOM? 1399 01:05:54,230 --> 01:05:55,290 Mit jelent DOM állni? 1400 01:05:55,290 --> 01:05:56,990 >> Közönség: Document Object Model. 1401 01:05:56,990 --> 01:05:57,490 DAVIN: Nice. 1402 01:05:57,490 --> 01:06:00,775 És miért tetszik? 1403 01:06:00,775 --> 01:06:02,670 Félelmetes. 1404 01:06:02,670 --> 01:06:06,651 Jobb, így csak lehetővé teszi számunkra, hogy hozzáférést A HTML, igénybe veheti az oldal nagyon gyorsan. 1405 01:06:06,651 --> 01:06:07,150 Miért? 1406 01:06:07,150 --> 01:06:09,980 Mert mi bánjunk oldal, bánjunk HTML, 1407 01:06:09,980 --> 01:06:11,730 kezelésére mindent mintha ők tárgyakat. 1408 01:06:11,730 --> 01:06:13,710 Ha bánnak velük, mint ők objektumokat, akkor mit tehetünk? 1409 01:06:13,710 --> 01:06:15,210 Nos, tudjuk hívni funkciók rájuk. 1410 01:06:15,210 --> 01:06:16,460 És ez fontos, hogy miért? 1411 01:06:16,460 --> 01:06:19,200 Nos, azért, mert fogunk használni JavaScript frissíteni a HTML, 1412 01:06:19,200 --> 01:06:20,500 frissíti ezeket az objektumokat. 1413 01:06:20,500 --> 01:06:23,869 Tehát ha kezeljük őket, mint a tárgyak, tudjuk majd hívja funkciók őket. 1414 01:06:23,869 --> 01:06:26,660 Megyek, hogy ebbe egy kicsit inkább, ha bemegy a JavaScript, 1415 01:06:26,660 --> 01:06:30,510 de minden látta, mint document.getElementById. 1416 01:06:30,510 --> 01:06:32,870 Így a dokumentum a elem, hogy elem azonosító, 1417 01:06:32,870 --> 01:06:35,087 így fogsz keresni Néhány ID egy HTML tag. 1418 01:06:35,087 --> 01:06:36,920 És akkor, meg tudod csinálni valami mást, hogy. 1419 01:06:36,920 --> 01:06:40,089 Például, mint document.body, akkor fűzze gyermeket. 1420 01:06:40,089 --> 01:06:41,630 Szóval fogsz találni a dokumentumot. 1421 01:06:41,630 --> 01:06:42,340 Megvan a dokumentumot. 1422 01:06:42,340 --> 01:06:43,629 Meg fogjuk találni a testet. 1423 01:06:43,629 --> 01:06:44,420 Megtalálták a testet. 1424 01:06:44,420 --> 01:06:46,545 És akkor, fogsz hívja egyes függvényt. 1425 01:06:46,545 --> 01:06:50,312 Szóval csatolja gyermeke, és akkor fűzze Egyes HTML rá a végén a test belsejében. 1426 01:06:50,312 --> 01:06:52,520 Tehát alapvetően, te csak kezelést, mint egy tárgy. 1427 01:06:52,520 --> 01:06:54,515 Te kezelésére HTML Címkék, mint egy tárgy. 1428 01:06:54,515 --> 01:06:57,071 És ez nagyon megkönnyíti és gyorsan menjen át őket. 1429 01:06:57,071 --> 01:06:59,070 De azt is lehetővé teszi, meghívni őket 1430 01:06:59,070 --> 01:07:04,410 így lehet manipulálni és változtassa meg a elemet. 1431 01:07:04,410 --> 01:07:10,162 >> GABE: Tekintettel erre, miért JavaScript például egy szép nyelv, hogy befolyásolja a HTML? 1432 01:07:10,162 --> 01:07:12,870 Esélyek, amikor az emberek kiválasztásában A nyelv a böngésző, 1433 01:07:12,870 --> 01:07:14,990 A kliens oldalon, JavaScript tényleg szép, 1434 01:07:14,990 --> 01:07:16,765 ez tényleg jó kezelése tárgyakat. 1435 01:07:16,765 --> 01:07:20,620 És a tárgyak olyan, mint A tárgyak, amik a HTML, 1436 01:07:20,620 --> 01:07:23,940 így nagyon könnyű a JavaScript erre a fajta kezelést. 1437 01:07:23,940 --> 01:07:24,440 DAVIN: Nice. 1438 01:07:24,440 --> 01:07:25,670 Tehát itt csak egy példa. 1439 01:07:25,670 --> 01:07:29,020 Szóval azt hiszem, a tavalyi kvíz, vagy talán két évvel ezelőtt, 1440 01:07:29,020 --> 01:07:30,840 megkérte, hogy hozzon létre egy fa. 1441 01:07:30,840 --> 01:07:32,660 Tehát ez pontosan mit tennél. 1442 01:07:32,660 --> 01:07:34,255 Tehát ha elindul a dokumentumot. 1443 01:07:34,255 --> 01:07:36,130 És akkor alapvetően csak nézd meg a címkéket. 1444 01:07:36,130 --> 01:07:38,100 Tehát, ha megnézi, mi kezdeni egy HTML tag. 1445 01:07:38,100 --> 01:07:41,660 És akkor, kapsz deríteni, hogy hogyan kell Ehhez alapján a behúzás. 1446 01:07:41,660 --> 01:07:43,870 Tehát vezetője fajta ágazik le. 1447 01:07:43,870 --> 01:07:46,242 Belül a fejét, van újabb címkét címet. 1448 01:07:46,242 --> 01:07:47,450 Tehát, van egy cím. 1449 01:07:47,450 --> 01:07:49,760 És bent, és van néhány húr. 1450 01:07:49,760 --> 01:07:52,210 És így az általunk képviselt karakterlánc egy kört. 1451 01:07:52,210 --> 01:07:54,010 És az összes címkék vannak négyzetek. 1452 01:07:54,010 --> 01:07:56,270 >> És ha megnézzük, ha gondolni ezt a fát, 1453 01:07:56,270 --> 01:07:58,730 És mondjuk, hogy a HTML a szülő, akkor fej és a test 1454 01:07:58,730 --> 01:07:59,772 lesznek testvérek. 1455 01:07:59,772 --> 01:08:01,813 Mindketten lesz gyermekeinek, hogy a szülő. 1456 01:08:01,813 --> 01:08:03,620 Szóval azért, mert ők Mindkét testvér, ők 1457 01:08:03,620 --> 01:08:06,590 lesz a fajta mellett egymást a fa modell. 1458 01:08:06,590 --> 01:08:08,590 És akkor, akkor alapvetően nem pontosan ugyanaz a dolog. 1459 01:08:08,590 --> 01:08:13,512 Így nem nehéz, de kértük kérdések, mint ez előtt a kvízt. 1460 01:08:13,512 --> 01:08:15,220 GABE: tudja valaki, kérdései eddig? 1461 01:08:15,220 --> 01:08:16,357 Jó ez? 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, a jó dolgokat. 1465 01:08:21,600 --> 01:08:24,069 Tehát JavaScript, mi JavaScript? 1466 01:08:24,069 --> 01:08:28,370 Nos, JavaScript ez-- ez bonyolult, de ezek a 1467 01:08:28,370 --> 01:08:30,727 van néhány fontos hogy meg kell szem előtt tartani. 1468 01:08:30,727 --> 01:08:31,810 Először is, lazán gépelt. 1469 01:08:31,810 --> 01:08:33,529 Ez mit jelent? 1470 01:08:33,529 --> 01:08:35,596 Tehát PHP was-- igen, mi a helyzet? 1471 01:08:35,596 --> 01:08:39,854 >> Közönség: Nem kell, hogy kifejezetten hogy milyen típusú változó is. 1472 01:08:39,854 --> 01:08:40,479 DAVIN: Tökéletes. 1473 01:08:40,479 --> 01:08:43,270 Ezért azt mondta nem kell, hogy kifejezetten, a változó típusa. 1474 01:08:43,270 --> 01:08:44,160 Ez pontosan így van. 1475 01:08:44,160 --> 01:08:49,700 Tehát a C, ha tudtam volna int i értéke 50, Ezután a PHP, csak, mint ez, $ i, 1476 01:08:49,700 --> 01:08:50,550 egyenlő 50. 1477 01:08:50,550 --> 01:08:54,319 Aztán JavaScript, mi lenne a hívás lesz? 1478 01:08:54,319 --> 01:08:55,260 Var, ugye? 1479 01:08:55,260 --> 01:08:56,566 Olyan, mintha var i értéke 50. 1480 01:08:56,566 --> 01:08:58,649 De nem kell, hogy legyen szerű, OK, ez egy int. 1481 01:08:58,649 --> 01:09:00,350 OK, ez egy húr. 1482 01:09:00,350 --> 01:09:01,731 Nincs szükség erre. 1483 01:09:01,731 --> 01:09:02,939 Ez egy értelmezett nyelv. 1484 01:09:02,939 --> 01:09:04,904 Szóval mit is jelent ez? 1485 01:09:04,904 --> 01:09:06,340 >> Közönség: Nem összeállítani. 1486 01:09:06,340 --> 01:09:10,470 >> DAVIN: Mi nem összeállított jelent? 1487 01:09:10,470 --> 01:09:11,392 Igen? 1488 01:09:11,392 --> 01:09:15,336 >> Közönség: Nem kell átalakítása a kódot 1489 01:09:15,336 --> 01:09:18,294 hogy ez kész A számítógép futtatni. 1490 01:09:18,294 --> 01:09:23,144 Ez csak venni idején végrehajtás és a számítógép [hallhatatlan]. 1491 01:09:23,144 --> 01:09:25,560 DAVIN: Igen, tehát ez lesz áthaladnak egy tolmácsot. 1492 01:09:25,560 --> 01:09:26,750 De te pontosan így van. 1493 01:09:26,750 --> 01:09:28,319 Szóval te soha nem fog lefordítani, ugye? 1494 01:09:28,319 --> 01:09:30,399 Ha csinálsz a PHP és JavaScript kódot, 1495 01:09:30,399 --> 01:09:31,365 Ön soha nem hívott fordításkor. 1496 01:09:31,365 --> 01:09:33,779 Soha nem nevezett valami ilyesmi hogy vagy ilyesmi. 1497 01:09:33,779 --> 01:09:34,800 Azért, mert ez értelmezhető. 1498 01:09:34,800 --> 01:09:37,319 Tehát minden alkalommal, amikor megy keresztül a böngésző, megy tolmács segítségével. 1499 01:09:37,319 --> 01:09:40,370 És hogy fog értelmezni Csak valós időben azonnal az Ön számára. 1500 01:09:40,370 --> 01:09:43,770 Tehát melyek a pozitív és negatív hogy miután egy értelmezett nyelv 1501 01:09:43,770 --> 01:09:45,258 és miután egy összeállított nyelvet? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 Tehát compiling-- igen, mi a helyzet? 1504 01:09:50,540 --> 01:09:52,444 >> Közönség: Az értelmezett lassabb. 1505 01:09:52,444 --> 01:09:53,319 DAVIN: Milyen értelemben? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> Közönség: Miután lefordítani, akkor nem kell 1508 01:09:59,091 --> 01:10:04,400 hogy nem minden extra lépéseket végrehajtani ez, mivel ez [hallhatatlan]. 1509 01:10:04,400 --> 01:10:05,570 >> DAVIN: Jobb, tökéletes. 1510 01:10:05,570 --> 01:10:08,386 Szóval, mit mondott, Alapvetően a fordítási, 1511 01:10:08,386 --> 01:10:10,760 amikor fordítod, akkor a Sok induló költségek, ugye? 1512 01:10:10,760 --> 01:10:11,760 Fogsz fordítsuk le. 1513 01:10:11,760 --> 01:10:13,750 De miután fordítani, a fordító fog optimalizálni. 1514 01:10:13,750 --> 01:10:14,840 Ez lesz gyors. 1515 01:10:14,840 --> 01:10:16,170 Ez lesz az alapvetően olyan gyors, mint lehet. 1516 01:10:16,170 --> 01:10:18,830 Tolmácsoló, soha Van, hogy indulási költségek. 1517 01:10:18,830 --> 01:10:22,260 Inkább ez lesz valamivel lassabb Minden egyes alkalommal, amikor értelmezik. 1518 01:10:22,260 --> 01:10:24,940 És te lesz, hogy értelmezni, hogy minden egyes alkalommal. 1519 01:10:24,940 --> 01:10:27,114 Tehát ahelyett, hogy ezt a egyszeri költség, most te vagy 1520 01:10:27,114 --> 01:10:29,530 kell majd értelmezni az oldal minden teszi. 1521 01:10:29,530 --> 01:10:31,890 >> Tehát tolmácsok jó, mert nem kell lefordítani, 1522 01:10:31,890 --> 01:10:33,980 de ők rossz, hogy minden időzíteni az oldal betöltődik, ez 1523 01:10:33,980 --> 01:10:35,771 lesz, hogy értelmezik ezt a JavaScript. 1524 01:10:35,771 --> 01:10:40,520 És ez meg fog futtatni valamivel lassabb mint ha úgy döntesz, hogy fordítsuk le. 1525 01:10:40,520 --> 01:10:43,044 Lehetővé teszi, hogy communicate-- ó, várj. 1526 01:10:43,044 --> 01:10:44,960 Kezelheti a tartalmát és megjelenését. 1527 01:10:44,960 --> 01:10:46,043 Mi csak beszélgettünk erről. 1528 01:10:46,043 --> 01:10:47,250 Használja a DOM. 1529 01:10:47,250 --> 01:10:49,930 AJAX, mi lesz a AJAX egy kicsit. 1530 01:10:49,930 --> 01:10:51,520 És akkor, ez kliens oldalon. 1531 01:10:51,520 --> 01:10:53,110 Tehát PHP szerver oldalon. 1532 01:10:53,110 --> 01:10:54,360 A JavaScript kliens oldalon. 1533 01:10:54,360 --> 01:10:57,780 Milyen pozitív, hogy? 1534 01:10:57,780 --> 01:10:58,280 Azt mondja rá. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 Ez gyorsabb, igaz? 1537 01:11:02,780 --> 01:11:05,282 Mert akkor nem kell to-- ez gyorsabb. 1538 01:11:05,282 --> 01:11:07,490 Nem kell kommunikálni néhány más eszköz. 1539 01:11:07,490 --> 01:11:08,790 Ha csak a ügyfél, akkor soha nem 1540 01:11:08,790 --> 01:11:11,280 fog menni, és lásd, mi van a szerveren 1541 01:11:11,280 --> 01:11:13,150 majd arról vagy valami ilyesmi. 1542 01:11:13,150 --> 01:11:15,410 Tehát kliens oldali hajlamos egy kicsit gyorsabban. 1543 01:11:15,410 --> 01:11:17,910 >> GABE: Igen, de ez nem azt jelenti, PHP 1544 01:11:17,910 --> 01:11:20,440 gyorsabb, mint JavaScript vagy valami hasonló. 1545 01:11:20,440 --> 01:11:23,270 Futnak a fajta ugyanazon sebességét, mert mindketten 1546 01:11:23,270 --> 01:11:24,490 értelmezett nyelvekhez. 1547 01:11:24,490 --> 01:11:26,680 A dolog, ami lassú itt a kérést. 1548 01:11:26,680 --> 01:11:28,870 Szóval tényleg lesz egészen át Brazíliába 1549 01:11:28,870 --> 01:11:31,460 hogy bizonyos információkat hogy ott lakik. 1550 01:11:31,460 --> 01:11:34,590 De a PHP és a JavaScript, akkor fajta fut azonos sebességgel. 1551 01:11:34,590 --> 01:11:37,930 Ez nem, hogy az egyik gyorsabb, mint a többi. 1552 01:11:37,930 --> 01:11:40,600 Ez is, beugratós kérdés itt. 1553 01:11:40,600 --> 01:11:47,338 Tehát JavaScript soha nem válik gépi kód, igaz vagy hamis? 1554 01:11:47,338 --> 01:11:48,590 >> Közönség: Hamis. 1555 01:11:48,590 --> 01:11:49,090 GABE: Hamis. 1556 01:11:49,090 --> 01:11:51,298 Azt kell válnia gép kódot, mert a gép kód 1557 01:11:51,298 --> 01:11:53,210 Az egyetlen dolog, a gép megért. 1558 01:11:53,210 --> 01:11:55,800 Annak ellenére, hogy ez nem összeállított, még mindig válik gépi kód 1559 01:11:55,800 --> 01:11:59,120 mert a tolmács csak a programot, hogy megy soronként 1560 01:11:59,120 --> 01:12:02,170 és átalakítja, hogy sort valamit a számítógép megért. 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 Cool. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> DAVIN: Itt csak egy nagyon alap hello world JavaScript programot. 1565 01:12:12,890 --> 01:12:15,590 Szóval nem tudom if-- láttad ezt a. 1566 01:12:15,590 --> 01:12:17,630 De csak azt HTML itt. 1567 01:12:17,630 --> 01:12:21,020 És ahelyett, hogy ténylegesen üzembe A JavaScript a script tag, 1568 01:12:21,020 --> 01:12:22,810 így azt általában betette a fejét. 1569 01:12:22,810 --> 01:12:24,030 Van szkriptcímkéket. 1570 01:12:24,030 --> 01:12:24,870 Te vidd el oda. 1571 01:12:24,870 --> 01:12:28,350 Minden, amit eddig csináltunk itt voltunk kapcsolódik in-- így már kapcsolódik egy JavaScript fájl 1572 01:12:28,350 --> 01:12:29,137 mint ez. 1573 01:12:29,137 --> 01:12:30,470 És ha már minden kész, ugye? 1574 01:12:30,470 --> 01:12:34,740 Tehát, ha arra a jQuery és underscore.js az elmúlt p-set, 1575 01:12:34,740 --> 01:12:38,700 nincs tonna kódot fel a szkriptcímkéket, a fejedben. 1576 01:12:38,700 --> 01:12:41,415 Lehet csinálni, hanem csak most, összekapcsolva azt a. 1577 01:12:41,415 --> 01:12:43,540 És te, összekapcsolva azt a Csakúgy, mint te a CSS. 1578 01:12:43,540 --> 01:12:50,186 Tehát csak könnyebbé teszi a beolvasott A kód nem olyan, mint 1000 sor hosszú 1579 01:12:50,186 --> 01:12:52,310 tonna funkciók lehet, hogy nem használja. 1580 01:12:52,310 --> 01:12:53,518 >> Ehelyett egyszerűen csak hivatkoznak rá. 1581 01:12:53,518 --> 01:12:55,050 Ez compartmentalizes meg. 1582 01:12:55,050 --> 01:13:00,110 Ez olyan, mint írásban néhány header fájlt, és Ezután beleértve, hogy a header fájlt C. 1583 01:13:00,110 --> 01:13:01,620 Gondolj rá, mint ez. 1584 01:13:01,620 --> 01:13:02,680 Mit is jelent ez csinálni? 1585 01:13:02,680 --> 01:13:04,560 Nos, ez fog futni. 1586 01:13:04,560 --> 01:13:05,410 Meg fog figyelmeztetni. 1587 01:13:05,410 --> 01:13:08,020 Tehát fogsz egy kicsit felbukkan nevű hello world. 1588 01:13:08,020 --> 01:13:11,420 Gyors kérdés, csak józan ellenőrzés, így látod, itt van a szervezetben, 1589 01:13:11,420 --> 01:13:13,160 azt mondják, test, HTML itt. 1590 01:13:13,160 --> 01:13:14,080 Mi jön először? 1591 01:13:14,080 --> 01:13:16,864 Látok test, HTML itt, vagy látom a figyelmeztető első? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> Közönség: Alert. 1594 01:13:20,820 --> 01:13:21,470 >> DAVIN: Így van. 1595 01:13:21,470 --> 01:13:22,110 Azt mondja éber. 1596 01:13:22,110 --> 01:13:22,610 Miért? 1597 01:13:22,610 --> 01:13:24,470 >> Közönség: Mert menj fentről lefelé. 1598 01:13:24,470 --> 01:13:25,600 >> DAVIN: Igen. 1599 01:13:25,600 --> 01:13:26,100 Tökéletes. 1600 01:13:26,100 --> 01:13:29,207 Azt mondja, menj fentről alján, ami teljesen korrekt. 1601 01:13:29,207 --> 01:13:30,790 Fogsz menni, fentről lefelé. 1602 01:13:30,790 --> 01:13:34,790 És JavaScript, jQuery, hogy van egy funkciót, amely olyan, mint berakás, vagy kész, 1603 01:13:34,790 --> 01:13:38,030 és hogy azt mondja, OK, várjon, amíg Mindez HTML betöltődött. 1604 01:13:38,030 --> 01:13:39,580 És akkor, hívja a JavaScript. 1605 01:13:39,580 --> 01:13:42,190 Mert nincs, hogy itt, a legelső dolog, hogy ez fog történni 1606 01:13:42,190 --> 01:13:43,920 A ez fog menni, fentről lefelé. 1607 01:13:43,920 --> 01:13:46,310 Meg fog ütni, hogy JS hívni, hogy fog figyelmeztetni. 1608 01:13:46,310 --> 01:13:49,510 Ez után kattintson az OK gombra, hogy figyelmeztető elmúlik. 1609 01:13:49,510 --> 01:13:53,600 Akkor fog mutatni akkor a test HTML itt. 1610 01:13:53,600 --> 01:13:54,590 Nice. 1611 01:13:54,590 --> 01:14:00,880 >> OK, így csak tényleg gyorsan, írásban A JavaScript szuper gyors. 1612 01:14:00,880 --> 01:14:02,710 Ahhoz hogy az változó, var nevét. 1613 01:14:02,710 --> 01:14:07,070 Tehát a C, akkor int i, van, hogy állapítsa meg, hogy milyen típusú ez. 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 Beszéltünk erről. 1617 01:14:09,630 --> 01:14:11,020 Rendben, menjünk. 1618 01:14:11,020 --> 01:14:12,510 >> Loops, ugyanaz a dolog. 1619 01:14:12,510 --> 01:14:14,230 Ugyanaz a dolog. 1620 01:14:14,230 --> 01:14:18,165 Funkció nyilatkozatok, így mint amit láttam C. 1621 01:14:18,165 --> 01:14:21,290 Az egyetlen különbség az, így amikor kapsz más programozási nyelvek, 1622 01:14:21,290 --> 01:14:24,780 mint amikor veszel 51 következő félévben és mit csinálsz a OCaml, 1623 01:14:24,780 --> 01:14:26,690 tudod kezelni a névtelen függvények. 1624 01:14:26,690 --> 01:14:28,240 Szóval ez pontosan mit itt. 1625 01:14:28,240 --> 01:14:31,560 Tehát azt szeretnénk, hogy hozzanak összeget, valamilyen összeg érték. 1626 01:14:31,560 --> 01:14:33,870 De lehet, hogy csak csinálja egyszerre. 1627 01:14:33,870 --> 01:14:37,310 Szóval nem akarja nevezni funkció Összegezve, hogy ez egy függvény deklaráció. 1628 01:14:37,310 --> 01:14:39,830 Ehelyett egyszerűen csak használni névtelen funkciót. 1629 01:14:39,830 --> 01:14:42,469 És láttad, hogy ez a sok. 1630 01:14:42,469 --> 01:14:44,510 Majd meglátod egy példa ez a pár diák. 1631 01:14:44,510 --> 01:14:45,597 Igen, majd meglátjuk. 1632 01:14:45,597 --> 01:14:46,430 GABE: Jó kérdés. 1633 01:14:46,430 --> 01:14:50,660 Mikor érdemes használni kívánt egy névtelen függvény itt? 1634 01:14:50,660 --> 01:14:54,111 Alapvetően, ha akar valamit, Szeretne egy eseményt, hogy megtörténjen. 1635 01:14:54,111 --> 01:14:55,860 Tehát, amikor az egér kattintva, például, 1636 01:14:55,860 --> 01:14:57,790 Kérsz ​​egy függvényt,. 1637 01:14:57,790 --> 01:15:00,570 Így adja át az eseményt handler, adja át a rendezvény, 1638 01:15:00,570 --> 01:15:02,870 fajta, a funkció, amely azt szeretné, hogy hívják. 1639 01:15:02,870 --> 01:15:04,710 És mit halad olyan, mint, a végén 1640 01:15:04,710 --> 01:15:08,757 A nap, csak egy mutatót az utasítást, hogy a funkció. 1641 01:15:08,757 --> 01:15:11,090 Szóval ez nem olyan, mint te halad A teljes kódot, ahogy 1642 01:15:11,090 --> 01:15:12,173 a mutató a funkciót. 1643 01:15:12,173 --> 01:15:17,871 És akkor, amikor valaki rákattint a egér, akkor ez a funkció meghívásra kerül. 1644 01:15:17,871 --> 01:15:22,340 >> DAVIN: tömbök, így Van egy sor nyilatkozatot. 1645 01:15:22,340 --> 01:15:23,990 Ezután egy tömböt, hogy tegyük a dolgokat. 1646 01:15:23,990 --> 01:15:25,769 Igazi gyors, mi lesz ennek a kinyomtatni? 1647 01:15:25,769 --> 01:15:27,060 Milyen lesz a harmadik elem lesz? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> Közönség: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> DAVIN: Jobb lenne, ha "JS". 1651 01:15:33,940 --> 01:15:35,760 Várj, menj vissza. 1652 01:15:35,760 --> 01:15:37,100 Milyen hosszú? 1653 01:15:37,100 --> 01:15:38,117 >> Közönség: Három. 1654 01:15:38,117 --> 01:15:38,950 DAVIN: Három, ugye? 1655 01:15:38,950 --> 01:15:40,210 Pontosan mit gondol. 1656 01:15:40,210 --> 01:15:42,072 OK, most menj. 1657 01:15:42,072 --> 01:15:43,530 Tömbök, felveheti a dolgokat nekik. 1658 01:15:43,530 --> 01:15:45,395 Így túlmutatnak a kezdeti határokat. 1659 01:15:45,395 --> 01:15:46,740 Csak valami szem előtt tartani. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, ők egy kicsit kicsit elnéző szempontjából dolgokat 1661 01:15:49,760 --> 01:15:50,570 ilyesmi. 1662 01:15:50,570 --> 01:15:54,260 Tárgyakat, nagyon hasonlít Struktúrák a C, nagyon sok 1663 01:15:54,260 --> 01:15:56,590 mint az asszociatív tömböket a PHP. 1664 01:15:56,590 --> 01:15:58,720 Már az összes volt tapasztalata ezzel. 1665 01:15:58,720 --> 01:16:01,880 Tehát JSON, ha éppen elhaladó JSON oda-vissza a p-set nyolc, 1666 01:16:01,880 --> 01:16:03,260 ez a tárgy. 1667 01:16:03,260 --> 01:16:06,290 >> Szóval igen, például a valós gyors példát. 1668 01:16:06,290 --> 01:16:07,880 Itt van egy tárgy. 1669 01:16:07,880 --> 01:16:12,700 Ahogy referencia ezt a objektumot, így csak tényleg gyorsan, 1670 01:16:12,700 --> 01:16:18,630 mondjuk meg akartam találni ki, OK, mi a pálya? 1671 01:16:18,630 --> 01:16:20,681 És így az objektum nevét itt CS50. 1672 01:16:20,681 --> 01:16:23,180 És akkor, ha volt egy asszociatív tömb, hogyan tettem volna? 1673 01:16:23,180 --> 01:16:24,580 Fogom használni a kulcsot, ugye? 1674 01:16:24,580 --> 01:16:26,030 Szóval van a tömb nevét. 1675 01:16:26,030 --> 01:16:30,160 Van konzol, idézetek, kulcs, end idézetek, motorágyegység, 1676 01:16:30,160 --> 01:16:33,610 és hogy fog hivatkozni, hogy eleme belülről én asszociatív tömb. 1677 01:16:33,610 --> 01:16:37,646 Hogyan hivatkozott Természetesen benne célom? 1678 01:16:37,646 --> 01:16:39,170 Tudja valaki? 1679 01:16:39,170 --> 01:16:40,622 >> Közönség: [hallható]. 1680 01:16:40,622 --> 01:16:41,784 >> DAVIN: Mi a helyzet? 1681 01:16:41,784 --> 01:16:42,700 Közönség: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 DAVIN: Jobb, igen. 1683 01:16:43,510 --> 01:16:45,320 Tehát CS50.course. 1684 01:16:45,320 --> 01:16:48,770 Szóval, ahogy referencia dolgokat belsejében egy JSON objektum egy ponttal. 1685 01:16:48,770 --> 01:16:53,114 >> Közönség: Ön is használja tömb szintaxis. 1686 01:16:53,114 --> 01:16:54,050 >> DAVIN: OK, rendben. 1687 01:16:54,050 --> 01:16:57,544 >> GABE: Ön is használja CS50 konzol, húr, mint idézőjelbe. 1688 01:16:57,544 --> 01:16:59,210 Közönség: Azt hiszem, ez azonos a PHP. 1689 01:16:59,210 --> 01:17:00,293 GABE: Ez ugyanaz a dolog. 1690 01:17:00,293 --> 01:17:02,487 DAVIN: Fine! 1691 01:17:02,487 --> 01:17:03,945 De látni fogja ezt más helyeken. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 Igen, így folyamatosan megy. 1694 01:17:10,480 --> 01:17:13,330 Ez az, amit az előbb mondtam. 1695 01:17:13,330 --> 01:17:17,840 Tehát egy JavaScript jQuery példa. 1696 01:17:17,840 --> 01:17:19,440 Szóval ez az én DOM, ugye? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 Igazi gyors, így már egy fej, ​​hello world, test. 1699 01:17:25,410 --> 01:17:26,160 Nekem van egy gomb. 1700 01:17:26,160 --> 01:17:27,870 Azt mondja: "álljon meg", így azt akarom, hogy álljon meg. 1701 01:17:27,870 --> 01:17:29,745 És szeretnék tenni valamit ha valaki rákattint. 1702 01:17:29,745 --> 01:17:31,220 Jobb mellett. 1703 01:17:31,220 --> 01:17:34,630 >> Rendben, ez az én JavaScript. 1704 01:17:34,630 --> 01:17:37,790 Tehát jQuery csak egy könnyebb módon írni JavaScript. 1705 01:17:37,790 --> 01:17:40,920 Szóval ez, és mit fogok mutatni Jövő, lesz jQuery, 1706 01:17:40,920 --> 01:17:41,930 azonosak. 1707 01:17:41,930 --> 01:17:43,990 Így azok nem ugyanazokat a dolgokat. 1708 01:17:43,990 --> 01:17:45,974 Csak jQuery inkább egy kicsit könnyebb. 1709 01:17:45,974 --> 01:17:47,140 Az emberek hajlamosak tetszik jobban. 1710 01:17:47,140 --> 01:17:48,390 Van egy csomó funkcióval. 1711 01:17:48,390 --> 01:17:49,830 Tehát az emberek hajlanak arra, hogy jQuery. 1712 01:17:49,830 --> 01:17:53,270 Ön az összes használt jQuery utolsó p-set. 1713 01:17:53,270 --> 01:17:54,270 Tehát mit fog ez vajon? 1714 01:17:54,270 --> 01:17:56,580 Mit fog ez JavaScript-- így ez csak sima JavaScript. 1715 01:17:56,580 --> 01:17:57,430 Mit fog ez csinálni? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 Mit fog csinálni? 1718 01:18:03,450 --> 01:18:04,890 >> Tehát az első, látod ablak onload. 1719 01:18:04,890 --> 01:18:05,390 Ugye? 1720 01:18:05,390 --> 01:18:06,640 Tehát nem láttunk ilyet. 1721 01:18:06,640 --> 01:18:09,380 Szóval ez lesz várni amíg az egész ablak terhelések. 1722 01:18:09,380 --> 01:18:12,770 Így fog várni, amíg A HTML, a képek betöltése 1723 01:18:12,770 --> 01:18:13,770 mielőtt ez semmit. 1724 01:18:13,770 --> 01:18:16,050 Tehát mondjuk a DOM betöltötte. 1725 01:18:16,050 --> 01:18:17,270 Minden ott van. 1726 01:18:17,270 --> 01:18:19,080 Akkor mi fog történni? 1727 01:18:19,080 --> 01:18:19,922 Igen? 1728 01:18:19,922 --> 01:18:22,880 >> Közönség: gomb. 1729 01:18:22,880 --> 01:18:25,201 >> DAVIN: a gomb már ott van. 1730 01:18:25,201 --> 01:18:26,700 Igen, tehát a gomb már ott. 1731 01:18:26,700 --> 01:18:31,190 De ez fog mondani, OK, ha rákattintok a gombot, 1732 01:18:31,190 --> 01:18:33,650 így a gomb már ott, mint a HTML tag. 1733 01:18:33,650 --> 01:18:35,980 Várj, menj vissza gyorsan. 1734 01:18:35,980 --> 01:18:39,470 Ez a tag joga itt van lesz egy gomb már. 1735 01:18:39,470 --> 01:18:40,810 Már van egy gomb. 1736 01:18:40,810 --> 01:18:44,120 De aztán, a JavaScript tag, itt, 1737 01:18:44,120 --> 01:18:46,160 azt mondja, OK, azt akarom, hogy eleme az ID, 1738 01:18:46,160 --> 01:18:50,300 így a keresés gombot csak azt mondja, OK, azt akarom, feltérképezni ezt a változót, hogy a gombot. 1739 01:18:50,300 --> 01:18:53,120 Annak érdekében, hogy a változó csak egy egyszerűbb módja, hogy hozzáférjenek az gombot. 1740 01:18:53,120 --> 01:18:57,300 És én azt mondom, OK, ha rákattintok, hogy gombra, így ha rákattintok, hogy eleme, 1741 01:18:57,300 --> 01:18:59,560 és ez az elem utal A gomb, ha jól kattintson rá, 1742 01:18:59,560 --> 01:19:00,875 akkor szeretném hívni a funkciót. 1743 01:19:00,875 --> 01:19:03,500 Itt az egyik ilyen anonim funkciók beszéltünk. 1744 01:19:03,500 --> 01:19:04,840 >> Csak hívja néhány funkciója. 1745 01:19:04,840 --> 01:19:08,840 Belül, hogy a funkció, alapvetően valamit láttunk sokat, éber. 1746 01:19:08,840 --> 01:19:10,477 Ön kattintson a keresés gombra. 1747 01:19:10,477 --> 01:19:12,060 Meg fog alapvetően egy gombot. 1748 01:19:12,060 --> 01:19:13,040 Rákattint. 1749 01:19:13,040 --> 01:19:14,040 Kapsz, hogy éber. 1750 01:19:14,040 --> 01:19:14,850 X out. 1751 01:19:14,850 --> 01:19:15,754 Ennyi. 1752 01:19:15,754 --> 01:19:16,254 Igen? 1753 01:19:16,254 --> 01:19:21,980 >> Közönség: Tehát ha tesz a forgatókönyvet [Hallható], script tag a HTML? 1754 01:19:21,980 --> 01:19:24,300 >> DAVIN: Tudod, hogy a script tag egyenesen a fejét 1755 01:19:24,300 --> 01:19:30,667 mert van ez a berakás. 1756 01:19:30,667 --> 01:19:32,000 Az is, hogy van egy kattintással. 1757 01:19:32,000 --> 01:19:34,166 Így fog várni, amíg rákattint valamit. 1758 01:19:34,166 --> 01:19:37,470 De berakás van a biztonság kedvéért, hogy arról, hogy minden teher a HTML 1759 01:19:37,470 --> 01:19:38,170 előre. 1760 01:19:38,170 --> 01:19:39,247 Igen? 1761 01:19:39,247 --> 01:19:40,330 Azt akarod mondani valamit? 1762 01:19:40,330 --> 01:19:41,080 >> GABE: [hallható]. 1763 01:19:41,080 --> 01:19:42,485 DAVIN: Igen. 1764 01:19:42,485 --> 01:19:45,426 >> Közönség: Tehát onload meghiúsítja meghatározza a változó keresés gombot 1765 01:19:45,426 --> 01:19:49,930 az csak azt mondom document.getElementById keresés gombra dot [hallhatatlan]. 1766 01:19:49,930 --> 01:19:52,320 >> DAVIN: Határozottan, de aztán a húr csak lesz hatalmas. 1767 01:19:52,320 --> 01:19:55,553 Pontosan, tehát ez csak a megkönnyíti az Ön számára, igen. 1768 01:19:55,553 --> 01:19:56,053 Igen? 1769 01:19:56,053 --> 01:19:57,886 >> Közönség: honnan vettük hozzon létre window.onload? 1770 01:19:57,886 --> 01:19:58,951 Vagy document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> DAVIN: Igen, van. 1772 01:20:00,590 --> 01:20:02,094 Igen, van, megnéztem. 1773 01:20:02,094 --> 01:20:03,710 >> GABE: Nem nekik, hogy érdekel. 1774 01:20:03,710 --> 01:20:06,970 >> DAVIN: OK, úgyhogy megyek hogy elmondjam, egyébként. 1775 01:20:06,970 --> 01:20:11,005 Tehát alapvetően, csak általában, így window.onload megvárja, amíg a DOM, minden 1776 01:20:11,005 --> 01:20:12,180 a HTML, terhelés. 1777 01:20:12,180 --> 01:20:13,513 Arra vár, amíg a képeket terhelést. 1778 01:20:13,513 --> 01:20:14,930 Arra vár, amíg mindent terhelés. 1779 01:20:14,930 --> 01:20:18,410 document.ready, ez csak megvárja, amíg a DOM terhelést. 1780 01:20:18,410 --> 01:20:22,190 Miután a HTML minden ott, egyszer a DOM van, elindul. 1781 01:20:22,190 --> 01:20:23,400 Ez az egyetlen különbség. 1782 01:20:23,400 --> 01:20:24,700 >> GABE: Gyors józanság ellenőrizze itt. 1783 01:20:24,700 --> 01:20:29,060 Tehát ez látható a fajta mint egy sor kódot, ugye? 1784 01:20:29,060 --> 01:20:33,600 Mert ez window.onload egyenlő egy csomó dolgot. 1785 01:20:33,600 --> 01:20:39,030 Amikor JavaScript olvassa ezt igaz vagy hamis, a funkció kerül végrehajtásra. 1786 01:20:39,030 --> 01:20:40,020 Hamis. 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 Mi történik itt, csak most halad Ezt a funkciót a névtelen függvények 1789 01:20:44,470 --> 01:20:45,300 a window.onload. 1790 01:20:45,300 --> 01:20:48,480 És akkor, amikor ez fog hogy valóban kivégeznek? 1791 01:20:48,480 --> 01:20:49,600 Amikor az ablak terhelés. 1792 01:20:49,600 --> 01:20:50,420 Ez egy esemény. 1793 01:20:50,420 --> 01:20:52,460 Szóval ez jus t dolog vagyunk beszélünk korábban, igaz? 1794 01:20:52,460 --> 01:20:54,580 Tehát, ha az esemény bekövetkezik, A funkció történik. 1795 01:20:54,580 --> 01:20:55,746 Ugyanezt a onclick. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> DAVIN: OK, így valaki vette re a document.ready. 1798 01:21:03,130 --> 01:21:04,698 De ez lesz a pontos same-- 1799 01:21:04,698 --> 01:21:06,864 Közönség: a dollár jelet, ez egy document.ready. 1800 01:21:06,864 --> 01:21:07,710 Ez egy parancsikont. 1801 01:21:07,710 --> 01:21:08,501 >> DAVIN: Ó, ez? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 OK, így ez azt jelenti document.ready, parancsikont. 1804 01:21:15,500 --> 01:21:19,660 De ez ugyanaz, mint a window.onload kivéve, hogy kicsi a különbség 1805 01:21:19,660 --> 01:21:20,680 Mondtam neked. 1806 01:21:20,680 --> 01:21:21,870 És ez jQuery. 1807 01:21:21,870 --> 01:21:25,190 Tehát ez pontosan ugyanaz thing-- Ez a JavaScript. 1808 01:21:25,190 --> 01:21:29,500 Ezt Csak-- néhány ember úgy gondolja, hogy mint egy könnyű, karcsú változatban 1809 01:21:29,500 --> 01:21:32,370 amely sok funkciót hogy akkor valószínűleg használni. 1810 01:21:32,370 --> 01:21:34,500 Tehát ez nem pontosan ugyanaz a dolog. 1811 01:21:34,500 --> 01:21:37,110 >> Így a dolgok, hogy milyen rámutatni. 1812 01:21:37,110 --> 01:21:40,364 Így a többi példában, mi volt document.getElementById, 1813 01:21:40,364 --> 01:21:42,280 így volt ez a hosszú húr, hogy fog kapni 1814 01:21:42,280 --> 01:21:44,290 Az elem bármilyen ID van. 1815 01:21:44,290 --> 01:21:46,470 Ez az, helyébe e felhívás itt. 1816 01:21:46,470 --> 01:21:50,860 Így látod a dollár jelet, akkor látni idézet, hashtag. 1817 01:21:50,860 --> 01:21:52,370 Hashtag mindig választó. 1818 01:21:52,370 --> 01:21:54,730 Azt mondja, OK, ez arról szól, hogy egy azonosítót. 1819 01:21:54,730 --> 01:21:56,120 Mi a választó egy osztály? 1820 01:21:56,120 --> 01:21:57,190 >> Közönség: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> DAVIN: Dot, ugye. 1822 01:21:57,960 --> 01:22:01,950 Ha most fog válasszon ki egy címkét, mi ez? 1823 01:22:01,950 --> 01:22:03,310 Ez csak a tag, pontosan. 1824 01:22:03,310 --> 01:22:05,560 És jól jönne, hogy itt is. 1825 01:22:05,560 --> 01:22:08,560 >> GABE: És tag, értünk, mint div, például, vagy a fej. 1826 01:22:08,560 --> 01:22:11,500 >> DAVIN: vagy szerv, vagy p vagy ilyesmi, igen. 1827 01:22:11,500 --> 01:22:14,390 Tehát itt, OK, ahelyett, hogy document.getElementById, 1828 01:22:14,390 --> 01:22:16,500 ez csak pontosan ugyanaz a dolog. 1829 01:22:16,500 --> 01:22:17,990 Csak a jQuery, ez rövidebb. 1830 01:22:17,990 --> 01:22:19,860 Szóval ez egyszerűbb. 1831 01:22:19,860 --> 01:22:23,420 Tehát, nincs több onclick, csak kattints. 1832 01:22:23,420 --> 01:22:26,320 jQuery funkciót, ezt a funkciót. 1833 01:22:26,320 --> 01:22:27,580 Alert pontosan ugyanaz. 1834 01:22:27,580 --> 01:22:29,452 Szóval ez egy kicsit kisebb, vagy kicsit 1835 01:22:29,452 --> 01:22:32,410 rövidebb, egy kicsit bit-- ember úgy gondolja, ez egy kicsit könnyebb, hogy írjon ki, 1836 01:22:32,410 --> 01:22:34,600 egy kicsit könnyebb megérteni. 1837 01:22:34,600 --> 01:22:35,640 De ez jQuery. 1838 01:22:35,640 --> 01:22:37,887 Egy csomó ember, hogy egy kicsit kicsit zavaros, és aggódik 1839 01:22:37,887 --> 01:22:40,220 és azt hiszik, OK, jQuery más, mint a JavaScript. 1840 01:22:40,220 --> 01:22:42,136 Azt kell emlékezni ezen két különböző dolog. 1841 01:22:42,136 --> 01:22:42,740 Ez nem. 1842 01:22:42,740 --> 01:22:45,315 Úgy értem, ez másképp néz ki. 1843 01:22:45,315 --> 01:22:46,970 De jQuery JavaScript. 1844 01:22:46,970 --> 01:22:50,050 Ez csak látszólag jobb verzió 1845 01:22:50,050 --> 01:22:51,967 talán könnyebb lesz Megértjük, hogy az emberek használni. 1846 01:22:51,967 --> 01:22:53,716 GABE: Ja, hogy Őszintén szólva az dollárjellel 1847 01:22:53,716 --> 01:22:57,240 hogy látod a jQuery, ez csak a függvény nevét, hogy jQuery határozza meg. 1848 01:22:57,240 --> 01:22:58,614 Nem kell semmi különöset. 1849 01:22:58,614 --> 01:23:03,140 Vajon ez csak a függvény nevét, Csak szeretném, ha lehetne meghatározni dollár jel. 1850 01:23:03,140 --> 01:23:05,670 >> DAVIN: Igen, így beszélt erről. 1851 01:23:05,670 --> 01:23:06,680 Néhány hasznos dolog. 1852 01:23:06,680 --> 01:23:10,414 Kerestem vissza a régi vetélkedők. 1853 01:23:10,414 --> 01:23:13,080 Az elmúlt néhány kvízek, hogy már kellett használni a dolgokat, mint ez. 1854 01:23:13,080 --> 01:23:15,230 Tehát document.ready, így győződjön meg róla mindent a 1855 01:23:15,230 --> 01:23:17,410 betöltött, mielőtt elkezdené a dolgok. 1856 01:23:17,410 --> 01:23:20,120 Válasszon ki egy ID, vagy válassza egy osztály, akkor épp 1857 01:23:20,120 --> 01:23:24,020 legyen quote dot néhány osztályt, Idézet vége. 1858 01:23:24,020 --> 01:23:26,580 Benyújtására, így ha olyan űrlapot, és hívás 1859 01:23:26,580 --> 01:23:28,830 Ez a funkció után formájában előadja. 1860 01:23:28,830 --> 01:23:34,210 Érték, így mondjuk volt egy űrlapot benyújtását, mint egy felhasználói nevet és egy e-mail, 1861 01:23:34,210 --> 01:23:34,950 bármi. 1862 01:23:34,950 --> 01:23:36,010 Volt egy szövegmezőbe. 1863 01:23:36,010 --> 01:23:37,670 Úgyhogy gépelés, hogy mezőbe. 1864 01:23:37,670 --> 01:23:42,170 Nos, ha azt akarjuk, hogy az értéket ki, hogy szövegmezőbe, használja dot val. 1865 01:23:42,170 --> 01:23:44,050 És akkor, itt lent, dot HTML ugyanaz 1866 01:23:44,050 --> 01:23:47,710 olyan, mint dokumentum dot getElementById dot innerHTML. 1867 01:23:47,710 --> 01:23:50,890 Szóval ez fog visszatérni Ön a HTML-re, hogy ID. 1868 01:23:50,890 --> 01:23:55,080 Itt csak használja az egyes ID vagy bármi dot HTML. 1869 01:23:55,080 --> 01:23:56,930 Hogy megkapja a HTML-re ezt az elemet. 1870 01:23:56,930 --> 01:24:00,130 Ha akarta, hogy változtassa meg, hogy HTML, akkor adja át valamit. 1871 01:24:00,130 --> 01:24:05,600 Szóval lenne, mint dot HTML, majd belsejében, idézetek, új HTML vagy valami. 1872 01:24:05,600 --> 01:24:07,490 >> GABE: OK, így AJAX. 1873 01:24:07,490 --> 01:24:10,347 Nagyon szeretném megérteni AJAX igazán jól. 1874 01:24:10,347 --> 01:24:12,430 Szóval azt akarom srácok, hogy megérteni AJAX igazán jól. 1875 01:24:12,430 --> 01:24:14,221 Mert ha igen, te elég sokat megy 1876 01:24:14,221 --> 01:24:16,810 mindent megérteni, hogy van köze HTTP, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript mert minden jön össze AJAX. 1878 01:24:21,080 --> 01:24:25,130 AJAX nem egy nyelvet. 1879 01:24:25,130 --> 01:24:27,000 Ajax egy technika. 1880 01:24:27,000 --> 01:24:31,690 És ez használ sok különböző eszközöket. 1881 01:24:31,690 --> 01:24:35,090 AJAX jelentése aszinkron JavaScript XML. 1882 01:24:35,090 --> 01:24:36,730 Így a módszer, a nyelv, az adatok. 1883 01:24:36,730 --> 01:24:40,610 >> Tehát a fő nyelv, amit használunk AJAX kiváltó mindent 1884 01:24:40,610 --> 01:24:42,830 és kezelni mindent később a JavaScript. 1885 01:24:42,830 --> 01:24:45,160 Ezért az vonatkozik nagyon közel JavaScript. 1886 01:24:45,160 --> 01:24:49,810 És akkor aszinkron van mert mi nem tesszük meg 1887 01:24:49,810 --> 01:24:51,980 Minden egyszerre, amikor éppen betölti az oldalt. 1888 01:24:51,980 --> 01:24:57,190 Ez az a dolog, amit lehet dolgokat fajta párhuzamosan. 1889 01:24:57,190 --> 01:24:59,725 A fő gondolata AJAX, hogy azt szeretné, 1890 01:24:59,725 --> 01:25:02,170 hogy kap néhány konkrét információt. 1891 01:25:02,170 --> 01:25:06,450 Például, ha gépelés új felhasználói név, ha regisztrálja a felhasználói nevet, 1892 01:25:06,450 --> 01:25:08,520 én felhasználói név abc123. 1893 01:25:08,520 --> 01:25:11,671 Aztán, a végén a formában, akkor kattintson a Küldés gombra. 1894 01:25:11,671 --> 01:25:14,420 És el kellett menni a szerver, majd ellenőrizze, hogy szerepel az adatbázisban, 1895 01:25:14,420 --> 01:25:15,594 abc123 már ott van. 1896 01:25:15,594 --> 01:25:18,510 És ha már ott van, azt mondja, a felhasználó név már szerepel az adatbázisban. 1897 01:25:18,510 --> 01:25:21,010 És, ki kell töltenie ki az egész űrlapot újra. 1898 01:25:21,010 --> 01:25:23,110 És ez nagyon, nagyon rossz. 1899 01:25:23,110 --> 01:25:25,440 >> És akkor az emberek azt mondják, OK, miért nem lehet egyszerűen 1900 01:25:25,440 --> 01:25:29,560 csinál egy kis HTTP kérést, hogy csak ellenőrizni hogy ha ez a felhasználó az adatbázisban 1901 01:25:29,560 --> 01:25:32,080 mielőtt a felhasználó azt, benyújtja az egész űrlapot? 1902 01:25:32,080 --> 01:25:36,350 Így például, ha a használati befejezi gépelés abc123, 1903 01:25:36,350 --> 01:25:39,660 menjünk a szerver egy kicsit bit, és csak kap egy igaz vagy hamis 1904 01:25:39,660 --> 01:25:43,080 a szerverről, hátha ez egy érvényes felhasználói nevet, vagy sem. 1905 01:25:43,080 --> 01:25:49,250 OK, szóval ez az egyik fő használja az AJAX napjainkban is. 1906 01:25:49,250 --> 01:25:52,130 >> DAVIN: Szóval tényleg gyorsan, a Ajax hívás jQuery, 1907 01:25:52,130 --> 01:25:54,770 akkor amellyel jelzi, hogy akarjuk, hogy legyen szinkron. 1908 01:25:54,770 --> 01:25:56,330 Nem kellene ezt csinálni. 1909 01:25:56,330 --> 01:25:57,640 De tudod csinálni. 1910 01:25:57,640 --> 01:25:59,277 És ha igen, hogy mi fog történni? 1911 01:25:59,277 --> 01:26:01,610 Nos, például, ha éppen hírek érkeznek, vagy bármi, 1912 01:26:01,610 --> 01:26:05,464 A böngésző csak fog várni addig a teljes hívás befejezése 1913 01:26:05,464 --> 01:26:08,130 ahelyett, hogy te más dolgokat, miután rákattint. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> GABE: Ez nem megy többé. 1916 01:26:17,115 --> 01:26:19,681 Oh my god. 1917 01:26:19,681 --> 01:26:20,180 Elnézést! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 Aha. 1920 01:26:23,601 --> 01:26:25,350 "A múltban, a kliens szükséges kérelem 1921 01:26:25,350 --> 01:26:26,840 A teljes tartalmát a honlap. " 1922 01:26:26,840 --> 01:26:28,210 Ez az, amit mondtam. 1923 01:26:28,210 --> 01:26:30,070 Ez lehetővé teszi számunkra, hogy küldjön További GET vagy POST 1924 01:26:30,070 --> 01:26:32,140 kérések nélkül újratölti a böngészőt. 1925 01:26:32,140 --> 01:26:34,806 Így a végén a nap, mi vagyunk valóban így egy HTTP kérések 1926 01:26:34,806 --> 01:26:35,740 Itt a JavaScript. 1927 01:26:35,740 --> 01:26:39,700 Mert előbb, csak a használt JavaScript megváltoztatni a HTML, hogy már eljött. 1928 01:26:39,700 --> 01:26:43,110 És most, fel tudjuk használni, az interfész A web szervereket is. 1929 01:26:43,110 --> 01:26:46,140 Az, hogy ez történik, ez van az ügyfél. 1930 01:26:46,140 --> 01:26:47,340 Davin egy kliens. 1931 01:26:47,340 --> 01:26:50,797 És ő minden JavaScript futás miatt HTML néma. 1932 01:26:50,797 --> 01:26:51,630 JavaScript okos. 1933 01:26:51,630 --> 01:26:54,690 Tehát Davin Davin megvan a smart rész és a néma része. 1934 01:26:54,690 --> 01:26:57,590 Meg fog használni a smart része most. 1935 01:26:57,590 --> 01:27:00,860 Meg fog használni JavaScript a kérelem, például, 1936 01:27:00,860 --> 01:27:04,340 hogy abc123 van Az adatbázis vagy sem. 1937 01:27:04,340 --> 01:27:08,450 >> Tehát Davin, kérjük, csak küldj egy HTTP kérést. 1938 01:27:08,450 --> 01:27:09,197 Köszönöm. 1939 01:27:09,197 --> 01:27:10,530 Szóval csak küldött egy HTTP kérést. 1940 01:27:10,530 --> 01:27:11,270 Látod ezt? 1941 01:27:11,270 --> 01:27:14,700 És ez ugyanúgy hogy minden HTTP kérés érkezik. 1942 01:27:14,700 --> 01:27:16,830 A böngésző, Google Chrome, vagy valami, 1943 01:27:16,830 --> 01:27:19,570 majd, hogy Davin a próbál küldeni egy HTTP kérés, 1944 01:27:19,570 --> 01:27:20,930 fog segíteni hm egy kicsit. 1945 01:27:20,930 --> 01:27:23,950 És hogy fog menni egészen a szerverre. 1946 01:27:23,950 --> 01:27:27,370 Most, a szerver megy, hogy PHP itt, vagy bármilyen más nyelven. 1947 01:27:27,370 --> 01:27:29,990 Pont, mint egy normál HTTP kérést. 1948 01:27:29,990 --> 01:27:31,950 Ez nagyjából egy normál HTTP kérést. 1949 01:27:31,950 --> 01:27:33,658 >> És akkor, a szerver azt fogja mondani, OK, 1950 01:27:33,658 --> 01:27:37,270 Davin azt akarja, hogy ellenőrizze ez abc123 van az adatbázisban. 1951 01:27:37,270 --> 01:27:38,310 Menj, beszélj a modell. 1952 01:27:38,310 --> 01:27:41,310 A modell azt mondja, hogy nem. abc123 egy jó felhasználói nevet. 1953 01:27:41,310 --> 01:27:47,940 És akkor, a webszerver fog PHP teszi valamilyen formában a fájl. 1954 01:27:47,940 --> 01:27:52,280 Lehet szó szerint csak egy fájl amely tartalmazza az "igen", vagy "nem, 1955 01:27:52,280 --> 01:27:53,315 vagy valami ilyesmi. 1956 01:27:53,315 --> 01:27:54,190 Ez lehet bármilyen fájlt. 1957 01:27:54,190 --> 01:27:57,080 >> Ez lehet, mint fogok Levél Davin egy kép egy kacsa 1958 01:27:57,080 --> 01:28:01,200 ha ez az adatbázisban, és Levél egy képet egy hörcsög 1959 01:28:01,200 --> 01:28:02,420 ha ez nem szerepel az adatbázisban. 1960 01:28:02,420 --> 01:28:04,294 Ez lenne a fajta buta, de működni fog. 1961 01:28:04,294 --> 01:28:07,030 OK, úgy küldelek én is egy kacsa, hogy Davin. 1962 01:28:07,030 --> 01:28:08,150 Davin kapott egy kacsa. 1963 01:28:08,150 --> 01:28:13,330 És most, hogy ki fog kezelni a kacsa? 1964 01:28:13,330 --> 01:28:16,390 Davin intelligens része újra, így JavaScript, ugye? 1965 01:28:16,390 --> 01:28:18,620 JavaScript elküldte a kérésre, és a JavaScript 1966 01:28:18,620 --> 01:28:22,300 fog kapni a kérelem és értelmezni azt valamilyen formában. 1967 01:28:22,300 --> 01:28:26,630 >> És ebben az értelemben, hogy fog azt mondják, OK, ha kacsa, akkor jó vagyok. 1968 01:28:26,630 --> 01:28:30,770 Ha a hörcsög, akkor fogok mondani, nem, a felhasználó név már 1969 01:28:30,770 --> 01:28:31,970 létezik az adatbázisban. 1970 01:28:31,970 --> 01:28:33,845 De általában, te nem akartam küldeni egy kacsa. 1971 01:28:33,845 --> 01:28:36,740 Fogsz küldeni valami kicsit okosabb. 1972 01:28:36,740 --> 01:28:40,320 És mire használjuk az XML. 1973 01:28:40,320 --> 01:28:42,690 És az utóbbi időben, az általunk használt JSON. 1974 01:28:42,690 --> 01:28:45,629 JSON csak JavaScript Object jelölés, amely 1975 01:28:45,629 --> 01:28:47,670 alapvetően akkor kap egy teljes JavaScript objektumot. 1976 01:28:47,670 --> 01:28:50,820 És betette egy fájlt, csak szeretném hogy CS50 objektumot, hogy a srácok látta. 1977 01:28:50,820 --> 01:28:53,090 Tette be a fájlt, és akkor küldje át a Davin. 1978 01:28:53,090 --> 01:28:55,850 >> Tehát ebben az esetben, megtenném hogy egy JavaScript objektum 1979 01:28:55,850 --> 01:28:59,570 és csak azt mondom, felhasználó létezik, igen. 1980 01:28:59,570 --> 01:29:01,630 Vagy felhasználó létezik, nincs. 1981 01:29:01,630 --> 01:29:02,810 És küldje vissza neki. 1982 01:29:02,810 --> 01:29:03,830 És miért JSON? 1983 01:29:03,830 --> 01:29:07,330 Mert az a személy aki megkapta ezt a 1984 01:29:07,330 --> 01:29:10,030 fogja használni JavaScript kezelni a válasz. 1985 01:29:10,030 --> 01:29:14,970 És JavaScript működik olyan jól, mert ez az úgynevezett JavaScript Object Notation. 1986 01:29:14,970 --> 01:29:15,470 Ugye? 1987 01:29:15,470 --> 01:29:19,660 Így tudja csak hívja a funkciót, és kap ez a szép tárgyat a választ. 1988 01:29:19,660 --> 01:29:22,890 És akkor, ő fog tudni, hogy a felhasználó ki van az adatbázisban, vagy sem. 1989 01:29:22,890 --> 01:29:25,230 >> Így látod, az egészet jön együtt a web szerver, 1990 01:29:25,230 --> 01:29:28,450 és akkor ott van egy HTTP kérést, hogy és egy HTTP választ, és mindent. 1991 01:29:28,450 --> 01:29:30,600 Ügyeljen arra, hogy a srácok megérteni ezt AJAX hívás 1992 01:29:30,600 --> 01:29:37,260 mert segít megérteni az összes A fogalmak beszélünk. 1993 01:29:37,260 --> 01:29:40,260 >> Tehát itt egy példa Az AJAX jQuery. 1994 01:29:40,260 --> 01:29:42,130 És itt, mi köze get JSON. 1995 01:29:42,130 --> 01:29:45,660 Szóval nem próbálok egy kép egy macska van, vagy egy kacsa. 1996 01:29:45,660 --> 01:29:48,110 Megpróbáljuk kap egy JSON fájlt. 1997 01:29:48,110 --> 01:29:51,184 És akkor várja meg, amíg ez kész, pont kész. 1998 01:29:51,184 --> 01:29:52,850 Ez azt jelenti, várok a választ. 1999 01:29:52,850 --> 01:29:54,180 Ez eltarthat egy darabig. 2000 01:29:54,180 --> 01:29:56,360 Ezután megjelenik egy kis terheléssel. 2001 01:29:56,360 --> 01:29:59,340 Ha azt szeretnénk, hogy ezt, hogy a honlapon. 2002 01:29:59,340 --> 01:30:01,440 Tehát dot tenni, és akkor mi történik, ha kész? 2003 01:30:01,440 --> 01:30:04,040 Elmész egy névtelen funkciót, ugyanúgy, mint korábban láttunk. 2004 01:30:04,040 --> 01:30:07,800 Mivel történik egy olyan esemény, csak mint kattint az egér, vagy bármi, 2005 01:30:07,800 --> 01:30:08,710 A jQuery. 2006 01:30:08,710 --> 01:30:13,710 Így adja át az ezt a funkciót adatok, szöveg, állapotát, és jqXHR. 2007 01:30:13,710 --> 01:30:15,790 És alapvetően, ez Csak néhány változó 2008 01:30:15,790 --> 01:30:22,160 amelyek segítségével később, hogy az állapotát a HTTP kérést, 2009 01:30:22,160 --> 01:30:24,470 Az adatok, hogy folyik küld vissza hozzád. 2010 01:30:24,470 --> 01:30:28,740 Tehát akkor később értelmezni és nem valami értelmes vele. 2011 01:30:28,740 --> 01:30:30,240 És ha ez nem sikerül, ha esetleg ez nem? 2012 01:30:30,240 --> 01:30:33,780 Nos, ha a HTTP kérést ad Ön a 500, vagy valami ilyesmi. 2013 01:30:33,780 --> 01:30:37,420 Aztán, hogy fog mondani a status, milyen hiba volt, 2014 01:30:37,420 --> 01:30:38,420 és mindenféle dolgok. 2015 01:30:38,420 --> 01:30:40,630 Meg kell győződjön meg róla, kezelni mindkét esetben, 2016 01:30:40,630 --> 01:30:42,770 Más esetben a program megőrül. 2017 01:30:42,770 --> 01:30:45,820 >> DAVIN: Szóval igen, ez pontosan mit láttál a múlt p-set. 2018 01:30:45,820 --> 01:30:49,720 A tényleges AJAX hívás a get JSON. 2019 01:30:49,720 --> 01:30:50,587 Ez a hívás. 2020 01:30:50,587 --> 01:30:52,920 És akkor, dot tenni, mint akkor ellenőrzi, hogy ez sikeres legyen. 2021 01:30:52,920 --> 01:30:55,620 Ha ez sikerül, azt szeretnénk, hogy tegyen valamit az adatokat. 2022 01:30:55,620 --> 01:30:59,290 Kapsz vissza, hogy JSON kérésére adatokat. 2023 01:30:59,290 --> 01:31:00,600 Ez az, amit kapsz vissza. 2024 01:31:00,600 --> 01:31:04,470 Tehát, ha emlékszel az Ön p-set, Sok voltál adatok konzol i 2025 01:31:04,470 --> 01:31:06,302 vagy bármi, dot linket vagy címet. 2026 01:31:06,302 --> 01:31:08,260 Bármi is jön vissza attól a JSON, bármi 2027 01:31:08,260 --> 01:31:11,020 A mezők, hogy JSON, ez az, amit kapsz vissza. 2028 01:31:11,020 --> 01:31:12,394 Az adatok mit kapsz vissza. 2029 01:31:12,394 --> 01:31:15,510 Szöveg állapotát, csak valami, ami lehetővé teszi, hogy tudom, mi történt. 2030 01:31:15,510 --> 01:31:20,570 És akkor, a jqXHR, ez csak A jQuery XML HTTP kérés. 2031 01:31:20,570 --> 01:31:21,990 Ez csak, mint egy tárgy. 2032 01:31:21,990 --> 01:31:23,932 És akkor nem, mint Gabe mondta. 2033 01:31:23,932 --> 01:31:27,140 GABE: A mi kis példa a abc123 csak azért, hogy ellenőrizze, ha ez az adatbázisban 2034 01:31:27,140 --> 01:31:32,260 vagy sem, az adatok lenne valami, amit tenne, ha az adatok dot felhasználói név létezik, 2035 01:31:32,260 --> 01:31:37,720 ami pedig a PHP generált akkor, ha az adatok dot felhasználói név létezik, akkor 2036 01:31:37,720 --> 01:31:40,880 Megyek, hogy figyelmeztesse, használati már létezik. 2037 01:31:40,880 --> 01:31:44,300 Else, én csak hagyom, hogy a használati folytassa az űrlap kitöltésekor. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK, biztonsági, hűvös. 2040 01:31:50,820 --> 01:31:52,060 >> DAVIN: Akarod, hogy? 2041 01:31:52,060 --> 01:31:54,500 >> GABE: Szeretem ezt. 2042 01:31:54,500 --> 01:31:57,680 Tehát valami, ami ismerősnek tűnik. 2043 01:31:57,680 --> 01:31:59,750 Már majdnem készen vagyunk. 2044 01:31:59,750 --> 01:32:02,670 Tehát ez csak a példa srácok látta az osztályban. 2045 01:32:02,670 --> 01:32:04,860 Ön által használt argv1 itt. 2046 01:32:04,860 --> 01:32:06,460 Ez olyan, mintha egy parancssori argumentum. 2047 01:32:06,460 --> 01:32:09,270 És mi mem másolása után egy puffer mérete 12. 2048 01:32:09,270 --> 01:32:12,560 Mi itt a probléma? 2049 01:32:12,560 --> 01:32:13,660 Puffer túlcsordulás! 2050 01:32:13,660 --> 01:32:15,400 Mert van egy puffer mérete 12. 2051 01:32:15,400 --> 01:32:18,400 argv1 lehet a mérete kétmilliárd. 2052 01:32:18,400 --> 01:32:19,960 Mi nem csinál semmi határán ellenőrzés. 2053 01:32:19,960 --> 01:32:24,970 Tehát lehet, hogy másolni egy csomó memóriát. 2054 01:32:24,970 --> 01:32:28,630 És mi lesz, különösen a rossz erről. 2055 01:32:28,630 --> 01:32:32,600 Mit tehetünk, hogy ez Nagyon-nagyon értem ebben az esetben? 2056 01:32:32,600 --> 01:32:33,278 Igen? 2057 01:32:33,278 --> 01:32:36,528 Közönség: Része a kétmilliárd dolgokat végrehajtható kódot tartalmaz, amely visszaadja 2058 01:32:36,528 --> 01:32:38,127 [Hallhatatlan]. 2059 01:32:38,127 --> 01:32:38,710 GABE: Pontosan. 2060 01:32:38,710 --> 01:32:41,110 Szóval ez a fajta dolog, hogy az emberek használni 2061 01:32:41,110 --> 01:32:43,344 jailbreak az iPhone, például. 2062 01:32:43,344 --> 01:32:44,260 Tehát ez a fajta dolog. 2063 01:32:44,260 --> 01:32:48,610 Mert ha csak így az eszköz hajt végre olyan kódot, ami tetszik. 2064 01:32:48,610 --> 01:32:50,247 A fix, így a fix könnyű. 2065 01:32:50,247 --> 01:32:51,330 Csak ellenőrizze a határokat. 2066 01:32:51,330 --> 01:32:53,455 Ellenőrizte, hogy a null miatt mindig ellenőrizze a null 2067 01:32:53,455 --> 01:32:54,940 ha van dolgunk szálakat. 2068 01:32:54,940 --> 01:32:57,840 És akkor, akkor megteszi a karakterlánchossz előtt. 2069 01:32:57,840 --> 01:33:00,150 És ha a húr hossza egy érvényes karakterlánc 2070 01:33:00,150 --> 01:33:03,700 hossz, amely belül van 0 és 12, majd jók vagyunk. 2071 01:33:03,700 --> 01:33:07,144 >> DAVIN: Ha nem ellenőrzi null, tényleg gyorsan, mi fog történni? 2072 01:33:07,144 --> 01:33:07,810 Nem lesz seg hiba. 2073 01:33:07,810 --> 01:33:10,850 Miért ez seg hibája? 2074 01:33:10,850 --> 01:33:12,510 Mivel hívsz strlen a null. 2075 01:33:12,510 --> 01:33:13,010 GABE: Igen. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 Igaz vagy hamis, valamelyikének felhasználásával jelszó egy jó ötlet. 2078 01:33:19,630 --> 01:33:20,430 >> Közönség: Hamis. 2079 01:33:20,430 --> 01:33:21,150 >> GABE: Hamis. 2080 01:33:21,150 --> 01:33:23,870 Használja sok jelszót, és a nagy, a hosszabbak. 2081 01:33:23,870 --> 01:33:26,050 Lakat ikon biztonsága érdekében. 2082 01:33:26,050 --> 01:33:27,080 >> Közönség: Hamis. 2083 01:33:27,080 --> 01:33:27,749 >> GABE: Hamis. 2084 01:33:27,749 --> 01:33:28,790 Ez nem jelent semmit. 2085 01:33:28,790 --> 01:33:30,480 Ez csak egy ikon. 2086 01:33:30,480 --> 01:33:32,824 SSL véd a man in the middle támadást. 2087 01:33:32,824 --> 01:33:33,490 Közönség: Hamis. 2088 01:33:33,490 --> 01:33:34,110 GABE: Hamis. 2089 01:33:34,110 --> 01:33:35,355 OK, tehát minden hamis. 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 [Hallhatatlan] 2093 01:33:40,220 --> 01:33:42,500 Akarok beszélni erről? 2094 01:33:42,500 --> 01:33:43,259 A sor. 2095 01:33:43,259 --> 01:33:45,050 DAVIN: típusú támadások, man in the middle. 2096 01:33:45,050 --> 01:33:47,134 Mi a man in the middle támadás? 2097 01:33:47,134 --> 01:33:48,050 Közönség: [hallható]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 DAVIN: Ha küld egy HTTP kérést, hogy meg tudják csinálni, ugye? 2100 01:33:54,020 --> 01:33:57,890 De ha küld HTTPS, akkor Valószínűleg nem lesz képes erre. 2101 01:33:57,890 --> 01:33:59,952 Van sok pont valamint a kapcsolat. 2102 01:33:59,952 --> 01:34:00,660 Van router. 2103 01:34:00,660 --> 01:34:01,746 Van DNS szerverek. 2104 01:34:01,746 --> 01:34:04,120 Ha valaki tudja, hogy fizikailag meglássa, mit küldését, 2105 01:34:04,120 --> 01:34:06,140 így valaki képes tényleg csak közted, 2106 01:34:06,140 --> 01:34:08,840 az ügyfél, és a szerver, és tudja, hogy mit akar küldeni, 2107 01:34:08,840 --> 01:34:10,298 ez egy ember a közepén támadás. 2108 01:34:10,298 --> 01:34:14,287 Tehát, hogy mit akarsz eljutni a szerver, vagy képes csak-- rosszabb, 2109 01:34:14,287 --> 01:34:16,620 akkor lehet, hogy sütemény vagy valami ilyesmi. 2110 01:34:16,620 --> 01:34:19,290 >> Így például, ha a Ön nem használja az SSL-ben 2111 01:34:19,290 --> 01:34:21,900 képes lehet látni a session ID cookie-kat. 2112 01:34:21,900 --> 01:34:25,460 És ezt nevezik munkamenet eltérítése mert látja az azonosító cookie-kat, 2113 01:34:25,460 --> 01:34:28,317 majd ő tudja, hogy megy, hogy a honlapján, és úgy tesz, mintha meg. 2114 01:34:28,317 --> 01:34:31,150 Mert ahogy a PHP, emlékszem amikor bejelentkezve, mit tegyünk? 2115 01:34:31,150 --> 01:34:33,340 Mi meg session ID egyenlő ID. 2116 01:34:33,340 --> 01:34:34,810 Tehát az Önt azonosító. 2117 01:34:34,810 --> 01:34:38,300 Ezért láthatjuk a tárca és nem mindenki más portfoliójában. 2118 01:34:38,300 --> 01:34:42,320 >> Nos, ha én vagyok képes, hogy a cookie, akkor tudok majd jelentkezni az oldalra. 2119 01:34:42,320 --> 01:34:45,380 És akkor, én is csak látja a dolgokat és meg kell kezdeni a vételi és eladási dolgokat. 2120 01:34:45,380 --> 01:34:46,800 Szóval ez munkamenet eltérítése. 2121 01:34:46,800 --> 01:34:50,810 De akkor nem lesz képes to-- így Használhatja a man in the middle támadás 2122 01:34:50,810 --> 01:34:52,290 Akkor is, ha az SSL használatával. 2123 01:34:52,290 --> 01:34:53,520 De akkor nem lesz képes. 2124 01:34:53,520 --> 01:34:56,580 Ha az általuk használt SSL, nem tudsz ülésen eltérítheti. 2125 01:34:56,580 --> 01:34:58,927 Miért? 2126 01:34:58,927 --> 01:35:01,135 Mert ez mind titkosított, ugye? ha ez titkosított, 2127 01:35:01,135 --> 01:35:03,509 és én még mindig a férfi a közepén, én még mindig az adatokat. 2128 01:35:03,509 --> 01:35:04,279 Ez rendben van. 2129 01:35:04,279 --> 01:35:05,070 De ez titkosítva. 2130 01:35:05,070 --> 01:35:07,750 Szóval nem igazán tudom használni. 2131 01:35:07,750 --> 01:35:09,840 Szóval ez a két. 2132 01:35:09,840 --> 01:35:11,544 >> Igazi gyors, cross-site kérés hamisítás. 2133 01:35:11,544 --> 01:35:13,960 Ez csak ha van egy link és ez a kapcsolat nem valami 2134 01:35:13,960 --> 01:35:14,890 hogy nem hiszem, hogy kellene csinálni. 2135 01:35:14,890 --> 01:35:18,150 Így például, ha a kapcsolat volt fognak vásárolni állományok, vagy eladni készletek, 2136 01:35:18,150 --> 01:35:19,360 és te nem tudod. 2137 01:35:19,360 --> 01:35:22,040 Rákattintott a linkre, intézett, vásárolt 2138 01:35:22,040 --> 01:35:24,240 vagy eladott valamit, Ön még nem jelenti, hogy nem. 2139 01:35:24,240 --> 01:35:25,120 Ez van. 2140 01:35:25,120 --> 01:35:30,720 >> Cross site scripting, így itt, te halad keresztül változó q, 2141 01:35:30,720 --> 01:35:33,510 ahelyett, hogy továbbítaná valamilyen Az érték, talán q olyan, mint egy név. 2142 01:35:33,510 --> 01:35:36,560 Tehát ahelyett, hogy továbbítaná q egyenlők Davin, vagy valami ilyesmi, 2143 01:35:36,560 --> 01:35:38,740 Ha nem használja a HTML speciális jelek, ha 2144 01:35:38,740 --> 01:35:43,100 Nem menekül meg, hogy megbizonyosodjon arról, hogy OK, akkor én is át a helyett, 2145 01:35:43,100 --> 01:35:46,910 mondjuk itt mondok print vagy valami ilyesmi, 2146 01:35:46,910 --> 01:35:51,070 akkor én is át itt a script hívást. 2147 01:35:51,070 --> 01:35:53,140 >> Így aztán, ahelyett, csak arra, hogy egy változó, 2148 01:35:53,140 --> 01:35:54,960 Azt majd végrehajtja ezt a forgatókönyvet hívást. 2149 01:35:54,960 --> 01:35:57,065 Szóval benne, hogy script hívja, mit csinál? 2150 01:35:57,065 --> 01:36:00,190 Dokumentum dot helyét, hogy fog változtatni a helyét a dokumentumban. 2151 01:36:00,190 --> 01:36:02,290 Így fogok átirányítani máshová. 2152 01:36:02,290 --> 01:36:08,170 Úgy hívják rosszfiú Ebben a példában, nagyon jó. 2153 01:36:08,170 --> 01:36:10,536 Nem jutott eszébe a szó. 2154 01:36:10,536 --> 01:36:12,410 És akkor mi is rosszabb, hogy megyek 2155 01:36:12,410 --> 01:36:16,832 hogy állítsa sütit, ami némi változó én a jelen honlapon. 2156 01:36:16,832 --> 01:36:19,040 Megyek beállítani egyenlő A dokumentum dot sütit. 2157 01:36:19,040 --> 01:36:20,660 Ezért megyek ellopni a cookie-t. 2158 01:36:20,660 --> 01:36:22,951 És fogok átirányítani Egyes információk a honlapon 2159 01:36:22,951 --> 01:36:25,120 hogy nem szabad hozzáférését. 2160 01:36:25,120 --> 01:36:29,250 És mindez azért történik, mert te Nem menekülés, mit láttál. 2161 01:36:29,250 --> 01:36:29,910 Igen? 2162 01:36:29,910 --> 01:36:32,160 >> Közönség: Tehát csak A félreértések, ez 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com, hogy az érzékeny erre. 2164 01:36:37,550 --> 01:36:39,300 Tehát, hogy hivatkozásával adott oldalra. 2165 01:36:39,300 --> 01:36:42,200 Valaki rákattint rajta, megy vulnerable.com. 2166 01:36:42,200 --> 01:36:43,700 Van egy cookie vulnerable.com. 2167 01:36:43,700 --> 01:36:46,670 Mondjuk Facebook sérülékeny, így facebook.com. 2168 01:36:46,670 --> 01:36:48,310 Megvan a Facebook sütit. 2169 01:36:48,310 --> 01:36:50,925 Milyen ez az csinál, te fog facebook.com, 2170 01:36:50,925 --> 01:36:53,990 ez azonnal átirányítása hogy badguy.com, 2171 01:36:53,990 --> 01:36:57,182 de beleértve a cookie információkat. 2172 01:36:57,182 --> 01:36:59,310 Tehát ez egy gyors átirányítás, de a Facebook cookie- 2173 01:36:59,310 --> 01:37:02,572 tartalmazza az átirányítás, és ez hogyan [hallhatatlan]. 2174 01:37:02,572 --> 01:37:04,280 GABE: Igen, van néhány nagyon kegyetlen dolgokat 2175 01:37:04,280 --> 01:37:06,070 hogy az emberek tehetnek, ha itt van ez. 2176 01:37:06,070 --> 01:37:09,190 Például, ha a Facebook megengedett mindenki, hogy változtassa meg a felhasználói nevet, 2177 01:37:09,190 --> 01:37:11,680 és nem tettek semmilyen alapvető ellenőrzést, így 2178 01:37:11,680 --> 01:37:16,810 épülhet be a JavaScript dolog, megváltoztatja a képet, hogy a hörcsög. 2179 01:37:16,810 --> 01:37:22,590 És beszúrja az ugyanazon JavaScript be mindenki, aki megtekinti az oldalt. 2180 01:37:22,590 --> 01:37:26,400 Tehát mindenki, aki megtekinti az oldalt ugyanaz a dolog, a felhasználói nevet. 2181 01:37:26,400 --> 01:37:30,104 És mivel ez egy vírus, terjed exponenciálisan. 2182 01:37:30,104 --> 01:37:32,270 DAVIN: Majd hagyja az utolsó Egy, aztán kész. 2183 01:37:32,270 --> 01:37:34,120 Szóval ez is csak egy példa. 2184 01:37:34,120 --> 01:37:36,120 Tehát ez ők nem menekülés a SQL táblát. 2185 01:37:36,120 --> 01:37:37,090 Szóval lehet ejtse le. 2186 01:37:37,090 --> 01:37:38,805 Tehát azt szeretnénk, hogy elkerülje a dolgok. 2187 01:37:38,805 --> 01:37:44,010 Ez volt az előző példában A cross site scripting. 2188 01:37:44,010 --> 01:37:45,430 Bocs, hogy futott egy kicsit későn. 2189 01:37:45,430 --> 01:37:46,870 Holnap, bocs! 2190 01:37:46,870 --> 01:37:48,560 Holnap, van munkaidőben. 2191 01:37:48,560 --> 01:37:50,870 Így munkaidőn Cabbot 8:00-11:00. 2192 01:37:50,870 --> 01:37:55,240 Az iroda nyitva tartása szigorúan kvíz kérdések. 2193 01:37:55,240 --> 01:37:56,587