1 00:00:00,000 --> 00:00:08,070 2 00:00:08,070 --> 00:00:10,430 >> R.J. AQUINO: Pojdiva šele začel. 3 00:00:10,430 --> 00:00:12,310 Torej, to je Quiz 1. 4 00:00:12,310 --> 00:00:14,890 Tukaj je nekaj informacij na visoki ravni. 5 00:00:14,890 --> 00:00:19,915 O strani za kviz je na to URL, ni več CS50.net, čeprav 6 00:00:19,915 --> 00:00:21,080 bo še vedno deloval. 7 00:00:21,080 --> 00:00:26,920 To je CS50.harvard.edu/quizzes/2013/1. 8 00:00:26,920 --> 00:00:31,070 To je velik O strani ti kje in kdaj, in sicer prihodnjo sredo 9 00:00:31,070 --> 00:00:32,100 v kup sob. 10 00:00:32,100 --> 00:00:36,120 In ga naslednjo sredo, sem pomeni dva dni zdaj. 11 00:00:36,120 --> 00:00:37,890 Vsi ti podatki so tam. 12 00:00:37,890 --> 00:00:39,110 Ampak to je kumulativni. 13 00:00:39,110 --> 00:00:43,790 >> Torej je vse od prve polovice leta Letos je potencialno na kvizu, 14 00:00:43,790 --> 00:00:50,780 ker si ne morem narediti napredno stvari v C brez, če pogoji, in 15 00:00:50,780 --> 00:00:51,920 za zanke in podobno. 16 00:00:51,920 --> 00:00:55,580 Vendar pa bo poudarek na Material, saj so Kviz 0, 17 00:00:55,580 --> 00:00:59,570 začenši z konstruktov in datoteke I / O. To je ponavadi bolj 18 00:00:59,570 --> 00:01:01,620 zahtevna kot Kviz 0. 19 00:01:01,620 --> 00:01:03,870 Povprečna ocena je običajno nižja. 20 00:01:03,870 --> 00:01:05,980 Pridno. 21 00:01:05,980 --> 00:01:09,340 >> Medtem ko ste študira, se prepričajte, da uporabljate CS50/discuss, da objavite na vaša vprašanja 22 00:01:09,340 --> 00:01:10,830 preberite vprašanja drugih ljudi. 23 00:01:10,830 --> 00:01:13,550 Torej, če ne boste imeli kakršnakoli vprašanja, prijavite in berejo 24 00:01:13,550 --> 00:01:14,580 Vprašanja vaši prijatelji. 25 00:01:14,580 --> 00:01:16,560 Oni so verjetno dobra vprašanja. 26 00:01:16,560 --> 00:01:17,730 In sprejme prakso kvizi. 27 00:01:17,730 --> 00:01:20,750 Smo bili kar kvizi za zdaj sedem ali osem let. 28 00:01:20,750 --> 00:01:22,180 Oni so vsi na spletu. 29 00:01:22,180 --> 00:01:25,540 Prihodnje vprašanja so podobni za stare probleme. 30 00:01:25,540 --> 00:01:26,550 To je, kako jih naredimo. 31 00:01:26,550 --> 00:01:27,740 >> Kviz še ne obstaja. 32 00:01:27,740 --> 00:01:28,670 Nobeden od nas ni videl. 33 00:01:28,670 --> 00:01:32,496 Vendar bo izgledal prejšnja kvizi. 34 00:01:32,496 --> 00:01:36,500 Na tej seji pregledu, to ni izčrpen seznam tem. 35 00:01:36,500 --> 00:01:40,740 Ne moreš kar udeležijo tega in potem biti popolnoma pripravljeni na kviz. 36 00:01:40,740 --> 00:01:43,330 V nasprotnem primeru, ne bi bilo da je veliko kviza. 37 00:01:43,330 --> 00:01:46,270 In to tudi ni nujno vse, kar morate vedeti o kateri koli 38 00:01:46,270 --> 00:01:46,970 glede na temo. 39 00:01:46,970 --> 00:01:50,520 To je pomenilo, da vam izpostavljanje stvari smo pokriti, vas spomnim, kaj smo 40 00:01:50,520 --> 00:01:53,070 pokrita, in način, na ki ga pokriva. 41 00:01:53,070 --> 00:01:57,030 Vendar boste morali iti še dlje in globlje, ko si študiral, da še enkrat preveri 42 00:01:57,030 --> 00:02:00,230 da veste vse o posamezni tema in da ste izpolnili 43 00:02:00,230 --> 00:02:03,320 vse vogale, ki so bile zajeti v predavanju. 44 00:02:03,320 --> 00:02:07,980 >> Kviz ugotavlja, vam povem, da gredo na Scribe ugotavlja, pazi predavanje videi. 45 00:02:07,980 --> 00:02:10,155 To je dober način, da poskrbite, da ste pokrila vse svoje baze. 46 00:02:10,155 --> 00:02:12,670 47 00:02:12,670 --> 00:02:17,340 Torej, kako začeti, ko sem ti tobogani, sem poskušal postaviti, kjer sem našel 48 00:02:17,340 --> 00:02:18,350 informacije. 49 00:02:18,350 --> 00:02:22,890 Torej za Datoteka I / O, na primer, 7 teden, Ponedeljek predavanje in objavljene 50 00:02:22,890 --> 00:02:27,960 Oddelek 6 in Problem Set imajo vsi Informacije o datoteki I / O. Naredil sem 51 00:02:27,960 --> 00:02:28,840 to za vsako temo. 52 00:02:28,840 --> 00:02:33,010 Torej tisti naslov diapozitivi lahko koristno za vas. 53 00:02:33,010 --> 00:02:38,950 >> Torej, tukaj imamo sliki I / O. Ne pozabite, v Problem Set 5, smo uporabili fopen, fclose, 54 00:02:38,950 --> 00:02:41,210 fwrite, fread in fseek. 55 00:02:41,210 --> 00:02:48,090 Potem ko opomogla 30ish JPEG in ko velikost in pokvaril 56 00:02:48,090 --> 00:02:50,320 bitne slike, morate biti precej pozna s temi funkcijami 57 00:02:50,320 --> 00:02:51,830 in kako delujejo. 58 00:02:51,830 --> 00:02:54,420 Če ste več ne pozna, jih zagotovo pregledati. 59 00:02:54,420 --> 00:02:56,860 In poskrbite, da boste razumeli, kaj različni argumenti, 60 00:02:56,860 --> 00:02:58,260 ko so navajeni. 61 00:02:58,260 --> 00:03:03,620 >> Vendar skupna povezanih datotek bugs boste morda vprašali - 62 00:03:03,620 --> 00:03:07,270 No, če ste pozabili, da preverite, če fopen dejansko delal, preden greš v 63 00:03:07,270 --> 00:03:08,350 spremenite datoteko. 64 00:03:08,350 --> 00:03:09,760 To bi lahko bilo slabo. 65 00:03:09,760 --> 00:03:13,560 Če ste pozabili, da fclose datoteko da ste fopened, ki je podoben 66 00:03:13,560 --> 00:03:14,400 pomnilnika. 67 00:03:14,400 --> 00:03:15,980 To je zelo slabo. 68 00:03:15,980 --> 00:03:18,670 In pozablja, da preverite, če ste dosegel konec datoteke pred vami 69 00:03:18,670 --> 00:03:19,790 začnete pisati nanj. 70 00:03:19,790 --> 00:03:22,320 >> Torej, če ste rekli, hej, jaz sem na Konec datoteke. 71 00:03:22,320 --> 00:03:23,750 Daj mi 5 več zlogov. 72 00:03:23,750 --> 00:03:27,370 No, to se verjetno ne bo izšlo tako, kot ste pričakovali. 73 00:03:27,370 --> 00:03:30,930 To je res za datoteko I / O, ker smo storili veliko od tega 74 00:03:30,930 --> 00:03:32,300 z nastavljena problem. 75 00:03:32,300 --> 00:03:36,000 Torej, če ste razumeli, kaj se dogaja Problem pri Set 5, spomnite bitmats 76 00:03:36,000 --> 00:03:40,090 in JPEG, potem ste verjetno vsi nastavljena za datoteko I / O. Če je to nekoliko 77 00:03:40,090 --> 00:03:44,770 fuzzy, vsekakor pregleda to problem nastavite in povezano gradivo. 78 00:03:44,770 --> 00:03:51,110 >> Konstruktov bila tema, ki so bili na Meja med 0 in Quiz Quiz 1. 79 00:03:51,110 --> 00:03:53,090 Ni čisto narediti rez za kviz 0. 80 00:03:53,090 --> 00:03:57,040 Tako da bomo zagotovo na Quiz 1, 7. teden, v ponedeljek. 81 00:03:57,040 --> 00:03:58,150 Kaj je struct? 82 00:03:58,150 --> 00:04:00,250 Tukaj smo pokazati zgradimo. 83 00:04:00,250 --> 00:04:03,140 To je kot novo vrsto. 84 00:04:03,140 --> 00:04:07,940 To je kot posoda Za več polj. 85 00:04:07,940 --> 00:04:12,970 >> V tem primeru smo razglasila zgradimo Študent, ki ima dve polji - 86 00:04:12,970 --> 00:04:17,750 niz, ki smo kliče ime in int, ki jih kličeš starost. 87 00:04:17,750 --> 00:04:21,450 Torej, ko sem mimo okoli študenti ali I spremenite študente, bom lahko 88 00:04:21,450 --> 00:04:24,430 dostop do svoje ime in svojo starost. 89 00:04:24,430 --> 00:04:26,670 Oglejmo si nekaj kode za to. 90 00:04:26,670 --> 00:04:29,090 Tukaj smo videli, da sem se razglasi Študent s, tako kot 91 00:04:29,090 --> 00:04:30,300 Izjavljam nobene spremenljivke - 92 00:04:30,300 --> 00:04:32,430 int x, int y, et cetera. 93 00:04:32,430 --> 00:04:34,180 >> Tukaj je študent s. 94 00:04:34,180 --> 00:04:37,370 On se začne z nič na svojih področjih. 95 00:04:37,370 --> 00:04:38,240 Tako da je iz njih. 96 00:04:38,240 --> 00:04:40,681 Nastavite polja na struct s piko. 97 00:04:40,681 --> 00:04:43,780 Zato sem tukaj, je dejal, da s.name = RJ. 98 00:04:43,780 --> 00:04:46,470 In M.star = 21. 99 00:04:46,470 --> 00:04:48,500 Prav tako lahko posodobite polja enak način, ki ste jo posodobili 100 00:04:48,500 --> 00:04:49,550 vrednost spremenljivke. 101 00:04:49,550 --> 00:04:53,270 Torej, želim, da spremenite svoje ime RJ z Ni obdobja do R.J. pira 102 00:04:53,270 --> 00:04:54,540 pravilen način. 103 00:04:54,540 --> 00:04:58,890 To bi s.name = RJ, enaka kot smo ga prvotno dejal. 104 00:04:58,890 --> 00:05:00,030 In potem si lahko dostopajo do njih. 105 00:05:00,030 --> 00:05:00,930 >> Zato smo jih nastaviti. 106 00:05:00,930 --> 00:05:01,840 Smo jih posodobiti. 107 00:05:01,840 --> 00:05:03,890 Lahko pa tudi dostop do njih in sicer na enak način. 108 00:05:03,890 --> 00:05:09,330 Torej, tukaj, jaz tiskanje R.J. Je star 21 let. 109 00:05:09,330 --> 00:05:14,700 In jaz sem dostop do teh vrednot z s.name in M.star. 110 00:05:14,700 --> 00:05:17,040 Tako da je dostop do struktur struct z dot zapisu. 111 00:05:17,040 --> 00:05:17,850 Ja, vprašanje? 112 00:05:17,850 --> 00:05:21,176 >> PUBLIKA: Ali obstaja razlog za Predhodna slide, da nisi dal 113 00:05:21,176 --> 00:05:24,848 študent na vrhu, kot typedef struct študent, nato pa 114 00:05:24,848 --> 00:05:25,840 Študent na koncu? 115 00:05:25,840 --> 00:05:29,040 >> R.J. AQUINO: Torej, vprašanje je bilo, na to slide, smo običajno pojavi 116 00:05:29,040 --> 00:05:32,400 typedef struct vozlišče in potem Področja struct in 117 00:05:32,400 --> 00:05:34,250 potem beseda vozlišče. 118 00:05:34,250 --> 00:05:37,790 In kako to, da tukaj nisem rekel, typedef struct študent, nato pa 119 00:05:37,790 --> 00:05:39,820 Področja struct in nato študent? 120 00:05:39,820 --> 00:05:44,310 Razlog za to je, da mi ni treba nje dostopate znotraj struct. 121 00:05:44,310 --> 00:05:46,270 Torej, to je v redu, da ga pustijo brez imena. 122 00:05:46,270 --> 00:05:49,210 Lahko pustite kot anonimni struct. 123 00:05:49,210 --> 00:05:53,130 >> Razlog, da to storite, povezanih seznamov in Stvari je zato, ker notri, kar potrebujete 124 00:05:53,130 --> 00:05:55,360 referenco struct vozlišč zvezda. 125 00:05:55,360 --> 00:05:58,220 Torej struct mora imeti ime, tako da lahko dostopate do njega kasneje. 126 00:05:58,220 --> 00:05:59,540 To je manjše podrobnosti. 127 00:05:59,540 --> 00:06:04,750 Vendar boste običajno vidite typedef zgradimo zaviti oklepaji, če jih ne potrebujete 128 00:06:04,750 --> 00:06:08,720 Ime in typedef struct nekaj ime sledi zavitimi oklepaji, če boste 129 00:06:08,720 --> 00:06:09,520 Potrebujem ime. 130 00:06:09,520 --> 00:06:12,070 Torej, to je dobro vprašanje. 131 00:06:12,070 --> 00:06:17,000 >> In na tej točki, smo nagnjeni k spremeniti konstruktov in podaj naokoli struktur struct, ki jih 132 00:06:17,000 --> 00:06:18,680 reference, ne po vrednosti. 133 00:06:18,680 --> 00:06:21,940 Torej bova mimo okoli napotke za konstruktov, namesto da poteka okoli 134 00:06:21,940 --> 00:06:23,150 sami konstruktov. 135 00:06:23,150 --> 00:06:28,050 Torej ste se zelo pogosto dogaja, da se pri čemer se v tem primeru študent * ali 136 00:06:28,050 --> 00:06:34,150 struct node * ali vozlišče * namesto out študenti ali vozlišč. 137 00:06:34,150 --> 00:06:39,350 Torej, tukaj sem rekel, OK, spremenljivka PTR se bo naslov s. 138 00:06:39,350 --> 00:06:45,570 To se dogaja, da se kazalec študentu R.J. 139 00:06:45,570 --> 00:06:48,965 >> Tako bomo lahko dobite na teh področjih Enako, kot smo dobili ničesar. 140 00:06:48,965 --> 00:06:51,460 Prvič, ID reference kazalec da bi dobili zgradimo. 141 00:06:51,460 --> 00:06:55,530 To je * ptr in nato pika, nato pa starost. 142 00:06:55,530 --> 00:06:58,790 Tako za dostop do polja, in sem posodobljeno je zdaj 22., ker dajmo 143 00:06:58,790 --> 00:07:00,860 recimo, da je moj rojstni dan. 144 00:07:00,860 --> 00:07:03,990 Tam je bližnjica skladnja z uporabo puščico tukaj. 145 00:07:03,990 --> 00:07:07,060 Torej ptr arrow starost je le enako kot * ptr.age. 146 00:07:07,060 --> 00:07:10,150 147 00:07:10,150 --> 00:07:11,550 No, to je nekaj, kar boste morali zapomniti in se spomnite. 148 00:07:11,550 --> 00:07:15,010 >> Včasih si to veliko v pset6, speller pset. 149 00:07:15,010 --> 00:07:18,350 Ampak to je pravzaprav tisto, kar se dogaja na pod pokrovom. 150 00:07:18,350 --> 00:07:20,500 To je Dereferenciranje kazalec in nato dostop do njih. 151 00:07:20,500 --> 00:07:21,432 Vprašanje? 152 00:07:21,432 --> 00:07:22,682 >> PUBLIKA: [neslišno]. 153 00:07:22,682 --> 00:07:25,860 154 00:07:25,860 --> 00:07:28,060 >> R.J. AQUINO: Torej, zakaj smo s pomočjo kazalci so konstruktov namesto 155 00:07:28,060 --> 00:07:29,500 sami konstruktov? 156 00:07:29,500 --> 00:07:33,740 Razlog bi bilo, če vrtaš struct do funkcije, ki jih verjetno 157 00:07:33,740 --> 00:07:36,900 želijo prenesti okoli samo 4 ali tako bajtov, ki predstavljajo kazalec, kot 158 00:07:36,900 --> 00:07:40,375 v nasprotju z 30. ali potencialno 40 bajtov, ki so struct. 159 00:07:40,375 --> 00:07:44,410 Torej gre nekaj na funkcijo je lažje, če stvar 160 00:07:44,410 --> 00:07:48,230 je manjši v kratkem. 161 00:07:48,230 --> 00:07:49,074 Vprašanje? 162 00:07:49,074 --> 00:07:53,026 >> PUBLIKA: Morda ste to omenili v začetku, vendar je tam 163 00:07:53,026 --> 00:07:56,000 druge drsi na [neslišno]? 164 00:07:56,000 --> 00:07:58,960 >> R.J. AQUINO: Ti diapozitivi bo navzgor po seji pregledu. 165 00:07:58,960 --> 00:08:00,210 Mi jih bomo objavili na spletni strani. 166 00:08:00,210 --> 00:08:02,450 167 00:08:02,450 --> 00:08:06,870 Torej se gibljejo naprej in se gibljejo na nekoliko hitreje, bomo govorili o podatkih 168 00:08:06,870 --> 00:08:07,350 struktur. 169 00:08:07,350 --> 00:08:08,040 Obstaja veliko. 170 00:08:08,040 --> 00:08:10,080 Pokrita smo kup njih. 171 00:08:10,080 --> 00:08:12,500 Tukaj je tisto, kar morate razumeti, o strukturi podatkov. 172 00:08:12,500 --> 00:08:15,590 >> Res bi se morali razumeti na visoki raven, kar vsaka struktura. 173 00:08:15,590 --> 00:08:21,190 Ali lahko razložite v angleščini, da vaš Prijatelj, ki še ni sprejela CS50 kako 174 00:08:21,190 --> 00:08:25,580 smo organizirati svoje podatke in zakaj bi uporabljali nekaj, na ta način? 175 00:08:25,580 --> 00:08:26,990 To je stvar ena. 176 00:08:26,990 --> 00:08:29,650 Stvar dveh, razumeti izvajanje. 177 00:08:29,650 --> 00:08:34,270 Torej razumem, kako uporabljati te stvari v C. In bomo šli čez to. 178 00:08:34,270 --> 00:08:39,030 >> In potem stvar trije bi vedeli teči čas in omejitve 179 00:08:39,030 --> 00:08:40,470 različne strukture, ki jo uporabljate. 180 00:08:40,470 --> 00:08:44,059 Torej razumem, zakaj bi uporabili hash tabelo namesto matrike. 181 00:08:44,059 --> 00:08:49,570 Razumeti, kako hitro se v povprečju dostopu do razpršene tabele je. 182 00:08:49,570 --> 00:08:54,010 Razumeti, kaj se operacije so hitro na povezani seznam, vendar počasi na nizi in 183 00:08:54,010 --> 00:08:56,080 obratno. 184 00:08:56,080 --> 00:08:59,780 Torej, da bi razumeli, da boste morali razumeti Big-O zapis samo vedeti 185 00:08:59,780 --> 00:09:01,310 kako govoriti o teh mogoče stvari. 186 00:09:01,310 --> 00:09:02,700 In se bova pogovorila o tem. 187 00:09:02,700 --> 00:09:06,040 >> Torej prva stvar, ki je povezana seznamov. 188 00:09:06,040 --> 00:09:07,770 Tukaj je slika na visoki ravni v povezanem seznamu. 189 00:09:07,770 --> 00:09:08,830 Pokazali smo to v razredu. 190 00:09:08,830 --> 00:09:11,670 Mi ponavadi imajo 10 ljudi stoji na odru. 191 00:09:11,670 --> 00:09:16,790 Vendar imamo niza vozlov, kjer vsak vozlišče ima neko vrednost in kazalec 192 00:09:16,790 --> 00:09:18,610 na naslednjo vrednost. 193 00:09:18,610 --> 00:09:21,730 Torej, da bi dobili od enega vozlišča na naslednji korak, samo reči, da mi naslednje vozlišče. 194 00:09:21,730 --> 00:09:22,530 Imate to vozlišče. 195 00:09:22,530 --> 00:09:23,770 Daj mi naslednje vozlišče. 196 00:09:23,770 --> 00:09:24,400 Imate to vozlišče. 197 00:09:24,400 --> 00:09:28,790 Daj mi naslednje vozlišče in tako naprej dokler ni vozel levo. 198 00:09:28,790 --> 00:09:31,850 >> Torej še naprej govoriti o je na visoki ravni. 199 00:09:31,850 --> 00:09:34,100 To je zelo enostavno postaviti stvari v povezanem seznamu. 200 00:09:34,100 --> 00:09:36,010 Če vam ni mar za red, lahko samo spusti 201 00:09:36,010 --> 00:09:36,840 takoj na začetku. 202 00:09:36,840 --> 00:09:38,520 To je stalen čas. 203 00:09:38,520 --> 00:09:39,900 Ampak to je težko najti vrednost. 204 00:09:39,900 --> 00:09:43,060 Če ste poskušali vprašati, je sedem na mojem seznamu? 205 00:09:43,060 --> 00:09:44,740 Moraš iti skozi vsak vrednost. 206 00:09:44,740 --> 00:09:45,680 Je to sedem? 207 00:09:45,680 --> 00:09:46,610 Je to sedem? 208 00:09:46,610 --> 00:09:47,770 Je to sedem? 209 00:09:47,770 --> 00:09:48,690 Je to sedem? 210 00:09:48,690 --> 00:09:49,830 Znova in znova. 211 00:09:49,830 --> 00:09:51,520 In to je O (n). 212 00:09:51,520 --> 00:09:53,800 Torej, ko študira za kviz, Primerjajte to z nizi. 213 00:09:53,800 --> 00:09:57,010 214 00:09:57,010 --> 00:09:58,220 >> Je to v redu? 215 00:09:58,220 --> 00:09:59,220 Luči so dim. 216 00:09:59,220 --> 00:10:01,110 OK. 217 00:10:01,110 --> 00:10:02,400 Ko je povezan seznam bolje? 218 00:10:02,400 --> 00:10:04,640 Ko je matrika bolje? 219 00:10:04,640 --> 00:10:06,670 Zato si oglejmo nekaj kode. 220 00:10:06,670 --> 00:10:08,960 Tukaj je potencial vozlišča. 221 00:10:08,960 --> 00:10:09,770 To je struct. 222 00:10:09,770 --> 00:10:12,220 Ima int n, ki bo naša vrednota. 223 00:10:12,220 --> 00:10:17,780 In ima struct vozlišče * naslednji, ki Naša kazalec na naslednje vozlišče. 224 00:10:17,780 --> 00:10:23,040 Torej, tukaj smo lahko videli, da se je zgodilo da je dal int v našem vozlišče. 225 00:10:23,040 --> 00:10:27,850 Ampak, če bi bilo to povezano seznam char zvezde ali povezan seznam plovci, smo 226 00:10:27,850 --> 00:10:28,820 Popolnoma lahko to storite tudi. 227 00:10:28,820 --> 00:10:33,110 >> Ne pozabite na pset6, ste verjetno imeli povezani seznam značil zvezd ali pa samo 228 00:10:33,110 --> 00:10:34,360 statični char nizi. 229 00:10:34,360 --> 00:10:37,370 230 00:10:37,370 --> 00:10:39,040 Oglejmo si tukaj na operacijo. 231 00:10:39,040 --> 00:10:43,570 Zato želimo vstaviti novo n v našem povezanem seznamu. 232 00:10:43,570 --> 00:10:48,940 Smo začeli z glavo kazalec, ki je kazalec na to, da ima vozlišče 233 00:10:48,940 --> 00:10:53,460 vrednost n in dostavo od kazalca, da opozarja na tem vozlišču je vrednost 234 00:10:53,460 --> 00:10:57,760 n in dostavo iz vezi, ker to je zadnji vozel. 235 00:10:57,760 --> 00:11:00,440 Tako v interesu časa, bom Vso kodo na ekranu. 236 00:11:00,440 --> 00:11:03,130 In mi se bomo sprehodili skozi njo nekaj vrstic hkrati. 237 00:11:03,130 --> 00:11:05,790 >> Torej, tukaj je koda. 238 00:11:05,790 --> 00:11:07,560 Upam, da je berljivo. 239 00:11:07,560 --> 00:11:11,275 Prva stvar, ki mi je smo malloc novo vozlišče. 240 00:11:11,275 --> 00:11:15,105 Torej je kazalec na novo vozlišče, ki ne čisto še kaj nastaviti 241 00:11:15,105 --> 00:11:16,450 v njem še ni. 242 00:11:16,450 --> 00:11:19,580 Mi preverite, da novo vozlišče ni nič. 243 00:11:19,580 --> 00:11:22,220 V nasprotnem primeru bomo morali odreči. 244 00:11:22,220 --> 00:11:27,680 Tako je preverila, da smo zdaj nastavite vrednosti v vozlišču. 245 00:11:27,680 --> 00:11:31,520 Zato smo pripravili nov n v naše n področju. 246 00:11:31,520 --> 00:11:36,050 In smo postavili naslednjo kazalec, da kaže na prvotna glavo, tako da bomo lahko 247 00:11:36,050 --> 00:11:38,900 Zdaj so to vstavi vozlišča v našem seznamu. 248 00:11:38,900 --> 00:11:44,600 >> Končno smo globalno glavo točko našo novo vozlišče, tako da če bi 249 00:11:44,600 --> 00:11:50,300 začetek v glavi, bi morali biti na to Novi prvo vozlišče namesto 250 00:11:50,300 --> 00:11:51,560 stari prvo vozlišče. 251 00:11:51,560 --> 00:11:55,320 In ko je ta funkcija tiskalnika, spremenljivka novo vozlišče ne obstaja več, 252 00:11:55,320 --> 00:11:57,130 ker je bila lokalno na funkcijo. 253 00:11:57,130 --> 00:11:59,770 To je torej stanje v svetu. 254 00:11:59,770 --> 00:12:03,570 Naš globalni vodja opozarja, da naša nova Prvo vozlišče, kar kaže na našo 255 00:12:03,570 --> 00:12:06,346 Prvotni prvi vozel, ki točk na vozlišče za tem. 256 00:12:06,346 --> 00:12:09,790 >> To je bilo vstavljanje. 257 00:12:09,790 --> 00:12:12,150 Upam, da je bil relativno enostavno slediti. 258 00:12:12,150 --> 00:12:14,300 Če ste v dvomih, narisati sliko. 259 00:12:14,300 --> 00:12:17,820 Zato se mi zdi, da govorimo o povezani seznami in gledaš 260 00:12:17,820 --> 00:12:19,870 koda je zelo ne pomaga. 261 00:12:19,870 --> 00:12:23,790 Ker je videti na sliki povezan Seznam mi omogoča, da mislim, oh, tako 262 00:12:23,790 --> 00:12:24,970 Imam to vozlišče tukaj. 263 00:12:24,970 --> 00:12:28,980 Ampak, če sem posodobiti, da kazalec, se konča izključen. 264 00:12:28,980 --> 00:12:34,340 In sem pozabil, kjer vozlišče gre. 265 00:12:34,340 --> 00:12:35,390 In šifra tiskalnika. 266 00:12:35,390 --> 00:12:37,830 In imate več vozlišč da se odklopi. 267 00:12:37,830 --> 00:12:39,970 In ne boste na koncu z Seznam, ki ga želite. 268 00:12:39,970 --> 00:12:43,320 >> Torej, če ste narisati sliko in jo narediti korak za korakom, upam, da boste videli 269 00:12:43,320 --> 00:12:46,840 pravilen vrstni red stvari, v smislu posodabljanje kazalcev se prepričajte 270 00:12:46,840 --> 00:12:48,830 da seznam pride skupaj. 271 00:12:48,830 --> 00:12:51,240 Vložek je razmeroma enostavna. 272 00:12:51,240 --> 00:12:55,210 Bolj zapleteno bi vstavljanje v razvrščeni seznamu. 273 00:12:55,210 --> 00:12:59,980 Bolj zapletena naloga je izbrisati in ugotovite, da je videti skozi seznama 274 00:12:59,980 --> 00:13:03,030 vidim, če je nekaj tam. 275 00:13:03,030 --> 00:13:07,220 Morda ste to naredili v pset6 ko dobil v svoj razpršene tabele in si rekel, 276 00:13:07,220 --> 00:13:10,460 dobro, je beseda jabolko v mojem povezanem seznamu? 277 00:13:10,460 --> 00:13:11,440 >> Torej, ste morda že to storil. 278 00:13:11,440 --> 00:13:15,530 Ampak definitivno, osvežim spomin in poskusite reimplement najdbo in 279 00:13:15,530 --> 00:13:19,150 reimplement izbrisati za povezanem seznamu. 280 00:13:19,150 --> 00:13:22,850 Zabavna stran note, pa tudi dvojno povezani- seznami, kjer imate 281 00:13:22,850 --> 00:13:27,490 kazalci, ki kažejo tako naprej in nazaj, tako da lahko greš na 282 00:13:27,490 --> 00:13:29,270 naslednje vozlišče in s predhodnim vozliščem. 283 00:13:29,270 --> 00:13:33,860 In tam je bilo vprašanje, na lanskoletno Kviz te vrste, ki govori 284 00:13:33,860 --> 00:13:36,190 približno dvakrat povezane sezname. 285 00:13:36,190 --> 00:13:40,070 >> No, to je struktura, ki ste razmeroma pozna, saj je večina 286 00:13:40,070 --> 00:13:42,520 vas verjetno jih uporabljajo na pset6. 287 00:13:42,520 --> 00:13:45,680 Tukaj je ena, ki je malo manj znan. 288 00:13:45,680 --> 00:13:51,020 Kot opomba, mislim, da je Quiz 1 predvsem težje kot kviz 0, ker 289 00:13:51,020 --> 00:13:54,600 stvari delaš, si niso storili toliko. 290 00:13:54,600 --> 00:13:58,100 Da bi dal, da na drug način, na kvizu 0, ti je napisal veliko C. In smo 291 00:13:58,100 --> 00:13:58,880 vas vprašal o C. 292 00:13:58,880 --> 00:14:02,310 >> Za Quiz 1, bomo vas vprašati o PHP in JavaScript, ki ga 293 00:14:02,310 --> 00:14:03,490 niso napisana toliko. 294 00:14:03,490 --> 00:14:07,590 Bomo vas vprašati o C-kode, ki nisi napisal toliko, 295 00:14:07,590 --> 00:14:09,130 Ta napredni C stvari. 296 00:14:09,130 --> 00:14:11,520 Torej vsekakor, vaditi stvari, ki jih govorili v predavanju, ki ga 297 00:14:11,520 --> 00:14:15,260 ni nujno narediti na problemu nastaviti. 298 00:14:15,260 --> 00:14:17,870 >> Ko že govorimo, nisi napisal dimnik na problem nastaviti. 299 00:14:17,870 --> 00:14:19,610 Ampak to je v predavanju. 300 00:14:19,610 --> 00:14:22,530 Tukaj je slika na visoki ravni nizov, ki jih vsako leto pokažejo. 301 00:14:22,530 --> 00:14:26,180 To je skladovnica pladnjev v Mather jedilnica. 302 00:14:26,180 --> 00:14:30,570 Na visoki ravni, nizov so last noter, prvi ven struktura podatkov. 303 00:14:30,570 --> 00:14:32,040 To pomeni, da boste postaviti stvari - 304 00:14:32,040 --> 00:14:36,400 1, 3, 7, 12, 14, negativni 0. 305 00:14:36,400 --> 00:14:39,180 Ena stvar, ki sem ne bi mogla je dejal - negativna 3, 0. 306 00:14:39,180 --> 00:14:40,250 Si dal vse te stvari noter 307 00:14:40,250 --> 00:14:42,940 In zadnja si dal v, je prva tisti, ki se dogaja, da pridejo ven. 308 00:14:42,940 --> 00:14:44,170 >> Torej imate dve operaciji - 309 00:14:44,170 --> 00:14:45,260 potiskanje in pop. 310 00:14:45,260 --> 00:14:49,180 Vse dajanje s tem, da sem bil kretnjam, kot je ta, so pritisk. 311 00:14:49,180 --> 00:14:52,020 In potem, ko sem dosegel v zagrabiti ali nekaj dosegli na vrhu, da zgrabite 312 00:14:52,020 --> 00:14:53,940 Nekaj, da je pop. 313 00:14:53,940 --> 00:14:55,540 Torej bomo za izvajanje nizov. 314 00:14:55,540 --> 00:14:57,870 In mi jih je pokazala v predavanju uporabljate nize. 315 00:14:57,870 --> 00:14:59,550 Vendar bi jih lahko storite uporabo povezanih seznamov. 316 00:14:59,550 --> 00:15:01,770 Sveženj je konceptualno podatki konstrukcije, ki ni všeč 317 00:15:01,770 --> 00:15:03,760 en izvajanje specifičnih. 318 00:15:03,760 --> 00:15:06,420 >> Torej, kaj bi bilo to videti? 319 00:15:06,420 --> 00:15:07,970 To bi bilo videti nekako takole. 320 00:15:07,970 --> 00:15:10,840 Raje imajo velikost celo število. 321 00:15:10,840 --> 00:15:16,000 In želite imeti niz vrednot, ki smo kličeš pladnje, saj je to 322 00:15:16,000 --> 00:15:18,570 kakšna slika je bila za us - int pladnji - 323 00:15:18,570 --> 00:15:21,740 in še nekaj največjo zmogljivost. 324 00:15:21,740 --> 00:15:27,100 Torej, kaj bi potisnite izgledal? 325 00:15:27,100 --> 00:15:33,250 No, če imamo žetonov s, nato pa potisnite nekaj na s, bi dobili 326 00:15:33,250 --> 00:15:34,620 velikost s. 327 00:15:34,620 --> 00:15:42,270 In da bo naslednji odprta točka našega array. 328 00:15:42,270 --> 00:15:50,510 Torej, če imamo tri stvari v našem dimnika, potem bi pladnji 3 bodo naslednja 329 00:15:50,510 --> 00:15:54,290 odprto mesto, ker 0, 1, in 2 že napolnjena. 330 00:15:54,290 --> 00:16:01,790 >> Zato smo se vrednost v s.trays [s.size], tretje mesto. 331 00:16:01,790 --> 00:16:06,290 In potem smo prirastek s.size reči, hej, smo imeli tri stvari prej. 332 00:16:06,290 --> 00:16:07,400 Zdaj imamo štiri. 333 00:16:07,400 --> 00:16:10,180 Torej, naslednjič, ko boste pritisnili, si bo dal nekaj v 4. 334 00:16:10,180 --> 00:16:15,560 Ali pa naslednjič, ko pop, si bom pogled na 3 namesto 4 ali karkoli. 335 00:16:15,560 --> 00:16:18,000 In potem se bomo vrnili zvesti recimo, hej, nam je uspelo. 336 00:16:18,000 --> 00:16:19,160 To je delal. 337 00:16:19,160 --> 00:16:22,060 Kot pravilo palca, če je funkcija, ki je naj vrne true ali 338 00:16:22,060 --> 00:16:26,370 false vedno vrne true, si lahko so naredili nekaj narobe. 339 00:16:26,370 --> 00:16:28,350 Tako to deluje? 340 00:16:28,350 --> 00:16:32,400 >> No, deluje v redu za 1, in 2 in 3 in 4, in pet. 341 00:16:32,400 --> 00:16:34,640 Ampak recimo, da sem dosegel svojo kapaciteto. 342 00:16:34,640 --> 00:16:38,750 Sem pa naletel na problem, saj če je velikost enaka kot zmogljivostjo, sem 343 00:16:38,750 --> 00:16:43,340 zdaj poskuša dati nekaj v matrika, kjer nimam prostora. 344 00:16:43,340 --> 00:16:46,980 Tako kratek pregled popraviti to. 345 00:16:46,980 --> 00:16:51,630 Če s.size == ZMOGLJIVOSTI, vrne false. 346 00:16:51,630 --> 00:16:54,130 Sicer pojdite in to, kar smo storili. 347 00:16:54,130 --> 00:16:55,660 Torej, kaj še lahko vprašamo o za kupe? 348 00:16:55,660 --> 00:16:56,460 Kaj bi še morali študirati? 349 00:16:56,460 --> 00:16:57,690 Kaj bi še morali vaditi? 350 00:16:57,690 --> 00:17:01,030 >> No, izvajanje pop. 351 00:17:01,030 --> 00:17:02,370 Smo že naredili potiskanje. 352 00:17:02,370 --> 00:17:04,280 Jaz bom popraviti. 353 00:17:04,280 --> 00:17:08,180 Izvajanje non-matrika, kadar uporabljate povezani seznam, morda. 354 00:17:08,180 --> 00:17:09,390 Izvajanje non-int. 355 00:17:09,390 --> 00:17:10,940 Tukaj sva Ints. 356 00:17:10,940 --> 00:17:11,880 Vendar pa bi bilo boje. 357 00:17:11,880 --> 00:17:13,010 Lahko bi bil strune. 358 00:17:13,010 --> 00:17:14,290 To bi lahko bila značil zvezde. 359 00:17:14,290 --> 00:17:17,960 Poglej preteklih kvizov za vrste Vprašanja, ki smo jih spraševali nizov. 360 00:17:17,960 --> 00:17:20,000 >> Jaz bom rekel, da smo pokrili okoli nizov Enako kot smo jih pokriva 361 00:17:20,000 --> 00:17:20,540 let preteklosti. 362 00:17:20,540 --> 00:17:24,400 Torej kviz vprašanja smeli biti dober znak. 363 00:17:24,400 --> 00:17:27,010 Napreduje še hitreje, čakalnih vrst. 364 00:17:27,010 --> 00:17:28,200 Oni so kot kupe. 365 00:17:28,200 --> 00:17:29,960 Ampak oni so prvi noter, prvi ven. 366 00:17:29,960 --> 00:17:33,530 Če ste British, beseda čakalne vrste Verjetno je veliko smisla za vas. 367 00:17:33,530 --> 00:17:36,390 V nasprotnem primeru boste morda morali slišal zanjo, kot črte. 368 00:17:36,390 --> 00:17:38,120 Delajo tako kot črto v trgovini Apple. 369 00:17:38,120 --> 00:17:40,740 Prva oseba, da pokažejo ob 03:00 zjutraj je prva 370 00:17:40,740 --> 00:17:42,880 oseba kupil iPad. 371 00:17:42,880 --> 00:17:44,260 >> Torej imamo dve operaciji - 372 00:17:44,260 --> 00:17:45,720 enqueue in dequeue. 373 00:17:45,720 --> 00:17:47,560 Enqueue postavlja nekoga na liniji. 374 00:17:47,560 --> 00:17:50,070 Dequeue potegne prvi Oseba z linije. 375 00:17:50,070 --> 00:17:52,640 Again, lahko izvajamo to s paleto. 376 00:17:52,640 --> 00:17:54,880 Torej, kaj je struct smo je pokazala na predavanju? 377 00:17:54,880 --> 00:17:57,660 Bilo je to ena. 378 00:17:57,660 --> 00:17:59,300 Again, številke. 379 00:17:59,300 --> 00:18:02,020 Again, velikost in ta nova stvar spredaj. 380 00:18:02,020 --> 00:18:04,880 Zakaj je tam nekaj, kar ti spredaj? 381 00:18:04,880 --> 00:18:07,050 To je indeks Naslednja element dequeue. 382 00:18:07,050 --> 00:18:12,210 To je samo interno sledenja Prvi tip, da pokažejo, da bomo 383 00:18:12,210 --> 00:18:15,005 Lahko jo potegnil ven, ko smo morali. 384 00:18:15,005 --> 00:18:19,322 >> Definitivno poglej skripta in poskusite izvajati enqueue in dequeue 385 00:18:19,322 --> 00:18:21,700 pri študiju za kviz. 386 00:18:21,700 --> 00:18:23,190 Pomembne stvari, da misliti. 387 00:18:23,190 --> 00:18:27,260 Ovije okoli če prednja plus velikost konča večje od zmogljivosti. 388 00:18:27,260 --> 00:18:32,670 Še enkrat, če vaš struktura je polna, boste imeli težave. 389 00:18:32,670 --> 00:18:34,780 Hash tabele, ki ste jih videl. 390 00:18:34,780 --> 00:18:39,820 Večina vas verjetno izvajali ti na pset6. 391 00:18:39,820 --> 00:18:44,210 To je struktura, ki si prizadeva za O (1) konstantna čas vstavitve in O (1) 392 00:18:44,210 --> 00:18:46,430 konstantna čas za iskanje. 393 00:18:46,430 --> 00:18:49,760 >> V CS50, to smo izvajali Niz povezanih seznamov. 394 00:18:49,760 --> 00:18:53,690 Ključni element za razpršene tabele je razpršilna funkcija. 395 00:18:53,690 --> 00:18:58,350 Tako da pretvori vaš prispevek, recimo, slovar besedo, v številu, 396 00:18:58,350 --> 00:18:59,560 ki se bo naš indeks. 397 00:18:59,560 --> 00:19:01,410 In bomo uporabili ta indeks v naši matriki. 398 00:19:01,410 --> 00:19:05,374 Torej, tukaj je srčkano slika od study.50.net. 399 00:19:05,374 --> 00:19:08,060 Vržemo vse besede v naša hash funkcija. 400 00:19:08,060 --> 00:19:10,950 In hash funkcija nam pove, kje postaviti te besede. 401 00:19:10,950 --> 00:19:15,650 >> To je vse super, v deželi, kjer obstaja samo ena beseda za vsako režo. 402 00:19:15,650 --> 00:19:20,480 Toda, ko se spomnite iz pset6 obstaja več besed kot slotov. 403 00:19:20,480 --> 00:19:23,080 Torej, kaj se zgodi, ko dobili trčenje? 404 00:19:23,080 --> 00:19:26,730 Namesto skladiščenje enega vrednosti, recimo, razpršene tabele 3, ki jih 405 00:19:26,730 --> 00:19:27,990 shranite povezani seznam. 406 00:19:27,990 --> 00:19:32,900 In tako namesto da melone tu bi imeli povezani seznam, 407 00:19:32,900 --> 00:19:34,190 kjer je prvo vozlišče melona. 408 00:19:34,190 --> 00:19:35,260 In naslednje vozlišče je mačka. 409 00:19:35,260 --> 00:19:38,970 In tretje vozlišče je trčenje, dajmo pravijo, ker vse te besede začetek 410 00:19:38,970 --> 00:19:41,110 z C. 411 00:19:41,110 --> 00:19:42,700 >> Torej, večina od vas to storil za pset6. 412 00:19:42,700 --> 00:19:45,685 Če nisi naredil razpršene tabele na pset6 in boste poskušali nekaj podobnega 413 00:19:45,685 --> 00:19:47,720 Trie, vsekakor pregledati hash tabel. 414 00:19:47,720 --> 00:19:50,650 Če si to naredil na pset6, definitivno pregleda hash tabel. 415 00:19:50,650 --> 00:19:53,610 In če ste to storili na pset6 in to ni izšlo čisto v redu in vam 416 00:19:53,610 --> 00:19:56,150 je imela veliko težav z njo, definitivno pregleda hash tabel. 417 00:19:56,150 --> 00:20:01,610 Torej lekcija res je definitivno pregleda hash tabel. 418 00:20:01,610 --> 00:20:07,130 >> Velika manjšina od vas poskušal out poskuša na pset6. 419 00:20:07,130 --> 00:20:08,570 Slika na visoki ravni. 420 00:20:08,570 --> 00:20:15,150 To je nekaj takega, kjer je vsak vozlišče ima vrsto otrok, kjer je vsak 421 00:20:15,150 --> 00:20:17,100 Otrok ustreza pismu. 422 00:20:17,100 --> 00:20:20,520 In vsako vozlišče tudi pravi, hej, jaz sem besedo. 423 00:20:20,520 --> 00:20:25,933 Torej, v tem primeru beseda Maxwell, če boste sledili M A do 424 00:20:25,933 --> 00:20:28,530 X-W-E-L-L in ga nato sledi še ena. 425 00:20:28,530 --> 00:20:32,800 In si dobil ta simbol, Delta, ki smo pomenilo, da pomeni to je beseda. 426 00:20:32,800 --> 00:20:34,780 Torej Maxwell je beseda. 427 00:20:34,780 --> 00:20:38,430 Te Delte so po vsej označevalne katere stvari so besede in ki 428 00:20:38,430 --> 00:20:40,360 stvari niso. 429 00:20:40,360 --> 00:20:46,400 >> Torej, v pset6, podatke bomo shranjeni ob kateri koli od naših vozlišč je bil: "Jaz sem 430 00:20:46,400 --> 00:20:52,630 beseda. "In kul stvar o poskusih se dokažejo vstavljanje in 431 00:20:52,630 --> 00:20:55,080 poizvedbo v O (dolžina besede). 432 00:20:55,080 --> 00:20:59,450 Torej, samo da bi dobili skozi Maxwell, to je M-A-X-W-E-L-L. Torej, sedem ali osem - 433 00:20:59,450 --> 00:21:00,360 Ne morem računati - 434 00:21:00,360 --> 00:21:03,920 korakov, da do konca in preverite stvari. 435 00:21:03,920 --> 00:21:06,800 Tako hitro izvajanje tukaj. 436 00:21:06,800 --> 00:21:10,230 Rob je šel skozi povezane navede v svoji obdukcije. 437 00:21:10,230 --> 00:21:11,600 Zato preverite to. 438 00:21:11,600 --> 00:21:11,720 Žal mi je. 439 00:21:11,720 --> 00:21:13,240 Šla skozi Trsta v svoji obdukcije. 440 00:21:13,240 --> 00:21:14,260 Zato preverite to. 441 00:21:14,260 --> 00:21:24,410 >> Ampak, ste v bistvu morali vsako vozlišče ima 27 kazalci na naslednjih vozlišč in enega 442 00:21:24,410 --> 00:21:27,050 Boolean za sem besedo. 443 00:21:27,050 --> 00:21:31,530 Odjaviti Rob je po smrti, kako to dejansko izvaja. 444 00:21:31,530 --> 00:21:34,750 Naš končni struktura, naši drevesa in binarna iskalna drevesa. 445 00:21:34,750 --> 00:21:41,530 Torej gledamo na to, ali so bili zajeti nedavno 8. teden, v ponedeljek. 446 00:21:41,530 --> 00:21:46,960 Drevo je podoben Trsta, razen tebe ni nujno, 27 vozlišč na 447 00:21:46,960 --> 00:21:47,500 vsaka točka. 448 00:21:47,500 --> 00:21:52,820 In ne boste imeli te podatke na vsaki korak, ki pomeni bodisi - 449 00:21:52,820 --> 00:21:54,030 Pot ni važno. 450 00:21:54,030 --> 00:22:00,870 Ker Trie, pot od vrha do dno, Maxwell, je bilo za nas pomembno. 451 00:22:00,870 --> 00:22:05,270 >> Ampak vsako vozlišče ima multiple otroci, mogoče. 452 00:22:05,270 --> 00:22:07,290 Imamo nekaj več besedišča. 453 00:22:07,290 --> 00:22:09,530 Koren drevesa je na vrhu. 454 00:22:09,530 --> 00:22:12,520 In smo rekli, da je zelo: Spodnja vozlišča, ki nimajo 455 00:22:12,520 --> 00:22:14,530 otroci so listi. 456 00:22:14,530 --> 00:22:18,040 Tako kot Trsta, drevo struktura vozlišč. 457 00:22:18,040 --> 00:22:21,490 Pogosta vrsta drevesa, da bomo govoriti o tem je binarno drevo, kjer 458 00:22:21,490 --> 00:22:26,040 vsako vozlišče ima otrok ali en otrok ali dva otroka. 459 00:22:26,040 --> 00:22:28,890 Torej ta slika tu ni dvojiško drevo, ker 460 00:22:28,890 --> 00:22:32,890 vozlišče 3 ima tri otroke. 461 00:22:32,890 --> 00:22:38,140 >> Ampak, če smo bili ignorirati tiste, ostalo od tega je binarno drevo, saj 462 00:22:38,140 --> 00:22:43,200 dokazuje lastnost, da vsako vozlišče je nič, ena ali dva otroka. 463 00:22:43,200 --> 00:22:46,400 Torej, kako bi lahko izrazili to kodo? 464 00:22:46,400 --> 00:22:51,460 Lahko bi imeli vozlišče, kjer ima vsako vozlišče celo v njem, kot tudi 465 00:22:51,460 --> 00:22:55,590 kot kazalec na drevo na levi in kazalec na drevesa 466 00:22:55,590 --> 00:22:59,510 prav tako dva otroka. 467 00:22:59,510 --> 00:23:00,880 Kako je to koristno? 468 00:23:00,880 --> 00:23:05,740 No, če bomo pravila o tem, kje smo dal vozlišč, lahko naredimo iskanje hitrejše. 469 00:23:05,740 --> 00:23:10,630 >> Tako da je koncept binarnega iskanja drevo, kjer je vsa vozlišča na 470 00:23:10,630 --> 00:23:14,420 levo poddrevo imajo manjšo vrednost kot vozlišče gledava. 471 00:23:14,420 --> 00:23:17,880 In vsa vozlišča na desno poddrevo imajo večjo vrednost 472 00:23:17,880 --> 00:23:18,660 od korenskega vozlišča. 473 00:23:18,660 --> 00:23:20,670 Zdaj, da je videti kot veliko besed. 474 00:23:20,670 --> 00:23:23,770 Bom dal notri dvojnega citati in prikazal sliko. 475 00:23:23,770 --> 00:23:27,010 Torej, tukaj je primer binarno iskalno drevo. 476 00:23:27,010 --> 00:23:28,770 Glej, da začnemo z 10. 477 00:23:28,770 --> 00:23:31,780 Vse na levi strani 10 je manjši od njega. 478 00:23:31,780 --> 00:23:33,130 In vse na desni je večji od njega. 479 00:23:33,130 --> 00:23:37,620 >> Ampak bolj kot to, vsako vozlišče v drevo izraža to lastnost. 480 00:23:37,620 --> 00:23:42,110 Torej vozlišče 7 ima 3 do levo in 9 v desno. 481 00:23:42,110 --> 00:23:44,440 Torej vse, manjših od 10. 482 00:23:44,440 --> 00:23:50,470 Ampak gledaš samo tiste, 7 ima 3. da njena leva in 9, da njena pravica. 483 00:23:50,470 --> 00:23:56,100 In podobno kot na desni, 15 je 14 na njegovo levo in 50 njene pravice. 484 00:23:56,100 --> 00:24:03,770 Torej tri vozlišča tam, 15, 14, in 50, so tudi veljavna dvojiško drevo 485 00:24:03,770 --> 00:24:05,480 ali veljavno binarno iskalno drevo. 486 00:24:05,480 --> 00:24:07,250 In oni so vsi večji od 10. 487 00:24:07,250 --> 00:24:08,960 Tako da jim je dovoljeno, da se od tam. 488 00:24:08,960 --> 00:24:09,940 Ali obstaja vprašanje? 489 00:24:09,940 --> 00:24:12,580 >> PUBLIKA: Kako ravnati, ko imate dve sedmice? 490 00:24:12,580 --> 00:24:12,850 >> R.J. AQUINO: Ja. 491 00:24:12,850 --> 00:24:16,550 Kako se soočate z dvema vrednostma da so isti? 492 00:24:16,550 --> 00:24:21,465 Nekateri dvojiška iskalna drevesa, pravijo, da vam prezreti dvojnikov, saj je cilj 493 00:24:21,465 --> 00:24:24,280 Samo povem, sem videl te stvari tako daleč. 494 00:24:24,280 --> 00:24:28,120 Nekateri dvojiška iskalna drevesa, bi lahko rekli, daje število notranji strani vozlišča. 495 00:24:28,120 --> 00:24:32,000 Drugi bi rekli, da vse, kar je Levi je manjša ali enaka. 496 00:24:32,000 --> 00:24:33,470 In vse na desni večja od. 497 00:24:33,470 --> 00:24:36,520 >> Je samo odvisno od tega, kaj Problem je, da ste reševanje. 498 00:24:36,520 --> 00:24:40,840 Torej v slovarju, na primer, si ne bi bilo mar dvojnikov. 499 00:24:40,840 --> 00:24:41,490 Ti bi jih vrgel ven. 500 00:24:41,490 --> 00:24:44,719 Toda nekateri drugi problem, boste morda vseeno. 501 00:24:44,719 --> 00:24:49,242 >> PUBLIKA: Ali je mogoče, da imajo 1 na levi strani 15, ki 502 00:24:49,242 --> 00:24:50,590 je manj kot 10? 503 00:24:50,590 --> 00:24:51,885 >> R.J. AQUINO: Ne 504 00:24:51,885 --> 00:24:56,570 Če bi bila 1. 14. tu, bi to ni bilo veljavno binarno iskalno drevo, 505 00:24:56,570 --> 00:25:00,840 ker je vse na desni strani 10 mora biti večji od njega. 506 00:25:00,840 --> 00:25:02,300 In bomo videli, zakaj. 507 00:25:02,300 --> 00:25:07,960 Če v deželi iskanja moj cilj je, da bi našli 14, začnem pri korenu. 508 00:25:07,960 --> 00:25:08,500 Torej gledam. 509 00:25:08,500 --> 00:25:08,710 OK. 510 00:25:08,710 --> 00:25:10,670 Bomo začeli pri korenu. 511 00:25:10,670 --> 00:25:12,500 Poglej 10. 512 00:25:12,500 --> 00:25:16,050 >> No, 14, naš cilj, je večji od 10. 513 00:25:16,050 --> 00:25:17,370 Zato mora biti na desni strani. 514 00:25:17,370 --> 00:25:21,780 To je zelo podoben celotno telefonu Knjiga, kar smo naredili, binarno 515 00:25:21,780 --> 00:25:23,720 iskati tam. 516 00:25:23,720 --> 00:25:26,430 Toda namesto binarnega iskanja v matriki, smo binarno 517 00:25:26,430 --> 00:25:28,490 iskati v tem drevesu. 518 00:25:28,490 --> 00:25:31,260 Torej smo še vedno iščejo 14. 519 00:25:31,260 --> 00:25:32,480 No, 14 je manjši od 15. 520 00:25:32,480 --> 00:25:36,430 Torej, če je to v našem drevesu, mora biti v tem področju tukaj. 521 00:25:36,430 --> 00:25:39,680 Zato mora biti na desni 10 in na levi strani 15. 522 00:25:39,680 --> 00:25:42,250 >> In tako smo preverite to vozlišče. 523 00:25:42,250 --> 00:25:45,790 In Bravo, smo ugotovili 14. 524 00:25:45,790 --> 00:25:46,760 Ne grem na sprehod skozi to. 525 00:25:46,760 --> 00:25:48,090 Ampak tukaj je koda. 526 00:25:48,090 --> 00:25:49,690 To je pravzaprav relativno enostavna, 527 00:25:49,690 --> 00:25:52,630 ker je to rekurzivna. 528 00:25:52,630 --> 00:25:55,420 Kaj bi vas prosimo, da storite na kvizu? 529 00:25:55,420 --> 00:25:57,000 Lahko bi vas prosil, da napišete to kodo. 530 00:25:57,000 --> 00:25:59,170 Mi lahko prosim, da pogled na to oznako in spremenite to kodo in pojasni, kaj 531 00:25:59,170 --> 00:26:00,210 to počne. 532 00:26:00,210 --> 00:26:00,390 Ja. 533 00:26:00,390 --> 00:26:00,770 Vprašanje? 534 00:26:00,770 --> 00:26:04,240 >> PUBLIKA: Ali so ti diapozitivi bo na voljo, saj so bili zadnji čas? 535 00:26:04,240 --> 00:26:04,740 >> R.J. AQUINO: Da. 536 00:26:04,740 --> 00:26:06,460 Tako da ti diapozitivi bo zagotovo biti objavljeni. 537 00:26:06,460 --> 00:26:08,640 >> PUBLIKA: Oni so dejansko knjižene zdaj na spletni strani. 538 00:26:08,640 --> 00:26:10,020 David pravkar naredila. 539 00:26:10,020 --> 00:26:12,720 >> R.J. AQUINO: Stekelca so zdaj na spletni strani. 540 00:26:12,720 --> 00:26:16,420 Verjetno bom zakrpal par so tipkarske napake sem ugotovil in jih popraviti. 541 00:26:16,420 --> 00:26:19,940 Ampak tam je tok različica na mestu. 542 00:26:19,940 --> 00:26:21,820 Druge stvari, ki vam lahko zaprosijo storiti - 543 00:26:21,820 --> 00:26:23,790 napišite vložek. 544 00:26:23,790 --> 00:26:27,490 Napišite iterativno verzijo rekurzivna funkcija mi samo pokazali, 545 00:26:27,490 --> 00:26:32,520 ali govoriti o teh stvareh, kot v odstavki, v besedah, v stavkih. 546 00:26:32,520 --> 00:26:35,760 Če primerjamo čas teči in pojasnjujejo tisto, kar bi si želeli uporabiti binarno 547 00:26:35,760 --> 00:26:39,200 Iskanje drevo namesto hash tabelo, na primer. 548 00:26:39,200 --> 00:26:43,580 >> Torej, razumem te strukture na zelo globokem nivoju. 549 00:26:43,580 --> 00:26:47,440 Razumeti, kako da jih boste zapisali, kako jih uporabljajo, kako govoriti o njih. 550 00:26:47,440 --> 00:26:50,270 In boste pripravljeni. 551 00:26:50,270 --> 00:26:50,630 Vprašanje? 552 00:26:50,630 --> 00:26:55,070 >> PUBLIKA: Ko pišete binarno iskalno drevo, kako vam 553 00:26:55,070 --> 00:27:01,460 določiti, katere vrednost to, da kot root? 554 00:27:01,460 --> 00:27:06,120 >> R.J. AQUINO: Torej, vprašanje je bilo, kaj Vrednost naj vam bo kot koren? 555 00:27:06,120 --> 00:27:08,760 Odvisno od vaše kode, imajo lahko globalno korenine. 556 00:27:08,760 --> 00:27:14,290 Torej ste lahko verjetno imel v pset6 globalno razpršene tabele. 557 00:27:14,290 --> 00:27:18,640 Ali lahko podaš koren v kot argument. 558 00:27:18,640 --> 00:27:23,810 Torej to iskanje funkcija tukaj Traja argument vozlišča *. 559 00:27:23,810 --> 00:27:27,420 In tako ne glede na vozlišče se zgodi, da gledaš, je ena ste zdravljenje 560 00:27:27,420 --> 00:27:31,510 kot root, ko jo prenese noter 561 00:27:31,510 --> 00:27:32,320 In jaz sem vse nastavljeno. 562 00:27:32,320 --> 00:27:33,480 To so moji diapozitivi. 563 00:27:33,480 --> 00:27:35,940 Naslednja oseba, ki lahko pridejo swap v laptop in mikrofonom. 564 00:27:35,940 --> 00:27:47,390 565 00:27:47,390 --> 00:27:49,760 >> ROB Bowden: Mislim, da bi morali razlagati na to vprašanje drugače. 566 00:27:49,760 --> 00:27:53,826 Ampak sem ga razlagati tako, če imate številke 1, 2 in 3, kako delamo 567 00:27:53,826 --> 00:27:56,720 vem, da bo 2 korena v nasprotju z 1 ali 3? 568 00:27:56,720 --> 00:27:59,480 Če naredimo 2 korena, potem je lepo 1 in 3 za levo in desno. 569 00:27:59,480 --> 00:28:04,610 Ampak, če 1 je koren, potem je od 1 do top, 2 desno, 3 na desni. 570 00:28:04,610 --> 00:28:10,880 Torej je privzeto, da ne veš kaj naj bi korenino. 571 00:28:10,880 --> 00:28:15,400 In za kateri koli algoritma smo pričakovali, da ti dam, samo da si prva stvar 572 00:28:15,400 --> 00:28:16,680 Vložek bi bil koren. 573 00:28:16,680 --> 00:28:19,890 Ali pa, da vam ponudimo binarno drevo, ki že obstaja, da ima korenine. 574 00:28:19,890 --> 00:28:24,760 Ampak drugi algoritmi taka, da Koren bo posodobil, tako da če vam 575 00:28:24,760 --> 00:28:28,370 končajo v položaju, kjer je 1, 2, 3, bi se samodejno posodobi, da 576 00:28:28,370 --> 00:28:30,900 Znamka 2 nove korenine, tako da je še vedno lepo uravnoteženo. 577 00:28:30,900 --> 00:28:33,750 578 00:28:33,750 --> 00:28:34,833 >> ANGELA LI: Cool. 579 00:28:34,833 --> 00:28:36,170 Hej, fantje. 580 00:28:36,170 --> 00:28:37,810 Jaz sem Angela. 581 00:28:37,810 --> 00:28:42,490 In bom pokončal našo C nato pa gre v nekaterih naši spletni 582 00:28:42,490 --> 00:28:43,120 tehnologije - 583 00:28:43,120 --> 00:28:46,570 HTTP, HTML, CSS in. 584 00:28:46,570 --> 00:28:49,610 Torej, prva stvar je buffer prelivnih napadi. 585 00:28:49,610 --> 00:28:53,070 Tako da je lahko pogled na to oznako. 586 00:28:53,070 --> 00:28:54,260 To je zelo preprosta. 587 00:28:54,260 --> 00:28:55,460 Tam je funkcija foo. 588 00:28:55,460 --> 00:28:56,990 In to ne vrne ničesar. 589 00:28:56,990 --> 00:29:00,950 Vendar je potrebno v kazalec v niz imenovano bar. 590 00:29:00,950 --> 00:29:04,920 >> In to se dogaja, to prijaviti pufer, ki je znak 591 00:29:04,920 --> 00:29:07,690 matrika, ki ima 12 slotov. 592 00:29:07,690 --> 00:29:11,730 In jo uporablja memcpy, ki je le Funkcija, ki kopira iz enega naslova 593 00:29:11,730 --> 00:29:12,910 v drugo. 594 00:29:12,910 --> 00:29:19,400 Torej, to poskuša kopirati v naša buffer iz katerega koli 595 00:29:19,400 --> 00:29:21,140 bar kaže, da. 596 00:29:21,140 --> 00:29:24,640 Torej kakšno idejo, kaj je narobe s to kodo? 597 00:29:24,640 --> 00:29:27,568 598 00:29:27,568 --> 00:29:30,830 >> PUBLIKA: Če vrstica je daljša od C, bodo prepisali. 599 00:29:30,830 --> 00:29:31,520 >> ANGELA LI: Ja, točno. 600 00:29:31,520 --> 00:29:34,200 Nimamo nobenega jamstva, da bar se bo manj kot 12 let. 601 00:29:34,200 --> 00:29:36,080 Pravkar smo naredili nekaj poljubno število 12. 602 00:29:36,080 --> 00:29:38,380 In bili smo kot Upajmo, da se Naš uporabnikov vnos je manj kot 603 00:29:38,380 --> 00:29:40,440 Dolga 12 znakov. 604 00:29:40,440 --> 00:29:46,320 Torej, v idealnem svetu, če je naš vložek je vedno kot je bilo pričakovano, potem bomo dobili 605 00:29:46,320 --> 00:29:47,550 nekaj podobnega, zdravo. 606 00:29:47,550 --> 00:29:48,920 To je manj kot 12 znakov. 607 00:29:48,920 --> 00:29:51,870 Prebere se v char c. 608 00:29:51,870 --> 00:29:53,280 In potem smo nekaj storiti z njim. 609 00:29:53,280 --> 00:29:54,800 To sploh ni pomembno. 610 00:29:54,800 --> 00:29:59,740 >> Vendar pa bi zlonamerna oseba stori nekaj več, kot je ta, v kateri so 611 00:29:59,740 --> 00:30:04,760 nam je dala vse, kar vrstica kaže, da, to se dogaja, da kaže na to širokim naborom 612 00:30:04,760 --> 00:30:06,280 da samo je. 613 00:30:06,280 --> 00:30:10,680 In to je smer več kot 12. 614 00:30:10,680 --> 00:30:13,830 Tako se dogaja, da gredo do konca tukaj, kjer donos 615 00:30:13,830 --> 00:30:15,420 Naslov nekoč. 616 00:30:15,420 --> 00:30:17,860 Torej, recimo, to funkcijo se imenuje foo. 617 00:30:17,860 --> 00:30:20,970 Mogoče je foo poklical nekatere druge Funkcija, ki je bil imenovan z glavno. 618 00:30:20,970 --> 00:30:24,890 Torej, ko foo teče, potrebuje vedeti, kje se vrnete. 619 00:30:24,890 --> 00:30:29,130 >> Če je bila imenovana foo nekatere funkcije z imenom Baz, mora vedeti, da je 620 00:30:29,130 --> 00:30:30,250 Moram iti nazaj na Baz. 621 00:30:30,250 --> 00:30:34,040 In to je to povratni naslov tukaj nam govori. 622 00:30:34,040 --> 00:30:38,340 Ampak, če smo ga prepisati z nekaterimi drugimi naslov, v tem primeru pa je to 623 00:30:38,340 --> 00:30:42,650 zastopanje na naslovu samem začetku te pufra, nato 624 00:30:42,650 --> 00:30:45,240 kaj se dejansko dogaja, da se zgodi, je, da namesto da se vračajo nazaj na Baz, 625 00:30:45,240 --> 00:30:48,470 ki se imenuje našo funkcijo, to je samo šli na fronto te kode. 626 00:30:48,470 --> 00:30:53,930 >> In če je to tam, ker zlonamerni heker dude prišel in 627 00:30:53,930 --> 00:30:56,820 injicira to, potem pa ta znesek o je pravzaprav ni je. 628 00:30:56,820 --> 00:31:02,030 In to je pravzaprav le kodo, ki se prelomi računalnik ali kaj podobnega. 629 00:31:02,030 --> 00:31:05,930 Tako, da bo obrambni o tovrstni stvar, boste morali nikoli domnevati, da 630 00:31:05,930 --> 00:31:09,120 uporabniški vhod je določena Znesek znakov. 631 00:31:09,120 --> 00:31:13,310 Na primer, ko ste delali speller so vam povedali, da so bile besede 632 00:31:13,310 --> 00:31:15,580 samo bo 40 znakov Dokler največja. 633 00:31:15,580 --> 00:31:16,570 In to je bilo dobro. 634 00:31:16,570 --> 00:31:20,150 >> Če pa ne, potem bi morali poskrbite, da se glasi le v 45 635 00:31:20,150 --> 00:31:21,520 znakov hkrati. 636 00:31:21,520 --> 00:31:24,430 V nasprotnem primeru boste morda prepisali vaš buffer. 637 00:31:24,430 --> 00:31:26,140 Kakršna koli vprašanja o tem. 638 00:31:26,140 --> 00:31:26,733 Ja. 639 00:31:26,733 --> 00:31:28,850 >> PUBLIKA: Ali lahko samo govoriva malo več o tem? 640 00:31:28,850 --> 00:31:29,790 >> ANGELA LI: Žal mi je. 641 00:31:29,790 --> 00:31:31,040 Da. 642 00:31:31,040 --> 00:31:32,813 643 00:31:32,813 --> 00:31:35,870 >> PUBLIKA: mic je samo za video. 644 00:31:35,870 --> 00:31:37,640 Bom poskusil in projektov. 645 00:31:37,640 --> 00:31:39,900 Zdravo, fantje. 646 00:31:39,900 --> 00:31:40,920 Nadzornik? 647 00:31:40,920 --> 00:31:45,330 Torej, gremo čez nekaj stvari v CS50 knjižnica, ki ste bili z uporabo 648 00:31:45,330 --> 00:31:49,072 Vse semester, predvsem priti uporabnik vložek. 649 00:31:49,072 --> 00:31:53,140 Kot veste, ti vključujejo CS50 Knjižnica, ki jih samo delaš CS50.h, ki 650 00:31:53,140 --> 00:31:55,660 vsebuje vse prototipe funkcije, ki jih lahko uporabite, kot 651 00:31:55,660 --> 00:31:58,640 GetString in GetInt, in GetFloat, et cetera. 652 00:31:58,640 --> 00:32:02,870 In tam je ena vrstica v CS50 Knjižnica, ki opredeljuje niz, ki 653 00:32:02,870 --> 00:32:05,380 vi vsi vemo do zdaj je le char *. 654 00:32:05,380 --> 00:32:07,900 >> Vendar pa si oglejte na kako GetString deluje. 655 00:32:07,900 --> 00:32:10,010 To je zelo skrajšano verzijo. 656 00:32:10,010 --> 00:32:15,090 Lahko potegnite navzgor datoteke CS50 knjižnice iz, mislim, manuals.CS50.net. 657 00:32:15,090 --> 00:32:16,750 In si lahko preberete dejanska funkcija. 658 00:32:16,750 --> 00:32:19,330 Ampak to velja za nekatere pomembne dele. 659 00:32:19,330 --> 00:32:23,870 Zato smo ustvarili nekaj buffer pri nekaterih zmogljivosti. 660 00:32:23,870 --> 00:32:27,570 In kaj počnemo se bomo dobili en znak v času od standardne n. 661 00:32:27,570 --> 00:32:30,910 To je, kjer so vhodi uporabnikov besedilo v konzoli. 662 00:32:30,910 --> 00:32:33,430 >> In tako bomo prebrali v lik tako dolgo, dokler to ni nova 663 00:32:33,430 --> 00:32:37,220 linijo in to ni konec datoteke, ki je konec standardnega vhoda. 664 00:32:37,220 --> 00:32:45,690 In za vsak znak, da beremo v, če je to znak konča dodajanje 665 00:32:45,690 --> 00:32:50,120 na število znakov smo prebrali leta in da je več kot naše sposobnosti, 666 00:32:50,120 --> 00:32:53,490 potem, kaj moramo storiti, je pravkar spremenite velikost naše pufer, tako da je dvakrat toliko časa. 667 00:32:53,490 --> 00:32:56,950 Še enkrat, to zaščito proti pufru overflow napadi, ker ste prebrali v 668 00:32:56,950 --> 00:32:58,315 znak naenkrat. 669 00:32:58,315 --> 00:33:02,290 In če se na kateri koli točki ste prebrali tudi v mnogi, ki ste jo pravkar razširiti svoj buffer. 670 00:33:02,290 --> 00:33:03,330 Lahko ga pomnožite z dve. 671 00:33:03,330 --> 00:33:05,510 In potem boste imeli več prostora. 672 00:33:05,510 --> 00:33:09,120 >> V nasprotnem primeru, ki ste jo pravkar dodali znak za omilitev. 673 00:33:09,120 --> 00:33:15,080 In potem, ko ste prebrali v vseh znakov, bo krčila serum 674 00:33:15,080 --> 00:33:18,510 nazaj na normalne velikosti, dodajte null terminator, in se nato vrne. 675 00:33:18,510 --> 00:33:21,880 676 00:33:21,880 --> 00:33:24,960 Zdaj pa si oglejmo GetInt. 677 00:33:24,960 --> 00:33:27,700 Lahko vidva brati? 678 00:33:27,700 --> 00:33:30,710 Lahko povečate bit. 679 00:33:30,710 --> 00:33:33,410 680 00:33:33,410 --> 00:33:34,660 Ne vem, kako računalniki delujejo. 681 00:33:34,660 --> 00:33:40,840 682 00:33:40,840 --> 00:33:41,270 Never mind. 683 00:33:41,270 --> 00:33:42,520 Ne morem povečate pravilno. 684 00:33:42,520 --> 00:33:47,500 685 00:33:47,500 --> 00:33:48,770 >> To je res težko. 686 00:33:48,770 --> 00:33:49,180 Žal mi je. 687 00:33:49,180 --> 00:33:51,490 Reciva, poglej to. 688 00:33:51,490 --> 00:33:57,140 Torej, kaj GetInt pa je najprej prebere v nizu od GetString, ki 689 00:33:57,140 --> 00:33:59,250 smo prej izvajati. 690 00:33:59,250 --> 00:34:02,945 In pomemben del, ki sem seznanjen če se bo ta delitev, ki se konča 691 00:34:02,945 --> 00:34:06,400 branje je kot dejansko ni vrvici, Nato smo pravkar vrnili INT_MAX za 692 00:34:06,400 --> 00:34:09,409 predstavlja neuspeh. 693 00:34:09,409 --> 00:34:12,645 Zakaj, namesto da se vrnete INT_MAX negativnega 1 ali 1? 694 00:34:12,645 --> 00:34:13,895 Vse ideje? 695 00:34:13,895 --> 00:34:16,853 696 00:34:16,853 --> 00:34:19,350 >> PUBLIKA: [neslišno] Negativni 1 na ena. 697 00:34:19,350 --> 00:34:20,070 >> ANGELA LI: Ja, točno. 698 00:34:20,070 --> 00:34:24,560 Torej ste veliko bolj verjetno, da hočejo na vhod 1 ali negativnem 1, ko pozove 699 00:34:24,560 --> 00:34:27,469 za n in ne glede na n-to maxes. 700 00:34:27,469 --> 00:34:27,969 To je ogromen. 701 00:34:27,969 --> 00:34:29,690 Ti si verjetno ne bo uporabljala. 702 00:34:29,690 --> 00:34:32,690 Torej, to je kot odločitev o projektiranju, poskrbite, da ne boste po nesreči 703 00:34:32,690 --> 00:34:38,540 vrne napako ali pa ne vrnejo 1, ki se lahko razčleniti 704 00:34:38,540 --> 00:34:41,199 kot pravilen odgovor. 705 00:34:41,199 --> 00:34:45,110 Torej, če linija ne obstaja, vrnemo INT-MAX. 706 00:34:45,110 --> 00:34:48,090 V nasprotnem primeru bomo uporabili sscanf, , ki je kot scanf. 707 00:34:48,090 --> 00:34:49,449 Ampak to bere iz niza. 708 00:34:49,449 --> 00:34:54,310 >> In imamo to oblikovano Niz, ki je% i% c. 709 00:34:54,310 --> 00:34:57,440 In poskušamo in se ujemajo, da se z kar nam je dal uporabnik. 710 00:34:57,440 --> 00:35:01,420 Želimo število ujema stvari da je 1, kar pomeni, da le 711 00:35:01,420 --> 00:35:04,940 res želim, da se ujemajo celo obdan z Mogoče bela 712 00:35:04,940 --> 00:35:06,840 prostora, morda pa tudi ne. 713 00:35:06,840 --> 00:35:10,710 V tem primeru, če si dal v nekaj kot so bar, bar ne ujema sploh, 714 00:35:10,710 --> 00:35:14,400 ker je treba celo na začetku. 715 00:35:14,400 --> 00:35:17,060 Torej sscan nikoli obrnil 0. 716 00:35:17,060 --> 00:35:19,640 Tako da ne boste vrnili, da. 717 00:35:19,640 --> 00:35:23,850 >> Druga možnost je, če si dal v nekaj kot 1, 2, 3, A, B, C, ki se ujema 718 00:35:23,850 --> 00:35:27,180 tako celo število, ampak tudi karakter po njej. 719 00:35:27,180 --> 00:35:29,990 Torej sscanf bo vrnil 2, ki prav tako ni idealno. 720 00:35:29,990 --> 00:35:34,620 Vi ne želite, 1, 2, 3,, B, C, da je veljavna int. 721 00:35:34,620 --> 00:35:36,990 Tako da tudi ne deluje. 722 00:35:36,990 --> 00:35:38,530 Ampak pravijo, si dal nekaj podobnega 50. 723 00:35:38,530 --> 00:35:42,460 , Ki bo ustrezal% i, kar pomeni, bo dobil preberete v n. 724 00:35:42,460 --> 00:35:44,790 In zdaj bo n vsebovati številko 50. 725 00:35:44,790 --> 00:35:46,110 In potem se lahko vrne. 726 00:35:46,110 --> 00:35:49,270 >> V nasprotnem primeru ste zadeli Ponovi. 727 00:35:49,270 --> 00:35:55,790 In potem to gre znova, dokler boste dobili ustreznega vnosa od uporabnika. 728 00:35:55,790 --> 00:35:56,891 Kakršna koli vprašanja o tem? 729 00:35:56,891 --> 00:36:02,182 >> PUBLIKA: Torej, če ste bili, da natisnete vrednost GetInt na [neslišno] 730 00:36:02,182 --> 00:36:06,250 bi bilo le število in max? 731 00:36:06,250 --> 00:36:07,440 >> ANGELA LI: Ja. 732 00:36:07,440 --> 00:36:11,780 Torej, če boste uporabili GetInt, bi morali prevzeti da ne želite, n-max da 733 00:36:11,780 --> 00:36:15,328 biti veljaven vhod, saj boste domnevati, da je to slabo. 734 00:36:15,328 --> 00:36:27,740 >> PUBLIKA: Če ne bi imeli char c in nekdo dal 1, 2, 3, Sam, bi bilo 735 00:36:27,740 --> 00:36:29,430 še vedno dela za 1, 2, 3? 736 00:36:29,430 --> 00:36:29,750 >> ANGELA LI: Mislim, da bi delovalo. 737 00:36:29,750 --> 00:36:33,340 Vendar ne želite, da 123Sam je veljavna vhod uporabnik. 738 00:36:33,340 --> 00:36:34,670 To ni res int. 739 00:36:34,670 --> 00:36:36,840 Torej se ne zdi pošteno da ga razčleniti kot notr. 740 00:36:36,840 --> 00:36:40,910 741 00:36:40,910 --> 00:36:42,160 OK. 742 00:36:42,160 --> 00:36:45,800 V tem primeru, pojdimo na internetu. 743 00:36:45,800 --> 00:36:49,120 Torej HTTP ni jezik. 744 00:36:49,120 --> 00:36:56,060 HTTP je samo niz standardov za kako boste poslali stvari od strank, 745 00:36:56,060 --> 00:36:57,280 to si ti, da strežnikov. 746 00:36:57,280 --> 00:36:59,730 To je drugi ljudje na spletu. 747 00:36:59,730 --> 00:37:02,900 >> Torej HTTP je kratica za Hypertext Transfer Protocol. 748 00:37:02,900 --> 00:37:04,610 To je srce in duša celotnega spleta. 749 00:37:04,610 --> 00:37:07,050 Hipertekst del le se nanaša na HTML. 750 00:37:07,050 --> 00:37:10,690 Prenos strank, kot boste poslali prijave za 751 00:37:10,690 --> 00:37:13,060 strežnikov, ki dajejo odzive. 752 00:37:13,060 --> 00:37:16,380 In protokol je le, kako ste pričakovali strežnik, da se obnašajo? 753 00:37:16,380 --> 00:37:19,960 In kako se moraš obnašati tako da lahko to racionalizacijo 754 00:37:19,960 --> 00:37:21,920 komunikacijski proces? 755 00:37:21,920 --> 00:37:26,650 >> Tako zahteva HTTP videti veliko, kot je ta. 756 00:37:26,650 --> 00:37:28,070 GET je vrsta zahteve. 757 00:37:28,070 --> 00:37:31,220 Vi ste videli zahteve GET in zahteve POST. 758 00:37:31,220 --> 00:37:36,690 Druga stvar, ki obstaja, / me, da je samo URI ali URL, kjer ste 759 00:37:36,690 --> 00:37:38,140 bi rad šel v gostitelja. 760 00:37:38,140 --> 00:37:44,140 Zato je zahteva, ki prosi za stran, kot www.facebook.com / zame. 761 00:37:44,140 --> 00:37:45,300 In to zahtevo GET. 762 00:37:45,300 --> 00:37:51,020 In potem je to HTTP/1.1, da je samo Različica HTTP, ki ga uporabljate. 763 00:37:51,020 --> 00:37:55,020 To je skoraj vedno 1.1. 764 00:37:55,020 --> 00:37:56,880 >> In potem je tu še kup drugih stvari preveč. 765 00:37:56,880 --> 00:38:02,510 Lahko dejansko videli te, če odprejo svojo konzolo, ko ste 766 00:38:02,510 --> 00:38:03,770 brskanjem po spletu. 767 00:38:03,770 --> 00:38:07,290 Odzivi izgledal nekako bolj kot to. 768 00:38:07,290 --> 00:38:09,620 Zgornji del je spet tip HTTP, ki ga uporabljate 769 00:38:09,620 --> 00:38:12,310 sledi statusno kodo. 770 00:38:12,310 --> 00:38:14,700 Torej 200 OK je vse izšlo. 771 00:38:14,700 --> 00:38:16,200 Tukaj je vaša vsebina. 772 00:38:16,200 --> 00:38:17,390 Vaša vsebina bo sledil. 773 00:38:17,390 --> 00:38:21,730 In potem vam bo povedal, kakšne vsebin in drugih stvari preveč. 774 00:38:21,730 --> 00:38:24,620 >> Šifre stanja, obstaja nekaj pomembni tisti, ki bi morali vedeti. 775 00:38:24,620 --> 00:38:26,460 200 V redu je, kot zlata Vse je pripravljeno. 776 00:38:26,460 --> 00:38:28,490 Vse deluje. 777 00:38:28,490 --> 00:38:29,710 403 Forbidden. 778 00:38:29,710 --> 00:38:32,910 To ste verjetno opazili, če ste pozabili Za pravilno chmod nekaj. 779 00:38:32,910 --> 00:38:34,510 To pomeni, da nimate pravico do dovoljenja 780 00:38:34,510 --> 00:38:36,210 dostop, ki na strežniku. 781 00:38:36,210 --> 00:38:38,110 To je podobno, ne, ne moreš videti. 782 00:38:38,110 --> 00:38:39,780 404 pomeni, da stvar ne obstaja. 783 00:38:39,780 --> 00:38:40,400 Ni mogoče najti. 784 00:38:40,400 --> 00:38:41,640 Verjetno ste že opazili, da je veliko. 785 00:38:41,640 --> 00:38:45,510 >> 500 Notranja napaka strežnika je ponavadi kot nekaj, kar je šlo narobe na strani 786 00:38:45,510 --> 00:38:46,460 strežnika. 787 00:38:46,460 --> 00:38:50,830 Torej, ko ste bili izvajanju pset7, če si imel PHP napake, bi lahko 788 00:38:50,830 --> 00:38:53,890 dejansko šel na stran in si oglejte Cel kup PHP napake stvari. 789 00:38:53,890 --> 00:38:56,900 Ampak to običajno ne zgodi, saj se spletne strani ne res želite 790 00:38:56,900 --> 00:38:58,830 vam povem, zakaj je njihova stran razdeljena. 791 00:38:58,830 --> 00:39:03,370 Ti bom verjetno samo vrnitev 500 Notranja napaka strežnika. 792 00:39:03,370 --> 00:39:06,120 >> In potem je tu še 418 sem čajnik. 793 00:39:06,120 --> 00:39:07,910 Tam je cela zgodba o Zato je to stvar. 794 00:39:07,910 --> 00:39:09,860 Vendar pa si lahko preberete o tem na svoj čas. 795 00:39:09,860 --> 00:39:11,450 Obstaja cel kup druge kode preveč status. 796 00:39:11,450 --> 00:39:12,700 Ampak to so tisti, morate vedeti. 797 00:39:12,700 --> 00:39:15,660 798 00:39:15,660 --> 00:39:18,610 Torej, kaj je govoril o HTML. 799 00:39:18,610 --> 00:39:22,180 HTML, se spomnite, ni programski jezik. 800 00:39:22,180 --> 00:39:23,510 To je označevalni jezik. 801 00:39:23,510 --> 00:39:25,210 To pomeni, da opisuje vsebino. 802 00:39:25,210 --> 00:39:30,440 To vam pove, kaj je dokument HTML zgleda všeč ali ne, tako kot zgleda 803 00:39:30,440 --> 00:39:32,230 ampak kako je strukturirana. 804 00:39:32,230 --> 00:39:36,110 >> Tako da določa strukturo in semantika spletnih straneh. 805 00:39:36,110 --> 00:39:37,830 To je kot, da je to točka. 806 00:39:37,830 --> 00:39:40,060 To je urejen seznam. 807 00:39:40,060 --> 00:39:42,360 To je kot odseku moji strani. 808 00:39:42,360 --> 00:39:43,260 Tukaj je naslov. 809 00:39:43,260 --> 00:39:44,310 To počne stvari, kot je ta. 810 00:39:44,310 --> 00:39:48,770 Ne slog koli od tega, ker To je tisto, kar ste storili v CSS. 811 00:39:48,770 --> 00:39:50,270 In je videti kot niz ugnezdenih oznak. 812 00:39:50,270 --> 00:39:54,720 Tako da uporabite primer res osnovna HTML stran, imate DOCTYPE 813 00:39:54,720 --> 00:39:56,720 Izjava tam. 814 00:39:56,720 --> 00:40:00,940 >> To DOCTYPE izjava rekel, da smo z uporabo HTML5. 815 00:40:00,940 --> 00:40:03,370 Potem imate veliko oznako HTML. 816 00:40:03,370 --> 00:40:05,230 Vsebuje glave in telesa. 817 00:40:05,230 --> 00:40:06,970 V glavi, imaš naslov. 818 00:40:06,970 --> 00:40:12,950 To je tisto, kar gre v naslovu bar v vašem brskalniku. 819 00:40:12,950 --> 00:40:15,810 Imamo link tag, ki povezuje v zunanji slog stanja. 820 00:40:15,810 --> 00:40:19,880 In potem imamo scenarij, ki potegne iz zunanjega JavaScriptom tudi. 821 00:40:19,880 --> 00:40:23,750 >> In nato v notranjosti našega telesa je dejansko kdo bo prikazano na strani. 822 00:40:23,750 --> 00:40:28,210 Dobili smo točko, nato pa Podoba znotraj tega odstavka. 823 00:40:28,210 --> 00:40:32,000 Tole je slika muckov. 824 00:40:32,000 --> 00:40:35,840 Opazimo, da je slika tag se zapre. 825 00:40:35,840 --> 00:40:41,760 Torej, namesto odpiranja s sliko in potem delaš drugo / slike, ki jih 826 00:40:41,760 --> 00:40:47,500 samo še to malo poševnica tu, ki ga zapre. 827 00:40:47,500 --> 00:40:53,670 In slika tag ima tudi ta ključ Vrednost atributa imenovan alt. 828 00:40:53,670 --> 00:40:56,970 To je nadomestno besedilo, ki se zgodi, ko hover nad njim. 829 00:40:56,970 --> 00:41:03,170 >> Večina HTML elementi imajo nekaj ključnih vrednosti stvari, ki jo lahko dajo, razne 830 00:41:03,170 --> 00:41:04,420 customization. 831 00:41:04,420 --> 00:41:06,230 832 00:41:06,230 --> 00:41:08,705 Ja. 833 00:41:08,705 --> 00:41:09,955 >> PUBLIKA: [neslišno]. 834 00:41:09,955 --> 00:41:17,510 835 00:41:17,510 --> 00:41:19,680 >> ANGELA LI: No, tako da je atribut tag. 836 00:41:19,680 --> 00:41:25,320 Torej, če ste bili z uporabo jQuery, bi lahko narediti izberite image.getAttribute. 837 00:41:25,320 --> 00:41:27,930 In potem si lahko poiščete dobili alt atribut. 838 00:41:27,930 --> 00:41:31,040 In to vam bo dala mladiče. 839 00:41:31,040 --> 00:41:37,400 Če se spomnite obrazcev v HTML, vhod Elementi bodo imeli atribute ime. 840 00:41:37,400 --> 00:41:41,870 In to je tisto, PHP uporablja za pošiljanje zahteva ob predložitvi obrazca. 841 00:41:41,870 --> 00:41:44,762 842 00:41:44,762 --> 00:41:50,064 >> PUBLIKA: Si omenil nekaj o tem, kako, če uporabljate kittens.jpg ali 843 00:41:50,064 --> 00:41:54,410 nekaj, kar je manjkajoča datoteko mape ali druge datoteke? 844 00:41:54,410 --> 00:41:54,750 >> ANGELA LI: Da. 845 00:41:54,750 --> 00:41:57,010 Torej je to, kar se imenuje relativna Pot, ker jaz ne daje 846 00:41:57,010 --> 00:41:58,740 si celotna pot. 847 00:41:58,740 --> 00:42:05,160 To je kot takrat, ko v C, če vam fopen nekatere datoteke, če si fopen hi.txt, da 848 00:42:05,160 --> 00:42:09,190 hi.txt se pričakuje, da bo v isti imenik, razen če mu daš več 849 00:42:09,190 --> 00:42:11,530 zapletena pot. 850 00:42:11,530 --> 00:42:14,900 >> PUBLIKA: Torej, lahko določite ki Mapa [neslišno]? 851 00:42:14,900 --> 00:42:17,660 >> ANGELA LI: Ja. 852 00:42:17,660 --> 00:42:19,370 In si lahko pogledate, kako to storiti. 853 00:42:19,370 --> 00:42:23,480 Ampak, če sem hotel priti ven kittens.jpg nadrejenega imenika, bi jaz 854 00:42:23,480 --> 00:42:24,730 .. / Kittens.jpg. 855 00:42:24,730 --> 00:42:29,680 856 00:42:29,680 --> 00:42:30,930 Ja. 857 00:42:30,930 --> 00:42:32,960 858 00:42:32,960 --> 00:42:33,760 Žal mi je. 859 00:42:33,760 --> 00:42:34,045 Ja. 860 00:42:34,045 --> 00:42:35,700 Oh človek, sem pozabil na vprašanje. 861 00:42:35,700 --> 00:42:36,460 Kaj je bilo vprašanje? 862 00:42:36,460 --> 00:42:39,570 Oh, je bilo vprašanje je, kittens.jpg Pričakuje se, da je v istem imeniku? 863 00:42:39,570 --> 00:42:40,630 In v tem primeru je. 864 00:42:40,630 --> 00:42:44,030 Vendar pa lahko tudi to določeno pot tako, da ni nujno, da je. 865 00:42:44,030 --> 00:42:47,100 866 00:42:47,100 --> 00:42:48,350 Dobra? 867 00:42:48,350 --> 00:42:50,190 868 00:42:50,190 --> 00:42:51,350 >> CSS. 869 00:42:51,350 --> 00:42:55,420 Torej, CSS, kot so HTML, ni programski jezik. 870 00:42:55,420 --> 00:42:58,250 CSS je le niz pravil styling. 871 00:42:58,250 --> 00:43:00,130 To je kratica za Cascading Style Sheets. 872 00:43:00,130 --> 00:43:03,910 In jo uporabite v povezavi HTML za slog strani. 873 00:43:03,910 --> 00:43:08,140 Torej obstajajo trije načini jo lahko vključite. 874 00:43:08,140 --> 00:43:11,950 En način lahko to storite, je v glavi del kode HTML, lahko samo 875 00:43:11,950 --> 00:43:15,410 odprite slog oznako in nato palico nekateri CSS pravila tam. 876 00:43:15,410 --> 00:43:16,759 To je zelo v redu. 877 00:43:16,759 --> 00:43:17,228 Ja. 878 00:43:17,228 --> 00:43:21,449 >> PUBLIKA: Bi si dal tiste tags slog v med, dajmo 879 00:43:21,449 --> 00:43:22,860 recimo, telo in / telo. 880 00:43:22,860 --> 00:43:27,400 In potem bi bilo styling Samo v telesu. 881 00:43:27,400 --> 00:43:28,840 >> ANGELA LI: Lahko bi. 882 00:43:28,840 --> 00:43:29,590 To bo delovalo. 883 00:43:29,590 --> 00:43:33,990 Vendar pa ne bi smeli, ker je styling vrste metapodatkov, da bi morala iti v 884 00:43:33,990 --> 00:43:35,890 Glava dokumenta. 885 00:43:35,890 --> 00:43:38,280 Organ bi moral res vsebuje samo kaj se dejansko dogaja, da 886 00:43:38,280 --> 00:43:39,420 pokažejo na vaši strani. 887 00:43:39,420 --> 00:43:42,155 >> PUBLIKA: Torej boš dal slog v tvoji glavi, da slog 888 00:43:42,155 --> 00:43:43,930 Celotna spletna stran, kajne? 889 00:43:43,930 --> 00:43:44,300 >> ANGELA LI: Ja. 890 00:43:44,300 --> 00:43:50,470 Torej dajanje slog tukaj, ta pravila CSS bo veljala za celotno stran, ki temelji na 891 00:43:50,470 --> 00:43:52,100 njihovi selektorji. 892 00:43:52,100 --> 00:43:57,090 Torej boljši način za to je, namesto da bi ki imajo slog tag v glavi, 893 00:43:57,090 --> 00:44:00,430 imate to povezavo z zunanjim slogu stanja kot sem ti pokazal v 894 00:44:00,430 --> 00:44:01,980 Prejšnji primer. 895 00:44:01,980 --> 00:44:05,920 Kaj to pa je, da poskuša in najde datoteko style.css in jo nato potegne 896 00:44:05,920 --> 00:44:08,470 v in uporablja, da kot stilov za stran. 897 00:44:08,470 --> 00:44:10,500 In tvoj style.css bi samo videti takole. 898 00:44:10,500 --> 00:44:13,330 Treba bi bilo samo kup CSS. 899 00:44:13,330 --> 00:44:16,210 >> In na koncu, obstaja še en način, kako lahko vključujejo CSS, ki je res 900 00:44:16,210 --> 00:44:17,480 ne bi nikoli storil. 901 00:44:17,480 --> 00:44:18,950 To je klic inline styling. 902 00:44:18,950 --> 00:44:22,650 In zato je vsak HTML element lahko tudi vzeti slog atribut. 903 00:44:22,650 --> 00:44:26,320 In potem v tem slogu atributa, lahko ji dati CSS pravila. 904 00:44:26,320 --> 00:44:29,140 Torej, v tem primeru, ne glede div sem opredeljevanju tukaj, da se bo 905 00:44:29,140 --> 00:44:32,580 imajo črno ozadje in barva bela besedila. 906 00:44:32,580 --> 00:44:35,620 Vendar naj ne bi to naredili, ker tisto, kar To pa je, da ti postavi styling 907 00:44:35,620 --> 00:44:36,850 v vašem HTML. 908 00:44:36,850 --> 00:44:40,530 >> In vem, da smo govorili o HTML je struktura in CSS stil. 909 00:44:40,530 --> 00:44:42,790 Če to storite, se pomeša ju povezuje. 910 00:44:42,790 --> 00:44:44,550 In to ni zelo čist. 911 00:44:44,550 --> 00:44:45,800 Torej, ne delaj tega. 912 00:44:45,800 --> 00:44:47,690 913 00:44:47,690 --> 00:44:52,100 Uporaba zgled CSS, tam smo šele izbrati telo HTML 914 00:44:52,100 --> 00:44:52,380 dokumentarec. 915 00:44:52,380 --> 00:44:55,110 In mi smo tako kot vse, kar je bo v Comic Sans. 916 00:44:55,110 --> 00:44:57,290 Jaz tudi ne priporočam, da. 917 00:44:57,290 --> 00:44:59,940 Vendar pa bi lahko naredil. 918 00:44:59,940 --> 00:45:03,140 >> Drugo pravilo tukaj, da se dogaja izbrati element na 919 00:45:03,140 --> 00:45:04,880 Stran z ID glavni. 920 00:45:04,880 --> 00:45:11,690 Torej, ne glede HTML element, sem rekel ID = Glavni, bom dal, da je A 921 00:45:11,690 --> 00:45:16,020 20-pixel marža in uskladiti vse, vse besedilo, na sredini. 922 00:45:16,020 --> 00:45:19,030 Zadnja stvar, ki jo izbere CSS razred. 923 00:45:19,030 --> 00:45:24,450 Torej vsak element na strani, ki sem dal Razred oddelek, grem, da bi bilo 924 00:45:24,450 --> 00:45:26,602 Barva ozadja svetlo modre barve. 925 00:45:26,602 --> 00:45:29,380 926 00:45:29,380 --> 00:45:30,040 Jap. 927 00:45:30,040 --> 00:45:30,700 To je vse, kar imam. 928 00:45:30,700 --> 00:45:30,890 Vprašanje? 929 00:45:30,890 --> 00:45:34,020 >> PUBLIKA: Kaj hashtag Pred glavno storiti? 930 00:45:34,020 --> 00:45:36,310 >> ANGELA LI: Vprašanje je, kaj počne hashtag pred glavno opravilo? 931 00:45:36,310 --> 00:45:40,770 V tem primeru hash v CSS pomeni Izbira po ID. 932 00:45:40,770 --> 00:45:47,490 Torej, če sem imel nekaj element HTML, kot so divID = glavni, to CSS pravilo izbere 933 00:45:47,490 --> 00:45:49,260 stvar z ID glavni. 934 00:45:49,260 --> 00:45:53,940 In podobno, obdobje pred razdelek Izbira po CSS razred ali 935 00:45:53,940 --> 00:45:56,558 izberite s HTML razred. 936 00:45:56,558 --> 00:46:00,940 >> PUBLIKA: Zakaj je ima pred 6 v barvi ozadja? 937 00:46:00,940 --> 00:46:01,270 >> ANGELA LI: Ja. 938 00:46:01,270 --> 00:46:03,360 Torej, vprašanje je, zakaj je tam hash pred 6? 939 00:46:03,360 --> 00:46:05,320 To je drugačna od tiste, hašiš. 940 00:46:05,320 --> 00:46:09,500 To pomeni, da ste ga daje šestnajstiški barva. 941 00:46:09,500 --> 00:46:14,260 Torej čarovnica barve, to samo predstavlja barvo. 942 00:46:14,260 --> 00:46:17,860 In se spomniš RGB trojic, ko si forenziki pset? 943 00:46:17,860 --> 00:46:18,770 To je podobno. 944 00:46:18,770 --> 00:46:21,590 Prvi dve številki predstavljata koliko rdeča je v barvi. 945 00:46:21,590 --> 00:46:23,260 Druga dva prikazujeta koliko zeleno. 946 00:46:23,260 --> 00:46:25,450 In tretji predstavlja koliko modro. 947 00:46:25,450 --> 00:46:30,060 In hash je to se dogaja da predstavlja barvo. 948 00:46:30,060 --> 00:46:35,660 >> Torej, kaj od 0, 0, 0, 0, 0, 0 do F, F, F, F, F, F je veljavna. 949 00:46:35,660 --> 00:46:39,550 To je nekaj velja barva, ki lahko se prikaže v vašem brskalniku. 950 00:46:39,550 --> 00:46:39,790 Vprašanje? 951 00:46:39,790 --> 00:46:43,590 >> PUBLIKA: Kakšna je razlika med uporabo po ID in razred? 952 00:46:43,590 --> 00:46:46,470 >> ANGELA LI: Vprašanje je, kaj je Razlika med 953 00:46:46,470 --> 00:46:48,950 uporabo po ID in razred? 954 00:46:48,950 --> 00:46:54,390 Lahko ima samo en element v HTML dokument, ki ima določen ID. 955 00:46:54,390 --> 00:46:58,660 Torej samo ena stvar na moji strani je dovoljeno imeti ID main. 956 00:46:58,660 --> 00:47:02,580 Torej, če ga uporabljate za to je v glavi. 957 00:47:02,580 --> 00:47:03,850 To je navigacija. 958 00:47:03,850 --> 00:47:05,230 To je noga. 959 00:47:05,230 --> 00:47:09,070 Razredi so različni, saj lahko Uporablja razrede za čim več elementov HTML 960 00:47:09,070 --> 00:47:10,100 kakor hočeš. 961 00:47:10,100 --> 00:47:15,860 >> Tako na primer, sem naredil oddelek razreda, zato, ker je verjetno več kot eno 962 00:47:15,860 --> 00:47:17,540 odsek na moji strani. 963 00:47:17,540 --> 00:47:20,200 Ti si samo dovoljeno imeti toliko Elementi na strani z enako 964 00:47:20,200 --> 00:47:23,190 razred, ampak samo tisti z določeno ID. 965 00:47:23,190 --> 00:47:25,600 >> PUBLIKA: Torej pika predstavlja razred? 966 00:47:25,600 --> 00:47:26,090 >> ANGELA LI: Ja. 967 00:47:26,090 --> 00:47:27,380 Pika predstavlja razred. 968 00:47:27,380 --> 00:47:29,990 969 00:47:29,990 --> 00:47:31,540 Cool. 970 00:47:31,540 --> 00:47:32,370 To je vse, kar imam, fantje. 971 00:47:32,370 --> 00:47:33,544 Hvala vam. 972 00:47:33,544 --> 00:48:13,380 >> [APPLAUSE] 973 00:48:13,380 --> 00:48:14,290 >> ZAMYLA CHAN: Živjo, vsi. 974 00:48:14,290 --> 00:48:14,880 Jaz sem Zamyla. 975 00:48:14,880 --> 00:48:18,830 Grem se pokriva PHP, MVC, in SQL danes. 976 00:48:18,830 --> 00:48:22,350 977 00:48:22,350 --> 00:48:26,110 Veliko materiala, da bom obloga se bo precej 978 00:48:26,110 --> 00:48:29,100 Pravica iz pset7. 979 00:48:29,100 --> 00:48:29,700 Vse je v redu. 980 00:48:29,700 --> 00:48:31,180 Torej, kaj je PHP? 981 00:48:31,180 --> 00:48:35,150 PHP je kratica za PHP Hypertext Preprocesor. 982 00:48:35,150 --> 00:48:38,740 Tako je, samo po sebi, je rekurzivna ime, ki je precej kul. 983 00:48:38,740 --> 00:48:42,220 PHP je skriptni jezik na strani strežnika, in zagotavlja backend 984 00:48:42,220 --> 00:48:44,610 in logičnih temeljev naši spletni strani. 985 00:48:44,610 --> 00:48:48,520 >> Torej Angela veliko govoril o HTML in CSS, ki bo strukturo 986 00:48:48,520 --> 00:48:49,530 spletne strani. 987 00:48:49,530 --> 00:48:53,210 Kaj pa, če želite spremeniti Vsebnost dinamično ali če se spreminja 988 00:48:53,210 --> 00:48:55,240 glede na uporabnika ali določeni pogoji? 989 00:48:55,240 --> 00:48:57,060 To je, če pride noter PHP 990 00:48:57,060 --> 00:49:02,610 Zdaj, po navadi, lahko PHP traja nekaj manj linij za izvajanje isto stvar 991 00:49:02,610 --> 00:49:07,380 v C. To je zato, ker PHP ročaji spomin upravljanje za programer, 992 00:49:07,380 --> 00:49:11,170 v nasprotju z US pokazal malloc brezplačno, take stvari. 993 00:49:11,170 --> 00:49:15,430 >> Ampak, ker PHP je interpretativne jezik, tipično, da bi izvršitev 994 00:49:15,430 --> 00:49:19,540 nekoliko počasneje kot C, ki je zbrati jezik. 995 00:49:19,540 --> 00:49:23,150 Ker se selimo programiranje jeziki, si oglejmo, kako 996 00:49:23,150 --> 00:49:24,570 sintaksa, razlikujejo. 997 00:49:24,570 --> 00:49:28,770 Bodimo zelo previdni, da ne zmeden s tem. 998 00:49:28,770 --> 00:49:33,750 Torej z PHP sintakso, ali ste embedding vaš PHP znotraj HTML 999 00:49:33,750 --> 00:49:40,430 datoteko ali znotraj. php datoteko sam, si morajo priložiti kodo na prostem 1000 00:49:40,430 --> 00:49:45,270 PHP in zaprte PHP oznake, kot so sledi, kot na zaslonu. 1001 00:49:45,270 --> 00:49:46,660 >> Spremenljivke v PHP. 1002 00:49:46,660 --> 00:49:51,490 Vsaka posamezna spremenljivka se bo začel s $ znak, ki mu sledi ime 1003 00:49:51,490 --> 00:49:53,150 vaša spremenljivka. 1004 00:49:53,150 --> 00:49:56,530 Zdaj pa se spremenljivke v PHP ohlapno vnesli, kar pomeni, da vam ni treba 1005 00:49:56,530 --> 00:50:00,030 da navede vrsto podatkov je, ko ste ga razglasi. 1006 00:50:00,030 --> 00:50:03,505 To pa ne pomeni, da nimajo nobene vrste na vse. 1007 00:50:03,505 --> 00:50:09,370 Torej, če Izjavljam, spremenljivko in samo iz je enaka 1, potem izjavljam, 1008 00:50:09,370 --> 00:50:15,140 druga spremenljivka, ga postavi na "1" in potem še eden 1.0, no, 1009 00:50:15,140 --> 00:50:19,410 odvisno od vrste enakosti Operaterji uporabljam, če želim primerjati 1010 00:50:19,410 --> 00:50:21,830 vseh vrst, nato bodo enaka. 1011 00:50:21,830 --> 00:50:25,570 Ampak, če želim, da poskrbite, da tipi so enaki, lahko PHP še vedno 1012 00:50:25,570 --> 00:50:28,690 da, čeprav se ne kažejo kakšne vrste je, ko smo 1013 00:50:28,690 --> 00:50:31,170 najprej datoteko. 1014 00:50:31,170 --> 00:50:33,990 >> Zdaj, v PHP, čeprav smo preklopu iz programiranja 1015 00:50:33,990 --> 00:50:39,360 jeziki, iz C, še vedno imamo zaupljiv, če pogoj, tako kot to. 1016 00:50:39,360 --> 00:50:43,270 Še vedno imamo, medtem ko zanke, samo kot je ta, kjer si dal v vašem 1017 00:50:43,270 --> 00:50:47,300 stanje in nato Telo zanke. 1018 00:50:47,300 --> 00:50:50,360 In potem smo tudi naš zanko, ki običajno izgleda takole. 1019 00:50:50,360 --> 00:50:55,330 Torej, če sem hotel ponoviti čez vse devet psets in predložiti in pokličite 1020 00:50:55,330 --> 00:50:58,960 Funkcija submitPset, potem pa lahko storim, da tu, kar vi vsi 1021 00:50:58,960 --> 00:50:59,830 storiti s to točko. 1022 00:50:59,830 --> 00:51:01,080 Čestitam, mimogrede. 1023 00:51:01,080 --> 00:51:04,560 1024 00:51:04,560 --> 00:51:07,550 >> Za kamero, ljudje je dejal, hvala. 1025 00:51:07,550 --> 00:51:11,220 Zdaj, če niste želeli le to uporabijo zanko, nato PHP dejansko tudi 1026 00:51:11,220 --> 00:51:13,580 je stvari, ki se imenuje foreach zanke. 1027 00:51:13,580 --> 00:51:22,210 Torej, če sem imel niz števil, 0 do 8, shranjene v array psets, 1028 00:51:22,210 --> 00:51:27,290 potem bi lahko imeli foreach zanke, ki ponovi več kot vsako številko v psets. 1029 00:51:27,290 --> 00:51:30,640 In potem bi jaz poklical enako delujejo osemkrat, 1030 00:51:30,640 --> 00:51:31,910 tako kot sem prej. 1031 00:51:31,910 --> 00:51:36,480 Torej je to za vsako zanko je lepo, ker vam ne bo treba, če ne veste, 1032 00:51:36,480 --> 00:51:39,470 Točna dolžina polja, ki ste so, nato pa z uporabo te foreach zanke 1033 00:51:39,470 --> 00:51:42,800 bo poskrbel za to za vas. 1034 00:51:42,800 --> 00:51:45,410 >> Torej sem naredil psets kot matriko. 1035 00:51:45,410 --> 00:51:46,700 Oglejmo si to. 1036 00:51:46,700 --> 00:51:51,290 Nizi v PHP so ponavadi isti kot tisti, ki smo jih imeli v C, kjer 1037 00:51:51,290 --> 00:51:52,960 lahko razglasi niz. 1038 00:51:52,960 --> 00:51:59,200 In tukaj, sem lahko razglasi prazen niz in nato zgraditi dinamično z uporabo 1039 00:51:59,200 --> 00:52:00,850 Indeksi so cela števila. 1040 00:52:00,850 --> 00:52:04,140 Torej indeksom 0, bom za shranjevanje število imenom 1. 1041 00:52:04,140 --> 00:52:09,210 V indeksu 1. mojega seznama, bom Shranjevanje vrednosti 2. 1042 00:52:09,210 --> 00:52:12,670 In na tretji indeksa, vendar Druga številka, bom 1043 00:52:12,670 --> 00:52:14,870 shranite številko 12. 1044 00:52:14,870 --> 00:52:17,250 >> Zdaj, to je v redu, da deluje dobro deluje. 1045 00:52:17,250 --> 00:52:21,310 Ampak pravijo, da je pomembno, da me kaj ima vsak indeks. 1046 00:52:21,310 --> 00:52:24,500 Za mene, indeks 0 pomeni, kako Veliko mačke imam. 1047 00:52:24,500 --> 00:52:27,400 In indeks 1 pomeni, kako Veliko sove imam. 1048 00:52:27,400 --> 00:52:29,450 In naslednjič pomeni, koliko psov. 1049 00:52:29,450 --> 00:52:34,140 No, potem je določiti, da namesto da si zapomnite 0 se nanaša na 1050 00:52:34,140 --> 00:52:38,090 mačke in 1 do sove, lahko uporabite asociativne nize, kar pomeni, da 1051 00:52:38,090 --> 00:52:42,260 namesto celih so moje indeksov, Jaz lahko dejansko uporabo nizov. 1052 00:52:42,260 --> 00:52:43,290 >> Torej je to zelo koristno. 1053 00:52:43,290 --> 00:52:47,130 In ste v bistvu samo zamenja cela števila s strunami. 1054 00:52:47,130 --> 00:52:50,074 In tam imaš asociativno paleto. 1055 00:52:50,074 --> 00:52:51,930 Ja. 1056 00:52:51,930 --> 00:52:55,800 >> PUBLIKA: Ali obstaja razlog, zakaj obstaja podčrtaj za sekundo 1057 00:52:55,800 --> 00:52:58,750 del, saj ima moj seznam array. 1058 00:52:58,750 --> 00:53:01,330 >> ZAMYLA CHAN: Vprašanje je bilo, je obstaja razlog, zakaj obstaja 1059 00:53:01,330 --> 00:53:03,320 podčrtaj med mojim in seznam? 1060 00:53:03,320 --> 00:53:03,610 Ne 1061 00:53:03,610 --> 00:53:06,878 To je samo, kako sem poimenoval moja spremenljivka. 1062 00:53:06,878 --> 00:53:11,670 >> PUBLIKA: Na prvi linije, to je ena beseda. 1063 00:53:11,670 --> 00:53:12,560 >> ZAMYLA CHAN: Se opravičujem. 1064 00:53:12,560 --> 00:53:13,410 Jaz bom popraviti. 1065 00:53:13,410 --> 00:53:13,620 Ja. 1066 00:53:13,620 --> 00:53:15,460 Ti bi morali biti enako ime spremenljivke. 1067 00:53:15,460 --> 00:53:16,710 Dober ulov. 1068 00:53:16,710 --> 00:53:19,640 1069 00:53:19,640 --> 00:53:19,950 OK. 1070 00:53:19,950 --> 00:53:22,610 Torej gremo na vrvico Zveza. 1071 00:53:22,610 --> 00:53:27,500 Če bi želel, da bi dve struni, Nato sem jih lahko združite 1072 00:53:27,500 --> 00:53:28,550 z operaterjem dot. 1073 00:53:28,550 --> 00:53:32,440 Torej, če imam Milo kot prvo ime in Banana kot priimek, nato 1074 00:53:32,440 --> 00:53:35,430 povezovanjem z operaterjem dot in nato pa damo prostor med 1075 00:53:35,430 --> 00:53:39,210 bo niz, ki vsebuje Milo Banana, ki sem jih lahko nato echo, ali 1076 00:53:39,210 --> 00:53:41,280 in ne izpiše. 1077 00:53:41,280 --> 00:53:44,465 >> Ko že govorimo o odmev, pogovoriva približno nekaj koristen - 1078 00:53:44,465 --> 00:53:44,920 oops. 1079 00:53:44,920 --> 00:53:46,030 Žal mi je. 1080 00:53:46,030 --> 00:53:52,920 Nekaj ​​uporabnih funkcij PHP. 1081 00:53:52,920 --> 00:53:56,240 Torej imamo - 1082 00:53:56,240 --> 00:53:57,444 tehnične težave. 1083 00:53:57,444 --> 00:53:58,694 Eno sekundo. 1084 00:53:58,694 --> 00:54:16,960 1085 00:54:16,960 --> 00:54:19,550 Poslal sem ga. 1086 00:54:19,550 --> 00:54:22,320 Težave PowerPoint. 1087 00:54:22,320 --> 00:54:29,200 In smo spet pri PHP funkcij. 1088 00:54:29,200 --> 00:54:32,010 1089 00:54:32,010 --> 00:54:35,150 In smo spet pri PHP funkcij. 1090 00:54:35,150 --> 00:54:39,890 >> Tako smo zahtevajo funkcijo, kjer če se boste peljali v datoteko, tukaj je samo 1091 00:54:39,890 --> 00:54:43,300 Primer datoteke, ki Mogoče bom mimo prijavite 1092 00:54:43,300 --> 00:54:47,605 Nato pa, da bo vključevala PHP kodo Iz te datoteke, da sem kažejo. 1093 00:54:47,605 --> 00:54:49,940 In bo ocenila, da je noter 1094 00:54:49,940 --> 00:54:54,450 Potem imamo tudi echo, ki je vzporedna printf. 1095 00:54:54,450 --> 00:54:57,710 Exit je vzporedno, da bi prekinil, ki pride iz bloka 1096 00:54:57,710 --> 00:54:58,570 kodo, ki ste noter 1097 00:54:58,570 --> 00:55:03,180 In potem je dal prazne pregledi spremenljivka je kot nična ali nič ali 1098 00:55:03,180 --> 00:55:08,482 vse, kar je enačiti s tem, da prazna. 1099 00:55:08,482 --> 00:55:09,438 Ja. 1100 00:55:09,438 --> 00:55:15,341 >> PUBLIKA: Za niz združevanje dot operater ena v PHP, je, da 1101 00:55:15,341 --> 00:55:20,158 Enako kot v JavaScript, če je to z uporabo dot za spoj pomeni plus? 1102 00:55:20,158 --> 00:55:27,440 Torej za polno ime, bi lahko imeli dolar podpiše prvo + + in potem traja? 1103 00:55:27,440 --> 00:55:27,720 >> ZAMYLA CHAN: Ja. 1104 00:55:27,720 --> 00:55:32,150 Torej, vprašanje je bilo, ali v PHP nas Lahko uporabite isto niz združevanje 1105 00:55:32,150 --> 00:55:33,890 kot v JavaScript z pluse. 1106 00:55:33,890 --> 00:55:35,410 Joseph bodo dobili kasneje. 1107 00:55:35,410 --> 00:55:36,620 Mislim, da ima slide o tem. 1108 00:55:36,620 --> 00:55:37,570 Pravzaprav, to je drugače. 1109 00:55:37,570 --> 00:55:41,310 Torej v JavaScript, morate uporabiti plus za združevanje nizov. 1110 00:55:41,310 --> 00:55:43,280 In v PHP, moraš uporabite operator pika. 1111 00:55:43,280 --> 00:55:44,530 Torej, oni so drugačni. 1112 00:55:44,530 --> 00:55:46,680 1113 00:55:46,680 --> 00:55:46,910 >> OK. 1114 00:55:46,910 --> 00:55:49,500 Torej sedaj, ko smo pokrili vse Ta PHP, če ga 1115 00:55:49,500 --> 00:55:50,490 res prišel prav? 1116 00:55:50,490 --> 00:55:54,470 No, da prihaja v priročno, ko smo Lahko pa ga kombinirate z našo HTML. 1117 00:55:54,470 --> 00:55:59,550 Torej nam bo naša PHP dala moč spremeni na stran HTML vsebine pred 1118 00:55:59,550 --> 00:56:00,000 njegovo nakladanje. 1119 00:56:00,000 --> 00:56:04,270 Torej temeljijo na različnih pogojih, Ponavadi določenega uporabnika, ki je 1120 00:56:04,270 --> 00:56:07,520 prijavljeni, lahko prikažete različne informacije. 1121 00:56:07,520 --> 00:56:08,800 Linda, ali imate vprašanje? 1122 00:56:08,800 --> 00:56:15,510 >> PUBLIKA: Lahko združite celo tudi? 1123 00:56:15,510 --> 00:56:16,760 >> ZAMYLA CHAN: Ja, lahko. 1124 00:56:16,760 --> 00:56:19,530 1125 00:56:19,530 --> 00:56:23,270 Torej, vprašanje je bilo, če lahko združevanje števil ali drugih 1126 00:56:23,270 --> 00:56:28,920 variable.s zdaj, gremo na MVC, ki je paradigma, ki smo ga uporabili v 1127 00:56:28,920 --> 00:56:33,380 pset7 in veliko spletnih oblikovalcev uporabiti za organiziranje kodo v datoteke 1128 00:56:33,380 --> 00:56:34,490 na njihovi spletni strani. 1129 00:56:34,490 --> 00:56:35,870 M stoji za modela. 1130 00:56:35,870 --> 00:56:41,450 In v bistvu, bo vzorčni datoteke ukvarjati odnosov z bazo podatkov. 1131 00:56:41,450 --> 00:56:44,640 Ogled datoteke, se nanašajo na estetika spletne strani. 1132 00:56:44,640 --> 00:56:47,550 In ročaji Controller zahteve uporabnikov, razčleni 1133 00:56:47,550 --> 00:56:49,230 Podatki, pa drugo logiko. 1134 00:56:49,230 --> 00:56:52,520 >> V pset7, smo združili model in krmilnik. 1135 00:56:52,520 --> 00:56:55,880 In mi pravkar klical jih kontrolorji in jih v javni imenik. 1136 00:56:55,880 --> 00:57:01,730 In ogled datotek, jih uporabite kot predloge v imeniku predloge. 1137 00:57:01,730 --> 00:57:07,260 Torej je tudi ta diagram tukaj da isto vrsto z delitvijo 1138 00:57:07,260 --> 00:57:10,510 model in krmilnik v vijolično Tukaj na levi in 1139 00:57:10,510 --> 00:57:12,770 Pogled na desno. 1140 00:57:12,770 --> 00:57:16,020 Torej je to shematično, da nekateri od vas lahko videli na govorilne ure ali 1141 00:57:16,020 --> 00:57:19,130 diagrami, da smo bili za risanje, kot ste smo ugotoviti vaš pset. 1142 00:57:19,130 --> 00:57:25,030 >> Torej tukaj, v danem krmilnik, Model krmilnik, imamo funkcije 1143 00:57:25,030 --> 00:57:30,490 ki se nanašajo na poizvedovanje SQL baze podatkov, izvajanje PHP logiko. 1144 00:57:30,490 --> 00:57:32,370 Mogoče bi si poglej gor fotografije v Yahoo! 1145 00:57:32,370 --> 00:57:34,590 Finance. 1146 00:57:34,590 --> 00:57:37,390 Ali pa bi si preverite videli, ali je uporabnik predložil 1147 00:57:37,390 --> 00:57:40,250 tvorijo že preden obiskal vašo stran. 1148 00:57:40,250 --> 00:57:43,390 In potem bi postal tvorijo tukaj. 1149 00:57:43,390 --> 00:57:48,210 Potem ko so trdili, da oblika s strani uporabnika, da je dejanje 1150 00:57:48,210 --> 00:57:53,470 konkretizirala v obliki HTML oznake bi pomenilo, da stran, ki jo 1151 00:57:53,470 --> 00:57:55,620 vrne, da so podatki na. 1152 00:57:55,620 --> 00:57:59,460 >> Torej, vse te informacije bi bilo poslati nazaj v svoj krmilnik. 1153 00:57:59,460 --> 00:58:02,620 Potem bi verjetno naredila malo več logika na to in morda izvesti nekaj 1154 00:58:02,620 --> 00:58:06,510 Več poizvedbe v zbirki podatkov SQL in potem končno prišli do lepo 1155 00:58:06,510 --> 00:58:11,930 pakirane nabor informacij, ki bi jo preide v na neki drugi predlogi 1156 00:58:11,930 --> 00:58:13,950 da se prikaže, da so informacije. 1157 00:58:13,950 --> 00:58:17,030 Zdaj, kako smo dejansko paket da so podatki gor? 1158 00:58:17,030 --> 00:58:23,980 No, imamo funkcijo imenovano omet da je bila v datoteki functions.php v 1159 00:58:23,980 --> 00:58:29,950 pset7, kjer se boste peljali v imenu datoteke, ime predloge. 1160 00:58:29,950 --> 00:58:32,160 >> In potem se tudi prenese v asociativno paleto. 1161 00:58:32,160 --> 00:58:37,150 In tako, da asociativno paleto predstavlja različne informacije 1162 00:58:37,150 --> 00:58:39,040 , ki ga želite prenesti noter 1163 00:58:39,040 --> 00:58:43,460 Zdaj, kaj se dogaja, da so stalnica v Ti primeri so, da so ključi ali, 1164 00:58:43,460 --> 00:58:47,070 bolje, ključi asociativnega nizi, to so, kaj se dogaja, da se 1165 00:58:47,070 --> 00:58:51,050 Pričakuje se, da je konstantna jih šablone zato, ker ve, da potrebuje 1166 00:58:51,050 --> 00:58:53,990 nekaj, kar se imenuje sporočilo ali imenuje ime. 1167 00:58:53,990 --> 00:58:56,940 In potem so se stvari na desni, dejanske vrednosti, tako da v tem primeru, ki je 1168 00:58:56,940 --> 00:59:00,750 dober fant in Milo, tiste gredo da so vrednosti, ki se spreminjajo 1169 00:59:00,750 --> 00:59:05,610 da upravljavec spremeni vsakič ali temeljijo na določeno stanje in 1170 00:59:05,610 --> 00:59:07,120 bo minilo, da prijavite 1171 00:59:07,120 --> 00:59:12,790 >> Torej, tukaj v predlogah, vidimo, da smo uporabljate HTML posebnih znakov, 1172 00:59:12,790 --> 00:59:16,370 ki samo v bistvu pomeni, da želimo da bi dobili medsebojni niz, ki 1173 00:59:16,370 --> 00:59:17,580 uporabnik dal noter 1174 00:59:17,580 --> 00:59:20,880 In želimo nadomestiti Sporočilo tam. 1175 00:59:20,880 --> 00:59:26,110 Torej potem, ko smo dejansko ogled datoteke, specifične 1176 00:59:26,110 --> 00:59:28,700 Podatki se prenesejo prijavite 1177 00:59:28,700 --> 00:59:33,850 Upoštevajte, da je ključnega pomena, kako postanejo del da so ključi asociativnega 1178 00:59:33,850 --> 00:59:37,170 nizi tistih spremenljivi Imena tukaj. 1179 00:59:37,170 --> 00:59:40,720 In tako se vrednosti tega ključa v asociativno paleto potem postane 1180 00:59:40,720 --> 00:59:41,970 vrednost spremenljivke. 1181 00:59:41,970 --> 00:59:44,800 1182 00:59:44,800 --> 00:59:46,040 >> Zdaj pa pojdite na SQL. 1183 00:59:46,040 --> 00:59:48,010 To pomeni strukturiran Jezik za poizvedbe. 1184 00:59:48,010 --> 00:59:50,460 In tako je to samo programsko jezik zasnovan 1185 00:59:50,460 --> 00:59:51,880 za upravljanje podatkovnih baz. 1186 00:59:51,880 --> 00:59:56,860 In je prišel v priročni za nas Naša spletna stran pset7 finance. 1187 00:59:56,860 --> 01:00:00,510 V bistvu, to je samo preprost način, da sledenje in upravljanje objektov in tabel 1188 01:00:00,510 --> 01:00:02,070 ter jih povezuje med seboj. 1189 01:00:02,070 --> 01:00:06,860 Zdaj pa pomislite na svojo zbirko podatkov SQL v bistvu kot Excelove datoteke, morda, 1190 01:00:06,860 --> 01:00:10,040 z več zavihki listov. 1191 01:00:10,040 --> 01:00:13,820 >> Tako bi imeli več tabel, Mogoče je povezana med seboj. 1192 01:00:13,820 --> 01:00:19,420 In podobno kot Excel, imamo veliko funkcionalnost, ki ga želimo. 1193 01:00:19,420 --> 01:00:22,300 Na primer, lahko izberemo nekatere vrstice. 1194 01:00:22,300 --> 01:00:24,110 Mi lahko vstavite podatke. 1195 01:00:24,110 --> 01:00:25,560 Mi lahko posodobite vrstice. 1196 01:00:25,560 --> 01:00:27,440 In smo lahko tudi izbrišete stvari. 1197 01:00:27,440 --> 01:00:30,920 1198 01:00:30,920 --> 01:00:36,560 >> SQL izberite deluje tako, da izberete vrstice ali vrsta določenih stolpcev iz 1199 01:00:36,560 --> 01:00:39,640 baze podatkov, ki se ujemajo nekatere Merila, ki jih navajajo. 1200 01:00:39,640 --> 01:00:44,930 Tako sem, ko vidim select * from čarovniki, kjer hiša = Ravenclaw, nato 1201 01:00:44,930 --> 01:00:48,340 Jaz izbiranje *, kar pomeni, da sem izberete vsak stolpec, da 1202 01:00:48,340 --> 01:00:56,340 vrstico iz tabele čarovnikov, vendar le, če hiša stolpec enaka Ravenclaw. 1203 01:00:56,340 --> 01:00:57,840 Zdaj, to je čista ali SQL. 1204 01:00:57,840 --> 01:01:02,680 Torej, če sem šel v phpMyAdmin, ki je poseben način, ki ga uporabljamo za upravljanje 1205 01:01:02,680 --> 01:01:07,040 naši SQL podatkovne baze, potem pa sem lahko vstavite da v spletno stran phpMyAdmin. 1206 01:01:07,040 --> 01:01:08,290 In da bi izvršitev. 1207 01:01:08,290 --> 01:01:11,280 >> Ampak dejansko želimo narediti da na PHP strani. 1208 01:01:11,280 --> 01:01:12,580 Torej, kako bomo to storili? 1209 01:01:12,580 --> 01:01:20,180 No, bomo uporabili funkcijo poizvedbe, ki v bistvu izvaja, da SQL poizvedb. 1210 01:01:20,180 --> 01:01:21,830 Uporabljate? 1211 01:01:21,830 --> 01:01:25,850 kot ogrado, se lahko prenese v nekaterih vrednote našega niza, ki smo 1212 01:01:25,850 --> 01:01:26,920 želite zamenjati. 1213 01:01:26,920 --> 01:01:32,110 Torej, morda sem shranjevanje drugačna Vrednosti v curr_house, ki 1214 01:01:32,110 --> 01:01:34,400 predstavlja trenutno hišo da grem skozi. 1215 01:01:34,400 --> 01:01:39,040 Tako da sem lahko prenese, da se kot ogrado z vprašajem. 1216 01:01:39,040 --> 01:01:43,290 In potem bom v bistvu izvršitev ista stvar kot sem prej, razen 1217 01:01:43,290 --> 01:01:45,550 Zdaj sem v PHP. 1218 01:01:45,550 --> 01:01:51,300 >> In bo poizvedba vrne asociativno paleto. 1219 01:01:51,300 --> 01:01:53,470 In jaz bom, da ga shranite v vrsticah. 1220 01:01:53,470 --> 01:01:56,880 Sedaj lahko poizvedbe vedno ne uspe. 1221 01:01:56,880 --> 01:02:02,870 Morda SQL poizvedb ni mogoče izvesti saj tabela ne obstaja. 1222 01:02:02,870 --> 01:02:04,310 Ali pa morda, stolpec ni obstajala. 1223 01:02:04,310 --> 01:02:05,400 Nekaj ​​je šlo narobe. 1224 01:02:05,400 --> 01:02:08,170 No, v tem primeru boste želeli, da bi prepričajte, da preverite, ali 1225 01:02:08,170 --> 01:02:09,700 poizvedba vrnila false. 1226 01:02:09,700 --> 01:02:15,590 In to s trojno enako operacijo tam. 1227 01:02:15,590 --> 01:02:19,660 >> In potem sem se opravičil, kar je še en Funkcija CS50, ki poteka v sporočilu. 1228 01:02:19,660 --> 01:02:23,435 In če pogledaš na opravičujem, vse to Res pa je postala apology.php. 1229 01:02:23,435 --> 01:02:26,100 1230 01:02:26,100 --> 01:02:26,410 Ja. 1231 01:02:26,410 --> 01:02:29,630 >> PUBLIKA: Ali lahko pojasnite, kaj je to zvezda počne med izberite in iz? 1232 01:02:29,630 --> 01:02:30,710 >> ZAMYLA CHAN: Ja, seveda. 1233 01:02:30,710 --> 01:02:35,220 Torej zvezda med izberite in od pomeni, da želim, da izberete celotno 1234 01:02:35,220 --> 01:02:37,440 celotno vrstico iz moje mize. 1235 01:02:37,440 --> 01:02:41,900 Lahko bi navedla, da izberete ime, leto, hišo. 1236 01:02:41,900 --> 01:02:46,160 In jaz bi se samo ti trije Stolpci v mojo mizo. 1237 01:02:46,160 --> 01:02:51,560 Ampak, če rečem, izberite *, nato pa bom dobili vse, kar je v tem stolpcu. 1238 01:02:51,560 --> 01:02:53,760 Potem bom vam gredo v prvi. 1239 01:02:53,760 --> 01:02:57,656 >> PUBLIKA: Torej, to je še vedno v SQL, kajne? 1240 01:02:57,656 --> 01:02:59,610 Je to vprašanje ali je to PHP? 1241 01:02:59,610 --> 01:03:00,550 >> ZAMYLA CHAN: Smo v poizvedbi. 1242 01:03:00,550 --> 01:03:01,940 Torej, to je v PHP. 1243 01:03:01,940 --> 01:03:06,280 Torej z uporabo PHP funkcijo poizvedbo, smo izvršitve SQL poizvedbo. 1244 01:03:06,280 --> 01:03:11,988 1245 01:03:11,988 --> 01:03:15,364 >> PUBLIKA: Je kaj v SQL malimi črkami, kot izberite 1246 01:03:15,364 --> 01:03:17,834 ali čarovniki ali hišo? 1247 01:03:17,834 --> 01:03:20,050 >> ZAMYLA CHAN: Je kaj v SQL velikimi in malimi črkami? 1248 01:03:20,050 --> 01:03:21,760 Prepričan sem, da ja. 1249 01:03:21,760 --> 01:03:24,620 Verjamem, da je SELECT in FROM In kje so velike in male črke. 1250 01:03:24,620 --> 01:03:25,535 Ne? 1251 01:03:25,535 --> 01:03:27,500 >> ROB Bowden: Torej, to je ravno nasprotno. 1252 01:03:27,500 --> 01:03:32,030 Imena stolpec in namizne sredstev, vse tiste velike in male črke. 1253 01:03:32,030 --> 01:03:35,470 Toda kateremkoli izmed ključnih besed MySQL, kot SELECT, FROM, in kje, da to niso 1254 01:03:35,470 --> 01:03:36,140 velikimi in malimi črkami. 1255 01:03:36,140 --> 01:03:36,420 OK. 1256 01:03:36,420 --> 01:03:37,780 Tako nasprotje tega, kar sem rekel. 1257 01:03:37,780 --> 01:03:40,420 Torej, vse MySQL ključnih besed - 1258 01:03:40,420 --> 01:03:42,670 izbrati, od, kjer - se niso velike in male črke. 1259 01:03:42,670 --> 01:03:44,630 Ampak vse ostalo je. 1260 01:03:44,630 --> 01:03:45,210 OK. 1261 01:03:45,210 --> 01:03:46,500 Ste v ospredju. 1262 01:03:46,500 --> 01:03:52,041 >> PUBLIKA: Če sem $ vrstice v smislu več kot ena vrstica, to je srednja 1263 01:03:52,041 --> 01:03:53,640 Pravkar postane asociativni niz? 1264 01:03:53,640 --> 01:03:59,550 >> ZAMYLA CHAN: Torej, vprašanje je bilo, če je vrstic ima več kot eno vrsto v njej, pa 1265 01:03:59,550 --> 01:04:01,800 postala asociativno paleto? 1266 01:04:01,800 --> 01:04:05,680 Torej je matrika asociativnega že nizi. 1267 01:04:05,680 --> 01:04:10,730 Torej, tudi če je samo ena vrstica vrnil, potem bi morali iti v 1268 01:04:10,730 --> 01:04:12,690 indeks 0 tega rezultata. 1269 01:04:12,690 --> 01:04:15,316 In potem bi morali to prvo vrstico. 1270 01:04:15,316 --> 01:04:17,482 Da, Belinda? 1271 01:04:17,482 --> 01:04:21,258 >> PUBLIKA: Ko uporabljate ===, To je samo primer? 1272 01:04:21,258 --> 01:04:22,210 Ali obstajajo drugi? 1273 01:04:22,210 --> 01:04:26,815 >> ZAMYLA CHAN: Torej, v tem primeru === je primerjava poda vrste. 1274 01:04:26,815 --> 01:04:29,870 1275 01:04:29,870 --> 01:04:34,050 Žal mi je. === Je primerjava da primerja vrste. 1276 01:04:34,050 --> 01:04:37,620 In potem == primerja vseh vrst. 1277 01:04:37,620 --> 01:04:41,620 >> PUBLIKA: Ali lahko pojasnite, kaj vrstic je v tej situaciji? 1278 01:04:41,620 --> 01:04:45,120 Je vrstica podatkov? 1279 01:04:45,120 --> 01:04:48,100 >> ZAMYLA CHAN: V naslednji diapozitiv, sem dogaja, da pojasni, kaj vrste je. 1280 01:04:48,100 --> 01:04:49,890 Torej, če vas ne moti gospodarstvo off na to. 1281 01:04:49,890 --> 01:04:50,620 In potem ste v hrbet? 1282 01:04:50,620 --> 01:04:54,699 >> PUBLIKA: Za funkcije, kot so poizvedbe, render in se opraviči [neslišno]? 1283 01:04:54,699 --> 01:04:59,050 1284 01:04:59,050 --> 01:05:03,050 >> ZAMYLA CHAN: Vprašanje je bilo, ali Te funkcije - poizvedbe, se opravičujem, 1285 01:05:03,050 --> 01:05:04,510 in postal - 1286 01:05:04,510 --> 01:05:05,930 pogoste so PHP. 1287 01:05:05,930 --> 01:05:09,460 To so tisti, ki CS50 napisal za pset7. 1288 01:05:09,460 --> 01:05:09,910 In Jay? 1289 01:05:09,910 --> 01:05:15,333 >> PUBLIKA: Ko je treba povedati, $ _SESSION, Je, da je samo za ID-je? 1290 01:05:15,333 --> 01:05:17,310 Ali bi si rekel, da je tukaj? 1291 01:05:17,310 --> 01:05:23,440 >> ZAMYLA CHAN: Torej, vprašanje je bilo, ko bomo uporabili $ _SESSION, da je bila posebna 1292 01:05:23,440 --> 01:05:25,290 globalna spremenljivka, ki smo ga uporabljate. 1293 01:05:25,290 --> 01:05:32,080 Tukaj je ta spremenljivka se dogaja, da po lokalnem za naše delovanje. 1294 01:05:32,080 --> 01:05:36,588 Tako da smo samo o razglasitvi nova spremenljivka. 1295 01:05:36,588 --> 01:05:38,460 >> PUBLIKA: Kako se opravičujemo izvajajo? 1296 01:05:38,460 --> 01:05:40,960 >> ZAMYLA CHAN: Vprašanje je bilo, kako se opravičujem se izvajajo? 1297 01:05:40,960 --> 01:05:44,180 In mislim, da je to pravzaprav precej dobra praksa za vama, da gredo v 1298 01:05:44,180 --> 01:05:49,260 oddelek functions.php in poglej Opravičujem se in videli, kako lahko imate 1299 01:05:49,260 --> 01:05:50,670 to storiti sami. 1300 01:05:50,670 --> 01:05:55,620 Tako da sem lahko pustite, da bi vas, ampak samo pravijo, da če pogledaš na opravičujem, 1301 01:05:55,620 --> 01:06:02,110 Nato je potrebno sporočilo, ki ga predložen opravičiti, potem pa 1302 01:06:02,110 --> 01:06:06,570 postane to sporočilo. 1303 01:06:06,570 --> 01:06:08,240 Še kakšno vprašanje? 1304 01:06:08,240 --> 01:06:08,710 Ljubim vprašanja. 1305 01:06:08,710 --> 01:06:09,555 Tako da jih prihaja. 1306 01:06:09,555 --> 01:06:11,888 >> PUBLIKA: [neslišno] 1307 01:06:11,888 --> 01:06:13,840 echo ali print tam? 1308 01:06:13,840 --> 01:06:15,900 >> ZAMYLA CHAN: Vprašanje je bilo, bi lahko ne le za moštvo 1309 01:06:15,900 --> 01:06:17,000 echo ali print tam. 1310 01:06:17,000 --> 01:06:19,710 Torej bi to naredil nekaj nekoliko drugačna. 1311 01:06:19,710 --> 01:06:23,750 Da bi tiskani poizvedbo ni v tem, da - 1312 01:06:23,750 --> 01:06:27,420 No, zdaj, mi smo dejansko v našem regulatorju. 1313 01:06:27,420 --> 01:06:30,350 Torej ne bomo dejansko HTML ustanovi tukaj. 1314 01:06:30,350 --> 01:06:34,946 Se opravičujem, ki onemogoča apologize.php dejansko vas preusmeri na apology.php. 1315 01:06:34,946 --> 01:06:39,560 1316 01:06:39,560 --> 01:06:42,200 OK. 1317 01:06:42,200 --> 01:06:45,880 >> Torej, zdaj, gremo na obravnavo Vprašanje od prej o tem, kaj 1318 01:06:45,880 --> 01:06:47,330 Res je vrstic. 1319 01:06:47,330 --> 01:06:51,960 No, bo poizvedba vrnila Niz vrstic. 1320 01:06:51,960 --> 01:06:55,020 In je vsaka vrsta zastopana z asociativni array. 1321 01:06:55,020 --> 01:07:02,840 Torej, če sem se izvrši neko poizvedbo SQL in Sem shranjeni rezultat v vrsticah, nato 1322 01:07:02,840 --> 01:07:07,850 s pomočjo foreach zanke, nato pa niz Ime je prva tam - vrstice. 1323 01:07:07,850 --> 01:07:13,170 In potem bom poklical vsaka vrstica v tam $ zapored. 1324 01:07:13,170 --> 01:07:20,060 >> Torej ponavljanjem nad tem, da lahko potem odprete dani vrstici je ime stolpca, 1325 01:07:20,060 --> 01:07:22,340 leto stolpec in hiša stolpec. 1326 01:07:22,340 --> 01:07:28,010 Upoštevajte, da jaz ne bi mogla To storite z vrsticami, ker indeks vrstic 1327 01:07:28,010 --> 01:07:29,290 ime ne obstaja. 1328 01:07:29,290 --> 01:07:31,970 Vrstice je le niz asociativne nize. 1329 01:07:31,970 --> 01:07:34,870 Torej imate dve ravni obstaja. 1330 01:07:34,870 --> 01:07:37,170 Ko ste niz vrstic, boste morali priti v to. 1331 01:07:37,170 --> 01:07:39,110 In potem lahko dostopate stolpce. 1332 01:07:39,110 --> 01:07:41,636 Ali, da bi bilo jasno? 1333 01:07:41,636 --> 01:07:42,520 Ja, spredaj? 1334 01:07:42,520 --> 01:07:45,490 >> PUBLIKA: [neslišno] odprto nosilci za [neslišno]? 1335 01:07:45,490 --> 01:07:46,220 >> ZAMYLA CHAN: Oprostite? 1336 01:07:46,220 --> 01:07:49,740 >> PUBLIKA: Odprte konzole. 1337 01:07:49,740 --> 01:07:52,420 >> ZAMYLA CHAN: ti tukaj? 1338 01:07:52,420 --> 01:07:58,520 To mi omogoča, da se vključi da spremenljiva. 1339 01:07:58,520 --> 01:07:58,670 Ja. 1340 01:07:58,670 --> 01:08:01,900 >> PUBLIKA: Ko tiskate, ste tiskanje na HTML kodo? 1341 01:08:01,900 --> 01:08:03,110 >> ZAMYLA CHAN: Da. 1342 01:08:03,110 --> 01:08:07,720 Ko sem natisniti, to je tu notri moj template zdaj, tako da 1343 01:08:07,720 --> 01:08:10,310 moj pogled MVC metode. 1344 01:08:10,310 --> 01:08:12,750 Torej sem tiskanju v HTML. 1345 01:08:12,750 --> 01:08:16,670 >> PUBLIKA: Torej, če smo šli v razvijalcu orodja po zagonu tega smo lahko 1346 01:08:16,670 --> 01:08:17,160 ki dejansko v kodo? 1347 01:08:17,160 --> 01:08:18,410 >> ZAMYLA CHAN: To je velika Vprašanje, ja. 1348 01:08:18,410 --> 01:08:22,359 Torej, če si šel v orodja za razvijalce v Firefox pomočjo Firebug ali 1349 01:08:22,359 --> 01:08:26,109 Krom, potem ja, bi lahko glej posebno HTML. 1350 01:08:26,109 --> 01:08:28,470 Tako naj ne bi prikazovalo $ vrstica ["Ime"]. 1351 01:08:28,470 --> 01:08:32,524 Pokazalo bi, kar Ime je v tej vrstici. 1352 01:08:32,524 --> 01:08:36,268 >> PUBLIKA: Just splošno vprašanje, kaj se tr in td opredeljena kot? 1353 01:08:36,268 --> 01:08:37,672 Zakaj bi [neslišno]? 1354 01:08:37,672 --> 01:08:41,850 1355 01:08:41,850 --> 01:08:44,814 >> ZAMYLA CHAN: Tabela vrstica tr, miza nato td stolpec. 1356 01:08:44,814 --> 01:08:48,060 1357 01:08:48,060 --> 01:08:49,310 OK. 1358 01:08:49,310 --> 01:08:55,771 1359 01:08:55,771 --> 01:08:56,835 >> OBČINSTVO: Ja, to je podatkov v tabeli. 1360 01:08:56,835 --> 01:08:58,770 >> ZAMYLA CHAN: Podatke tabele. 1361 01:08:58,770 --> 01:08:59,894 Ja. 1362 01:08:59,894 --> 01:09:08,670 >> PUBLIKA: To je vrstica, v kateri vrstica obravnava kot koloni? 1363 01:09:08,670 --> 01:09:08,910 >> ZAMYLA CHAN: Žal mi je. 1364 01:09:08,910 --> 01:09:10,570 Lahko ponovite? 1365 01:09:10,570 --> 01:09:14,450 >> PUBLIKA: Kako bi vi vizualizirati vrstice? 1366 01:09:14,450 --> 01:09:16,310 >> ZAMYLA CHAN: Kako bi si vizualizirati Vrstice v kakšen način? 1367 01:09:16,310 --> 01:09:21,796 Ali govoriš o teh vrstice tukaj ali TR vrstice? 1368 01:09:21,796 --> 01:09:22,630 >> PUBLIKA: Vrstice. 1369 01:09:22,630 --> 01:09:25,229 >> ZAMYLA CHAN: Te vrstice tukaj? 1370 01:09:25,229 --> 01:09:28,620 Jaz bi to vizualizirati kot Izvršim svojo poizvedbo. 1371 01:09:28,620 --> 01:09:38,729 In pravi, OK, imam bodisi 0 do n Višina vrstic, ki ustrezajo merilom 1372 01:09:38,729 --> 01:09:40,510 , ki jo je zahtevan. 1373 01:09:40,510 --> 01:09:43,740 Tako da imam nekaj več vrstic. 1374 01:09:43,740 --> 01:09:51,450 Torej vrsticah, so $ vrstice, trgovin vsaka eden od teh vrstic v matriki. 1375 01:09:51,450 --> 01:09:58,110 Torej, tudi če je samo ena od njih, to je še niz vrstic, ki se ujemajo. 1376 01:09:58,110 --> 01:10:03,010 >> Torej, na primer, je to podobno ko nerealne 1377 01:10:03,010 --> 01:10:05,390 cache od uporabnikov. 1378 01:10:05,390 --> 01:10:10,810 In merila, tam, kjer je bila ID je enak ID seje. 1379 01:10:10,810 --> 01:10:14,250 Res je samo ena vrstica , da bi lahko tekmo to. 1380 01:10:14,250 --> 01:10:18,960 Ampak še vedno vrstice pravkar vrnil ena vrstica. 1381 01:10:18,960 --> 01:10:22,620 Torej, bi si moral iti v vrsticah, indeks 0, indeks predpomnilnik na 1382 01:10:22,620 --> 01:10:26,195 dejansko dobili na vaš predpomnilnika. 1383 01:10:26,195 --> 01:10:29,650 >> PUBLIKA: Je funkcija print V echo isto stvar? 1384 01:10:29,650 --> 01:10:30,670 >> ZAMYLA CHAN: Da. 1385 01:10:30,670 --> 01:10:31,190 Da. 1386 01:10:31,190 --> 01:10:33,304 Natisni odmev isto. 1387 01:10:33,304 --> 01:10:42,400 >> PUBLIKA: Je foreach zanke Edini način, da indeks v vrstice? 1388 01:10:42,400 --> 01:10:46,110 >> ZAMYLA CHAN: Je foreach zanke Edini način, da lahko 1389 01:10:46,110 --> 01:10:47,030 Ponovil skozi vrstice? 1390 01:10:47,030 --> 01:10:47,180 Ne 1391 01:10:47,180 --> 01:10:51,000 Lahko uporabite tudi za zanke, pod pogojem, da boste vedeli, koliko 1392 01:10:51,000 --> 01:10:53,024 v matriki vrstico, ki je. 1393 01:10:53,024 --> 01:10:58,500 >> PUBLIKA: Bi lahko dostopate uporabljate vrstico, kot je [neslišno]? 1394 01:10:58,500 --> 01:11:01,640 >> ZAMYLA CHAN: Torej ne morete dostopati ga samo z uporabo vrstice, če nimate 1395 01:11:01,640 --> 01:11:05,160 foreach zanke pod pogojem, da niste razglašena vrstico. 1396 01:11:05,160 --> 01:11:08,150 1397 01:11:08,150 --> 01:11:09,660 Da. 1398 01:11:09,660 --> 01:11:10,810 Ja, v beli barvi. 1399 01:11:10,810 --> 01:11:13,990 >> PUBLIKA: Torej, kaj tr in td storiti? 1400 01:11:13,990 --> 01:11:16,790 >> ZAMYLA CHAN: Torej TR in td so oznake HTML. 1401 01:11:16,790 --> 01:11:19,590 TR označuje začetek namiznega zapored. 1402 01:11:19,590 --> 01:11:26,625 In vsaka td označuje nova tabela, stolpec podatkov. 1403 01:11:26,625 --> 01:11:32,275 >> PUBLIKA: Za vizualno kaj vrstica je podobno, samo zamisliti SQL, kako 1404 01:11:32,275 --> 01:11:33,510 imajo zapored. 1405 01:11:33,510 --> 01:11:35,980 [Neslišno]. 1406 01:11:35,980 --> 01:11:36,390 >> ZAMYLA CHAN: Ja. 1407 01:11:36,390 --> 01:11:37,630 To je velika točka. 1408 01:11:37,630 --> 01:11:41,510 Lahko vizualiziramo vrstice, kot je bilo pravkar kot v Excelovi tabeli, samo 1409 01:11:41,510 --> 01:11:44,540 Seznam vrstami. 1410 01:11:44,540 --> 01:11:46,870 OK. 1411 01:11:46,870 --> 01:11:47,230 Vse je v redu. 1412 01:11:47,230 --> 01:11:50,740 Torej sedaj, ko smo šli čez izberite, če ni vse več vprašanj, se bomo 1413 01:11:50,740 --> 01:11:52,970 pojdi na vložek. 1414 01:11:52,970 --> 01:11:58,220 Torej, če sem hotel vstaviti v nekaterih miza in vstavite določeno stolpec 1415 01:11:58,220 --> 01:12:02,320 vrednosti, lahko sem se vstavi v Ravenclaw v letu 7. 1416 01:12:02,320 --> 01:12:07,245 Ampak včasih bi lahko prišlo do podvojene vrednote, kot smo videli v pset7, ko smo 1417 01:12:07,245 --> 01:12:09,240 so posodabljanje našo portfelja. 1418 01:12:09,240 --> 01:12:15,610 >> Torej, v tem primeru želimo uporabiti ON DVOJNIK KEY UPDATE, tako da ne bomo 1419 01:12:15,610 --> 01:12:18,280 shranjevanje več vrstic z isto ceniti, ampak ga dopolni. 1420 01:12:18,280 --> 01:12:21,780 1421 01:12:21,780 --> 01:12:25,560 Potem imamo dejansko posodobitev, ki ni vložek. 1422 01:12:25,560 --> 01:12:30,100 To je samo update, kjer boste posodobili v določenem mizo z dana 1423 01:12:30,100 --> 01:12:34,403 Merila in potem, končno, brisanje, ki počne zelo podobno stvar. 1424 01:12:34,403 --> 01:12:40,200 >> PUBLIKA: Bi lahko na kratko iti čez dvojnik ključa? 1425 01:12:40,200 --> 01:12:40,850 >> ZAMYLA CHAN: Ja. 1426 01:12:40,850 --> 01:12:48,340 V bistvu tukaj, imam vstavite gringotts, je galleons, te vrednosti. 1427 01:12:48,340 --> 01:12:56,900 Ampak ID, verjetno, je edinstven ključ Vrednost ustanovljen v MySQL tabeli. 1428 01:12:56,900 --> 01:13:06,750 Torej, če sem že, da je ID ustanovi, potem ne morem vstaviti novo vrstico. 1429 01:13:06,750 --> 01:13:10,961 Torej, če še ne obstajajo, potem ga moram posodobiti. 1430 01:13:10,961 --> 01:13:16,040 1431 01:13:16,040 --> 01:13:17,722 V sredini v beli barvi. 1432 01:13:17,722 --> 01:13:21,570 >> PUBLIKA: Torej vstaviti, posodabljanje, brisanje, in izberite, so tisti, ki vse na voljo 1433 01:13:21,570 --> 01:13:22,875 lokalno [neslišno]? 1434 01:13:22,875 --> 01:13:27,320 1435 01:13:27,320 --> 01:13:29,630 >> ZAMYLA CHAN: Torej vstavite, posodobitev, brisanje in 1436 01:13:29,630 --> 01:13:31,120 Izberite vse SQL poizvedb. 1437 01:13:31,120 --> 01:13:34,970 Torej, ko ste z SQL, boste imeli so na voljo. 1438 01:13:34,970 --> 01:13:38,226 1439 01:13:38,226 --> 01:13:40,706 >> PUBLIKA: Nazaj v zadnjih kvizi - 1440 01:13:40,706 --> 01:13:44,178 je bilo vprašanje, ki obravnavajo če bi imeli mizo in je želel 1441 01:13:44,178 --> 01:13:52,610 vstavite rezultati testov v enem in vstavite vaše ime, tako da vas ne bo pustil 1442 01:13:52,610 --> 01:13:54,594 [Neslišno] test rezultat tvojega prijatelja. 1443 01:13:54,594 --> 01:13:59,060 Kako bi to naredil z vložkom? 1444 01:13:59,060 --> 01:14:02,490 >> ZAMYLA CHAN: Torej, vprašanje je bilo o tem Predhodna vmesno vprašanje. 1445 01:14:02,490 --> 01:14:04,320 Nisem seznanjen, od katerih ena je zdaj. 1446 01:14:04,320 --> 01:14:06,790 Mogoče kasneje, če želite, da prišel gor in mi pokaži, potem pa sem lahko 1447 01:14:06,790 --> 01:14:08,155 Vsekakor vam nasvete. 1448 01:14:08,155 --> 01:14:11,250 1449 01:14:11,250 --> 01:14:15,460 Ampak govorimo o vključimo stvari, kot so ob rezultat nekoga, ko 1450 01:14:15,460 --> 01:14:18,800 ne sme, kaj je govoril o Injection napadi SQL. 1451 01:14:18,800 --> 01:14:22,050 Torej SQL injection napad je v bistvu ko nekdo prevzame 1452 01:14:22,050 --> 01:14:27,680 Prednost nizke varnosti Tako, da jemljete v podatkih. 1453 01:14:27,680 --> 01:14:35,660 >> Torej, tukaj, tako kot na področju financ CS50, ko smo prijavljeni, lahko vstopijo v 1454 01:14:35,660 --> 01:14:39,510 uporabniško ime v prijavnem obrazcu, box prvo besedilo, in 1455 01:14:39,510 --> 01:14:41,570 vnesite v geslo. 1456 01:14:41,570 --> 01:14:45,610 Morda bi naša PHP koda pogledati kaj takega, kjer $ username 1457 01:14:45,610 --> 01:14:51,410 je uporabniško ime in geslo post-podatki je geslo post-podatkov. 1458 01:14:51,410 --> 01:14:55,110 In potem samo izvršitev našo poizvedbo, recimo, OK, no, naša poizvedba se bo 1459 01:14:55,110 --> 01:14:57,990 izberite eno od naših uporabnikov, pri katerih uporabniško ime 1460 01:14:57,990 --> 01:14:58,970 tisti, ki so predloženi. 1461 01:14:58,970 --> 01:15:06,870 In geslo je geslo, kar pomeni, da so gesla ujemajo. 1462 01:15:06,870 --> 01:15:12,670 >> Zdaj, kaj če bi namesto dejansko predložitev dejansko gesla, kot so 1463 01:15:12,670 --> 01:15:16,850 12345 in ugibanjem na Vile, ki pravi: geslo in poskuša vdreti njihovo 1464 01:15:16,850 --> 01:15:21,460 račun, kaj če bi namesto so ta predložena. 1465 01:15:21,460 --> 01:15:24,380 Prav tako lahko vnesete morda ugibati na geslo. 1466 01:15:24,380 --> 01:15:30,480 In potem bi jih končali quote nato vnesite ali 1 = 1. 1467 01:15:30,480 --> 01:15:35,160 Da bi štedil neposredno v SQL poizvedbo, da si kaj takega. 1468 01:15:35,160 --> 01:15:38,200 Izberite eno od uporabnikov, medtem ko ime = roglji in geslo 1469 01:15:38,200 --> 01:15:41,450 enaka lily ali 1 = 1. 1470 01:15:41,450 --> 01:15:45,450 >> Torej, ali ima geslo za pravilne ali 1 = 1, 1471 01:15:45,450 --> 01:15:47,870 ki je vedno velja. 1472 01:15:47,870 --> 01:15:52,780 Torej v tem primeru, v bistvu, lahko uporabnik izkoristi to in se prijavite 1473 01:15:52,780 --> 01:15:55,240 sami po sebi in kramp račun nekoga. 1474 01:15:55,240 --> 01:15:58,950 Tako da je, zakaj se želimo izogniti nekdo, ki ima za to. 1475 01:15:58,950 --> 01:16:03,890 Ampak na srečo, funkcija poizvedbe, ki jih , ki poteka v ogradah bo 1476 01:16:03,890 --> 01:16:04,800 skrb za to za vas. 1477 01:16:04,800 --> 01:16:08,570 Prav tako boste običajno ne želijo treba dejansko predložiti gesel 1478 01:16:08,570 --> 01:16:09,310 sami. 1479 01:16:09,310 --> 01:16:14,115 Zato smo zgoščen ali šifriranih jim v financah CS50. 1480 01:16:14,115 --> 01:16:17,553 >> PUBLIKA: mimo kviz govoril približno MySQL za izhod v strune. 1481 01:16:17,553 --> 01:16:21,800 Ali moramo skrbeti za to? 1482 01:16:21,800 --> 01:16:22,670 >> ZAMYLA CHAN: To je dobro vprašanje. 1483 01:16:22,670 --> 01:16:29,050 Evakuacijo strune MySQL je definitivno funkcija, ki je bila uporabljena v našem poizvedbe. 1484 01:16:29,050 --> 01:16:30,420 Ampak definitivno pogledati v to. 1485 01:16:30,420 --> 01:16:32,950 Jaz bi rekel, da je to pošteno igro vedeti da bi si morali poklicati, da 1486 01:16:32,950 --> 01:16:34,370 delujejo na vrvici. 1487 01:16:34,370 --> 01:16:35,245 Ja, Belinda? 1488 01:16:35,245 --> 01:16:38,606 >> PUBLIKA: Kako veš, kdaj je enojni narekovaji ali dvojne narekovaje? 1489 01:16:38,606 --> 01:16:43,516 In tudi, počutim se kot v predavanju ste omenil nekaj o nimajo 1490 01:16:43,516 --> 01:16:48,426 [neslišno] ali kaj podobnega, ali Drugi single quote na koncu. 1491 01:16:48,426 --> 01:16:56,407 1492 01:16:56,407 --> 01:17:00,825 Mislim, da je poudaril v predavanju, ki vi bi morali opuščaj 1 1493 01:17:00,825 --> 01:17:04,290 in potem ni opuščaj ali kaj podobnega. 1494 01:17:04,290 --> 01:17:05,540 >> PUBLIKA: [neslišno]. 1495 01:17:05,540 --> 01:17:14,860 1496 01:17:14,860 --> 01:17:18,657 >> PUBLIKA: Stvar je zadnji single quote tam v tem drugem polju 1497 01:17:18,657 --> 01:17:19,391 ne bi smelo biti. 1498 01:17:19,391 --> 01:17:21,840 [Neslišno] 1499 01:17:21,840 --> 01:17:26,730 Ker, ko ste vzeli, da je zadnji single citiram ven in se ujemajo teh za vsebino 1500 01:17:26,730 --> 01:17:30,522 kjer je geslo, če imate to poizvedbe, tam je enojni narekovaj na 1501 01:17:30,522 --> 01:17:31,340 konec že. 1502 01:17:31,340 --> 01:17:36,580 Želite uporabiti to enojni narekovaj kot tisti, ki je obrnjena v eno 1503 01:17:36,580 --> 01:17:37,574 [Neslišno]. 1504 01:17:37,574 --> 01:17:42,820 Torej, kaj je pravzaprav v tem besedilu box ne bi smeli privoščiti. 1505 01:17:42,820 --> 01:17:44,070 >> ZAMYLA CHAN: Jaz bom spremenila. 1506 01:17:44,070 --> 01:17:56,490 1507 01:17:56,490 --> 01:17:56,880 OK. 1508 01:17:56,880 --> 01:18:00,435 Če ne obstajajo kakršne koli vprašanja, potem bom jo mimo Jožefu govoriti 1509 01:18:00,435 --> 01:18:04,332 O JavaScript, et cetera. 1510 01:18:04,332 --> 01:18:09,540 >> [APPLAUSE] 1511 01:18:09,540 --> 01:18:11,660 >> JOSEPH Nevladna organizacija: Tako smo se izvajajo malo zadaj. 1512 01:18:11,660 --> 01:18:13,280 Torej, če moraš oditi, da je v redu. 1513 01:18:13,280 --> 01:18:16,540 Vendar vas prosimo, da boste obdržali vaše glave navzdol če ste v sredini, tako da 1514 01:18:16,540 --> 01:18:19,560 ne blokirajo fotoaparat in ga uporabljate izhod nazaj, če boste morali. 1515 01:18:19,560 --> 01:18:25,010 1516 01:18:25,010 --> 01:18:26,306 Jaz sem Joseph mimogrede. 1517 01:18:26,306 --> 01:18:27,556 Zdravo. 1518 01:18:27,556 --> 01:18:37,910 1519 01:18:37,910 --> 01:18:38,630 Test, test. 1520 01:18:38,630 --> 01:18:39,630 Dan, je to dobro? 1521 01:18:39,630 --> 01:18:40,880 Cool. 1522 01:18:40,880 --> 01:18:44,460 1523 01:18:44,460 --> 01:18:47,600 >> Tako da bo video bo objavljeno tudi na spletu za tiste, ki 1524 01:18:47,600 --> 01:18:48,850 moral oditi. 1525 01:18:48,850 --> 01:18:51,350 1526 01:18:51,350 --> 01:18:52,600 Nerodno. 1527 01:18:52,600 --> 01:18:56,300 1528 01:18:56,300 --> 01:18:57,510 OK. 1529 01:18:57,510 --> 01:18:59,730 Torej pregled kviz. 1530 01:18:59,730 --> 01:19:00,980 To je mačka. 1531 01:19:00,980 --> 01:19:03,150 1532 01:19:03,150 --> 01:19:07,170 Zdaj, JavaScript, ki je morda ne kot Aww za nekatere od vas. 1533 01:19:07,170 --> 01:19:07,370 OK. 1534 01:19:07,370 --> 01:19:09,280 Tako da je prvi, odpokličejo od Zamyla. 1535 01:19:09,280 --> 01:19:11,270 Ne pozabite, da je PHP teči na strežniku. 1536 01:19:11,270 --> 01:19:15,230 In veliko krat, vidva napisal zanke v PHP natisniti HTML, kajne? 1537 01:19:15,230 --> 01:19:19,170 Torej, ko bo ta koda izvede, da HTML izhod, ki ga natisnete 1538 01:19:19,170 --> 01:19:20,500 dobi pošlje uporabniku. 1539 01:19:20,500 --> 01:19:25,960 In ko se to zgodi, ne more več PHP je treba zagnati, razen če ste osvežite stran, od 1540 01:19:25,960 --> 01:19:27,660 Seveda, ki reexecutes PHP. 1541 01:19:27,660 --> 01:19:30,080 Ampak, ko natisnete to HTML, ne moreš nikamor. 1542 01:19:30,080 --> 01:19:33,580 >> Torej se da HTML poslali uporabniku, ki je brskalnik tukaj, kjer 1543 01:19:33,580 --> 01:19:35,470 Milo je z uporabo računalnika. 1544 01:19:35,470 --> 01:19:40,340 In tako dobro, obstaja več stvari, ko smo poslali HTML za uporabnika. 1545 01:19:40,340 --> 01:19:43,350 Včasih smo želeli narediti nekaj podobnega ko boste kliknili na nekaj, kar si želimo 1546 01:19:43,350 --> 01:19:47,350 opozarjanje škatle, da pop up, tiste vrste interakcije, kot so, ko pritisnete 1547 01:19:47,350 --> 01:19:50,740 Ključ, ko boste kliknili na nekaj stran, želim da se kaj zgodi. 1548 01:19:50,740 --> 01:19:54,550 No, ne moreš reexecute PHP Koda ko je to HTML nastavljena. 1549 01:19:54,550 --> 01:19:55,900 Torej, kako si to naredil? 1550 01:19:55,900 --> 01:19:59,930 >> Mi uvesti nov jezik, imenovan JavaScript, ki teče v brskalniku 1551 01:19:59,930 --> 01:20:02,890 , ki vam omogoča delati stvari v HTML, ko prejmete 1552 01:20:02,890 --> 01:20:04,020 jih iz strežnika. 1553 01:20:04,020 --> 01:20:07,050 In to je razlog, zakaj smo ga odjemalca pokličite programski jezik. 1554 01:20:07,050 --> 01:20:09,110 Deluje na vašem računalniku - 1555 01:20:09,110 --> 01:20:11,400 odjemalec. 1556 01:20:11,400 --> 01:20:13,830 Imate vprašanja, ki doslej? 1557 01:20:13,830 --> 01:20:15,650 Ta paradigma je smiselno, da ljudem? 1558 01:20:15,650 --> 01:20:16,010 OK. 1559 01:20:16,010 --> 01:20:16,790 Dobro. 1560 01:20:16,790 --> 01:20:17,340 Vse je v redu. 1561 01:20:17,340 --> 01:20:20,850 Torej prva stvar, upoštevajte je JavaScript ni PHP. 1562 01:20:20,850 --> 01:20:23,010 >> Imajo neko drugačno sintakso, ki bomo šli v. 1563 01:20:23,010 --> 01:20:24,530 In imajo zelo različne uporabe. 1564 01:20:24,530 --> 01:20:26,640 JavaScript, še enkrat, za vaš Brskalnik, za stranko. 1565 01:20:26,640 --> 01:20:30,640 Strežnik teče nekje na nekoga drugega Računalnik, ki pošilja informacije 1566 01:20:30,640 --> 01:20:31,720 za vas, kajne? 1567 01:20:31,720 --> 01:20:36,730 Torej, če vas prosimo, da napišete PHP kodo na vprašanje izpit, ne pisati 1568 01:20:36,730 --> 01:20:38,710 JavaScript in obratno. 1569 01:20:38,710 --> 01:20:41,710 Boste le izgubili točk, in to ne bo zgodilo. 1570 01:20:41,710 --> 01:20:43,690 >> Torej, kaj je dobil v nekaj sintaktične razlike - 1571 01:20:43,690 --> 01:20:46,140 JavaScript na levi in PHP na desni strani. 1572 01:20:46,140 --> 01:20:48,670 Prva stvar, ki jo boste opazili pri JavaScript izjavljamo spremenljivke z 1573 01:20:48,670 --> 01:20:49,440 var ključne besede - 1574 01:20:49,440 --> 01:20:53,590 V-A-R. PHP uporablja znak za dolar kot Zamyla razpravljali prej. 1575 01:20:53,590 --> 01:20:57,570 Če želite, da razglasi asociativno matrika, bomo videli podoben sintakso na 1576 01:20:57,570 --> 01:20:59,030 desna stran s PHP. 1577 01:20:59,030 --> 01:21:01,630 Na levi strani, namesto uporabljate zavite oklepaje. 1578 01:21:01,630 --> 01:21:03,280 In potem imaš ključe so na levi strani. 1579 01:21:03,280 --> 01:21:04,670 Potem imate debelo črevo. 1580 01:21:04,670 --> 01:21:06,560 In potem boste morali vrednosti , ki ga želite. 1581 01:21:06,560 --> 01:21:09,840 >> Torej, to je, kako bi si to naredil v PHP Na desni strani s tem sekundo 1582 01:21:09,840 --> 01:21:10,955 črto, ki se začne pri Mila. 1583 01:21:10,955 --> 01:21:14,540 In to je, kako bi si to naredil na levi strani v JavaScript, če želite 1584 01:21:14,540 --> 01:21:16,110 kar imenujemo objekt. 1585 01:21:16,110 --> 01:21:19,340 In predmeti v JavaScriptu so samo asociativne nize. 1586 01:21:19,340 --> 01:21:23,710 Torej, če želite dostopati do polja, v PHP uporabljate to konzolo sintakso. 1587 01:21:23,710 --> 01:21:27,170 In na ta način, lahko dodelite ta lastnik polja Lauren. 1588 01:21:27,170 --> 01:21:30,150 >> No, v JavaScript, če želite, da dostop polje in ga spremeniti, lahko 1589 01:21:30,150 --> 01:21:31,370 uporabite dot sintakso. 1590 01:21:31,370 --> 01:21:33,860 Lahko uporabite tudi nosilec sintakso. 1591 01:21:33,860 --> 01:21:35,550 Vendar ne morete uporabljati dot sintaksa v PHP. 1592 01:21:35,550 --> 01:21:36,525 To ne bo delovalo. 1593 01:21:36,525 --> 01:21:38,910 Deluje le v PHP. 1594 01:21:38,910 --> 01:21:42,060 In končno, za tiskanje stvari konzola, uporabite console.log, ki 1595 01:21:42,060 --> 01:21:43,720 vi uporabljate veliko v pset8. 1596 01:21:43,720 --> 01:21:45,260 Lahko console.log da. 1597 01:21:45,260 --> 01:21:50,030 >> Če želite natisniti niz v PHP, boste morali uporabiti tiskanja r. 1598 01:21:50,030 --> 01:21:53,240 In na desni strani, vidite i hash Niz spajanja tam. 1599 01:21:53,240 --> 01:21:54,070 Nekdo je vprašal prej. 1600 01:21:54,070 --> 01:21:55,850 Uporabljam plus v JavaScript. 1601 01:21:55,850 --> 01:21:59,800 Če želim, da združevanje nekaj v PHP, uporabljam piko. 1602 01:21:59,800 --> 01:22:00,800 To so različni. 1603 01:22:00,800 --> 01:22:03,420 Če pišete PHP kodo, Ne uporabljajte plus. 1604 01:22:03,420 --> 01:22:06,810 Če pišete JavaScript kode, ne pisati piko. 1605 01:22:06,810 --> 01:22:08,230 To bo narobe. 1606 01:22:08,230 --> 01:22:09,640 In boste žalostni. 1607 01:22:09,640 --> 01:22:11,000 >> Torej sintaktične razlike. 1608 01:22:11,000 --> 01:22:14,710 Poznate svoje sintakso, ker če boste morali napišite vprašanje in uporabite sintakso 1609 01:22:14,710 --> 01:22:16,890 iz napačnega jezika, to ne bo delovalo. 1610 01:22:16,890 --> 01:22:19,520 In to bo narobe. 1611 01:22:19,520 --> 01:22:22,420 Torej, kaj je govoril o neki nadzorom tok razlike, kako boste uporabili 1612 01:22:22,420 --> 01:22:24,040 zank v vsaki izmed njih. 1613 01:22:24,040 --> 01:22:26,610 Zamyla šel čez desni strani. 1614 01:22:26,610 --> 01:22:27,780 Stvari na desni strani morajo biti seznanjeni. 1615 01:22:27,780 --> 01:22:29,670 Oglejmo si na levi strani. 1616 01:22:29,670 --> 01:22:34,830 >> Ko uporabljate za n zanke v JavaScriptu, vaš zanke spremenljivka, var i tam, 1617 01:22:34,830 --> 01:22:37,210 Zanka ključe matrike. 1618 01:22:37,210 --> 01:22:39,150 Torej vidite ime, hiša, in vlogo. 1619 01:22:39,150 --> 01:22:42,440 Če sem console.log i, dobim Ime, hiša, in vloga. 1620 01:22:42,440 --> 01:22:44,720 Tisti, ki so ključi. 1621 01:22:44,720 --> 01:22:50,080 V JavaScript, foreach zanke gre nad vrednotami tem polju. 1622 01:22:50,080 --> 01:22:52,040 Torej, ste opazili, da sta oba i. 1623 01:22:52,040 --> 01:22:56,000 Ampak tukaj na PHP strani, se natisne out Milo, CS50 in Mascot. 1624 01:22:56,000 --> 01:22:57,390 To so vrednote v PHP. 1625 01:22:57,390 --> 01:23:00,180 >> To so torej, kako sta ti dve različni v različnih jezikih. 1626 01:23:00,180 --> 01:23:02,970 Torej, če ste z uporabo foreach zanke, ne domneva, da je 1627 01:23:02,970 --> 01:23:03,760 vam daje ključe. 1628 01:23:03,760 --> 01:23:08,010 In če boste uporabljali za n zanke, ne Predvidevam, da vam daje vrednosti. 1629 01:23:08,010 --> 01:23:10,420 Ali to smiselno doslej? 1630 01:23:10,420 --> 01:23:13,630 Naslednji diapozitiv se dogaja, da vam pokažem kako lahko dostopate nasprotno v 1631 01:23:13,630 --> 01:23:15,160 vsak od njih. 1632 01:23:15,160 --> 01:23:18,550 >> No, če imaš ključ v JavaScript in želite vrednost ven, 1633 01:23:18,550 --> 01:23:20,440 si indeks v matrika s tem. 1634 01:23:20,440 --> 01:23:23,640 Tako da bo Milo iz te dobim kaj hočeš - vrednote. 1635 01:23:23,640 --> 01:23:25,260 Tam je ta drugačna sintaksa v PHP. 1636 01:23:25,260 --> 01:23:28,140 Če res želite, da ga pozna, ne vem Mislim, da smo jo pokazali, da vas še ni. 1637 01:23:28,140 --> 01:23:31,740 Ampak, če ste zainteresirani, lahko uporabite ta dodatna sintaksa na desni strani 1638 01:23:31,740 --> 01:23:35,130 stran, ki bo dejansko kaj dobiš ključi v PHP, ko ga uporabljate 1639 01:23:35,130 --> 01:23:35,880 foreach zanke. 1640 01:23:35,880 --> 01:23:39,640 Torej samo malo malenkosti če vas zanima. 1641 01:23:39,640 --> 01:23:42,630 >> Tako, da je samo za dokazovanje razlike med tema dvema zank. 1642 01:23:42,630 --> 01:23:47,060 Jih ne pomešajo, ko ste programiranje vprašanje. 1643 01:23:47,060 --> 01:23:49,774 Vsa vprašanja o tem. 1644 01:23:49,774 --> 01:23:50,770 Cool. 1645 01:23:50,770 --> 01:23:51,310 Vse je v redu. 1646 01:23:51,310 --> 01:23:52,250 JavaScript predmeti. 1647 01:23:52,250 --> 01:23:53,040 Govoril sem o njih. 1648 01:23:53,040 --> 01:23:54,650 Oni so kot asociativne nize. 1649 01:23:54,650 --> 01:23:57,730 Ena stvar, rad bi vas opozoriti, tukaj je, da je vrednost v asociativno 1650 01:23:57,730 --> 01:23:59,540 Niz je lahko karkoli v JavaScript. 1651 01:23:59,540 --> 01:24:02,240 >> Lahko je tudi funkcija, kot tam. 1652 01:24:02,240 --> 01:24:04,600 Imam funkcijo, ki je vrednost ključa. 1653 01:24:04,600 --> 01:24:07,030 In če želim poklicati te funkcije Pravkar sem dostop lubje. 1654 01:24:07,030 --> 01:24:08,490 In potem sem dal oklepaje po tem. 1655 01:24:08,490 --> 01:24:09,790 In da deluje. 1656 01:24:09,790 --> 01:24:15,570 Torej, kakšna vprašanja? 1657 01:24:15,570 --> 01:24:16,370 Ne? 1658 01:24:16,370 --> 01:24:16,650 OK. 1659 01:24:16,650 --> 01:24:18,190 Dobro. 1660 01:24:18,190 --> 01:24:20,130 JavaScript, kot so PHP, je ohlapno vnesli. 1661 01:24:20,130 --> 01:24:20,970 Kaj to pomeni? 1662 01:24:20,970 --> 01:24:22,380 >> To pa ima vrste. 1663 01:24:22,380 --> 01:24:24,800 Toda, ko razglasi JavaScript spremenljivka, pravite var i. 1664 01:24:24,800 --> 01:24:25,850 Saj ne rečem. 1665 01:24:25,850 --> 01:24:26,460 To ni stvar. 1666 01:24:26,460 --> 01:24:28,000 Pravkar ste rekli, da je spremenljivka. 1667 01:24:28,000 --> 01:24:31,590 In potem bodo JavaScript ročaj Vrste pod pokrovom za vas. 1668 01:24:31,590 --> 01:24:34,390 Mi lahko prosto spremeniti med vrste zaradi tega. 1669 01:24:34,390 --> 01:24:37,360 Zato sem se začne kot številne v tem primeru. 1670 01:24:37,360 --> 01:24:38,790 In potem imam niz. 1671 01:24:38,790 --> 01:24:39,710 In dodam sem jo. 1672 01:24:39,710 --> 01:24:41,810 In sem ga prerazporedijo nazaj na i. 1673 01:24:41,810 --> 01:24:43,640 >> Torej, na tej prvi vrstici, i je število. 1674 01:24:43,640 --> 01:24:47,310 Na drugo črto, sem zdaj postane Niz ko sem naredil prerazporeditev. 1675 01:24:47,310 --> 01:24:52,820 In tu, jaz sem samo concatenating to število na vrvico. 1676 01:24:52,820 --> 01:24:56,210 Torej vidite, da čeprav sem bil celo v prvem delu, to je nekako 1677 01:24:56,210 --> 01:24:58,500 podobnega pa se pretvori niz in zatem dodamo 1678 01:24:58,500 --> 01:25:00,510 na tem hello nizu. 1679 01:25:00,510 --> 01:25:02,340 In tako da je tisto, kar mislim z ohlapno tipkanje. 1680 01:25:02,340 --> 01:25:04,760 To, da ste pretvorbo med Vrste zelo enostavno. 1681 01:25:04,760 --> 01:25:08,840 In to ne mečite opozorila ob želeli C počne. 1682 01:25:08,840 --> 01:25:12,420 >> Tako da sem zdaj vsebuje zdravo 123 do niza. 1683 01:25:12,420 --> 01:25:13,270 Naprej. 1684 01:25:13,270 --> 01:25:15,610 Prav tako lahko neovirano primerjajo med vrstami. 1685 01:25:15,610 --> 01:25:19,310 Torej, če ste jo pravkar uporabljate ==, zelo veliko kot so PHP, JavaScript 1686 01:25:19,310 --> 01:25:20,480 does podobno stvar. 1687 01:25:20,480 --> 01:25:24,780 Niz 123 je enako številu 123, ko uporabljate dvojne enaka. 1688 01:25:24,780 --> 01:25:27,820 Ko se uporablja triple enak, prav tako želi zagotoviti, da 1689 01:25:27,820 --> 01:25:29,240 Tip je enaka. 1690 01:25:29,240 --> 01:25:31,960 Zato, ker da je vrvica in da številko, čeprav sta oba 1691 01:25:31,960 --> 01:25:35,280 123, ko uporabljate triple enaka, boste dobili napačen. 1692 01:25:35,280 --> 01:25:39,330 V dvojni enako zadevo, dobiš res, ker dvojni Enako ne 1693 01:25:39,330 --> 01:25:40,020 mar tipa. 1694 01:25:40,020 --> 01:25:42,500 Trojni Enako ne skrbi vrste. 1695 01:25:42,500 --> 01:25:43,750 Vprašanja? 1696 01:25:43,750 --> 01:25:45,790 1697 01:25:45,790 --> 01:25:48,390 OK. 1698 01:25:48,390 --> 01:25:52,870 >> In še ena stvar je JavaScript Področje je nekako globalno, če ste 1699 01:25:52,870 --> 01:25:53,460 v funkciji. 1700 01:25:53,460 --> 01:25:55,660 In deluje enako Tako v PHP pravzaprav. 1701 01:25:55,660 --> 01:25:57,500 Torej gremo skozi ta primer. 1702 01:25:57,500 --> 01:25:59,110 Nastavite, da sem do 999. 1703 01:25:59,110 --> 01:26:00,900 In potem sem šel v to zanko. 1704 01:26:00,900 --> 01:26:06,110 Torej, če sem tiskanje i v to za zanka, pričakujem, 0, 1, 2, 3, 4. 1705 01:26:06,110 --> 01:26:07,390 Sem dobil, da i = 4. 1706 01:26:07,390 --> 01:26:10,770 To korakih Zdaj za 5 pri Konec za zanke. 1707 01:26:10,770 --> 01:26:13,300 Potem pa izbruhne zanke, ker ne izpolnjuje 1708 01:26:13,300 --> 01:26:14,550 pogojuje več. 1709 01:26:14,550 --> 01:26:16,650 >> Kaj menite, da je naslednja console.log natisne? 1710 01:26:16,650 --> 01:26:20,570 1711 01:26:20,570 --> 01:26:24,790 Tako da je tisto, kar bi naredil v C. V C ker če imate kot var i zunaj 1712 01:26:24,790 --> 01:26:28,855 in imate var I Inside zanke, kot so zanko, potem je to tako, da 1713 01:26:28,855 --> 01:26:30,690 to je zajeta da sta i je so različni. 1714 01:26:30,690 --> 01:26:34,630 V JavaScript, bo to šele obravnavati kot v enakem i. 1715 01:26:34,630 --> 01:26:37,870 Sem dobil 5, ker je bila vrednost ko je izstopilo iz zanke. 1716 01:26:37,870 --> 01:26:39,120 Torej tiste, ki sem ji so enaki i. 1717 01:26:39,120 --> 01:26:42,620 1718 01:26:42,620 --> 01:26:44,130 Ali to smiselno? 1719 01:26:44,130 --> 01:26:45,720 >> No, je smiselno od Stališče JavaScript. 1720 01:26:45,720 --> 01:26:49,510 Toda enako paradigmo ne prenesejo na C. Imajo 1721 01:26:49,510 --> 01:26:50,310 različna pravila določanje obsega ocenjevalnega poročila. 1722 01:26:50,310 --> 01:26:50,630 Da. 1723 01:26:50,630 --> 01:26:52,566 >> PUBLIKA: [neslišno] 1724 01:26:52,566 --> 01:26:54,990 izven funkcije [neslišno]? 1725 01:26:54,990 --> 01:26:58,340 >> JOSEPH Nevladna organizacija: Torej, zunaj katerega funkcija? 1726 01:26:58,340 --> 01:27:00,810 Torej bom tisti, ki v samo sekundo. 1727 01:27:00,810 --> 01:27:02,580 Zato pravimo foo (i). 1728 01:27:02,580 --> 01:27:06,920 Ta prehaja I na foo, prirastke jo, nato pa ga prijavi. 1729 01:27:06,920 --> 01:27:07,750 Tako je bilo 5. 1730 01:27:07,750 --> 01:27:09,210 Tako postane 6. 1731 01:27:09,210 --> 01:27:11,670 Ampak, kaj sem govoril o je da sem v tej funkciji. 1732 01:27:11,670 --> 01:27:14,430 Ker je parameter, to je zasnovan z mislijo na to funkcijo. 1733 01:27:14,430 --> 01:27:17,800 Torej, ko sem dejansko ven, da funkcijo, to je zdaj šel 1734 01:27:17,800 --> 01:27:19,860 nazaj na staro i. 1735 01:27:19,860 --> 01:27:23,000 To i je zajeta samo zato, ker to je v funkciji. 1736 01:27:23,000 --> 01:27:24,200 In imamo možnosti in funkcije. 1737 01:27:24,200 --> 01:27:29,080 Ampak nimamo možnosti zunaj funkcij v JavaScript. 1738 01:27:29,080 --> 01:27:31,170 Ali to smiselno? 1739 01:27:31,170 --> 01:27:31,320 Da. 1740 01:27:31,320 --> 01:27:31,660 Vprašanje. 1741 01:27:31,660 --> 01:27:34,030 >> PUBLIKA: Same [neslišno]? 1742 01:27:34,030 --> 01:27:34,500 >> JOSEPH Nevladna organizacija: Torej, ja. 1743 01:27:34,500 --> 01:27:36,260 V PHP, to je ista vrsta stvari. 1744 01:27:36,260 --> 01:27:37,680 Tam je rahlo subtilnost pravzaprav. 1745 01:27:37,680 --> 01:27:40,130 Lahko pa me vprašajo da je po pregledu. 1746 01:27:40,130 --> 01:27:43,930 Ne boste res potrebujejo vedeti da subtilnost za kviz. 1747 01:27:43,930 --> 01:27:47,600 Za vse namene, kot so spremenljivke, globalno in PHP, razen če 1748 01:27:47,600 --> 01:27:49,150 oni so v funkciji, enako stvar v JavaScript. 1749 01:27:49,150 --> 01:27:49,480 Da. 1750 01:27:49,480 --> 01:27:52,890 >> PUBLIKA: Zakaj je to dovoljeno v JavaScript in ne kje drugje? 1751 01:27:52,890 --> 01:27:55,010 >> JOSEPH Nevladna organizacija: Torej, zakaj je dovoljeno v JavaScript in ne v C? 1752 01:27:55,010 --> 01:27:58,180 To je samo, kdo je prišel gor s JavaScript je odločilo, da je to v redu, v 1753 01:27:58,180 --> 01:27:59,510 JavaScript. 1754 01:27:59,510 --> 01:28:02,430 Torej, to je tako kot v programskem jeziku Konvencija, kot bi rekli. 1755 01:28:02,430 --> 01:28:02,580 Da. 1756 01:28:02,580 --> 01:28:04,480 >> PUBLIKA: Torej, zakaj si gre 6-5? 1757 01:28:04,480 --> 01:28:08,280 >> JOSEPH Nevladna organizacija: Torej je šlo 6-5, ker ko sem sem opravil v foo, da 1758 01:28:08,280 --> 01:28:13,420 i znotraj foo je zdaj zajeta na foo, ker obstaja obseg funkcij v 1759 01:28:13,420 --> 01:28:15,050 JavaScript. 1760 01:28:15,050 --> 01:28:18,720 Ampak, ko pridem ven od tu, ker je je bil zasnovan z mislijo na funkcijo, sem samo 1761 01:28:18,720 --> 01:28:24,300 uporabljate redno sem, da je v notranjosti Preostanek nadzor pretoka. 1762 01:28:24,300 --> 01:28:25,210 Smisla? 1763 01:28:25,210 --> 01:28:26,910 Lahko grem naprej? 1764 01:28:26,910 --> 01:28:27,320 Vse je v redu. 1765 01:28:27,320 --> 01:28:29,180 Cool. 1766 01:28:29,180 --> 01:28:31,890 >> Sprejetje tega je predmetov so posredovani z referenco. 1767 01:28:31,890 --> 01:28:33,990 Saj veš, kako, ko se boste peljali matrika v C, da bi lahko 1768 01:28:33,990 --> 01:28:35,810 dejansko spremeniti niz? 1769 01:28:35,810 --> 01:28:37,350 To je ista stvar v JavaScript. 1770 01:28:37,350 --> 01:28:42,960 Če grem mimo predmet, v tem primeru, sem opravili Milo v tej funkciji catify. 1771 01:28:42,960 --> 01:28:44,490 Milo začne ven. 1772 01:28:44,490 --> 01:28:46,310 Njegovo ime je Milo Banana. 1773 01:28:46,310 --> 01:28:51,670 Sem mimo tega predmeta v funkciji ker je objekt, asociativna 1774 01:28:51,670 --> 01:28:53,730 matrika v JavaScript. 1775 01:28:53,730 --> 01:28:57,110 >> Ko sem izvesti operacijo v tej funkciji, pa bo 1776 01:28:57,110 --> 01:28:58,560 dejansko pretvorbo predmeta. 1777 01:28:58,560 --> 01:29:01,720 Tako da se bo to zgodilo le za objekte v JavaScript, tako kot se to zgodi 1778 01:29:01,720 --> 01:29:09,230 Za nizi znotraj imena C. Torej Milo bo dejansko postala mačka zdaj. 1779 01:29:09,230 --> 01:29:10,090 Ali to smiselno? 1780 01:29:10,090 --> 01:29:11,840 Torej, to deluje samo za predmete. 1781 01:29:11,840 --> 01:29:13,090 Predmeti so opravili s sklicevanjem. 1782 01:29:13,090 --> 01:29:13,400 Da. 1783 01:29:13,400 --> 01:29:16,850 >> PUBLIKA: Praviš, da v nasprotju s spremenljivo i. 1784 01:29:16,850 --> 01:29:17,240 >> JOSEPH Nevladna organizacija: Ja. 1785 01:29:17,240 --> 01:29:20,330 Spremenljivka, ki sem bil samo številko, kajne? 1786 01:29:20,330 --> 01:29:25,280 To je kot v C, ko se boste peljali celoštevilčnemu, da naredi kopijo. 1787 01:29:25,280 --> 01:29:28,130 In ko se boste peljali niz, dejansko spremembe dejansko matriko 1788 01:29:28,130 --> 01:29:32,870 C. Enako se zgodi z JavaScript v tem primeru. 1789 01:29:32,870 --> 01:29:34,070 Vse je v redu. 1790 01:29:34,070 --> 01:29:38,134 In naslednje, Milo je žalostna, ker on je zdaj mačka. 1791 01:29:38,134 --> 01:29:40,790 1792 01:29:40,790 --> 01:29:45,060 To je bilo pravzaprav Milo po nekateri izlet k veterinarju. 1793 01:29:45,060 --> 01:29:46,860 >> Torej, kako bomo uporabili JavaScript na spletni strani? 1794 01:29:46,860 --> 01:29:47,790 Jih bomo lahko vključili. 1795 01:29:47,790 --> 01:29:50,090 To je HTML kodo, s traku oznak. 1796 01:29:50,090 --> 01:29:51,300 Torej imam strip oznake tam. 1797 01:29:51,300 --> 01:29:54,820 In potem sem dal nekaj JavaScript Koda v scenariju oznake. 1798 01:29:54,820 --> 01:29:56,390 In potem se izvaja ta. 1799 01:29:56,390 --> 01:29:58,830 Ko sem to naredil tako, da je imenujemo inline JavaScript. 1800 01:29:58,830 --> 01:30:02,400 To je nekako grdo, saj JavaScript je pravzaprav v HTML. 1801 01:30:02,400 --> 01:30:07,010 >> Boljši način za to, veliko lepše, je, da napišete JavaScript v 1802 01:30:07,010 --> 01:30:10,920 zunanjo datoteko in nato zagotoviti script tag z virom. 1803 01:30:10,920 --> 01:30:14,920 In to bo šel do te datoteke JavaScript in preberite JavaScript kodo od 1804 01:30:14,920 --> 01:30:15,960 Namesto, da datoteko. 1805 01:30:15,960 --> 01:30:18,820 In na ta način ne boste imeli veliko JavaScript na začetku vašega 1806 01:30:18,820 --> 01:30:20,760 HTML datoteka, ki omogoča res grdo. 1807 01:30:20,760 --> 01:30:21,860 Pravkar ste jo dali kam drugam. 1808 01:30:21,860 --> 01:30:24,310 In potem bo to prebral od tam. 1809 01:30:24,310 --> 01:30:25,560 Ali je to smiselno? 1810 01:30:25,560 --> 01:30:27,990 1811 01:30:27,990 --> 01:30:29,640 >> Zadeve umestitev. 1812 01:30:29,640 --> 01:30:32,620 V tem konkretnem primeru Scenarij je pred telesom. 1813 01:30:32,620 --> 01:30:36,090 Torej, ko sem izvršiti, da obstaja nič v telesu še ni. 1814 01:30:36,090 --> 01:30:39,920 Mogoče bo to malo bolj občutek, ko sem mu pokazati to naslednji del. 1815 01:30:39,920 --> 01:30:43,210 V tem primeru, skript prihaja po div. 1816 01:30:43,210 --> 01:30:46,620 Tako dejansko zdi div na strani prvi. 1817 01:30:46,620 --> 01:30:49,470 Tukaj v tej mali rdeči krog, vidite prikaže besedilo. 1818 01:30:49,470 --> 01:30:51,810 In potem se pojavi opozorilo. 1819 01:30:51,810 --> 01:30:54,890 >> V prvem primeru, ker skript je bil pred div, 1820 01:30:54,890 --> 01:30:56,170 opozorilo pojavi prvi. 1821 01:30:56,170 --> 01:30:59,250 In potem div pojavi po opustite potrditveno polje. 1822 01:30:59,250 --> 01:31:01,330 Torej izvedba zadevah. 1823 01:31:01,330 --> 01:31:02,290 Tako da bomo to v mislih. 1824 01:31:02,290 --> 01:31:03,640 To bo pomembno v malo. 1825 01:31:03,640 --> 01:31:08,730 1826 01:31:08,730 --> 01:31:09,540 OK. 1827 01:31:09,540 --> 01:31:12,750 Tako dobro, kako si počakajte Celotna stran je naložen nato pred vami 1828 01:31:12,750 --> 01:31:13,580 izvršiti neko kodo? 1829 01:31:13,580 --> 01:31:15,540 Bomo dobili v to malo malce kasneje preveč. 1830 01:31:15,540 --> 01:31:19,016 Ampak šele obdržati to umestitev zadevah v mislih, ko smo za 1831 01:31:19,016 --> 01:31:20,570 prišel na drug diapozitiv. 1832 01:31:20,570 --> 01:31:22,030 >> Tako smo prišli do DOM zdaj. 1833 01:31:22,030 --> 01:31:23,550 In kaj je DOM? 1834 01:31:23,550 --> 01:31:26,830 Torej, če pogledaš na HTML kodo, to je samo kup besedila na zaslonu. 1835 01:31:26,830 --> 01:31:30,560 Torej, kako veš, da je JavaScript to je HTML element? 1836 01:31:30,560 --> 01:31:33,410 Torej moramo imeti nekaj pomnilnika predstavitev tega 1837 01:31:33,410 --> 01:31:34,930 struktura, ki jo imamo. 1838 01:31:34,930 --> 01:31:40,240 In vsakič, ko imamo to v spomin zastopanje v JavaScript, pravimo 1839 01:31:40,240 --> 01:31:41,750 ki DOM. 1840 01:31:41,750 --> 01:31:45,130 In to je samo način, da se ljudje odločili, da bi morali to pomenilo 1841 01:31:45,130 --> 01:31:46,400 HTML struktura. 1842 01:31:46,400 --> 01:31:47,940 >> In kaj to DOM izgledal? 1843 01:31:47,940 --> 01:31:50,460 No, v reprezentacije spomina, vzamemo to besedilo. 1844 01:31:50,460 --> 01:31:52,870 In smo ga spremenili v spomin zastopanje. 1845 01:31:52,870 --> 01:31:54,400 Torej je to HTML. 1846 01:31:54,400 --> 01:31:58,090 Tako smo prvič izvedeli, da je vsak DOM drevo ima dokument. 1847 01:31:58,090 --> 01:31:59,400 Videti je kot drevo. 1848 01:31:59,400 --> 01:32:03,550 In dokument vsebuje HTML tag, pravzaprav vse, kar je 1849 01:32:03,550 --> 01:32:05,150 Notranjost tem. 1850 01:32:05,150 --> 01:32:06,970 HTML tag ima dva otroka. 1851 01:32:06,970 --> 01:32:08,630 Ima glavo. 1852 01:32:08,630 --> 01:32:12,380 Da glava, če pogledaš na zarezo tam, kako je strukturirana 1853 01:32:12,380 --> 01:32:14,960 med tesnimi oznake, glava ima otroka. 1854 01:32:14,960 --> 01:32:17,130 Otrok je naslov. 1855 01:32:17,130 --> 01:32:18,370 Točno tako. 1856 01:32:18,370 --> 01:32:21,000 >> Zdaj imamo telo otroka. 1857 01:32:21,000 --> 01:32:24,870 In potem, da ima telo Otrok se imenuje družina. 1858 01:32:24,870 --> 01:32:27,950 In da družina ima tri otroke - 1859 01:32:27,950 --> 01:32:29,550 Najstarejši, srednji in najmlajši. 1860 01:32:29,550 --> 01:32:31,960 Torej bi morali vedeti, kako pripraviti diagram kot je ta, ko smo vas vprašali, kako 1861 01:32:31,960 --> 01:32:34,270 narisati diagram, ko smo dali ste HTML na levi strani. 1862 01:32:34,270 --> 01:32:36,350 Vedo, kako proizvajati DOM drevo. 1863 01:32:36,350 --> 01:32:38,930 In znotraj teh stvareh, pa je samo nekaj besedila, ki sem jih zastopa 1864 01:32:38,930 --> 01:32:40,180 kot majhne škatle. 1865 01:32:40,180 --> 01:32:42,750 1866 01:32:42,750 --> 01:32:47,980 >> Ali to DOM drevo struktura se smisel in kaj je DOM? 1867 01:32:47,980 --> 01:32:49,300 Torej, kaj p stati? 1868 01:32:49,300 --> 01:32:51,850 Tukaj, p tam s tem, da oznake predstavljajo 1869 01:32:51,850 --> 01:32:54,510 odstavek tag v HTML. 1870 01:32:54,510 --> 01:32:57,080 Tako da lahko pogledate. 1871 01:32:57,080 --> 01:32:59,290 Ampak to samo pomeni, da je nekaj prostor za nekaj besedila. 1872 01:32:59,290 --> 01:33:02,910 In to je nekaj privzeto CSS styling, ker je točka tag. 1873 01:33:02,910 --> 01:33:05,130 Ampak res ne skrbi, ta del preveč. 1874 01:33:05,130 --> 01:33:07,510 Samo vem, da je ograda nekaj besedila. 1875 01:33:07,510 --> 01:33:08,480 Da. 1876 01:33:08,480 --> 01:33:10,200 Vprašanje? 1877 01:33:10,200 --> 01:33:11,021 Da. 1878 01:33:11,021 --> 01:33:12,374 >> PUBLIKA: Pravkar ste omenili CSS. 1879 01:33:12,374 --> 01:33:15,492 Družina in hash hash vse to je v bistvu 1880 01:33:15,492 --> 01:33:17,400 predstavlja ID v CSS? 1881 01:33:17,400 --> 01:33:18,440 >> JOSEPH Nevladna organizacija: Ja, točno. 1882 01:33:18,440 --> 01:33:20,380 Jaz bom to, kar ti hash pomeni v sekundi. 1883 01:33:20,380 --> 01:33:23,480 Ko je Angela šel čez CSS, je govoril o CSS selektorje. 1884 01:33:23,480 --> 01:33:26,770 To so CSS selektorji, ki je govorila o tem. 1885 01:33:26,770 --> 01:33:28,268 Ja, Rob? 1886 01:33:28,268 --> 01:33:32,060 >> ROB Bowden: Jaz bi tudi komentar ki DOM znotraj tag naslov 1887 01:33:32,060 --> 01:33:35,385 je tudi besedilo vozlišče. 1888 01:33:35,385 --> 01:33:36,070 >> JOSEPH Nevladna organizacija: Right. 1889 01:33:36,070 --> 01:33:38,370 Tako znotraj naslovu tag, Imam nekaj besedila DOM. 1890 01:33:38,370 --> 01:33:42,730 Torej res, bi moral ta naziv imajo podobno Malo polje, ki prihajajo izven nje, kot dobro. 1891 01:33:42,730 --> 01:33:45,740 Vendar pa to ni važno preveč v tem primeru. 1892 01:33:45,740 --> 01:33:49,620 Mi res ne skrbi besedilnih vozlišč, kot jim pravimo, preveč. 1893 01:33:49,620 --> 01:33:50,270 OK, bomo naredili. 1894 01:33:50,270 --> 01:33:51,520 Očitno imamo. 1895 01:33:51,520 --> 01:33:54,260 1896 01:33:54,260 --> 01:33:57,100 In bom popraviti, da ko Spet sem jo naložite. 1897 01:33:57,100 --> 01:33:59,830 Ali to smiselno? 1898 01:33:59,830 --> 01:34:01,160 >> Torej, kako bomo delo s DOM? 1899 01:34:01,160 --> 01:34:03,790 Vsakič, ko se ukvarjajo z DOM v JavaScript, obstajata dva koraka. 1900 01:34:03,790 --> 01:34:05,030 Izberete DOM element. 1901 01:34:05,030 --> 01:34:06,580 In potem se stvari z njo. 1902 01:34:06,580 --> 01:34:11,480 Torej, v tem primeru, abstraktno, sem izbran srednji element. 1903 01:34:11,480 --> 01:34:14,530 In potem primer počne stvari z njim bi spremenili besedilo. 1904 01:34:14,530 --> 01:34:16,020 , Ki se uporablja, da bi Bob. 1905 01:34:16,020 --> 01:34:19,930 Zdaj, kaj sem naredil z njim sem spremenila Bob Milu v tem primeru. 1906 01:34:19,930 --> 01:34:22,130 >> Torej, kako bomo to dejansko storili? 1907 01:34:22,130 --> 01:34:23,440 Kako narediti selekcijo? 1908 01:34:23,440 --> 01:34:26,560 In kako naj počne stvari, stvar, ko smo ga sprejeli? 1909 01:34:26,560 --> 01:34:30,470 No, tako fantje so se ga naučili V tem razredu je s pomočjo nekaj, kar smo 1910 01:34:30,470 --> 01:34:32,420 imenovano jQuery. 1911 01:34:32,420 --> 01:34:33,910 Torej, kaj je jQuery? 1912 01:34:33,910 --> 01:34:37,220 jQuery je knjižnica, ki omogoča JavaScript lažje pisati. 1913 01:34:37,220 --> 01:34:39,500 Torej je nekdo vzel čas in napisal jQuery. 1914 01:34:39,500 --> 01:34:41,530 >> jQuery je dejansko napisal v JavaScript. 1915 01:34:41,530 --> 01:34:44,550 In potem, ker so to naredili, smo zdaj imajo cel kup funkcij, ki 1916 01:34:44,550 --> 01:34:46,020 lahko uporabimo, da bo naša Živi zelo enostavno. 1917 01:34:46,020 --> 01:34:48,580 1918 01:34:48,580 --> 01:34:50,030 Torej, kaj so nekateri stvari, kajne? 1919 01:34:50,030 --> 01:34:51,650 To omogoča, da izberete elemente lažje. 1920 01:34:51,650 --> 01:34:54,020 To omogoča spreminjanje HTML, dodajanje razrede lažje. 1921 01:34:54,020 --> 01:34:55,360 To omogoča Ajax lažje. 1922 01:34:55,360 --> 01:34:58,230 Bomo prišli do, da v sekundi. 1923 01:34:58,230 --> 01:35:00,630 >> In to je analogen knjižnice C. 1924 01:35:00,630 --> 01:35:03,090 Tako da vključujejo string.h, boste dobili strlen. 1925 01:35:03,090 --> 01:35:04,680 Dobiš strcpy, vse te stvari. 1926 01:35:04,680 --> 01:35:09,650 Ko boste vključili jQuery, dobiš lepo načinov, da izberete elemente sprememb 1927 01:35:09,650 --> 01:35:10,390 Stvari, et cetera. 1928 01:35:10,390 --> 01:35:12,990 Boste dobili dodatne funkcionalnosti, ki JavaScript ti ne daje. 1929 01:35:12,990 --> 01:35:15,310 Torej jQuery ni JavaScript. 1930 01:35:15,310 --> 01:35:18,660 jQuery je knjižnica, ki je napisana v JavaScript, ki omogoča JavaScript 1931 01:35:18,660 --> 01:35:20,440 lažje pisati. 1932 01:35:20,440 --> 01:35:23,170 >> Torej jQuery ni programiranje jezik. 1933 01:35:23,170 --> 01:35:24,540 Vendar JavaScript. 1934 01:35:24,540 --> 01:35:27,420 1935 01:35:27,420 --> 01:35:27,590 narediti. 1936 01:35:27,590 --> 01:35:30,420 Da boste dobili svojo terminologijo prav. 1937 01:35:30,420 --> 01:35:32,490 Vsa vprašanja? 1938 01:35:32,490 --> 01:35:33,882 Da. 1939 01:35:33,882 --> 01:35:35,132 Je to vprašanje? 1940 01:35:35,132 --> 01:35:37,910 1941 01:35:37,910 --> 01:35:38,350 Vse je v redu. 1942 01:35:38,350 --> 01:35:40,080 Torej, kako boste uporabili jQuery? 1943 01:35:40,080 --> 01:35:42,390 No, ko si pisal nekaj JavaScript kodo in ti vključujejo 1944 01:35:42,390 --> 01:35:45,570 jQuery na vrhu datoteke, kot je skript datoteko, uporabite znak za dolar 1945 01:35:45,570 --> 01:35:47,310 zdaj, da bi dobili dostop do jQuery. 1946 01:35:47,310 --> 01:35:49,860 In to je drugačen od znak za dolar v PHP. 1947 01:35:49,860 --> 01:35:51,590 >> To je ti isti simbol tip na tipkovnici. 1948 01:35:51,590 --> 01:35:52,780 Vendar pa pomeni zelo različne stvari. 1949 01:35:52,780 --> 01:35:56,090 Znak za dolar v PHP pomeni to je, kako Izjavljam spremenljivko. 1950 01:35:56,090 --> 01:35:59,120 V JavaScript, če ste vključeni jQuery, se zavzema za jQuery. 1951 01:35:59,120 --> 01:36:01,280 Tako da se vodijo v mislih. 1952 01:36:01,280 --> 01:36:03,420 Torej, kako bi lahko izberete DOM elemente? 1953 01:36:03,420 --> 01:36:06,500 No, ko si to naredil grd JavaScript Tako lahko dostopate 1954 01:36:06,500 --> 01:36:08,240 dokumentirati globalno spremenljivko. 1955 01:36:08,240 --> 01:36:11,170 In potem dobiš element s šifri družino. 1956 01:36:11,170 --> 01:36:15,270 To je res dolga in besedna in ni lepo. 1957 01:36:15,270 --> 01:36:18,190 >> Ali lahko dobite vse elemente da so p tag. 1958 01:36:18,190 --> 01:36:20,080 To deluje tudi v JavaScript. 1959 01:36:20,080 --> 01:36:22,470 Ampak mi nikoli ni zares pokazala, vam sintaksa preveč. 1960 01:36:22,470 --> 01:36:24,620 Kaj smo pokazali, da si jQuery. 1961 01:36:24,620 --> 01:36:28,720 Tako da celoten selektor tam, da Izražena je bila v JavaScript šele pride 1962 01:36:28,720 --> 01:36:33,320 kondenzira na to zelo lepo dolarja podpisati hashtag družino. 1963 01:36:33,320 --> 01:36:38,480 In $ p, točno tam, kjer je to všeč. 1964 01:36:38,480 --> 01:36:41,690 Če želite izbrati vse p oznake znotraj družine, smo dal prostor 1965 01:36:41,690 --> 01:36:42,890 med njima. 1966 01:36:42,890 --> 01:36:44,815 In zdaj smo dobili vse p tags znotraj družine. 1967 01:36:44,815 --> 01:36:48,740 1968 01:36:48,740 --> 01:36:50,380 >> In kaj znano? 1969 01:36:50,380 --> 01:36:52,880 No, Angela govoril o CSS selektorji. 1970 01:36:52,880 --> 01:36:54,200 Daj mi trenutek. 1971 01:36:54,200 --> 01:36:57,230 In tako, da izberete element, samo uporabite isto stvar kot ti 1972 01:36:57,230 --> 01:36:58,530 bi naredil s selektorjem CSS. 1973 01:36:58,530 --> 01:37:00,910 Če si dal hash spredaj za to, da izbere po ID. 1974 01:37:00,910 --> 01:37:02,220 Dot izbere po razredih. 1975 01:37:02,220 --> 01:37:06,230 Če imate le stvar brez hash ali pike, da izbere tiste oznake. 1976 01:37:06,230 --> 01:37:07,140 Vprašanja. 1977 01:37:07,140 --> 01:37:07,470 Ja? 1978 01:37:07,470 --> 01:37:11,510 >> PUBLIKA: Ko smo uporabili piko v naši HTML, je, da ni jQuery? 1979 01:37:11,510 --> 01:37:13,520 >> JOSEPH Nevladna organizacija: Dot v našem HTML je JavaScript stvar. 1980 01:37:13,520 --> 01:37:14,750 To ni jQuery stvar. 1981 01:37:14,750 --> 01:37:17,620 Tako vi ga naučili z jQuery je, da uporabite. html. 1982 01:37:17,620 --> 01:37:21,510 In potem si ga opravili kar HTML se bo. 1983 01:37:21,510 --> 01:37:23,480 Torej bom dobil na to v samo drugi dejansko. 1984 01:37:23,480 --> 01:37:27,800 Torej, kako naj naredimo stvari na elementu ko smo ga izbrali? 1985 01:37:27,800 --> 01:37:30,130 Tako da je primer izberete element. 1986 01:37:30,130 --> 01:37:32,280 Torej, zdaj smo želeli narediti stvari z njo. 1987 01:37:32,280 --> 01:37:35,730 >> Torej, v tem primeru, naj gredo nazaj na prejšnji diapozitiv. 1988 01:37:35,730 --> 01:37:37,360 , Preden je bil Bob. 1989 01:37:37,360 --> 01:37:40,660 In želim to spremeniti znotraj HTML Milu. 1990 01:37:40,660 --> 01:37:43,240 Zato sem poklical funkcijo HTML iz elementa. 1991 01:37:43,240 --> 01:37:45,580 Ta funkcija HTML je Uporaba elementa. 1992 01:37:45,580 --> 01:37:47,430 In potem sem dal to, kar Želim HTML biti. 1993 01:37:47,430 --> 01:37:50,560 In to samo nadomešča tisto, kar je znotraj da tag z vsem, kar sem dal to. 1994 01:37:50,560 --> 01:37:50,830 Da. 1995 01:37:50,830 --> 01:37:51,170 Vprašanje? 1996 01:37:51,170 --> 01:37:57,397 >> PUBLIKA: se uporablja hashtag samo jQuery. 1997 01:37:57,397 --> 01:37:59,313 [Neslišno] 1998 01:37:59,313 --> 01:38:01,230 ne bomo uporabili. 1999 01:38:01,230 --> 01:38:01,960 >> JOSEPH Nevladna organizacija: Ja, točno. 2000 01:38:01,960 --> 01:38:03,750 Ampak ne skrbite preveč o čisti JavaScript. 2001 01:38:03,750 --> 01:38:06,670 Želim vama, da se osredotoči na to, kako bi to naredil s jQuery, saj 2002 01:38:06,670 --> 01:38:10,020 da se dogaja, da se pomembne del na kvizu. 2003 01:38:10,020 --> 01:38:10,400 Prav. 2004 01:38:10,400 --> 01:38:10,880 Točno tako. 2005 01:38:10,880 --> 01:38:16,025 Torej vidite, da je hashtag, tako da ustreza izbiro elementa z 2006 01:38:16,025 --> 01:38:18,310 ID srednji zaradi tega hashtag. 2007 01:38:18,310 --> 01:38:19,670 Hashtag pomeni identifikacijo. 2008 01:38:19,670 --> 01:38:22,870 In ta element ima ID sredini. 2009 01:38:22,870 --> 01:38:24,366 Tako da je element smo izbrali. 2010 01:38:24,366 --> 01:38:27,160 >> PUBLIKA: [neslišno]. 2011 01:38:27,160 --> 01:38:31,090 znak za dolar hashtag [neslišno]? 2012 01:38:31,090 --> 01:38:31,710 >> JOSEPH Nevladna organizacija: Torej, ne. 2013 01:38:31,710 --> 01:38:33,280 Vprašanje je, ali lahko uporabljate. Vrednost. 2014 01:38:33,280 --> 01:38:36,445 In. Vrednost deluje le na elementih da so vložki. 2015 01:38:36,445 --> 01:38:40,950 2016 01:38:40,950 --> 01:38:45,495 V jQuery, bi bilo . Val, ne. Vrednost. 2017 01:38:45,495 --> 01:38:49,080 Torej bom na majhen primer, da kaže vse to v kombinaciji 2018 01:38:49,080 --> 01:38:49,850 v sekundi. 2019 01:38:49,850 --> 01:38:53,130 Ampak mislim, da to služi malo košček Smiselno je, da ljudje tako daleč. 2020 01:38:53,130 --> 01:38:55,450 Želite spremeniti HTML, klic metode HTML. 2021 01:38:55,450 --> 01:38:56,432 Da. 2022 01:38:56,432 --> 01:38:58,200 >> PUBLIKA: Ali lahko pojasnite, Ponovno metoda? 2023 01:38:58,200 --> 01:39:01,900 >> JOSEPH Nevladna organizacija: Tako metoda je samo funkcijo, ki pripada enemu, v tem 2024 01:39:01,900 --> 01:39:04,590 primera, eden od teh elementov DOM, saj vidiš, da 2025 01:39:04,590 --> 01:39:05,940 Izbrali prvi element. 2026 01:39:05,940 --> 01:39:07,320 Pravzaprav, dovolite mi, uporabite miško. 2027 01:39:07,320 --> 01:39:09,330 Izbral sem element prvi. 2028 01:39:09,330 --> 01:39:12,310 In potem sem poklical to HTML delovanje, ki je imela. 2029 01:39:12,310 --> 01:39:15,710 In ker ta funkcija pripada ta stvar, pravimo, da metoda. 2030 01:39:15,710 --> 01:39:19,480 To je samo fancy ime za to. 2031 01:39:19,480 --> 01:39:20,730 Ponovi. 2032 01:39:20,730 --> 01:39:22,880 2033 01:39:22,880 --> 01:39:25,170 Torej, se spomnite, smo izbrali element sedaj. 2034 01:39:25,170 --> 01:39:27,810 In smo jo dali v notranjosti spremenljivi element. 2035 01:39:27,810 --> 01:39:28,600 Popraviti? 2036 01:39:28,600 --> 01:39:34,380 >> Torej, če želimo spremeniti HTML na notranjosti, saj je bil Bob prej, 2037 01:39:34,380 --> 01:39:36,420 želite spremeniti to besedilo Milu. 2038 01:39:36,420 --> 01:39:37,920 Zato pravimo HTML. 2039 01:39:37,920 --> 01:39:41,610 In mi je povedal, kaj HTML notranjosti ta element moral biti zdaj. 2040 01:39:41,610 --> 01:39:44,107 , In ga tako spremeni v Milo, ker sem dal to Milo. 2041 01:39:44,107 --> 01:39:46,542 >> PUBLIKA: Torej, oni skupaj. 2042 01:39:46,542 --> 01:39:47,030 [Neslišno] 2043 01:39:47,030 --> 01:39:47,390 >> JOSEPH Nevladna organizacija: Ja, ja. 2044 01:39:47,390 --> 01:39:48,180 Oni sodelujejo. 2045 01:39:48,180 --> 01:39:50,210 Tako je eden od njiju izbere prvi element. 2046 01:39:50,210 --> 01:39:52,863 , V drugem pa ne kaj z njo. 2047 01:39:52,863 --> 01:39:53,790 Da. 2048 01:39:53,790 --> 01:39:56,168 >> PUBLIKA: [neslišno]. 2049 01:39:56,168 --> 01:40:01,280 Če ta način se razlikuje od HTML imate metodo enako dejansko. 2050 01:40:01,280 --> 01:40:01,560 >> JOSEPH Nevladna organizacija: Ja. 2051 01:40:01,560 --> 01:40:03,370 To je drugačen način. 2052 01:40:03,370 --> 01:40:04,670 To je drugačen način. 2053 01:40:04,670 --> 01:40:07,860 In bomo lahko zajema, da v samo sekundo ko pridemo v primer. 2054 01:40:07,860 --> 01:40:12,000 Želim zagotoviti, da bomo pospešili ker nam zmanjkuje časa. 2055 01:40:12,000 --> 01:40:15,360 Ampak smo teči pot skozi čas zdaj. 2056 01:40:15,360 --> 01:40:15,490 OK. 2057 01:40:15,490 --> 01:40:16,430 Cool. 2058 01:40:16,430 --> 01:40:20,130 Torej, če želite dodati razred, tam tudi metodo add razred. 2059 01:40:20,130 --> 01:40:24,300 To je samo primer, kaj lahko to storite s jQuery. 2060 01:40:24,300 --> 01:40:25,950 To samo dodaja razred. 2061 01:40:25,950 --> 01:40:28,660 >> Če želite, da ga odstranite, lahko pokličete remove. 2062 01:40:28,660 --> 01:40:32,280 To je samo še ena stvar, ki jo lahko narediš. 2063 01:40:32,280 --> 01:40:35,680 Torej več primerov stvari, ki jih lahko storite. 2064 01:40:35,680 --> 01:40:37,510 Torej sem ga dal na top, kot je ta? 2065 01:40:37,510 --> 01:40:38,760 Najmlajši odstrani. 2066 01:40:38,760 --> 01:40:42,470 2067 01:40:42,470 --> 01:40:45,930 Če sem samo izvršitev te JavaScript v top moje datoteke, bo to delovalo? 2068 01:40:45,930 --> 01:40:48,540 2069 01:40:48,540 --> 01:40:48,920 Prav. 2070 01:40:48,920 --> 01:40:50,530 Ker pa srednji še ne obstaja. 2071 01:40:50,530 --> 01:40:51,840 Tako da to ne bo delovalo. 2072 01:40:51,840 --> 01:40:52,800 Izvrševanja naročil. 2073 01:40:52,800 --> 01:40:55,040 Jasno je, da na vrhu prve. 2074 01:40:55,040 --> 01:40:55,540 Kaj? 2075 01:40:55,540 --> 01:40:57,450 >> PUBLIKA: Najmlajši še ne obstaja? 2076 01:40:57,450 --> 01:40:57,810 >> JOSEPH Nevladna organizacija: Ja. 2077 01:40:57,810 --> 01:40:58,710 Najmlajša še ne obstaja. 2078 01:40:58,710 --> 01:40:59,600 Točno tako. 2079 01:40:59,600 --> 01:41:01,320 >> PUBLIKA: Rekli ste, srednji. 2080 01:41:01,320 --> 01:41:01,510 >> JOSEPH Nevladna organizacija: Žal mi je. 2081 01:41:01,510 --> 01:41:02,720 Najmlajša še ne obstaja. 2082 01:41:02,720 --> 01:41:04,510 In druga stvar, ki je nisem vključevala jQuery 2083 01:41:04,510 --> 01:41:06,580 datoteko vprašati scenarij src. 2084 01:41:06,580 --> 01:41:07,960 Tako, da to ne bo delovalo. 2085 01:41:07,960 --> 01:41:09,580 Pravzaprav nisem storil, da je v Naslednja slika, ki je 2086 01:41:09,580 --> 01:41:10,700 naj se določi, da bodisi. 2087 01:41:10,700 --> 01:41:14,120 Ampak način, kako to storiti, je JavaScript je ob dogodku. 2088 01:41:14,120 --> 01:41:17,410 Torej, kaj moramo storiti, je, ki jih uporabljamo dogodek Handler, da bi se to zgodilo. 2089 01:41:17,410 --> 01:41:19,510 In tako sem izberite dokument nastaviti prvi. 2090 01:41:19,510 --> 01:41:23,810 Sem rekel, v redu, če je dokument pripravljeni, mi zagnati funkcijo. 2091 01:41:23,810 --> 01:41:25,470 Tako, da je vse, kar sintaksa sredstva. 2092 01:41:25,470 --> 01:41:27,100 >> Izbral sem dokument. 2093 01:41:27,100 --> 01:41:29,530 Zdaj, ko je dokument pripravljena zagnati funkcijo. 2094 01:41:29,530 --> 01:41:32,970 In tako sem, ko je dokument pripravljeni, kar pomeni, da vse HTML je 2095 01:41:32,970 --> 01:41:36,140 obremenjeno, potem pa sem zagnati funkcijo da odstrani ta element. 2096 01:41:36,140 --> 01:41:40,270 In zdaj, ko sem teči to funkcijo da sem opravil v pripravljen sem 2097 01:41:40,270 --> 01:41:43,780 zagotovljeno, da so vsi HTML na Stran se bo najprej obstajati. 2098 01:41:43,780 --> 01:41:44,100 Da. 2099 01:41:44,100 --> 01:41:44,425 Vprašanje? 2100 01:41:44,425 --> 01:41:48,200 >> PUBLIKA: Kaj je dogodek ključno besedo v funkciji? 2101 01:41:48,200 --> 01:41:51,750 >> JOSEPH Nevladna organizacija: Tako, da dogodek ključna beseda v Funkcija je samo parameter, ki 2102 01:41:51,750 --> 01:41:53,490 gets opravili s funkcijo za vsak dogodek. 2103 01:41:53,490 --> 01:41:55,470 To je samo nekaj, kar dobite brezplačno. 2104 01:41:55,470 --> 01:41:59,320 Ko uporabljate ključne trener v pset8, bi lahko ta dogodek vam povem, za 2105 01:41:59,320 --> 01:42:01,350 Primer, ki ste pritisnili tipko za naprej. 2106 01:42:01,350 --> 01:42:05,540 V tem primeru se za pripravljeno primeru to je pravzaprav ni zelo koristno. 2107 01:42:05,540 --> 01:42:08,640 Toda za ključni dogodek navzdol, to je bolj koristna, saj boste spoznali, ki 2108 01:42:08,640 --> 01:42:12,330 Ključne ste pritisnili tipko z dostopom Koda off to dogodkovnega objekta. 2109 01:42:12,330 --> 01:42:13,530 Popraviti? 2110 01:42:13,530 --> 01:42:15,160 Ali to smiselno? 2111 01:42:15,160 --> 01:42:16,280 OK. 2112 01:42:16,280 --> 01:42:16,580 Da. 2113 01:42:16,580 --> 01:42:17,150 Vprašanje? 2114 01:42:17,150 --> 01:42:19,290 >> PUBLIKA: Torej lahko daš script tag nižje? 2115 01:42:19,290 --> 01:42:19,940 >> JOSEPH Nevladna organizacija: Torej, ja. 2116 01:42:19,940 --> 01:42:21,500 Lahko bi dal skript tag nižje. 2117 01:42:21,500 --> 01:42:23,090 Ampak potem to postane res grdo. 2118 01:42:23,090 --> 01:42:26,590 In mi je všeč, da centralizira vse naše kode na enem mestu. 2119 01:42:26,590 --> 01:42:28,290 In to nam bo omogočilo, da to storite. 2120 01:42:28,290 --> 01:42:32,010 Ne pozabite, prej sem rekel, da je lepše način, da se zagotovi, da so elementi 2121 01:42:32,010 --> 01:42:33,880 na strani, preden izvedete kodo? 2122 01:42:33,880 --> 01:42:36,079 In to je samo lep način , s katero bi dosegli to. 2123 01:42:36,079 --> 01:42:37,329 >> PUBLIKA: [neslišno]. 2124 01:42:37,329 --> 01:42:41,710 2125 01:42:41,710 --> 01:42:42,230 >> JOSEPH Nevladna organizacija: Ja. 2126 01:42:42,230 --> 01:42:43,460 Ti bi še vedno morali, kajne? 2127 01:42:43,460 --> 01:42:46,930 Saj se spomnite, ste vključeni vloži na vrhu strani. 2128 01:42:46,930 --> 01:42:49,890 Tako se dogaja, da najprej izvesti pred prideš na dnu strani. 2129 01:42:49,890 --> 01:42:54,600 2130 01:42:54,600 --> 01:42:55,180 OK. 2131 01:42:55,180 --> 01:42:59,210 Torej si lahko dodate tudi drugačna tip obravnavo dogodkov. 2132 01:42:59,210 --> 01:43:00,640 Ta je pravkar obdeluje klikov. 2133 01:43:00,640 --> 01:43:03,910 Ko kliknem na najmlajše, nato se bo pop up z razpisom ukrepa. 2134 01:43:03,910 --> 01:43:05,440 To je le drugačen Vrsta dogodka. 2135 01:43:05,440 --> 01:43:08,840 V nasprotju z pripravljen dogodek, imate zdaj uporabite dogodek klik, ko prejmete 2136 01:43:08,840 --> 01:43:10,190 klikne na element. 2137 01:43:10,190 --> 01:43:13,860 >> In tako v tem primeru, ne pozabite, klika Vodnik je priloženo najmlajše. 2138 01:43:13,860 --> 01:43:16,080 Torej se to zgodi samo takrat, ko I kliknite na najmlajše. 2139 01:43:16,080 --> 01:43:19,510 In v drugem pa, pripravljenega dogodka je vezan na dokumentu. 2140 01:43:19,510 --> 01:43:23,750 Torej, ko čaka, da dokument da bo pripravljena. 2141 01:43:23,750 --> 01:43:25,120 Smisla? 2142 01:43:25,120 --> 01:43:26,190 Mislim, da lahko gremo naprej. 2143 01:43:26,190 --> 01:43:26,610 Da. 2144 01:43:26,610 --> 01:43:26,980 Vprašanje? 2145 01:43:26,980 --> 01:43:28,230 >> PUBLIKA: [neslišno]. 2146 01:43:28,230 --> 01:43:31,676 2147 01:43:31,676 --> 01:43:33,620 V tem primeru boste uporabili [neslišno]. 2148 01:43:33,620 --> 01:43:36,650 >> JOSEPH Nevladna organizacija: Oh, ja, saj v tem primer, sem moral čakati za najmlajše 2149 01:43:36,650 --> 01:43:40,740 element, ki se pojavijo na zaslonu najprej preden sem lahko pripnete klikom trener za 2150 01:43:40,740 --> 01:43:43,062 to, kar je razlog, zakaj sem ga dal notri za dokument pripravljen. 2151 01:43:43,062 --> 01:43:45,780 2152 01:43:45,780 --> 01:43:46,840 OK. 2153 01:43:46,840 --> 01:43:52,390 In dostavo, tako da je to velik primer kako bi se združujejo vse. 2154 01:43:52,390 --> 01:43:55,930 To je samo primer preverjanje veljavnosti obrazca ki ste jih videli v predavanju. 2155 01:43:55,930 --> 01:43:58,410 Torej, da se korak za korakom, kot je greš skozi to. 2156 01:43:58,410 --> 01:43:59,590 In to bo povsem v redu. 2157 01:43:59,590 --> 01:44:01,400 Samo brati od vrha do dna. 2158 01:44:01,400 --> 01:44:03,030 >> I imajo obliko na dnu. 2159 01:44:03,030 --> 01:44:07,590 Ko je dokument pripravljen, da priložite predloži trener v obliki, tako da 2160 01:44:07,590 --> 01:44:12,910 ko sem predložiti obrazec, dobim vrednosti znotraj vsakega od teh vložkov. 2161 01:44:12,910 --> 01:44:14,560 In sem preveriti, če je prazen. 2162 01:44:14,560 --> 01:44:17,090 Če je prazno, se bom vrnil false, ker Ne želim, da predloži obrazec, 2163 01:44:17,090 --> 01:44:18,950 ker oblika je narobe. 2164 01:44:18,950 --> 01:44:22,040 Če je geslo prazno ali je manj od osmih znakov, ne predloži 2165 01:44:22,040 --> 01:44:24,470 oblika, ker je to tudi narobe. 2166 01:44:24,470 --> 01:44:28,150 In vrne false le preprečuje Obrazec s prijavo in 2167 01:44:28,150 --> 01:44:30,150 bo na novo stran. 2168 01:44:30,150 --> 01:44:31,310 >> In upam, da je to smiselno. 2169 01:44:31,310 --> 01:44:34,650 Mislim, vi bi morali hoditi po ta koda korak za korakom na svoje. 2170 01:44:34,650 --> 01:44:38,350 In ko boste razumeli, kaj select elemente in narediti stvari z njo 2171 01:44:38,350 --> 01:44:40,520 dejansko pomeni, to bo veliko smisla za vas. 2172 01:44:40,520 --> 01:44:41,295 Ja? 2173 01:44:41,295 --> 01:44:44,150 >> PUBLIKA: Kaj počne name = ime pomeni? 2174 01:44:44,150 --> 01:44:48,530 >> JOSEPH Nevladna organizacija: Torej name = ime in ime = geslo pomeni le pogledati 2175 01:44:48,530 --> 01:44:50,730 atribut karkoli si izberete. 2176 01:44:50,730 --> 01:44:51,790 In potem, da se mora ujemati. 2177 01:44:51,790 --> 01:44:53,870 Torej gremo v registracijo. 2178 01:44:53,870 --> 01:44:56,240 In potem gledamo na vse vhode in registracija. 2179 01:44:56,240 --> 01:44:59,990 In potem smo izbrali tista, kjer ime atribut je enako uporabniško ime. 2180 01:44:59,990 --> 01:45:04,040 Tako da samo, da je prva izbirna izbere vhod ime. 2181 01:45:04,040 --> 01:45:08,220 In da drugi selektor izbere samo geslo eden, ker tisti imajo 2182 01:45:08,220 --> 01:45:12,240 Njihovo ime atributi določiti, kaj oni naj bi bili. 2183 01:45:12,240 --> 01:45:12,575 Vprašanje? 2184 01:45:12,575 --> 01:45:17,030 >> PUBLIKA: Na oddajo, kako deluje Spodnji del rešiti zgornji del? 2185 01:45:17,030 --> 01:45:19,350 >> JOSEPH Nevladna organizacija: Torej, to je zato, ker za obravnavo dogodkov. 2186 01:45:19,350 --> 01:45:23,000 Torej čakamo za predložitev dogodek da dobi odpustili iz obrazca. 2187 01:45:23,000 --> 01:45:24,730 In to je vse, kar je oddate. 2188 01:45:24,730 --> 01:45:26,080 Zakaj pravim predloži gor? 2189 01:45:26,080 --> 01:45:28,870 Pravi, da ko se predloži obrazec, Dobim predložiti dogodek. 2190 01:45:28,870 --> 01:45:33,480 Naj samo prestreči in da nato zaženete to kodo, namesto. 2191 01:45:33,480 --> 01:45:33,823 Ja? 2192 01:45:33,823 --> 01:45:35,866 >> PUBLIKA: Zakaj imaš da imajo funkcijo dogodek? 2193 01:45:35,866 --> 01:45:38,580 Zakaj ne moreš le [neslišno]? 2194 01:45:38,580 --> 01:45:41,140 >> JOSEPH Nevladna organizacija: Ker v JavaScript, ki jih morali razglasiti funkcije. 2195 01:45:41,140 --> 01:45:42,910 To je samo, kako deluje v JavaScript. 2196 01:45:42,910 --> 01:45:44,800 Moraš reči, da se dogaja zagnati funkcijo. 2197 01:45:44,800 --> 01:45:47,290 Torej ste to povedali, da ste Pričakujem funkcijo tukaj namesto 2198 01:45:47,290 --> 01:45:48,260 le zaviti oklepaji. 2199 01:45:48,260 --> 01:45:50,460 >> PUBLIKA: In funkcija je vse, kar sledi? 2200 01:45:50,460 --> 01:45:50,650 >> JOSEPH Nevladna organizacija: Ja. 2201 01:45:50,650 --> 01:45:52,790 Funkcija je vse, kar je notri Zaviti oklepaji po 2202 01:45:52,790 --> 01:45:53,630 da je funkcija ključna beseda. 2203 01:45:53,630 --> 01:45:54,045 Ja? 2204 01:45:54,045 --> 01:45:55,295 >> PUBLIKA: [neslišno]. 2205 01:45:55,295 --> 01:46:00,180 2206 01:46:00,180 --> 01:46:00,660 >> JOSEPH Nevladna organizacija: Za predložiti? 2207 01:46:00,660 --> 01:46:03,520 >> PUBLIKA: No, za funkcijo brez dogodka. 2208 01:46:03,520 --> 01:46:03,770 >> JOSEPH Nevladna organizacija: Ja. 2209 01:46:03,770 --> 01:46:05,610 Torej brez primeru lahko imaš to. 2210 01:46:05,610 --> 01:46:08,480 Če vam ni treba dogodka, potem pa jo lahko izpustijo. 2211 01:46:08,480 --> 01:46:12,220 Ampak, če boste to storili, potem si Pravkar ga tam. 2212 01:46:12,220 --> 01:46:12,520 Da. 2213 01:46:12,520 --> 01:46:13,190 Hitro vprašanje? 2214 01:46:13,190 --> 01:46:14,440 >> PUBLIKA: [neslišno]. 2215 01:46:14,440 --> 01:46:21,170 2216 01:46:21,170 --> 01:46:21,440 >> JOSEPH Nevladna organizacija: Ja. 2217 01:46:21,440 --> 01:46:24,550 Ker tisto, kar morate storiti, document.ready ravno pravi čakati vse 2218 01:46:24,550 --> 01:46:26,540 HTML na strani najprej naložiti. 2219 01:46:26,540 --> 01:46:30,510 In ponavadi, želite, da vaše elementi na mestu, preden zaženete kodo. 2220 01:46:30,510 --> 01:46:31,030 Vse je v redu. 2221 01:46:31,030 --> 01:46:32,180 Moramo priti do Ajax. 2222 01:46:32,180 --> 01:46:33,110 Nimamo veliko časa. 2223 01:46:33,110 --> 01:46:35,170 Tako prednosti in slabosti. 2224 01:46:35,170 --> 01:46:37,450 JavaScript je lažje poskus pisati s jQuery. 2225 01:46:37,450 --> 01:46:38,930 Vendar jQuery je nekako počasi. 2226 01:46:38,930 --> 01:46:42,290 >> To je, kot je PHP počasnejši od C, saj je razlaga. 2227 01:46:42,290 --> 01:46:45,690 In jQuery je nekoliko počasneje, kot JavaScript, saj ne veliko 2228 01:46:45,690 --> 01:46:46,630 Stvari pod pokrovom. 2229 01:46:46,630 --> 01:46:48,660 In tako, če ste z uporabo jQuery, da je samo malo počasneje, kot 2230 01:46:48,660 --> 01:46:51,630 JavaScript, čeprav vam lepo eleganco. 2231 01:46:51,630 --> 01:46:53,970 In končno, Ajax. 2232 01:46:53,970 --> 01:46:59,170 Do sedaj z Ajax, še niste videli Ajax v smislu pset7 še, ker 2233 01:46:59,170 --> 01:47:01,150 Ko boste to storili, boste predloži Obrazec za ponudbo. 2234 01:47:01,150 --> 01:47:02,350 To obilje novo stran. 2235 01:47:02,350 --> 01:47:04,440 Tako boste dobili veliko belo bliskavico na strani pa, da 2236 01:47:04,440 --> 01:47:06,820 Druga stran obremenitve, pravilna? 2237 01:47:06,820 --> 01:47:08,780 >> Bilo bi res lepo, če ti niso imeli ta trenutek. 2238 01:47:08,780 --> 01:47:11,600 Kot so Facebook, če si se pomaknite dno, dodaja nove vsebine 2239 01:47:11,600 --> 01:47:13,490 brez osvežujoč celotno stran. 2240 01:47:13,490 --> 01:47:15,420 Tako da bi kaj takega bilo lepo. 2241 01:47:15,420 --> 01:47:17,370 To je koda JavaScript na levi strani. 2242 01:47:17,370 --> 01:47:19,390 Boste dobili tisto, kar je znotraj tega vhoda. 2243 01:47:19,390 --> 01:47:21,340 Dobiš info stalež iz Yahoo! 2244 01:47:21,340 --> 01:47:27,440 In potem si lahko velik niz, ki pravi, OK, to je sporočilo, ki ga želim 2245 01:47:27,440 --> 01:47:28,400 prikazati na zaslonu. 2246 01:47:28,400 --> 01:47:32,280 In potem si dal to sporočilo v notranjosti nekega HTML elementa, ki dobi 2247 01:47:32,280 --> 01:47:33,970 prikaže na zaslonu. 2248 01:47:33,970 --> 01:47:35,540 >> Tako, da je vse, kar se dogaja tukaj. 2249 01:47:35,540 --> 01:47:39,410 Torej v bistvu, ker je to vse JavaScript in vam ni treba zagnati 2250 01:47:39,410 --> 01:47:42,980 več PHP, to bo poskrbel da se stran ne osveži. 2251 01:47:42,980 --> 01:47:47,470 Torej to je samo abstraktna ideja da govorim tukaj zdaj. 2252 01:47:47,470 --> 01:47:50,630 Abstraktna ideja je, da če vam je Vse v JavaScript, nimate 2253 01:47:50,630 --> 01:47:52,330 Stran osvežitev. 2254 01:47:52,330 --> 01:47:53,800 Ampak kako si zdaj to? 2255 01:47:53,800 --> 01:47:56,230 >> No, pravzaprav, kaj je govoril o Problem s tem prvi. 2256 01:47:56,230 --> 01:47:59,340 Problem je v JavaScript, izvedba je sinhroni. 2257 01:47:59,340 --> 01:48:02,000 Tako da boste morali čakati eno linija končati pred vami 2258 01:48:02,000 --> 01:48:03,370 izvesti naslednje vrstice. 2259 01:48:03,370 --> 01:48:06,130 In kaj, če bom čez Yahoo!, in njihovi strežniki so res počasen in 2260 01:48:06,130 --> 01:48:08,790 jim traja tri sekunde, da vrni mi, da info zaloge? 2261 01:48:08,790 --> 01:48:12,620 Ko sem udaril, da je cena linijo, če izvedba je sinhroni, saj je z 2262 01:48:12,620 --> 01:48:15,390 privzeto, kaj to je šele tekoč storiti, je Vaš brskalnik se bo na stojnici za 2263 01:48:15,390 --> 01:48:15,930 tri sekunde. 2264 01:48:15,930 --> 01:48:18,900 In ti ne bo uspelo narediti kaj pa se dobi te podatke. 2265 01:48:18,900 --> 01:48:20,010 To se dogaja, da se zamrznejo. 2266 01:48:20,010 --> 01:48:20,800 >> In to je slabo. 2267 01:48:20,800 --> 01:48:23,390 Vi ne želite, da uporabnik imajo zamrznjene spletno stran. 2268 01:48:23,390 --> 01:48:24,170 Popraviti? 2269 01:48:24,170 --> 01:48:25,480 To je samo slaba. 2270 01:48:25,480 --> 01:48:26,770 Vsakdo se strinja? 2271 01:48:26,770 --> 01:48:29,270 Če brskate Facebook in jo zamrzne in ne morete storiti ničesar, vas 2272 01:48:29,270 --> 01:48:31,920 dobijo res uničen. 2273 01:48:31,920 --> 01:48:34,960 Torej je raztopina naredimo nekaj asinhrona namesto tega. 2274 01:48:34,960 --> 01:48:38,910 Torej, vse to asinhrono, kar pravi se bom vprašati to 2275 01:48:38,910 --> 01:48:40,280 URL za nekatere podatke. 2276 01:48:40,280 --> 01:48:41,610 In potem grem naprej. 2277 01:48:41,610 --> 01:48:45,330 Jaz bom samo, da izvršilni karkoli oznaka, ki je po tem. 2278 01:48:45,330 --> 01:48:49,290 >> In potem, ko je, da so podatki pripravljeni, potem bom obdelala. 2279 01:48:49,290 --> 01:48:50,540 To je vse, kar je rekel. 2280 01:48:50,540 --> 01:48:52,795 2281 01:48:52,795 --> 01:48:56,710 >> PUBLIKA: Ajax samo naredi Koda asinhronski? 2282 01:48:56,710 --> 01:48:58,560 >> JOSEPH Nevladna organizacija: To je asinhrona Tako ljubek podatkov. 2283 01:48:58,560 --> 01:49:01,230 Torej prva stvar, Ajax je mi omogoča pridobiti podatke 2284 01:49:01,230 --> 01:49:03,170 iz zunanje spletne strani. 2285 01:49:03,170 --> 01:49:07,045 In druga stvar je, da poskrbi, da je moja stran ne zavlačevati, medtem ko sem 2286 01:49:07,045 --> 01:49:07,970 pridobivanju teh podatkov. 2287 01:49:07,970 --> 01:49:09,600 To je asinhrona del. 2288 01:49:09,600 --> 01:49:13,040 Ker gre nekam drugam, ker sem rekel, da sem šel naprej, medtem ko 2289 01:49:13,040 --> 01:49:14,900 to je ljubek, da so podatki, ki omogoča asinhronim. 2290 01:49:14,900 --> 01:49:17,170 Držim izvršitve. 2291 01:49:17,170 --> 01:49:18,960 >> Tako da se vodijo asinhroni ideja v mislih. 2292 01:49:18,960 --> 01:49:22,010 In ti bom pokazal, kaj Razlika je. 2293 01:49:22,010 --> 01:49:23,920 Sinhroni različica je na levi strani. 2294 01:49:23,920 --> 01:49:26,240 Asinhrona različica je na desni strani. 2295 01:49:26,240 --> 01:49:29,170 Pogled na številke za prikaz, ki koraki ustrezajo kar 2296 01:49:29,170 --> 01:49:30,610 izvaja na vsaki vrstici. 2297 01:49:30,610 --> 01:49:32,730 Tam, opozorilo se pojavi prvi. 2298 01:49:32,730 --> 01:49:34,590 Ker pridobivanje informacij stalež iz Yahoo! 2299 01:49:34,590 --> 01:49:37,250 traja tri sekunde, da stojnicah za tri sekunde. 2300 01:49:37,250 --> 01:49:39,880 In potem je opozorila na ceno Po teh treh sekundah. 2301 01:49:39,880 --> 01:49:43,690 >> Torej sedaj, da opozarjanje predstave do takrat - 2302 01:49:43,690 --> 01:49:44,610 tri sekunde palcev 2303 01:49:44,610 --> 01:49:47,670 In potem je opozorila, ki jih po tem. 2304 01:49:47,670 --> 01:49:48,930 Tako da gre samo korak za korakom. 2305 01:49:48,930 --> 01:49:51,200 To je kot, kaj si fantje bi sprejeli, pravilna? 2306 01:49:51,200 --> 01:49:54,170 Z asinhronim izvedbo, vas opozori prvi. 2307 01:49:54,170 --> 01:49:57,410 Potem greš dol na ta URL. 2308 01:49:57,410 --> 01:49:59,530 In pravite, da bom prosite za podatke. 2309 01:49:59,530 --> 01:50:01,170 In potem bom obdelala kasneje. 2310 01:50:01,170 --> 01:50:04,230 Tako da takoj izvrši Naslednja vrstica potem naredim, da 2311 01:50:04,230 --> 01:50:05,710 asinhrono zahtevo. 2312 01:50:05,710 --> 01:50:08,920 >> Torej 0,001 sekunde, boste videli opozorilno hi. 2313 01:50:08,920 --> 01:50:10,960 Izvršitev te funkcije, opozorilni bye. 2314 01:50:10,960 --> 01:50:14,240 In ker sem obljubil, da bom bi obdelujejo podatke kasneje, kaj 2315 01:50:14,240 --> 01:50:17,920 zgodi se, ko pride, da podatke nazaj tri sekund kasneje, potem sem teči, da 2316 01:50:17,920 --> 01:50:21,380 Funkcija, da imam tam. 2317 01:50:21,380 --> 01:50:21,870 Ja? 2318 01:50:21,870 --> 01:50:25,750 >> PUBLIKA: Ali lahko navedete, ali pojasniti, kaj pomeni Ajax? 2319 01:50:25,750 --> 01:50:30,460 >> JOSEPH Nevladna organizacija: Torej Ajax je tako, da če sem potrebujejo podatke, ko sem na spletni strani in sem 2320 01:50:30,460 --> 01:50:34,690 Ne želim, da osvežite stran, potem Jaz raba to tehnologijo, imenovano Ajax. 2321 01:50:34,690 --> 01:50:40,630 To v bistvu pomeni le, pojdi prinesi Podatki iz druge spletne strani. 2322 01:50:40,630 --> 01:50:43,724 In to na način, ki le ne stojnici mojo spletno stran. 2323 01:50:43,724 --> 01:50:46,650 >> PUBLIKA: Torej je to neločljivo povezano del JavaScript ali jQuery? 2324 01:50:46,650 --> 01:50:50,590 >> JOSEPH Nevladna organizacija: Torej nekdo napisal način za to JavaScript davno. 2325 01:50:50,590 --> 01:50:52,050 Na eni točki, to ne obstaja. 2326 01:50:52,050 --> 01:50:56,630 In tako je nekdo izumil to tehniko da se omogoči ljudem, da zahtevajo te podatke 2327 01:50:56,630 --> 01:50:57,680 na ta način. 2328 01:50:57,680 --> 01:50:59,550 In ti napisal nekaj stvari da to stori za vas. 2329 01:50:59,550 --> 01:51:01,605 In jQuery samo vam daje to zelo lep način, da to storite 2330 01:51:01,605 --> 01:51:03,112 s tem $. dobil funkcijo. 2331 01:51:03,112 --> 01:51:07,200 2332 01:51:07,200 --> 01:51:09,480 vprašanja? 2333 01:51:09,480 --> 01:51:11,560 Ne morem odgovoriti na vprašanja o Ajax kasneje preveč. 2334 01:51:11,560 --> 01:51:13,870 Jaz bom tukaj. 2335 01:51:13,870 --> 01:51:16,390 >> Zato pa nam prinesi podatkov brez osvežite stran. 2336 01:51:16,390 --> 01:51:18,200 In kaj je nam to v asinhroni način, da 2337 01:51:18,200 --> 01:51:19,450 ne zmrzne stran. 2338 01:51:19,450 --> 01:51:22,680 2339 01:51:22,680 --> 01:51:27,310 Predolgo, ni prebral, če je razlaga je bila predolga za vas. 2340 01:51:27,310 --> 01:51:29,430 Torej, na koncu, cross-site skriptni napadi. 2341 01:51:29,430 --> 01:51:30,910 To smo lahko videli z Zamyla. 2342 01:51:30,910 --> 01:51:34,285 Če je v moji baz nekdo to ime, ki je ta scenarij tag, in jaz 2343 01:51:34,285 --> 01:51:38,280 nekaj kodo na moji strani, da natisne iz imen ljudi v vrsti, ali imam 2344 01:51:38,280 --> 01:51:43,310 nekateri JavaScript kodo, ki vnaša to ime v stran, 2345 01:51:43,310 --> 01:51:45,680 kaj HTML gets proizvaja? 2346 01:51:45,680 --> 01:51:47,290 No, sem izpisal HTML tag. 2347 01:51:47,290 --> 01:51:48,390 Jaz izpisal vse te oznake. 2348 01:51:48,390 --> 01:51:50,740 >> Pridem do dela, kjer sem tiskanje ven s prijatelji. 2349 01:51:50,740 --> 01:51:52,980 Tiskam Lauren ven. 2350 01:51:52,980 --> 01:51:54,200 To natisnete Milo ven. 2351 01:51:54,200 --> 01:51:56,810 In potem moje ime v bazi podatkov je scenarij objave 2352 01:51:56,810 --> 01:51:58,060 Neprijatan Facebook stanje. 2353 01:51:58,060 --> 01:52:00,740 2354 01:52:00,740 --> 01:52:04,330 Ker sem ta vstavljena v stran ker zgleda JavaScript, če 2355 01:52:04,330 --> 01:52:07,930 ta stran dobi pošlje uporabniku, to gets izvajajo kot JavaScript. 2356 01:52:07,930 --> 01:52:10,800 In zato je to, kar imenujemo cross-site skriptno napad. 2357 01:52:10,800 --> 01:52:14,570 Nekdo postavlja zlonamerne informacije zbirke podatkov, da bi lahko ustrezajo 2358 01:52:14,570 --> 01:52:17,080 nekateri dodatni niz ali nekateri JavaScript niz. 2359 01:52:17,080 --> 01:52:20,130 >> In ko postane izpisal na stran na ta način, potem kaj 2360 01:52:20,130 --> 01:52:22,580 se zgodi, da postane slabo kodo usmrčen da nisem nameravam 2361 01:52:22,580 --> 01:52:25,110 za to, da se izvajajo. 2362 01:52:25,110 --> 01:52:28,230 In to je vse, cross-site skriptno napad. 2363 01:52:28,230 --> 01:52:31,790 In kako si dobil okoli to je, kot je rekel Zamyla. 2364 01:52:31,790 --> 01:52:34,340 Pravkar ste zaviti stvari HTML posebnih znakov. 2365 01:52:34,340 --> 01:52:39,460 In to HTML posebnih znakov je PHP Funkcija, ki bo preprečila tovrstne 2366 01:52:39,460 --> 01:52:42,000 stvari iz dogaja z vami če imate zlonamerne 2367 01:52:42,000 --> 01:52:43,830 Niz v zbirki podatkov. 2368 01:52:43,830 --> 01:52:47,650 To je samo uide, tako da se ne se razlaga kot HTML. 2369 01:52:47,650 --> 01:52:50,960 Nadomešča male nosilce s tem, kar imenujemo subjekte. 2370 01:52:50,960 --> 01:52:52,250 In smo šli čez to v predavanju preveč. 2371 01:52:52,250 --> 01:52:55,800 Zato mislim, da fantje bi morali imeti dobro razumevanje o tem. 2372 01:52:55,800 --> 01:52:57,420 Vprašanja? 2373 01:52:57,420 --> 01:52:57,820 Da. 2374 01:52:57,820 --> 01:53:00,860 >> PUBLIKA: Torej, kako bi [neslišno]? 2375 01:53:00,860 --> 01:53:01,555 >> JOSEPH Nevladna organizacija: Ponovi. 2376 01:53:01,555 --> 01:53:02,500 >> PUBLIKA: Kako bi monitor - 2377 01:53:02,500 --> 01:53:02,860 >> JOSEPH Nevladna organizacija: Right. 2378 01:53:02,860 --> 01:53:06,080 Torej imate nekaj, kar pravi, ko Jaz registrirati, tip v mojem imenu. 2379 01:53:06,080 --> 01:53:09,390 Pravkar sem tipa na tem področju, moje ime je stript objave Neprijatan Facebook 2380 01:53:09,390 --> 01:53:11,570 Status blizu script tag. 2381 01:53:11,570 --> 01:53:15,690 In to samo dobi dana v baze podatkov, ker ne morem reči, kdo 2382 01:53:15,690 --> 01:53:18,260 V svetu nima imena z levo puščico v njej ali 2383 01:53:18,260 --> 01:53:19,036 Beseda skript v njem. 2384 01:53:19,036 --> 01:53:21,330 To pa res ni smisla. 2385 01:53:21,330 --> 01:53:24,560 Tako da sem moral prepričati, da sem čistiti stvari, preden sem ga natisnete 2386 01:53:24,560 --> 01:53:25,420 ven na strani. 2387 01:53:25,420 --> 01:53:27,140 >> PUBLIKA: Torej posebne kartice HTML preprečuje skript oznake? 2388 01:53:27,140 --> 01:53:28,710 >> JOSEPH Nevladna organizacija: Ja. 2389 01:53:28,710 --> 01:53:29,960 Tako da ne preprečuje skript oznake. 2390 01:53:29,960 --> 01:53:32,320 To samo poskrbi, da script oznake ne dobijo 2391 01:53:32,320 --> 01:53:35,120 razlagati kot HTML ali - 2392 01:53:35,120 --> 01:53:35,400 ja. 2393 01:53:35,400 --> 01:53:38,470 To šele pride gor, kot tisto, je v resnici. 2394 01:53:38,470 --> 01:53:39,220 Vse je v redu. 2395 01:53:39,220 --> 01:53:40,930 Tako, da je bil pregled kviz. 2396 01:53:40,930 --> 01:53:41,830 Cool. 2397 01:53:41,830 --> 01:53:45,088 >> [APPLAUSE]