1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID Malan: Gerai. 3 00:00:12,360 --> 00:00:15,970 Tai CS50, ir tai yra devynių savaitės pabaigoje. 4 00:00:15,970 --> 00:00:18,560 Tai buvo audra per per pastaruosius keletą dienų. 5 00:00:18,560 --> 00:00:21,580 Ir problema septynis, jei esate kelio giliai į jį, suvokti, yra gana 6 00:00:21,580 --> 00:00:23,340 tiek nauja tai ten. 7 00:00:23,340 --> 00:00:26,660 Bet pažiūrėkime, jei mes negalime gabalas viskas kartu čia trumpai 8 00:00:26,660 --> 00:00:29,230 iki to Posūkis išjungti dar kitą pusę ir mato 9 00:00:29,230 --> 00:00:30,510 kur dar galime eiti. 10 00:00:30,510 --> 00:00:32,630 >> Taigi, iki šiol mes kalbėjome apie HTML. 11 00:00:32,630 --> 00:00:33,740 Mes kalbėjome apie CSS. 12 00:00:33,740 --> 00:00:34,705 Mes kalbėjome apie PHP. 13 00:00:34,705 --> 00:00:36,520 Jūs pradėjote patirti SQL. 14 00:00:36,520 --> 00:00:38,360 Šiandien mes kalbame šiek tiek apie JavaScript. 15 00:00:38,360 --> 00:00:41,230 Bet kaip visi šie skirtingi kalbos dera tarpusavyje? 16 00:00:41,230 --> 00:00:44,970 >> Taigi mes kalbėjome praeitą savaitę apie sąvoka turėti serverį. 17 00:00:44,970 --> 00:00:48,470 Taigi galime tiesiog atkreipti šį stačiakampį kaip žiniatinklio serveryje čia. 18 00:00:48,470 --> 00:00:52,200 Ir web serveris tarnauja tikrai failus. 19 00:00:52,200 --> 00:00:54,640 Ir kai kurie iš šių failų gali būti HTML failus. 20 00:00:54,640 --> 00:00:58,270 Taigi vienas iš dalykų, kad interneto serveris gali išspjauti gali būti failas, 21 00:00:58,270 --> 00:01:01,290 mes tiesiog atkreipti, kaip tai , kurių sudėtyje yra tam tikras HTML. 22 00:01:01,290 --> 00:01:04,786 Taigi profanas sąlygomis, kas ar HTML jums daryti? 23 00:01:04,786 --> 00:01:06,036 >> PUBLIKA: Puslapis atrodo gražiai. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID Malan: Gerai, kad puslapis atrodytų gražiai, nors manau, kad aš įrodyta 26 00:01:12,310 --> 00:01:13,370 kad kitaip. 27 00:01:13,370 --> 00:01:18,250 Taigi, HTML ar jums išdėstyti puslapius struktūriškai, ir tai leidžia 28 00:01:18,250 --> 00:01:22,410 tarsi estetiškai antkainis puslapį, antkainis statinį turinį, kad jūs 29 00:01:22,410 --> 00:01:23,640 tada galite jį peržiūrėti su interneto naršykle. 30 00:01:23,640 --> 00:01:24,690 >> Bet tai raktas. 31 00:01:24,690 --> 00:01:26,130 Tai statinis turinys. 32 00:01:26,130 --> 00:01:28,590 Jūs rašote jį, jį įrašote, ir tada laivas jį. 33 00:01:28,590 --> 00:01:31,130 Ir interneto serverio, tada tarnauja ji iki jūsų lankytojams. 34 00:01:31,130 --> 00:01:35,700 >> Bet mes Stilizuoti dalykus per skirtinga kalba apskritai. 35 00:01:35,700 --> 00:01:40,150 Mes pradėjome naudoti stiliaus atributas dėl tam tikrų žymes. 36 00:01:40,150 --> 00:01:43,400 Ir stiliaus atributas mums nustatyti dalykų, pavyzdžiui, šrifto dydžio ir spalvos. 37 00:01:43,400 --> 00:01:46,460 Ir jūs tikriausiai pradėjo atrasti, ar jūs netrukus už galutinį 38 00:01:46,460 --> 00:01:50,160 projektai potencialiai dar kita savybės, kurias galite naudoti CSS. 39 00:01:50,160 --> 00:01:54,710 Ir taip profanas sąlygomis, kas tikrai gi atlikti CSS? 40 00:01:54,710 --> 00:01:57,810 Tai yra tik jų pavyzdžiai. 41 00:01:57,810 --> 00:02:00,730 Ką tai jums padaryti, kad HTML neatrodo, kad nuo to, ką 42 00:02:00,730 --> 00:02:02,606 mes matėme iki šiol? 43 00:02:02,606 --> 00:02:04,850 >> Auditorija: Apibrėžti stilių patys. 44 00:02:04,850 --> 00:02:06,700 >> DAVID Malan: Apibrėžti stilius patys. 45 00:02:06,700 --> 00:02:10,280 Taigi nustatyti tokius dalykus kaip klases, kaip jūs gali būti susidurta, arba unikaliai 46 00:02:10,280 --> 00:02:13,800 nustatyti mazgų dokumente taip kad galite Stilizuoti juos. 47 00:02:13,800 --> 00:02:16,890 Bet konkrečiai, aš sakyčiau, kad CSS tikrai galite imtis ko 48 00:02:16,890 --> 00:02:20,790 paskutinės mylios ir leidžia jums nurodyti, kiek tiksliau estetika, 49 00:02:20,790 --> 00:02:24,340 o HTML didžioji dalis leidžia jums sukurti savo puslapius. 50 00:02:24,340 --> 00:02:27,310 >> Ir nors yra keletas nutylėjimą, kaip matėme, kad tegus 51 00:02:27,310 --> 00:02:30,690 pozicijoje žymeles, kurios Apytiksliai padarė ką didelis ir drąsus. 52 00:02:30,690 --> 00:02:34,250 Tai gana bendra apibrėžtis TAG - didelis ir drąsus. 53 00:02:34,250 --> 00:02:35,260 Kas šrifto dydis yra? 54 00:02:35,260 --> 00:02:36,080 Kokios spalvos yra? 55 00:02:36,080 --> 00:02:36,890 Kaip paryškinti tai? 56 00:02:36,890 --> 00:02:39,830 Ir CSS leidžia jums labiau smulkiai tune dalykų, pavyzdžiui, kad. 57 00:02:39,830 --> 00:02:42,150 Taip pat išdėstymas, nes kai iš jūsų matė. 58 00:02:42,150 --> 00:02:45,180 >> Ir tiesą sakant, CSS yra šiek tiek iš nepatogus kalba. 59 00:02:45,180 --> 00:02:48,370 Tai labai galingas, kad jūs galite padaryti tiesiog bet kokios svetainės, kad jūs 60 00:02:48,370 --> 00:02:51,880 mačiau internete šiandien su juo, bet tai tipo sprando skausmo. 61 00:02:51,880 --> 00:02:54,440 Ir kai kurie iš jūsų susitrenkiau galvą prieš sienų jau tiesiog daryti 62 00:02:54,440 --> 00:02:58,560 kažkas kvailas, kaip centre meniu problema septynis, jei jūs Dotarłeś į 63 00:02:58,560 --> 00:02:59,470 kad vieta jau. 64 00:02:59,470 --> 00:03:01,530 >> Bet suprasti, tuos dalykus, gauti lengviau laikui bėgant. 65 00:03:01,530 --> 00:03:02,820 Jūs pradėsite pastebėti modelius. 66 00:03:02,820 --> 00:03:06,020 Ir vėl, "Google" bus jūsų draugas už įvairių būdų, kuriais galite 67 00:03:06,020 --> 00:03:07,220 išspręsti šias problemas rūšių. 68 00:03:07,220 --> 00:03:11,520 >> Ir drįstu pasakyti su CSS ir HTML daugiau Apskritai, jūs galite išspręsti problemas, 69 00:03:11,520 --> 00:03:15,910 daug daugiau būdų, kurie visi galėtų labai gerai būti teisinga, nei galėtumėte 70 00:03:15,910 --> 00:03:18,900 kažką panašaus į C, net dabar PHP arba JavaScript. 71 00:03:18,900 --> 00:03:21,080 Yra tik daug įvairių būdų nustatyti dalykus. 72 00:03:21,080 --> 00:03:22,570 >> Bet tai pradėjau gauti nepatogus, mes pasakėme. 73 00:03:22,570 --> 00:03:26,480 Tiesiog rūšies susimaišė savo HTML ir jūsų CSS su stiliaus atributas buvo 74 00:03:26,480 --> 00:03:27,590 šiek tiek prastesnis. 75 00:03:27,590 --> 00:03:31,460 Ir taip mes vietoj sakė, tarsi abstrakčiai kalbant, kad jums reikia 76 00:03:31,460 --> 00:03:34,050 bent pradėti veiksnys iš savo CSS tikriausiai. 77 00:03:34,050 --> 00:03:37,430 Ne tavo stiliaus atributus, bet bent jau naudoti stiliaus tegus viduje kas 78 00:03:37,430 --> 00:03:38,840 dalis interneto puslapyje? 79 00:03:38,840 --> 00:03:39,560 >> PUBLIKA: vadovas. 80 00:03:39,560 --> 00:03:40,120 >> DAVID Malan: į galvą. 81 00:03:40,120 --> 00:03:43,270 Iki šiol, mes turėjo tik titulą iki ten, bet jūs taip pat galite pridėti stilių 82 00:03:43,270 --> 00:03:47,230 pažymėti, ir jūs galite įdėti savo CSS maždaug kalbant į puslapio viršuje. 83 00:03:47,230 --> 00:03:52,550 Bet tada mes priėmėme dalykų dar vieną žingsnį ir mes atsižvelgti, kad daugiau 84 00:03:52,550 --> 00:03:54,130 į atskirą failą. 85 00:03:54,130 --> 00:03:57,240 >> Ir todėl šie du failai buvo kažkaip dabar susiję. 86 00:03:57,240 --> 00:03:59,550 Ir iš tiesų tai buvo žyma, kad tai padarė. 87 00:03:59,550 --> 00:04:02,920 Ir kas buvo vienas iš visuotinių motyvacija faktoringo mūsų CSS 88 00:04:02,920 --> 00:04:04,057 visi daugiau? 89 00:04:04,057 --> 00:04:05,280 >> PUBLIKA: pakartotinis naudojimas. 90 00:04:05,280 --> 00:04:05,785 >> DAVID Malan: pakartotinis naudojimas. 91 00:04:05,785 --> 00:04:06,150 Teisė? 92 00:04:06,150 --> 00:04:09,470 Galite matėme p septynis jau kad puslapių daug, 93 00:04:09,470 --> 00:04:12,260 pirkimo puslapis, pardavimo puslapis, portfelis puslapis, tikriausiai 94 00:04:12,260 --> 00:04:13,550 struktūra šiek tiek panašiai. 95 00:04:13,550 --> 00:04:17,579 Yra CS50 finansai logo viršuje nebent jūs nusprendėte jį pakeisti. 96 00:04:17,579 --> 00:04:19,839 Yra ne apačia šio puslapio apačioje. 97 00:04:19,839 --> 00:04:24,315 Ir CSS leidžia tada veiksnys jį tai į atskirą failą, kad jei 98 00:04:24,315 --> 00:04:27,780 norite ką nors pakeisti pasaulyje per visą savo svetainę, jums tikrai gali 99 00:04:27,780 --> 00:04:29,390 tiesiog pakeisti jį vienoje vietoje. 100 00:04:29,390 --> 00:04:32,750 >> Bet yra kaina, kurią mokate potencialiai Iki turintys sudauginti iš 101 00:04:32,750 --> 00:04:38,380 CSS iš savo HTML failą į atskiras pateikti nuorodos į ją 102 00:04:38,380 --> 00:04:40,650 žyma, kurioje matėme pirmadienį. 103 00:04:40,650 --> 00:04:43,850 Kas gali būti neigiama tai? 104 00:04:43,850 --> 00:04:48,830 Mintys atgal prieš savaitę, kada mes kalbame apie HTTP ir TCP / IP ir kaip 105 00:04:48,830 --> 00:04:52,070 Internetas veikia. 106 00:04:52,070 --> 00:04:53,530 Kažkas čia? 107 00:04:53,530 --> 00:04:54,730 >> Auditorija: Tai užtrunka daugiau laiko. 108 00:04:54,730 --> 00:04:55,470 >> Davidas Malan: Tai užtrunka daugiau laiko. 109 00:04:55,470 --> 00:04:56,750 Kodėl? 110 00:04:56,750 --> 00:04:59,450 >> Auditorija: [nesigirdi]. 111 00:04:59,450 --> 00:04:59,750 >> Davidas Malan: Taip. 112 00:04:59,750 --> 00:05:01,240 Taigi neabejotinai užima šiek tiek daugiau laiko. 113 00:05:01,240 --> 00:05:04,290 Kadangi vienas, CSS yra akivaizdžiai ne tame pačiame faile. 114 00:05:04,290 --> 00:05:06,920 Taigi, dabar jūs turite padaryti ne vienas, bet du prašymai. 115 00:05:06,920 --> 00:05:11,230 Ir kiekvieną iš šių prašymų, kaip matėme Chrome vadinamosios inspektorius, 116 00:05:11,230 --> 00:05:15,740 ir mes pažvelgė į tinklo kortelę, kiekvienas iš šių failų reikia vienos HTTP 117 00:05:15,740 --> 00:05:18,360 prašymas, kurį mes matėme trunka kai laiko suma. 118 00:05:18,360 --> 00:05:19,290 Dabar, gal tai nėra daug. 119 00:05:19,290 --> 00:05:20,670 Gal tai tik 20 milisekundžių. 120 00:05:20,670 --> 00:05:22,260 Gal tai 200 milisekundžių. 121 00:05:22,260 --> 00:05:25,530 >> Bet pagalvokite apie kaip "Facebook" puslapyje, arba CNN arba "Google", kuris yra daug 122 00:05:25,530 --> 00:05:28,060 didesnis nei pavyzdžių mes pažvelgė į iki šiol. 123 00:05:28,060 --> 00:05:32,070 Šie puslapiai gali turėti daugybę failų, kiekvienas iš kurių gali prireikti 124 00:05:32,070 --> 00:05:33,550 Parsisiųsti failą. 125 00:05:33,550 --> 00:05:35,800 Taigi, kas gali potencialiai pradeda lėtėti. 126 00:05:35,800 --> 00:05:39,280 >> Ir ypač šiais laikais, kai mes visi turi mobiliuosius telefonus, mūsų kišenės ir 127 00:05:39,280 --> 00:05:43,010 lėčiau interneto ryšį, atsižvelgiant į Palaukite keletą milisekundžių, mažai 128 00:05:43,010 --> 00:05:46,110 daugiau milisekundžių už papildomą bylos iš tikrųjų gali būti lėtas. 129 00:05:46,110 --> 00:05:50,430 Latency yra žodis, kuris apibūdina rūšies laukia, kad jūs turite, kad jūs 130 00:05:50,430 --> 00:05:53,110 patirtį, kai laukia kai informacija gabalas. 131 00:05:53,110 --> 00:05:54,430 >> Bet yra aukštyn kojom. 132 00:05:54,430 --> 00:05:56,600 Taigi, tai ne visi rūšiuoti - 133 00:05:56,600 --> 00:05:58,170 ji iš tikrųjų yra iš permainingai čia truputį. 134 00:05:58,170 --> 00:06:02,970 Smukimo dabar, bet kas naršyklės gali padaryti jei esate protingas, kad būtų išvengta 135 00:06:02,970 --> 00:06:08,870 nereikalaudami tą patį styles.css byla vėl gali būti ką daryti? 136 00:06:08,870 --> 00:06:09,390 >> Cache jį. 137 00:06:09,390 --> 00:06:10,370 Taigi spartinimo - 138 00:06:10,370 --> 00:06:11,690 C-C-H-e - 139 00:06:11,690 --> 00:06:15,810 paprastai reiškia čia tik sutaupyti failo, kurį prašoma pirmą kartą, ir 140 00:06:15,810 --> 00:06:17,440 tada patikrinkite talpyklą už jį. 141 00:06:17,440 --> 00:06:20,400 Patikrinkite, ar esate tarsi saugojimo konteineris, ir jei jau turite 142 00:06:20,400 --> 00:06:24,520 kopija styles.css, net jeigu kai kurios kitos puslapyje p-rinkinys, ar svetainėje, 143 00:06:24,520 --> 00:06:28,560 prašo jį dar kartą, tiesiog duoti vartotojas tą pačią talpyklą kopija. 144 00:06:28,560 --> 00:06:30,140 Nesivargink prašydama jį. 145 00:06:30,140 --> 00:06:32,560 >> Neigiama ten, nors, kaip kai kurie iš jūsų turi užkliūti į p-rinkinys. 146 00:06:32,560 --> 00:06:35,870 Jei kažką pakeisti serveryje ir jums grįžti į naršyklę ir jūs 147 00:06:35,870 --> 00:06:39,250 paleisti, kartais naršyklė nėra jūs už ir nesivargina 148 00:06:39,250 --> 00:06:43,660 iš naujo atsisiųsti savo styles.css failą nes, nagi, kokie šansai 149 00:06:43,660 --> 00:06:47,620 kad šie stiliai kad "Facebook" naudoja ketina keisti kas valandą arba 150 00:06:47,620 --> 00:06:48,140 kiekvieną dieną? 151 00:06:48,140 --> 00:06:48,800 Tai gana mažas. 152 00:06:48,800 --> 00:06:52,260 Jie gali keistis laikui bėgant, bet ne kas minutę ar valandą. 153 00:06:52,260 --> 00:06:55,810 >> Taigi triukas, tiesiog FYI, kai darai internete plėtra, dažnai laikykite nuspaudę 154 00:06:55,810 --> 00:06:59,500 Perjungimas pavyzdžiui tada spustelėkite perkrauti savo naršyklę, ir kad bus 155 00:06:59,500 --> 00:07:03,280 paprastai pasakyti naršyklės Perkrauti viskas, net jei jūs jau turite 156 00:07:03,280 --> 00:07:04,180 tai į talpyklą. 157 00:07:04,180 --> 00:07:06,630 Taigi dar kartą, ilguoju ir praradimas, tačiau visi jie 158 00:07:06,630 --> 00:07:08,260 galiausiai dizaino sprendimus. 159 00:07:08,260 --> 00:07:11,520 >> Taigi dabar mes ne tik baigti pasakojimą čia. 160 00:07:11,520 --> 00:07:15,790 Jei aš dabar grįžti atgal ir pirmyn ir atgal ir atgal, mes pradėjome taikyti ne tik 161 00:07:15,790 --> 00:07:18,060 HTML, bet PHP. 162 00:07:18,060 --> 00:07:20,786 Taigi profanas sąlygomis, kas nėra PHP darykime? 163 00:07:20,786 --> 00:07:22,770 >> Auditorija: [nesigirdi]. 164 00:07:22,770 --> 00:07:24,258 >> Davidas Malan: Kas tai? 165 00:07:24,258 --> 00:07:25,250 >> Auditorija: Įvesti logika į kodą. 166 00:07:25,250 --> 00:07:26,620 >> Davidas Malan: Taip, pristatyti Logika į savo kodą. 167 00:07:26,620 --> 00:07:29,570 Taigi tai tiesa programavimo kalba su vyriais ir kintamieji, ir 168 00:07:29,570 --> 00:07:32,620 funkcijas ir sąlygas, ir visi tai, ką mes jau naudojate kelią atgal 169 00:07:32,620 --> 00:07:33,780 kai nuo nulio. 170 00:07:33,780 --> 00:07:36,780 Ir PHP, mes matėme, gali būti naudojamas arba į komandų eilutę - tai 171 00:07:36,780 --> 00:07:39,190 neturi ką veikti su internete, nors tai 172 00:07:39,190 --> 00:07:43,150 tikrai ištakos ir ką jis linkęs būtų gerai ir palanki - 173 00:07:43,150 --> 00:07:47,130 , bet jūs galite naudoti PHP vien gamta į tai, kad ji turi print () 174 00:07:47,130 --> 00:07:49,660 funkcijos ir printf () funkcija, ar echo () funkcija. 175 00:07:49,660 --> 00:07:52,440 Yra kekių būdų, galima spausdinti tekstą su PHP. 176 00:07:52,440 --> 00:07:56,540 >> Todėl, jūs galite naudoti šią programavimas kalba išvesti tiksliai 177 00:07:56,540 --> 00:07:58,460 ką mes kalbame apie anksčiau. 178 00:07:58,460 --> 00:08:01,360 Jūs galite dinamiškai generuoti HTML. 179 00:08:01,360 --> 00:08:02,300 Gal ir ne visa tai. 180 00:08:02,300 --> 00:08:06,460 Gal kietieji kodas dalykų, pavyzdžiui, antraštės ir poraštės ir logotipas 181 00:08:06,460 --> 00:08:07,950 ir savo stiliui ir visa tai. 182 00:08:07,950 --> 00:08:11,190 Bet kažkas panašaus į p-rinkinys septynių, kur jūs manipuliuoti išteklius ir 183 00:08:11,190 --> 00:08:14,690 rodyti vartotojo portfelį, kuris vyksta dinamiškai keisti, galite 184 00:08:14,690 --> 00:08:18,960 tikrai naudoti PHP ir logika, tai suteikia jus kaip programavimo kalbą 185 00:08:18,960 --> 00:08:22,320 išvesties dinamiškai pogrupių Į puslapio. 186 00:08:22,320 --> 00:08:25,900 >> Taigi, kai jūs kalbate apie dinamišką svetaines, arba Web programavimas, tai 187 00:08:25,900 --> 00:08:27,200 Ką jūs iš tikrųjų kalbame apie. 188 00:08:27,200 --> 00:08:31,450 Naudojant kaip PHP kalbą, ar dalykų vadinamas Python ar Ruby, arba "Java", arba 189 00:08:31,450 --> 00:08:35,900 dar kitas kalbas, į užklausą duomenų bazę dažnai ar kitą serverį, ir 190 00:08:35,900 --> 00:08:38,580 tada dinamiškai išspjauti HTML. 191 00:08:38,580 --> 00:08:42,470 >> Dabar galutinis rezultatas, kaip panaikinti, yra kad dauguma interneto svetainių, HTML, 192 00:08:42,470 --> 00:08:45,970 įskaitant jūsų p-rinkinys septynių, tikriausiai bus didžiulė netvarka, jei 193 00:08:45,970 --> 00:08:48,060 pažvelgti į šaltinio kodas naršyklėje. 194 00:08:48,060 --> 00:08:49,010 Tai nėra baisi. 195 00:08:49,010 --> 00:08:51,550 Šiuo metu, kai mums rūpi stilius, mums rūpi 196 00:08:51,550 --> 00:08:52,740 Daiktai, kad rašote. 197 00:08:52,740 --> 00:08:56,240 Mes nerūpi stuff kad tai, ką jūsų kodas išėjimai. 198 00:08:56,240 --> 00:08:59,520 Taigi nesijaudinkite įdubimas Čia jei tai PHP tai 199 00:08:59,520 --> 00:09:01,190 faktiškai išvedė stuff. 200 00:09:01,190 --> 00:09:04,430 Galų gale, naršyklė nerūpi, ir žmogaus nebus ieškote 201 00:09:04,430 --> 00:09:05,400 prie šaltinio vistiek. 202 00:09:05,400 --> 00:09:09,000 Mes personalas, pavyzdžiui, būtų būti žiūri į jūsų PHP. 203 00:09:09,000 --> 00:09:13,440 >> Taigi, leiskite man duoti trumpą pavyzdį dabar kodėl kitur tai gali būti naudinga. 204 00:09:13,440 --> 00:09:18,620 Taigi, tiesą sakant, aš negaliu prisiminti paskutinį kartą aš naudojamas C išspręsti problemą 205 00:09:18,620 --> 00:09:19,620 realus pasaulis. 206 00:09:19,620 --> 00:09:22,330 Tai tikriausiai buvo aukštosios mokyklos, kai Man reikia naudoti kalbą, kuri 207 00:09:22,330 --> 00:09:26,710 buvo gana žemo lygio ir man galimybė padaryti kažką labai aukšto 208 00:09:26,710 --> 00:09:30,720 atlikti tikrai sutaupyti daug procesoriaus ciklai, kaip galėjau, didele dalimi 209 00:09:30,720 --> 00:09:33,990 nes aš naudoju didelius duomenų rinkinius, ir kiekvieną procesoriaus ciklas skaičiuojamas. 210 00:09:33,990 --> 00:09:37,750 Ir tiesą sakant, net ir tokius dalykus kaip telefonai šių dienų, ir kiti prietaisai 211 00:09:37,750 --> 00:09:39,910 jei jūs neturite pakankamai turėti kiek atminties ir jūs neturite pakankamai turėti kuo 212 00:09:39,910 --> 00:09:44,160 daug CPU, trumpo kalbas vis dar patraukli. 213 00:09:44,160 --> 00:09:47,290 >> Tačiau realiame pasaulyje, kai jūs tiesiog norite mesti šiek programą kartu su 214 00:09:47,290 --> 00:09:50,340 analizuoti tam tikrus duomenis, arba jūs surinkti Visa krūva registracijų už 215 00:09:50,340 --> 00:09:53,330 kai studentas grupė ir norite labai greitai automatizuoti siųsti laiškus 216 00:09:53,330 --> 00:09:56,240 po vieną į kiekvieną iš tų vieno registruotojai, jūs ketinate pasiekti, 217 00:09:56,240 --> 00:09:59,240 aukštesnio lygio kalba nei C, taip sakant. 218 00:09:59,240 --> 00:10:04,060 Kažkas panašaus PHP Python ar Ruby, arba puse tuzino kitų, kad egzistuoja 219 00:10:04,060 --> 00:10:04,550 šių dienų. 220 00:10:04,550 --> 00:10:07,200 Bet tie trys yra tikriausiai madinga dabar. 221 00:10:07,200 --> 00:10:10,840 >> Ir ką tai reiškia, kad galite atidaryti iki teksto redaktoriumi, pavyzdžiui, gedit arba 222 00:10:10,840 --> 00:10:14,030 labiausiai kas nors kitas, ir tada tiesiog pradėti rašyti kodą be nerimauti 223 00:10:14,030 --> 00:10:17,800 apie kompiliavimo, nereikia tikrai nerimauti atminties valdymas, 224 00:10:17,800 --> 00:10:20,820 turint omenyje, nors, kad mažai Niechlujstwo galų gale grįžti 225 00:10:20,820 --> 00:10:24,790 įkąsti, jei duomenų rinkinys gauna didesnis ar problema pasireiškia didelis. 226 00:10:24,790 --> 00:10:27,230 Bet ką tai reiškia mums yra taip. 227 00:10:27,230 --> 00:10:29,860 >> Leiskite man eiti į priekį ir paleisti Speller iš problema nustatyti šešių. 228 00:10:29,860 --> 00:10:33,480 Taigi tai yra mano trie pagrįstas įgyvendinimo kad aš naudojamas didelis 229 00:10:33,480 --> 00:10:35,500 lenta, kur atlikau ne taip gerai. 230 00:10:35,500 --> 00:10:38,720 Mes grįžti savaitę laiko ir peržiūrėti tiems, kurie nebuvo baigti viršuje 231 00:10:38,720 --> 00:10:40,430 didelis lenta mūsų paskutinio paskaita. 232 00:10:40,430 --> 00:10:44,520 Bet dabar, leiskite man eiti į priekį ir tik paleisti savo sprendimą, tekstą, ir mes padarysime 233 00:10:44,520 --> 00:10:48,460 King James Biblija, ir čia mes einame. 234 00:10:48,460 --> 00:10:51,080 >> Taigi tie, kurie visus tariamai žodžiai su rašybos klaidomis iš 235 00:10:51,080 --> 00:10:52,240 King James Biblija. 236 00:10:52,240 --> 00:10:55,560 Ir mano imtos pusę viso sekundę. 237 00:10:55,560 --> 00:10:58,270 Taigi ne per blogai apie tai pirma kompiuteris. 238 00:10:58,270 --> 00:11:01,540 Bet pagalvokite, kiek kodas turėjau parašyti. 239 00:11:01,540 --> 00:11:02,880 Pagalvokite, kiek kodas jums teko rašyti. 240 00:11:02,880 --> 00:11:06,170 Pagalvokite, kiek valandų jūs praleido D-salė ar jūsų bendrabučio ar kur 241 00:11:06,170 --> 00:11:07,890 faktiškai kodavimo sukurti tą sprendimą. 242 00:11:07,890 --> 00:11:11,850 >> Na, jei aš iš tikrųjų turi aukštesnio lygio kalba kaip PHP, atkreipti dėmesį į 243 00:11:11,850 --> 00:11:13,350 ką aš galiu padaryti čia. 244 00:11:13,350 --> 00:11:16,410 Pirma, manau, kad tai yra vietoj Jūsų platinimo kodas. 245 00:11:16,410 --> 00:11:17,790 Šis failas yra vadinamas Speller. 246 00:11:17,790 --> 00:11:20,220 Ji yra kaip šiandien platinimo kodas. 247 00:11:20,220 --> 00:11:22,670 Ir aš ruošiuosi bangos ranką ne daugiau detales, bet iš tikrųjų tai yra 248 00:11:22,670 --> 00:11:25,500 įdomus pavyzdys, kaip galbūt uostas kalbą 249 00:11:25,500 --> 00:11:28,870 kaip C per PHP. 250 00:11:28,870 --> 00:11:33,420 Aš tiesiog atidarė du tekstinius langus, vienas su mano C versija speller.c, 251 00:11:33,420 --> 00:11:36,960 ir aš ką tik pradėjo versti jį į savo galvą į PHP ir įrašyti ją naudojant 252 00:11:36,960 --> 00:11:38,840 artimiausi lygiavertes funkcijas. 253 00:11:38,840 --> 00:11:40,100 >> Taigi, kai kurie iš šių dalykų yra skirtingi. 254 00:11:40,100 --> 00:11:43,730 Mes matėme paskutinį kartą, kad PHP nenaudoja yra gana vienodai. 255 00:11:43,730 --> 00:11:47,050 Jis naudoja reikalauti paprastai, nors įtraukti egzistuoja. 256 00:11:47,050 --> 00:11:50,330 Apibrėžti yra šiek tiek skiriasi nuo # Define C, bet tai 257 00:11:50,330 --> 00:11:51,890 kaip mes darome konstantą. 258 00:11:51,890 --> 00:11:55,860 $ Argc Pasirodo egzistuoja PHP programavimo kalba, taip, mes matėme, kad prieš. 259 00:11:55,860 --> 00:11:58,650 Tai tik kintamieji, visi kurie prasideda su dolerio ženklais. 260 00:11:58,650 --> 00:12:00,590 Prisiminkite tai tik krūva kintamų taškų. 261 00:12:00,590 --> 00:12:03,970 >> Taigi, ilga istorija trumpa, kviečiame Jus vartyti tai jei įdomu, tai yra 262 00:12:03,970 --> 00:12:10,010 beveik linija-už-line konversija C portalo speller.c į PHP. 263 00:12:10,010 --> 00:12:12,630 Ir jūs galite tai padaryti dar kartą pustuzinis kitų kalbų. 264 00:12:12,630 --> 00:12:14,910 >> Bet įdomiausia yra tai. 265 00:12:14,910 --> 00:12:16,910 Ar kas atvirai tikėtasi tai. 266 00:12:16,910 --> 00:12:20,790 Leiskite man eiti į priekį ir įveskite apie dictionary.php, ir teiginys, kad aš 267 00:12:20,790 --> 00:12:23,670 ruošiuosi eiti į priekį ir iš naujo įgyvendinti problema nustatyti šeši čia. 268 00:12:23,670 --> 00:12:27,530 >> Taigi, tegul pirma pasiūlyti, kad šis failą, kuris bus įgyvendinamas 269 00:12:27,530 --> 00:12:30,550 PHP, todėl leiskite man atidaryti savo žymas, pavyzdžiui, kad. 270 00:12:30,550 --> 00:12:34,780 Leiskite man duoti save pasaulio kintamasis, $ dydis tampa lygus nuliui. 271 00:12:34,780 --> 00:12:36,710 Ir aš norėčiau duoti pats maišos lentelė. 272 00:12:36,710 --> 00:12:38,110 Aš naudoti maišos lentelę šio dalyko. 273 00:12:38,110 --> 00:12:42,070 Kaip paskelbti maišos lentelę PHP? 274 00:12:42,070 --> 00:12:42,990 Atlikta. 275 00:12:42,990 --> 00:12:43,980 Gerai. 276 00:12:43,980 --> 00:12:48,870 >> Taigi skliaustai atidaromi skliaustai uždaromi atstovauja kas PHP programavimo kalba, kaip mes matėme? 277 00:12:48,870 --> 00:12:51,850 Masyvas, bet matrica, galėtų būti masyvą. 278 00:12:51,850 --> 00:12:54,320 Asociatyvus masyvas duomenų struktūra, 279 00:12:54,320 --> 00:12:55,860 susieja raktus vertybes. 280 00:12:55,860 --> 00:12:59,430 >> Dabar paprasčiausias programinio indeksuojami masyvas, šie raktai yra tai, ką? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Nulis, vienas, du, trys, tiesa? 283 00:13:03,960 --> 00:13:08,780 Old school stuff atgal nuo C. Bet ji negali taip pat būti simbolių eilutės, pavyzdžiui, foo, ir bare, 284 00:13:08,780 --> 00:13:12,210 arba Maxwell, ar toks eilutę. 285 00:13:12,210 --> 00:13:14,240 Taigi aš galiu išnaudoti, kad vos akimirką. 286 00:13:14,240 --> 00:13:17,550 >> Leiskite man eiti į priekį ir paskelbti kaip funkcija - 287 00:13:17,550 --> 00:13:19,020 darykime apkrovą () pirmasis. 288 00:13:19,020 --> 00:13:20,690 Taigi funkcija apkrova (). 289 00:13:20,690 --> 00:13:23,440 Ir PHP yra šiek tiek skiriasi tuo, kad jūs tiesiog įvesti funkciją, bet jūs 290 00:13:23,440 --> 00:13:24,930 ne tipo grąžinimo tipą. 291 00:13:24,930 --> 00:13:28,760 Aš ruošiuosi eiti į priekį ir pasakyti, kad apkrova () funkcija turėtų imtis 292 00:13:28,760 --> 00:13:31,000 argumentas $ žodynas, tiesiog kaip C redakcijoje. 293 00:13:31,000 --> 00:13:32,510 Aš darau, kad iš atminties. 294 00:13:32,510 --> 00:13:34,910 >> Ir aš siūlau, kad aš ketina tai padaryti. 295 00:13:34,910 --> 00:13:37,080 Aš tiesiog ketina daryti foreach. 296 00:13:37,080 --> 00:13:40,710 Aš ruošiuosi skambinti funkcija vadinama file (), einančios į to pavadinimo 297 00:13:40,710 --> 00:13:44,990 failą, kuris yra kintantis $ Žodynas kaip $ žodį. 298 00:13:44,990 --> 00:13:49,410 Ir tada viduje mano už linijos čia, aš ruošiuosi eiti į priekį ir laikyti savo 299 00:13:49,410 --> 00:13:57,440 $ Stalo, kad $ žodis tampa tiesa. 300 00:13:57,440 --> 00:13:57,918 Atlikta. 301 00:13:57,918 --> 00:14:01,264 Oi, palauk. 302 00:14:01,264 --> 00:14:02,422 Atlikta. 303 00:14:02,422 --> 00:14:02,760 Gerai. 304 00:14:02,760 --> 00:14:04,970 >> Tai yra apkrova () funkcija pasakyti, PHP. 305 00:14:04,970 --> 00:14:05,865 Dabar, kodėl tai veikia? 306 00:14:05,865 --> 00:14:07,010 Ir aš tipo cheating čia. 307 00:14:07,010 --> 00:14:09,980 >> Taigi, vienas, foreach matėme trumpai paskutinį kartą. 308 00:14:09,980 --> 00:14:13,680 Tai tiesiog reiškia, kad jūs galite pakartoti per be grisus su i masyvas 309 00:14:13,680 --> 00:14:16,150 ir n ir plius plius ir visa tai. 310 00:14:16,150 --> 00:14:21,350 Žodynas yra žinoma failo pavadinimas, kažkas panašaus didelė ar maža, du 311 00:14:21,350 --> 00:14:22,830 žodynai mes naudojamas paskutinį kartą. 312 00:14:22,830 --> 00:14:26,715 Failas yra funkcija, kuri atveria tekstą failą, jį perskaito pagal kiekvieną eilutę, ir 313 00:14:26,715 --> 00:14:29,840 rankos jums atgal didžiulis masyvas, kiekvienas iš kurių elementų 314 00:14:29,840 --> 00:14:31,340 linija nuo šios bylos. 315 00:14:31,340 --> 00:14:36,040 Štai iš fopen derinys, ir fread, ir nors kilpa, ir fclose, 316 00:14:36,040 --> 00:14:37,080 ir visa tai. 317 00:14:37,080 --> 00:14:40,150 Galiausiai, kaip žodis reiškia tiesiog tai kintamasis aš turėti prieigą prie 318 00:14:40,150 --> 00:14:41,890 kiekviename iteracijos šioje kilpą. 319 00:14:41,890 --> 00:14:46,910 >> Taigi trumpai tariant, tai vienas linijinės čia reiškia atverti failą, kurio vardas yra 320 00:14:46,910 --> 00:14:50,750 žodynas, kintamasis, pakartoti per ji pagal kiekvieną eilutę, kiekvieną kartą jums 321 00:14:50,750 --> 00:14:54,290 linija, parduotuvė kintamasis vadinamas žodžiu, ir tada kažką daryti su žodžiu. 322 00:14:54,290 --> 00:14:55,280 Ką norite daryti? 323 00:14:55,280 --> 00:14:58,110 Noriu įdėti žodį į mano maišos lentelėje. 324 00:14:58,110 --> 00:15:00,860 >> Na, aš galiu įdėti kažką savo maišos lentelę kaip C 325 00:15:00,860 --> 00:15:02,140 naudojant skliaustus. 326 00:15:02,140 --> 00:15:03,660 Tai mano maišos lentelės pavadinimas. 327 00:15:03,660 --> 00:15:07,180 Aš ruošiuosi į indeksą į šį maišos stalo šioje vietoje. 328 00:15:07,180 --> 00:15:08,920 Taigi, ne BRACKET nulį, o ne BRACKET vieną. 329 00:15:08,920 --> 00:15:11,990 Laikiklis citata citatos kažkas, ką tai žodis. 330 00:15:11,990 --> 00:15:15,200 Ir kaip jūs galite turėti savo maišos lentelės darbas trie, jūs tiesiog parduotuvė 331 00:15:15,200 --> 00:15:17,650 efektyviai Bulio netiesiogiai arba aiškiai. 332 00:15:17,650 --> 00:15:18,260 Atlikta. 333 00:15:18,260 --> 00:15:20,000 Aš saugoti vertė tiesa. 334 00:15:20,000 --> 00:15:23,150 >> Dabar yra pora dalykų Aš pjovimo kampų čia. 335 00:15:23,150 --> 00:15:27,720 Techniškai, ten bus erzina nauja eilutė, / n, pabaigoje 336 00:15:27,720 --> 00:15:28,820 kiekvieno iš šių žodžių. 337 00:15:28,820 --> 00:15:31,770 Taigi, aš tikriausiai turėtų skambinti PHP funkcija vadinama pjaustyti (), kuri bus 338 00:15:31,770 --> 00:15:33,460 gana pažodžiui pjaustyti, kad ne. 339 00:15:33,460 --> 00:15:35,020 Ir aš iš tikrųjų reikia padaryti vieną kitą dalyką. 340 00:15:35,020 --> 00:15:38,380 Aš tikriausiai turėtų prieaugio dydį kiekvienas iteracija, todėl aš nuolat stebėti 341 00:15:38,380 --> 00:15:39,560 visame pasaulyje, kas ji yra. 342 00:15:39,560 --> 00:15:43,180 Ir tiesą sakant, ir tai yra vienas iš stupider aspektai PHP, jei esate 343 00:15:43,180 --> 00:15:46,950 naudojant pasaulinį kintamąjį, reikia aiškiai pasakyti, kad esate. 344 00:15:46,950 --> 00:15:51,670 Taigi, aš ruošiuosi iš tikrųjų įvesti pasaulio $ Dydis, pasaulio $ stalo, o dabar 345 00:15:51,670 --> 00:15:52,690 Mano užduotis yra baigta. 346 00:15:52,690 --> 00:15:57,475 >> Taigi ne visai taip paprasta, kaip ir anksčiau, bet tikriausiai paėmė mažiau laiko nei C 347 00:15:57,475 --> 00:15:58,220 versija, gal? 348 00:15:58,220 --> 00:15:58,730 Gerai. 349 00:15:58,730 --> 00:16:00,390 >> Taigi dabar galime daryti patikrinimą () funkciją. 350 00:16:00,390 --> 00:16:04,300 Leiskite pamatyti, jei tai bent paėmė valandos pabaigos, kad ji paėmė mus C. Taigi 351 00:16:04,300 --> 00:16:06,500 leiskite man eiti į priekį ir paskelbti patikrinti kaip funkcija. 352 00:16:06,500 --> 00:16:09,070 Trunka argumentas žodžio, kuris yra ketina iš Speller. 353 00:16:09,070 --> 00:16:13,410 Ir aš tik ketina patikrinti, ar šis rodiklis isset, stalo 354 00:16:13,410 --> 00:16:18,400 laikiklis strtolower žodžio - 355 00:16:18,400 --> 00:16:20,590 tegul subalansuoti visi mano skliausteliuose - 356 00:16:20,590 --> 00:16:24,275 tada grąžina true. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Kita - 359 00:16:28,460 --> 00:16:30,330 tai buvo tikrai sunku šios programos dalis. 360 00:16:30,330 --> 00:16:31,940 Kita, return false. 361 00:16:31,940 --> 00:16:32,630 Atlikta. 362 00:16:32,630 --> 00:16:33,460 Štai patikrinimas (). 363 00:16:33,460 --> 00:16:34,520 >> Dabar, kodėl tai veikia? 364 00:16:34,520 --> 00:16:37,040 Na, vienas aš išlaikė žodį, kuris yra eilutė. 365 00:16:37,040 --> 00:16:41,400 Du, aš patikrinti viduje maišos stalo, kas vadinama $ stalo. 366 00:16:41,400 --> 00:16:45,470 Aš verčia jį mažosiomis telefonu funkcija gana panašus tolower () in 367 00:16:45,470 --> 00:16:48,580 C, bet tai nereiškia, kad visą žodį, ne vienas simbolis. 368 00:16:48,580 --> 00:16:52,680 Ir jei tai yra nustatyta, kitaip tariant, yra vertė, nustatyta, kitaip tariant, 369 00:16:52,680 --> 00:16:54,880 jei tai tiesa, tada taip, tai žodis. 370 00:16:54,880 --> 00:16:56,530 Nes aš jį ten su apkrova (). 371 00:16:56,530 --> 00:16:59,100 O jei ne, aš ruošiuosi grįžti klaidinga. 372 00:16:59,100 --> 00:17:00,090 >> Dabar kiti yra lengva. 373 00:17:00,090 --> 00:17:03,570 Funkcija dydis (), kaip man tai padaryti? 374 00:17:03,570 --> 00:17:05,230 Aš iš esmės padaryti grįžti $ dydžio. 375 00:17:05,230 --> 00:17:07,770 Bet aš techniškai reikia padaryti šią erzina dalykas. 376 00:17:07,770 --> 00:17:10,640 Ir iš tikrųjų iki išgirsti, buvau pjovimo vienas kampas per daug. 377 00:17:10,640 --> 00:17:12,920 Aš tikrai reikia padaryti pasaulinį $ lentelę. 378 00:17:12,920 --> 00:17:16,260 >> Bet tai, kas pasakyta, iškrauti). 379 00:17:16,260 --> 00:17:17,380 Iškrauti () yra nuostabi. 380 00:17:17,380 --> 00:17:20,500 Funkcija iškrovimo (). 381 00:17:20,500 --> 00:17:23,990 Kaip aš noriu įgyvendinti iškrauti ()? 382 00:17:23,990 --> 00:17:25,079 Atlikta. 383 00:17:25,079 --> 00:17:25,450 Gerai. 384 00:17:25,450 --> 00:17:28,900 >> Taigi iškrauti (), atminties valdymas visiškai pasirūpinta už jus 385 00:17:28,900 --> 00:17:31,800 kažkas panašaus į PHP ir daug iš aukštesnio lygio kalbų. 386 00:17:31,800 --> 00:17:32,600 Taigi tai yra nuostabu. 387 00:17:32,600 --> 00:17:36,080 Kaip, kodėl po velnių mes praleido praeitį Aštuoni plius savaičių trukmės C raštu 388 00:17:36,080 --> 00:17:41,030 matyt tikrai lėtai, tikrai laikas suvartojantys problemų su dešimtimis valandų 389 00:17:41,030 --> 00:17:42,530 darbo pagal mūsų diržų? 390 00:17:42,530 --> 00:17:46,110 >> Na, vienas dalykas, tai gali dirbti gerai jau mažoms programoms. 391 00:17:46,110 --> 00:17:47,840 Tai tikrai pagreitino mano kūrimo laikas. 392 00:17:47,840 --> 00:17:49,790 Bet pažiūrėkime, kas vyksta realiame pasaulyje. 393 00:17:49,790 --> 00:17:52,370 >> Leiskite man eiti į šį katalogą terminalo lange. 394 00:17:52,370 --> 00:17:53,370 Yra Speller. 395 00:17:53,370 --> 00:17:56,570 Ir pastebėsite, kaip panaikinti, ir galbūt susidūrė su tai problema nustatyti 396 00:17:56,570 --> 00:17:58,190 šešių ar problema septynis. 397 00:17:58,190 --> 00:18:01,610 Jūs neturite griežtai turi galų PHP failus su. php. 398 00:18:01,610 --> 00:18:05,250 Jeigu jūs įtraukėte liniją, pavyzdžiui, kad pirmasis įvertinimas pačiame viršuje, tai specialios linijos 399 00:18:05,250 --> 00:18:10,980 sintaksė, kad iš esmės reiškia rasti Programa vadinama PHP ir naudoti jį 400 00:18:10,980 --> 00:18:12,270 interpretuoti šį failą. 401 00:18:12,270 --> 00:18:15,410 Taigi dabar niekas iš tikrųjų nežino, kad Bėgu PHP programą. 402 00:18:15,410 --> 00:18:19,860 Galiu paleisti jį kaip nors buvo kažkas rengiami C. 403 00:18:19,860 --> 00:18:20,650 >> Bet čia dalykas. 404 00:18:20,650 --> 00:18:21,600 Tiesą sakant, galime tai padaryti ir vėl. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Yra Speller. 407 00:18:25,390 --> 00:18:26,720 Gerai, 0,44 sek. 408 00:18:26,720 --> 00:18:28,080 Jis gavo greičiau šį kartą. 409 00:18:28,080 --> 00:18:29,745 >> Dabar eikime į PHP versiją. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Malonus liesti. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Bet tik pagalvokite, kiek daug laiko Įrašiau ne darbo valandomis. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 Gerai. 416 00:18:57,790 --> 00:19:01,020 >> Taigi, 3,59 sekundės, o iš tikrųjų neatrodo tiksli arba. 417 00:19:01,020 --> 00:19:03,710 Bet tai todėl, kad ilga istorija trumpa, kai jūs spausdinate iš didžiulis 418 00:19:03,710 --> 00:19:06,840 stuff ekrane, kad pati lėtina dalykų žemyn. 419 00:19:06,840 --> 00:19:11,260 Kas iš tikrųjų paėmė centrinį procesorių prietaisas buvo 3,59 sekundės, į 420 00:19:11,260 --> 00:19:15,260 kontrastas C, kuris buvo 0,44 sekundžių neseniai. 421 00:19:15,260 --> 00:19:17,620 Tai tikrai Nutarimas dydis skiriasi. 422 00:19:17,620 --> 00:19:20,280 >> Taigi, kur yra, kad kaina iš? 423 00:19:20,280 --> 00:19:21,790 Kodėl taip yra daug lėtesnis? 424 00:19:21,790 --> 00:19:24,220 Kodėl PHP atlikti taip prastai? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> Auditorija: Jūs nelabai naudoti maišos lentelę. 427 00:19:26,550 --> 00:19:27,710 >> DAVID Malan: aš tikrai ne naudoti maišos lentelę. 428 00:19:27,710 --> 00:19:28,760 Taigi aš tipo padarė. 429 00:19:28,760 --> 00:19:29,870 Todėl masyvą. 430 00:19:29,870 --> 00:19:33,650 Greičiausiai, jei ne PHP žmonės tikrai protingas, jie naudojami po 431 00:19:33,650 --> 00:19:39,520 dangtis tikrasis maišos lentelė įgyvendinti kažką panašaus į C arba C + +. 432 00:19:39,520 --> 00:19:41,290 Tačiau. 433 00:19:41,290 --> 00:19:42,760 Taip. 434 00:19:42,760 --> 00:19:44,010 >> PUBLIKA: [nesigirdi]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID Malan: Taip. 437 00:19:47,080 --> 00:19:50,780 Taigi, kiekvienas iš funkcijų parašiau dabar - Tiesą sakant, galite pasakyti, kad dar kartą 438 00:19:50,780 --> 00:19:51,480 tiek garsiau? 439 00:19:51,480 --> 00:19:54,509 >> PUBLIKA: Kiekvienas iš funkcijų, kurios jūs įtraukti turi daug daugiau visą 440 00:19:54,509 --> 00:19:56,610 talpa ne - 441 00:19:56,610 --> 00:19:57,550 >> DAVID Malan: Taigi, kad labai tiesa. 442 00:19:57,550 --> 00:20:01,490 Yra daug daugiau pridėtinių, kad mes nelabai matau, sutelkiant dėmesį tik į 443 00:20:01,490 --> 00:20:03,730 dictionary.php, o aš tik parašė. 444 00:20:03,730 --> 00:20:08,020 Priešingai, ten visa vertėjas vyksta fone. 445 00:20:08,020 --> 00:20:12,040 Iš tiesų, kai išbėgau šią programą, ji nebuvo veikia apibendrina nulių ir 446 00:20:12,040 --> 00:20:14,290 skirta mano Intel CPU. 447 00:20:14,290 --> 00:20:19,270 Greičiau, jis buvo rodomi pagal kiekvieną eilutę PHP kodas, kuris atrodo lygiai 448 00:20:19,270 --> 00:20:20,350 kaip mes jį įvedėte. 449 00:20:20,350 --> 00:20:22,475 Ir todėl, kai jūs naudojate aiškinama kalba, jums 450 00:20:22,475 --> 00:20:23,850 iš tikrųjų sumokėti šią kainą. 451 00:20:23,850 --> 00:20:27,010 Ji ketina imtis šiek tiek laiko skaityti Jūsų failas iš viršaus į apačią, iš kairės į 452 00:20:27,010 --> 00:20:30,740 Gerai, o tada atlikti kiekvienas linija vėl ir vėl. 453 00:20:30,740 --> 00:20:34,250 >> Dabar iš tikrųjų, ypač internete, jūs iš tikrųjų galite paspartinti šį procesą 454 00:20:34,250 --> 00:20:38,660 spartinimo apie rezultatus PHP kodas yra aiškinama. 455 00:20:38,660 --> 00:20:41,640 Ir tai prasminga internete, nes jei turite ne vienas vartotojas, pavyzdžiui, 456 00:20:41,640 --> 00:20:46,300 man čia, bet 1000 arba 10.000 vartotojų, tada gal pirmą kartą byla 457 00:20:46,300 --> 00:20:49,050 atvertas tai lėtas, tačiau vėliau tai daug greičiau. 458 00:20:49,050 --> 00:20:51,000 >> Bet tai taip pat, vėlgi, yra kompromisas. 459 00:20:51,000 --> 00:20:53,870 Ir kažką panašaus tyrimo duomenų nustatyti, ar net kažką didelis kaip 460 00:20:53,870 --> 00:20:58,330 tai, vartotojai ilgainiui pradeda jausti, kad sulėtėjimo. 461 00:20:58,330 --> 00:21:02,670 >> Taigi, trumpai tariant, aiškinama kalbos labai madingas, labai populiarus, ir 462 00:21:02,670 --> 00:21:06,710 atvirai turbūt kalbas turėtų pasiekti, kai sprendžiant problemas 463 00:21:06,710 --> 00:21:08,200 po CS50. 464 00:21:08,200 --> 00:21:12,720 Bet suprasti, kiek daug jūs tikrai atsižvelgiant į suteiktas po gaubtu 465 00:21:12,720 --> 00:21:15,910 tikrai tie pastaruosius keletą savaičių maišos stalai, ir medžiai, ir stengiasi, 466 00:21:15,910 --> 00:21:20,770 kurie naudojami galiausiai iš tikrųjų įgyvendinti tokius dalykus kaip atviros laikiklio, 467 00:21:20,770 --> 00:21:24,200 kvadratas laikiklis, kurį dabar galime Dėkojame laiko savaime suprantamu dalyku. 468 00:21:24,200 --> 00:21:26,360 >> Taigi galime pažvelgti dabar Šioje interneto kontekste. 469 00:21:26,360 --> 00:21:29,890 Ir jau minėjau praeitą kartą, kad yra iš superglobals krūva PHP, kad 470 00:21:29,890 --> 00:21:32,490 tikrai ne aktualus į komandų eilutę. 471 00:21:32,490 --> 00:21:36,210 Jie svarbesnis kontekste Naudojant PHP interneto kontekste. 472 00:21:36,210 --> 00:21:41,220 Taigi veikia PHP žiniatinklio serveryje, siekiant kurti stuff like HTML. 473 00:21:41,220 --> 00:21:44,540 >> Ir mes pažvelgė į $ _GET ir $ _POST, ir tai kur automatiškai naudotojų 474 00:21:44,540 --> 00:21:49,100 įvesties baigiasi tiesiog jei jūs pateikiate suformuoti į failą, kuris baigiasi. Php dėl interneto 475 00:21:49,100 --> 00:21:50,460 serverio kaip prietaiso. 476 00:21:50,460 --> 00:21:53,310 Bet pažvelkime trumpai $ _COOKIE Ir $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> Į profanas sąlygomis, kas yra slapukas, kaip jums suprasti jį kontekste 478 00:21:56,670 --> 00:21:58,220 naudojant interneto? 479 00:21:58,220 --> 00:21:59,450 >> PUBLIKA: Failų kompiuteryje. 480 00:21:59,450 --> 00:21:59,920 >> DAVID Malan: Taip. 481 00:21:59,920 --> 00:22:03,500 Tai į vartotojo kompiuterį failą pasodinti kokia tinklapyje 482 00:22:03,500 --> 00:22:04,410 atsitiktų aplankyti. 483 00:22:04,410 --> 00:22:07,334 Taigi, kai jūs einate į "Facebook", kai jūs einate į bankofamerica.com, kai jūs einate 484 00:22:07,334 --> 00:22:10,330 į google.com, kai jūs einate į beveik bet interneto pasaulyje šių dienų, 485 00:22:10,330 --> 00:22:14,850 įskaitant cs50.net, slapukas pasodinti kompiuteryje, kuris yra 486 00:22:14,850 --> 00:22:19,800 arba vertė saugomi RAM savo kompiuteris naršyklės atmintyje arba 487 00:22:19,800 --> 00:22:22,800 kartais tikrai failas saugomas kietajame diske. 488 00:22:22,800 --> 00:22:26,960 >> Ir tai, kas paprastai saugomi tame faile nėra jūsų vartotojo vardas, o ne savo 489 00:22:26,960 --> 00:22:31,060 slaptažodis, paprastai nėra kažkas jautrus, nebent svetainė yra ne taip 490 00:22:31,060 --> 00:22:35,040 gerai su jų saugumu, o tai yra didelis unikalus identifikatorius tarp 491 00:22:35,040 --> 00:22:35,680 kitų dalykų. 492 00:22:35,680 --> 00:22:38,920 Tai didelis atsitiktinis skaičius pasodinti savo kompiuteris, bet jūs galite galvoti, kaip 493 00:22:38,920 --> 00:22:42,740 tarsi virtualus ranka spaudas, kaip iš klubas, arba kai atrakcionų parkas, kuris 494 00:22:42,740 --> 00:22:47,160 leidžia darbuotojams, tos savininkai paslaugos, prisiminti, kas jūs esate. 495 00:22:47,160 --> 00:22:51,030 Taigi, jei didelis atsitiktinių skaičių yra tarsi 12345678, nors tai akivaizdžiai 496 00:22:51,030 --> 00:22:54,180 ne per daug atsitiktinių, manau, kad rankų antspaudas, kad kai Jūs lankotės 497 00:22:54,180 --> 00:22:57,930 facebook.com pirmą kartą, jie antspauduoja šį numerį savo ranka. 498 00:22:57,930 --> 00:23:01,510 Ir tada, nes jūs kalbate HTTP, jūs yra naršyklė, o dėl "Facebook" 499 00:23:01,510 --> 00:23:06,440 akivaizdžiai kalba pats kaip web serverio protokolas HTTP sako, kad 500 00:23:06,440 --> 00:23:09,930 bet kada vėliau lankotės facebook.com, ar tai antrasis 501 00:23:09,930 --> 00:23:13,560 vėliau, po valandos, net kitą dieną, taip ilgai, kaip jūs neturite aiškiai 502 00:23:13,560 --> 00:23:17,050 atsijungę, kuris efektyviai yra kaip plauti rankas. 503 00:23:17,050 --> 00:23:20,280 HTTP sako turėtumėte pateikti savo rankų antspaudas kaskart 504 00:23:20,280 --> 00:23:22,020 grįžti į tą svetainę. 505 00:23:22,020 --> 00:23:24,390 >> Ką "Facebook" gi yra jie pažvelgti į tą rankų antspaudu ir 506 00:23:24,390 --> 00:23:26,850 jie sako, oi, 123456789. 507 00:23:26,850 --> 00:23:30,260 Aš nežinau, iš pirmo žvilgsnio, kad tai David Malan Kembridže, 508 00:23:30,260 --> 00:23:34,690 Masačusetsas, tačiau jie gali patikrinti jų duomenų bazė ir sako, oi, asmuo 509 00:23:34,690 --> 00:23:39,930 kurio kompiuterio mes pasodinti 123456789 David Malan iš Kembridžo, 510 00:23:39,930 --> 00:23:40,440 Masačusetsas. 511 00:23:40,440 --> 00:23:46,000 Parodykime, kad vartotojas tada jo aprašymą puslapis ar jo Naujienų. 512 00:23:46,000 --> 00:23:49,660 >> Bet yra problema čia, jei šis kaip interneto tiesų veikia. 513 00:23:49,660 --> 00:23:51,390 Leiskite pažvelgti greitai pavyzdžiui išvaizdą. 514 00:23:51,390 --> 00:23:55,190 Leiskite tikrųjų eiti pasakyti facebook.com. 515 00:23:55,190 --> 00:23:58,130 Bet kol mes galime eiti ten, leiskite man eiti į priekį ir atverti Chrome " 516 00:23:58,130 --> 00:23:59,790 Inspektorius čia. 517 00:23:59,790 --> 00:24:01,140 Leiskite pažvelgti į tinklo kortelę. 518 00:24:01,140 --> 00:24:06,020 O dabar eikime į priekį ir įveskite į https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 Ir aš darau, kad taip, kad mes nematome visų šių nukreipimų ir atliekų 520 00:24:09,410 --> 00:24:10,660 laiko ieško per juos. 521 00:24:10,660 --> 00:24:12,690 Leiskite paspauskite Enter. 522 00:24:12,690 --> 00:24:13,130 >> Gerai. 523 00:24:13,130 --> 00:24:14,580 Mes matome visa krūva prašymų. 524 00:24:14,580 --> 00:24:15,640 Ateina "Facebook". 525 00:24:15,640 --> 00:24:16,930 Yra visa krūva failų. 526 00:24:16,930 --> 00:24:19,290 Ir čia, už mano paminėti Latency paskutinį kartą, tai 527 00:24:19,290 --> 00:24:21,240 HTTP prašymus daug. 528 00:24:21,240 --> 00:24:23,700 Bet pirmasis tikriausiai įdomiausia. 529 00:24:23,700 --> 00:24:26,420 >> Taigi leiskite pereikite čia, ir Aš padidinti per sekundę. 530 00:24:26,420 --> 00:24:29,090 Tai ketina būti natūra netvarka, bet pažiūrėkime. 531 00:24:29,090 --> 00:24:31,660 "Facebook" siunčia mums visa krūva daiktų. 532 00:24:31,660 --> 00:24:33,490 >> Bet Whoa, įdomu. 533 00:24:33,490 --> 00:24:37,880 Jie sodinti ne vienas, bet keturi rankų antspaudus ant mano rankos čia. 534 00:24:37,880 --> 00:24:40,400 Set-Cookie, Set-Cookie, set-cookie, set-cookie. 535 00:24:40,400 --> 00:24:44,030 Ir yra keletas funkcijų čia. 536 00:24:44,030 --> 00:24:46,170 Visi jie paminėti keletą rūšies pabaigos. 537 00:24:46,170 --> 00:24:50,090 Ir atrodo, kad "Facebook" tikisi, prisiminti mane iki 2015 metų. 538 00:24:50,090 --> 00:24:53,670 Štai matyt laiką, per kurį Turiu išsiregistruoti ar jie bus tik 539 00:24:53,670 --> 00:24:55,710 automatiškai daryti prielaidą, aš negrįžta. 540 00:24:55,710 --> 00:24:57,840 Taigi, tai tikrai geras daug laiko. 541 00:24:57,840 --> 00:24:59,170 >> Ir keletas kitų viskas čia vyksta. 542 00:24:59,170 --> 00:25:03,036 Šis Slapukas atrodo prievarta ištrinti sakydamas, kad tai baigėsi 1970 543 00:25:03,036 --> 00:25:04,460 prieš slapukus egzistavo. 544 00:25:04,460 --> 00:25:06,510 Taigi, naršyklė tiesiog vyksta prisiimti Gerai, kaip 545 00:25:06,510 --> 00:25:07,910 plauti rankas antspaudu. 546 00:25:07,910 --> 00:25:11,240 >> Bet dabar, kai mano naršyklė leidžia vėlesnis prašymas - 547 00:25:11,240 --> 00:25:14,340 leiskite man eiti į priekį ir tai padaryti vėl ir vėl. 548 00:25:14,340 --> 00:25:18,170 Dabar leiskite man pereiti į viršų prašymą ir eiti žemyn 549 00:25:18,170 --> 00:25:20,760 čia prašyti antraštes. 550 00:25:20,760 --> 00:25:21,390 Pastebėti tai. 551 00:25:21,390 --> 00:25:25,280 Taigi, dabar aš pagal ne atsako antraščių, bet pastebėsite, kad jis sako užklausos antraštes. 552 00:25:25,280 --> 00:25:29,220 Ir pastebėsite, kad mano naršyklė dalis savo prašymą po to pradeda reload turi 553 00:25:29,220 --> 00:25:32,780 išsiunčiamas likus mažiausiai po informacija. 554 00:25:32,780 --> 00:25:34,670 Nenustatyta-slapukas, bet slapukas. 555 00:25:34,670 --> 00:25:38,750 Taigi tai yra linija, HTTP, kad sakant, jei mano naršyklė yra tarsi 556 00:25:38,750 --> 00:25:43,340 nekeliant žinau, jog jis pateikdamas mano ranką "Facebook" patikrinimą. 557 00:25:43,340 --> 00:25:46,020 >> Taigi šie slapukai gali būti naudojamas tada už ką? 558 00:25:46,020 --> 00:25:49,420 Prisiminti, kas jūs esate, arba prisiminti, kaip daug kartų jūs buvote ten, ar 559 00:25:49,420 --> 00:25:50,280 tikrai nieko. 560 00:25:50,280 --> 00:25:52,742 >> Taigi čia yra counter.php. 561 00:25:52,742 --> 00:25:53,780 Ir leiskite man padidintumėte šriftu. 562 00:25:53,780 --> 00:25:58,380 Ir kiekvieną kartą, kai aš iš naujo įkelkite šį puslapį, pranešimą tai prisiminti, kiek kartų 563 00:25:58,380 --> 00:25:59,250 Aš buvau ten. 564 00:25:59,250 --> 00:26:00,570 Na, kad ne visi, kad įspūdingas. 565 00:26:00,570 --> 00:26:03,140 Tegul tik uždaryti šią kortelę, o dabar grįžkime prie 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> O, tai įdomu. 568 00:26:08,970 --> 00:26:10,960 Jis vis dar prisiminė, net nors aš uždarytas skirtuką. 569 00:26:10,960 --> 00:26:14,010 Ir tiesą sakant, jei aš uždaryti naršyklę, jei įgyvendinami tinkamu būdu, aš 570 00:26:14,010 --> 00:26:18,950 vis dar gali prisiminti, kad šis naudotojas kas jis ar ji buvo pirmas kartas, ir 571 00:26:18,950 --> 00:26:22,840 tik vieną kartą aš einu į "Chrome" meniu, kuriame čia yra čia, ir eikite į 572 00:26:22,840 --> 00:26:25,990 Istorija ir spustelėkite Išvalyti naršymo duomenis, kaip kai kurie iš jūsų gali turėti 573 00:26:25,990 --> 00:26:33,050 Anksčiau, tik tada slapukus iš tikrųjų būti išbrauktas internete per 574 00:26:33,050 --> 00:26:33,970 plėtra. 575 00:26:33,970 --> 00:26:35,340 >> Taigi, jei mes einame - 576 00:26:35,340 --> 00:26:37,080 tegul uždaryti gedit čia. 577 00:26:37,080 --> 00:26:38,910 Ir jei mes eiti į šį failą. 578 00:26:38,910 --> 00:26:44,210 Leiskite man eiti į mūsų vhosts / localhost / visuomenės, ir leiskite man padaryti 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Atkreipkite dėmesį, kad tai yra gana paprasta programa. 581 00:26:48,350 --> 00:26:50,250 Tai gana paprasta tinklapyje. 582 00:26:50,250 --> 00:26:51,770 >> Taigi failo viršų yra tik komentarai. 583 00:26:51,770 --> 00:26:54,930 Bet štai nauja linija, kad jūs gali mačiau jau p nustatytą septynių, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Tai PHP kodo eilutę, kad iš esmės pasakoja žiniatinklio serverį, padaryti 586 00:27:00,380 --> 00:27:03,400 įsitikinkite, kad antspaudas rankas ir padaryti Būtinai patikrinkite rankų antspaudus. 587 00:27:03,400 --> 00:27:06,810 Štai ir viskas, kad linija daro, ir tai ar visi šiame procese mums. 588 00:27:06,810 --> 00:27:09,510 Tada pastebėsite, aš ką tik gavo du filialai čia. 589 00:27:09,510 --> 00:27:14,150 Jeigu skaitiklis raktas viduje šis ypatingą pasaulinį kintamąjį vadinamą 590 00:27:14,150 --> 00:27:18,010 $ _SESSION Nustatytas - kitais žodžiais tariant, jei ten kai vertė yra - 591 00:27:18,010 --> 00:27:22,440 galime gauti jį ir saugoti jį į vietos kintamasis vadinamas $ skaitiklis. 592 00:27:22,440 --> 00:27:27,000 Kitur, tegul priskirti $ skaitiklis numatytoji vertė 0. 593 00:27:27,000 --> 00:27:30,320 >> Dabar čia yra vienas aspektas, PHP tai tiek palaiminimas ir prakeikimas. 594 00:27:30,320 --> 00:27:32,080 PHP yra šiek tiek prastesnis. 595 00:27:32,080 --> 00:27:35,160 Taigi, o C, kas būtų apimtis skaitiklis buvo 596 00:27:35,160 --> 00:27:36,725 arba čia arba čia? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Tai buvo tik tiems garbanotas petnešos. 599 00:27:41,690 --> 00:27:42,090 Atspėk kas? 600 00:27:42,090 --> 00:27:46,920 PHP programavimo kalba, jis yra net ne iš tų, garbanotas petnešos, čia ir čia 601 00:27:46,920 --> 00:27:49,120 ir čia, ir čia, ir net žemiau. 602 00:27:49,120 --> 00:27:52,400 Taigi aš sakau, tai ta prasme, palaiminimas kad jūs neturite galvoti, kaip 603 00:27:52,400 --> 00:27:54,070 sunku, kaip mes padarėme savaites. 604 00:27:54,070 --> 00:27:56,880 Bet jis taip pat iš į, kad prakeikimas tiek , nesvarbu, kur jūs naudojate kintamojo 605 00:27:56,880 --> 00:28:00,020 PHP, bent jau kaip ši programa, tai visame pasaulyje prieinama 606 00:28:00,020 --> 00:28:01,170 geriau ar blogiau. 607 00:28:01,170 --> 00:28:06,130 Taigi jūs turite turėti omenyje, kad dabar Jūsų kintamieji negali būti neapibrėžtas. 608 00:28:06,130 --> 00:28:07,640 Galbūt apibrėžta juos kitur. 609 00:28:07,640 --> 00:28:09,460 >> Bet ką aš ketinu daryti galiausiai? 610 00:28:09,460 --> 00:28:13,160 Aš ruošiuosi laikyti viduje, kad visuotinis kintamos vertės 611 00:28:13,160 --> 00:28:17,060 skaitliukas klavi rezultatą daro skaitiklis plius 1. 612 00:28:17,060 --> 00:28:18,910 Taigi, tai tik aritmetika kad tai 613 00:28:18,910 --> 00:28:20,590 incrementation tos skaitiklis. 614 00:28:20,590 --> 00:28:24,850 Ir tai, kad aš laikyti, kad vertė vėl čia yra tai, kad 615 00:28:24,850 --> 00:28:29,970 iš esmės atnaujinti duomenų bazę prisiminti, kad vartotojas 123456789 buvo 616 00:28:29,970 --> 00:28:31,010 čia du kartus. 617 00:28:31,010 --> 00:28:33,780 Ir kai aš tai padaryti dar kartą, kai kitą kartą perkraukite puslapį, jis ketina patikrinti 618 00:28:33,780 --> 00:28:36,710 mano ranka antspaudas ir sako, oi, vartotojas 123456789 yra dabar 619 00:28:36,710 --> 00:28:38,410 čia buvo tris kartus. 620 00:28:38,410 --> 00:28:43,390 >> Ir taip, kas PHP ir panašios kalbos daro mums yra jie suprasti 621 00:28:43,390 --> 00:28:47,720 , kaip, kur ir už kiek saugoti vertybes ši speciali 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 Ir tai superglobal kitą kartą aš apsilankykite puslapyje yra tarsi stebuklingai 624 00:28:52,750 --> 00:28:57,440 prieš apgyvendinta, alsuoja vertybes, ten buvo paskutinį kartą lankėtės, 625 00:28:57,440 --> 00:29:02,310 ar tai buvo antras prieš savaitę prieš arba 2013 ir mes dabar kalbame 626 00:29:02,310 --> 00:29:03,790 apie 2015. 627 00:29:03,790 --> 00:29:07,600 PHP ir web serveris rūpintis iš visa tai už jus. 628 00:29:07,600 --> 00:29:08,850 >> PUBLIKA: [nesigirdi]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID Malan: Kintamieji PHP yra iš esmės visada pasaulinė jei 631 00:29:15,760 --> 00:29:18,400 paskelbti juos viduje funkcijos, ir tada jie yra vietos, kad 632 00:29:18,400 --> 00:29:19,420 tik funkcija. 633 00:29:19,420 --> 00:29:22,300 Bet kadangi aš ne parašyta bet funkcijos, jie dabar efektyviai 634 00:29:22,300 --> 00:29:25,090 pasaulio per visą mano faile čia. 635 00:29:25,090 --> 00:29:26,040 >> Auditorija: Ar yra būdas jas vietos? 636 00:29:26,040 --> 00:29:28,470 >> DAVID Malan: Ar yra koks nors būdas padaryti jiems vietos? 637 00:29:28,470 --> 00:29:30,680 Tik vyniojimo juos į funkcijas. 638 00:29:30,680 --> 00:29:32,790 Kuris naujausią versiją PHP, tai galite padaryti su 639 00:29:32,790 --> 00:29:34,130 anoniminis funkcija. 640 00:29:34,130 --> 00:29:35,930 Bet daugiau, kad kontekstas JavaScript. 641 00:29:35,930 --> 00:29:37,260 Bet trumpas atsakymas yra ne. 642 00:29:37,260 --> 00:29:40,888 Ilgiau atsakymas yra "taip". 643 00:29:40,888 --> 00:29:42,380 Gražus. 644 00:29:42,380 --> 00:29:43,380 Geras viktorina klausimas. 645 00:29:43,380 --> 00:29:43,930 Gerai. 646 00:29:43,930 --> 00:29:47,760 >> Taigi, galiausiai, pati puslapis iš tikrųjų labai paprasta. 647 00:29:47,760 --> 00:29:51,470 Atkreipkite dėmesį, kad kai aš išeiti iš režimo PHP, prisiminti kad visa tai stuff žemyn 648 00:29:51,470 --> 00:29:53,700 Toliau yra tik ketina gauti iešmo iš žalio į naršyklę. 649 00:29:53,700 --> 00:29:57,050 Kuris yra gerai, nes aš noriu siųsti vartotojo keletas HTML, bet aš noriu 650 00:29:57,050 --> 00:29:59,140 dinamiškai atnaujina HTML. 651 00:29:59,140 --> 00:30:03,930 Ir dar vienas būdas galiu tai padaryti yra rūšiuoti labai greitai nukris atgal į PHP 652 00:30:03,930 --> 00:30:07,730 režimas, naudojimas skliaustai atidaromi klaustukas Lygybės ženklas, tada išėjimo vertė 653 00:30:07,730 --> 00:30:08,650 iš skaitiklis. 654 00:30:08,650 --> 00:30:12,360 >> Arba, jei tai atrodo šiek tiek paslaptingas, šis Lygybės ženklas iš tikrųjų yra tik keletas 655 00:30:12,360 --> 00:30:16,190 sintaksinis cukrus tai printf ($ skaitiklis). 656 00:30:16,190 --> 00:30:19,160 Bet tiesą sakant, tai tik šiek tiek negraži ir šiek tiek erzina tipo. 657 00:30:19,160 --> 00:30:23,660 Taigi PHP labai gražiai siūlo šią funkciją kur Jūs galite tiesiog pasakyti, kad daugiau 658 00:30:23,660 --> 00:30:25,450 glaustai tuo pačiu būdu. 659 00:30:25,450 --> 00:30:26,940 >> Taigi, kas vyksta po dangtis? 660 00:30:26,940 --> 00:30:31,210 Leiskite greitai pažvelgti į tinklo skirtukas čia counter.php. 661 00:30:31,210 --> 00:30:35,090 Ir leiskite man eiti į priekį ir pirmą kartą tegul išvalyti slapukus. 662 00:30:35,090 --> 00:30:38,670 Leiskite Išvalyti naršymo duomenis nuo laiko pradžia. 663 00:30:38,670 --> 00:30:39,680 Dabar grįžkime čia. 664 00:30:39,680 --> 00:30:41,340 Dabar galime iš naujo įkelkite puslapį. 665 00:30:41,340 --> 00:30:42,170 Ir aš vėl nuo nulio. 666 00:30:42,170 --> 00:30:44,810 Nes mano ranka antspaudas buvo išplauti, Aš dabar gauti naują slapuką. 667 00:30:44,810 --> 00:30:48,780 >> Iš tiesų, jei aš pažvelgti į tinklo skirtuko ir ieškoti atsakymo antraštes, skelbimo 668 00:30:48,780 --> 00:30:51,960 kad prietaisas siunčia man slapukas, kurio pavadinimas yra šiek tiek 669 00:30:51,960 --> 00:30:55,820 savavališkai, bet kokios pagrįstai, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 Ir tai siųsti man tai tikrai didelis atsitiktinis skaičius. 671 00:30:58,440 --> 00:30:59,440 Tai ne visai numeris. 672 00:30:59,440 --> 00:31:00,390 Tai ne visai šešioliktainis. 673 00:31:00,390 --> 00:31:03,600 Tai kai raidinę skaitmeninę eilutę natūra, bet matyt tai atsitiktinai. 674 00:31:03,600 --> 00:31:06,830 Ir tai yra ranka spaudas taip kalbėti, kad aš nuoroda į. 675 00:31:06,830 --> 00:31:11,960 >> Tuo tarpu, jei aš spustelėkite reload ir tada pažvelgti į šią antroje eilutėje mano sekundę 676 00:31:11,960 --> 00:31:17,600 prašymas, pranešimas, kad dabar mano prašymas antraštes įtraukti PHPSESSID lygu tai, 677 00:31:17,600 --> 00:31:19,390 nenustatytas-slapuką, bet tik slapukas. 678 00:31:19,390 --> 00:31:22,950 Ir tai mano naršyklės pristatymas Iš mano rankos antspaudą. 679 00:31:22,950 --> 00:31:28,820 >> Taigi dabar kaip erzina, o mes kalbame daugiau apie tai per savaitę arba tiek, bet 680 00:31:28,820 --> 00:31:31,590 Kokiu būdu tai padaryti jums pažeidžiami, "Facebook" paskyrą 681 00:31:31,590 --> 00:31:34,137 pažeidžiami, ir kiti tokie sudaro pažeidžiamas? 682 00:31:34,137 --> 00:31:35,510 >> PUBLIKA: Jei kas nors turi slapuką. 683 00:31:35,510 --> 00:31:36,750 >> DAVID Malan: Taip, jei kas nors turi slapuką. 684 00:31:36,750 --> 00:31:39,920 Aš turiu galvoje, tikrai, panašiai kaip kai kurie iš jūsų galėjo teisiamas kaip klubo ar 685 00:31:39,920 --> 00:31:44,030 atrakcionų parkas, jei bandysite ką nors kaip tai nukopijuoti antspaudą, nors 686 00:31:44,030 --> 00:31:47,560 atgal į kito asmens rankas, ir tada jis arba ji pristato jį kaip 687 00:31:47,560 --> 00:31:53,250 savo, jei ji iš tikrųjų tai atrodo identiški, 123456789, tada interneto 688 00:31:53,250 --> 00:31:57,980 serveris matyt tik ketina tikiuosi, kad tas vartotojas yra jums. 689 00:31:57,980 --> 00:32:01,450 >> Ir tai iš tiesų yra esminis grėsmė bet kuriuo metu galite naudoti slapukus 690 00:32:01,450 --> 00:32:05,420 nes jei kas nors tik apsimeta taip kalbėti slapuką, skaičiai, kas tai 691 00:32:05,420 --> 00:32:08,660 yra, bet išties kopijuodami ją , žiūrėdamas į savo kompiuterį 692 00:32:08,660 --> 00:32:09,890 ir yra kaip, Gerai. 693 00:32:09,890 --> 00:32:14,520 Dovydo Slapukas yra JJ3JIK ir tt, ir tada jie pakankamai protingas, kad žinotų 694 00:32:14,520 --> 00:32:18,080 kaip rūšiuoti rankiniu nusiunčia Slapukas iš naršyklės arba 695 00:32:18,080 --> 00:32:22,350 Programa jie rašo, jie galėtų visiškai prisijungti į svetainę kaip jūs. 696 00:32:22,350 --> 00:32:28,560 Tai nereiškia, kad sunku apsimesti kažkas, nebent mes peržiūrėti p-rinkinys 697 00:32:28,560 --> 00:32:30,790 du, kuris pristatė ką? 698 00:32:30,790 --> 00:32:32,065 >> PUBLIKA: Kriptografija. 699 00:32:32,065 --> 00:32:33,860 >> DAVID Malan: mažai tiek kriptografija. 700 00:32:33,860 --> 00:32:36,550 Paprasta kriptografija, bent jau Standartinė versija, bet kriptografija 701 00:32:36,550 --> 00:32:36,870 vis dėlto. 702 00:32:36,870 --> 00:32:37,410 mažiau. 703 00:32:37,410 --> 00:32:41,440 Taigi paaiškėja, jei užšifruoti visus šios antraštes, naudojant kažką, kad jūs 704 00:32:41,440 --> 00:32:48,770 dabar gali žinoti daugiau familiariai, kaip SSL, Secure Socket Layer arba https URL, 705 00:32:48,770 --> 00:32:51,890 tada visus šiuos dalykus mes jau žvelgdamas iš tikrųjų užšifruotas, 706 00:32:51,890 --> 00:32:54,800 tai reiškia, kad tai, kaip jūs negali perskaityti rankų antspaudu. 707 00:32:54,800 --> 00:32:59,350 Tik facebook.com galite, arba google.com, ar šiuo atveju, prietaisas gali 708 00:32:59,350 --> 00:33:00,550 skaityti rankinio antspaudą. 709 00:33:00,550 --> 00:33:04,020 >> Deja, nors ir vėl, tai yra pernelyg tinkama NSI stuff 710 00:33:04,020 --> 00:33:06,410 vėlai, net SSL yra trapus. 711 00:33:06,410 --> 00:33:09,850 Ir tai tikrai nereiškia, kad sunku net nulaužti, kad šifravimas. 712 00:33:09,850 --> 00:33:12,040 Ne tiek krekingo šifravimo, bet apgaulės 713 00:33:12,040 --> 00:33:15,720 naršyklė į iškodavimo duomenys anksti. 714 00:33:15,720 --> 00:33:17,880 Bet vėl, mes erzinti jus su, kad prieš ilgas. 715 00:33:17,880 --> 00:33:21,242 Nes dabar, tiesiog bijo. 716 00:33:21,242 --> 00:33:23,070 Tai tragiškai tipo tiesa. 717 00:33:23,070 --> 00:33:23,760 >> Gerai. 718 00:33:23,760 --> 00:33:27,910 Taigi, kur tai dabar palieka mus? 719 00:33:27,910 --> 00:33:29,010 Na, galime tai padaryti. 720 00:33:29,010 --> 00:33:31,790 Eikime į priekį ir imtis greitai kibinimas kol mes atsipūsti. 721 00:33:31,790 --> 00:33:33,790 Ir manau, kad mes svyruos tiek ilgiau šiandien, bet mes ketiname pasinerti į 722 00:33:33,790 --> 00:33:37,850 kažkas visiškai nauja ir seksualus, kurie bus pustyti apetitas dar daugiau. 723 00:33:37,850 --> 00:33:38,950 Štai kibinimas. 724 00:33:38,950 --> 00:33:41,520 >> Taigi SQL, mes pradėjome kalbėti apie vis tiek trumpai paskutinį kartą. 725 00:33:41,520 --> 00:33:44,670 Jūs tikrai gauti savo rankas purvinas su kai jį p nustatytą septynių. 726 00:33:44,670 --> 00:33:46,480 Ir profanas sąlygomis, ką SQL - 727 00:33:46,480 --> 00:33:47,110 S-K-L - 728 00:33:47,110 --> 00:33:49,850 padaryti už jus? 729 00:33:49,850 --> 00:33:50,310 Kas tai yra? 730 00:33:50,310 --> 00:33:51,546 Taip. 731 00:33:51,546 --> 00:33:53,240 >> Auditorija: Leiskite jums prieigą duomenis. 732 00:33:53,240 --> 00:33:53,360 >> DAVID Malan: Taip. 733 00:33:53,360 --> 00:33:55,120 Tai tegul jums prieigą duomenys duomenų bazėje. 734 00:33:55,120 --> 00:33:56,710 Struktūrizuotų užklausų kalbą. 735 00:33:56,710 --> 00:33:59,890 Ir tai iš esmės programavimo kalba. 736 00:33:59,890 --> 00:34:03,400 Yra funkcijų, apie jį, kad mes net naudoti klasėje. 737 00:34:03,400 --> 00:34:04,710 Bet jūs galite efektyviai apibrėžti funkcijas. 738 00:34:04,710 --> 00:34:06,870 Jie vadinami saugomos procedūros SQL. 739 00:34:06,870 --> 00:34:09,860 Bet mes nuolat jį gana paprasta ir tiesiog jį naudoti kai kurių pagrindinių operacijų 740 00:34:09,860 --> 00:34:14,320 kaip pasirinkti duomenis, įvedant duomenis, atnaujinti duomenis, ir ištrinti duomenis. 741 00:34:14,320 --> 00:34:17,400 >> Ir jūs tikrai gali galvoti apie duomenų bazę, kaip SQL duomenų bazę, kaip tik 742 00:34:17,400 --> 00:34:18,800 yra "Microsoft Excel". 743 00:34:18,800 --> 00:34:21,989 Kadangi SQL remiasi reliacinės duomenų bazė, kurioje 744 00:34:21,989 --> 00:34:23,480 santykis tiesiog reiškia lenteles. 745 00:34:23,480 --> 00:34:24,739 Eilutės ir stulpeliai. 746 00:34:24,739 --> 00:34:27,929 Taigi, kas galite įdėti į skaičiuoklę kaip šis arba Google Docs, 747 00:34:27,929 --> 00:34:32,460 galite įdėti į SQL duomenų bazės deklaruojant lentelę. 748 00:34:32,460 --> 00:34:34,800 >> Dabar, kaip jūs iš tikrųjų pasiekti ši informacija? 749 00:34:34,800 --> 00:34:38,239 Na, su komandomis ar užklausų tai patinka. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, UPDATE ir DELETE. 751 00:34:40,199 --> 00:34:44,489 Ir didžioji dalis, jie yra Keturi vieninteliai ingredientai, jums reikia 752 00:34:44,489 --> 00:34:47,370 padaryti kažką labai galingai į problemą septynis. 753 00:34:47,370 --> 00:34:49,940 >> Dabar atgal per dieną, jūs iš tiesų bendrauti su duomenų baze 754 00:34:49,940 --> 00:34:52,730 juoda ir balta terminalo langą į mirksi greitai, kaip šis. 755 00:34:52,730 --> 00:34:56,370 Ir duomenų bazės mes veikia Prietaisas vadinamas MySQL, kuris yra 756 00:34:56,370 --> 00:34:58,560 nemokama ir atviro kodo duomenų bazės variklis. 757 00:34:58,560 --> 00:35:02,240 Jei "Google" ir skaityti Wikipedia straipsnis, jūs žinosite, kad vardas yra 758 00:35:02,240 --> 00:35:05,060 perėjimo tiek kai "Linux" versijas. 759 00:35:05,060 --> 00:35:10,460 Maria duomenų bazė yra iš tikrųjų sumokėti, kad kalbėti apie MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Trumpai tariant, "Oracle" įsigijo MySQL. 761 00:35:12,740 --> 00:35:13,870 "Oracle" yra didelė kompanija. 762 00:35:13,870 --> 00:35:17,010 Žmonės buvo neramu, kad jis būtų nebegali likti visai kaip atviro kodo, 763 00:35:17,010 --> 00:35:20,930 todėl tai yra tik MySQL kopija tai vis dar laisvas, vis dar atviro kodo, ir 764 00:35:20,930 --> 00:35:23,550 įrengtas Fedora Linux pagal nutylėjimą. 765 00:35:23,550 --> 00:35:26,130 >> Bet tai yra natūra į skausmą kaklo susipažinti su 766 00:35:26,130 --> 00:35:27,310 duomenų bazė šiuo būdu. 767 00:35:27,310 --> 00:35:30,560 Taigi, mes įtraukti į CS50 prietaiso nemokama atviro kodo įrankis, vadinamas 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Tiesiog sutapimas, kad jis parašytas PHP. 770 00:35:33,940 --> 00:35:36,450 Nėra pagrindinis reikia PHP čia. 771 00:35:36,450 --> 00:35:40,090 Bet tai tik internetinė priemonė, kuri mes nemokamai atsisiųsti, įdiegta 772 00:35:40,090 --> 00:35:43,850 prietaisas, kuris leidžia mums turėti grafinė vartotojo sąsaja, su kuria 773 00:35:43,850 --> 00:35:48,610 ištirti p-septynis duomenų bazę kurie sukurti naujas duomenų bazes, 774 00:35:48,610 --> 00:35:51,980 pasakyti savo galutinio projekto, jei norite patinka, ir galiausiai sukurti 775 00:35:51,980 --> 00:35:55,900 dinamišką svetaines, pavyzdžiui, CS50 Finansų kad galima užklausti duomenų ir 776 00:35:55,900 --> 00:35:58,140 duomenis dinamiškai atnaujinti. 777 00:35:58,140 --> 00:36:01,420 >> Jūs nesate ketinate naudoti tik paprastas tekstinis failas, arba CSV. 778 00:36:01,420 --> 00:36:05,950 Jūs iš tikrųjų galite naudoti intelektualiąją duomenų bazę programa, kad būtų galima įvykdyti daugiau 779 00:36:05,950 --> 00:36:10,240 sudėtingų užklausų ne tik skaityti per viską tiesiškai. 780 00:36:10,240 --> 00:36:14,150 >> Taigi, pavyzdžiui, tai, ką mes duodame Jūs iš už p nustatytą septynių dėžutę. 781 00:36:14,150 --> 00:36:18,280 Tai lentelė, kurioje, matyt, bent trys stulpeliai, iš kurių vienas yra 782 00:36:18,280 --> 00:36:21,450 vardas, iš kurių vienas yra maišos, ir kitą, kuri yra ID. 783 00:36:21,450 --> 00:36:26,200 >> Bet įdomus dalykas, ir tik erzinti vieną mintį čia, vardas 784 00:36:26,200 --> 00:36:29,270 , matyt, jau unikalus, tiesa? 785 00:36:29,270 --> 00:36:31,190 Aš turiu galvoje, bet dauguma interneto svetainėje, jei turite vardą, yra 786 00:36:31,190 --> 00:36:32,370 Negali būti dviejų Caesars. 787 00:36:32,370 --> 00:36:33,440 Negali būti du Malans. 788 00:36:33,440 --> 00:36:34,950 Negali būti du jharvards. 789 00:36:34,950 --> 00:36:35,600 Jo unikali. 790 00:36:35,600 --> 00:36:38,610 Priešingu atveju, jie nežino, kuris jharvard ji iš tikrųjų yra. 791 00:36:38,610 --> 00:36:42,710 Taigi, kas gali būti dėl to motyvacija atsižvelgdamas trečią stulpelį kairėje 792 00:36:42,710 --> 00:36:46,970 yra vadinamas ID, kuris atrodo kaip skaičius, kad yra panašiai unikalus? 793 00:36:46,970 --> 00:36:51,300 Jis jaučiasi truputį tampa nebereikalinga kad man iš pirmo žvilgsnio. 794 00:36:51,300 --> 00:36:54,910 Kodėl jis gali būti įdomus, kad ne tik unikalūs vardai, 795 00:36:54,910 --> 00:36:56,837 bet taip pat unikalūs numeriai? 796 00:36:56,837 --> 00:36:59,460 >> PUBLIKA: jie gali turėti pats slaptažodis. 797 00:36:59,460 --> 00:37:01,720 >> DAVID Malan: Žmonės gali turėti pats slaptažodis, tikrai. 798 00:37:01,720 --> 00:37:03,900 Tai galėtų visiškai atsitikti. 799 00:37:03,900 --> 00:37:08,270 Bet jeigu jie turi šią unikalią vardą, aš būtų teigti, kad tikrai ne 800 00:37:08,270 --> 00:37:11,630 klausimas, nes jei jie tipo savo vardas, man reikia tik patikrinti jų 801 00:37:11,630 --> 00:37:15,060 slaptažodis jų maišos jų. 802 00:37:15,060 --> 00:37:15,970 Kodėl dar? 803 00:37:15,970 --> 00:37:17,950 >> PUBLIKA: Greičiau paiešką. 804 00:37:17,950 --> 00:37:18,680 >> DAVID Malan: Greičiau paiešką. 805 00:37:18,680 --> 00:37:19,548 Kodėl? 806 00:37:19,548 --> 00:37:21,460 >> PUBLIKA: ID yra tik vienas. 807 00:37:21,460 --> 00:37:24,040 >> DAVID Malan: ID yra tik vienas simbolis, arba tiksliau, tai skaičius, 808 00:37:24,040 --> 00:37:26,910 todėl tikriausiai 32 bitų ar kažkas panašaus. 809 00:37:26,910 --> 00:37:30,270 Kadangi vartotojo vardą, matyt, Jason Hirschhorn anketa ten yra tarsi 810 00:37:30,270 --> 00:37:33,900 juokingai ilgas, ir jis ketina imtis man daug daugiau laiko eilutę 811 00:37:33,900 --> 00:37:40,910 palyginti H-I-R-S-C-H-H-O-R-N, o gal / 0 arba kažką panašaus, kad, siekiant 812 00:37:40,910 --> 00:37:45,100 ieškoti Jason, o ne tik sakydamas man vartotojo numeris du. 813 00:37:45,100 --> 00:37:46,510 Tai 32 bitų. 814 00:37:46,510 --> 00:37:48,550 Tai vienintelis LC kad jūs turite palyginti. 815 00:37:48,550 --> 00:37:52,150 Ir iš tiesų, tai būtent tai, kodėl duomenų bazės linkę priskirti unikalų identifikatorių 816 00:37:52,150 --> 00:37:53,710 eilutės į juos. 817 00:37:53,710 --> 00:37:56,280 >> Dabar, ką kiti duomenų tipai yra ten be INT ir, matyt, 818 00:37:56,280 --> 00:37:57,160 stygos, kaip tai? 819 00:37:57,160 --> 00:37:59,700 Na, būtų labiau tinkamas, SQL duomenų bazės, pavyzdžiui, 820 00:37:59,700 --> 00:38:02,060 MySQL turi char laukus. 821 00:38:02,060 --> 00:38:05,320 Ir char tiek klaidinančiai nėra vieno CHAR. 822 00:38:05,320 --> 00:38:10,290 CHAR laukas MySQL duomenų bazės vienas ar daugiau simbolių, bet tai 823 00:38:10,290 --> 00:38:11,780 nustatytą skaičių simbolių. 824 00:38:11,780 --> 00:38:15,710 >> Taigi, pavyzdžiui, jei aš einu per į phpMyAdmin kaip galite jau, arba 825 00:38:15,710 --> 00:38:21,340 netrukus problema nustatyti septyni, ir aš einu mano duomenų bazėje, ir tiesiog for fun, 826 00:38:21,340 --> 00:38:25,700 kurkime naują lentelę, vadinamą išbandyti tik su dviem stulpeliais. 827 00:38:25,700 --> 00:38:27,160 Aš tada spustelėkite Vykdyti. 828 00:38:27,160 --> 00:38:30,070 Ir tai bus gana pažįstamas, ypač kaip jūs Taisome 829 00:38:30,070 --> 00:38:31,130 aplink savo. 830 00:38:31,130 --> 00:38:34,140 Čia galėčiau įvesti vardą kurti nauja lentelė tipo INT. 831 00:38:34,140 --> 00:38:37,770 Bet čia galėčiau įvesti vartotojo vardą atkurti, kad anksčiau lentelę. 832 00:38:37,770 --> 00:38:40,700 Ir pastebėti Turiu visa krūva rūšių pasirinkti. 833 00:38:40,700 --> 00:38:43,610 >> Ir tai taip pat yra, kodėl phpMyAdmin rūšies gražus. 834 00:38:43,610 --> 00:38:46,770 Tai tipo savarankiško mokymo tame jumis gali tiesiog rūšies taškas ir spustelėkite, ir 835 00:38:46,770 --> 00:38:50,730 pažvelgti išskleidžiamajame meniu, ir daro išvadą, kad tai, ką įgaliojimai SQL suteikia jums. 836 00:38:50,730 --> 00:38:54,090 >> Ir iš tiesų, jei aš pasirinksiu CHAR, aš tada turiu nurodyti ilgį, arba kaip 837 00:38:54,090 --> 00:38:55,940 daug reikšmės, kiek simbolių. 838 00:38:55,940 --> 00:39:00,090 Taigi labai bendros vertybės yra dalykų, pavyzdžiui, 255, bet tai šiek tiek ilgai. 839 00:39:00,090 --> 00:39:02,250 Dažniausiai yra aštuoni įvesti vartotojo vardą. 840 00:39:02,250 --> 00:39:03,590 Bet tai šiek tiek mažas šių dienų. 841 00:39:03,590 --> 00:39:05,430 Taigi tai yra dizaino sprendimas. 842 00:39:05,430 --> 00:39:08,630 Tai 8 simbolių maks, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Tai tikrai ne jums. 844 00:39:09,830 --> 00:39:12,350 Bet CHAR laukas yra fiksuotas skaičius. 845 00:39:12,350 --> 00:39:16,420 Taigi pasirinkti per mažai ir jūs natūra prisukamas, jei norite ilgesnį vardą. 846 00:39:16,420 --> 00:39:19,132 Pasirinkite per daug ir kas Neigiama? 847 00:39:19,132 --> 00:39:20,820 >> PUBLIKA: [nesigirdi]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID Malan: Tai išlaidavimas. 849 00:39:21,620 --> 00:39:24,835 Tiesiog kaip ir C, jei turite didesnį riekė atminties, nei jums reikia, jūs esate 850 00:39:24,835 --> 00:39:27,190 tiesiog gaišti laiko ir eikvoti vietos. 851 00:39:27,190 --> 00:39:31,430 Taigi, kaip alternatyva egzistuoja VARCHAR, kuris išsprendžia šią problemą, 852 00:39:31,430 --> 00:39:36,390 gydant ilgis ne kaip fiksuoto ilgio, bet kaip maksimalus ilgis, ir naudojant 853 00:39:36,390 --> 00:39:40,990 skaičiaus rodiklis simbolių, kurie vėliau linkęs naudoti tik kaip daugelis simbolių, kaip jūs 854 00:39:40,990 --> 00:39:42,710 iš tikrųjų reikia. 855 00:39:42,710 --> 00:39:43,670 Tai skamba puikiai. 856 00:39:43,670 --> 00:39:45,640 >> Kodėl mes atsikratyti CHAR duomenų tipo tada? 857 00:39:45,640 --> 00:39:48,500 Kas gali būti neigiama naudojant VARCHARs, kuris skamba 858 00:39:48,500 --> 00:39:51,644 kaip tai malonu laimėti? 859 00:39:51,644 --> 00:39:52,596 Taip? 860 00:39:52,596 --> 00:39:53,846 >> PUBLIKA: [nesigirdi]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID Malan: Gerai, gerai. 863 00:39:57,790 --> 00:40:01,101 Taigi, jei visi jūsų duomenys yra tas pats ilgis, kas susiję? 864 00:40:01,101 --> 00:40:05,250 >> PUBLIKA: Kadangi jūs eikvoti duomenys papasakok juos visus. 865 00:40:05,250 --> 00:40:09,060 >> DAVID Malan: Taigi, jei visi jūsų duomenys yra tokio pat ilgio, nors aš norėčiau ginčytis 866 00:40:09,060 --> 00:40:12,300 kad nurodant maksimalią į VARCHAR nesiskiria nuo 867 00:40:12,300 --> 00:40:16,070 nurodant fiksuotą ilgį CHAR jei žinote, kad numeris iš anksto. 868 00:40:16,070 --> 00:40:19,500 Bet ten yra iš tikrųjų, ir aš tarsi ištrauka iš šio atsakymo realybę 869 00:40:19,500 --> 00:40:22,610 kad dar yra daugiausiai, kurie galėtų būti nemalonus, ypač jei 870 00:40:22,610 --> 00:40:25,920 susiduria asmens vardą, kad tai neįprastai ilgai, kad tu ne 871 00:40:25,920 --> 00:40:26,860 numatyti. 872 00:40:26,860 --> 00:40:31,420 Ir tai taip pat šiek tiek mažiau efektyvus iš tikrųjų ieškoti VARCHARs kaip 873 00:40:31,420 --> 00:40:35,620 o ne ieško simbolių, ypač ilgus lentelių, kurie turi daug ir 874 00:40:35,620 --> 00:40:36,510 daug duomenų. 875 00:40:36,510 --> 00:40:40,060 Taigi čia taip pat, teminė vėl nėra akivaizdus pasirinkimas. 876 00:40:40,060 --> 00:40:42,870 >> Taigi tiesiog suteikti jums kitą jausmą duomenų tipai, kurie gali būti įdomūs 877 00:40:42,870 --> 00:40:45,400 arba p-septynis ar ateitis, ten LC. 878 00:40:45,400 --> 00:40:47,270 Yra bigint, kuris yra kaip ilgai ilgai. 879 00:40:47,270 --> 00:40:48,880 Jis linkęs būti 64 bitai. 880 00:40:48,880 --> 00:40:51,640 Yra dešimtainis, kurį matysite problema rinkinys, kuris yra daug 881 00:40:51,640 --> 00:40:55,300 siurblys atsakymas į problemas, mes susidūrė su mentele ir plaukiojantieji 882 00:40:55,300 --> 00:40:55,980 atkreipti nepatikslinus. 883 00:40:55,980 --> 00:40:57,390 Ir tada ten DATETIME. 884 00:40:57,390 --> 00:41:01,530 Yra pažodžiui duomenų tipas, kuris turi atrodyti per metus, mėnesį, dieną, 885 00:41:01,530 --> 00:41:03,730 ir valandą, minutę ir sekundę. 886 00:41:03,730 --> 00:41:07,470 >> Bet SQL duomenų bazės taip pat turi ką mes vadiname indeksus. 887 00:41:07,470 --> 00:41:11,630 Ir indeksas yra kažkas, kad jūs nurodyti kuriant lentelę 888 00:41:11,630 --> 00:41:15,720 padaryti paieškas ir kitas operacijas efektyviau. 889 00:41:15,720 --> 00:41:18,550 Tiksliau, yra kažkas vadinamas REKOMENDUOJAMA rodiklis, kad galėtumėte 890 00:41:18,550 --> 00:41:19,440 deklaruoti taip. 891 00:41:19,440 --> 00:41:22,330 >> Mes padarėme tai už jus su Vartotojų stalo mes suteikiame jums. 892 00:41:22,330 --> 00:41:26,160 Tačiau pastebite, jei aš buvo rankiniu būdu atkurti Vartotojų lentelė čia suteikiant 893 00:41:26,160 --> 00:41:27,110 tai vartotojų pavadinimą. 894 00:41:27,110 --> 00:41:28,125 Aš jau nurodyta ID. 895 00:41:28,125 --> 00:41:29,330 Aš nurodyta INT. 896 00:41:29,330 --> 00:41:32,000 Aš nurodyta vartotojo vardas didžiausias 32 simbolių. 897 00:41:32,000 --> 00:41:36,140 Bet jei mes judame į tai gana platus langas, pranešimas nėra 898 00:41:36,140 --> 00:41:38,260 krūva kitų dalykų, aš galiu nustatyti. 899 00:41:38,260 --> 00:41:40,950 >> Vienas iš jų, galiu nurodyti atributus kaip, žinote, ką tai 900 00:41:40,950 --> 00:41:42,190 LC turėtų būti nepasirašytas. 901 00:41:42,190 --> 00:41:45,510 Nenoriu neigiamus skaičius, tad kad jis nepasirašytas. 902 00:41:45,510 --> 00:41:48,660 Null, nėra svarbi, nes čia Aš noriu kiekvieną vartotoją 903 00:41:48,660 --> 00:41:49,640 turėti unikalų numerį. 904 00:41:49,640 --> 00:41:50,830 Aš nenoriu, kad ji būtų niekinis. 905 00:41:50,830 --> 00:41:52,330 >> Bet tai yra įdomu. 906 00:41:52,330 --> 00:41:57,780 Galiu nurodyti, kad ID arba pirminio rakto duomenų bazės, ar jis 907 00:41:57,780 --> 00:42:00,620 unikalus, ar jis indeksuojamas, ar visą tekstą. 908 00:42:00,620 --> 00:42:05,630 Taigi šiandienos reikmėms, ilga istorija Trumpai tariant, REKOMENDUOJAMA reiškia, kad tai turi 909 00:42:05,630 --> 00:42:10,570 būti konceptualiai ir techniškai srityje, kad mes naudojame unikaliai 910 00:42:10,570 --> 00:42:12,140 nustatyti vartotojams. 911 00:42:12,140 --> 00:42:16,140 >> Taigi, kai mes žiūrime iki vartotojų, tai yra tarsi iš pažado ieškoti juos daugiausia 912 00:42:16,140 --> 00:42:17,370 kad unikalus identifikatorius. 913 00:42:17,370 --> 00:42:21,930 Ir duomenų bazė užtikrina, kad jeigu jums turėti vartotojo numerį 3, jūs negalite 914 00:42:21,930 --> 00:42:25,400 fiziškai įterpti kitą vartotoją su tuo pačiu numeriu 3. 915 00:42:25,400 --> 00:42:28,380 Duomenų bazė bus tiesiog atsisakyti , kad išsaugotumėte pakeitimus. 916 00:42:28,380 --> 00:42:32,310 Kuris yra geras dalykas, nes galite apsaugoti save nuo savęs. pats 917 00:42:32,310 --> 00:42:34,270 >> Kita vertus, už vardą. 918 00:42:34,270 --> 00:42:37,670 Taigi, antra eilutė, priminti, yra vardo laukelis. 919 00:42:37,670 --> 00:42:41,860 Taigi antroje eilėje čia yra vardas, kaip mes padarėme dėl toli paliko ten. 920 00:42:41,860 --> 00:42:43,940 >> Taigi, ką dar galėčiau norite nurodyti? 921 00:42:43,940 --> 00:42:47,840 Aš ne leisti, atsižvelgiant į SQL nurodyti du pirminius raktus. 922 00:42:47,840 --> 00:42:50,750 galite nurodyti bendrą raktą, kur jūs pažvelgti abiejose srityse, tačiau jie negali 923 00:42:50,750 --> 00:42:52,260 individualiai būti pirminiai raktai. 924 00:42:52,260 --> 00:42:54,750 Štai iš klausimą. 925 00:42:54,750 --> 00:42:56,040 Taigi, kuris galėtų Noriu pasirinkti? 926 00:42:56,040 --> 00:42:59,710 >> Na, yra unikali panaši dvasia pirminis raktas, kur jūs nurodote tai 927 00:42:59,710 --> 00:43:03,570 laukas turi būti unikalus, tačiau tai nesiruošia būti vienas 928 00:43:03,570 --> 00:43:04,410 Aš naudoju visą laiką. 929 00:43:04,410 --> 00:43:08,450 Ir mes neketiname naudoti šį vieną visiems dėl kokios priežasties laiko vėl? 930 00:43:08,450 --> 00:43:10,490 Tai lėčiau potencialiai jei tai ilgas vardas. 931 00:43:10,490 --> 00:43:11,740 Tai tik laiko švaistymas. 932 00:43:11,740 --> 00:43:16,140 >> RODYKLĖ, tuo tarpu, nurodoma, kad tai nesiruošia būti unikalus, bet norėčiau 933 00:43:16,140 --> 00:43:19,470 jums dirbti savo magija po gaubtu, kad jis greičiau man 934 00:43:19,470 --> 00:43:21,420 ieškoti šioje srityje. 935 00:43:21,420 --> 00:43:23,320 Taigi, tai tikriausiai nėra svarbūs. 936 00:43:23,320 --> 00:43:26,500 Už vardą, aš teigti, kad Unikalus yra geras atsakymas. 937 00:43:26,500 --> 00:43:31,200 Bet tarkime, kad mes padarėme vartotojams daugiau įdomus ne tik vardus, 938 00:43:31,200 --> 00:43:32,430 maišos, ir ID numeriai. 939 00:43:32,430 --> 00:43:33,860 Ką daryti, jei mes davė žmonėms vardus ir pavardes? 940 00:43:33,860 --> 00:43:37,700 Ką daryti, jei mes jiems davė adresus ir kitus duomenis apie juos? 941 00:43:37,700 --> 00:43:43,360 >> Na, jei nurodysite, kad į stulpelį Duomenų bazė yra indeksuojami, tai reiškia, kad 942 00:43:43,360 --> 00:43:47,730 MySQL ar Oracle, ar kokia duomenų bazė jūs naudojate, turi dirbti savo magija 943 00:43:47,730 --> 00:43:51,300 ir naudoti tam tikras išgalvotas duomenų natūra struktūra kaip medis ar TRIE arba 944 00:43:51,300 --> 00:43:55,940 maišos lentelė, ar kažkas garantuoti kad kai jums ieškoti duomenų naudojant 945 00:43:55,940 --> 00:43:58,150 pasirinkti tą konkrečioje srityje - 946 00:43:58,150 --> 00:44:01,310 kaip man parodyti visiems, kad gyvena Oksfordo gatvėje. 947 00:44:01,310 --> 00:44:02,540 Kaip kad užklausos. 948 00:44:02,540 --> 00:44:06,250 Jei nustatomos iš anksto, kad norite apie šioje srityje indeksas, 949 00:44:06,250 --> 00:44:09,050 paieškos bus daug, daug greičiau. 950 00:44:09,050 --> 00:44:12,090 >> Jei nenurodysite indeksą, geriausiai jūs galite padaryti, tai linijinis paieška, jei 951 00:44:12,090 --> 00:44:13,030 tai nėra rūšiuojamos. 952 00:44:13,030 --> 00:44:16,220 Bet jei nurodysite indeksas, protingas žmonės, kurie padarė duomenų bazę - 953 00:44:16,220 --> 00:44:19,340 žmonės kaip jūs, kurie dabar žino medžius ir bando ir maišos lenteles - 954 00:44:19,340 --> 00:44:23,220 bus automatiškai sukurti tokį duomenis struktūra RAM įsitikinti, kad 955 00:44:23,220 --> 00:44:26,050 šios paieškos yra daug greičiau. 956 00:44:26,050 --> 00:44:29,660 >> Fulltextowe tuo tarpu panaši dvasia, bet leidžia daryti pakaitos 957 00:44:29,660 --> 00:44:35,480 paieškos, kaip man parodyti visiems, kad gyvena gatvėse, kurie prasideda su 958 00:44:35,480 --> 00:44:36,960 raidė O dėl kokios nors priežasties. 959 00:44:36,960 --> 00:44:38,850 Tai galite padaryti pakaitos paieškos panašaus. 960 00:44:38,850 --> 00:44:45,880 Arba daugiau įtikinamų dalykų, pavyzdžiui, rodo, mane visi, kurie turi žodį - 961 00:44:45,880 --> 00:44:49,400 man parodyti visiems, kurių vardas prasideda su tam tikra raide. 962 00:44:49,400 --> 00:44:51,880 Jūs galite ieškoti raktažodžių šiuo būdu. 963 00:44:51,880 --> 00:44:52,630 Gerai. 964 00:44:52,630 --> 00:44:55,760 >> Taigi, dizaino galimybės yra potencialiai. 965 00:44:55,760 --> 00:44:57,740 Yra ir kitų, kad aš pakylės mano rankas. 966 00:44:57,740 --> 00:45:00,530 Pasirodo, kad jūs galite turėti skirtingų saugojimo varikliai. 967 00:45:00,530 --> 00:45:04,390 Ir tai yra daugiau paslaptingų nei mums reikia tikrai už problemos septynis. 968 00:45:04,390 --> 00:45:06,920 Pagal nutylėjimą, vaikinai vartojate kažkas vadinamas InnoDB. 969 00:45:06,920 --> 00:45:10,910 Pamatysite paminėti šio kažkur phpMyAdmin sąsaja greičiausiai. 970 00:45:10,910 --> 00:45:14,130 Bet žinau, kad yra kitas planas sprendimus, kurie yra potencialo 971 00:45:14,130 --> 00:45:18,030 palūkanų ateiti galutinius projektus, jei jūs ką nors žiniatinklyje. 972 00:45:18,030 --> 00:45:19,330 >> Bet tegul tai padaryti. 973 00:45:19,330 --> 00:45:23,130 Eikime į priekį ir įdėti šią nuorodą į ekranas kaip istorija kibinimas 974 00:45:23,130 --> 00:45:26,330 įtraukti jus, kambarioku, ir stiklinė pieno. 975 00:45:26,330 --> 00:45:28,240 Paimkime dvi minutės ar taip pertraukos čia. 976 00:45:28,240 --> 00:45:31,060 Ir jeigu jūs galite klijuoti aplink, tegul ateina atgal, atrodo šiek tiek daugiau ne SQL, ir 977 00:45:31,060 --> 00:45:35,160 tada JavaScript tiek su p nustatytas aštuonių galvoje. 978 00:45:35,160 --> 00:45:36,120 >> Gerai. 979 00:45:36,120 --> 00:45:40,420 Taigi, galime jums galvoti apie kampas atvejis, kad labai lengvai gali kilti 980 00:45:40,420 --> 00:45:44,240 Jei naudojate duomenų bazę, arba kontekste tiesą sakant, net ir naudojant realaus pasaulio dalykus 981 00:45:44,240 --> 00:45:46,280 kaip bankomatai gauti pinigus. 982 00:45:46,280 --> 00:45:47,640 Taigi čia yra šaldytuvas. 983 00:45:47,640 --> 00:45:50,040 Tarkime, jūs turite vieną per į Jūsų bendrabučio arba jūsų namuose. 984 00:45:50,040 --> 00:45:54,990 Ir jūs turite vieną kambarioku, ir abu jums tikrai patinka pienas pvz. 985 00:45:54,990 --> 00:45:57,210 >> Taigi, jūs grįžti namo iš klasės vieną dieną. 986 00:45:57,210 --> 00:45:58,490 Jis ar ji dar ne atgal. 987 00:45:58,490 --> 00:45:59,180 Atidarote šaldytuvą. 988 00:45:59,180 --> 00:46:00,870 Jūs tikrai norite didelę stiklinę pieno. 989 00:46:00,870 --> 00:46:01,820 Nėra pienas. 990 00:46:01,820 --> 00:46:02,920 Taigi, ką jūs darote? 991 00:46:02,920 --> 00:46:03,840 Uždaryti šaldytuvą. 992 00:46:03,840 --> 00:46:04,670 Jūs patraukti savo raktus. 993 00:46:04,670 --> 00:46:05,930 Jūs einate į aikštę. 994 00:46:05,930 --> 00:46:09,240 Ir jūs gaunate linija CVS tiems Savitarnos kasos dalykų, kurie visada 995 00:46:09,240 --> 00:46:11,180 užtrukti ilgiau nei iš tikrųjų turintys kasininkai. 996 00:46:11,180 --> 00:46:11,820 Šiaip ar taip. 997 00:46:11,820 --> 00:46:15,490 >> Taigi, tuo tarpu, dot dot dot, savo kambarioku grįžta namo, ir jis arba ji 998 00:46:15,490 --> 00:46:17,440 panašiai turi norėti kai pieną. 999 00:46:17,440 --> 00:46:20,380 Taigi jis atidaro šaldytuvą, atrodo viduje, ir oh, nusispjauti. 1000 00:46:20,380 --> 00:46:21,160 Ne pieno. 1001 00:46:21,160 --> 00:46:24,750 Taigi jis vadovauja iš, būna eiti į kitą CVS, kuris buvo tik 1002 00:46:24,750 --> 00:46:27,900 kvartalo dėl kokios nors priežasties, ir jis arba ji pasireiškia eilėje nusipirkti pieno. 1003 00:46:27,900 --> 00:46:30,480 >> Tuo tarpu, ateini namo, jis arba ji grįžta namo, ir ką 1004 00:46:30,480 --> 00:46:31,980 jūs galų gale turi? 1005 00:46:31,980 --> 00:46:33,080 Dvigubai daugiau pieno. 1006 00:46:33,080 --> 00:46:34,620 Bet jūs tikrai patinka pieno, kad daug. 1007 00:46:34,620 --> 00:46:37,300 Taigi, dabar jūs turite tiek daug pieno, kad dabar vienas iš jų yra tik ketina eiti rūgštus 1008 00:46:37,300 --> 00:46:37,820 ilgainiui. 1009 00:46:37,820 --> 00:46:39,370 Taigi tai yra tikrai blogai, problema. 1010 00:46:39,370 --> 00:46:39,900 Teisė? 1011 00:46:39,900 --> 00:46:41,990 >> Taigi, kas nutiko? 1012 00:46:41,990 --> 00:46:44,810 Taigi, iš esmės, tai yra natūra apie juokingas pavyzdys. 1013 00:46:44,810 --> 00:46:48,580 Tačiau po gaubtu, ką mes turėjome atsitikti čia jus abu tikrinamas 1014 00:46:48,580 --> 00:46:52,390 kokio nors kūrinio būsena atmintis, šaldytuvas. 1015 00:46:52,390 --> 00:46:54,420 Jus abu patikrino būklę kai kurių kintamųjų. 1016 00:46:54,420 --> 00:46:57,360 Jūs abu padarė išvadą, kad tada veikė. 1017 00:46:57,360 --> 00:47:01,420 Tačiau, deja, kol jūsų kambarioku buvo parduotuvėje, tos valstybės 1018 00:47:01,420 --> 00:47:05,670 kintamasis pasikeitė, jis grįžo ir dabar nori pakeisti padėtį, bet 1019 00:47:05,670 --> 00:47:07,480 jis jau buvo pakeistas jam ar jai. 1020 00:47:07,480 --> 00:47:11,120 Ir, žinoma, jis neturės nuėjo į parduotuvę, jei jie žinojo, 1021 00:47:11,120 --> 00:47:13,010 kad jau buvo pakeliui. 1022 00:47:13,010 --> 00:47:16,430 >> Taigi realaus pasaulio, kaip tu galėjai išvengti šios problemos, jei turite 1023 00:47:16,430 --> 00:47:18,940 šaldytuvas, turite kambarioku, ir jūs iš tikrųjų patinka pieno? 1024 00:47:18,940 --> 00:47:19,760 >> PUBLIKA: Bendravimas. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID Malan: Bendravimas. 1026 00:47:20,580 --> 00:47:21,160 Gerai. 1027 00:47:21,160 --> 00:47:22,500 Bet kaip gali jums bendrauti? 1028 00:47:22,500 --> 00:47:23,990 >> PUBLIKA: Komentuoti dėmesį. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID Malan: Komentuoti dėmesį, tiesa? 1030 00:47:25,480 --> 00:47:28,025 Visada palikite pastabą dėl gerbėjai šou. 1031 00:47:28,025 --> 00:47:31,580 Viskas gerai, todėl visada palieka raštelį, arba įdėti tikrai kaip spyna ar kažką 1032 00:47:31,580 --> 00:47:35,440 prie šaldytuvo, kad saugo jūsų kambarioku nuo apžiūrėję būklę 1033 00:47:35,440 --> 00:47:36,540 kad kintamasis. 1034 00:47:36,540 --> 00:47:40,800 >> Dabar, kodėl gali tai būti konsultuojama su problema septynis ar bankomatus. 1035 00:47:40,800 --> 00:47:46,780 Na, įsivaizduokite, į bankomatą pasaulį, kuriame Jums gali būti suteikta galimybė eiti į bankomatą 1036 00:47:46,780 --> 00:47:48,920 mašina čia, o kitas OEV čia. 1037 00:47:48,920 --> 00:47:50,680 Ir tai atsitinka gana dažnai. 1038 00:47:50,680 --> 00:47:54,150 Ir manau, kad jūs turėjo du ATM korteles, kurios galima gauti. 1039 00:47:54,150 --> 00:47:57,420 Ir įėjus į abi mašinos efektyviai vienu metu, tikiuosi 1040 00:47:57,420 --> 00:47:58,660 o niekas žiūri. 1041 00:47:58,660 --> 00:48:01,260 Ir tada įvedate savo PIN maždaug tuo pačiu metu. 1042 00:48:01,260 --> 00:48:06,280 Ir tada jūs darote balansą užklausą pamatyti, kiek pinigų turite. 1043 00:48:06,280 --> 00:48:08,920 Ir tarkime, jūs turite $ 100 į kairę į jūsų sąskaitą. 1044 00:48:08,920 --> 00:48:13,310 Taigi, iš esmės tuo pačiu metu, jūs sako vieną, o nulis, nulis, įveskite. 1045 00:48:13,310 --> 00:48:16,000 Ir jūs tikiuosi grįžti šiek tiek pinigų. 1046 00:48:16,000 --> 00:48:18,440 >> Tačiau kiek pinigų gali jums atgal? 1047 00:48:18,440 --> 00:48:21,710 Dabar kompiuteriai Tuo dienos pabaigos, ypač jei jie kalbate 1048 00:48:21,710 --> 00:48:27,360 serveriai, nebūtinai daryti dalykus ta tvarka, kuria tikimasi. 1049 00:48:27,360 --> 00:48:30,860 >> Taigi manau, kad tai, kas vyksta, nes nepriklausomai nuo tinklo greitis klausimus ten 1050 00:48:30,860 --> 00:48:34,530 yra arba CPU klausimai yra, ar nieko panašaus, kad, tarkime, kad 1051 00:48:34,530 --> 00:48:38,530 Pirmasis bankomatas patikrins jūsų pusiausvyrą ir mato, oi, šis asmuo turi $ 100. 1052 00:48:38,530 --> 00:48:41,840 Bet tada gauna išsiblaškęs, nes gal atsarginės vyksta, ir todėl 1053 00:48:41,840 --> 00:48:42,500 lėtėja. 1054 00:48:42,500 --> 00:48:45,080 O gal tikrinant, tinklo jungtis gavo šiek tiek lėčiau, nes 1055 00:48:45,080 --> 00:48:45,910 tai tiesiog atsitinka. 1056 00:48:45,910 --> 00:48:47,100 Jie fizinius įrenginius. 1057 00:48:47,100 --> 00:48:49,330 Taigi, tuo tarpu, antra bankomatas klausia tą patį klausimą. 1058 00:48:49,330 --> 00:48:53,030 Kiek pinigų nėra Davidas turi? $ 100 yra atsakymas. 1059 00:48:53,030 --> 00:48:58,930 Bet kadangi pirmasis bankomatas dar nėra išsiuntė pranešimą atimti $ 100, ir 1060 00:48:58,930 --> 00:49:03,000 Bankomatai apžiūrėjo banko skliautą, matau ten 100 $ ten, ir dabar 1061 00:49:03,000 --> 00:49:07,160 abu aparatai potencialiai yra ketina išspjauti atsakymą. 1062 00:49:07,160 --> 00:49:12,240 >> Dabar, tai yra puikus jums tam tikra prasme jei ką bankas daro galiausiai 1063 00:49:12,240 --> 00:49:17,200 yra pakeisti sumą, atėmus 100 iki nustatyti kintamąjį lygi savo 1064 00:49:17,200 --> 00:49:21,570 Banko sąskaita lygu 0, o ne daryti atėmus 100. 1065 00:49:21,570 --> 00:49:24,410 Dabar blogiausiu atveju bankas - 1066 00:49:24,410 --> 00:49:27,470 arba bankui geriausiai, tuo tarpu, jie suteiks jums 200 $, o 1067 00:49:27,470 --> 00:49:31,690 jūsų banko sąskaita dabar rodo neigiamas $ 100, kuris tikrai nėra 1068 00:49:31,690 --> 00:49:32,950 naudinga jums visiems. 1069 00:49:32,950 --> 00:49:36,500 Bet esmė yra ta, kad ši rasė sąlyga du kambariokai vis 1070 00:49:36,500 --> 00:49:40,660 pienas arba du bankomatus bando gauti pinigų ir pakeisti Vault būklę 1071 00:49:40,660 --> 00:49:44,510 tuo pačiu metu egzistuoja bet kartą jūs turite duomenų bazę. 1072 00:49:44,510 --> 00:49:48,290 >> Dabar problema septynis, šis klausimas kyla ta prasme, kad jei jūs perkate 1073 00:49:48,290 --> 00:49:52,110 dalis "Facebook" akcijų, o po to Pavyzdžiui jūs perkate antrą dalį 1074 00:49:52,110 --> 00:49:55,160 "Facebook" akcijų, jums reikia įsitikinti, sprendimas, kaip programuotojas. 1075 00:49:55,160 --> 00:49:58,710 Siekiant nuspręsti, kaip atnaujinti duomenų bazė, šansai yra, kad jūs ketinate 1076 00:49:58,710 --> 00:50:02,250 vieną eilutę tos sandėlyje, ir tai yra vienas iš būdų ją įgyvendinti. 1077 00:50:02,250 --> 00:50:06,640 Ir jūs ketinate turėti vieną dalį FB, kuris yra jų akcijų simbolis simbolis 1078 00:50:06,640 --> 00:50:10,120 Šio vartotojo vardą ar šį klientą ID numeris, unikalus identifikatorius. 1079 00:50:10,120 --> 00:50:12,340 >> Bet pati istorija gali atsitikti čia. 1080 00:50:12,340 --> 00:50:15,800 Jei jūs nustatysite SQL, kaip pamatysite į problemą septynis kai pamatysite, 1081 00:50:15,800 --> 00:50:18,460 oh, Davidas turi vieną dalį "Facebook" akcijų. 1082 00:50:18,460 --> 00:50:23,240 Leiskite man dabar pakeisti, kad tai dvi akcijos, nes jis nori pirkti 1083 00:50:23,240 --> 00:50:24,120 antra dalis. 1084 00:50:24,120 --> 00:50:27,860 Bet tarkime, Davidas tikrųjų turėjo du naršyklės langus atidaryti, arba manyti, kad 1085 00:50:27,860 --> 00:50:32,150 tai bendra sąskaita su abiem sutuoktiniams, ir jie abu bando atlikti 1086 00:50:32,150 --> 00:50:36,770 pati operacija, ten pat, egzistuoja galimybė priimti sprendimą, kad būtų 1087 00:50:36,770 --> 00:50:39,670 priimtas remiantis ankstesnių pasaulio valstybė - 1088 00:50:39,670 --> 00:50:41,290 sąskaita turi vieną dalį - 1089 00:50:41,290 --> 00:50:45,630 ir abu žmonės, arba abu serveriai, dabar pabandykite pasakyti prieaugio jį dvi akcijas. 1090 00:50:45,630 --> 00:50:49,020 Tačiau šiuo atveju, jūs galėjote mokėti man pinigų tiek akcijų, tačiau 1091 00:50:49,020 --> 00:50:50,830 padidinamas tik tai, kad vieną kartą. 1092 00:50:50,830 --> 00:50:54,730 >> Taigi, trumpai tariant, esminė problema čia, kaip ir pokštas apie paliekant 1093 00:50:54,730 --> 00:50:58,750 dėmesį, ar pradėti su spyna ant jo yra jei du žmonės, ar dvi temas - 1094 00:50:58,750 --> 00:50:59,930 prisiminkite nulio - 1095 00:50:59,930 --> 00:51:03,220 gali patikrinti kai kurių kintamųjų būklę ir tada bandyti pakeisti šį kintamąjį, 1096 00:51:03,220 --> 00:51:07,950 bet tie du dalykai neturi vykti pats laikas, bet galite gauti nutrauktas 1097 00:51:07,950 --> 00:51:11,500 kitų dalykų vyksta, duomenys gali patekti į labai keistą būseną. 1098 00:51:11,500 --> 00:51:15,450 Ir jūs galite gauti naudos arba galite patirti atsižvelgiant į pinigų Pavyzdžiui prasme. 1099 00:51:15,450 --> 00:51:18,110 >> Taigi problema nustatyti septyni, mes suteikiame Jums tai viena eilutė kodo, kuris ilgai 1100 00:51:18,110 --> 00:51:21,000 Trumpai tariant, sprendžia ši problema MySQL. 1101 00:51:21,000 --> 00:51:24,950 Tai labai ilgas instrukcija, kuri nėra net tilptų ant vieno linijos 1102 00:51:24,950 --> 00:51:30,370 ekranas čia užtikrina, kad jūsų operacija yra tai, kas vadinama atominis. 1103 00:51:30,370 --> 00:51:33,720 Viskas vyksta vienu metu, arba tai neįvyks ne visiems. 1104 00:51:33,720 --> 00:51:37,530 Tai labai ilgas frazė negali gauti nutraukiamas iš dalies. 1105 00:51:37,530 --> 00:51:39,840 >> Ir ką ji daro yra tiesiog ką ji sako. 1106 00:51:39,840 --> 00:51:44,200 Įdėkite į tam tikrą lentelę taip trys laukai šios konkrečios vertybės, 1107 00:51:44,200 --> 00:51:47,280 bet dublikato raktą, nedaryk intarpą. 1108 00:51:47,280 --> 00:51:48,280 Ar atnaujinti. 1109 00:51:48,280 --> 00:51:52,450 Taigi tai patinka daryti PASIRINKTI ir INSERT todėl kalbėti tuo pačiu metu. 1110 00:51:52,450 --> 00:51:55,150 O kas tai yra raktas, kuris tikriausiai nukreipiamas į čia? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Pasirodo, ir pamatysite tai problema buvo nustatyti septyni yra spec, nes 1113 00:52:01,380 --> 00:52:06,040 mes pareiškė, kad turi būti unikalus raktas šiuo konkrečiu stalo tokia, kad 1114 00:52:06,040 --> 00:52:08,480 jūs negalite turėti kelias eilutes tam pačiam vartotojui, turinčiam 1115 00:52:08,480 --> 00:52:10,150 pats Penny Stock simbolis - 1116 00:52:10,150 --> 00:52:13,780 Šiame pavyzdyje čia, DVN.V yra kvailas Penny Stock, kad mes 1117 00:52:13,780 --> 00:52:14,980 kreiptis į spec. 1118 00:52:14,980 --> 00:52:17,860 Kadangi mes pareiškė, jog turi būti unikalus, ką tai reiškia, kad jei 1119 00:52:17,860 --> 00:52:23,580 pabandykite įrašyti pasikartojantį eilutę, jūs vietoj ketina ją atnaujinti be 1120 00:52:23,580 --> 00:52:27,020 kas nors, turinčių galimybę pakeisti pasaulio valstybės arba. 1121 00:52:27,020 --> 00:52:29,400 Taigi trumpai tariant, tai užtikrina viskas yra atominis. 1122 00:52:29,400 --> 00:52:32,530 >> Apskritai, nors, duomenų bazės kaip MySQL - 1123 00:52:32,530 --> 00:52:35,460 ir jums nereikia šią funkciją p rinkinys septynių, bet laikyti jį omenyje 1124 00:52:35,460 --> 00:52:36,200 ateityje - 1125 00:52:36,200 --> 00:52:38,870 remti tai, kas vadinama sandorius, kur galite pasakyti 1126 00:52:38,870 --> 00:52:40,990 START SANDORĮ pažodžiui. 1127 00:52:40,990 --> 00:52:43,270 Tada galite vykdyti du SQL. 1128 00:52:43,270 --> 00:52:45,710 Ir SQL, kaip pamatysite į p-rinkinys septynių, atrodo šiek tiek 1129 00:52:45,710 --> 00:52:46,750 kažkas panašaus į tai. 1130 00:52:46,750 --> 00:52:48,820 Atnaujinti lentelę, pavadintą sąskaitą. 1131 00:52:48,820 --> 00:52:52,550 Nustatykite balanso stulpelį vienodą kokia Balanso stulpelis metu 1132 00:52:52,550 --> 00:52:57,280 minus 1000, kur numeris, sąskaitos numeris, pavyzdžiui, vartotojo ID, 1133 00:52:57,280 --> 00:53:00,830 lygu 2, tada atnaujinti sąskaita taškas taškas taškas. 1134 00:53:00,830 --> 00:53:04,350 >> Taigi profanas sąlygomis, ką šie du užklausų, atrodo, daro 1135 00:53:04,350 --> 00:53:05,840 realaus pasaulio prasme bankininkystės? 1136 00:53:05,840 --> 00:53:07,440 >> PUBLIKA: patekus į santaupas. 1137 00:53:07,440 --> 00:53:08,020 >> Davidas Malan: Būtent. 1138 00:53:08,020 --> 00:53:10,470 Pervesti lėšas iš vienos sąskaitos į kitą. 1139 00:53:10,470 --> 00:53:14,400 Ir tai yra dar vienas pavyzdys, kur tikrai noriu šie du dalykai atsitiks 1140 00:53:14,400 --> 00:53:15,570 ar neįvyks. 1141 00:53:15,570 --> 00:53:18,880 Jūs nenorite, kad kažką gauti iš viduryje jų ir potencialiai bałagan 1142 00:53:18,880 --> 00:53:22,220 matematikos, arba bałagan kiek pinigų turite, arba kiek 1143 00:53:22,220 --> 00:53:23,170 pinigų bankas. 1144 00:53:23,170 --> 00:53:26,890 Taigi, kas yra tikrai malonu apie sandorius MySQL yra tai, kad ir 1145 00:53:26,890 --> 00:53:30,160 duomenų bazės apskritai, yra tai, kad jie ir protingų žmonių, kurie jau įgyvendinami 1146 00:53:30,160 --> 00:53:33,670 šios savybės išsiaiškinti, kaip padaryti įsitikinęs, kad abiejų šių dalykų atsitikti 1147 00:53:33,670 --> 00:53:35,120 arba ne visi. 1148 00:53:35,120 --> 00:53:38,580 >> Ir jei jūs tikrai siekia, kad svetainėje, kad manimi naudojasi žmonių 1149 00:53:38,580 --> 00:53:41,490 Campus, žmonės realiame pasaulyje, daro kažkas į paleisties prasme, 1150 00:53:41,490 --> 00:53:43,300 tai yra rūšys dizaino sprendimai, 1151 00:53:43,300 --> 00:53:45,020 tampa vis toks svarbus. 1152 00:53:45,020 --> 00:53:48,240 Priešingu atveju, jūs pradėsite prarasti duomenis, praranda Vartotojų, arba, blogiausiu atveju, kaip 1153 00:53:48,240 --> 00:53:51,800 mes matėme čia, potencialiai prarasti pinigus. 1154 00:53:51,800 --> 00:53:56,180 Taigi dar kartą, daugiau, kad problema nustatyti septynerių metų, taip pat galbūt dėl ​​kai kurių 1155 00:53:56,180 --> 00:53:57,530 jums galutinių projektų. 1156 00:53:57,530 --> 00:54:01,870 >> Taigi galime pakeisti, kad paveikslėlį mes turėjome prieš akimirką tik dar vienas būdas. 1157 00:54:01,870 --> 00:54:04,070 Taigi leiskite man iš tikrųjų pamatyti, jei aš galiu - 1158 00:54:04,070 --> 00:54:06,030 Ne, kad dingo. 1159 00:54:06,030 --> 00:54:06,690 Yra tai yra. 1160 00:54:06,690 --> 00:54:09,020 >> Taigi, tai yra, kai mes palikome paskutinį kartą. 1161 00:54:09,020 --> 00:54:12,390 Ir it turns out, mes ketiname išmesti dar vienas dalykas, į mišinį čia - 1162 00:54:12,390 --> 00:54:14,510 kalba vadinama "JavaScript". 1163 00:54:14,510 --> 00:54:18,060 Taigi Javaskriptą tikrųjų tinka į šiame kūrinyje - 1164 00:54:18,060 --> 00:54:22,086 ir aš ne visai palikti pakankamai vietos, taigi tai nėra dabar pagal mastelį. 1165 00:54:22,086 --> 00:54:23,900 Gerai, tai tikrai apgailėtina. 1166 00:54:23,900 --> 00:54:27,075 Gerai, kad tai "JavaScript". 1167 00:54:27,075 --> 00:54:27,340 Gerai. 1168 00:54:27,340 --> 00:54:28,760 Aš tikrai tai daro meškos. 1169 00:54:28,760 --> 00:54:29,390 Gerai. 1170 00:54:29,390 --> 00:54:34,790 >> Taigi JavaScript kitą programavimo kalba, ir mūsų paskutinis, jei tai padeda 1171 00:54:34,790 --> 00:54:37,770 nuraminti, kad nėra daug iš gaisrinių hidrantų čia. 1172 00:54:37,770 --> 00:54:41,100 Taigi, "JavaScript" yra taip pat aiškinama kalba, o tai reiškia, jūs neturite 1173 00:54:41,100 --> 00:54:42,670 kaupia jį į nulių ir. 1174 00:54:42,670 --> 00:54:43,690 Jūs tiesiog paleisti jį. 1175 00:54:43,690 --> 00:54:47,680 Bet kas iš esmės skiriasi su JavaScript paprastai yra tai, kad 1176 00:54:47,680 --> 00:54:49,815 ne paleisti jį į savo interneto serverį. 1177 00:54:49,815 --> 00:54:52,570 Jis neturi gauti paleisti prietaisas savaime. 1178 00:54:52,570 --> 00:54:57,490 Greičiau, jis bus paimtas vienas vartotojas per HTTP į savo naršyklę - 1179 00:54:57,490 --> 00:55:00,260 "Chrome", "Safari, Internet Explorer, "Firefox", bet - 1180 00:55:00,260 --> 00:55:03,860 ir tai naršyklė, kuri vykdo šią pirma programavimo kalba. 1181 00:55:03,860 --> 00:55:08,000 >> Taigi turi būti aišku, PHP, iki šiol buvo įvykdytas arba į komandų eilutę 1182 00:55:08,000 --> 00:55:11,290 mūsų juoda ir balta lange serveryje kaip prietaiso, kompiuteris 1183 00:55:11,290 --> 00:55:14,490 kaip prietaiso ar tai buvo vykdo interneto serverį 1184 00:55:14,490 --> 00:55:15,860 veikia kompiuteryje. 1185 00:55:15,860 --> 00:55:20,490 Bet tema čia yra, kad PHP šiol buvo įvykdytas server-side, todėl 1186 00:55:20,490 --> 00:55:24,820 vartotojo ir vartotojo naršyklė niekada mato PHP kodo eilutę. 1187 00:55:24,820 --> 00:55:28,530 >> Iš tiesų, jei jūs kada nors atidaryti naršyklę jūsų svetainė ar kitą ir jums 1188 00:55:28,530 --> 00:55:32,400 iš tikrųjų matyti PHP kodą į jūsų langą, kas nors įsukus. 1189 00:55:32,400 --> 00:55:34,950 Nes jis nėra skirtas būti siunčiami į naršyklę tiesiogiai. 1190 00:55:34,950 --> 00:55:38,150 Tai turėtų būti vykdomas ir pasuko į kažką panašaus HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Bet JavaScript esmės priešingai. 1192 00:55:40,120 --> 00:55:44,350 Tai reiškia būti paleisti paprastai viduje iš vartotojo naršyklės lange. 1193 00:55:44,350 --> 00:55:46,840 Ir kokios svetaines naudoti "JavaScript" iš šių dienų? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Kaip pažodžiui kiekvieną populiarus svetainę. 1196 00:55:52,180 --> 00:55:55,430 Kiekviena svetainė, kad jums, vaikinai, tikriausiai naudoti kasdien naudoti JavaScript 1197 00:55:55,430 --> 00:55:57,330 Paprasčiausias ir net Sexiest funkcijų. 1198 00:55:57,330 --> 00:55:59,800 >> Taigi, kažkas panašaus į "Facebook" Pokalbiai jei jūs naudojate, kad. 1199 00:55:59,800 --> 00:56:01,040 Kaip tai realiai veikia? 1200 00:56:01,040 --> 00:56:05,090 Na iki šiol visi stuff mes padaryti su HTML ir PHP daroma prielaida, kad 1201 00:56:05,090 --> 00:56:08,750 atsigriebti URL ir paspausite Enter ir pamatysite šiek tiek HTML turinį. 1202 00:56:08,750 --> 00:56:11,970 Ir jūs spustelėkite nuorodą, kad pokyčiai URL pakeičia puslapį, ir pakartotini 1203 00:56:11,970 --> 00:56:12,740 kai naujas turinys. 1204 00:56:12,740 --> 00:56:16,340 Spustelėkite kitą URL arba pateikti formą, gauti plakinio į kitą puslapį ir 1205 00:56:16,340 --> 00:56:17,420 matote šiek tiek naują turinį. 1206 00:56:17,420 --> 00:56:22,710 >> Tačiau naudojant kažką panašaus į "Facebook Chat, arba gchat, ar "Google Maps", retai 1207 00:56:22,710 --> 00:56:27,350 jis visas puslapis atnaujinti taip, kad matote baltas ekranas trumpam ir 1208 00:56:27,350 --> 00:56:28,470 tada naujas turinys. 1209 00:56:28,470 --> 00:56:32,610 Atvirkščiai, tinklalapių šiandien yra dinamiškai vis atnaujinama ir vėl 1210 00:56:32,610 --> 00:56:35,570 vėl ir vėl visi rūšiuoti iš užkulisiuose. 1211 00:56:35,570 --> 00:56:38,560 Ir paaiškėja, kad, kai jūs einate į kažkas panašaus į "Facebook" ar gchat, 1212 00:56:38,560 --> 00:56:43,050 ar "Gmail", ir puslapio atnaujinimai automatiškai neperkraunant 1213 00:56:43,050 --> 00:56:47,630 visą ekraną, kas atsitiko, kad Jūsų naršyklė tapo tarsi slapta 1214 00:56:47,630 --> 00:56:49,410 papildomi HTTP užklausas - 1215 00:56:49,410 --> 00:56:52,740 ne apskritai interneto puslapių, bet tik mažai gabaliukus duomenų, pavyzdžiui, 1216 00:56:52,740 --> 00:56:55,740 trumpąją žinutę, kad tavo draugas tiesiog pasiunčiau jus, ar būsenos atnaujinimą, kad 1217 00:56:55,740 --> 00:56:58,210 kažkas tiesiog atsiuntė jums, ar Čivināšana kad kažkas ką tik išsiunčiau. 1218 00:56:58,210 --> 00:57:02,120 Tai tiesiog padaryti šiek tiek prašymus duomenys, ir tada naudojant JavaScript, tai 1219 00:57:02,120 --> 00:57:06,370 programavimo kalba, keisti, ką interneto puslapis atrodo be 1220 00:57:06,370 --> 00:57:09,860 serverio padėti, be serverio generuoti, kad HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Taigi trumpai tariant, "JavaScript" gali būti naudojamas tada ne tik parsiųsti naujus duomenis iš 1222 00:57:13,820 --> 00:57:16,750 neperkraunant visumą serverį puslapyje arba pateikimo formą. 1223 00:57:16,750 --> 00:57:20,060 Jis taip pat gali būti naudojamas pakeitimo Vadinamasis DOM - 1224 00:57:20,060 --> 00:57:21,520 Objektinis modelis dokumento - 1225 00:57:21,520 --> 00:57:24,620 kuri yra tik išgalvotas būdas sakydamas HTML medį 1226 00:57:24,620 --> 00:57:26,220 kad mes matėme paskutinį kartą. 1227 00:57:26,220 --> 00:57:31,640 >> Taigi, norint įtikinti, kad JavaScript yra sintaksiškai tiek panaši į C, taip pat. 1228 00:57:31,640 --> 00:57:32,820 Nėra pagrindinės funkcijos. 1229 00:57:32,820 --> 00:57:35,430 Jūs tiesiog pradėti rašyti kodą ir ji bus įvykdyta, arba 1230 00:57:35,430 --> 00:57:36,900 aiškinama daugiau tinkamai. 1231 00:57:36,900 --> 00:57:38,660 Sąlygos atrodys taip. 1232 00:57:38,660 --> 00:57:41,230 Nesiskiria nuo C arba PHP šiuo klausimu. 1233 00:57:41,230 --> 00:57:43,890 Būlio išraiškos ar-ED kartu atrodys taip. 1234 00:57:43,890 --> 00:57:45,590 Anded kartu atrodyti taip. 1235 00:57:45,590 --> 00:57:47,750 >> Jungikliai atrodys taip. 1236 00:57:47,750 --> 00:57:49,440 Dėl kilpų atrodys taip. 1237 00:57:49,440 --> 00:57:51,060 Nors kilpos atrodys taip. 1238 00:57:51,060 --> 00:57:53,316 Daryti, o kilpos atrodys taip. 1239 00:57:53,316 --> 00:57:54,780 >> Tai yra naujas. 1240 00:57:54,780 --> 00:57:58,753 Taigi, "JavaScript" yra ne foreach statyti per se, bet šis konstruktas 1241 00:57:58,753 --> 00:58:03,870 Aš kintamasis masyvas, ir i tai atveju tampa indekso vertė. 1242 00:58:03,870 --> 00:58:06,880 Taigi tai šiek tiek skiriasi nuo foreach, nors naujos versijos 1243 00:58:06,880 --> 00:58:10,280 JavaScript išeina visą laiką, Taigi, net šios kalbos ypatybės 1244 00:58:10,280 --> 00:58:10,880 vystosi. 1245 00:58:10,880 --> 00:58:16,920 >> Ir kaip žemę, JavaScript šių dienų Taip pat gali būti naudojamas serveryje kaip 1246 00:58:16,920 --> 00:58:19,920 PHP naudojant sistemą, vadinamą Node.js. 1247 00:58:19,920 --> 00:58:24,670 Vienas CS50 yra TFS, Kevin, lėmė seminaras Node.js tai galima rasti 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Taigi, jei jums įdomu, žinau, kad jums galite naudoti serverio pusėje, kaip 1250 00:58:28,830 --> 00:58:33,870 gerai, bet tai gana neseniai tendencija, bet galingas vienas tuo. 1251 00:58:33,870 --> 00:58:35,270 >> Tai yra šiek tiek kitoks. 1252 00:58:35,270 --> 00:58:37,910 Tai JavaScript masyvo. 1253 00:58:37,910 --> 00:58:40,115 Ir kas streikų jums kaip skiriasi , palyginti su C ar PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Yra keletas greitai istorijos mes galime pasakyti čia. 1256 00:58:47,420 --> 00:58:49,367 Ko trūksta palyginti su PHP? 1257 00:58:49,367 --> 00:58:51,652 >> PUBLIKA: [nesigirdi]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID Malan: Taip? 1259 00:58:52,110 --> 00:58:53,322 Atsiprašome, pakartosiu dar kartą? 1260 00:58:53,322 --> 00:58:54,740 >> PUBLIKA: Ne skelbiantis kintamojo tipas. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID Malan: Mes ne skelbiantis kintamojo tipas. 1262 00:58:56,390 --> 00:58:59,630 Taigi iš tikrųjų labai patiko PHP, mes ne nurodydama šio kintamojo tipus. 1263 00:58:59,630 --> 00:59:02,670 Atvirkščiai, mes daugiau bendrine sakydamas var kintamojo. 1264 00:59:02,670 --> 00:59:06,690 Mes neturime PHP daromą poveikį dolerio ženklas, kurie, nors ir varginantis 1265 00:59:06,690 --> 00:59:09,160 tipas, ar priimti labiau aišku, kad kažkas yra kintamas. 1266 00:59:09,160 --> 00:59:11,830 Kadangi čia mes tarsi atgal C metodas tiesiog paskambinę 1267 00:59:11,830 --> 00:59:14,500 kintamojo pavadinimu norime suteikti jai, kaip ir numerius. 1268 00:59:14,500 --> 00:59:17,170 Ir taip pat kaip PHP, mes turime kvadratinių laikikliai 1269 00:59:17,170 --> 00:59:19,170 vertybės viduje, kad masyvo. 1270 00:59:19,170 --> 00:59:22,490 >> Taigi kintamieji JavaScript pat gali atrodyti taip. 1271 00:59:22,490 --> 00:59:26,900 Atkreipkite dėmesį, čia tai eilutė vadinama s bet panašiai turi mes nenurodomas 1272 00:59:26,900 --> 00:59:28,750 kad tai eilutė. 1273 00:59:28,750 --> 00:59:33,160 Tačiau čia yra funkcija, kuri nėra egzistuoja lygiai taip pat, PHP, 1274 00:59:33,160 --> 00:59:34,460 bet šiek tiek panašiai. 1275 00:59:34,460 --> 00:59:36,530 Tai JavaScript objektas. 1276 00:59:36,530 --> 00:59:42,110 Ir objektai yra tarsi Šveicarų armijos Peilis duomenų struktūros, kad jūs 1277 00:59:42,110 --> 00:59:43,900 gali juos naudoti bet daug dalykų. 1278 00:59:43,900 --> 00:59:46,860 >> Štai, pavyzdžiui, mes skelbiantis kintamasis vadinamas citata. 1279 00:59:46,860 --> 00:59:49,110 Šio kintamojo tipas yra objektas. 1280 00:59:49,110 --> 00:59:53,550 Jūs galite galvoti apie tai, kaip C struct kad turi raktus ir reikšmes. 1281 00:59:53,550 --> 00:59:55,250 Simbolis yra raktas. 1282 00:59:55,250 --> 00:59:57,350 FB yra vertė, matyt akcijų simbolis. 1283 00:59:57,350 --> 00:59:57,930 Kablelis. 1284 00:59:57,930 --> 01:00:02,180 Kaina yra dar vienas svarbus, o jo reikšmė yra matyt slankaus kablelio arba 1285 01:00:02,180 --> 01:00:06,510 skaičius apskritai JavaScript ir $ 49,26. 1286 01:00:06,510 --> 01:00:09,030 >> Taigi PHP neturi - 1287 01:00:09,030 --> 01:00:12,980 mes nematėme PHP objektus gana kaip tai, bet mes pamatyti analogas, 1288 01:00:12,980 --> 01:00:14,093 kuris buvo ką? 1289 01:00:14,093 --> 01:00:14,980 >> PUBLIKA: [nesigirdi]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID Malan: Association masyvai. 1291 01:00:16,110 --> 01:00:19,990 Taigi, kadangi PHP turi Association masyvai kurios sintaksė yra kada nors šiek tiek, 1292 01:00:19,990 --> 01:00:20,370 skirtingi - 1293 01:00:20,370 --> 01:00:21,780 matėme skliaustus. 1294 01:00:21,780 --> 01:00:23,860 Mes matėme keistus Rodyklių simboliai. 1295 01:00:23,860 --> 01:00:27,330 JavaScript turi daiktų, bet tai daugiausia semantinis skirtumas ir 1296 01:00:27,330 --> 01:00:29,260 skiriasi sinonimas dabar. 1297 01:00:29,260 --> 01:00:35,060 Tačiau, kaip panaikinti, PHP taip pat turi objektus tokiu būdu, kad "Java" ir kiti 1298 01:00:35,060 --> 01:00:37,810 kalbos turi objektų Objektinis programavimas. 1299 01:00:37,810 --> 01:00:40,440 Bet mes naudosime šias tiesiog už duomenų tipų dabar. 1300 01:00:40,440 --> 01:00:42,170 Objektai ir Association masyvai. 1301 01:00:42,170 --> 01:00:44,140 >> Tai vienas gali padaryti tai šiek tiek daugiau aišku. 1302 01:00:44,140 --> 01:00:45,890 Štai kodėl objektas yra naudinga. 1303 01:00:45,890 --> 01:00:48,760 Jei norite paskelbti studentų, kaip Zamyla, mes galime iš tikrųjų 1304 01:00:48,760 --> 01:00:52,630 viską, taip sakant viduje, kad prieštarauti naudojant garbanotas skliausteliuose kaip 1305 01:00:52,630 --> 01:00:55,060 prieš visa krūva raktų ir vertybės čia. 1306 01:00:55,060 --> 01:00:59,150 Turime ID, namą, ir už vardą Zamyla, po kabliataškiu kaip 1307 01:00:59,150 --> 01:01:00,690 Įprasta pabaigoje. 1308 01:01:00,690 --> 01:01:04,840 >> Žemyn ir čia, tai yra šiek tiek skiriasi, bet taip pat labai galingas 1309 01:01:04,840 --> 01:01:05,690 šių dienų. 1310 01:01:05,690 --> 01:01:08,780 Štai masyvas, ir aš žinau, kad dėl ten kvadratas laikiklis iki 1311 01:01:08,780 --> 01:01:11,090 viršuje ir kvadratas laikiklis apačioje. 1312 01:01:11,090 --> 01:01:16,050 Ir tai yra tai, kokie duomenys masyvas įveskite matyt JavaScript? 1313 01:01:16,050 --> 01:01:21,260 Tai ji atrodo masyvas kaip trys objektai. 1314 01:01:21,260 --> 01:01:24,580 Ir aš žinau, tai tik daiktas nes garbanotas petnešos. 1315 01:01:24,580 --> 01:01:28,760 Ir pastebėsite, kad atvira garbanotas petnešomis, kai kurių dalykų, netoli garbanotas petnešomis, kablelis, 1316 01:01:28,760 --> 01:01:31,180 tada šiek tiek daugiau, kablelis, ir tada šiek tiek daugiau. 1317 01:01:31,180 --> 01:01:33,800 Štai trys argumentai atskirti du kableliais. 1318 01:01:33,800 --> 01:01:36,810 >> Taigi tai yra trijų objektų masyvo. 1319 01:01:36,810 --> 01:01:39,940 Ir kiekvienas iš šių objektų atrodo studentas ar darbuotojas kai 1320 01:01:39,940 --> 01:01:42,370 rūšiuoti, kiekvienas su ID, namas, vardas ir pavardė. 1321 01:01:42,370 --> 01:01:45,060 Bet aš pavadino kažką vadinamas JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript objektas žymėjimas. 1323 01:01:47,450 --> 01:01:52,060 Ir tai yra duomenų formatas, kad iš tikrųjų yra toks labai populiarus ir 1324 01:01:52,060 --> 01:01:55,100 madoje šių dienų, kad jei jums reikia parašyti programa, kuri naudoja Facebook 1325 01:01:55,100 --> 01:01:59,150 API Twitter API tikrai beveik bet API ten šių dienų, 1326 01:01:59,150 --> 01:02:02,820 įskaitant kai CS50 savo, duomenys, gauti atgal nėra 1327 01:02:02,820 --> 01:02:04,720 senosios mokyklos CSV formatu. 1328 01:02:04,720 --> 01:02:06,780 >> Kadangi prisiminti, kad CSV yra super paprasta. 1329 01:02:06,780 --> 01:02:10,230 Jis yra tik stulpeliai atskirti kableliais. 1330 01:02:10,230 --> 01:02:13,190 JSON duomenų suteikia jums daugiau metaduomenis. 1331 01:02:13,190 --> 01:02:17,800 Ji susieja su kiekvienu vertės raktą taip jie neturi tiesiog manyti, kad 1332 01:02:17,800 --> 01:02:22,460 nulinis stulpelis yra viena reikšmė stulpelyje vienas kitą, du stulpelis yra kita. 1333 01:02:22,460 --> 01:02:26,790 Viskas JSON objektas čia yra tarsi savarankiškai aprašyti, nes kiekvienas 1334 01:02:26,790 --> 01:02:30,940 vienas iš pavadinimų, šioje byloje yra tiesiog vardas prieš jį kaip 1335 01:02:30,940 --> 01:02:32,510 citavo eilutė. 1336 01:02:32,510 --> 01:02:34,950 >> Taigi, galime pažvelgti į išvaizdą pora pavyzdžių čia. 1337 01:02:34,950 --> 01:02:36,800 Leiskite man eiti į prietaisą. 1338 01:02:36,800 --> 01:02:41,000 Ir leiskite man eiti į mūsų vhost katalogas į visuomenę. 1339 01:02:41,000 --> 01:02:45,590 Ir leiskite man eiti į JavaScript katalogas. 1340 01:02:45,590 --> 01:02:49,610 Ir eikime į priekį ir atverti dom-0.html, kur DOM tiesiog reiškia, 1341 01:02:49,610 --> 01:02:51,010 Objektinis modelis dokumento. 1342 01:02:51,010 --> 01:02:53,490 Tai medis stuff, kuris Aš anksčiau nurodyta. 1343 01:02:53,490 --> 01:02:54,950 >> Ir leiskite man pasiūlyti šiuos. 1344 01:02:54,950 --> 01:02:57,720 Štai interneto puslapis, kurio kūnas yra gana paprasta. 1345 01:02:57,720 --> 01:03:00,170 Taigi, čia apačioje apačioje, pastebėti Turiu formą. 1346 01:03:00,170 --> 01:03:01,500 Mes matėme tuos anksčiau. 1347 01:03:01,500 --> 01:03:07,600 Ji turi du įėjimus, vienas iš jų turi ID pavadinimu, iš kurių vienas turi tipą 1348 01:03:07,600 --> 01:03:09,830 pateikti, ir pirmą One tipas yra tekstas. 1349 01:03:09,830 --> 01:03:11,900 Taigi tai tikrai skamba gana paprasta. 1350 01:03:11,900 --> 01:03:13,090 >> Vykime čia. 1351 01:03:13,090 --> 01:03:15,390 Grįžkime į šį puslapį čia. 1352 01:03:15,390 --> 01:03:21,030 Vykime į localhost, ir eiti į mūsų Javaskriptą katalogas, eikite į 1353 01:03:21,030 --> 01:03:24,640 dom-0, ir čia mes turime šią formą. 1354 01:03:24,640 --> 01:03:26,550 Štai, matyt, visa tai puslapis nėra. 1355 01:03:26,550 --> 01:03:28,740 Jis turi vardą lauką mygtuką "Siųsti". 1356 01:03:28,740 --> 01:03:30,340 Bet aš ne ketinate naudoti PHP čia. 1357 01:03:30,340 --> 01:03:34,310 Aš ruošiuosi padaryti viską kliento pusėje taip sakant "JavaScript" taip. 1358 01:03:34,310 --> 01:03:39,100 >> Atkreipkite dėmesį, kad aš iš tikrųjų suteiktas pavadinimas laukas šio įėjimo unikalus 1359 01:03:39,100 --> 01:03:42,350 identifikatorius, kuris bus faktiškai sutaupyti man laiko momentu. 1360 01:03:42,350 --> 01:03:45,480 Ir pranešimas aš pristatė dar tegus į mano tinklalapį galvos, 1361 01:03:45,480 --> 01:03:46,565  žymė. 1362 01:03:46,565 --> 01:03:50,120 >> Taigi, tai ta prasme, kad JavaScript yra client-side programavimo kalba. 1363 01:03:50,120 --> 01:03:55,020 Šiuo atveju, kaip ir CSS, aš įdėti tai tiesiai viduje savo HTML. 1364 01:03:55,020 --> 01:03:58,810 Bet pranešimas aš paskelbė funkciją kad atrodo šiek tiek panašus į PHP 1365 01:03:58,810 --> 01:04:01,530 sintaksiškai, bet iš tikrųjų tai yra JavaScript nes vėl, tai 1366 01:04:01,530 --> 01:04:03,920 kliento pusėje naršyklėje. 1367 01:04:03,920 --> 01:04:07,590 Ir atspėti, ką šis ketina padaryti, nors kai kurios sintaksė 1368 01:04:07,590 --> 01:04:09,338 čia yra naujas. 1369 01:04:09,338 --> 01:04:11,760 >> PUBLIKA: Say hello to tas, kas. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID Malan: Ji ketina pasakyti labas kad kiekvienas, kuris apsilanko šį puslapį. 1371 01:04:14,020 --> 01:04:15,120 Taigi, kaip? 1372 01:04:15,120 --> 01:04:18,070 >> Taigi pastebėti, paaiškėja, JavaScript ten alert () funkciją. 1373 01:04:18,070 --> 01:04:22,840 Tai labai tarsi liūdna funkcija, tikrai tik linkęs erzina vartotojus. 1374 01:04:22,840 --> 01:04:25,440 Tai ne vienas tikrai turėtų naudoti paprastai, bet tai greitai ir purvinas 1375 01:04:25,440 --> 01:04:27,710 būdas rūšiuoti spausdinti kažką į grafinę vartotojo 1376 01:04:27,710 --> 01:04:29,180 sąsaja, kaip naršyklėje. 1377 01:04:29,180 --> 01:04:31,400 Atkreipkite dėmesį, kad čia aš turiu Styga apostrofais. 1378 01:04:31,400 --> 01:04:36,010 Pasirodo, kad, skirtingai nei C, JavaScript iš tikrųjų gali turėti jūs naudojate vieną 1379 01:04:36,010 --> 01:04:38,730 citatos, ir atvirai tai tiesiog rūšies iš stilistinės konvencijos tarp 1380 01:04:38,730 --> 01:04:41,180 "JavaScript" programuotojai naudoti kabutes. 1381 01:04:41,180 --> 01:04:43,750 PHP, jie iš tikrųjų turi šiek tiek kitokią prasmę. 1382 01:04:43,750 --> 01:04:45,810 Bet dabar, tiesiog žinau, kad tai vienintelė priežastis. 1383 01:04:45,810 --> 01:04:49,270 JavaScript konvencija dažnai Viegubomis kabutemis, bet mes galime naudoti 1384 01:04:49,270 --> 01:04:50,950 kabutes abiejose vietose, taip pat. 1385 01:04:50,950 --> 01:04:52,610 >> Taigi tai yra įdomu. 1386 01:04:52,610 --> 01:04:56,430 Prisiminkite paskutinį kartą, kad mes turėjome, kad vaizdo ekrane, kad atkreipė į medį 1387 01:04:56,430 --> 01:04:59,720 kur turėjo HTML mazgas, ir Pagrindinis mazgas, o kūnas mazgas, 1388 01:04:59,720 --> 01:05:00,800 ir tada kai tekstas. 1389 01:05:00,800 --> 01:05:04,700 Tačiau juk tai buvo viena speciali mazgas ne pačiame viršuje, kad aš vadinamas dokumentą. 1390 01:05:04,700 --> 01:05:08,260 Na, paaiškėja, JavaScript, bet kartą jums parašyti į "JavaScript" programa 1391 01:05:08,260 --> 01:05:11,040 naršyklėje, jūs turite prieigą prie ypatingą pasaulinį kintamąjį. 1392 01:05:11,040 --> 01:05:14,130 Panašus dvasia PHP superglobals, tai vienas yra vadinamas 1393 01:05:14,130 --> 01:05:16,050 mažosiomis raidėmis dokumentas. 1394 01:05:16,050 --> 01:05:21,480 >> Tai tarsi struct, bet tai struct taip pat turi funkcijas viduje. 1395 01:05:21,480 --> 01:05:23,790 Taigi C struct tiesiog turi duomenis paprastai. 1396 01:05:23,790 --> 01:05:29,060 Bet JavaScript objektas, nes tai techniškai taip pat turi funkcijas, 1397 01:05:29,060 --> 01:05:31,830 kitaip žinomas kaip metodų, viduje ji. 1398 01:05:31,830 --> 01:05:35,750 Ir jūs galite skambinti funkcija viduje šis objektas yra gana pažodžiui daro savo 1399 01:05:35,750 --> 01:05:39,610 pavadinimas, taškas, ir tada pavadinimas funkcija, ar vėl metodas. 1400 01:05:39,610 --> 01:05:41,160 Tai tiesiog sinonimas, tikrai. 1401 01:05:41,160 --> 01:05:42,450 >> Ir ką ši funkcija daro? 1402 01:05:42,450 --> 01:05:43,840 Galite rūšies atspėti iš pavadinimo. 1403 01:05:43,840 --> 01:05:45,590 Gauk elementas pagal ID. 1404 01:05:45,590 --> 01:05:50,040 Taigi tai vyksta ieškoti interneto puslapį, ieškoti tą medį, ieško 1405 01:05:50,040 --> 01:05:55,210 kokia mazgas, AKA elementas turi unikalus ID citata citatos vardą. 1406 01:05:55,210 --> 01:05:56,560 Ir tada ką aš darysiu? 1407 01:05:56,560 --> 01:06:00,350 Aš ruošiuosi gauti vertę viduje kad mazgas medžio, ir aš ruošiuosi 1408 01:06:00,350 --> 01:06:02,580 kažkaip pasakyti labas tokiu pavadinimu. 1409 01:06:02,580 --> 01:06:05,360 >> Taigi spėti, nors mes ne mačiau tai dar, ką daryti plius 1410 01:06:05,360 --> 01:06:07,396 reiškia simboliai čia ir čia tikriausiai? 1411 01:06:07,396 --> 01:06:08,230 >> Auditorija: Jungiant. 1412 01:06:08,230 --> 01:06:09,220 >> Davidas Malan: Jungiant. 1413 01:06:09,220 --> 01:06:11,290 Teisė, ir tai tik rūšiuoti dizaino sprendimus 1414 01:06:11,290 --> 01:06:12,280 žmonės padarė metų. 1415 01:06:12,280 --> 01:06:15,190 PHP, jūs Jungiant viskas su taškeliais. 1416 01:06:15,190 --> 01:06:18,800 In C, galite šokinėti per kelis lankus ir skambinti funkcijas, pavyzdžiui, strcopy () arba 1417 01:06:18,800 --> 01:06:20,600 strcat () arba kitų tokios funkcijos. 1418 01:06:20,600 --> 01:06:22,060 Tačiau JavaScript, galite naudoti pliusus. 1419 01:06:22,060 --> 01:06:24,770 Taigi tai yra tik concatenating Trys stygos - 1420 01:06:24,770 --> 01:06:27,850 labas, pavadinimas, o tada šauktukas. 1421 01:06:27,850 --> 01:06:30,390 >> Taigi, kada ir kodėl ši funkcija vadinamas nors? 1422 01:06:30,390 --> 01:06:33,150 Na, iš spėti HTML apačioje. 1423 01:06:33,150 --> 01:06:35,810 Kodėl pasveikinti () vadinamas, ar kada? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Matyt, kaip geriausiai galiu pasakyti, ant pateikti, kai ši forma yra pateikta, 1426 01:06:44,030 --> 01:06:47,200 Aš ruošiuosi daryti viską, viduje šių kabučių. 1427 01:06:47,200 --> 01:06:50,900 Tiksliau, aš ruošiuosi skambinti pasveikinti () ir tada grįžti klaidinga. 1428 01:06:50,900 --> 01:06:53,090 >> Na, pažiūrėkime, ką grynasis poveikis čia yra pirmasis. 1429 01:06:53,090 --> 01:06:58,290 Taigi leiskite man eiti į priekį ir įveskite , tarkim, Loren, siųsti. 1430 01:06:58,290 --> 01:06:59,440 Sveiki Loren. 1431 01:06:59,440 --> 01:07:02,990 Leiskite pamatyti, jei gal tai buvo tik pasisekė įgyvendinti. 1432 01:07:02,990 --> 01:07:03,200 Nope. 1433 01:07:03,200 --> 01:07:05,990 Taigi tai rašyti bet kada pavadinti Aš iš tikrųjų įdėti ten. 1434 01:07:05,990 --> 01:07:07,970 >> Tačiau pastebėti, kas nesikeičia. 1435 01:07:07,970 --> 01:07:10,360 URL yra dar dom-0.html. 1436 01:07:10,360 --> 01:07:11,820 Nėra register.php. 1437 01:07:11,820 --> 01:07:13,110 Nėra antra byla. 1438 01:07:13,110 --> 01:07:14,930 Nereikia imtis jokių veiksmų atributas. 1439 01:07:14,930 --> 01:07:19,720 Taigi, kas yra šis sugrįžimas klaidinga tikriausiai darai? 1440 01:07:19,720 --> 01:07:23,660 Kodėl aš skambina pasveikinti () ir tada grįžti klaidinga tikriausiai? 1441 01:07:23,660 --> 01:07:26,420 Kas paprastai atsitinka, kai jūs spustelėkite Pateikti tokią formą, kuri dar turime 1442 01:07:26,420 --> 01:07:27,854 pastebėtas praeitą savaitę? 1443 01:07:27,854 --> 01:07:29,900 >> Auditorija: [nesigirdi]. 1444 01:07:29,900 --> 01:07:30,860 >> Davidas Malan: Jis eina kažkur, tiesa? 1445 01:07:30,860 --> 01:07:32,720 Jis eina tam tikru paskirties URL. 1446 01:07:32,720 --> 01:07:34,120 Bet aš nenoriu, kad taip atsitiktų čia. 1447 01:07:34,120 --> 01:07:37,620 Noriu, kad mano interneto puslapis turi būti visiškai dinamiškas kaip "Gmail", kur kadaise esate 1448 01:07:37,620 --> 01:07:38,650 ten, jūs ten pasilikti. 1449 01:07:38,650 --> 01:07:42,900 URL nesikeičia tokiu būdu, kuris rodo visas puslapis yra perkraunami. 1450 01:07:42,900 --> 01:07:46,680 Atvirkščiai, aš tik noriu ką nors pakeisti kaip spausdinti kažką 1451 01:07:46,680 --> 01:07:48,320 čia ekrane. 1452 01:07:48,320 --> 01:07:49,630 >> Na leiskite man valyti tai iki šiek tiek. 1453 01:07:49,630 --> 01:07:55,370 Leiskite man atverti ne dom-0, tačiau leiskite man atverti Dom-2. 1454 01:07:55,370 --> 01:07:57,350 Tiesiog taip, jūs mačiau kai sintaksę. 1455 01:07:57,350 --> 01:08:02,080 >> Pasirodo, kad tai, ką mes tiesiog buvo naudojant žalią "JavaScript". 1456 01:08:02,080 --> 01:08:04,420 Taigi tai tikrai kalba "JavaScript". 1457 01:08:04,420 --> 01:08:07,340 Kai kurie iš jūsų gali žinoti, iš biblioteka vadinama JQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Taigi JQuery yra ne tas pats dalyko kaip "JavaScript". 1459 01:08:09,980 --> 01:08:14,110 Tai tik biblioteka, kuri tikrai protingas vaikinas rašė ir išpopuliarino tokios 1460 01:08:14,110 --> 01:08:18,100 kad beveik visi pasaulyje dabar naudoja JQuery naudojant "JavaScript". 1461 01:08:18,100 --> 01:08:20,890 Ir iš pirmo žvilgsnio, sąžiningai, tai atrodo šiek tiek daugiau paslaptingas. 1462 01:08:20,890 --> 01:08:24,990 Bet jūs rasite, ypač jei jūs einate ten savo galutinį projektą su interneto 1463 01:08:24,990 --> 01:08:29,029 plėtra, jūs pamatysite, kad tai valo viską ir taupo Jūsų gana 1464 01:08:29,029 --> 01:08:30,229 keletą eilučių kodo. 1465 01:08:30,229 --> 01:08:33,189 >> Taigi tegul tiesiog pažvelgti kaip ši forma yra darbo. 1466 01:08:33,189 --> 01:08:35,664 Pranešimas ką aš pašalinti matyt iš savo HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Nėra ant pateikti prižiūrėtojas taip sakant. 1469 01:08:40,630 --> 01:08:41,470 Nėra atributas. 1470 01:08:41,470 --> 01:08:43,359 Kadangi jūs žinote, ką Aš tikrai patinka? 1471 01:08:43,359 --> 01:08:45,640 Aš jaučiau, kad mes krito į senus įpročius ten. 1472 01:08:45,640 --> 01:08:49,340 Kaip ji buvo pradeda jaustis aplaistytas susimaišyti tiek CSS su 1473 01:08:49,340 --> 01:08:52,149 HTML, nes esate rūšies mesti skirtingomis kalbomis visame 1474 01:08:52,149 --> 01:08:56,180 vieta, panašiai buvo tai pradeda jaustis kaip blogas kelio eiti ten, kur 1475 01:08:56,180 --> 01:09:01,069 Aš pradėti JavaScript kodą viduje iš mano HTML, o ne faktoringo jį. 1476 01:09:01,069 --> 01:09:02,279 >> Štai pamoka čia. 1477 01:09:02,279 --> 01:09:05,080 Be Dom-2.html, aš faktoringo jį. 1478 01:09:05,080 --> 01:09:07,399 Ir aš darau dalykus šiek tiek skirtingai. 1479 01:09:07,399 --> 01:09:09,630 Nes dabar, aš ruošiuosi pakylės savo rankas kokia tai tikrai 1480 01:09:09,630 --> 01:09:10,590 po gaubtu. 1481 01:09:10,590 --> 01:09:14,210 Bet tik dabar prisiima, kad pirmasis eilutėje kodas šioje bibliotekoje 1482 01:09:14,210 --> 01:09:18,170 vadinamas JQuery tiesiog reiškia, kai dokumentas yra pasirengusi, atlikite šiuos veiksmus. 1483 01:09:18,170 --> 01:09:20,080 >> Kadangi tinklalapiai gali būti šiek tiek laiko įkelti. 1484 01:09:20,080 --> 01:09:23,029 Jums gali būti ant lėtos internete ryšys, ir jis gali būti verpimo 1485 01:09:23,029 --> 01:09:25,290 ir verpimo, ir galiausiai jis pakrautas. 1486 01:09:25,290 --> 01:09:29,060 Šis kodo eilutę tiesiog sako laukti, kol visas puslapis yra pasirengusi dokumentas 1487 01:09:29,060 --> 01:09:31,189 yra pasirengęs, prieš vykdant šį kodą. 1488 01:09:31,189 --> 01:09:34,390 >> Ir dabar pastebėkite, tai tikriausiai labiausiai naudingas pirmasis 1489 01:09:34,390 --> 01:09:36,189 atimti iš JQuery. 1490 01:09:36,189 --> 01:09:42,140 Ši linija čia yra labai panaši dvasia šį daug ilgesnį linijos čia. 1491 01:09:42,140 --> 01:09:46,920 Kadangi žaliavinio JavaScript kodą, yra egzistuoja dokumento pasaulio objektą, 1492 01:09:46,920 --> 01:09:50,460 turi funkciją, vadinamą getElementById (), žmonės, kurie parašė 1493 01:09:50,460 --> 01:09:55,720 JQuery supaprastintas, kad tiesiog pasakyti dolerio ženklas, tada viduje 1494 01:09:55,720 --> 01:10:00,250 skliausteliuose įdėti du kabučių, tada įdėti grotelėmis po 1495 01:10:00,250 --> 01:10:02,250 unikalus ID, jūs norite paimti. 1496 01:10:02,250 --> 01:10:06,170 Taigi tai atitinka document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Tuo tarpu. Submit tiesiog reiškia, į pateikimas bet kokia forma jūs 1498 01:10:11,090 --> 01:10:14,240 nuoroda į kairėje pusėje, eikite į priekį ir atlikti tai. 1499 01:10:14,240 --> 01:10:16,600 Bet tai dabar smalsumas taip pat. 1500 01:10:16,600 --> 01:10:19,560 Kas keista, apie ką Aš pabrėžė čia? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Ne tik tai rūšies sintaksiškai naujas, ten taip pat kažko trūksta. 1503 01:10:28,594 --> 01:10:29,558 >> Auditorija: Tai tiesiog vadinama funkcija? 1504 01:10:29,558 --> 01:10:31,970 Tai nėra vadinamas perspėjimą? 1505 01:10:31,970 --> 01:10:32,440 >> Davidas Malan: Taip. 1506 01:10:32,440 --> 01:10:35,450 Na, taip, alert () yra žemyn čia būti sąžininga. 1507 01:10:35,450 --> 01:10:39,520 Bet nėra paminėjimas pavadinimas, kaip žinote, rūšys arba 1508 01:10:39,520 --> 01:10:40,980 kažkas čia. 1509 01:10:40,980 --> 01:10:43,830 Ir iš tiesų, tai viena iš funkcijų "JavaScript", kad gana 1510 01:10:43,830 --> 01:10:45,370 galingas, bet taip pat gana nauja. 1511 01:10:45,370 --> 01:10:47,460 Ir PHP tikrųjų turi tai taip pat. 1512 01:10:47,460 --> 01:10:49,500 >> Leiskite man eiti į priekį ir daryti kažkas nekilnojamojo greitai. 1513 01:10:49,500 --> 01:10:52,030 Leiskite man eiti į priekį ir įdėti šį čia. 1514 01:10:52,030 --> 01:10:52,600 Leiskite tai padaryti. 1515 01:10:52,600 --> 01:10:53,690 Funkcija. 1516 01:10:53,690 --> 01:10:56,455 Tegul vadina prižiūrėtojas (). 1517 01:10:56,455 --> 01:10:58,290 Prižiūrėtojas funkcija taip sakant. 1518 01:10:58,290 --> 01:11:00,110 Kažkas, kad rankenos tikrą operaciją. 1519 01:11:00,110 --> 01:11:02,700 Leiskite išvalyti mano įdubimas. 1520 01:11:02,700 --> 01:11:04,380 Ir įdėti šią nuorodą čia. 1521 01:11:04,380 --> 01:11:06,090 Ir įdėti, kad čia. 1522 01:11:06,090 --> 01:11:06,470 Taip. 1523 01:11:06,470 --> 01:11:07,060 Gerai. 1524 01:11:07,060 --> 01:11:10,300 >> Taigi dabar turiu funkcija vadinama prižiūrėtojas (), kad aš tikrai nežino, 1525 01:11:10,300 --> 01:11:10,890 ką ji daro dar. 1526 01:11:10,890 --> 01:11:12,710 Tai tik dar, kad kita. 1527 01:11:12,710 --> 01:11:13,900 Oi. 1528 01:11:13,900 --> 01:11:15,820 Buvo per daug. 1529 01:11:15,820 --> 01:11:18,490 Leiskite tai padaryti. 1530 01:11:18,490 --> 01:11:18,990 Gerai. 1531 01:11:18,990 --> 01:11:20,240 Atsiprašau. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Gerai. 1534 01:11:23,690 --> 01:11:24,720 Leiskite tai padaryti. 1535 01:11:24,720 --> 01:11:25,020 Gerai. 1536 01:11:25,020 --> 01:11:27,040 Kad atrodo gražiai ir tiesiai perduoti dabar. 1537 01:11:27,040 --> 01:11:29,090 Leiskite tai padaryti. 1538 01:11:29,090 --> 01:11:29,860 Darykite tai. 1539 01:11:29,860 --> 01:11:30,950 Ir Gerai. 1540 01:11:30,950 --> 01:11:33,080 Taigi, dabar, tegul įdėti šią nuorodą čia. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Ne daugiau programavimo skristi. 1543 01:11:37,270 --> 01:11:37,900 Gerai. 1544 01:11:37,900 --> 01:11:40,000 >> Taigi dabar grįžkime prie kur istorija prasidėjo. 1545 01:11:40,000 --> 01:11:43,530 Anksčiau sakiau, kad ši linija čia reiškia, kai dokumentas yra pasirengusi eiti 1546 01:11:43,530 --> 01:11:44,380 į priekį ir tai padaryti. 1547 01:11:44,380 --> 01:11:45,660 Ką norite daryti? 1548 01:11:45,660 --> 01:11:49,070 Na konkrečiau, aš noriu eiti į priekį ir atlikite šiuos veiksmus. 1549 01:11:49,070 --> 01:11:53,700 Paleiskite šią kodo eilutę, ir tada ką aš noriu jums reikia padaryti, tai vadiname 1550 01:11:53,700 --> 01:11:56,370 veikti, kai yra pateikta forma. 1551 01:11:56,370 --> 01:11:57,730 >> Dabar tai yra tai, kas įdomu. 1552 01:11:57,730 --> 01:11:59,170 Tai nėra pati funkcija. 1553 01:11:59,170 --> 01:12:02,540 Atkreipkite dėmesį, aš ne išleisti skliaustus čia įprastu būdu. 1554 01:12:02,540 --> 01:12:06,800 Aš tiesiog artimųjų funkcija vadinama prižiūrėtojas () kitos funkcijos 1555 01:12:06,800 --> 01:12:10,800 vadinamas pateikti () kaip argumentą kaip nors tai kaip kintamąjį. 1556 01:12:10,800 --> 01:12:14,290 Ir tai yra viena iš funkcijų JavaScript yra funkcijas vykdantiems patys 1557 01:12:14,290 --> 01:12:15,710 tikrai tik objektai. 1558 01:12:15,710 --> 01:12:18,350 Tiesą sakant, jie tikrai tik kintamieji kažkoks. 1559 01:12:18,350 --> 01:12:21,340 Ir jei funkcija vardas prižiūrėtojas (), nėra jokios priežasties, aš negaliu 1560 01:12:21,340 --> 01:12:23,390 perduoti jį kaip argumentą čia. 1561 01:12:23,390 --> 01:12:27,530 Ir tai reiškia, kai forma su DEMO ID 1562 01:12:27,530 --> 01:12:29,320 pateikta, skambinkite šią funkciją. 1563 01:12:29,320 --> 01:12:32,770 >> Bet dabar, jei aš atšaukti visa tai, kodėl tada aš galbūt padaryti 1564 01:12:32,770 --> 01:12:34,850 šis momentas prieš? 1565 01:12:34,850 --> 01:12:36,840 Na, tai yra anoniminis funkcija. 1566 01:12:36,840 --> 01:12:41,080 Nes tiesą sakant, supratau, kodėl aš trukdote gaišti laiko, skelbiantis 1567 01:12:41,080 --> 01:12:45,540 funkcija vadinama prižiūrėtojas (tik) skambinti tai viena ir tik vienoje vietoje? 1568 01:12:45,540 --> 01:12:48,640 Jei man nereikia pavadinimą, ir aš ne reikia ją vadina daugiau nei viena vieta, 1569 01:12:48,640 --> 01:12:51,200 tegul tiesiog įgyvendinti funkciją ten, kur man reikia. 1570 01:12:51,200 --> 01:12:55,190 Ir todėl JavaScript ir PHP remti ką vadinami anoniminiai funkcijas, 1571 01:12:55,190 --> 01:12:57,900 leiskite man padaryti būtent tai čia. 1572 01:12:57,900 --> 01:12:59,570 >> Bet mes tik įbrėžimas paviršiaus. 1573 01:12:59,570 --> 01:13:02,430 Leiskite erzinti tik su pora Galutiniai pavyzdžiai čia. 1574 01:13:02,430 --> 01:13:04,600 >> Jei aš einu į quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Atkreipkite dėmesį, kad iš tikrųjų tai yra PHP funkcija, PHP programa, kad aš parašiau 1577 01:13:11,870 --> 01:13:15,270 kad tikisi HTTP parametras vadinamas simbolis, ir aš gali perduoti 1578 01:13:15,270 --> 01:13:16,730 vertė, kaip FB. 1579 01:13:16,730 --> 01:13:20,010 Ir jei mes iš tikrųjų atrodo prie šaltinio kodas, tai užklausų nemokamą tinklavietę 1580 01:13:20,010 --> 01:13:23,680 vadinamas "Yahoo Finance, kaip p rinkinys septynių, ir jis grįžo į mane 1581 01:13:23,680 --> 01:13:26,580 kažkas, matyt, formatas žinomas yra JSON - 1582 01:13:26,580 --> 01:13:28,010 JavaScript objektas žymėjimas. 1583 01:13:28,010 --> 01:13:28,810 Tai tiesiog objektas. 1584 01:13:28,810 --> 01:13:32,500 Atkreipkite dėmesį, garbanotas petnešos, citatos, storosios žarnos, ir kablelius. 1585 01:13:32,500 --> 01:13:34,720 >> Dabar tuo tarpu, tai yra gana kietas. 1586 01:13:34,720 --> 01:13:38,520 Nes aš tikriausiai gali naudoti programas kalba generuoti URL 1587 01:13:38,520 --> 01:13:40,370 kad atrodyti taip dinamiškai, tiesa? 1588 01:13:40,370 --> 01:13:43,340 Galiu tai pakeisti į "Google" ir grįžti "Google" 1589 01:13:43,340 --> 01:13:47,930 akcijų kaina $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Taigi pažiūrėkime, jei mes negalime naudoti tai dabar. 1591 01:13:49,640 --> 01:13:56,590 >> Leiskite man eiti į Ajax 0 čia, o atrodo taip. 1592 01:13:56,590 --> 01:13:59,750 Tai tiesiog svetainė, kuri turi forma su mygtuku. 1593 01:13:59,750 --> 01:14:05,860 Leiskite man čia eiti į priekį ir įveskite YHOO Yahoo akcijų simbolis, spustelėkite Gauti 1594 01:14:05,860 --> 01:14:10,530 Citata, ir dabar pastebite aš Dotarłeś Priminimas su 32,86. 1595 01:14:10,530 --> 01:14:14,050 >> Leiskite man iš tikrųjų eiti į mėgėjas versija tai puslapis, versija du, ir 1596 01:14:14,050 --> 01:14:17,530 įveskite tarkim "Microsoft", MSFT. 1597 01:14:17,530 --> 01:14:18,410 Gauti citatą. 1598 01:14:18,410 --> 01:14:19,850 Ir dabar pastebėti, nėra perspėjimą. 1599 01:14:19,850 --> 01:14:22,770 Atkreipkite dėmesį, kai jis sako kaina turi būti nustatoma? 1600 01:14:22,770 --> 01:14:27,060 Yra paprasčiausias pavyzdžiais, kad užuominų kokia gchat, ir "Facebook" 1601 01:14:27,060 --> 01:14:30,070 Pokalbiai ir "Gmail" ir kitų tokių svetainės darai pagal faktiškai 1602 01:14:30,070 --> 01:14:31,290 keičiant tinklalapį. 1603 01:14:31,290 --> 01:14:31,800 >> Pastebėti tai. 1604 01:14:31,800 --> 01:14:33,120 Leiskite perkraukite puslapį. 1605 01:14:33,120 --> 01:14:35,080 Leiskite man atverti Chrome "inspektorius. 1606 01:14:35,080 --> 01:14:36,890 Leiskite man eiti į elementų skirtukas čia. 1607 01:14:36,890 --> 01:14:42,310 Dabar pastebėti, jeigu aš padidinti žemyn čia ir atidarysime, pastebėsite, kad tai mano 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - mano Objektinis modelis dokumento. 1609 01:14:44,500 --> 01:14:45,920 Čia yra mano HTML. 1610 01:14:45,920 --> 01:14:48,750 Bet dabar pastebėti, nors tai vyksta būti šiek tiek sunku jį pamatyti tiek 1611 01:14:48,750 --> 01:14:52,080 vietose vienu metu, jei aš tipo FB čia, žiūrėti apačioje 1612 01:14:52,080 --> 01:14:54,110 ekrano tik. 1613 01:14:54,110 --> 01:14:57,720 >> Tai iš tiesų keičiasi mano HTML skristi. 1614 01:14:57,720 --> 01:15:01,670 Ir tai daro tai paprasčiausiai daro kažką panašaus į tai. 1615 01:15:01,670 --> 01:15:06,800 Jei aš atverti ajax-2, pranešimas įgyvendinant kažkas seksualus kaip 1616 01:15:06,800 --> 01:15:09,560 kad, nors tai gana bjaurus, bet taip sudėtinga, kaip kad 1617 01:15:09,560 --> 01:15:11,910 funkciniu, ji turi kai kurių HTML apačioje. 1618 01:15:11,910 --> 01:15:13,810 Tačiau pastebėti aš naudojamas žymėti. 1619 01:15:13,810 --> 01:15:16,640 Mes nenaudojama prieš tai, bet tai kaip, bet neverčia 1620 01:15:16,640 --> 01:15:17,840 viskas į naują eilutę. 1621 01:15:17,840 --> 01:15:20,830 Jis tiesiog daro stačiakampę sritį toje pačioje eilutėje esmės. 1622 01:15:20,830 --> 01:15:22,870 >> Atkreipkite dėmesį, kad aš davė jai į kainą ID. 1623 01:15:22,870 --> 01:15:26,800 Ir it turns out, naudojant tą patį JavaScript biblioteka, turiu funkcija 1624 01:15:26,800 --> 01:15:30,440 vadinamas citata () tai vadinama, kai forma pateikta. 1625 01:15:30,440 --> 01:15:31,800 Ir ką aš darau tai. 1626 01:15:31,800 --> 01:15:35,730 Aš deklaruojant kintamąjį JavaScript vadinamas url, taupymo vertę 1627 01:15:35,730 --> 01:15:38,650 quote.php? simbolis =. 1628 01:15:38,650 --> 01:15:44,220 Kitaip tariant, aš esu pradedant parengti HTTP užklausą, tada 1629 01:15:44,220 --> 01:15:49,250 Aš concatenating ant kad su pliuso ką su ID elementas 1630 01:15:49,250 --> 01:15:54,190 iš simbolis, kai pranešimas apie tai, kad teksto laukas, nustatančio teisę čia. 1631 01:15:54,190 --> 01:15:56,630 Taigi, kaip mes turėjo formas praeityje. 1632 01:15:56,630 --> 01:16:01,450 >> Ir tada paaiškėja, į JQuery, jei skambinti. Val (), kad skambučiai iš Val 1633 01:16:01,450 --> 01:16:05,900 funkcija, vertė funkcija, kuri pasireiškia ką vartotojas įvedėte in 1634 01:16:05,900 --> 01:16:08,920 Ir tada visą tinklo srautą tai atsitiks tai. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> Ir kaip žemę, dolerio ženklas yra tiesiog sutrumpintai žymėjimas. 1637 01:16:13,720 --> 01:16:16,860 Tai tikrai jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Gauk mane JSON šiuo adresu, o kai prašymas grįžta, tai vadiname 1639 01:16:21,520 --> 01:16:26,550 funkcija ir praeiti kaip argumento ką grįžo iš serverio. 1640 01:16:26,550 --> 01:16:31,205 >> Taigi, kitaip tariant, jei aš einu atgal į naršyklė, ir aš grįžti į quote.php, 1641 01:16:31,205 --> 01:16:35,590 ką mano naršyklė darote, yra gauti tai duomenų riekė. 1642 01:16:35,590 --> 01:16:38,930 Ir kai aš einu į šį tinklalapį čia pastebėsite, jei mes vietoj eiti prie tinklo 1643 01:16:38,930 --> 01:16:43,820 skirtuką ir jį išvalyti, tada įveskite kažkas panašaus GOOG dėl "Google" ir gauti 1644 01:16:43,820 --> 01:16:46,340 Citata, pastebėsite puslapis nepakito. 1645 01:16:46,340 --> 01:16:50,990 Bet HTTP užklausa buvo, ir ką grįžo čia, jei pažvelgtume 1646 01:16:50,990 --> 01:16:56,130 atsakymas yra visa krūva JSON kad mes atvertas pagaliau su 1647 01:16:56,130 --> 01:16:58,070 tai paprasta linija čia. 1648 01:16:58,070 --> 01:17:00,150 >> Duomenys kas Dotarłeś iš serverio. 1649 01:17:00,150 --> 01:17:02,120 Kaina yra pavadinimas svarbiausia man rūpi. 1650 01:17:02,120 --> 01:17:05,230 Taigi data.price man duoda, kad. 1651 01:17:05,230 --> 01:17:07,540 >> Dabar tuo tarpu, ir tai yra paskutinis pavyzdys. 1652 01:17:07,540 --> 01:17:09,280 Jūs galite padaryti dar daugiau su puslapio. 1653 01:17:09,280 --> 01:17:12,440 Vienas iš tikrųjų, gerai du. 1654 01:17:12,440 --> 01:17:14,780 Mes galime sugrąžinti pažymėti, jei žinote tai. 1655 01:17:14,780 --> 01:17:15,850 Štai JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Mes galime tai padaryti. 1657 01:17:17,110 --> 01:17:17,690 Labai įdomu. 1658 01:17:17,690 --> 01:17:18,800 Mes palikti, kad kaip Įspūdingos filmą. 1659 01:17:18,800 --> 01:17:21,590 >> Bet labiau intriguojančiai, galite daryti tokius dalykus. 1660 01:17:21,590 --> 01:17:25,940 Jei aš einu į geolokalizacijos-1, paaiškėja, kad "Chrome" žino, kad mes esame 1661 01:17:25,940 --> 01:17:30,672 platuma ilguma 42.37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Taigi, čia yra dar ten jūsų dispozicijoje. 1663 01:17:32,940 --> 01:17:34,290 Bet daugiau apie tai kitą savaitę. 1664 01:17:34,290 --> 01:17:35,540 Pasimatysime pirmadienis. 1665 01:17:35,540 --> 01:17:37,558