1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID MALAN: Selvä. 3 00:00:12,360 --> 00:00:15,970 Tämä on CS50, ja tämä on viikon lopussa yhdeksän. 4 00:00:15,970 --> 00:00:18,560 Se on ollut tornado yli viime päivinä. 5 00:00:18,560 --> 00:00:21,580 Ja ongelma asettaa seitsemän, jos olet polvi syvälle se, toteuttaa siellä melko 6 00:00:21,580 --> 00:00:23,340 vähän uutta, että on siellä. 7 00:00:23,340 --> 00:00:26,660 Mutta katsotaanpa, jos emme saa selville kaikki yhdessä täällä lyhyesti 8 00:00:26,660 --> 00:00:29,230 sitä ennen ajautuminen ulos vuonna vielä toiseen suuntaan ja näkeminen 9 00:00:29,230 --> 00:00:30,510 missä muualla voimme mennä. 10 00:00:30,510 --> 00:00:32,630 >> Joten toistaiseksi, olemme puhuneet HTML. 11 00:00:32,630 --> 00:00:33,740 Olemme puhuneet CSS. 12 00:00:33,740 --> 00:00:34,705 Olemme puhuneet PHP. 13 00:00:34,705 --> 00:00:36,520 Olet alkanut kokea SQL. 14 00:00:36,520 --> 00:00:38,360 Tänään me puhua vähän noin JavaScript. 15 00:00:38,360 --> 00:00:41,230 Mutta miten kaikki nämä erillisten kielet sopivat yhteen? 16 00:00:41,230 --> 00:00:44,970 >> Joten puhuimme viime viikolla käsite, jonka palvelin. 17 00:00:44,970 --> 00:00:48,470 Joten haluan vain tehdä tämän suorakulmion kuten web-palvelin täällä. 18 00:00:48,470 --> 00:00:52,200 Ja web-palvelin palvelee varmasti tiedostoja. 19 00:00:52,200 --> 00:00:54,640 Ja jotkut näistä tiedostoista voi olla HTML-tiedostoja. 20 00:00:54,640 --> 00:00:58,270 Joten yksi niistä asioista, jotka www-palvelin voi sylkemään voisi olla tiedosto, joka 21 00:00:58,270 --> 00:01:01,290 me vain vetää näin sisältää joitakin HTML. 22 00:01:01,290 --> 00:01:04,786 Joten maallikon termein, mitä ei HTML voit tehdä? 23 00:01:04,786 --> 00:01:06,036 >> Yleisö: Page hyvältä. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID MALAN: OK, tee sivun hyvältä, vaikka mielestäni olen osoittautunut 26 00:01:12,310 --> 00:01:13,370 että muuten. 27 00:01:13,370 --> 00:01:18,250 Joten HTML ei anna sinun asetella sivut rakenteellisesti, ja sen avulla voit 28 00:01:18,250 --> 00:01:22,410 tavallaan esteettisesti merkitä sivun, merkitse staattista sisältöä, niin että sinulla 29 00:01:22,410 --> 00:01:23,640 voi sitten katsella sitä selaimella. 30 00:01:23,640 --> 00:01:24,690 >> Mutta se on avain. 31 00:01:24,690 --> 00:01:26,130 Se on staattista sisältöä. 32 00:01:26,130 --> 00:01:28,590 Kirjoitat sen, voit tallentaa sen, ja sitten lähettää sen. 33 00:01:28,590 --> 00:01:31,130 Ja web-palvelin toimii sitten se jopa kävijöitä. 34 00:01:31,130 --> 00:01:35,700 >> Mutta me tyylitellä asioita käyttämällä eri kielen kokonaan. 35 00:01:35,700 --> 00:01:40,150 Aloimme käyttää tyyliattribuutti tietyistä tageja. 36 00:01:40,150 --> 00:01:43,400 Ja tyyliattribuutti Tehkäämme asioita, kuten fontin kokoa ja väriä. 37 00:01:43,400 --> 00:01:46,460 Ja olet todennäköisesti alkoivat löytää, tai voit pian lopulliseen 38 00:01:46,460 --> 00:01:50,160 hankkeisiin mahdollisesti vielä muita ominaisuuksia, joita voit käyttää CSS. 39 00:01:50,160 --> 00:01:54,710 Ja niin maallikon termein, mitä todella niin ei CSS tehdä? 40 00:01:54,710 --> 00:01:57,810 Nämä ovat vain esimerkkejä niistä. 41 00:01:57,810 --> 00:02:00,730 Mitä se antaa sinun tehdä sitä HTML ei näytä siitä, mitä 42 00:02:00,730 --> 00:02:02,606 olemme nähneet tähän mennessä? 43 00:02:02,606 --> 00:02:04,850 >> Yleisö: Määrittele tyylejä itse. 44 00:02:04,850 --> 00:02:06,700 >> DAVID MALAN: Määritä tyylit itse. 45 00:02:06,700 --> 00:02:10,280 Joten määritellä asioita, kuten luokkiin, kun ovat voineet kokea, tai yksinomaan 46 00:02:10,280 --> 00:02:13,800 tunnistaa solmut asiakirja niin että voit tyylitellä niitä. 47 00:02:13,800 --> 00:02:16,890 Mutta tarkemmin, sanoisin, että CSS todella voit ottaa asiat 48 00:02:16,890 --> 00:02:20,790 viimeisen mailin ja voit määritellä paljon tarkemmin estetiikka, 49 00:02:20,790 --> 00:02:24,340 kun taas HTML suurimmaksi osaksi avulla voit jäsentää sivuja. 50 00:02:24,340 --> 00:02:27,310 >> Ja vaikka jotkut oletusarvot, kuten näimme tag 51 00:02:27,310 --> 00:02:30,690 Nimikkeen tunniste, joka karkeasti ottaen tehnyt asioita iso ja rohkea. 52 00:02:30,690 --> 00:02:34,250 Se on aika yleinen määritelmä tag - iso ja rohkea. 53 00:02:34,250 --> 00:02:35,260 Mikä fonttikoko on? 54 00:02:35,260 --> 00:02:36,080 Minkä värinen se on? 55 00:02:36,080 --> 00:02:36,890 Kuinka rohkea on? 56 00:02:36,890 --> 00:02:39,830 Ja CSS voit enemmän hienoksi virittää tuollaista. 57 00:02:39,830 --> 00:02:42,150 Sekä ulkoasu, kuten jotkut teistä ovat nähneet. 58 00:02:42,150 --> 00:02:45,180 >> Ja suoraan sanottuna, CSS on vähän sotkuinen kieltä. 59 00:02:45,180 --> 00:02:48,370 Se on hyvin voimakas, että voit tehdä kirjaimellisesti minkä tahansa sivuston, että olet 60 00:02:48,370 --> 00:02:51,880 nähtävänä netissä tänään, mutta se on eräänlainen kipua niskassa. 61 00:02:51,880 --> 00:02:54,440 Ja jotkut teistä ovat takoi päätäsi vastaan ​​seinät jo vain tehdä 62 00:02:54,440 --> 00:02:58,560 jotain tyhmää kuten keskustan valikosta ongelma asettaa seitsemän, jos olet mennyt 63 00:02:58,560 --> 00:02:59,470 Siinä vaiheessa jo. 64 00:02:59,470 --> 00:03:01,530 >> Mutta ymmärtää, nuo asiat helpompaa ajan. 65 00:03:01,530 --> 00:03:02,820 Voit alkaa huomata kuvioita. 66 00:03:02,820 --> 00:03:06,020 Ja vielä, Google on ystäväsi eri tapoja, joilla voit 67 00:03:06,020 --> 00:03:07,220 ratkaisemaan tällaisia ​​ongelmia. 68 00:03:07,220 --> 00:03:11,520 >> Ja uskallan sanoa CSS ja HTML enemmän yleensä, voit ratkaista ongelmia 69 00:03:11,520 --> 00:03:15,910 paljon enemmän tapoja, jotka kaikki voisi hyvin hyvinkin olla oikea, kuin mitä voisi 70 00:03:15,910 --> 00:03:18,900 jokseenkin C, jopa nyt PHP tai JavaScript. 71 00:03:18,900 --> 00:03:21,080 On vain monia erilaisia tapoja antaa asioita. 72 00:03:21,080 --> 00:03:22,570 >> Mutta tämä alkoi saada sotkuinen, sanoimme. 73 00:03:22,570 --> 00:03:26,480 Juuri sellainen sekoittuminen HTML ja CSS kanssa tyyliattribuutti oli 74 00:03:26,480 --> 00:03:27,590 hieman huolimaton. 75 00:03:27,590 --> 00:03:31,460 Ja niin me sen sijaan sanoi, eräänlainen abstraktisti ottaen, että sinun pitäisi 76 00:03:31,460 --> 00:03:34,050 ainakin alkavat tekijä out your CSS todennäköisesti. 77 00:03:34,050 --> 00:03:37,430 Ei sinun tyyliattribuuttien mutta ainakin käyttää tyyliä tag sisällä mitä 78 00:03:37,430 --> 00:03:38,840 osa web-sivun? 79 00:03:38,840 --> 00:03:39,560 >> Yleisö: Head. 80 00:03:39,560 --> 00:03:40,120 >> DAVID MALAN: päähän. 81 00:03:40,120 --> 00:03:43,270 Tähän asti meillä oli vain otsikon ylös siellä, mutta voit myös lisätä tyyliä 82 00:03:43,270 --> 00:03:47,230 tag, ja voit laittaa CSS karkeasti ottaen kohti sivun yläreunassa. 83 00:03:47,230 --> 00:03:52,550 Mutta sitten otimme asioita askeleen pidemmälle ja me laskelmiin, että enemmän 84 00:03:52,550 --> 00:03:54,130 erilliseen tiedostoon. 85 00:03:54,130 --> 00:03:57,240 >> Ja niin nämä kaksi tiedostoa olivat jotenkin nyt liittyy. 86 00:03:57,240 --> 00:03:59,550 Ja se todellakin oli tunniste, joka teki sen. 87 00:03:59,550 --> 00:04:02,920 Ja mikä oli yksi kaikenkattava motiivit factoring tutustu CSS 88 00:04:02,920 --> 00:04:04,057 sitäkin? 89 00:04:04,057 --> 00:04:05,280 >> Yleisö: Uudelleenkäytettävyys. 90 00:04:05,280 --> 00:04:05,785 >> DAVID MALAN: Uudelleenkäytettävyys. 91 00:04:05,785 --> 00:04:06,150 Oikea? 92 00:04:06,150 --> 00:04:09,470 Olet ehkä nähnyt p-asettaa seitsemän jo että paljon sivuja, 93 00:04:09,470 --> 00:04:12,260 ostaminen sivu, myynti sivu, portfolio sivu, ovat luultavasti 94 00:04:12,260 --> 00:04:13,550 rakenteeltaan hieman samalla tavalla. 95 00:04:13,550 --> 00:04:17,579 On CS50 rahoitus-logoa ylhäällä jos olet päättänyt muuttaa sitä. 96 00:04:17,579 --> 00:04:19,839 Siellä footer sivujen alareunassa. 97 00:04:19,839 --> 00:04:24,315 Ja CSS voit sitten tekijä sitä se erilliseen tiedostoon niin, että jos 98 00:04:24,315 --> 00:04:27,780 haluat muuttaa jotain maailmanlaajuisesti poikki koko sivuston, voit todella 99 00:04:27,780 --> 00:04:29,390 vain muuttaa se yhteen paikkaan. 100 00:04:29,390 --> 00:04:32,750 >> Mutta on hinta, jonka maksat mahdollisesti laiminlyömällä pois laskusta 101 00:04:32,750 --> 00:04:38,380 CSS minun HTML-tiedosto erilliseen tiedostoon viitataan sen 102 00:04:38,380 --> 00:04:40,650 tag, joka näimme maanantaina. 103 00:04:40,650 --> 00:04:43,850 Mikä voisi haittapuoli olla tämän? 104 00:04:43,850 --> 00:04:48,830 Muistelen viikko sitten, kun olemme puhumme HTTP ja TCP / IP ja miten 105 00:04:48,830 --> 00:04:52,070 internet toimii. 106 00:04:52,070 --> 00:04:53,530 Jotain täällä? 107 00:04:53,530 --> 00:04:54,730 >> Yleisö: Se vie enemmän aikaa. 108 00:04:54,730 --> 00:04:55,470 >> DAVID MALAN: Se vie enemmän aikaa. 109 00:04:55,470 --> 00:04:56,750 Miksi? 110 00:04:56,750 --> 00:04:59,450 >> Yleisö: [kuultavissa]. 111 00:04:59,450 --> 00:04:59,750 >> DAVID MALAN: Joo. 112 00:04:59,750 --> 00:05:01,240 Joten se luultavasti vie vähän enemmän aikaa. 113 00:05:01,240 --> 00:05:04,290 Koska yksi, CSS on ilmeisesti ei samaan tiedostoon. 114 00:05:04,290 --> 00:05:06,920 Joten nyt sinun täytyy tehdä ei yksi, mutta kaksi pyyntöä. 115 00:05:06,920 --> 00:05:11,230 Ja jokainen näistä pyynnöistä kuten näimme Chrome ns tarkastaja, 116 00:05:11,230 --> 00:05:15,740 ja me katsoimme verkko-välilehti, kukin näistä tiedostoista vaatii yhden HTTP 117 00:05:15,740 --> 00:05:18,360 pyynnöstä, jonka näimme vie jonkin verran aikaa. 118 00:05:18,360 --> 00:05:19,290 Nyt, ehkä se ei ole paljon. 119 00:05:19,290 --> 00:05:20,670 Ehkä se on vain 20 millisekuntia. 120 00:05:20,670 --> 00:05:22,260 Ehkä se on 200 millisekuntia. 121 00:05:22,260 --> 00:05:25,530 >> Mutta ajattele sivulle, kuten Facebook, tai CNN tai Google, jotka ovat paljon 122 00:05:25,530 --> 00:05:28,060 suurempi kuin esimerkkien olemme Katsoin toistaiseksi. 123 00:05:28,060 --> 00:05:32,070 Nämä sivut voi olla kymmeniä tiedostoja, joista jokainen saattaa edellyttää 124 00:05:32,070 --> 00:05:33,550 lataaminen tiedoston. 125 00:05:33,550 --> 00:05:35,800 Joten asiat voivat mahdollisesti alkaa hidastua. 126 00:05:35,800 --> 00:05:39,280 >> Ja varsinkin näinä päivinä, kun me kaikki on matkapuhelimet taskussa ja 127 00:05:39,280 --> 00:05:43,010 Hidas internetyhteys, ottaa odota muutama millisekuntia, muutama 128 00:05:43,010 --> 00:05:46,110 enemmän millisekuntia ylimääräisiä tiedostoja voi todella olla hidasta. 129 00:05:46,110 --> 00:05:50,430 Latenssi on sana, joka kuvaa sellaista odottaa, että sinulla on, että sinä 130 00:05:50,430 --> 00:05:53,110 kokemus, kun odottaa joitakin tieto. 131 00:05:53,110 --> 00:05:54,430 >> Mutta on väärinpäin. 132 00:05:54,430 --> 00:05:56,600 Joten se ei ole kaikki tavallaan - 133 00:05:56,600 --> 00:05:58,170 se todellisuudessa on hieman kiikkua täällä. 134 00:05:58,170 --> 00:06:02,970 Pessimistinen nyt, mutta mitä selaimia voi tehdä jos he fiksu välttämiseksi 135 00:06:02,970 --> 00:06:08,870 niiden on pyydettävä sama styles.css tiedosto uudelleen voidaan tehdä mitä? 136 00:06:08,870 --> 00:06:09,390 >> Välimuistiin se. 137 00:06:09,390 --> 00:06:10,370 Joten välimuistia - 138 00:06:10,370 --> 00:06:11,690 C-A-C-H-E - 139 00:06:11,690 --> 00:06:15,810 yleensä tarkoittaa tässä vain säästää tiedosto pyysit ensimmäistä kertaa, ja 140 00:06:15,810 --> 00:06:17,440 tarkista välimuistin sitä. 141 00:06:17,440 --> 00:06:20,400 Tarkista olet tavallaan säiliöön, ja jos sinulla on jo 142 00:06:20,400 --> 00:06:24,520 kopio styles.css, vaikka jotkut muut sivun p-sarja, tai minkä tahansa sivuston, 143 00:06:24,520 --> 00:06:28,560 pyytää uudelleen, vain antaa Käyttäjä saman välimuistinsa. 144 00:06:28,560 --> 00:06:30,140 Älä vaivaudu sitä pyytää. 145 00:06:30,140 --> 00:06:32,560 >> Huonona puolena on, vaikka, kuten jotkut teistä ovat kompastua in p-set. 146 00:06:32,560 --> 00:06:35,870 Jos teet muutoksia palvelimelle ja menet takaisin selaimen ja olet 147 00:06:35,870 --> 00:06:39,250 lataa, joskus selain ei sinulle palveluksen ja ei häiritse 148 00:06:39,250 --> 00:06:43,660 uudelleen lataamista styles.css tiedosto koska nyt, mitkä ovat kertoimet 149 00:06:43,660 --> 00:06:47,620 että nämä tyylit, että Facebook käyttää tulevat muuttumaan tunnista tai 150 00:06:47,620 --> 00:06:48,140 päivittäin? 151 00:06:48,140 --> 00:06:48,800 Se on melko alhainen. 152 00:06:48,800 --> 00:06:52,260 He saattavat muuttua ajan myötä, mutta ei mennessä minuutti tai tunti. 153 00:06:52,260 --> 00:06:55,810 >> Joten temppu, vain FYI kun teet internetistä kehitys, on usein pidä 154 00:06:55,810 --> 00:06:59,500 Shift, esimerkiksi ja valitse lataa selaimessasi, ja se 155 00:06:59,500 --> 00:07:03,280 tyypillisesti kertoa selaimen reload kaiken, vaikka sinulla on jo 156 00:07:03,280 --> 00:07:04,180 sen välimuistiin. 157 00:07:04,180 --> 00:07:06,630 Joten jälleen, upsides ja haittoja, mutta ne kaikki 158 00:07:06,630 --> 00:07:08,260 lopulta suunnitteluun liittyviä päätöksiä. 159 00:07:08,260 --> 00:07:11,520 >> Joten nyt, emme vain Loppuun tarina. 160 00:07:11,520 --> 00:07:15,790 Jos minä nyt takaisin ja takaisin ja takaisin ja takaisin, aloimme esitellä ei vain 161 00:07:15,790 --> 00:07:18,060 HTML, mutta PHP. 162 00:07:18,060 --> 00:07:20,786 Joten maallikon termein, mitä ei PHP tehkäämme? 163 00:07:20,786 --> 00:07:22,770 >> Yleisö: [kuultavissa]. 164 00:07:22,770 --> 00:07:24,258 >> DAVID MALAN: Mikä tämä on? 165 00:07:24,258 --> 00:07:25,250 >> Yleisö: Esittele logiikka osaksi koodia. 166 00:07:25,250 --> 00:07:26,620 >> DAVID MALAN: Joo, käyttöön logiikkaa koodi. 167 00:07:26,620 --> 00:07:29,570 Joten se on totta ohjelmointikieli silmukat, ja muuttujat, ja 168 00:07:29,570 --> 00:07:32,620 toimintoihin, ja edellytykset, ja kaikki asioita olemme käyttäneet Paluumatkalla 169 00:07:32,620 --> 00:07:33,780 kun sillä tyhjästä. 170 00:07:33,780 --> 00:07:36,780 Ja PHP, olemme nähneet, voidaan käyttää joko komentoriviltä - se 171 00:07:36,780 --> 00:07:39,190 ei tarvitse olla mitään tekemistä kanssa web, vaikka se on 172 00:07:39,190 --> 00:07:43,150 todella sen alkuperä ja mitä se pyrkii olla hyvä ja edistä - 173 00:07:43,150 --> 00:07:47,130 mutta voit käyttää PHP pelkästään luonto siitä, että se on tulosta () 174 00:07:47,130 --> 00:07:49,660 toiminto, ja printf ()-funktiota, tai echo ()-funktiota. 175 00:07:49,660 --> 00:07:52,440 On rypäleterttuja tapoja voi tulostaa tekstiä PHP. 176 00:07:52,440 --> 00:07:56,540 >> Siksi voit käyttää tätä ohjelmointi kieli tulostaa täsmälleen 177 00:07:56,540 --> 00:07:58,460 mitä puhuimme ennen. 178 00:07:58,460 --> 00:08:01,360 Voit dynaamisesti HTML. 179 00:08:01,360 --> 00:08:02,300 Ehkä kaikki eivät sitä. 180 00:08:02,300 --> 00:08:06,460 Ehkä sinua kovasti koodin asioita, kuten header ja footer, ja logo, 181 00:08:06,460 --> 00:08:07,950 ja tyylisivut, ja kaikki tämä. 182 00:08:07,950 --> 00:08:11,190 Mutta jotain p-set seitsemän, jos olet manipuloimalla varastot ja 183 00:08:11,190 --> 00:08:14,690 osoittaa käyttäjän salkun, joka on menossa dynaamisesti muuttaa, voit 184 00:08:14,690 --> 00:08:18,960 varmasti käyttää PHP ja logiikka se antaa sinut ohjelmointikieli 185 00:08:18,960 --> 00:08:22,320 lähtö dynaamisesti Osajoukot sivun. 186 00:08:22,320 --> 00:08:25,900 >> Joten kun puhutaan dynaamisia verkkosivuja, tai Web-ohjelmointi, joka on 187 00:08:25,900 --> 00:08:27,200 mitä olet todella puhutaan. 188 00:08:27,200 --> 00:08:31,450 Käyttämällä kuten PHP tai asioita sanottu Python tai Ruby tai Java tai 189 00:08:31,450 --> 00:08:35,900 vielä muita kieliä, kyselyn tietokantaan usein, tai toiselle palvelimelle, ja 190 00:08:35,900 --> 00:08:38,580 sitten dynaamisesti sylkemään HTML. 191 00:08:38,580 --> 00:08:42,470 >> Nyt lopputulos, kuten syrjään, on että HTML useimmat sivustot, 192 00:08:42,470 --> 00:08:45,970 mukaan lukien p-set seitsemän, on luultavasti olemaan valtava sotku, jos 193 00:08:45,970 --> 00:08:48,060 sinä katsot lähde koodia selaimessa. 194 00:08:48,060 --> 00:08:49,010 Se ei ole iso juttu. 195 00:08:49,010 --> 00:08:51,550 Tässä vaiheessa, kun välitämme tyyli, välitämme 196 00:08:51,550 --> 00:08:52,740 tavaraa, että kirjoitat. 197 00:08:52,740 --> 00:08:56,240 Emme välitä juttuja että mitä koodia lähtöä. 198 00:08:56,240 --> 00:08:59,520 Joten älä ole huolissasi painuman , jos se on PHP, joka on 199 00:08:59,520 --> 00:09:01,190 todella syöttöä kamaa. 200 00:09:01,190 --> 00:09:04,430 Loppujen lopuksi selain ei välitä, ja ihmisen ei tule tarkastella 201 00:09:04,430 --> 00:09:05,400 alkulähteellä muutenkin. 202 00:09:05,400 --> 00:09:09,000 Meillä henkilökunta, esimerkiksi asioista Tarkastelemme PHP. 203 00:09:09,000 --> 00:09:13,440 >> Joten annan nopea esimerkki nyt miksi muuten tämä voi olla hyödyllistä. 204 00:09:13,440 --> 00:09:18,620 Joten suoraan sanottuna, en muista viimeksi kertaa käytin C ratkaista ongelma 205 00:09:18,620 --> 00:09:19,620 todellisessa maailmassa. 206 00:09:19,620 --> 00:09:22,330 Se oli luultavasti tutkijakoulun kun Tarvitsin käyttää kieltä, joka 207 00:09:22,330 --> 00:09:26,710 oli melko alhaisella tasolla ja antoi minulle tilaisuus tehdä jotakin erittäin korkea 208 00:09:26,710 --> 00:09:30,720 esittävien todella pelastaa mahdollisimman monta CPU jaksoa kuin pystyin, suurelta osin 209 00:09:30,720 --> 00:09:33,990 koska olin käyttäen valtavia tietomääriä, ja jokainen CPU sykli lasketa. 210 00:09:33,990 --> 00:09:37,750 Ja suoraan sanottuna, jopa asioita, kuten puhelimissa näinä päivinä ja muiden laitteiden 211 00:09:37,750 --> 00:09:39,910 jos sinulla ei aivan ole niin paljon muistia ja sinulla ei aivan ole niin 212 00:09:39,910 --> 00:09:44,160 paljon CPU, käyttäen nopeammin kielillä on edelleen houkutteleva. 213 00:09:44,160 --> 00:09:47,290 >> Mutta todellisessa maailmassa, kun vain halua heittää jotain ohjelmaa yhdessä 214 00:09:47,290 --> 00:09:50,340 analysoida joitakin tietoja, tai olet kerännyt koko joukko rekisteröinnit 215 00:09:50,340 --> 00:09:53,330 Joissakin opiskelijaryhmä ja haluat hyvin nopeasti automatisoida sähköpostiviestien lähettäminen 216 00:09:53,330 --> 00:09:56,240 yksi kerrallaan jokainen näistä Rekisteröijäksi aiot tavoitella 217 00:09:56,240 --> 00:09:59,240 korkeamman tason kielellä kuin C niin sanoakseni. 218 00:09:59,240 --> 00:10:04,060 Jotain PHP tai Python tai Ruby, tai puoli tusinaa muita, jotka ovat olemassa 219 00:10:04,060 --> 00:10:04,550 näinä päivinä. 220 00:10:04,550 --> 00:10:07,200 Mutta nämä kolme ovat luultavasti kaikkein trendikkäitä juuri nyt. 221 00:10:07,200 --> 00:10:10,840 >> Ja mitä tämä tarkoittaa, että voit avata ylös tekstieditorissa, kuten gedit tai 222 00:10:10,840 --> 00:10:14,030 Useimmissa mitään muuta ja sitten vain alkaa kirjoittaa koodia ilman huolta 223 00:10:14,030 --> 00:10:17,800 noin kokoamiseen, ilman todella murehtia muistin hallinta, 224 00:10:17,800 --> 00:10:20,820 pitäen mielessä kuitenkin, että hieman epäjärjestys tulee lopulta takaisin 225 00:10:20,820 --> 00:10:24,790 pure, jos tietokokonaisuus saa suurempi tai ongelma saa iso. 226 00:10:24,790 --> 00:10:27,230 Mutta mitä tämä merkitsee meille on seuraava. 227 00:10:27,230 --> 00:10:29,860 >> Anna minun mennä eteenpäin ja ajaa aapinen alkaen ongelma asetettu kuusi. 228 00:10:29,860 --> 00:10:33,480 Joten tämä on minun triestä-pohjainen toteuttamista että käytin iso 229 00:10:33,480 --> 00:10:35,500 lauta jossa Tein ei niin hyvin. 230 00:10:35,500 --> 00:10:38,720 Tulemme takaisin viikon kuluttua ja uudelleen ne, jotka eivät lopulta huipulla 231 00:10:38,720 --> 00:10:40,430 iso board meidän viimeinen luento. 232 00:10:40,430 --> 00:10:44,520 Mutta nyt haluan mennä eteenpäin ja vain ajaa minun ratkaisu tekstiä, ja teemme 233 00:10:44,520 --> 00:10:48,460 King James Bible, ja tässä sitä mennään. 234 00:10:48,460 --> 00:10:51,080 >> Joten ne ovat kaikki muka kirjoitusvirheet pois 235 00:10:51,080 --> 00:10:52,240 King James Bible. 236 00:10:52,240 --> 00:10:55,560 Ja minun Toteutus kesti puoli sekuntia yhteensä. 237 00:10:55,560 --> 00:10:58,270 Joten ei ole liian huono tässä tiettyyn tietokoneeseen. 238 00:10:58,270 --> 00:11:01,540 Mutta ajattele, kuinka paljon koodi Jouduin kirjoittamaan. 239 00:11:01,540 --> 00:11:02,880 Ajattele, kuinka paljon koodia sinun piti kirjoittaa. 240 00:11:02,880 --> 00:11:06,170 Ajattele kuinka monta tuntia olet viettänyt D-hallissa tai asuntolan tai missä 241 00:11:06,170 --> 00:11:07,890 todella koodaus jopa tätä ratkaisua. 242 00:11:07,890 --> 00:11:11,850 >> No, jos olen oikeastaan ​​korkeampi kuten PHP, huomioi 243 00:11:11,850 --> 00:11:13,350 mitä voin tehdä täällä. 244 00:11:13,350 --> 00:11:16,410 Ensinnäkin luulla, että tämä on sen sijaan jakeluasetuksesi koodi. 245 00:11:16,410 --> 00:11:17,790 Tämä on tiedosto nimeltä aapinen. 246 00:11:17,790 --> 00:11:20,220 Se on saatavilla osana nykypäivän jakelu-koodi. 247 00:11:20,220 --> 00:11:22,670 Ja aion heiluttaa kättäni eniten yksityiskohdista, mutta tämä on oikeastaan 248 00:11:22,670 --> 00:11:25,500 mielenkiintoinen esimerkki siitä, miten saatat portti kieli 249 00:11:25,500 --> 00:11:28,870 kuten C yli PHP. 250 00:11:28,870 --> 00:11:33,420 Olen kirjaimellisesti avasi kaksi tekstiä ikkunat, yksi minun C-version speller.c, 251 00:11:33,420 --> 00:11:36,960 ja olen juuri aloittanut kääntäminen se minun suunnata PHP ja kirjoittamalla sitä käyttäen 252 00:11:36,960 --> 00:11:38,840 lähinnä vastaavia tehtäviä. 253 00:11:38,840 --> 00:11:40,100 >> Joten jotkut näistä asioista ovat erilaisia. 254 00:11:40,100 --> 00:11:43,730 Näimme viime kerralla, että PHP ei käytä kuuluu aivan samalla tavalla. 255 00:11:43,730 --> 00:11:47,050 Se käyttää edellyttävät tyypillisesti, vaikka kuuluu käytännössä olemassa. 256 00:11:47,050 --> 00:11:50,330 Määrittele on hieman erilainen kuin # Define C, mutta se on 257 00:11:50,330 --> 00:11:51,890 miten teemme jatkuvasti. 258 00:11:51,890 --> 00:11:55,860 $ Argc käy ilmi olemassa PHP, joten olemme nähneet, että ennen. 259 00:11:55,860 --> 00:11:58,650 Nämä ovat vain muuttujia, jotka kaikki jotka alkavat dollarin merkkejä. 260 00:11:58,650 --> 00:12:00,590 Recall nämä ovat vain nippu kelluva pistettä. 261 00:12:00,590 --> 00:12:03,970 >> Niin pitkän tarinan lyhyesti, olet tervetullut selata tätä, jos utelias, tämä on 262 00:12:03,970 --> 00:12:10,010 lähes linja-for-line muuntaminen C-versio speller.c osaksi PHP. 263 00:12:10,010 --> 00:12:12,630 Ja voit tehdä tämän uudelleen puoli tusinaa muita kieliä. 264 00:12:12,630 --> 00:12:14,910 >> Mutta mikä on mielenkiintoista on tämä. 265 00:12:14,910 --> 00:12:16,910 Tai mitä rehellisesti masentavaa on tämä. 266 00:12:16,910 --> 00:12:20,790 Anna minun mennä eteenpäin ja kirjoita noin dictionary.php, ja väittävät, että olen 267 00:12:20,790 --> 00:12:23,670 menossa eteenpäin ja uudelleen toteuttaa Ongelma asetettu kuusi täällä. 268 00:12:23,670 --> 00:12:27,530 >> Joten ehdottaa, että tällä tiedosto, joka toteutetaan 269 00:12:27,530 --> 00:12:30,550 PHP, joten haluan avaan tageja niin. 270 00:12:30,550 --> 00:12:34,780 Annan itselleni maailmanlaajuisen muuttuja, $ koko saa nolla. 271 00:12:34,780 --> 00:12:36,710 Ja minä aion antaa itse tiiviste. 272 00:12:36,710 --> 00:12:38,110 Minä käytän hash table tämän asian. 273 00:12:38,110 --> 00:12:42,070 Miten voin julistaa hash taulukon PHP? 274 00:12:42,070 --> 00:12:42,990 Valmis. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> Joten alkusulkumerkki loppusulkumerkki edustaa mitä PHP, kuten olemme nähneet? 277 00:12:48,870 --> 00:12:51,850 Array, mutta array, joka voisi olla tällainen taulukko. 278 00:12:51,850 --> 00:12:54,320 Assosiatiivisia array on tietorakenne, joka 279 00:12:54,320 --> 00:12:55,860 yhdistää avaimet arvoja. 280 00:12:55,860 --> 00:12:59,430 >> Nyt yksinkertaisin numeerisesti indeksoitu array, ne avaimet ovat mitä? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Nolla, yksi, kaksi, kolme, eikö? 283 00:13:03,960 --> 00:13:08,780 Old school tavaraa takaisin C. Mutta se voi myös jouset kuten foo ja bar, 284 00:13:08,780 --> 00:13:12,210 tai Maxwell, eikä mitään muuta sellaista merkkijono. 285 00:13:12,210 --> 00:13:14,240 Joten en voi hyödyntää, että vain hetken. 286 00:13:14,240 --> 00:13:17,550 >> Anna minun mennä eteenpäin ja julistaa toimivat kuten - 287 00:13:17,550 --> 00:13:19,020 Tehdään kuormitus () ensin. 288 00:13:19,020 --> 00:13:20,690 Joten toiminto kuormitus (). 289 00:13:20,690 --> 00:13:23,440 Ja PHP on hieman erilainen, että kirjaimellisesti kirjoittaa toiminto, mutta et 290 00:13:23,440 --> 00:13:24,930 älä kirjoita palautuva. 291 00:13:24,930 --> 00:13:28,760 Aion mennä eteenpäin ja sanoa, että kuormitus ()-funktiota pitäisi ottaa 292 00:13:28,760 --> 00:13:31,000 argumentti $ sanakirja, vain kuten C-versio teki. 293 00:13:31,000 --> 00:13:32,510 Teen että muistista. 294 00:13:32,510 --> 00:13:34,910 >> Ja ehdotan, että olen aikoo tehdä tämän. 295 00:13:34,910 --> 00:13:37,080 En yksinkertaisesti aio tehdä foreach. 296 00:13:37,080 --> 00:13:40,710 Aion soittaa toiminto nimeltään tiedostoon (), kulkee nimissä, että 297 00:13:40,710 --> 00:13:44,990 tiedostoon, joka on muuttuja $ Sanakirjassa $ sana. 298 00:13:44,990 --> 00:13:49,410 Ja sitten sisällä minun silmukan täällä, olen menossa eteenpäin ja tallentaa minun 299 00:13:49,410 --> 00:13:57,440 $ Table että $ sana saa totta. 300 00:13:57,440 --> 00:13:57,918 Valmis. 301 00:13:57,918 --> 00:14:01,264 Hei, odota. 302 00:14:01,264 --> 00:14:02,422 Valmis. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> Että on kuormaa ()-funktiota sanoa PHP. 305 00:14:04,970 --> 00:14:05,865 Nyt, miksi se toimii? 306 00:14:05,865 --> 00:14:07,010 Ja olen tavallaan huijausta täällä. 307 00:14:07,010 --> 00:14:09,980 >> Niin, yksi, foreach näimme lyhyesti viime kerralla. 308 00:14:09,980 --> 00:14:13,680 Se vain tarkoittaa, että voit kerrata yli array huolehtimatta kanssa i 309 00:14:13,680 --> 00:14:16,150 ja n ja plus plus, ja kaikki tämä. 310 00:14:16,150 --> 00:14:21,350 Sanakirja on tietysti tiedoston nimi, jotain iso tai pieni, kaksi 311 00:14:21,350 --> 00:14:22,830 sanakirjoja käytimme viime kerralla. 312 00:14:22,830 --> 00:14:26,715 Tiedosto on toiminto, joka avaa teksti tiedosto, lukee sen rivi riviltä, ​​ja 313 00:14:26,715 --> 00:14:29,840 ojentaa sinulle takaisin valtava, jokainen, jonka elementit on 314 00:14:29,840 --> 00:14:31,340 line Tuosta tiedostosta. 315 00:14:31,340 --> 00:14:36,040 Niin, että yhdistelmä fopen, ja fread, ja kun silmukka, ja fclose, 316 00:14:36,040 --> 00:14:37,080 ja kaikki tämä. 317 00:14:37,080 --> 00:14:40,150 Lopuksi, koska sana tarkoittaa vain sitä, että on muuttuja Aion saada 318 00:14:40,150 --> 00:14:41,890 jokaisen iteraation tässä silmukka. 319 00:14:41,890 --> 00:14:46,910 >> Joten lyhyt, tämä liner tarkoittaa tässä avata tiedoston, jonka nimi on 320 00:14:46,910 --> 00:14:50,750 sanakirja, muuttuja, kerrata yli se rivi riviltä, ​​ja joka kerta saat 321 00:14:50,750 --> 00:14:54,290 linja, myymälän muuttuja nimeltä sana, ja sitten tehdä jotain sanaa. 322 00:14:54,290 --> 00:14:55,280 Mitä haluan tehdä? 323 00:14:55,280 --> 00:14:58,110 Haluan laittaa sanan minun tiiviste. 324 00:14:58,110 --> 00:15:00,860 >> No, voin laittaa jotain minun hash table aivan kuten C 325 00:15:00,860 --> 00:15:02,140 hakasulkuja. 326 00:15:02,140 --> 00:15:03,660 Tämä on nimi minun tiiviste. 327 00:15:03,660 --> 00:15:07,180 Aion indeksinä että hash taulukko tässä paikassa. 328 00:15:07,180 --> 00:15:08,920 Joten ei haarukoida nolla, ei haarukoida yksi. 329 00:15:08,920 --> 00:15:11,990 Kannatin quote unquote jotain, mitä se sana on. 330 00:15:11,990 --> 00:15:15,200 Ja aivan kuten saatat olla omassa hash table työ triessä, juuri myymälä 331 00:15:15,200 --> 00:15:17,650 tehokkaasti totuusarvoarvoja epäsuorasti tai erikseen. 332 00:15:17,650 --> 00:15:18,260 Valmis. 333 00:15:18,260 --> 00:15:20,000 Olen tallentaa arvon true. 334 00:15:20,000 --> 00:15:23,150 >> Nyt on olemassa pari asiaa Olen tinkivät täällä. 335 00:15:23,150 --> 00:15:27,720 Teknisesti siellä tulee olemaan harmittaa uusi linja, / n, lopussa 336 00:15:27,720 --> 00:15:28,820 kukin näistä sanoista. 337 00:15:28,820 --> 00:15:31,770 Joten minun pitäisi varmaan soittaa PHP funktio kutsutaan chop (), joka 338 00:15:31,770 --> 00:15:33,460 aivan kirjaimellisesti hakata että pois. 339 00:15:33,460 --> 00:15:35,020 Ja minä itse tarvitse tehdä yhden asian. 340 00:15:35,020 --> 00:15:38,380 Pitäisi varmaan porrasväliksi kullakin iteraation, joten olen pitää seurata 341 00:15:38,380 --> 00:15:39,560 maailmanlaajuisesti, mitä se on. 342 00:15:39,560 --> 00:15:43,180 Ja suoraan sanottuna, ja tämä on yksi stupider näkökohtia PHP, jos olet 343 00:15:43,180 --> 00:15:46,950 käyttäen globaali muuttuja, tarvitset nimenomaan sanoa, että olet. 344 00:15:46,950 --> 00:15:51,670 Joten aion todella kirjoittaa maailmanlaajuisen $ Koko, globaali $ pöytä, ja nyt 345 00:15:51,670 --> 00:15:52,690 tehtäväni on valmis. 346 00:15:52,690 --> 00:15:57,475 >> Joten ole aivan niin yksinkertainen kuin ennen, mutta luultavasti kesti vähemmän aikaa kuin C 347 00:15:57,475 --> 00:15:58,220 versio, ehkä? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> Joten nyt tehkäämme check ()-funktiota. 350 00:16:00,390 --> 00:16:04,300 Katsotaanpa, jos tämä ainakin otti tuntikausia, että se vei meidät C. So 351 00:16:04,300 --> 00:16:06,500 anna minun mennä eteenpäin ja julistaa tarkista funktiona. 352 00:16:06,500 --> 00:16:09,070 Vie väite sana, joka on oikein tulevat speller. 353 00:16:09,070 --> 00:16:13,410 Ja olen juuri menossa tarkistaa, jos muuttuja seuraavasti isset, taulukko 354 00:16:13,410 --> 00:16:18,400 kiinnike strtolower sanan - 355 00:16:18,400 --> 00:16:20,590 katsotaanpa tasapainoon kaikki minun suluissa - 356 00:16:20,590 --> 00:16:24,275 sitten palata totta. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Else - 359 00:16:28,460 --> 00:16:30,330 se oli todella kova osa tätä ohjelmaa. 360 00:16:30,330 --> 00:16:31,940 Else, return false. 361 00:16:31,940 --> 00:16:32,630 Valmis. 362 00:16:32,630 --> 00:16:33,460 Se tarkistaa (). 363 00:16:33,460 --> 00:16:34,520 >> Nyt, miksi tämä toimii? 364 00:16:34,520 --> 00:16:37,040 No, yksi ohitin sanalla, joka on merkkijono. 365 00:16:37,040 --> 00:16:41,400 Kaksi, olen tarkkailun sisällä hash taulukko, joka kutsutaan $ taulukko. 366 00:16:41,400 --> 00:16:45,470 Olen pakottaa sen pieniksi soittamalla funktio melko samanlainen tolower () vuonna 367 00:16:45,470 --> 00:16:48,580 C, mutta tämä ei koko sana, ei yksittäinen merkki. 368 00:16:48,580 --> 00:16:52,680 Ja jos se on asetettu, toisin sanoen siellä on asetettu arvo, toisin sanoen, 369 00:16:52,680 --> 00:16:54,880 jos se on totta, niin kyllä, tämä on sana. 370 00:16:54,880 --> 00:16:56,530 Koska laitoin sen sinne kuorman kanssa (). 371 00:16:56,530 --> 00:16:59,100 Ja jos ei, aion palata vääriä. 372 00:16:59,100 --> 00:17:00,090 >> Nyt toiset ovat helppoa. 373 00:17:00,090 --> 00:17:03,570 Funktion koko (), miten voin tehdä tämän? 374 00:17:03,570 --> 00:17:05,230 Olen lähinnä palaavat $ kokoa. 375 00:17:05,230 --> 00:17:07,770 Mutta minä teknisesti täytyy tehdä tämän Harmillista. 376 00:17:07,770 --> 00:17:10,640 Ja oikeastaan ​​jopa kuulla, olin leikkaus yksi kulma liikaa. 377 00:17:10,640 --> 00:17:12,920 En todellakaan tarvitse tehdä maailmanlaajuisia $ taulukko. 378 00:17:12,920 --> 00:17:16,260 >> Mutta että on sanottu, purkaa). 379 00:17:16,260 --> 00:17:17,380 Purkaa () on hämmästyttävä. 380 00:17:17,380 --> 00:17:20,500 Toiminto purkaa (). 381 00:17:20,500 --> 00:17:23,990 Miten haluan toteuttaa purkaa ()? 382 00:17:23,990 --> 00:17:25,079 Valmis. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> Joten purkaa (), muistin hallinta on täysin huolehtinut sinulle 385 00:17:28,900 --> 00:17:31,800 jotain PHP ja paljon korkeamman tason kielillä. 386 00:17:31,800 --> 00:17:32,600 Joten tämä on hämmästyttävä. 387 00:17:32,600 --> 00:17:36,080 Kuten miksi ihmeessä me viettänyt viimeiset kahdeksan plus viikkoa C kirjallisesti 388 00:17:36,080 --> 00:17:41,030 ilmeisesti todella hidas, todella aika vievää ongelmia kymmeniä tunteja 389 00:17:41,030 --> 00:17:42,530 Työn alla vyötä? 390 00:17:42,530 --> 00:17:46,110 >> No, yksi asia, tämä saattaa toimia hieno pieniä ohjelmia. 391 00:17:46,110 --> 00:17:47,840 Se varmasti nopeuttanut minun kehityksen aikaa. 392 00:17:47,840 --> 00:17:49,790 Mutta katsotaanpa, mitä tapahtuu todellisessa maailmassa. 393 00:17:49,790 --> 00:17:52,370 >> Anna minun mennä tähän hakemistoon pääteikkunaan. 394 00:17:52,370 --> 00:17:53,370 On aapinen. 395 00:17:53,370 --> 00:17:56,570 On hyvä huomioida syrjään, ja saatat ovat kohdanneet tämän ongelman asetettu 396 00:17:56,570 --> 00:17:58,190 kuusi tai ongelma asettaa seitsemän. 397 00:17:58,190 --> 00:18:01,610 Sinun ei ehdottomasti tarvitse end PHP tiedostoja. php. 398 00:18:01,610 --> 00:18:05,250 Jos laitat likoon ensin nopeudella hyvin alkuun, se on erityinen linja 399 00:18:05,250 --> 00:18:10,980 syntaksin, jolle on olennaista löytää ohjelma nimeltä PHP ja käyttää sitä 400 00:18:10,980 --> 00:18:12,270 tulkitsevat tämän tiedoston. 401 00:18:12,270 --> 00:18:15,410 Joten nyt kukaan ei oikein tiedä, että Olen käynnissä PHP-ohjelma. 402 00:18:15,410 --> 00:18:19,860 Voin käyttää sitä aivan kuin se oli jotain koottu C. 403 00:18:19,860 --> 00:18:20,650 >> Mutta tässä on asia. 404 00:18:20,650 --> 00:18:21,600 Oikeastaan, tehdään tämä uudestaan. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 On aapinen. 407 00:18:25,390 --> 00:18:26,720 OK, 0,44 sekuntia. 408 00:18:26,720 --> 00:18:28,080 Se sai nopeammin tällä kertaa. 409 00:18:28,080 --> 00:18:29,745 >> Nyt mennään osaksi PHP versio. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Nice touch. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Mutta ajatelkaa, kuinka paljon aikaa Säästin toimistossa tuntia. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> Joten 3,59 sekuntia, mikä oikeastaan ei kuulosta tarkkoja myöskään. 417 00:19:01,020 --> 00:19:03,710 Mutta se johtuu pitkän tarinan lyhyesti, kun olet tulostaa valtava määrä 418 00:19:03,710 --> 00:19:06,840 tavaraa näyttö, että itse hidastaa asioita alas. 419 00:19:06,840 --> 00:19:11,260 Mitä se todella vei CPU Laite oli 3,59 sekuntia, vuonna 420 00:19:11,260 --> 00:19:15,260 Toisin kuin C, joka kesti 0.44 sekunnin viimeksi. 421 00:19:15,260 --> 00:19:17,620 Se on todella järjestyksessä suuruus eri. 422 00:19:17,620 --> 00:19:20,280 >> Joten missä on, että hinta tulee? 423 00:19:20,280 --> 00:19:21,790 Miksi se on niin paljon hitaampaa? 424 00:19:21,790 --> 00:19:24,220 Miksi PHP tehdä niin huonosti? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> Yleisö: Sinun ei oikeastaan Käytä tiiviste. 427 00:19:26,550 --> 00:19:27,710 >> DAVID MALAN: En todellakaan Käytä tiiviste. 428 00:19:27,710 --> 00:19:28,760 Joten Olen sellainen teki. 429 00:19:28,760 --> 00:19:29,870 Joten se on assosiatiivinen array. 430 00:19:29,870 --> 00:19:33,650 Todennäköisesti jos ihmiset PHP ovat todella fiksu, ne käytetään alla 431 00:19:33,650 --> 00:19:39,520 huppu todellinen tiiviste täytäntöön moisesta C-tai C + +. 432 00:19:39,520 --> 00:19:41,290 Mutta. 433 00:19:41,290 --> 00:19:42,760 Joo. 434 00:19:42,760 --> 00:19:44,010 >> Yleisö: [kuultavissa]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID MALAN: Joo. 437 00:19:47,080 --> 00:19:50,780 Joten jokainen toiminnot kirjoitin nyt - Oikeastaan ​​voi sanoa, että jälleen kerran 438 00:19:50,780 --> 00:19:51,480 vähän kovempaa? 439 00:19:51,480 --> 00:19:54,509 >> AUDIENCE: Jokainen toiminnot, jotka olet mukana on paljon enemmän täynnä 440 00:19:54,509 --> 00:19:56,610 kapasiteettia kuin - 441 00:19:56,610 --> 00:19:57,550 >> DAVID MALAN: Niin, että on hyvin totta. 442 00:19:57,550 --> 00:20:01,490 Siellä on paljon enemmän yläpuolella, että olemme ei todellakaan nähdä keskittymällä pelkästään 443 00:20:01,490 --> 00:20:03,730 dictionary.php, jonka minä vain kirjoitti. 444 00:20:03,730 --> 00:20:08,020 Sen sijaan siellä on koko tulkki menee taustalla. 445 00:20:08,020 --> 00:20:12,040 Todellakin, kun juoksin tätä ohjelmaa, se ei ollut käynnissä koottu nollia ja ykkösiä 446 00:20:12,040 --> 00:20:14,290 suunniteltu minun Intel CPU. 447 00:20:14,290 --> 00:20:19,270 Pikemminkin se oli käynnissä rivi riviltä PHP, joka näyttää täsmälleen 448 00:20:19,270 --> 00:20:20,350 like me kirjoittanut sen. 449 00:20:20,350 --> 00:20:22,475 Ja niin, kun käytät tulkita kielen, 450 00:20:22,475 --> 00:20:23,850 itse tehdä maksaa tämän hinnan. 451 00:20:23,850 --> 00:20:27,010 Se vie jonkin aikaa lukea tiedosto ylhäältä alas, vasemmalle 452 00:20:27,010 --> 00:20:30,740 oikealle, ja sitten suorittaa kunkin linja uudestaan ​​ja uudestaan. 453 00:20:30,740 --> 00:20:34,250 >> Nyt todellisuudessa, erityisesti verkossa, voit itse nopeuttaa tätä prosessia 454 00:20:34,250 --> 00:20:38,660 tallentamalla tulokset PHP tulkitaan. 455 00:20:38,660 --> 00:20:41,640 Ja että on järkevää Webissä, koska jos et ole yksi käyttäjä, kuten 456 00:20:41,640 --> 00:20:46,300 minut tänne, mutta 1000 tai 10000 käyttäjää, niin ehkä ensimmäistä kertaa tiedosto on 457 00:20:46,300 --> 00:20:49,050 näytetty se on hidas, mutta sen jälkeen se on paljon nopeampi. 458 00:20:49,050 --> 00:20:51,000 >> Mutta tämäkin taas on kaupan pois. 459 00:20:51,000 --> 00:20:53,870 Ja jotain tutkimustietoa set, tai edes jotain suurta, kuten 460 00:20:53,870 --> 00:20:58,330 Tämän käyttäjät lopulta alkaa tuntua, että hidastuminen. 461 00:20:58,330 --> 00:21:02,670 >> Joten lyhyt, tulkitaan kielet ovat hyvin muodissa, hyvin suosittu, ja 462 00:21:02,670 --> 00:21:06,710 rehellisesti ovat luultavasti kieliä pitäisi tavoitella, kun ongelmien ratkaisemiseen 463 00:21:06,710 --> 00:21:08,200 jälkeen CS50. 464 00:21:08,200 --> 00:21:12,720 Mutta ymmärtää, kuinka paljon olet todella itsestään selvänä alla huppu 465 00:21:12,720 --> 00:21:15,910 todella ohittaneet useita viikkoja hash taulukot, ja puita, ja yrittää, 466 00:21:15,910 --> 00:21:20,770 joita käytetään lopulta itse toteuttaa asioita, kuten alkusulkumerkki, 467 00:21:20,770 --> 00:21:24,200 hakasulkeen, jonka voimme nyt kiitollisena itsestäänselvyytenä. 468 00:21:24,200 --> 00:21:26,360 >> Joten katsomaan nyt Tämän internetsivuston yhteydessä. 469 00:21:26,360 --> 00:21:29,890 Ja mainitsin viime kerralla, että on olemassa nippu Superglobaalit PHP, joka 470 00:21:29,890 --> 00:21:32,490 eivät oikeastaan ​​merkitystä komentoriviltä. 471 00:21:32,490 --> 00:21:36,210 He enemmän merkityksellisiä käyttää PHP web yhteydessä. 472 00:21:36,210 --> 00:21:41,220 Joten käynnissä PHP web-palvelin, jotta tuottaa tavaraa kuten HTML. 473 00:21:41,220 --> 00:21:44,540 >> Ja me vilkaisi $ _GET ja $ _POST, ja siitähän automaattisesti käyttäjien 474 00:21:44,540 --> 00:21:49,100 input päätyy vain jos lähetät muodostavat tiedostoon päättyy. php web 475 00:21:49,100 --> 00:21:50,460 palvelimelle kuin laite. 476 00:21:50,460 --> 00:21:53,310 Mutta katsotaanpa lyhyesti $ _COOKIE Ja $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> Maallikon termein, mikä on evästeen ymmärrät sen yhteydessä 478 00:21:56,670 --> 00:21:58,220 käyttämällä web? 479 00:21:58,220 --> 00:21:59,450 >> Yleisö: tiedosto tietokoneeseen. 480 00:21:59,450 --> 00:21:59,920 >> DAVID MALAN: Joo. 481 00:21:59,920 --> 00:22:03,500 Se on tiedoston käyttäjän tietokoneessa istutettu tahansa verkkosivuilla 482 00:22:03,500 --> 00:22:04,410 satut käymään. 483 00:22:04,410 --> 00:22:07,334 Joten kun menet Facebook, kun menet to bankofamerica.com, kun menet 484 00:22:07,334 --> 00:22:10,330 to google.com, kun menet lähes kaikki verkkosivuilla maailmassa näinä päivinä, 485 00:22:10,330 --> 00:22:14,850 lukien cs50.net, eväste on istutettu tietokoneeseen, joka on 486 00:22:14,850 --> 00:22:19,800 joko arvo tallennetaan RAM-muistia tietokoneeseen selaimen muistiin tai 487 00:22:19,800 --> 00:22:22,800 joskus todellakin tiedosto tallennetaan kiintolevylle. 488 00:22:22,800 --> 00:22:26,960 >> Ja mitä tallennetaan tyypillisesti, että tiedosto ei ole käyttäjätunnuksesi, ei sinun 489 00:22:26,960 --> 00:22:31,060 salasanan, tyypillisesti ole jotain herkkä ellei sivusto ei ole niin 490 00:22:31,060 --> 00:22:35,040 hyvä niiden turvallisuutta, vaan se on iso yksilöllinen tunniste keskuudessa 491 00:22:35,040 --> 00:22:35,680 muita asioita. 492 00:22:35,680 --> 00:22:38,920 Se on iso satunnaisluku istutettu teidän tietokoneeseen, mutta et voi ajatella niin 493 00:22:38,920 --> 00:22:42,740 eräänlainen virtuaalinen käsi leima kuin suoraan klubi tai jokin huvipuisto, että 494 00:22:42,740 --> 00:22:47,160 mahdollistaa henkilöstön, omistajien, jotka palvelu, muistaa, kuka olet. 495 00:22:47,160 --> 00:22:51,030 Joten jos iso satunnaisluku on kuin 12345678, vaikka se on tietysti 496 00:22:51,030 --> 00:22:54,180 ei liian satunnainen, ajatella, että käsi leima, että kun käyt 497 00:22:54,180 --> 00:22:57,930 facebook.com ensimmäistä kertaa, ne leima että numero käteen. 498 00:22:57,930 --> 00:23:01,510 Ja sitten, koska puhut HTTP, voit on selain, ja koska Facebook 499 00:23:01,510 --> 00:23:06,440 ilmeisesti puhuu samaa kuin web palvelin, HTTP sanoo, että 500 00:23:06,440 --> 00:23:09,930 milloin myöhemmin käy facebook.com, onko se toinen 501 00:23:09,930 --> 00:23:13,560 myöhemmin, tuntia myöhemmin, vaikka seuraavana päivänä, niin kauan kuin et ole nimenomaisesti 502 00:23:13,560 --> 00:23:17,050 kirjautunut ulos, joka tehokkaasti on kuin käsien pesu. 503 00:23:17,050 --> 00:23:20,280 HTTP sanoo sinun pitäisi esitellä käsi leima aina 504 00:23:20,280 --> 00:23:22,020 palata että verkkosivuilla. 505 00:23:22,020 --> 00:23:24,390 >> Mitä Facebook sitten ei on ne katsoa, ​​että käsi leima ja 506 00:23:24,390 --> 00:23:26,850 he sanovat, oh, 123456789. 507 00:23:26,850 --> 00:23:30,260 En tiedä ensi silmäyksellä, että tämä on David Malan Cambridge, 508 00:23:30,260 --> 00:23:34,690 Massachusetts, mutta ne voivat tarkistaa tietokanta ja sanoa, oh, henkilö 509 00:23:34,690 --> 00:23:39,930 jonka tietokone istutimme 123456789 on David Malan Cambridge, 510 00:23:39,930 --> 00:23:40,440 Massachusetts. 511 00:23:40,440 --> 00:23:46,000 Näytetään, että käyttäjän niin hänen profiilia sivu tai hänen News Feed. 512 00:23:46,000 --> 00:23:49,660 >> Mutta on ongelma, jos tämä Näin web todellakin toimii. 513 00:23:49,660 --> 00:23:51,390 Katsotaanpa katsomaan nopea esimerkki. 514 00:23:51,390 --> 00:23:55,190 Katsotaanpa itse mennä sanoa facebook.com. 515 00:23:55,190 --> 00:23:58,130 Mutta ennen kuin voimme mennä sinne, anna minun mennä eteenpäin ja avata Chromen 516 00:23:58,130 --> 00:23:59,790 Tarkastaja täällä. 517 00:23:59,790 --> 00:24:01,140 Anna kun katson verkon välilehti. 518 00:24:01,140 --> 00:24:06,020 Ja nyt mennään eteenpäin ja kirjoita vuonna https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 Ja olen tekemässä, että niin, että emme näe kaikki nämä ohjaukset ja jätteiden 520 00:24:09,410 --> 00:24:10,660 aikaa etsimässä läpi nuo. 521 00:24:10,660 --> 00:24:12,690 Minäpä enteriä. 522 00:24:12,690 --> 00:24:13,130 >> Selvä. 523 00:24:13,130 --> 00:24:14,580 Näemme koko joukko pyyntöjä. 524 00:24:14,580 --> 00:24:15,640 Siellä tulee Facebook. 525 00:24:15,640 --> 00:24:16,930 On koko joukko tiedostoja. 526 00:24:16,930 --> 00:24:19,290 Ja tässä kohden minun mainita latenssi viimeisen kerran, se 527 00:24:19,290 --> 00:24:21,240 paljon HTTP-pyyntöjä. 528 00:24:21,240 --> 00:24:23,700 Mutta ensimmäinen on luultavasti mielenkiintoisin. 529 00:24:23,700 --> 00:24:26,420 >> Joten selaa täällä, ja Minä suurentaa toisessa. 530 00:24:26,420 --> 00:24:29,090 Tämä tulee olemaan eräänlainen sotku, mutta katsotaan. 531 00:24:29,090 --> 00:24:31,660 Facebook lähettää meille koko joukko tavaraa. 532 00:24:31,660 --> 00:24:33,490 >> Mutta hei, mielenkiintoista. 533 00:24:33,490 --> 00:24:37,880 He istutus ole yksi, vaan neljä käsi postimerkkejä päälle käteni täällä. 534 00:24:37,880 --> 00:24:40,400 Set-evästeen Set-evästeen, set-evästeen, set-cookie. 535 00:24:40,400 --> 00:24:44,030 Ja on muutamia ominaisuuksia täällä. 536 00:24:44,030 --> 00:24:46,170 Kaikki heistä mainita muutamia Tällainen päättymistä. 537 00:24:46,170 --> 00:24:50,090 Ja näyttää siltä, ​​Facebook toivoo muistaa minut vuoteen 2015 saakka. 538 00:24:50,090 --> 00:24:53,670 Niin, että oletettavasti aika, jonka Minun täytyy kirjautua ulos tai he vain 539 00:24:53,670 --> 00:24:55,710 automaattisesti olettaa, olen ole tulossa takaisin. 540 00:24:55,710 --> 00:24:57,840 Niin, että on todella kunnollinen aikaa. 541 00:24:57,840 --> 00:24:59,170 >> Ja joitakin muita asioita tapahtuu täällä. 542 00:24:59,170 --> 00:25:03,036 Tämä eväste näyttää väkisin Poistetaan sanomalla se päättyi vuonna 1970 543 00:25:03,036 --> 00:25:04,460 ennen evästeet olemassa. 544 00:25:04,460 --> 00:25:06,510 Joten selain on juuri menossa olettaa OK, se on kuin 545 00:25:06,510 --> 00:25:07,910 käsien pesua leima. 546 00:25:07,910 --> 00:25:11,240 >> Mutta nyt kun minun selain tekee myöhempi pyyntö - 547 00:25:11,240 --> 00:25:14,340 anna minun mennä eteenpäin ja tehdä tämän uudelleen ja uudelleen. 548 00:25:14,340 --> 00:25:18,170 Nyt haluaisin siirtyä takaisin top pyynnöstä ja mene alas 549 00:25:18,170 --> 00:25:20,760 täällä, pyyntöotsikoihin. 550 00:25:20,760 --> 00:25:21,390 Huomata tämän. 551 00:25:21,390 --> 00:25:25,280 Joten nyt olen alla ole vastaus otsikot, mutta huomaa sanoo pyyntöotsikoihin. 552 00:25:25,280 --> 00:25:29,220 Ja huomaan että selain osana pyyntönsä syönnin jälkeen reload on 553 00:25:29,220 --> 00:25:32,780 lähetetään ainakin seuraavat tietoa. 554 00:25:32,780 --> 00:25:34,670 Ei set-evästeen, mutta evästeen. 555 00:25:34,670 --> 00:25:38,750 Joten tämä on linja, HTTP-otsikon niin puhua, jos selain on eräänlainen 556 00:25:38,750 --> 00:25:43,340 ja ilman minun tietämättä esittää käteni Facebookin tarkastusta. 557 00:25:43,340 --> 00:25:46,020 >> Joten nämä evästeet voivat olla käytössä niin mitä? 558 00:25:46,020 --> 00:25:49,420 Muistaa, kuka olet, tai muistaa miten monta kertaa olet ollut siellä, tai 559 00:25:49,420 --> 00:25:50,280 oikeastaan ​​mitään. 560 00:25:50,280 --> 00:25:52,742 >> Joten tässä on counter.php. 561 00:25:52,742 --> 00:25:53,780 Ja haluaisin suurentaa fonttia. 562 00:25:53,780 --> 00:25:58,380 Ja joka kerta kun päivittää tämän sivun, huomaat se muistaa kuinka monta kertaa 563 00:25:58,380 --> 00:25:59,250 Olen ollut siellä. 564 00:25:59,250 --> 00:26:00,570 No, se ei ole kaikki, että vaikuttava. 565 00:26:00,570 --> 00:26:03,140 Katsotaanpa vain sulkea kyseisen välilehden, ja nyt mennään takaisin 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> Sepä mielenkiintoista. 568 00:26:08,970 --> 00:26:10,960 Se vielä muistetaan, jopa vaikka olen suljettu välilehti. 569 00:26:10,960 --> 00:26:14,010 Ja suoraan sanottuna, jos suljen selaimen, jos ne toteutetaan oikealla tavalla, I 570 00:26:14,010 --> 00:26:18,950 voisi silti muistaa, että tämä käyttäjä on kuka hän oli ensimmäinen kerta, ja 571 00:26:18,950 --> 00:26:22,840 vain kerran menen Chromen valikon, joka tänne on täällä, ja siirry 572 00:26:22,840 --> 00:26:25,990 Historia ja valitse Poista selaustiedot, kuten jotkut teistä saattaa olla 573 00:26:25,990 --> 00:26:33,050 Aiemmin vain silloin tulevat evästeet tosiasiallisesti poistetaan aikana web 574 00:26:33,050 --> 00:26:33,970 kehitystä. 575 00:26:33,970 --> 00:26:35,340 >> Joten, jos menemme - 576 00:26:35,340 --> 00:26:37,080 Katsotaanpa läheltä gedit täällä. 577 00:26:37,080 --> 00:26:38,910 Ja jos menemme nyt tähän tiedostoon. 578 00:26:38,910 --> 00:26:44,210 Anna minun mennä meidän vhosts / localhost / julkinen, ja anna minun tehdä 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Huomaa, että tämä on melko yksinkertainen ohjelma. 581 00:26:48,350 --> 00:26:50,250 Se on melko yksinkertainen sivusto. 582 00:26:50,250 --> 00:26:51,770 >> Joten tiedoston alkuun on vain kommentteja. 583 00:26:51,770 --> 00:26:54,930 Mutta tässä on uusi linja, että saatat nähneet jo p-set seitsemän, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Tämä on linja PHP koodia, joka lähinnä kertoo web-palvelin, jotta 586 00:27:00,380 --> 00:27:03,400 Muista leima kädet ja tehdä Muista tarkistaa käsin postimerkkejä. 587 00:27:03,400 --> 00:27:06,810 Siinä kaikki, että linja ei, ja se ei kaikki tämä prosessi meille. 588 00:27:06,810 --> 00:27:09,510 Sitten huomaa Olen juuri saanut kaksi haaraa täällä. 589 00:27:09,510 --> 00:27:14,150 Jos laskuri avaimensa tämän erityinen globaali muuttuja nimeltään 590 00:27:14,150 --> 00:27:18,010 $ _SESSION On asetettu - toisin sanoen, jos siellä on jotain arvoa siellä - 591 00:27:18,010 --> 00:27:22,440 Mennään sen ja tallentaa sen paikalliseen muuttuja nimeltä $ laskuri. 592 00:27:22,440 --> 00:27:27,000 Else, nyt antaa $ counter oletusarvo 0. 593 00:27:27,000 --> 00:27:30,320 >> Nyt tässä on yksi osa PHP, joka on sekä siunaus että kirous. 594 00:27:30,320 --> 00:27:32,080 PHP on hieman huolimaton. 595 00:27:32,080 --> 00:27:35,160 Joten taas C, mitä laajuus laskuri on 596 00:27:35,160 --> 00:27:36,725 joko tässä tai täällä? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Se olisi rajoitettava niille aaltosulkeita. 599 00:27:41,690 --> 00:27:42,090 Arvaa mitä? 600 00:27:42,090 --> 00:27:46,920 PHP, se on olemassa jopa niiden ulkopuolella aaltosulkeita, täällä ja täällä, 601 00:27:46,920 --> 00:27:49,120 ja täällä, ja täällä, ja jopa alhaalla. 602 00:27:49,120 --> 00:27:52,400 Joten sanon tämä on siunaus siinä mielessä että sinun ei tarvitse ajatella niin 603 00:27:52,400 --> 00:27:54,070 kovaa kuin teimme viikkoa sitten. 604 00:27:54,070 --> 00:27:56,880 Mutta se on myös hieman kirous, joka missä käytät muuttujaa 605 00:27:56,880 --> 00:28:00,020 PHP, ainakin tällaisen ohjelman, se on maailmanlaajuisesti saatavilla 606 00:28:00,020 --> 00:28:01,170 parempaan tai huonompaan. 607 00:28:01,170 --> 00:28:06,130 Joten sinun täytyy pitää mielessä nyt, että teidän muuttujat voivat olla määrittelemätön. 608 00:28:06,130 --> 00:28:07,640 Olet ehkä määritellä niitä muualta. 609 00:28:07,640 --> 00:28:09,460 >> Mutta mitä aion tehdä lopulta? 610 00:28:09,460 --> 00:28:13,160 Aion säilyttää sisällä, että maailmanlaajuinen muuttujan arvo 611 00:28:13,160 --> 00:28:17,060 counter keskeinen tulos tekee laskuri plus 1. 612 00:28:17,060 --> 00:28:18,910 Joten tämä on vain aritmeettinen joka ei 613 00:28:18,910 --> 00:28:20,590 incrementation tuon laskurin. 614 00:28:20,590 --> 00:28:24,850 Ja se, että olen varastointia että arvo takaisin täällä on keino 615 00:28:24,850 --> 00:28:29,970 olennaisesti päivittää tietokanta Muista, että käyttäjä 123456789 on ollut 616 00:28:29,970 --> 00:28:31,010 täällä kaksi kertaa. 617 00:28:31,010 --> 00:28:33,780 Ja kun teen sen uudestaan ​​seuraavan kerran Lataa sivu, se tulee tarkistaa 618 00:28:33,780 --> 00:28:36,710 käteni leima ja sanoa, oh, Käyttäjä 123456789 on nyt 619 00:28:36,710 --> 00:28:38,410 ollut täällä kolme kertaa. 620 00:28:38,410 --> 00:28:43,390 >> Ja niin mitä PHP ja vastaavat kielillä tekevät meille on niitä mietitään 621 00:28:43,390 --> 00:28:47,720 miten ja missä ja kuinka kauan tallentaa arvot tähän erityiseen 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 Ja tämä superglobal seuraavan kerran käydä sivulla on tavallaan maagisesti 624 00:28:52,750 --> 00:28:57,440 Esitäytetyn veroilmoituksen, täynnä arvot olivat siellä viimeksi kävit, 625 00:28:57,440 --> 00:29:02,310 oliko se toinen sitten, viikko sitten, tai vuonna 2013 ja olemme nyt puhu 626 00:29:02,310 --> 00:29:03,790 noin 2015. 627 00:29:03,790 --> 00:29:07,600 PHP ja web-palvelin hoitaa kaikki tämä teille. 628 00:29:07,600 --> 00:29:08,850 >> Yleisö: [kuultavissa]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID MALAN: muuttujat PHP ovat pohjimmiltaan aina maailmanlaajuinen ellet 631 00:29:15,760 --> 00:29:18,400 ilmoittaa ne sisällä toiminto, ja sitten he ovat paikallista aikaa 632 00:29:18,400 --> 00:29:19,420 toimintoa vain. 633 00:29:19,420 --> 00:29:22,300 Mutta koska en ole kirjoittanut toiminnot, ne ovat nyt tehokkaasti 634 00:29:22,300 --> 00:29:25,090 maailmanlaajuinen koko minun koko tiedosto tästä. 635 00:29:25,090 --> 00:29:26,040 >> Yleisö: Onko tapa jotta ne paikallisia? 636 00:29:26,040 --> 00:29:28,470 >> DAVID MALAN: Onko tapa saada ne paikallisia? 637 00:29:28,470 --> 00:29:30,680 Vain käärimällä ne toiminnot. 638 00:29:30,680 --> 00:29:32,790 Joka uusin versio PHP, voit tehdä tämän kanssa 639 00:29:32,790 --> 00:29:34,130 Nimetön toiminto. 640 00:29:34,130 --> 00:29:35,930 Mutta siitä lisää yhteydessä JavaScript. 641 00:29:35,930 --> 00:29:37,260 Mutta lyhyt vastaus on ei. 642 00:29:37,260 --> 00:29:40,888 Pidempi vastaus on kyllä. 643 00:29:40,888 --> 00:29:42,380 Nice. 644 00:29:42,380 --> 00:29:43,380 Hyvä tietokilpailu kysymys. 645 00:29:43,380 --> 00:29:43,930 Selvä. 646 00:29:43,930 --> 00:29:47,760 >> Joten lopuksi, sivu ei oikeastaan ​​aika yksinkertainen. 647 00:29:47,760 --> 00:29:51,470 Huomaa, että kun suljen PHP tilassa, muistuttaa että kaikki tätä kamaa alas 648 00:29:51,470 --> 00:29:53,700 Alla on vain menossa sylkeä ulos raaka selaimen. 649 00:29:53,700 --> 00:29:57,050 Joka on hieno, koska en halua lähettää Käyttäjä joitakin HTML, mutta haluan 650 00:29:57,050 --> 00:29:59,140 päivittää dynaamisesti, että HTML. 651 00:29:59,140 --> 00:30:03,930 Ja yksi tapa voin tehdä tämä on lajitella hyvin nopeasti pudota takaisin PHP 652 00:30:03,930 --> 00:30:07,730 tilassa, käytä alkusulkumerkki kysymysmerkki yhtäläisyysmerkki, ja sitten lähtö arvo 653 00:30:07,730 --> 00:30:08,650 counter. 654 00:30:08,650 --> 00:30:12,360 >> Tai jos tämä näyttää hieman arvoituksellisesti, tämä yhtäläisyysmerkki on oikeastaan ​​vain joitakin 655 00:30:12,360 --> 00:30:16,190 syntaktista sokeria tähän printf ($ laskuri). 656 00:30:16,190 --> 00:30:19,160 Mutta suoraan sanottuna, se on vain vähän ruma ja hieman harmittaa kirjoittaa. 657 00:30:19,160 --> 00:30:23,660 Joten PHP hienosti tarjoaa tätä ominaisuutta jossa voit vain sanoa sitä enemmän 658 00:30:23,660 --> 00:30:25,450 lyhyesti samalla tavalla. 659 00:30:25,450 --> 00:30:26,940 >> Joten mitä tapahtuu alla huppu? 660 00:30:26,940 --> 00:30:31,210 Katsotaanpa nopeasti katsomaan verkkoon välilehti täällä counter.php. 661 00:30:31,210 --> 00:30:35,090 Ja anna minun mennä eteenpäin ja ensimmäinen katsotaanpa poistaa evästeet. 662 00:30:35,090 --> 00:30:38,670 Katsotaanpa selkeä selailun tiedot vuodesta aikojen alusta. 663 00:30:38,670 --> 00:30:39,680 Nyt mennään takaisin tänne. 664 00:30:39,680 --> 00:30:41,340 Nyt lataa sivu. 665 00:30:41,340 --> 00:30:42,170 Ja olen takaisin nollaan. 666 00:30:42,170 --> 00:30:44,810 Että käteni leima on pesty, Olen nyt saada uuden evästeen. 667 00:30:44,810 --> 00:30:48,780 >> Tosin jos katson verkko-välilehti ja katso vastaus otsikot, huomaa 668 00:30:48,780 --> 00:30:51,960 että laite lähettää minulle evästeen, jonka nimi on hieman 669 00:30:51,960 --> 00:30:55,820 mielivaltaisesti, vaan eräänlainen kohtuullisesti, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 Ja se lähettää minulle todella iso satunnaisluku. 671 00:30:58,440 --> 00:30:59,440 Se ei ole aivan numero. 672 00:30:59,440 --> 00:31:00,390 Se ei ole aivan heksadesimaali. 673 00:31:00,390 --> 00:31:03,600 Se on jonkinlainen aakkosnumeerinen merkkijono, mutta oletettavasti se on satunnaista. 674 00:31:03,600 --> 00:31:06,830 Ja se on käsi leima niin puhun, olen viitaten. 675 00:31:06,830 --> 00:31:11,960 >> Samaan aikaan, jos valitsen uudelleen ja sitten katsokaa tämä toinen rivi toinen 676 00:31:11,960 --> 00:31:17,600 pyynnöstä, huomaa nyt, että pyyntöni otsikot ovat PHPSESSID vastaa tähän, 677 00:31:17,600 --> 00:31:19,390 ei set-evästeen, mutta vain evästeen. 678 00:31:19,390 --> 00:31:22,950 Ja se on minun selaimen esitys kädestäni leima. 679 00:31:22,950 --> 00:31:28,820 >> Joten nyt teaser, niin jutellaan lisää tästä viikon tai niin, mutta 680 00:31:28,820 --> 00:31:31,590 millä tavalla tämä tekee sinulle haavoittuvia, Facebook-tilin 681 00:31:31,590 --> 00:31:34,137 haavoittuva, ja muut tällaiset Tilit haavoittuva? 682 00:31:34,137 --> 00:31:35,510 >> Yleisö: Jos joku on evästeen. 683 00:31:35,510 --> 00:31:36,750 >> DAVID MALAN: Joo, jos joku on evästeen. 684 00:31:36,750 --> 00:31:39,920 Siis todella, aivan kuten jotkut teistä ehkä kokeillut kuten klubin tai 685 00:31:39,920 --> 00:31:44,030 huvipuisto, jos yrität jotain näin kopioida leima, vaikkakin 686 00:31:44,030 --> 00:31:47,560 taaksepäin toiseen henkilön käsi, ja sitten hän esittelee sitä 687 00:31:47,560 --> 00:31:53,250 omaa, jos se todella ei näytä identtisiä, 123456789, sitten web 688 00:31:53,250 --> 00:31:57,980 Palvelin on ilmeisesti juuri menossa luottaa siihen, että käyttäjä on sinun. 689 00:31:57,980 --> 00:32:01,450 >> Ja tämä on todellakin olennainen uhka tahansa käytät evästeet 690 00:32:01,450 --> 00:32:05,420 koska jos joku vain parodiat niin Kattava evästeen, lukuja, mitä se 691 00:32:05,420 --> 00:32:08,660 on joko todella kopioimalla katsomalla tietokoneen 692 00:32:08,660 --> 00:32:09,890 ja on kuin, OK. 693 00:32:09,890 --> 00:32:14,520 David eväste on JJ3JIK ja niin edelleen, ja sitten he fiksu tietää 694 00:32:14,520 --> 00:32:18,080 miten tavallaan lähettää manuaalisesti että evästeen selaimen tai 695 00:32:18,080 --> 00:32:22,350 Ohjelman he kirjoittavat, he voisivat täysin kirjautua verkkosivuilla kuin sinä. 696 00:32:22,350 --> 00:32:28,560 Se ei ole niin vaikea teeskennellä joku muu ellemme uudelleen p-sarja 697 00:32:28,560 --> 00:32:30,790 kaksi, joka esitteli mitä? 698 00:32:30,790 --> 00:32:32,065 >> Yleisö: Salaus. 699 00:32:32,065 --> 00:32:33,860 >> DAVID MALAN: pieni vähän salauksen. 700 00:32:33,860 --> 00:32:36,550 Yksinkertainen salaus, ainakin Standard Edition, mutta Crypto 701 00:32:36,550 --> 00:32:36,870 kuitenkin. 702 00:32:36,870 --> 00:32:37,410 vähemmän. 703 00:32:37,410 --> 00:32:41,440 Joten se kääntyy pois, jos salata kaikki nämä otsikot käyttämällä jotain, 704 00:32:41,440 --> 00:32:48,770 Nyt ehkä tietää enemmän tuttavallisesti kuin SSL, secure socket layer tai https:// URL, 705 00:32:48,770 --> 00:32:51,890 sitten kaikki nämä asiat olemme olleet vilkaisi ovat todella salattu, 706 00:32:51,890 --> 00:32:54,800 mikä tarkoittaa, että se on kuin sinä ei voi lukea käsi leima. 707 00:32:54,800 --> 00:32:59,350 Vain facebook.com voi tai google.com, tai tässä tapauksessa laite voi 708 00:32:59,350 --> 00:33:00,550 lukea, että käsi leima. 709 00:33:00,550 --> 00:33:04,020 >> Traagisesti vaikka, ja jälleen, tämä on liiankin tarkoituksenmukaisia ​​NSA juttuja 710 00:33:04,020 --> 00:33:06,410 myöhässä, vaikka SSL on särkyviä. 711 00:33:06,410 --> 00:33:09,850 Ja se on oikeastaan ​​ole niin vaikeaa jopa halki että salaus. 712 00:33:09,850 --> 00:33:12,040 Ei niinkään halkeilua salaus, mutta huijaamalla 713 00:33:12,040 --> 00:33:15,720 selaimesta salauksen tietojen ennenaikaisesti. 714 00:33:15,720 --> 00:33:17,880 Mutta jälleen kerran, me kiusaa sinua kanssa, että ennen pitkää. 715 00:33:17,880 --> 00:33:21,242 Nyt vain pelkää. 716 00:33:21,242 --> 00:33:23,070 Se traagisesti eräänlainen totta. 717 00:33:23,070 --> 00:33:23,760 >> Selvä. 718 00:33:23,760 --> 00:33:27,910 Joten, jos tämä nyt jättää meidät? 719 00:33:27,910 --> 00:33:29,010 No, tehdään tämä. 720 00:33:29,010 --> 00:33:31,790 Mennään eteenpäin ja ottaa nopeasti teaser ennen kuin taukoa. 721 00:33:31,790 --> 00:33:33,790 Ja mielestäni me viipyä hieman pidempään tänään, mutta aiomme sukeltaa 722 00:33:33,790 --> 00:33:37,850 jotain täysin uutta ja seksikäs, joka alkupaloiksi vieläkin. 723 00:33:37,850 --> 00:33:38,950 Niin, että teaser. 724 00:33:38,950 --> 00:33:41,520 >> Joten SQL, aloimme puhua koskaan niin lyhyesti viimeisen kerran. 725 00:33:41,520 --> 00:33:44,670 Tulet todella saada kädet likainen joidenkin sen p-set seitsemän. 726 00:33:44,670 --> 00:33:46,480 Ja maallikon termein, mitä SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 tehdä sinulle? 729 00:33:49,850 --> 00:33:50,310 Mikä se on? 730 00:33:50,310 --> 00:33:51,546 Joo. 731 00:33:51,546 --> 00:33:53,240 >> Yleisö: Katsotaanpa käytät tietoja. 732 00:33:53,240 --> 00:33:53,360 >> DAVID MALAN: Joo. 733 00:33:53,360 --> 00:33:55,120 Se katsotaanpa käytät tietoja tietokantaan. 734 00:33:55,120 --> 00:33:56,710 Structured Query Language. 735 00:33:56,710 --> 00:33:59,890 Ja tämä on lähinnä ohjelmointikieli. 736 00:33:59,890 --> 00:34:03,400 On piirteitä siitä, että emme edes käytä luokassa. 737 00:34:03,400 --> 00:34:04,710 Mutta voit tehokkaasti määritellä funktioita. 738 00:34:04,710 --> 00:34:06,870 Niitä kutsutaan tallennettu menettelyt SQL. 739 00:34:06,870 --> 00:34:09,860 Mutta me jatkamme sen melko yksinkertainen ja vain käyttää johonkin perustoiminnot 740 00:34:09,860 --> 00:34:14,320 kuten haluttu data, lisäämällä tietoa, päivittää tietoja ja poistaa tietoja. 741 00:34:14,320 --> 00:34:17,400 >> Ja voit todella ajatella tietokannan kuten SQL-tietokannan, kuten juuri 742 00:34:17,400 --> 00:34:18,800 on Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Koska SQL viittaa ihmissuhteisiin tietokanta, jossa 744 00:34:21,989 --> 00:34:23,480 suhteessa vain tarkoittaa taulukoita. 745 00:34:23,480 --> 00:34:24,739 Rivejä ja sarakkeita. 746 00:34:24,739 --> 00:34:27,929 Joten mitä voit laittaa taulukkolaskenta näin tai Google Docs, 747 00:34:27,929 --> 00:34:32,460 voisit laittaa SQL-tietokannan julistamalla pöytä. 748 00:34:32,460 --> 00:34:34,800 >> Nyt, miten voit itse käyttää nämä tiedot? 749 00:34:34,800 --> 00:34:38,239 No, komentoja tai kyselyitä näin. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, päivittää ja poistaa. 751 00:34:40,199 --> 00:34:44,489 Ja suurin osa, ne ovat neljä vain ainesosia sinun 752 00:34:44,489 --> 00:34:47,370 tehdä jotain melko voimakkaasti ongelmatilanteissa asettaa seitsemän. 753 00:34:47,370 --> 00:34:49,940 >> Nyt takaisin seuraavana päivänä, te todella vuorovaikutuksessa tietokannan 754 00:34:49,940 --> 00:34:52,730 musta ja valkoinen terminaalin ikkunasta vilkkuu nopeasti kuin tämä. 755 00:34:52,730 --> 00:34:56,370 Ja tietokanta olemme käynnissä Laitetta kutsutaan MySQL, joka on 756 00:34:56,370 --> 00:34:58,560 vapaan ja avoimen lähdekoodin tietokanta moottori. 757 00:34:58,560 --> 00:35:02,240 Jos Google ja lukea Wikipedia artikkelin, tiedät, että nimi on 758 00:35:02,240 --> 00:35:05,060 vähän siirtyminen joidenkin Linux-versioita. 759 00:35:05,060 --> 00:35:10,460 Maria tietokanta on oikeastaan haarukka niin sanotusti MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Pitkä tarina lyhyt, Oracle osti MySQL. 761 00:35:12,740 --> 00:35:13,870 Oracle on iso yritys. 762 00:35:13,870 --> 00:35:17,010 Ihmiset ovat huolissaan siitä, että se olisi ei enää ole aivan niin avoimen lähdekoodin, 763 00:35:17,010 --> 00:35:20,930 joten tämä on vain kopio MySQL, joka on vielä vapaana, vielä avoimen lähdekoodin, ja 764 00:35:20,930 --> 00:35:23,550 asennettu Fedora Linux oletuksena. 765 00:35:23,550 --> 00:35:26,130 >> Mutta tämä on sellainen kipu kaula tutustua 766 00:35:26,130 --> 00:35:27,310 tietokanta tällä tavalla. 767 00:35:27,310 --> 00:35:30,560 Joten liitämme CS50 laitteen ilmainen avoimen lähdekoodin työkalu nimeltään 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Vain sattumaa, että se on kirjoitettu PHP. 770 00:35:33,940 --> 00:35:36,450 Ei ole perustavaa laatua tarvitset PHP täällä. 771 00:35:36,450 --> 00:35:40,090 Mutta tämä on vain web-pohjainen työkalu, joka me ladata ilmaiseksi, asennettu 772 00:35:40,090 --> 00:35:43,850 laite, jonka avulla voimme olla graafinen käyttöliittymä, joka 773 00:35:43,850 --> 00:35:48,610 tutkimaan p-set seitsemän tietokanta joka luo uusia tietokantoja, 774 00:35:48,610 --> 00:35:51,980 sanoa oman opinnäytetyön jos olisit kuten, ja lopulta luoda 775 00:35:51,980 --> 00:35:55,900 dynaamiset sivustot kuten CS50 Rahoitus joiden avulla voit kyselyn tiedot ja 776 00:35:55,900 --> 00:35:58,140 päivittää tietoja dynaamisesti. 777 00:35:58,140 --> 00:36:01,420 >> Et täytyy käyttää vain yksinkertainen tekstitiedosto tai CSV. 778 00:36:01,420 --> 00:36:05,950 Voit itse käyttää älykäs tietokanta ohjelma, jotta voit suorittaa enemmän 779 00:36:05,950 --> 00:36:10,240 edistyneitä hakuja vain käsittelyssä kaiken läpi lineaarisesti. 780 00:36:10,240 --> 00:36:14,150 >> Niin esimerkiksi tämä on mitä annamme voit kättelyssä p-set seitsemän. 781 00:36:14,150 --> 00:36:18,280 Tämä on taulukko, jossa ilmeisesti ainakin kolme saraketta, joista yksi on 782 00:36:18,280 --> 00:36:21,450 käyttäjätunnus, joista yksi on hash, ja toinen, joka on tunnus. 783 00:36:21,450 --> 00:36:26,200 >> Mutta mielenkiintoinen asia, ja vain kammata pois yksi ajatus täällä, käyttäjätunnus 784 00:36:26,200 --> 00:36:29,270 on oletettavasti jo ainutlaatuinen, eikö? 785 00:36:29,270 --> 00:36:31,190 Tarkoitan, useimmat tahansa sivuston, jos sinulla on tunnus, siellä 786 00:36:31,190 --> 00:36:32,370 ei voi olla kahta caesars. 787 00:36:32,370 --> 00:36:33,440 Ei voi olla kahta Malans. 788 00:36:33,440 --> 00:36:34,950 Ei voi olla kahta jharvards. 789 00:36:34,950 --> 00:36:35,600 Sen ainutlaatuinen. 790 00:36:35,600 --> 00:36:38,610 Muuten he eivät tiedä mikä jharvard se todellisuudessa on. 791 00:36:38,610 --> 00:36:42,710 Joten mikä voisi olla motivaatio myös ottaa kolmas sarake vasemmalla 792 00:36:42,710 --> 00:36:46,970 siellä kutsutaan tunnus, joka näyttää numero, joka on samalla ainutlaatuinen? 793 00:36:46,970 --> 00:36:51,300 Se tuntuu hieman tarpeeton minulle ensi silmäyksellä. 794 00:36:51,300 --> 00:36:54,910 Miksi se voisi olla vakuuttava saada paitsi ainutlaatuinen käyttäjätunnuksia, 795 00:36:54,910 --> 00:36:56,837 mutta myös ainutlaatuisia numeroita? 796 00:36:56,837 --> 00:36:59,460 >> Yleisö: Ne voisivat olla sama salasana. 797 00:36:59,460 --> 00:37:01,720 >> DAVID MALAN: Ihmiset saattavat olla sama salasana, varma. 798 00:37:01,720 --> 00:37:03,900 Se voisi aivan tapahtua. 799 00:37:03,900 --> 00:37:08,270 Mutta jos heillä on tämä ainutlaatuinen käyttäjätunnus, I Väittäisin, että ei oikeastaan 800 00:37:08,270 --> 00:37:11,630 asia, koska jos he kirjoittavat heidän käyttäjätunnuksen, minulla on vain tarkistaa niiden 801 00:37:11,630 --> 00:37:15,060 salasanan, niiden hash viipymättä. 802 00:37:15,060 --> 00:37:15,970 Miksi muuten? 803 00:37:15,970 --> 00:37:17,950 >> Yleisö: Nopeampi haku. 804 00:37:17,950 --> 00:37:18,680 >> DAVID MALAN: Nopeampi haku. 805 00:37:18,680 --> 00:37:19,548 Miksi? 806 00:37:19,548 --> 00:37:21,460 >> Yleisö: ID on vain yksi. 807 00:37:21,460 --> 00:37:24,040 >> DAVID MALAN: ID on vain yksi merkki, tai tarkemmin sanottuna, se on numero, 808 00:37:24,040 --> 00:37:26,910 joten se on luultavasti 32 bittiä tai jotain. 809 00:37:26,910 --> 00:37:30,270 Sekä katsoo käyttäjätunnuksen, ilmeisesti Jason Hirschhorn tuolla ylhäällä on eräänlainen 810 00:37:30,270 --> 00:37:33,900 naurettavan pitkä, ja se tulee ottaa minua paljon enemmän aikaa string 811 00:37:33,900 --> 00:37:40,910 vertaa H-I-R-S-C-H-H-O-R-N, ja ehkä / 0 tai jotain, jotta 812 00:37:40,910 --> 00:37:45,100 etsiä Jason, eikä vain sanoi anna minulle käyttäjän numero kaksi. 813 00:37:45,100 --> 00:37:46,510 Se on 32 bittiä. 814 00:37:46,510 --> 00:37:48,550 Se on yksi INT että sinun täytyy vertailla. 815 00:37:48,550 --> 00:37:52,150 Ja todellakin, juuri siksi tietokantoja yleensä yksilöllisten tunnukset 816 00:37:52,150 --> 00:37:53,710 rivit niitä. 817 00:37:53,710 --> 00:37:56,280 >> Nyt mitä muut tietotyypit ovat siellä lisäksi INT ja ilmeisesti 818 00:37:56,280 --> 00:37:57,160 jouset näin? 819 00:37:57,160 --> 00:37:59,700 No, olla oikea, SQL-tietokantoihin, kuten 820 00:37:59,700 --> 00:38:02,060 MySQL, on CHAR kentät. 821 00:38:02,060 --> 00:38:05,320 Ja nieriää hieman harhaanjohtavasti ei ole yksittäinen CHAR. 822 00:38:05,320 --> 00:38:10,290 CHAR kenttä MySQL-tietokanta on yksi tai useampia merkkejä, mutta se on 823 00:38:10,290 --> 00:38:11,780 kiinteän määrän merkkejä. 824 00:38:11,780 --> 00:38:15,710 >> Niin esimerkiksi jos menen yli phpMyAdmin kuten olet ehkä jo, tai 825 00:38:15,710 --> 00:38:21,340 pian ongelma asettaa seitsemän, ja menen minun tietokantaan, ja vain huvin vuoksi, 826 00:38:21,340 --> 00:38:25,700 Luodaan uusi taulukko nimeltään testata vain kaksi saraketta. 827 00:38:25,700 --> 00:38:27,160 Minä sitten Siirry. 828 00:38:27,160 --> 00:38:30,070 Ja tämä tulee varsin tuttuja, varsinkin kun korjailla 829 00:38:30,070 --> 00:38:31,130 noin itse. 830 00:38:31,130 --> 00:38:34,140 Tässä voisin kirjoittaa ID luoda Uuden taulukon tyyppiä int. 831 00:38:34,140 --> 00:38:37,770 Mutta tässä voisin kirjoittaa käyttäjätunnuksesi uudestaan, että aiemmin taulukossa. 832 00:38:37,770 --> 00:38:40,700 Ja huomaa Minulla on koko joukko tyyppejä, joista valita. 833 00:38:40,700 --> 00:38:43,610 >> Ja sekin siksi phpMyAdmin on tavallaan mukavaa. 834 00:38:43,610 --> 00:38:46,770 Se on tavallaan itsestään opetuksen että olet voi vain eräänlainen kohta ja napsauta, ja 835 00:38:46,770 --> 00:38:50,730 tarkastella avattavasta valikot, ja päättelevät että mitä valtuuksia SQL saat. 836 00:38:50,730 --> 00:38:54,090 >> Ja todellakin, jos päätän CHAR, minä sitten on täsmennettävä pituutta tai kuinka 837 00:38:54,090 --> 00:38:55,940 monet arvot, kuinka monta MERKEILLÄ. 838 00:38:55,940 --> 00:39:00,090 Joten hyvin yhteiset arvot ovat asioita, kuten 255, mutta se on hieman pitkä. 839 00:39:00,090 --> 00:39:02,250 Yleisesti on kahdeksan käyttäjätunnusta. 840 00:39:02,250 --> 00:39:03,590 Mutta se on vähän pieni näinä päivinä. 841 00:39:03,590 --> 00:39:05,430 Joten tämä on suunnittelu päätös. 842 00:39:05,430 --> 00:39:08,630 Onko enintään 8 kirjainta, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Se on todella sinun. 844 00:39:09,830 --> 00:39:12,350 Mutta CHAR kenttä on kiinteä määrä. 845 00:39:12,350 --> 00:39:16,420 Joten valitse liian vähän ja olet aika ruuvattu jos haluat pidemmän käyttäjätunnuksen. 846 00:39:16,420 --> 00:39:19,132 Valitse liikaa ja mikä Huonona puolena? 847 00:39:19,132 --> 00:39:20,820 >> Yleisö: [kuultavissa]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID MALAN: Se on tuhlausta. 849 00:39:21,620 --> 00:39:24,835 Aivan kuten C, jos sinulla on isompi murikka muistia kuin tarvitset, olet 850 00:39:24,835 --> 00:39:27,190 vain tuhlaa aikaa ja tuhlaa tilaa. 851 00:39:27,190 --> 00:39:31,430 Niin vaihtoehtona on olemassa VARCHAR, joka ratkaisee tämän ongelman 852 00:39:31,430 --> 00:39:36,390 hoitoon pituus ei ole niin kiinteä pituus, mutta enimmäispituus, ja käyttämällä 853 00:39:36,390 --> 00:39:40,990 vaihteleva määrä MERKEILLÄ, joka sitten taipumus käyttää vain niin monta MERKEILLÄ kuin 854 00:39:40,990 --> 00:39:42,710 todella tarvitsevat. 855 00:39:42,710 --> 00:39:43,670 Se kuulostaa täydellinen. 856 00:39:43,670 --> 00:39:45,640 >> Miksi emme päästä eroon Char data kirjoita sitten? 857 00:39:45,640 --> 00:39:48,500 Mikä voisi olla haittapuoli käyttämällä VARCHARs, joka kuulostaa 858 00:39:48,500 --> 00:39:51,644 kuin se on kiva voittaa? 859 00:39:51,644 --> 00:39:52,596 Joo? 860 00:39:52,596 --> 00:39:53,846 >> Yleisö: [kuultavissa]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID MALAN: OK, hyvä. 863 00:39:57,790 --> 00:40:01,101 Joten jos kaikki tietosi on sama pituus, mikä huoli? 864 00:40:01,101 --> 00:40:05,250 >> Yleisö: Koska olet tuhlaa tietojen kertomalla ne kaikki. 865 00:40:05,250 --> 00:40:09,060 >> DAVID MALAN: Joten jos kaikki tiedot on samanpituiset, vaikka Väitän 866 00:40:09,060 --> 00:40:12,300 että täsmennetään maksimipituus on VARCHAR ei poikkea 867 00:40:12,300 --> 00:40:16,070 määrittämällä tietty pituus CHAR jos tiedät, että numero etukäteen. 868 00:40:16,070 --> 00:40:19,500 Mutta on todella, ja minä tavallaan ote tuo vastaus todellisuus 869 00:40:19,500 --> 00:40:22,610 että siellä on vielä max, joka voisi olla ärsyttävää, varsinkin jos 870 00:40:22,610 --> 00:40:25,920 kohtaat henkilön nimi, joka on epätavallisen kauan, että olet päässyt 871 00:40:25,920 --> 00:40:26,860 ennakoida. 872 00:40:26,860 --> 00:40:31,420 Ja se on myös hieman tehottomampi todella etsiä VARCHARs kuin 873 00:40:31,420 --> 00:40:35,620 Toisin kuin etsiä MERKEILLÄ, erityisesti pitkiä pöytiä, jotka ovat paljon ja 874 00:40:35,620 --> 00:40:36,510 paljon tietoa. 875 00:40:36,510 --> 00:40:40,060 Niin tässäkin temaattinen on jälleen ei itsestään selvä valinta. 876 00:40:40,060 --> 00:40:42,870 >> Joten vain antaa sinulle tunteen muiden tietotyypit, jotka saattavat olla kiinnostavia 877 00:40:42,870 --> 00:40:45,400 joko p-asettaa seitsemän tai Tulevaisuudessa siellä INT. 878 00:40:45,400 --> 00:40:47,270 On bigint, joka on kuin pitkä pitkä. 879 00:40:47,270 --> 00:40:48,880 Se on yleensä 64 bittiä. 880 00:40:48,880 --> 00:40:51,640 On DECIMAL, jonka näet vuonna Harjoitus, joka on paljon 881 00:40:51,640 --> 00:40:55,300 puhtaampia vastaus ongelmiin me kohdatut kellua ja kelluva 882 00:40:55,300 --> 00:40:55,980 kohta epätäsmällisyys. 883 00:40:55,980 --> 00:40:57,390 Ja sitten on DATETIME. 884 00:40:57,390 --> 00:41:01,530 On kirjaimellisesti tietotyyppi, joka on näyttää vuosi, kuukausi, päivä, 885 00:41:01,530 --> 00:41:03,730 ja tunti, minuutit ja sekunnit. 886 00:41:03,730 --> 00:41:07,470 >> Mutta SQL-tietokantoihin myös asioita me kutsumme indeksit. 887 00:41:07,470 --> 00:41:11,630 Ja indeksi on jotain, Määritä luotaessa taulukkoa 888 00:41:11,630 --> 00:41:15,720 tehdä hakuja ja muu toiminta tehokkaampaa. 889 00:41:15,720 --> 00:41:18,550 Erityisesti on jotain kutsutaan PRIMARY indeksi voisit 890 00:41:18,550 --> 00:41:19,440 julistaa seuraavasti. 891 00:41:19,440 --> 00:41:22,330 >> Teimme näin sinulle käyttäjätaulu annamme sinulle. 892 00:41:22,330 --> 00:41:26,160 Mutta huomaa, jos olisin manuaalisesti uudestaan käyttäjätaulu täällä antaa 893 00:41:26,160 --> 00:41:27,110 se nimi käyttäjille. 894 00:41:27,110 --> 00:41:28,125 Olen jo määritelty tunnus. 895 00:41:28,125 --> 00:41:29,330 Määritin INT. 896 00:41:29,330 --> 00:41:32,000 Olen määritellyt käyttäjätunnuksen kanssa enintään 32 merkkiä. 897 00:41:32,000 --> 00:41:36,140 Mutta jos pidämme rullata tässä melko leveä ikkuna, ilmoitus siellä 898 00:41:36,140 --> 00:41:38,260 joukko muita asioita, joita en voi määrittää. 899 00:41:38,260 --> 00:41:40,950 >> Yksi, voin määrittää ominaisuuksia kuten, tiedätkö mitä, tämä 900 00:41:40,950 --> 00:41:42,190 INT olisi UNSIGNED. 901 00:41:42,190 --> 00:41:45,510 En halua negatiivisia lukuja, joten tehkäämme se UNSIGNED. 902 00:41:45,510 --> 00:41:48,660 Null ei ole merkitystä tässä, koska En halua jokainen käyttäjä 903 00:41:48,660 --> 00:41:49,640 on yksilöllinen numero. 904 00:41:49,640 --> 00:41:50,830 En halua sen olevan nolla. 905 00:41:50,830 --> 00:41:52,330 >> Mutta tämä on mielenkiintoista. 906 00:41:52,330 --> 00:41:57,780 Voin täsmentää, että tunnus on joko perusavain tätä tietokantaa, tai se on 907 00:41:57,780 --> 00:42:00,620 ainutlaatuinen, tai se on indeksoitu, tai koko tekstistä. 908 00:42:00,620 --> 00:42:05,630 Joten nykypäivän tarkoituksiin, pitkä tarina lyhyt, ensisijainen keino, että tämä on 909 00:42:05,630 --> 00:42:10,570 olla sekä käsitteellisesti ja teknisesti kentän että käytämme yksilöllisesti 910 00:42:10,570 --> 00:42:12,140 tunnistaa käyttäjät. 911 00:42:12,140 --> 00:42:16,140 >> Joten kun katsomme ylös käyttäjille, tämä on eräänlainen lupausta etsiä niitä lähinnä 912 00:42:16,140 --> 00:42:17,370 että yksilöllinen tunniste. 913 00:42:17,370 --> 00:42:21,930 Ja tietokanta varmistaa, että jos on käyttäjän numero 3, et voi 914 00:42:21,930 --> 00:42:25,400 fyysisesti aseta toinen käyttäjä kanssa, että sama numero 3. 915 00:42:25,400 --> 00:42:28,380 Tietokanta vain kieltäytyä Tallenna muutokset. 916 00:42:28,380 --> 00:42:32,310 Mikä on hyvä asia, koska voit suojautua itse. itse 917 00:42:32,310 --> 00:42:34,270 >> Vaihtoehtoisesti käyttäjätunnus. 918 00:42:34,270 --> 00:42:37,670 Joten toinen rivi, muistaa, on käyttäjätunnus kenttään. 919 00:42:37,670 --> 00:42:41,860 Joten toinen rivi tässä käyttäjätunnuksen, kuten teimme äärimmäisenä vasemmalla siellä. 920 00:42:41,860 --> 00:42:43,940 >> Joten mitä muuta voisi haluan täsmentää? 921 00:42:43,940 --> 00:42:47,840 En saa mukaan SQL, määritellä kaksi ensisijaisia ​​avaimia. 922 00:42:47,840 --> 00:42:50,750 voit määrittää yhteinen avainta, kun katsomaan molemmat kentät, mutta he eivät voi 923 00:42:50,750 --> 00:42:52,260 yksilöllisesti olla ensisijainen avaimia. 924 00:42:52,260 --> 00:42:54,750 Niin, että kuuloonkaan. 925 00:42:54,750 --> 00:42:56,040 Joten mikä voisi haluan valita? 926 00:42:56,040 --> 00:42:59,710 >> No, Unique on hengeltään samanlainen perusavain, jossa voit määrittää tämän 927 00:42:59,710 --> 00:43:03,570 pellon on oltava yksilöllinen, mutta se on ei tule olemaan yksi 928 00:43:03,570 --> 00:43:04,410 Käytän koko ajan. 929 00:43:04,410 --> 00:43:08,450 Ja emme aio käyttää yhtä kaikki aika mistä syystä uudelleen? 930 00:43:08,450 --> 00:43:10,490 Se on hitaampi mahdollisesti jos se on pitkä käyttäjätunnus. 931 00:43:10,490 --> 00:43:11,740 Se on vain ajanhukkaa. 932 00:43:11,740 --> 00:43:16,140 >> INDEX puolestaan ​​täsmennetään, että se on ei tule olemaan ainutlaatuinen, mutta haluaisin 933 00:43:16,140 --> 00:43:19,470 voit työskennellä your magic alla huppu tehdä nopeammin minulle 934 00:43:19,470 --> 00:43:21,420 etsi tällä alalla. 935 00:43:21,420 --> 00:43:23,320 Joten tämä luultavasti ei ole merkitystä täällä. 936 00:43:23,320 --> 00:43:26,500 Saat käyttäjätunnuksen, olin sitä mieltä, että Unique on hyvä vastaus. 937 00:43:26,500 --> 00:43:31,200 Mutta oletetaan, että teimme käyttäjille enemmän mielenkiintoinen kuin vain käyttäjätunnukset, 938 00:43:31,200 --> 00:43:32,430 hash, ja ID-numerot. 939 00:43:32,430 --> 00:43:33,860 Mitä jos antaisimme ihmisten täydelliset nimet? 940 00:43:33,860 --> 00:43:37,700 Mitä jos antaisimme heille osoitteet ja muut tiedot niistä? 941 00:43:37,700 --> 00:43:43,360 >> No, jos määrittää, että sarakkeen tietokanta on indeksoitu, se tarkoittaa, että 942 00:43:43,360 --> 00:43:47,730 MySQL tai Oracle, tai mitä tahansa tietokantaan käytät, pitäisi toimia sen taika 943 00:43:47,730 --> 00:43:51,300 ja käyttää jonkinlaista fancy tietoja rakenne kuin puu tai triestä, tai 944 00:43:51,300 --> 00:43:55,940 hash table, tai jotain takaamaan että kun etsiä tietoja käyttäen 945 00:43:55,940 --> 00:43:58,150 Valitse tästä nimenomaisesta kenttä - 946 00:43:58,150 --> 00:44:01,310 kuten näyttää minulle kaikille, että elää Oxford Street. 947 00:44:01,310 --> 00:44:02,540 Kyselyn niin. 948 00:44:02,540 --> 00:44:06,250 Jos olet määrittänyt etukäteen, että Haluatko indeksi tällä alalla, 949 00:44:06,250 --> 00:44:09,050 haut on paljon, paljon nopeammin. 950 00:44:09,050 --> 00:44:12,090 >> Jos et määritä indeksi, paras mitä voi tehdä on lineaarista hakua, jos 951 00:44:12,090 --> 00:44:13,030 se ei ole lajiteltu. 952 00:44:13,030 --> 00:44:16,220 Mutta jos olet määrittänyt INDEX, älykäs ihmisiä, jotka tekivät tietokanta - 953 00:44:16,220 --> 00:44:19,340 sinun kaltaisiasi ihmisiä, jotka tietävät nyt puita ja yrittää ja hash taulukoita - 954 00:44:19,340 --> 00:44:23,220 automaattisesti rakentaa tällaisen tiedon rakenne RAM varmistaa, että 955 00:44:23,220 --> 00:44:26,050 nämä haut ovat paljon nopeammin. 956 00:44:26,050 --> 00:44:29,660 >> Fulltext välin on samanlainen henki, mutta voit tehdä wildcard 957 00:44:29,660 --> 00:44:35,480 hakuja, kuten näyttää minulle kaikille, että asuu kaduilla, jotka alkavat 958 00:44:35,480 --> 00:44:36,960 O-kirjain jostain syystä. 959 00:44:36,960 --> 00:44:38,850 Voit tehdä yleismerkkihakuja niin. 960 00:44:38,850 --> 00:44:45,880 Tai enemmän pakottavia asioita, kuten näyttelyssä me jokainen, jolla on sana - 961 00:44:45,880 --> 00:44:49,400 näytä minulle jokainen, jonka nimi alkaa tietyllä kirjaimella. 962 00:44:49,400 --> 00:44:51,880 Voit etsiä avainsanoja tällä tavalla. 963 00:44:51,880 --> 00:44:52,630 Selvä. 964 00:44:52,630 --> 00:44:55,760 >> Joten, suunnittelun mahdollisuuksia siellä mahdollisesti. 965 00:44:55,760 --> 00:44:57,740 On toisia, että minä aalto käsiäni. 966 00:44:57,740 --> 00:45:00,530 On käynyt ilmi, että voit olla erilaisia ​​varastointi moottoreita. 967 00:45:00,530 --> 00:45:04,390 Ja tämä on enemmän mystistä kuin me tarvitsemme varmasti ongelma asettaa seitsemän. 968 00:45:04,390 --> 00:45:06,920 Oletuksena te käytät jotain kutsutaan InnoDB. 969 00:45:06,920 --> 00:45:10,910 Näet mainitsee tämän jossain phpMyAdmin käyttöliittymä todennäköisimmin. 970 00:45:10,910 --> 00:45:14,130 Mutta tiedän, että on olemassa muita suunnittelun päätöksiä, jotka ovat mahdollisia 971 00:45:14,130 --> 00:45:18,030 kiinnostusta tulla lopullinen hankkeita, jos teet jotain web-pohjainen. 972 00:45:18,030 --> 00:45:19,330 >> Mutta tehdään tämä. 973 00:45:19,330 --> 00:45:23,130 Mennään eteenpäin ja asettaa tämän ruudulla teaser tarina 974 00:45:23,130 --> 00:45:26,330 johon olet, kämppäkaveri, ja lasi maitoa. 975 00:45:26,330 --> 00:45:28,240 Otetaanpa kahden minuutin tai niin tauko tässä. 976 00:45:28,240 --> 00:45:31,060 Ja jos voit jäämään, nyt tulevat takaisin, näyttää vähän enemmän SQL, ja 977 00:45:31,060 --> 00:45:35,160 Sitten vähän JavaScript kanssa p-asetettu kahdeksan mielessä. 978 00:45:35,160 --> 00:45:36,120 >> Selvä. 979 00:45:36,120 --> 00:45:40,420 Joten, lähdetään Ajattelitko corner tapaus, joka voi helposti syntyä 980 00:45:40,420 --> 00:45:44,240 yhteydessä käyttäen tietokantaa, tai rehellisesti, jopa käyttäen reaalimaailman asioita 981 00:45:44,240 --> 00:45:46,280 kuten pankkiautomaatit saada rahaa. 982 00:45:46,280 --> 00:45:47,640 Joten tässä on jääkaappi. 983 00:45:47,640 --> 00:45:50,040 Kai olet saanut yhden liian asuntolan tai talosi. 984 00:45:50,040 --> 00:45:54,990 Ja sinulla on yksi kämppäkaveri, ja molemmat pidät maitoa esimerkiksi. 985 00:45:54,990 --> 00:45:57,210 >> Joten tulet kotiin luokan yksi päivä. 986 00:45:57,210 --> 00:45:58,490 Hän ei ole vielä takaisin. 987 00:45:58,490 --> 00:45:59,180 Avaat jääkaappi. 988 00:45:59,180 --> 00:46:00,870 Haluatko todella iso lasi maitoa. 989 00:46:00,870 --> 00:46:01,820 Ei ole maitoa. 990 00:46:01,820 --> 00:46:02,920 Joten mitä teet? 991 00:46:02,920 --> 00:46:03,840 Suljet jääkaappi. 992 00:46:03,840 --> 00:46:04,670 Nappaat avaimet. 993 00:46:04,670 --> 00:46:05,930 Menet ulos aukiolle. 994 00:46:05,930 --> 00:46:09,240 Ja saat jonossa CVS noita itse kassalle asioita, jotka aina 995 00:46:09,240 --> 00:46:11,180 kestää kauemmin kuin itse ottaa kassat. 996 00:46:11,180 --> 00:46:11,820 Oli miten oli. 997 00:46:11,820 --> 00:46:15,490 >> Joten sitten puolestaan ​​dot dot dot, sinun kämppis tulee kotiin ja hän 998 00:46:15,490 --> 00:46:17,440 Samoin on haikailu joillekin maitoa. 999 00:46:17,440 --> 00:46:20,380 Joten hän avaa jääkaappi, näyttää sisältä, ja oh, hitto. 1000 00:46:20,380 --> 00:46:21,160 Ei maitoa. 1001 00:46:21,160 --> 00:46:24,750 Joten hän päänsä ulos, sattuu menemään Muihin CVS, joka oli vain 1002 00:46:24,750 --> 00:46:27,900 korttelin päässä jostain syystä, ja hän tai hän saa rivi ostaa maitoa. 1003 00:46:27,900 --> 00:46:30,480 >> Samaan aikaan tulet kotiin, hän tai hän tulee kotiin, ja mitä 1004 00:46:30,480 --> 00:46:31,980 sinulla lopulta on? 1005 00:46:31,980 --> 00:46:33,080 Kaksi kertaa niin paljon maitoa. 1006 00:46:33,080 --> 00:46:34,620 Mutta et todellakaan pidä maitoa niin paljon. 1007 00:46:34,620 --> 00:46:37,300 Joten nyt sinulla on niin paljon maitoa, että nyt yksi heistä on juuri menossa epäonnistua 1008 00:46:37,300 --> 00:46:37,820 lopulta. 1009 00:46:37,820 --> 00:46:39,370 Joten tämä on todella huono ongelma. 1010 00:46:39,370 --> 00:46:39,900 Oikea? 1011 00:46:39,900 --> 00:46:41,990 >> Joten mitä on tapahtunut? 1012 00:46:41,990 --> 00:46:44,810 Niin perusteellisesti, tämä on tavallaan of naurettava esimerkki. 1013 00:46:44,810 --> 00:46:48,580 Mutta alla huppu, mitä meillä on ollut tapahtua täällä on teille molemmille tarkistanut 1014 00:46:48,580 --> 00:46:52,390 tila palan muisti, jääkaappi. 1015 00:46:52,390 --> 00:46:54,420 Molemmat valitsit valtion Joidenkin muuttuja. 1016 00:46:54,420 --> 00:46:57,360 Te molemmat teki päätelmän että olet sitten toiminut. 1017 00:46:57,360 --> 00:47:01,420 Mutta valitettavasti, kun kämppis oli kaupassa, tilan vuoksi 1018 00:47:01,420 --> 00:47:05,670 muuttuja muuttunut, hän tuli takaisin ja nyt haluaa muuttaa tilaan, mutta 1019 00:47:05,670 --> 00:47:07,480 se on jo muutettu hänelle tai hänen. 1020 00:47:07,480 --> 00:47:11,120 Ja tietenkin, hän ei olisi mennyt liikkeeseen, jos he tietäisivät 1021 00:47:11,120 --> 00:47:13,010 että olit jo matkalla. 1022 00:47:13,010 --> 00:47:16,430 >> Niin todellisessa maailmassa, kuinka saatoit Tämän ongelman välttämiseksi, olettaen olet 1023 00:47:16,430 --> 00:47:18,940 jääkaappi, sinulla on kämppäkaveri, ja te oikeastaan ​​kuin maitoa? 1024 00:47:18,940 --> 00:47:19,760 >> Yleisö: Viestintä. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID MALAN viestinnästä. 1026 00:47:20,580 --> 00:47:21,160 OK. 1027 00:47:21,160 --> 00:47:22,500 Mutta miten voi kommunikoida? 1028 00:47:22,500 --> 00:47:23,990 >> Yleisö: Jätä huomata. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID MALAN: Jätä huomata, eikö? 1030 00:47:25,480 --> 00:47:28,025 Aina jättää setelityypistä fanit osoittavat. 1031 00:47:28,025 --> 00:47:31,580 Kunnossa, niin aina jättää huomautuksen tai laittaa todella kuin riippulukko tai jotain 1032 00:47:31,580 --> 00:47:35,440 jääkaapin, joka pitää kämppäkaveri tarkastamatta tilasta 1033 00:47:35,440 --> 00:47:36,540 että muuttuja. 1034 00:47:36,540 --> 00:47:40,800 >> Nyt, miksi tämä voisi johtua germane ongelma asettaa seitsemän tai automaateista. 1035 00:47:40,800 --> 00:47:46,780 No, kuvitella maailman ATM jossa saatat pystyä mennä jopa ATM 1036 00:47:46,780 --> 00:47:48,920 kone täällä, ja toinen ATM täällä. 1037 00:47:48,920 --> 00:47:50,680 Ja tämä tapahtuu melko usein. 1038 00:47:50,680 --> 00:47:54,150 Ja kai oli kaksi ATM kortit, , joka on mahdollista saada aikaan. 1039 00:47:54,150 --> 00:47:57,420 Ja kirjaudut molemmissa koneissa tehokkaasti samanaikaisesti, toivottavasti 1040 00:47:57,420 --> 00:47:58,660 Vaikka kukaan etsii. 1041 00:47:58,660 --> 00:48:01,260 Ja sitten kirjoitat PIN suunnilleen samanaikaisesti. 1042 00:48:01,260 --> 00:48:06,280 Ja sitten teet saldokysely kuinka paljon rahaa sinulla on. 1043 00:48:06,280 --> 00:48:08,920 Ja oletetaan, että sinulla on 100 dollaria jäljellä tililläsi. 1044 00:48:08,920 --> 00:48:13,310 Niin olennaisesti samanaikaisesti, sanoa yhden, nolla, nolla, kirjoita. 1045 00:48:13,310 --> 00:48:16,000 Ja et toivottavasti saada takaisin rahaa. 1046 00:48:16,000 --> 00:48:18,440 >> Mutta kuinka paljon rahaa voisi saat takaisin? 1047 00:48:18,440 --> 00:48:21,710 Nyt tietokoneet lopussa päivä, varsinkin jos he puhuvat 1048 00:48:21,710 --> 00:48:27,360 palvelimet, ei välttämättä tee asioita siinä järjestyksessä, joka on odotettavissa. 1049 00:48:27,360 --> 00:48:30,860 >> Joten kai mitä tapahtuu, koska riippumatta verkon nopeus kysymyksiä siellä 1050 00:48:30,860 --> 00:48:34,530 ovat, tai CPU kysymyksiä on olemassa, tai mitään sellaista, olettaa, että 1051 00:48:34,530 --> 00:48:38,530 Ensimmäinen ATM tarkistaa saldosi ja näkee, oh, tämä henkilö on 100 dollaria. 1052 00:48:38,530 --> 00:48:41,840 Mutta sitten saa hajamielinen koska ehkä varmuuskopiointi tapahtuu ja niin se on 1053 00:48:41,840 --> 00:48:42,500 hidastumassa. 1054 00:48:42,500 --> 00:48:45,080 Tai ehkä katsomalla, verkon yhteyden sai hieman hitaammin, koska 1055 00:48:45,080 --> 00:48:45,910 tämä vain tapahtuu. 1056 00:48:45,910 --> 00:48:47,100 He ovat fyysiset laitteet. 1057 00:48:47,100 --> 00:48:49,330 Joten välin toinen ATM on kysyä saman kysymyksen. 1058 00:48:49,330 --> 00:48:53,030 Kuinka paljon David on? 100 dollaria on vastaus. 1059 00:48:53,030 --> 00:48:58,930 Mutta koska ensimmäinen ATM ei ole vielä lähettänyt viestin vähennyslaskua 100 dollaria, sekä 1060 00:48:58,930 --> 00:49:03,000 Pankkiautomaatit ovat tarkastaneet pankin holvissa, nähdä siellä 100 dollaria siellä, ja nyt 1061 00:49:03,000 --> 00:49:07,160 molemmissa koneissa mahdollisesti ovat menossa sylkäistä vastaus. 1062 00:49:07,160 --> 00:49:12,240 >> Nyt tämä on hyvä sinulle jossain mielessä jos se, mitä pankki tekee lopulta 1063 00:49:12,240 --> 00:49:17,200 on muuttaa määrää miinus 100 vuoteen asettamalla muuttuja vastaa oman 1064 00:49:17,200 --> 00:49:21,570 pankkitilille 0, toisin tekemään miinus 100. 1065 00:49:21,570 --> 00:49:24,410 Nyt pahimmassa tapauksessa pankin - 1066 00:49:24,410 --> 00:49:27,470 tai paras pankki puolestaan he antavat sinulle 200 dollaria, ja 1067 00:49:27,470 --> 00:49:31,690 pankkitilisi näyttää nyt negatiivinen 100 dollaria, mikä ei todellakaan 1068 00:49:31,690 --> 00:49:32,950 hyödyttää sinua ollenkaan. 1069 00:49:32,950 --> 00:49:36,500 Mutta kohta on, että tämä rotu edellytys kaksi kämppäkaverini saada 1070 00:49:36,500 --> 00:49:40,660 maitoa tai kahdelle pankkiautomaattien yrittää saada käteistä ja muuttaa tilan holvissa 1071 00:49:40,660 --> 00:49:44,510 samaan aikaan olemassa mitään aikaa sinulla on tietokanta. 1072 00:49:44,510 --> 00:49:48,290 >> Nyt ongelma asettaa seitsemän, tätä kysymystä syntyy siinä mielessä, että jos ostat 1073 00:49:48,290 --> 00:49:52,110 osuus Facebook varastossa, ja sitten Esimerkiksi voit ostaa toisen osuuden 1074 00:49:52,110 --> 00:49:55,160 Facebook hyllyssä, sinun täytyy tehdä Päätös sellaisena kuin ohjelmoija. 1075 00:49:55,160 --> 00:49:58,710 Jotta voidaan päättää, miten päivittää tietokanta, kertoimet olet menossa 1076 00:49:58,710 --> 00:50:02,250 on yksi rivi kyseisen kannan, ja tämä on yksi tapa toteuttaa se. 1077 00:50:02,250 --> 00:50:06,640 Ja olet menossa on yksi osake FB, joka on heidän osaketunnus 1078 00:50:06,640 --> 00:50:10,120 Tämän käyttäjätunnuksen, tai tämän käyttäjän ID, yksilöllinen tunniste. 1079 00:50:10,120 --> 00:50:12,340 >> Mutta sama tarina voi tapahtua täällä. 1080 00:50:12,340 --> 00:50:15,800 Jos et SELECT SQL, kuten näet ongelmatilanteissa asettaa seitsemän, kun näet, 1081 00:50:15,800 --> 00:50:18,460 oh, David on yksi osakesarja Facebook varastossa. 1082 00:50:18,460 --> 00:50:23,240 Anna minun nyt vaihtaa tämän olevan kaksi osaketta, koska hän haluaa ostaa 1083 00:50:23,240 --> 00:50:24,120 Toinen osuus. 1084 00:50:24,120 --> 00:50:27,860 Mutta oletetaan David todella oli kaksi selaimen ikkunat auki, tai olettaa, että 1085 00:50:27,860 --> 00:50:32,150 se on yhteinen tili, jossa on kaksi puolisot, ja molemmat yrittävät suorittaa 1086 00:50:32,150 --> 00:50:36,770 Sama toiminto, sielläkin, mahdollista että päätös on 1087 00:50:36,770 --> 00:50:39,670 tehty perustuu edellisen maailman tilasta - 1088 00:50:39,670 --> 00:50:41,290 tilillä on yksi osake - 1089 00:50:41,290 --> 00:50:45,630 ja molemmat ihmiset, tai molemmat palvelimet, nyt yritä sanoa kasvattaa sen kaksi osaketta. 1090 00:50:45,630 --> 00:50:49,020 Mutta tässä tapauksessa, olet ehkä ladattu minulle rahaa sekä osakkeisiin, mutta 1091 00:50:49,020 --> 00:50:50,830 kasvatetaan vain sen yhden kerran. 1092 00:50:50,830 --> 00:50:54,730 >> Joten lyhyt, perusongelma täällä, kuten vitsi lähdöstä 1093 00:50:54,730 --> 00:50:58,750 Huomioithan, tai laittaa lukon se on jos kaksi ihmistä, tai kaksi kierteet - 1094 00:50:58,750 --> 00:50:59,930 muistelen scratch - 1095 00:50:59,930 --> 00:51:03,220 voi tarkastaa valtion joidenkin muuttujan ja sitten yrittää muuttaa muuttujan, 1096 00:51:03,220 --> 00:51:07,950 mutta nämä kaksi asiaa eivät tapahdu samaan aikaan, mutta voi saada keskeyttää 1097 00:51:07,950 --> 00:51:11,500 Muiden asioita tapahtuu, tietoja voidaan päästä hyvin outo tila. 1098 00:51:11,500 --> 00:51:15,450 Ja voit hyötyä tai voit kärsiä siinä mielessä rahaa esimerkki. 1099 00:51:15,450 --> 00:51:18,110 >> Joten ongelma asettaa seitsemän, annamme sinulle tämä yksi rivi koodia, joka pitkällä 1100 00:51:18,110 --> 00:51:21,000 tarina lyhyt, ratkaisee tämän ongelma MySQL. 1101 00:51:21,000 --> 00:51:24,950 Tämä erittäin pitkä ohje, että ei edes mahdu yhdelle riville 1102 00:51:24,950 --> 00:51:30,370 näyttö tässä takaa, että toiminta on mitä kutsutaan atomi. 1103 00:51:30,370 --> 00:51:33,720 Se kaikki tapahtuu kerralla, tai se ei tapahdu lainkaan. 1104 00:51:33,720 --> 00:51:37,530 Tämä hyvin pitkä lause ei voi saada keskeyttää osittain. 1105 00:51:37,530 --> 00:51:39,840 >> Ja mitä se tekee on kirjaimellisesti mitä se sanoo. 1106 00:51:39,840 --> 00:51:44,200 Laita johonkin taulukossa seuraavat kolme kenttää näitä tiettyjä arvoja, 1107 00:51:44,200 --> 00:51:47,280 mutta kahtena avain, älä tee insertti. 1108 00:51:47,280 --> 00:51:48,280 Tehdä päivityksen. 1109 00:51:48,280 --> 00:51:52,450 Joten tämä on kuin tekee SELECT ja INSERT niin sanotusti samaan aikaan. 1110 00:51:52,450 --> 00:51:55,150 Ja mikä on avain, joka on luultavasti saatettiin täällä? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> On käynyt ilmi, ja näet tämän ongelma asettaa seitsemän spec, koska 1113 00:52:01,380 --> 00:52:06,040 olemme julistettu siellä olla yksilöllinen avain etenkin tähän pöytään siten, että 1114 00:52:06,040 --> 00:52:08,480 et voi olla useita rivejä samalle käyttäjälle kanssa 1115 00:52:08,480 --> 00:52:10,150 sama penniäkään varastossa symboli - 1116 00:52:10,150 --> 00:52:13,780 tässä esimerkissä täällä, DVN.V on typerä penniäkään varastossa, että me 1117 00:52:13,780 --> 00:52:14,980 viittaan spec. 1118 00:52:14,980 --> 00:52:17,860 Koska olemme ilmoittanut sen olevan ainutlaatuinen, mitä tämä tarkoittaa, että jos 1119 00:52:17,860 --> 00:52:23,580 yrittää lisätä kahtena peräkkäin, olet sen sijaan menossa päivittää sitä ilman 1120 00:52:23,580 --> 00:52:27,020 joku muu ottaa tilaisuuden kohentaa maailman tilasta joko. 1121 00:52:27,020 --> 00:52:29,400 Joten lyhyt, tämä takaa asiat ovat atomi. 1122 00:52:29,400 --> 00:52:32,530 >> Yleisemmin kuitenkin, tietokannat kuten MySQL - 1123 00:52:32,530 --> 00:52:35,460 ja sinun ei tarvitse tätä toimintoa varten p-asettaa seitsemän, mutta pitää se mielessä 1124 00:52:35,460 --> 00:52:36,200 tulevaisuudessa - 1125 00:52:36,200 --> 00:52:38,870 tukea mitä kutsutaan liiketoimia, jossa voit sanoa 1126 00:52:38,870 --> 00:52:40,990 START TOIMENPIDEMAKSUT kirjaimellisesti. 1127 00:52:40,990 --> 00:52:43,270 Voit sitten suorittaa kaksi SQL. 1128 00:52:43,270 --> 00:52:45,710 Ja SQL-lause, kuten näet p-asettaa seitsemän, näyttää vähän 1129 00:52:45,710 --> 00:52:46,750 jotain tällaista. 1130 00:52:46,750 --> 00:52:48,820 Päivitä taulukkoon nimeltä huomioon. 1131 00:52:48,820 --> 00:52:52,550 Säädä tasapaino sarake vastaa mitä tahansa Saldo-sarakkeen hetkellä 1132 00:52:52,550 --> 00:52:57,280 on miinus 1000, jos niiden määrä, tilinumero, kuten käyttäjätunnus, 1133 00:52:57,280 --> 00:53:00,830 on 2, ja sitten päivittää huomioon dot dot dot. 1134 00:53:00,830 --> 00:53:04,350 >> Joten maallikon termein, mitä nämä kaksi kyselyt näyttävät tekevän vuonna 1135 00:53:04,350 --> 00:53:05,840 reaalimaailman tunnetta pankki? 1136 00:53:05,840 --> 00:53:07,440 >> Yleisö: siirtäminen säästöjä. 1137 00:53:07,440 --> 00:53:08,020 >> DAVID MALAN: Aivan. 1138 00:53:08,020 --> 00:53:10,470 Siirtämällä varoja yhden tilin muille. 1139 00:53:10,470 --> 00:53:14,400 Ja tämä on toinen esimerkki, jossa olet todella haluavat nämä kaksi asiaa tapahtuu 1140 00:53:14,400 --> 00:53:15,570 tai ei tapahdu. 1141 00:53:15,570 --> 00:53:18,880 Et halua jotain saada niiden keskelle ja mahdollisesti sotket 1142 00:53:18,880 --> 00:53:22,220 matematiikka, tai sotkea kuinka paljon rahaa sinulla on, tai kuinka paljon 1143 00:53:22,220 --> 00:53:23,170 rahaa pankkiin on. 1144 00:53:23,170 --> 00:53:26,890 Joten mitä todella mukavaa noin liiketoimista MySQL on, että sekä 1145 00:53:26,890 --> 00:53:30,160 tietokannat yleisemmin, on se, että ne ja fiksuja ihmisiä, jotka ovat toteutettu 1146 00:53:30,160 --> 00:53:33,670 nämä ominaisuudet selvittää, miten tehdä Varmista, että nämä molemmat asiat tapahtuvat 1147 00:53:33,670 --> 00:53:35,120 tai ei ollenkaan. 1148 00:53:35,120 --> 00:53:38,580 >> Ja jos olet todella aikeissa tehdä verkkosivusto, joka käyttää ihmisiä 1149 00:53:38,580 --> 00:53:41,490 kampuksella, ihmiset todellisessa maailmassa, tekee jotain käynnistyksen merkityksessä, 1150 00:53:41,490 --> 00:53:43,300 nämä ovat erilaisia suunnittelun päätöksiä, että 1151 00:53:43,300 --> 00:53:45,020 tullut koskaan niin tärkeä. 1152 00:53:45,020 --> 00:53:48,240 Muuten, voit alkaa menettää tietoja, menettää käyttäjille, tai pahimmassa tapauksessa 1153 00:53:48,240 --> 00:53:51,800 olemme nähneet täällä, mahdollisesti menettää rahaa. 1154 00:53:51,800 --> 00:53:56,180 Joten jälleen, siitä lisää Harjoitus seitsemän, sekä kenties joidenkin 1155 00:53:56,180 --> 00:53:57,530 sinua opinnäytetöissä. 1156 00:53:57,530 --> 00:54:01,870 >> Joten muuttaa, että kuva meillä oli hetki sitten vain yksi tapa. 1157 00:54:01,870 --> 00:54:04,070 Joten haluan itse nähdä, jos voin - 1158 00:54:04,070 --> 00:54:06,030 Ehei, että on mennyt. 1159 00:54:06,030 --> 00:54:06,690 Siinä se on. 1160 00:54:06,690 --> 00:54:09,020 >> Joten tämä on kun jätimme viime kerralla. 1161 00:54:09,020 --> 00:54:12,390 Ja käy ilmi, aiomme nakata yksi asia taikinaan täällä - 1162 00:54:12,390 --> 00:54:14,510 kieltä kutsutaan JavaScript. 1163 00:54:14,510 --> 00:54:18,060 Joten JavaScript todella sopii tähän pala - 1164 00:54:18,060 --> 00:54:22,086 ja en oikein jätä tarpeeksi tilaa, joten tämä ei ole nyt mittakaavassa. 1165 00:54:22,086 --> 00:54:23,900 OK, tämä on todella säälittävää. 1166 00:54:23,900 --> 00:54:27,075 OK, niin se on JavaScript. 1167 00:54:27,075 --> 00:54:27,340 Selvä. 1168 00:54:27,340 --> 00:54:28,760 Olen todella tekemässä sitä karhunpalveluksen. 1169 00:54:28,760 --> 00:54:29,390 Selvä. 1170 00:54:29,390 --> 00:54:34,790 >> Joten JavaScript on toinen ohjelma kieltä, ja meidän viimeinen, jos se auttaa 1171 00:54:34,790 --> 00:54:37,770 vakuuttaa, että siellä ei ole paljon ja palopostit täällä. 1172 00:54:37,770 --> 00:54:41,100 Joten JavaScript on myös tulkittu kieliin, joten et 1173 00:54:41,100 --> 00:54:42,670 kääntää sen osaksi nollia ja ykkösiä. 1174 00:54:42,670 --> 00:54:43,690 Olet vain ajaa sitä. 1175 00:54:43,690 --> 00:54:47,680 Mutta mitä pohjimmiltaan erilainen JavaScript yleensä on, että 1176 00:54:47,680 --> 00:54:49,815 älä suorita sitä web-palvelimelle. 1177 00:54:49,815 --> 00:54:52,570 Se ei saa ajaa Laite sinänsä. 1178 00:54:52,570 --> 00:54:57,490 Pikemminkin se saa ladata käyttäjän HTTP selaimeen - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox riippumatta - 1180 00:55:00,260 --> 00:55:03,860 ja se on selain, joka suorittaa tämän erityisesti ohjelmointikieli. 1181 00:55:03,860 --> 00:55:08,000 >> Joten on selvää, PHP on tähän mennessä ollut toteutetaan joko komentorivillä 1182 00:55:08,000 --> 00:55:11,290 meidän musta ja valkoinen ikkuna, palvelimella kuten laite, tietokone 1183 00:55:11,290 --> 00:55:14,490 pidä laitetta, tai se on ollut suorittaa www-palvelin 1184 00:55:14,490 --> 00:55:15,860 käynnissä tietokoneessa. 1185 00:55:15,860 --> 00:55:20,490 Mutta teema on, että PHP toistaiseksi on toteutettu server-side, joten 1186 00:55:20,490 --> 00:55:24,820 käyttäjä ja käyttäjän selaimen ei näe rivi PHP. 1187 00:55:24,820 --> 00:55:28,530 >> Itse asiassa, jos joskus avata selaimen sivuston tai toiseen ja olet 1188 00:55:28,530 --> 00:55:32,400 itse nähdä PHP koodi in your ikkunassa joku on mokannut. 1189 00:55:32,400 --> 00:55:34,950 Koska se ei ole tarkoitus olla lähetetään selaimeen suoraan. 1190 00:55:34,950 --> 00:55:38,150 Sen pitäisi panna täytäntöön ja kääntyi jotain kuten HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Mutta JavaScript on olennaisesti päinvastainen. 1192 00:55:40,120 --> 00:55:44,350 Se on tarkoitettu suoritettavaksi tyypillisesti sisällä käyttäjän selaimen ikkunassa. 1193 00:55:44,350 --> 00:55:46,840 Ja millaisia ​​sivustot käyttävät JavaScript sitten näinä päivinä? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Kuten kirjaimellisesti jokaisen suosittu verkkosivusto. 1196 00:55:52,180 --> 00:55:55,430 Jokainen verkkosivuilla, että te luultavasti käyttää päivittäin käyttää Javascript 1197 00:55:55,430 --> 00:55:57,330 Yksinkertaisin ja jopa seksikkäin ominaisuuksia. 1198 00:55:57,330 --> 00:55:59,800 >> Joten jotain Facebook Chat, jos käytät sitä. 1199 00:55:59,800 --> 00:56:01,040 Miten se käytännössä toimii? 1200 00:56:01,040 --> 00:56:05,090 No tähän asti kaikki jutut olemme tehdään HTML ja PHP oletetaan, että 1201 00:56:05,090 --> 00:56:08,750 vedät URL, ja osut Enter, ja näet joitakin HTML-sisältöä. 1202 00:56:08,750 --> 00:56:11,970 Ja klikkaat linkkiä, joka muuttaa URL, muuttaa sivun ja lataa 1203 00:56:11,970 --> 00:56:12,740 joitakin uutta sisältöä. 1204 00:56:12,740 --> 00:56:16,340 Valitse toinen URL tai lähetä lomakkeen pyyhkäistiin toiselle sivulle ja 1205 00:56:16,340 --> 00:56:17,420 näet joitakin uutta sisältöä. 1206 00:56:17,420 --> 00:56:22,710 >> Mutta käyttämällä jotain Facebook Chat, tai Gchat tai Google Maps, harvoin 1207 00:56:22,710 --> 00:56:27,350 ei koko sivun päivittää niin, että näet valkokangas hetkellisesti ja 1208 00:56:27,350 --> 00:56:28,470 sitten uutta sisältöä. 1209 00:56:28,470 --> 00:56:32,610 Pikemminkin verkkosivut ovat nykyään dynaamisesti saada päivitetään uudelleen ja 1210 00:56:32,610 --> 00:56:35,570 uudelleen ja uudelleen kaikenlaisia kulissien takana. 1211 00:56:35,570 --> 00:56:38,560 Ja käy ilmi, että kun et mene jotain Facebook tai Gchat, 1212 00:56:38,560 --> 00:56:43,050 tai Gmail, ja sivun päivitykset automaattisesti ilman lastin purkua 1213 00:56:43,050 --> 00:56:47,630 koko ruudun, mitä on tapahtunut on se, että selaimessasi on tehnyt tavallaan salaa 1214 00:56:47,630 --> 00:56:49,410 HTTP-pyyntöjä - 1215 00:56:49,410 --> 00:56:52,740 eikä kaikista web-sivuja, mutta vain pikku paloina tietoja, kuten 1216 00:56:52,740 --> 00:56:55,740 pikaviestin, että ystäväsi vain lähetti sinulle tai tilapäivitystä että 1217 00:56:55,740 --> 00:56:58,210 joku juuri lähettänyt sinulle tai jaa että joku juuri lähettänyt. 1218 00:56:58,210 --> 00:57:02,120 Se vain tekee vähän pyyntöjä data, ja sitten JavaScriptin avulla, tämä 1219 00:57:02,120 --> 00:57:06,370 ohjelmointikieli, muuttaa mitä Web-sivu näyttää ilman 1220 00:57:06,370 --> 00:57:09,860 palvelin auttaa, ilman palvelimen tuottaa että HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Joten lyhyt, JavaScript voidaan käyttää sitten ei vain hakemaan uusia tietoja 1222 00:57:13,820 --> 00:57:16,750 palvelin ilman lastin purkua koko sivun tai lähettämällä lomake. 1223 00:57:16,750 --> 00:57:20,060 Sitä voidaan käyttää myös muutoksiin ns DOM - 1224 00:57:20,060 --> 00:57:21,520 Document Object Model - 1225 00:57:21,520 --> 00:57:24,620 joka on vain hieno tapa sanomalla puu HTML 1226 00:57:24,620 --> 00:57:26,220 että näimme viime kerralla. 1227 00:57:26,220 --> 00:57:31,640 >> Joten vakuuttamaan, JavaScript on rakenteeltaan niin samankaltaisia ​​C samoin. 1228 00:57:31,640 --> 00:57:32,820 Ei ole päätehtävä. 1229 00:57:32,820 --> 00:57:35,430 Sinä vain alkaa kirjoittaa koodia ja se saa suorittaa, tai 1230 00:57:35,430 --> 00:57:36,900 tulkita oikein. 1231 00:57:36,900 --> 00:57:38,660 Sääolot näyttävät tältä. 1232 00:57:38,660 --> 00:57:41,230 Ei poikkea C tai PHP että asiassa. 1233 00:57:41,230 --> 00:57:43,890 Boolen operaattoreilla tai-ed yhdessä näyttää tältä. 1234 00:57:43,890 --> 00:57:45,590 Anded yhdessä näyttävät tältä. 1235 00:57:45,590 --> 00:57:47,750 >> Kytkimet näyttää tältä. 1236 00:57:47,750 --> 00:57:49,440 Silmukoita näyttää tältä. 1237 00:57:49,440 --> 00:57:51,060 Vaikka silmukat näyttää tältä. 1238 00:57:51,060 --> 00:57:53,316 Tehdä, kun silmukoita näyttää tältä. 1239 00:57:53,316 --> 00:57:54,780 >> Tämä on uusi. 1240 00:57:54,780 --> 00:57:58,753 Joten JavaScript ei ole foreach rakentaa sinänsä, mutta tämä konstrukti 1241 00:57:58,753 --> 00:58:03,870 Muuttujan i array, ja olen tässä tapauksessa tulee indeksin arvo. 1242 00:58:03,870 --> 00:58:06,880 Joten se on hieman erilainen kuin Foreach, vaikka uudet versiot 1243 00:58:06,880 --> 00:58:10,280 JavaScript ovat tulossa ulos koko ajan, joten nämäkin kielen ominaisuuksista 1244 00:58:10,280 --> 00:58:10,880 kehittyvät. 1245 00:58:10,880 --> 00:58:16,920 >> Ja syrjään, JavaScript näinä päivinä voidaan käyttää myös palvelimella kuten 1246 00:58:16,920 --> 00:58:19,920 PHP käyttäen puitteet nimeltään Node.js. 1247 00:58:19,920 --> 00:58:24,670 Yksi CS50: n TF: ien, Kevin, on johtanut seminaari Node.js, joka on saatavilla osoitteessa 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Joten jos olet kiinnostunut, tietää, että olet voivat käyttää tätä palvelimen puolella 1250 00:58:28,830 --> 00:58:33,870 hyvin, mutta se on melko uusi suuntaus, mutta tehokas sellainen. 1251 00:58:33,870 --> 00:58:35,270 >> Tämä on hieman erilainen. 1252 00:58:35,270 --> 00:58:37,910 Tämä on joukko JavaScript. 1253 00:58:37,910 --> 00:58:40,115 Ja mitä lyö sinua niin erilaisia vs. C tai PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 On olemassa muutamia nopeita tarinoita voimme kertoa täällä. 1256 00:58:47,420 --> 00:58:49,367 Mitä puuttuu vs. PHP? 1257 00:58:49,367 --> 00:58:51,652 >> Yleisö: [kuultavissa]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID MALAN: Niin? 1259 00:58:52,110 --> 00:58:53,322 Anteeksi, sano uudelleen? 1260 00:58:53,322 --> 00:58:54,740 >> Yleisö: Ei julistamisesta Muuttujan tyyppi. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID MALAN: Emme julistamisesta Muuttujan tyyppi. 1262 00:58:56,390 --> 00:58:59,630 Joten oikeastaan ​​aivan kuten PHP, emme ole määritellään minkälaisia ​​tämän muuttujan. 1263 00:58:59,630 --> 00:59:02,670 Pikemminkin olemme enemmän yleisesti sanomalla var muuttujan. 1264 00:59:02,670 --> 00:59:06,690 Meillä ei ole PHP: n harmia dollarin merkki, joka taas ikävä 1265 00:59:06,690 --> 00:59:09,160 tyyppi, ei tehdä enemmän selväksi, että Jokin on vaihteleva. 1266 00:59:09,160 --> 00:59:11,830 Kun taas täällä, olemme tavallaan takaisin C: n lähestymistapa vain soittamalla 1267 00:59:11,830 --> 00:59:14,500 muuttujan nimen haluamme antaa sille, kuten numeroita. 1268 00:59:14,500 --> 00:59:17,170 Ja myös PHP, meillä on neliön kiinnikkeet 1269 00:59:17,170 --> 00:59:19,170 arvojen sisällä että jono. 1270 00:59:19,170 --> 00:59:22,490 >> Joten muuttujat JavaScript myös voisi näyttää tältä. 1271 00:59:22,490 --> 00:59:26,900 Huomata tässä tämä on merkkijono kutsutaan s, mutta samalla meillä ei ole määritelty 1272 00:59:26,900 --> 00:59:28,750 että se on merkkijono. 1273 00:59:28,750 --> 00:59:33,160 Tässä kuitenkin on ominaisuus, joka ei olemassa täsmälleen samalla tavalla PHP, 1274 00:59:33,160 --> 00:59:34,460 mutta hieman samalla tavalla. 1275 00:59:34,460 --> 00:59:36,530 Tämä on objekti JavaScript. 1276 00:59:36,530 --> 00:59:42,110 Ja esineet ovat tavallaan Sveitsin armeijan Veitsi datarakenteesta että olet 1277 00:59:42,110 --> 00:59:43,900 voivat käyttää niitä monia asioita. 1278 00:59:43,900 --> 00:59:46,860 >> Täällä esimerkiksi olemme julistamisesta muuttuja nimeltä lainaus. 1279 00:59:46,860 --> 00:59:49,110 Tyyppi, että muuttujan on esine. 1280 00:59:49,110 --> 00:59:53,550 Voit ajatella tätä C struct että on avaimia ja arvoja. 1281 00:59:53,550 --> 00:59:55,250 Symboli on keskeinen. 1282 00:59:55,250 --> 00:59:57,350 FB on arvo, ilmeisesti osakesymbolille. 1283 00:59:57,350 --> 00:59:57,930 Comma. 1284 00:59:57,930 --> 01:00:02,180 Hinta on toinen keskeinen, ja sen arvo on ilmeisesti liukuluku, tai 1285 01:00:02,180 --> 01:00:06,510 numero yleisemmin JavaScript, on 49,26 dollaria. 1286 01:00:06,510 --> 01:00:09,030 >> Joten PHP ei ole - 1287 01:00:09,030 --> 01:00:12,980 emme ole nähneet PHP esineitä varsin näin, mutta näimme analoginen, 1288 01:00:12,980 --> 01:00:14,093 joka oli mitä? 1289 01:00:14,093 --> 01:00:14,980 >> Yleisö: [kuultavissa]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID MALAN: Assosiatiiviset taulukot. 1291 01:00:16,110 --> 01:00:19,990 Joten taas PHP on assosiatiiviset taulukot Niiden syntaksi on koskaan verran, 1292 01:00:19,990 --> 01:00:20,370 eri - 1293 01:00:20,370 --> 01:00:21,780 näimme hakasuluissa. 1294 01:00:21,780 --> 01:00:23,860 Näimme outoa nuolet symboleja. 1295 01:00:23,860 --> 01:00:27,330 JavaScript on esineitä, mutta tämä on lähinnä semanttinen ero ja 1296 01:00:27,330 --> 01:00:29,260 eri synonyymi nyt. 1297 01:00:29,260 --> 01:00:35,060 Kuitenkin, kuten syrjään, PHP on myös esineitä siten, että Java-ja muut 1298 01:00:35,060 --> 01:00:37,810 kielet ovat esineitä olio-ohjelmointi. 1299 01:00:37,810 --> 01:00:40,440 Mutta käytämme näitä vain tietojen tyypit nyt. 1300 01:00:40,440 --> 01:00:42,170 Esineitä ja assosiatiivisia taulukoita. 1301 01:00:42,170 --> 01:00:44,140 >> Tämä voisi tehdä hieman selvempi. 1302 01:00:44,140 --> 01:00:45,890 Tässä syy esine on hyödyllinen. 1303 01:00:45,890 --> 01:00:48,760 Kun haluat julistaa opiskelija, kuten Zamyla, voimme itse 1304 01:00:48,760 --> 01:00:52,630 kiteyttää niin sanoakseni sisällä että objektin kaarisulun aivan kuten 1305 01:00:52,630 --> 01:00:55,060 ennen koko nippu avaimia ja arvot täällä. 1306 01:00:55,060 --> 01:00:59,150 Meillä on tunnus, talo, ja nimi Zamyla, jonka jälkeen puolipistettä 1307 01:00:59,150 --> 01:01:00,690 tavallista lopussa. 1308 01:01:00,690 --> 01:01:04,840 >> Täällä alhaalla, tämä on hieman erilainen, mutta myös erittäin voimakas 1309 01:01:04,840 --> 01:01:05,690 näinä päivinä. 1310 01:01:05,690 --> 01:01:08,780 Tässä on jono, ja tiedän, että koska siellä hakasulkeen ylös 1311 01:01:08,780 --> 01:01:11,090 ylä-ja hakasulkeen alareunassa. 1312 01:01:11,090 --> 01:01:16,050 Ja tämä on joukko mitä tietoja kirjoita ilmeisesti JavaScript? 1313 01:01:16,050 --> 01:01:21,260 Tämä on joukko näyttää kuten kolme esinettä. 1314 01:01:21,260 --> 01:01:24,580 Ja tiedän, että se on esine vain koska aaltosulkeiden. 1315 01:01:24,580 --> 01:01:28,760 Ja huomaa siellä auki kihara ahdin, joitakin juttuja, lähellä kihara ahdin, pilkku, 1316 01:01:28,760 --> 01:01:31,180 sitten hieman lisää, pilkku, ja sitten hieman lisää. 1317 01:01:31,180 --> 01:01:33,800 Niin, että kolme argumenttia erotettu kaksi pilkuilla. 1318 01:01:33,800 --> 01:01:36,810 >> Joten tämä on joukko kolme esinettä. 1319 01:01:36,810 --> 01:01:39,940 Ja jokainen näistä kohteista näyttää olevan opiskelija tai henkilökunnan jäsen joidenkin 1320 01:01:39,940 --> 01:01:42,370 lajitella, joista jokaisella on tunnus, talon, ja nimi. 1321 01:01:42,370 --> 01:01:45,060 Mutta olen kutsunut tätä jotain nimeltään JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript Object Notation. 1323 01:01:47,450 --> 01:01:52,060 Ja tämä on tiedostotyyppi, joka todella on niin kovin suosittu ja 1324 01:01:52,060 --> 01:01:55,100 muodissa näinä päivinä, että jos kirjoitat sovellus, joka käyttää Facebook 1325 01:01:55,100 --> 01:01:59,150 API, Twitter API, oikeastaan ​​melkein kaikki API siellä näinä päivinä, 1326 01:01:59,150 --> 01:02:02,820 kuten jotkut CS50 oma, tiedot saat takaisin ei ole 1327 01:02:02,820 --> 01:02:04,720 old school CSV-muodossa. 1328 01:02:04,720 --> 01:02:06,780 >> Koska muistaa, että CSV on erittäin yksinkertainen. 1329 01:02:06,780 --> 01:02:10,230 Se on vain sarakkeet erotetaan pilkuilla. 1330 01:02:10,230 --> 01:02:13,190 JSON tiedot antaa sinulle enemmän metatietoja. 1331 01:02:13,190 --> 01:02:17,800 Se yhdistää avain jokaisen arvon niin ne eivät tarvitse vain olettaa, että 1332 01:02:17,800 --> 01:02:22,460 zeroth sarake on yksi arvo, sarake yksi on toinen, sarake kaksi on toinen. 1333 01:02:22,460 --> 01:02:26,790 Kaikki JSON esine tässä on tavallaan itse kuvaavat, koska jokainen 1334 01:02:26,790 --> 01:02:30,940 yksi nimiä tiedosto on kirjaimellisesti nimen edessä se 1335 01:02:30,940 --> 01:02:32,510 lainattu merkkijono. 1336 01:02:32,510 --> 01:02:34,950 >> Joten katsomaan pari esimerkkiä tästä. 1337 01:02:34,950 --> 01:02:36,800 Anna minun mennä laitteen. 1338 01:02:36,800 --> 01:02:41,000 Ja anna minun mennä meidän vhost hakemiston yleisölle. 1339 01:02:41,000 --> 01:02:45,590 Ja anna minun mennä JavaScript-hakemistossa. 1340 01:02:45,590 --> 01:02:49,610 Ja mennään eteenpäin ja avata dom-0.html, jossa DOM tarkoittaa vain sitä, 1341 01:02:49,610 --> 01:02:51,010 Document Object Model. 1342 01:02:51,010 --> 01:02:53,490 Se puu tavaraa, johon Aiemmin viittasin. 1343 01:02:53,490 --> 01:02:54,950 >> Ja haluaisin ehdottaa seuraavaa. 1344 01:02:54,950 --> 01:02:57,720 Tässä web-sivun, jonka elin on melko yksinkertainen. 1345 01:02:57,720 --> 01:03:00,170 Joten täällä alareunassa, huomaa Minulla muodossa. 1346 01:03:00,170 --> 01:03:01,500 Olemme nähneet kuin ennen. 1347 01:03:01,500 --> 01:03:07,600 Siinä on kaksi tuloa, joista yksi on ID nimi, joista yksi on eräänlainen 1348 01:03:07,600 --> 01:03:09,830 esittää, ja ensimmäinen yhden tyyppi on teksti. 1349 01:03:09,830 --> 01:03:11,900 Joten tämä todella kuulostaa melko yksinkertainen. 1350 01:03:11,900 --> 01:03:13,090 >> Mennään tästä. 1351 01:03:13,090 --> 01:03:15,390 Mennään takaisin tälle sivulle tästä. 1352 01:03:15,390 --> 01:03:21,030 Mennään localhost, ja mennä JavaScript-hakemisto, ja siirry 1353 01:03:21,030 --> 01:03:24,640 dom-0, ja tässä meillä on tässä muodossa. 1354 01:03:24,640 --> 01:03:26,550 Niin, että ilmeisesti Kaikki tämä sivu ei. 1355 01:03:26,550 --> 01:03:28,740 Se on nimi-kenttään Lähetä-painiketta. 1356 01:03:28,740 --> 01:03:30,340 Mutta en aio käyttää PHP täällä. 1357 01:03:30,340 --> 01:03:34,310 Aion tehdä kaiken asiakkaan puolella niin sanotusti JavaScript seuraavasti. 1358 01:03:34,310 --> 01:03:39,100 >> Huomaa, että olen todellakin antanut nimen alalla tämä tulo ainutlaatuinen 1359 01:03:39,100 --> 01:03:42,350 tunniste, joka tosiasiallisesti pelasta minut jonkin aikaa hetki. 1360 01:03:42,350 --> 01:03:45,480 Ja huomaa Olen otettu toinen tag pää minun web-sivun, 1361 01:03:45,480 --> 01:03:46,565  tag. 1362 01:03:46,565 --> 01:03:50,120 >> Joten se on tässä mielessä, että JavaScript on client-side ohjelmointikieli. 1363 01:03:50,120 --> 01:03:55,020 Tässä tapauksessa, kuten CSS, olen koonnut se suoraan sisällä minun HTML. 1364 01:03:55,020 --> 01:03:58,810 Mutta huomaa olen ilmoittanut toiminto joka näyttää vähän kuin PHP 1365 01:03:58,810 --> 01:04:01,530 syntaktisesti, mutta tämä on oikeastaan JavaScript, koska uudelleen, se on 1366 01:04:01,530 --> 01:04:03,920 client-side selaimessa. 1367 01:04:03,920 --> 01:04:07,590 Ja ottaa arvata, mitä tämä tulee tehdä, vaikka osa syntaksin 1368 01:04:07,590 --> 01:04:09,338 tässä on uusi. 1369 01:04:09,338 --> 01:04:11,760 >> Yleisö: Tervehdi kuka. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID MALAN: Se tulee tervehtimään sille, joka vierailee tällä sivulla. 1371 01:04:14,020 --> 01:04:15,120 Niin miten? 1372 01:04:15,120 --> 01:04:18,070 >> Joten ilmoitusta, se kääntyy pois JavaScript siellä alert ()-funktiota. 1373 01:04:18,070 --> 01:04:22,840 Tämä on hyvin murheelliset toiminto oikeastaan ​​vain taipumus ärsyttää käyttäjiä. 1374 01:04:22,840 --> 01:04:25,440 Se ei ole yksi sinun pitäisi todella käyttää yleensä, mutta se on nopea ja likainen 1375 01:04:25,440 --> 01:04:27,710 tapa tavallaan tulostaa jotain on graafinen 1376 01:04:27,710 --> 01:04:29,180 käyttöliittymä, kuten selaimen. 1377 01:04:29,180 --> 01:04:31,400 Huomatkaa, että minulla string puolilainausmerkeissä. 1378 01:04:31,400 --> 01:04:36,010 On käynyt ilmi, että toisin kuin C, JavaScript voi todella olet käyttää yhden 1379 01:04:36,010 --> 01:04:38,730 lainauksia, ja suoraan sanottuna se on vain eräänlainen ja tyylillinen yleissopimuksen keskuudessa 1380 01:04:38,730 --> 01:04:41,180 JavaScript ohjelmoijat käyttää puolilainausmerkkejä. 1381 01:04:41,180 --> 01:04:43,750 PHP, ne todella ovat hieman eri merkitys. 1382 01:04:43,750 --> 01:04:45,810 Mutta nyt, juuri tietää, että se on ainoa syy. 1383 01:04:45,810 --> 01:04:49,270 Yleissopimus JavaScript on usein Käytä puolilainausmerkkejä, mutta voisimme käyttää 1384 01:04:49,270 --> 01:04:50,950 lainausmerkkeihin molemmissa paikoissa samoin. 1385 01:04:50,950 --> 01:04:52,610 >> Joten tämä on mielenkiintoista. 1386 01:04:52,610 --> 01:04:56,430 Pyydä viimeinen kerta, kun oli, että kuva ruudulla, joka veti puu 1387 01:04:56,430 --> 01:04:59,720 jossa piti HTML solmu, ja pääsolmussa ja kehon solmu, 1388 01:04:59,720 --> 01:05:00,800 ja sitten tekstiä. 1389 01:05:00,800 --> 01:05:04,700 Mutta oli yksi erityinen solmu hyvin alkuun, että kutsuin asiakirja. 1390 01:05:04,700 --> 01:05:08,260 No, se kääntyy pois JavaScript kaikki kun kirjoittaa ohjelman JavaScript 1391 01:05:08,260 --> 01:05:11,040 selaimessa, voit käyttää erityinen globaali muuttuja. 1392 01:05:11,040 --> 01:05:14,130 Hengeltään samanlainen PHP: n Superglobaalit, tämä kutsutaan 1393 01:05:14,130 --> 01:05:16,050 kaikki pieniä asiakirja. 1394 01:05:16,050 --> 01:05:21,480 >> Se on kuin struct, mutta tämä struct myös toimintoja sisälle. 1395 01:05:21,480 --> 01:05:23,790 Joten C struct vain on tietoa tyypillisesti. 1396 01:05:23,790 --> 01:05:29,060 Mutta JavaScript objektin tämä teknisesti on myös toimintoja, 1397 01:05:29,060 --> 01:05:31,830 joka tunnetaan myös menetelmiä, sen sisälle. 1398 01:05:31,830 --> 01:05:35,750 Ja voit soittaa toiminnon sisällä Tämä esine aivan kirjaimellisesti tekee 1399 01:05:35,750 --> 01:05:39,610 nimi, piste, ja sitten nimi toiminto tai uudelleen menetelmällä. 1400 01:05:39,610 --> 01:05:41,160 Se on vain synonyymi, todella. 1401 01:05:41,160 --> 01:05:42,450 >> Ja mitä tämä toiminto tekee? 1402 01:05:42,450 --> 01:05:43,840 Voit sellaista arvaus sen nimen. 1403 01:05:43,840 --> 01:05:45,590 Hanki elementin ID. 1404 01:05:45,590 --> 01:05:50,040 Joten tämä tulee etsiä web-sivun, etsiä, että puu, etsii 1405 01:05:50,040 --> 01:05:55,210 mitä solmu, AKA elementti, on yksilöllinen tunnus lainaus lainaus nimi. 1406 01:05:55,210 --> 01:05:56,560 Ja sitten mitä aion tehdä? 1407 01:05:56,560 --> 01:06:00,350 Aion saada arvon sisällä että solmu puussa, ja aion 1408 01:06:00,350 --> 01:06:02,580 jotenkin tervehtimään, että nimi. 1409 01:06:02,580 --> 01:06:05,360 >> Joten ota arvata, vaikka olemme ei nähnyt tätä vielä, mitä plus 1410 01:06:05,360 --> 01:06:07,396 symbolit tarkoittavat täällä ja täällä luultavasti? 1411 01:06:07,396 --> 01:06:08,230 >> Yleisö: Concatenate. 1412 01:06:08,230 --> 01:06:09,220 >> DAVID MALAN: Concatenate. 1413 01:06:09,220 --> 01:06:11,290 Aivan, ja nämä ovat vain tavallaan suunnittelun päätöksiä 1414 01:06:11,290 --> 01:06:12,280 ihmiset tekivät vuotta sitten. 1415 01:06:12,280 --> 01:06:15,190 PHP, voit liität asioita pisteitä. 1416 01:06:15,190 --> 01:06:18,800 C, voit hypätä läpi useita vanteet ja soittaa toimintoja, kuten strcopy () tai 1417 01:06:18,800 --> 01:06:20,600 strcat () tai muita vastaavia toimintoja. 1418 01:06:20,600 --> 01:06:22,060 Mutta JavaScript, käytät plussia. 1419 01:06:22,060 --> 01:06:24,770 Joten tämä on vain liittämällä kolmea asiaa - 1420 01:06:24,770 --> 01:06:27,850 Hei, nimi, ja sitten huutomerkki. 1421 01:06:27,850 --> 01:06:30,390 >> Joten milloin ja miksi on tämä toiminto nimeltään vaikka? 1422 01:06:30,390 --> 01:06:33,150 No, arvaa alkaen HTML alareunassa. 1423 01:06:33,150 --> 01:06:35,810 Miksi tervehtiä () kutsutaan, tai kun? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Ilmeisesti, koska paras voin kertoa, on esittää, kun tämä lomake lähetetään, 1426 01:06:44,030 --> 01:06:47,200 Aion tehdä mitä on sisällä näitä lainauksia. 1427 01:06:47,200 --> 01:06:50,900 Ja erityisesti, aion soittaa tervehtiä () ja sitten palauttaa false. 1428 01:06:50,900 --> 01:06:53,090 >> No, katsotaanpa mitä net vaikutus tässä on ensimmäinen. 1429 01:06:53,090 --> 01:06:58,290 Joten anna minun mennä eteenpäin ja kirjoita vaikkapa Loren, Lähetä. 1430 01:06:58,290 --> 01:06:59,440 Hei Loren. 1431 01:06:59,440 --> 01:07:02,990 Katsotaan ehkä tämä oli vain onnekas täytäntöönpanoa. 1432 01:07:02,990 --> 01:07:03,200 Ehei. 1433 01:07:03,200 --> 01:07:05,990 Joten se kirjoittamalla ulos riippumatta nimetä Olen itse laittaa sinne. 1434 01:07:05,990 --> 01:07:07,970 >> Mutta huomaa, mitä ei ole muuttumassa. 1435 01:07:07,970 --> 01:07:10,360 URL on edelleen dom-0.html. 1436 01:07:10,360 --> 01:07:11,820 Ei ole register.php. 1437 01:07:11,820 --> 01:07:13,110 Ei ole toista tiedostoa. 1438 01:07:13,110 --> 01:07:14,930 Ei ole toiminnan ominaisuus. 1439 01:07:14,930 --> 01:07:19,720 Joten mitä tämä paluu väärä oletettavasti tekee? 1440 01:07:19,720 --> 01:07:23,660 Miksi olen soittamalla tervehtiä () ja sitten paluu false luultavasti? 1441 01:07:23,660 --> 01:07:26,420 Mitä yleensä tapahtuu, kun klikkaat Jätä lomakkeella, että vaikka meillä on 1442 01:07:26,420 --> 01:07:27,854 nähdään viime viikolla? 1443 01:07:27,854 --> 01:07:29,900 >> Yleisö: [kuultavissa]. 1444 01:07:29,900 --> 01:07:30,860 >> DAVID MALAN: Se menee jonnekin, eikö? 1445 01:07:30,860 --> 01:07:32,720 Se menee joitakin kohde-URL. 1446 01:07:32,720 --> 01:07:34,120 Mutta en halua että näin tapahtuu täällä. 1447 01:07:34,120 --> 01:07:37,620 Haluan verkkosivustoa täysin dynaaminen, kuten Gmail, jossa kerran olet 1448 01:07:37,620 --> 01:07:38,650 siellä, pysyt siellä. 1449 01:07:38,650 --> 01:07:42,900 URL-osoite ei muutu niin, että osoittaa koko sivun uudelleen lataamista. 1450 01:07:42,900 --> 01:07:46,680 Pikemminkin haluan vain muuttaa jotain kuin painaisi jotain 1451 01:07:46,680 --> 01:07:48,320 tässä näytössä. 1452 01:07:48,320 --> 01:07:49,630 >> No saanen puhdista jopa hieman. 1453 01:07:49,630 --> 01:07:55,370 Saanen avata ei dom-0, mutta haluan avata dom-2. 1454 01:07:55,370 --> 01:07:57,350 Just niin olet nähnyt joitakin syntaksin täällä. 1455 01:07:57,350 --> 01:08:02,080 >> On käynyt ilmi, että mitä vain ei käyttää raaka JavaScript. 1456 01:08:02,080 --> 01:08:04,420 Joten tämä on todella kieli JavaScript. 1457 01:08:04,420 --> 01:08:07,340 Jotkut teistä ehkä tietävät kirjasto nimeltään jQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Joten jQuery ei ole sama asia kuin JavaScript. 1459 01:08:09,980 --> 01:08:14,110 Se on vain kirjasto, joka todella fiksu kaveri kirjoitti ja suosituksi tällainen 1460 01:08:14,110 --> 01:08:18,100 että lähes kaikki maailman nyt käyttää jQuery käytettäessä JavaScript. 1461 01:08:18,100 --> 01:08:20,890 Ja ensi silmäyksellä, rehellisesti, se näyttää hieman arvoituksellinen. 1462 01:08:20,890 --> 01:08:24,990 Mutta voit löytää, varsinkin jos menet siellä teidän opinnäytetyön web 1463 01:08:24,990 --> 01:08:29,029 kehitys, huomaat, että tämä puhdistaa asioita ja säästää melko 1464 01:08:29,029 --> 01:08:30,229 muutaman rivin koodia. 1465 01:08:30,229 --> 01:08:33,189 >> Joten haluan vain vilkaista miten tämä lomake toimii. 1466 01:08:33,189 --> 01:08:35,664 Huomaa, mitä minä poistaa ilmeisesti minun HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Ei ole lähetettäessä handler niin sanoakseni. 1469 01:08:40,630 --> 01:08:41,470 Ei ole ominaisuus. 1470 01:08:41,470 --> 01:08:43,359 Koska tiedät, mitä En todella? 1471 01:08:43,359 --> 01:08:45,640 Tunsin olimme laskussa vanhoihin tapoihin siellä. 1472 01:08:45,640 --> 01:08:49,340 Aivan kuten se oli alkanut tuntea huolimaton sekoittua sekä CSS 1473 01:08:49,340 --> 01:08:52,149 HTML, koska olet sellainen heitto eri kielellä ympäri 1474 01:08:52,149 --> 01:08:56,180 paikka, samoin ei tämä alkaa tuntua kuten huono tie mennä alas, jos 1475 01:08:56,180 --> 01:09:01,069 Laitan JavaScript-koodin sisällä minun HTML sijaan factoring sitä. 1476 01:09:01,069 --> 01:09:02,279 >> Niin, että opimme tästä. 1477 01:09:02,279 --> 01:09:05,080 Dom-2.html, olen factoring sitä. 1478 01:09:05,080 --> 01:09:07,399 Ja teen asioita hieman eri tavalla. 1479 01:09:07,399 --> 01:09:09,630 Nyt aion heiluttaa käsiäni , mitä tämä todella 1480 01:09:09,630 --> 01:09:10,590 alla huppu. 1481 01:09:10,590 --> 01:09:14,210 Mutta juuri nyt olettaa, että ensimmäinen rivi koodia tässä kirjastossa 1482 01:09:14,210 --> 01:09:18,170 sanotun jQuery tarkoittaa vain sitä, kun asiakirja on valmis, toimi seuraavasti. 1483 01:09:18,170 --> 01:09:20,080 >> Koska web-sivuja voi kestää jonkin aikaa ladata. 1484 01:09:20,080 --> 01:09:23,029 Saatat olla hidas internet yhteydessä, ja se saattaa pyöriä 1485 01:09:23,029 --> 01:09:25,290 ja spinning, ja lopulta se on ladattu. 1486 01:09:25,290 --> 01:09:29,060 Koodirivin sanoo vain odottaa koko sivu on valmis, asiakirja 1487 01:09:29,060 --> 01:09:31,189 on valmis, ennen kuin se täyttää tämän koodin. 1488 01:09:31,189 --> 01:09:34,390 >> Ja nyt ilmoitus, tämä on luultavasti hyödyllisin ensimmäinen 1489 01:09:34,390 --> 01:09:36,189 ottaa pois jQuery. 1490 01:09:36,189 --> 01:09:42,140 Tämä tässä on hyvin samanlainen henki Tämän paljon kauemmin linja täällä. 1491 01:09:42,140 --> 01:09:46,920 Kun taas raaka JavaScript-koodia, on olemassa asiakirja globaali objekti 1492 01:09:46,920 --> 01:09:50,460 on toiminto, jota kutsutaan getElementById (), ihmiset, jotka kirjoittivat 1493 01:09:50,460 --> 01:09:55,720 jQuery yksinkertaistettu, että vain sanoa dollarin merkki, ja sitten sisällä 1494 01:09:55,720 --> 01:10:00,250 Suluissa laittaa kaksi lainaa, ja sitten laittaa hash symboli ja sen jälkeen 1495 01:10:00,250 --> 01:10:02,250 yksilöllinen tunnus haluat napata. 1496 01:10:02,250 --> 01:10:06,170 Joten tämä vastaa document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Samaan aikaan. Submit tarkoittaa vain sitä, on jättämisen tahansa muodossa olet 1498 01:10:11,090 --> 01:10:14,240 viittaa vasemmalla, mene eteenpäin ja toteuttaa tämä. 1499 01:10:14,240 --> 01:10:16,600 Mutta tämä on nyt uteliaisuus liikaa. 1500 01:10:16,600 --> 01:10:19,560 Outoa, mitä Olen korostanut täällä? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Ei vain se sellainen syntaktisesti uusi, siellä on myös jotain puuttuu. 1503 01:10:28,594 --> 01:10:29,558 >> Yleisö: Se on vain kutsutaan funktio? 1504 01:10:29,558 --> 01:10:31,970 Se ei ole kutsuttu hälytys? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID MALAN: Joo. 1506 01:10:32,440 --> 01:10:35,450 No, niin hälytys () on alaspäin täällä, olla oikeudenmukainen. 1507 01:10:35,450 --> 01:10:39,520 Mutta ei ole mainintaa nimi, kuten tiedätte, foo tai 1508 01:10:39,520 --> 01:10:40,980 jotain täällä. 1509 01:10:40,980 --> 01:10:43,830 Ja todellakin, tämä on yksi niistä ominaisuuksista, JavaScript-se on aivan 1510 01:10:43,830 --> 01:10:45,370 tehokas, mutta myös aivan uutta. 1511 01:10:45,370 --> 01:10:47,460 Ja PHP on itse asiassa tämän hyvin. 1512 01:10:47,460 --> 01:10:49,500 >> Anna minun mennä eteenpäin ja tehdä jotain todella nopeasti. 1513 01:10:49,500 --> 01:10:52,030 Anna minun mennä eteenpäin ja laittaa tämän tänne. 1514 01:10:52,030 --> 01:10:52,600 Anna minun tehdä tämä. 1515 01:10:52,600 --> 01:10:53,690 Toiminto. 1516 01:10:53,690 --> 01:10:56,455 Kutsun tätä handler (). 1517 01:10:56,455 --> 01:10:58,290 Käsittelyfunktio niin sanotusti. 1518 01:10:58,290 --> 01:11:00,110 Jotain, joka käsittelee joitakin toimintaa. 1519 01:11:00,110 --> 01:11:02,700 Saanen siivota minun sisennys. 1520 01:11:02,700 --> 01:11:04,380 Ja laittaa tämän tänne. 1521 01:11:04,380 --> 01:11:06,090 Ja esittää, että täällä. 1522 01:11:06,090 --> 01:11:06,470 Jep. 1523 01:11:06,470 --> 01:11:07,060 OK. 1524 01:11:07,060 --> 01:11:10,300 >> Joten nyt minulla on toiminto nimeltään ohjaaja (), että en todellakaan tiedä 1525 01:11:10,300 --> 01:11:10,890 mitä se tekee vielä. 1526 01:11:10,890 --> 01:11:12,710 Se vain on edelleen, että tavaraa. 1527 01:11:12,710 --> 01:11:13,900 Oho. 1528 01:11:13,900 --> 01:11:15,820 Vei liikaa. 1529 01:11:15,820 --> 01:11:18,490 Tehdään tämä. 1530 01:11:18,490 --> 01:11:18,990 Selvä. 1531 01:11:18,990 --> 01:11:20,240 Anteeksi. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Selvä. 1534 01:11:23,690 --> 01:11:24,720 Anna minun tehdä tämä. 1535 01:11:24,720 --> 01:11:25,020 OK. 1536 01:11:25,020 --> 01:11:27,040 Se näyttää hienolta ja suorat eteenpäin nyt. 1537 01:11:27,040 --> 01:11:29,090 Anna minun tehdä tämä. 1538 01:11:29,090 --> 01:11:29,860 Tee tämä. 1539 01:11:29,860 --> 01:11:30,950 Ja OK. 1540 01:11:30,950 --> 01:11:33,080 Joten nyt, nyt laittaa tämän tänne. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Ei enää ohjelmointi lennossa. 1543 01:11:37,270 --> 01:11:37,900 OK. 1544 01:11:37,900 --> 01:11:40,000 >> Joten nyt mennään takaisin jossa tarina alkoi. 1545 01:11:40,000 --> 01:11:43,530 Aiemmin sanoin, että tämä linja täällä tarkoittaa, kun asiakirja on valmis, mene 1546 01:11:43,530 --> 01:11:44,380 eteenpäin ja tehdä tämän. 1547 01:11:44,380 --> 01:11:45,660 Mitä haluat tehdä? 1548 01:11:45,660 --> 01:11:49,070 No nimenomaan, haluan mennä eteenpäin ja tehdä seuraavasti. 1549 01:11:49,070 --> 01:11:53,700 Suorita tämä rivi koodia, ja sitten mitä haluan sinun tekevän on kutsua tätä 1550 01:11:53,700 --> 01:11:56,370 toimi, kun lomake lähetetään. 1551 01:11:56,370 --> 01:11:57,730 >> Nyt tämä on mitä mielenkiintoista. 1552 01:11:57,730 --> 01:11:59,170 Tämä ei sinällään ole toimintoa. 1553 01:11:59,170 --> 01:12:02,540 Huomaa en ole laskemisesta suluissa Tässä tavalliseen tapaan. 1554 01:12:02,540 --> 01:12:06,800 Olen kirjaimellisesti kulkee toiminto nimeltään ohjaaja () toisen toiminnon 1555 01:12:06,800 --> 01:12:10,800 kutsutaan esittämään () kuin väitteen vaikka se on kuin muuttuja. 1556 01:12:10,800 --> 01:12:14,290 Ja tämä on yksi ominaisuuksista JavaScript on toiminnot itse 1557 01:12:14,290 --> 01:12:15,710 ovat oikeastaan ​​vain esineitä. 1558 01:12:15,710 --> 01:12:18,350 Itse asiassa, ne ovat oikeastaan ​​vain muuttujat jonkinlaisia. 1559 01:12:18,350 --> 01:12:21,340 Ja jos toiminnon nimi on ohjaaja (), ei ole mitään syytä en voi 1560 01:12:21,340 --> 01:12:23,390 suorittaa sen argumentiksi täällä. 1561 01:12:23,390 --> 01:12:27,530 Ja tämä tarkoittaa, kun lomake ID-demo on 1562 01:12:27,530 --> 01:12:29,320 toimitettu, kutsuvat tätä toimintoa. 1563 01:12:29,320 --> 01:12:32,770 >> Mutta jos nyt perua kaikki tämän, Miksi sitten olen ehkä tehdä 1564 01:12:32,770 --> 01:12:34,850 tämä hetki sitten? 1565 01:12:34,850 --> 01:12:36,840 No, tämä on anonyymi funktio. 1566 01:12:36,840 --> 01:12:41,080 Koska rehellisesti, tajusin miksi olen kiusaa tuhlata aikaa julistamisesta 1567 01:12:41,080 --> 01:12:45,540 toiminto nimeltään ohjaaja () vain soittaa se yksi ja vain yksi paikka? 1568 01:12:45,540 --> 01:12:48,640 Jos en tarvitse nimeä, enkä täytyy kutsua sitä useampaan kuin yhteen paikkaan, 1569 01:12:48,640 --> 01:12:51,200 Haluan vain toteuttaa toiminto juuri siellä missä sitä tarvitsen. 1570 01:12:51,200 --> 01:12:55,190 Ja niin JavaScript ja PHP-tuki, mitä ovat nimeltään anonyymi toiminnot 1571 01:12:55,190 --> 01:12:57,900 haluan tehdä juuri näin täällä. 1572 01:12:57,900 --> 01:12:59,570 >> Mutta me vain esimakua. 1573 01:12:59,570 --> 01:13:02,430 Katsotaanpa kiusaa vain pari lopullinen esimerkkejä tästä. 1574 01:13:02,430 --> 01:13:04,600 >> Jos menen quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Huomaa, että tämä on todella PHP toiminto, PHP-ohjelma, jonka kirjoitin 1577 01:13:11,870 --> 01:13:15,270 että odottaa HTTP parametri nimeltään symboli, ja voin kulkea 1578 01:13:15,270 --> 01:13:16,730 arvo kuin FB. 1579 01:13:16,730 --> 01:13:20,010 Ja jos me todella katsoa lähde koodia, tämä kysely ilmainen sivusto 1580 01:13:20,010 --> 01:13:23,680 nimeltään Yahoo Finance, kuten p-sarja seitsemän, ja se palaa minua 1581 01:13:23,680 --> 01:13:26,580 jotain ilmeisesti muodossa eli on JSON - 1582 01:13:26,580 --> 01:13:28,010 JavaScript Object Notation. 1583 01:13:28,010 --> 01:13:28,810 Se on vain esine. 1584 01:13:28,810 --> 01:13:32,500 Huomaa aaltosulkeiden, lainauksia, paksusuolen ja pilkkuja. 1585 01:13:32,500 --> 01:13:34,720 >> Nyt puolestaan, tämä on aika siistiä. 1586 01:13:34,720 --> 01:13:38,520 Koska en voi varmaan käyttää ohjelmointi kieli tuottaa URL 1587 01:13:38,520 --> 01:13:40,370 tämän näköisiä dynaamisesti, eikö? 1588 01:13:40,370 --> 01:13:43,340 Voin muuttaa Google ja saada takaisin Googlen 1589 01:13:43,340 --> 01:13:47,930 osakekurssi $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Katsotaanpa, jos emme voi käyttää tätä nyt. 1591 01:13:49,640 --> 01:13:56,590 >> Anna minun mennä ajax-0 täällä, joka näyttää seuraavalta. 1592 01:13:56,590 --> 01:13:59,750 Se on vain sivusto, joka on lomake-painiketta. 1593 01:13:59,750 --> 01:14:05,860 Saanen tässä mennä eteenpäin ja kirjoittaa YHOO Yahoon osakesymbolille, klikkaa Get 1594 01:14:05,860 --> 01:14:10,530 Lainaus, ja nyt huomaa olen saanut valppaana 32.86. 1595 01:14:10,530 --> 01:14:14,050 >> Saanen itse mennä harrastaja versio Tämän sivun versio kaksi, ja 1596 01:14:14,050 --> 01:14:17,530 kirjoita sanotaanko Microsoft, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Pyydä tarjous. 1598 01:14:18,410 --> 01:14:19,850 Ja nyt huomaa, ei hälytys. 1599 01:14:19,850 --> 01:14:22,770 Huomaa jossa sanotaan hinta määritellään? 1600 01:14:22,770 --> 01:14:27,060 On yksinkertaisin esimerkkejä siitä, että vihjaa mitä Gchat ja Facebook 1601 01:14:27,060 --> 01:14:30,070 Keskustella, ja Gmail ja muut tällaiset sivustot tekevät by tosiasiallisesti 1602 01:14:30,070 --> 01:14:31,290 muuttamalla sivun. 1603 01:14:31,290 --> 01:14:31,800 >> Huomata tämän. 1604 01:14:31,800 --> 01:14:33,120 Saanen lataa sivu. 1605 01:14:33,120 --> 01:14:35,080 Saanen avata Chromen Inspector. 1606 01:14:35,080 --> 01:14:36,890 Anna minun mennä elementtejä välilehti tänne. 1607 01:14:36,890 --> 01:14:42,310 Nyt huomaa, jos en zoomata tänne ja avaa tämä ylös, huomaa, että tämä on minun 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - minun Document Object Model. 1609 01:14:44,500 --> 01:14:45,920 Tämä on minun HTML. 1610 01:14:45,920 --> 01:14:48,750 Mutta nyt huomaa, vaikka se menee olla hieman vaikea nähdä sitä sekä 1611 01:14:48,750 --> 01:14:52,080 paikassa samaan aikaan, jos kirjoitan FB täällä, katsella alhaalta 1612 01:14:52,080 --> 01:14:54,110 on näytön vain. 1613 01:14:54,110 --> 01:14:57,720 >> Se on todella muuttuu minun HTML lennossa. 1614 01:14:57,720 --> 01:15:01,670 Ja se tekee tämän yksinkertaisesti tekemällä jotain tällaista. 1615 01:15:01,670 --> 01:15:06,800 Jos Avaan ajax-2, huomaa täytäntöönpanosta jotain niin seksikäs kuin 1616 01:15:06,800 --> 01:15:09,560 että vaikka se on melko ruma, mutta yhtä kehittyneitä kuin 1617 01:15:09,560 --> 01:15:11,910 toiminnallisesti, se on jonkin verran HTML alareunassa. 1618 01:15:11,910 --> 01:15:13,810 Mutta huomaa Käytin tag. 1619 01:15:13,810 --> 01:15:16,640 Olemme ole käyttäneet tätä ennen, mutta tämä on kuten, mutta se ei pakota 1620 01:15:16,640 --> 01:15:17,840 kaiken päälle uusi rivi. 1621 01:15:17,840 --> 01:15:20,830 Se vain tekee suorakulmainen alue samalla linjalla olennaisesti. 1622 01:15:20,830 --> 01:15:22,870 >> Huomaa, että annoin sen ID hinnan. 1623 01:15:22,870 --> 01:15:26,800 Ja se kääntyy pois käyttämällä samaa JavaScript-kirjaston, minulla on tehtävä 1624 01:15:26,800 --> 01:15:30,440 kutsutaan quote (), joka kutsutaan aina lomake lähetetään. 1625 01:15:30,440 --> 01:15:31,800 Ja mitä olen tekemässä on tämä. 1626 01:15:31,800 --> 01:15:35,730 Olen julistaa muuttuja JavaScript kutsutaan url, säästää arvo 1627 01:15:35,730 --> 01:15:38,650 quote.php? symbol =. 1628 01:15:38,650 --> 01:15:44,220 Toisin sanoen, minä olen alkanut valmistelemaan HTTP-pyynnön, ja sitten 1629 01:15:44,220 --> 01:15:49,250 Olen liittämällä päälle, että plus mitä elementti tunnus 1630 01:15:49,250 --> 01:15:54,190 symbolin on, mikä ilmoitus on ettei tekstikenttään oikea tänne. 1631 01:15:54,190 --> 01:15:56,630 Joten aivan kuten meillä oli muodoissa menneisyydessä. 1632 01:15:56,630 --> 01:16:01,450 >> Ja sitten käy ilmi, jQuery, jos soittaa. val (), joka kutsuu ja val 1633 01:16:01,450 --> 01:16:05,900 toiminto, arvo-toiminto, joka saa mitä käyttäjä on kirjoittanut sisään 1634 01:16:05,900 --> 01:16:08,920 Ja sitten kaikki verkkoliikenne että tapahtuu, on tämä. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> Ja syrjään, dollarin merkki on vain lyhennetty merkintätapa. 1637 01:16:13,720 --> 01:16:16,860 Se on todella jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Vie minut JSON tähän URL, ja kun pyyntö tulee takaisin, kutsuvat tätä 1639 01:16:21,520 --> 01:16:26,550 toiminto ja kulkea argumenttina mitä tuli takaisin palvelimelta. 1640 01:16:26,550 --> 01:16:31,205 >> Eli toisin sanoen, jos menen takaisin selain, ja menen takaisin quote.php, 1641 01:16:31,205 --> 01:16:35,590 mitä selain tekee on tulossa tämä kimpale tietoja. 1642 01:16:35,590 --> 01:16:38,930 Ja kun menen tällä sivulla täällä, huomaa, jos me sen sijaan mennä verkkoon 1643 01:16:38,930 --> 01:16:43,820 välilehti ja poista se, ja kirjoita jotain GOOG Google ja Get 1644 01:16:43,820 --> 01:16:46,340 Lainaus, huomaa sivun ei muuttunut. 1645 01:16:46,340 --> 01:16:50,990 Mutta HTTP pyyntö on tehty, ja mitä tuli takaisin tänne, jos katsomme 1646 01:16:50,990 --> 01:16:56,130 vaste on koko joukko JSON että siirryimme lopuksi 1647 01:16:56,130 --> 01:16:58,070 tämä yksinkertainen linja täällä. 1648 01:16:58,070 --> 01:17:00,150 >> Data on mitä on mennyt palvelimelta. 1649 01:17:00,150 --> 01:17:02,120 Hinta on nimi avain välitän. 1650 01:17:02,120 --> 01:17:05,230 Joten data.price antaa minulle. 1651 01:17:05,230 --> 01:17:07,540 >> Nyt puolestaan, ja tämä on viimeinen esimerkki. 1652 01:17:07,540 --> 01:17:09,280 Voit tehdä vielä enemmän sivulle. 1653 01:17:09,280 --> 01:17:12,440 Yksi todella hyvin kaksi. 1654 01:17:12,440 --> 01:17:14,780 Voimme tuoda takaisin merkitä, jos muistat tämän. 1655 01:17:14,780 --> 01:17:15,850 Se JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Me voimme tehdä sen. 1657 01:17:17,110 --> 01:17:17,690 Erittäin jännittävä. 1658 01:17:17,690 --> 01:17:18,800 Jätämme että jännitysnäytelmä. 1659 01:17:18,800 --> 01:17:21,590 >> Mutta enemmän jännittävän, voit tehdä asioita, kuten tämä. 1660 01:17:21,590 --> 01:17:25,940 Jos menen geolocation-1, se kääntyy pois että Chrome tietää, että olemme 1661 01:17:25,940 --> 01:17:30,672 leveyttä pituusaste 42.37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Joten on vielä enemmän siellä käytettävissänne. 1663 01:17:32,940 --> 01:17:34,290 Mutta siitä lisää ensi viikolla. 1664 01:17:34,290 --> 01:17:35,540 Nähdään maanantaina. 1665 01:17:35,540 --> 01:17:37,558