1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Viikko 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Harvardin yliopisto] 3 00:00:04,740 --> 00:00:07,170 [Tämä on CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Selvä. Tervetuloa takaisin. Tämä on CS50, ja tämä on alku viikon 9. 5 00:00:12,350 --> 00:00:16,600 Tänään keskitytään erityisesti suunnitteluun, ei enää yhteydessä C 6 00:00:16,600 --> 00:00:20,010 mutta yhteydessä PHP ja vähän SQL ja vähän JavaScript, 7 00:00:20,010 --> 00:00:23,730 erityisesti kohti loppua sekä PSET 7 ja myös oman opinnäytetyön. 8 00:00:23,730 --> 00:00:26,310 Itse asiassa, jos olet tuolloin lopullisessa projektissa 9 00:00:26,310 --> 00:00:30,100 jossa oletettavasti on tunti tai niin sitten olet ainakin aloittanut pohtimaan 10 00:00:30,100 --> 00:00:33,730 lopulliseen projektin ja olet ajatellut haluat tehdä yhteistyötä 1 tai 2 luokkatoverit, 11 00:00:33,730 --> 00:00:36,150 Jos sinulla on ongelmia yhteyden kanssa sanoi luokkatoverit, 12 00:00:36,150 --> 00:00:40,570 vapaasti täyttää lomakkeen osoitteessa cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 Se vain kysyy, kuka olet, mitä projekti olet ajatellut, 14 00:00:42,880 --> 00:00:44,870 missä asut vain logistisista syistä. 15 00:00:44,870 --> 00:00:49,510 Ja sitten jos haluat pitää silmällä yli ensi viikolla tai niin laskentataulukon URL siellä, 16 00:00:49,510 --> 00:00:53,520 voit nähdä vain luku-versiota Google doc 17 00:00:53,520 --> 00:00:56,010 jossa olemme tiedonkeruumenettely. 18 00:00:56,010 --> 00:00:58,930 Joten jos haluat työskennellä jonkun kanssa, kaikin keinoin rohkeasti tavoittaa ihmisiä 19 00:00:58,930 --> 00:01:00,480 kautta, että mekanismi. 20 00:01:00,480 --> 00:01:02,690 Mutta suurin osa ihmiset tekevät työtä yksin. Se on täysin kunnossa. 21 00:01:02,690 --> 00:01:06,120 Joten älä tunne, että tämä on mitenkään pakollista. 22 00:01:06,120 --> 00:01:09,680 Perjantaina se oli vain minä ja muutama joukkue täällä, 23 00:01:09,680 --> 00:01:11,100 tyhjä teatteri suurimmaksi osaksi. 24 00:01:11,100 --> 00:01:14,600 Siellä oli 3 turisteja istumaan siellä, joten se oli hieman hankala. 25 00:01:14,600 --> 00:01:18,970 Mistä puhuimme oli tietokannat ja puhuimme PSET 7 vähän. 26 00:01:18,970 --> 00:01:22,200 Ja jos et satut kiinni että video ihan vielä, se on hienoa. 27 00:01:22,200 --> 00:01:26,770 Yritän määritellä mitään ehtoja, että me muuten itsestäänselvyytenä 28 00:01:26,770 --> 00:01:28,840 perustuu perjantain luento. 29 00:01:28,840 --> 00:01:32,550 >> Mutta tänään aiomme yrittää saada sinut kohtaan 30 00:01:32,550 --> 00:01:34,990 ei vain pysty tekemään jotain PSET 7 31 00:01:34,990 --> 00:01:37,360 mutta todella ymmärtää missä mennään alla huppu, 32 00:01:37,360 --> 00:01:41,910 erityisesti joitakin abstraktioita, että käyttöön vuonna functions.php tiedosto 33 00:01:41,910 --> 00:01:45,780 tehdä elämää vähän helpompaa, mutta niin, että lopulta ymmärrät 34 00:01:45,780 --> 00:01:48,760 niin, että kun apupyörät irtoa muutaman viikon voi edelleen hengissä 35 00:01:48,760 --> 00:01:53,750 todellisessa maailmassa ja tehdä tätä kamaa ilman CS50 kehyksen alla sinua. 36 00:01:53,750 --> 00:01:57,500 Tämä $ _SESSION, niille teistä, jotka ovat tuttuja 37 00:01:57,500 --> 00:02:01,960 tai jotka jo kiinni video perjantaina, mitä SESSION tehkäämme 38 00:02:01,960 --> 00:02:04,330 in PHP-pohjainen web-sovellus? 39 00:02:04,330 --> 00:02:09,650 Tämä on superglobal muuttuja, joka tarkoittaa että se on hengeltään samanlaisia ​​GET ja POST 40 00:02:09,650 --> 00:02:13,970 ja muutamat muut, mutta mikä tämä juttu hyödyllinen? 41 00:02:13,970 --> 00:02:18,320 >> Mitä ISTUNTO käytetään? Joo. [Opiskelija] Logging in 42 00:02:18,320 --> 00:02:21,040 Anteeksi? [Opiskelija] Logging in Logging in Todellakin. 43 00:02:21,040 --> 00:02:25,100 Vuonna PSET 7 käytämme tämän istunnon superglobal helpottaa sisäänkirjautumista 44 00:02:25,100 --> 00:02:28,600 Ja mitä mukavaa tästä superglobal on, että se on assosiatiivinen array. 45 00:02:28,600 --> 00:02:33,190 Assosiatiivisia array, Recall, on vain erilaisia ​​mutta jonka indeksit ei enää tarvitse olla numeroita 46 00:02:33,190 --> 00:02:37,670 kuten 012. Ne voivat olla numeroita tai ne voivat olla jopa merkkijonoja. 47 00:02:37,670 --> 00:02:44,890 Joten jos olet sukeltanut PSET 7 vielä, ehkä muistavat, että säilytät avain nimeltä tunnus 48 00:02:44,890 --> 00:02:50,330 sisällä tämän assosiatiivisia array jonka arvo on jotain 123 - 49 00:02:50,330 --> 00:02:53,780 mitä tällä hetkellä kirjautuneen käyttäjän tunnus on. 50 00:02:53,780 --> 00:02:59,470 Motivaatio on se, että senkin jälkeen, kun käyttäjä on vieraillut localhost 51 00:02:59,470 --> 00:03:02,720 tai verkkosivuilla yleisemmin ja sitten he ovat kirjautuneena sisään, 52 00:03:02,720 --> 00:03:07,320 vaikka ne eivät osoita linkkiä tai palata minun verkkosivuilla 5 minuuttia 53 00:03:07,320 --> 00:03:10,730 tai jopa tunti tai jopa päivä, mutta he jättävät selainikkunan auki, 54 00:03:10,730 --> 00:03:14,370 tätä kautta superglobal voin muistaa, että he ovat kirjautuneet sisään 55 00:03:14,370 --> 00:03:21,140 >> Toisin sanoen, se antaa minulle mahdollisuuden tallentaa hieman pitkäaikaisen mitä haluan siitä käyttäjälle. 56 00:03:21,140 --> 00:03:24,390 Ja voit ajatella sitä todella niin inkarnaatio ostoskorin. 57 00:03:24,390 --> 00:03:27,740 Paikoissa, kuten Amazon ilmeisesti voit laittaa asiat oikeisiin ostoskoriin, 58 00:03:27,740 --> 00:03:32,230 mutta HTTP-protokollaa, joka antaa virtaa Web, on kansalaisuudeton 59 00:03:32,230 --> 00:03:34,230 siinä mielessä, että kun käyt sivustolla, 60 00:03:34,230 --> 00:03:37,290 suurimmaksi osaksi sinulla ei ole joitakin vakio verkkoyhteys 61 00:03:37,290 --> 00:03:39,270 välillä selaimen ja palvelimen. 62 00:03:39,270 --> 00:03:42,190 Heti olet ladannut HTML ja JPEG sekä GIF ja kaikki, 63 00:03:42,190 --> 00:03:48,200 yhteys menee pois ja sinulla on vain kopio HTML ja vaikka mitä palvelimelta. 64 00:03:48,200 --> 00:03:53,000 Mutta jos palvelin haluaa muistaa jotain sinusta, 65 00:03:53,000 --> 00:03:57,580 taakka on palvelin todella tallentaa nämä tiedot. 66 00:03:57,580 --> 00:04:00,130 Ja niin sinä ohjelmoija, joka on valvoa palvelimen 67 00:04:00,130 --> 00:04:04,400 voi laittaa melkein mitä haluat sisällä tämän superglobal assosiatiivisia array 68 00:04:04,400 --> 00:04:06,850 ja se on siellä seuraavan kerran, kun käyttäjä tulee takaisin, 69 00:04:06,850 --> 00:04:12,070 onko se minuutin tai jopa päiviä myöhemmin, elleivät he sulkevat selainikkunan 70 00:04:12,070 --> 00:04:14,360 jolloin SESSION häviää. 71 00:04:14,360 --> 00:04:17,779 Joten se lyhytaikainen varastointi, se ei pysyviä, ja se on tarkoitus mennä pois 72 00:04:17,779 --> 00:04:22,360 heti käyttäjä sulkee selaimensa - ei vain kyseisen välilehden, usein koko selaimen, 73 00:04:22,360 --> 00:04:24,930 siten tehokkaasti kirjautumassa käyttäjän ulos. 74 00:04:24,930 --> 00:04:28,000 Joten miten tämä asia on tosiasiallisesti toteutettu? 75 00:04:28,000 --> 00:04:31,360 Otetaanpa vilkaista yksinkertainen esimerkki tutustuimme perjantaina. 76 00:04:31,360 --> 00:04:33,340 Niille tunne, se oli niin yksinkertaista kuin tämä. 77 00:04:33,340 --> 00:04:35,910 Tämä on web-sivu, jonka ainoana tarkoituksena elämässä on kertoa 78 00:04:35,910 --> 00:04:38,000 kuinka monta kertaa olen käynyt tällä sivulla. 79 00:04:38,000 --> 00:04:41,670 Tämä on ensimmäinen kerta täällä maanantaina, että kävin sen, niin se sanoo 0 kertaa. 80 00:04:41,670 --> 00:04:46,940 >> Mutta jos aloitan uudelleenlastauksen tämän sivun, sanotaan 1 kerran, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 ja tämä lopulta vain pitää counting ylös, ylös, ylös, ylös, ylös 82 00:04:49,800 --> 00:04:53,130 joka kerta olen itse valitse Reload sitä. 83 00:04:53,130 --> 00:04:58,830 Joten miten tämä työ? Anna minun mennä sisälle tämän tiedoston nimeltä counter.php. 84 00:04:58,830 --> 00:05:02,490 Yläosa on kaikki sininen kommentteja, mutta mielenkiintoinen osa on täällä. 85 00:05:02,490 --> 00:05:06,670 On line 13 me kutsumme tätä toimintoa session_start, 86 00:05:06,670 --> 00:05:09,600 ja se on kirjaimellisesti kaiken sinun ei tarvitse tehdä, jos haluat saada 87 00:05:09,600 --> 00:05:13,610 tätä erityistä superglobal nimeltään $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 Tämä tekee siitä kaiken mahdollisen, ja näemme hetken miten tämä kaikki on mahdollista. 89 00:05:17,430 --> 00:05:20,350 Linjassa 16 huomaa, mitä olen tekemässä. 90 00:05:20,350 --> 00:05:25,960 Jos avain, jota kutsutaan vasta - toisin sanoen, indeksin arvo - "laskuri" 91 00:05:25,960 --> 00:05:32,310 sisällä on tämän array kutsutaan istuntoon, niin mitä teen sen kanssa linjan alla? 92 00:05:32,310 --> 00:05:36,650 Mikä on line 18 tekee? 93 00:05:36,650 --> 00:05:40,360 >> [Äänetön opiskelija vastausta] Mikä tuo on? [Opiskelija] tallentaminen arvoa. Hyvä. 94 00:05:40,360 --> 00:05:45,800 Se tallennetaan arvo, joka on koolla juuri nyt uuden paikallisen väliaikainen muuttuja, 95 00:05:45,800 --> 00:05:48,250 $ Laskuri pieniksi. 96 00:05:48,250 --> 00:05:50,770 Huomaa, että PHP on jo nyt hieman laiska tässä. 97 00:05:50,770 --> 00:05:55,550 Ilmoitus meillä ei ole mitään mainintaa int tai float tai merkkijono tai jotain sellaista 98 00:05:55,550 --> 00:06:00,480 koska PHP on heikosti kirjoitettu, jolloin sinun ei tarvitse määrittää tyypin muuttuja, 99 00:06:00,480 --> 00:06:03,310 ja tässä tapauksessa täällä en ole edes ilmoittanut sitä vielä. 100 00:06:03,310 --> 00:06:08,980 Olen julistaa sisällä näitä aaltosulkeita ja toisin kuin C, tämä on todella kunnossa. 101 00:06:08,980 --> 00:06:13,800 Ei ole väliä kuinka syvästi sisäkkäisiä muuttujan ilmoitus on PHP - 102 00:06:13,800 --> 00:06:16,650 sisällä kihara ahdin, sisällä kihara ahdin ja vastaavat - 103 00:06:16,650 --> 00:06:21,230 se on sillä hetkellä olemassa jäljellä ohjelman 104 00:06:21,230 --> 00:06:22,680 parempaan tai huonompaan. 105 00:06:22,680 --> 00:06:26,930 Joten se tulee heti maailmanlaajuinen heti määrittelevät sen teemme täällä. 106 00:06:26,930 --> 00:06:31,620 >> Muuten, jos en löydä että siellä mitään SESSION superglobal, 107 00:06:31,620 --> 00:06:34,680 Olen ilmeisesti alustetaan tämän muuttujan laskuri 0, 108 00:06:34,680 --> 00:06:37,580 Näin vain olettaen käyttäjä ei ole koskaan ollut täällä ennen. 109 00:06:37,580 --> 00:06:40,030 Ja sitten tämä tietysti on inkrementoimalla laskuri miten? 110 00:06:40,030 --> 00:06:44,480 Olen päivittää arvon, joka on sisällä tämän assosiatiivisia array 111 00:06:44,480 --> 00:06:49,530 asettamalla se sama mikä laskuri hetkellä on + 1. 112 00:06:49,530 --> 00:06:53,520 Jos minä selaa täällä HTML sivun, se on oikeastaan ​​aika yksinkertainen. 113 00:06:53,520 --> 00:06:58,920 Kaikki olen itse tämän sivun, "Olet käynyt tässä sivustossa niin-ja-niin ajat." 114 00:06:58,920 --> 00:07:00,350 Ja tämä on PHP rakennelma. 115 00:07:00,350 --> 00:07:06,080 Jos et 00:07:12,600 On todella vastaa jotain printf, jonka olemme nähneet monta kertaa C, 117 00:07:12,600 --> 00:07:15,940 vaikka kuten ehkä tiedätte jo vuodesta spec PSET 7, 118 00:07:15,940 --> 00:07:20,160 Tulosta on myös toiminto, joka vain tulostaa jotain pois, se ei oikeastaan ​​käytä muotoa koodeja, 119 00:07:20,160 --> 00:07:23,270 ja voit itse sanoa kaiku samoin. 120 00:07:23,270 --> 00:07:27,460 He kaikki koskaan niin hieman erilainen, vaikka nettovaikutus on lopulta sama. 121 00:07:27,460 --> 00:07:31,270 Joten tämä käyttö yhtäsuuruusmerkki on vain eräänlainen tyylikäs tapa tehdä se 122 00:07:31,270 --> 00:07:34,910 lyhyemmin kuin ehkä muuten pysty. 123 00:07:34,910 --> 00:07:38,370 Niin, että kaikki tämän sivuston ei. Se tulostaa laskurin arvo. 124 00:07:38,370 --> 00:07:40,550 Miten tämä kaikki todella tapahtuu? 125 00:07:40,550 --> 00:07:43,250 Saatat muistaa viikko sitten aloimme etsiä alla huppu 126 00:07:43,250 --> 00:07:47,910 miten web-sivu toimii tällä Inspector välilehti. 127 00:07:47,910 --> 00:07:51,900 >> Chrome on tämä niin Mac-versio, Windows-versio, ja jopa Linux-versio, 128 00:07:51,900 --> 00:07:59,510 ja Firefox ja IE on samanlainen mekanismeissa sinulla sisäänrakennettu debuggeri 129 00:07:59,510 --> 00:08:01,400 sisällä selaimen. 130 00:08:01,400 --> 00:08:03,040 Katsotaanpa katsomaan seuraavaa. 131 00:08:03,040 --> 00:08:06,960 Meillä koko joukko välilehtien täällä, ja muistuttavat, että semmanpuoleisimmat on Elements, 132 00:08:06,960 --> 00:08:10,700 ja ei väliä kuinka godawful HTML-ja JavaScript on sivu, 133 00:08:10,700 --> 00:08:15,710 muistuttaa, että Elements välilehdellä voit itse selata HTML hierarkkisesti 134 00:08:15,710 --> 00:08:17,050 ja mukava ja siististi. 135 00:08:17,050 --> 00:08:19,370 Joten jos yrität oppia verkkosivuilla kuten Google tai Facebook 136 00:08:19,370 --> 00:08:22,370 tai oikeastaan ​​minkä tahansa sivuston, ymmärtää, että olet todennäköisesti paremmassa asemassa 137 00:08:22,370 --> 00:08:26,360 katsot lähdekoodin tällä tavalla sen sijaan, että ovat katsoneet raaka-lähde, 138 00:08:26,360 --> 00:08:29,580 joka voi olla sekaisin, kuten olemme nähneet erityisesti Googlen sivuilla. 139 00:08:29,580 --> 00:08:32,220 Joten jos vaan klikkaa Verkko-välilehteen täällä, 140 00:08:32,220 --> 00:08:34,830 Katsotaan mitä tapahtuu kun käyt tällä sivulla. 141 00:08:34,830 --> 00:08:38,669 Ensinnäkin haluan tyhjentää välimuistin. 142 00:08:38,669 --> 00:08:43,570 Aion mennä Asetukset Chrome ja siirry History 143 00:08:43,570 --> 00:08:46,420 ja sitten Poista kaikki selaustiedot. 144 00:08:46,420 --> 00:08:48,170 Saatat olla tottunut tähän muihin tarkoituksiin, [naurua] 145 00:08:48,170 --> 00:08:51,990 mutta kun se tulee kehittää sivustoja, se on todella hyödyllinen - 146 00:08:51,990 --> 00:08:55,980 jos naurat tiedät. [Naurua] 147 00:08:55,980 --> 00:08:59,310 Se on oikeastaan ​​todella hyödyllisiä, kun kehitetään sivustot, koska todellisuus on 148 00:08:59,310 --> 00:09:04,100 asioita, kuten evästeet ja asioita, kuten välimuistissa HTML-tiedostoja, välimuistissa JavaScript-tiedostot 149 00:09:04,100 --> 00:09:06,390 voi todella tulla iso päänsärky, koska jos jostain syystä 150 00:09:06,390 --> 00:09:11,500 selain päättää välimuistiin joitakin tiedoston ja silti olet tehnyt muutoksia, että tiedosto palvelimelle 151 00:09:11,500 --> 00:09:14,670 mutta selain ei ole oikeastaan ​​ymmärtänyt, että tiedosto on muuttunut 152 00:09:14,670 --> 00:09:19,060 ja siksi ei oikeastaan ​​ladata sen uudelleen, vaikka napsautat Päivitä-painiketta, 153 00:09:19,060 --> 00:09:23,210 yksi vuorenvarma tapoja vain varmista vika ei koodin kanssa, 154 00:09:23,210 --> 00:09:26,480 se kanssa käyttäytymistä selaimen, on mennä tänne selaimessasi 155 00:09:26,480 --> 00:09:29,950 ja vain tyhjentää koko historian, niin että ei ole mitään epäselvyyttä. 156 00:09:29,950 --> 00:09:33,210 >> Ja sitten jos todella haluat olla vainoharhainen, sulje selain, käynnistä se, 157 00:09:33,210 --> 00:09:35,660 ja varmista kaikki toimii odotetulla tavalla. 158 00:09:35,660 --> 00:09:38,820 Eli lyhyesti sanottuna, välimuistin tyhjentäminen on hyvä kun teet kehitystä. 159 00:09:38,820 --> 00:09:40,690 Joten tässä meillä on Verkko-välilehti. 160 00:09:40,690 --> 00:09:46,020 Olen aiemmin ollut vieraillut sivuilla 9 kertaa, mutta anna minun mennä eteenpäin nyt ja osoita Päivitä. 161 00:09:46,020 --> 00:09:47,500 Ja olen takaisin alas 0. 162 00:09:47,500 --> 00:09:52,100 Katsotaanpa todella nähdä, miten se on, että tämä istunto superglobal pannaan täytäntöön. 163 00:09:52,100 --> 00:09:55,990 Aion klikkaa 1 HTTP-pyynnön, joka tehtiin, 164 00:09:55,990 --> 00:09:58,810 ja tämä virheenkorjaus ikkuna antaa minun kurkistaa tuon. 165 00:09:58,810 --> 00:10:01,970 Näen tässä vain palvelimen vastausta, joka ei ole kiinnostava. 166 00:10:01,970 --> 00:10:04,030 Olen nähnyt tämän monin tavoin. 167 00:10:04,030 --> 00:10:06,350 Mutta mitä teknisesti mielenkiintoisia ovat otsikot. 168 00:10:06,350 --> 00:10:11,770 Jos minä selaa täällä ja keskittyä pyyntö otsikot ja napsauta Lähdekoodi, 169 00:10:11,770 --> 00:10:14,400 mitä aion nähdä on kirjaimellisesti HTTP pyyntö 170 00:10:14,400 --> 00:10:17,250 että vain meni minun selaimen palvelimelle, 171 00:10:17,250 --> 00:10:21,400 GET on tärkeä sana ja sitten / counter.php on tiedoston nimi, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 vain olemalla versio HTTP että minun selain käyttää. 173 00:10:25,670 --> 00:10:31,070 Tämä linja tässä hieman muistutus selaimella palvelimeen mitä palvelimen nimi on 174 00:10:31,070 --> 00:10:33,020 että se haluaa puhua. 175 00:10:33,020 --> 00:10:38,200 Ja sitten loput tästä on joskus mielenkiintoinen, mutta ei asiaa juuri nyt. 176 00:10:38,200 --> 00:10:40,090 >> Tämä on vain eräänlainen uteliaisuus. 177 00:10:40,090 --> 00:10:43,530 Cryptic vaikka tämä merkkijono on aina selaimesi vierailee sivustolla 178 00:10:43,530 --> 00:10:47,110 se ilmoittaa palvelimelle, mitä selainta käytät 179 00:10:47,110 --> 00:10:50,040 ja mitä käyttöjärjestelmää käytät ja mitä versiota siitä. 180 00:10:50,040 --> 00:10:52,650 Joten jos olet koskaan miettinyt kuinka sivustot kuten CNN ja vaikka mitä 181 00:10:52,650 --> 00:10:56,860 mitä prosenttiosuudet ovat Mac-käyttäjät Webissä, PC-käyttäjät, 182 00:10:56,860 --> 00:11:00,820 IE: n käyttäjät, Chromen käyttäjät ja vastaavat, se johtuu meidän kaikkien selainten 183 00:11:00,820 --> 00:11:04,300 kertovat jokainen sivusto siellä mitä me olemme. 184 00:11:04,300 --> 00:11:07,410 Se ei välttämättä sisällä henkilötietoja, 185 00:11:07,410 --> 00:11:13,060 mutta se ei kerro palvelimelle, mitä IP-osoite on ja mitä selaimen ja käyttöjärjestelmän käytät. 186 00:11:13,060 --> 00:11:14,720 Niin, että jos tämä tieto on. 187 00:11:14,720 --> 00:11:19,960 Mutta mitä enemmän mielenkiintoista nyt kun on näitä istuntoja on vastaus otsikon. 188 00:11:19,960 --> 00:11:22,530 Saanen napsauta Lähdekoodi vieressä vasteen. 189 00:11:22,530 --> 00:11:24,590 Mitä mielenkiintoista tässä on muutamia asioita. 190 00:11:24,590 --> 00:11:27,580 1, tulimme takaisin tilakoodin 200. 191 00:11:27,580 --> 00:11:29,840 Emme koskaan näe tämän tilakoodin koska se tarkoittaa, että kaikki on hyvin. 192 00:11:29,840 --> 00:11:32,920 Se tarkoittaa kirjaimellisesti kunnossa toisin kuin jotain muuta. 193 00:11:32,920 --> 00:11:36,380 Mikä numero joskus nähdä se paha? [Opiskelija] 404. 194 00:11:36,380 --> 00:11:39,860 404, tiedostoa ei löytynyt, 403 saatat törmää jo, 195 00:11:39,860 --> 00:11:43,660 joka on kielletty, mikä tarkoittaa olet unohtanut chmod jotain, todennäköisesti. 196 00:11:43,660 --> 00:11:45,190 Ja siellä nippu muita. 197 00:11:45,190 --> 00:11:47,760 >> Tänne, tämä on vähän hullu. 198 00:11:47,760 --> 00:11:52,340 Oikeastaan ​​kirjoitin tämän tiedoston muutama minuutti sitten liittämällä se osaksi gedit. 199 00:11:52,340 --> 00:11:57,100 Miksi tämä sivu päättyy vuonna 1981 ennen siellä todella oli Web? 200 00:11:58,010 --> 00:12:00,730 Mitä siellä tapahtuu? 201 00:12:00,730 --> 00:12:04,390 >> [Äänetön opiskelija vastausta] aikaleima. Mutta miksi? 202 00:12:06,110 --> 00:12:09,120 Se on jokseenkin mielivaltainen, mutta se on todella hyödyllinen. 203 00:12:09,120 --> 00:12:15,500 Mitä tämä sanoo minun selain on tämän PHP tiedosto olet juuri pyytänyt jo päättynyt. 204 00:12:15,500 --> 00:12:18,580 Itse asiassa se päättyi 30 vuotta sitten. 205 00:12:18,580 --> 00:12:20,260 Mutta mitä se oikeastaan ​​tarkoittaa? 206 00:12:20,260 --> 00:12:22,500 Se vain tarkoittaa, kun käyttäjä seuraavan kerran vierailee tämän sivun, 207 00:12:22,500 --> 00:12:25,540 joko uudelleenlastaus tai kirjoittamalla URL-osoitteen osoiteriville, 208 00:12:25,540 --> 00:12:28,010 varmista, että olet mennä ja noutaa uuden kopion. 209 00:12:28,010 --> 00:12:30,840 Tämä on eräänlainen esimerkki välimuistin selättäminen, 210 00:12:30,840 --> 00:12:33,790 tyhmä sana, joka tarkoittaa vain yrittää hillitä selaimet 211 00:12:33,790 --> 00:12:37,260 alkaen todella välimuistiin HTML, joka on lähetetty palvelimelta 212 00:12:37,260 --> 00:12:41,490 niin että et vahingossa osui reload ja sitten nähdä saman tiedoston versio. 213 00:12:41,490 --> 00:12:43,730 Sinä todella haluavat palvelin lähettää uuden kopion. 214 00:12:43,730 --> 00:12:47,440 Niin, että se on 1981 tarkoittaa vain sitä, että se mitä laite valitsemalla 215 00:12:47,440 --> 00:12:50,280 mielivaltainen päivää aikaisemmin. 216 00:12:50,280 --> 00:12:53,380 Mutta todellinen mehukas linja on nyt tämä. 217 00:12:53,380 --> 00:12:57,550 Jo ennen 50 olet luultavasti hämärästi tuttu evästeet. 218 00:12:57,550 --> 00:13:01,820 Mitä nyt, etenkin niiden vähemmän mukavaa tai siltä väliltä, 219 00:13:01,820 --> 00:13:04,120 Mikä on evästeen ymmärtämään juuri nyt 220 00:13:04,120 --> 00:13:06,980 vaikka olemme aikeissa tehdä ymmärrystä enemmän teknistä? 221 00:13:08,150 --> 00:13:10,070 Mikä eväste? Joo. 222 00:13:10,070 --> 00:13:13,890 [Opiskelija] Tietoa käyttäjälle, kuin jos he ovat kirjoittaneet heidän käyttäjätunnus tai jotain. 223 00:13:13,890 --> 00:13:17,370 >> Hyvä. Se tietoja käyttäjän, ovatko he kirjoitetaan heidän käyttäjätunnus jo. 224 00:13:17,370 --> 00:13:21,190 Evästeet ovat tapa, jolla palvelimia voi muistaa jotain käyttäjä. 225 00:13:21,190 --> 00:13:25,810 Ja mitä eväste oikeastaan ​​on on tekstitiedosto tai jokin sarja tavuja 226 00:13:25,810 --> 00:13:28,340 joka on istuttanut palvelimen sisällä selaimen, 227 00:13:28,340 --> 00:13:31,960 ja sisältä että tiedoston tai joukossa tavua on jonkinlainen tunniste. 228 00:13:31,960 --> 00:13:35,640 Ehkä se on kirjaimellisesti käyttäjätunnuksesi, mutta usein se on jotain enemmän arvoituksellinen näyttäviä 229 00:13:35,640 --> 00:13:43,700 näin asia tässä - bo8dal3ct ja niin edelleen - tämä on todella iso aakkosnumeerinen merkkijono 230 00:13:43,700 --> 00:13:47,050 joka on oikeastaan ​​vain tarkoitus olla yksilöllinen tunniste sinulle. 231 00:13:47,050 --> 00:13:49,790 Tai voit ajatella sitä tavallaan virtuaalisen käden leima. 232 00:13:49,790 --> 00:13:53,020 Jos menet johonkin klubin tai huvipuisto, muistaa, että olet todellisuudessa maksanut 233 00:13:53,020 --> 00:13:55,850 ja mennyt, ne laittaa pieni punainen tarra käteen jonkinlaisia, 234 00:13:55,850 --> 00:13:59,270 ja joka muistuttaa ihmisiä tiskillä, että olet jo maksanut 235 00:13:59,270 --> 00:14:01,340 ja voit tulla ja mennä kuten haluat. 236 00:14:01,340 --> 00:14:04,250 Evästeet ovat hieman samanlainen hengeltään että. 237 00:14:04,250 --> 00:14:08,070 Ensimmäistä kertaa kävin tällä sivustolla, kuten juuri tein tyhjentämisen jälkeen välimuistin, 238 00:14:08,070 --> 00:14:11,620 web-palvelin, laite tässä tapauksessa laittaa leima käteni 239 00:14:11,620 --> 00:14:15,030 jonka nimi on PHPSESSID, session ID, 240 00:14:15,030 --> 00:14:18,260 joiden arvo on tämä todella pitkä aakkosnumeerinen merkkijono. 241 00:14:18,260 --> 00:14:22,470 >> Niin, että nyt tavallaan emblazoned käteni niin että seuraavan kerran osuin reload 242 00:14:22,470 --> 00:14:25,230 tai manuaalisesti käydä tätä URL selaimessa, 243 00:14:25,230 --> 00:14:29,230 selaimeni määritelmän HTTP aikoo esittää käteen leiman 244 00:14:29,230 --> 00:14:31,940 uudestaan ​​ja uudestaan ​​ja uudestaan. 245 00:14:31,940 --> 00:14:34,550 Joten vaikka palvelin ei välttämättä tiedä, kuka olen, 246 00:14:34,550 --> 00:14:39,610 he ainakin tietävät, että olen sama käyttäjä tai ainakin tarkemmin, sama selain. 247 00:14:39,610 --> 00:14:45,660 Ja niin tämä on lopulta kuinka SESSION superglobal toteutetaan. 248 00:14:45,660 --> 00:14:51,200 Palvelin ei ole aavistustakaan kuka olet, kun olet uudelleen verkkosivuilla toisen tai kolmannen kerran 249 00:14:51,200 --> 00:14:53,410 jos esität tämän käden leima. 250 00:14:53,410 --> 00:14:55,530 Ja heti kun esittää että käden leima, 251 00:14:55,530 --> 00:14:59,370 Web-palvelin olennaisesti menee vähän tietokantaan oman 252 00:14:59,370 --> 00:15:06,040 ja tarkastukset, okei, olen juuri nähnyt käden leima käyttäjän bo8dal3ct ja niin edelleen. 253 00:15:06,040 --> 00:15:09,850 Haluan nähdä, mitä tietoa ohjelmoija on tallennettu 254 00:15:09,850 --> 00:15:12,380 sisäpuolelle superglobal tästä käyttäjästä, 255 00:15:12,380 --> 00:15:17,000 ja sitten haluan varmistaa, että tiedot ovat jälleen sisällä SESSION superglobal 256 00:15:17,000 --> 00:15:19,830 niin että ohjelmoija voi uudelleen käyttää tietojen 257 00:15:19,830 --> 00:15:23,360 vaikka se oli asetettu joitakin minuutteja tai tunteja sitten. 258 00:15:23,360 --> 00:15:26,150 Eli toisin sanoen, evästeet, joka sai huono rap jonkin aikaa 259 00:15:26,150 --> 00:15:29,990 koska epävarmuus selaimissa ja he voivat todella rikkoa yksityisyyttä ja kaikki tämä, 260 00:15:29,990 --> 00:15:31,900 he todella ovat erinomainen apuväline, koska ilman niitä 261 00:15:31,900 --> 00:15:36,110 olisit jatkuvasti olla kirjautumalla jokaisen Facebook-sivulla osoitteessa 262 00:15:36,110 --> 00:15:40,680 tai jokainen Gmail sähköpostin lukea, jos selain ei ole jotenkin muistaa 263 00:15:40,680 --> 00:15:43,320 että olet jo todennettu. 264 00:15:43,320 --> 00:15:46,640 >> Joten tällä tavalla evästeet lähetetään edestakaisin koko johto. 265 00:15:46,640 --> 00:15:52,470 Toinen uteliaisuus evästeistä, etenkin täällä, että tämä on täysin suojaamattomana. 266 00:15:52,470 --> 00:15:54,930 Ei ole salausta täällä mitään, 267 00:15:54,930 --> 00:15:57,240 ja todellakin olen HTTP tällä hetkellä. 268 00:15:57,240 --> 00:16:00,890 Yksi meidän suosikkeja hetkiä CS50, joka on nyt 2 vuotta sitten, 269 00:16:00,890 --> 00:16:04,750 oli noin aika työkalu nimeltään Firesheep tuli ulos. 270 00:16:04,750 --> 00:16:08,320 Tämä oli ilmainen pala ohjelmisto, joka tehtiin tietoturvatutkija 271 00:16:08,320 --> 00:16:13,250 koska herätys yhteisön sanoa kuinka atrociously täytäntöön 272 00:16:13,250 --> 00:16:17,900 tietyt todentamismenetelmiä Webissä olivat. 273 00:16:17,900 --> 00:16:22,880 Joten jonkin aikaa, Facebook oli lähes kokonaan HTTP, no HTTPS. 274 00:16:22,880 --> 00:16:25,640 Ja vaikka sinulla ei ole aavistustakaan kuinka Crypto toimii S on turvallinen 275 00:16:25,640 --> 00:16:27,950 niin se tarkoittaa, että on ainakin joitakin salattuja. 276 00:16:27,950 --> 00:16:30,610 Facebook ei salata käyttäjänimet ja salasanat, 277 00:16:30,610 --> 00:16:33,560 mutta heti kun katsoin sinun pokes tai viestejä tai uutissyöte, 278 00:16:33,560 --> 00:16:35,360 kaikki tämä on salaamaton. 279 00:16:35,360 --> 00:16:37,870 Niin oli Gmail asti vain vuosi tai 2 sitten. 280 00:16:37,870 --> 00:16:41,100 Aina olet kirjautunut sisään, kyllä, he käyttivät turvallisen salauksen 281 00:16:41,100 --> 00:16:44,300 mutta sen jälkeen he eivät. Ja miksi se voisi olla? 282 00:16:44,300 --> 00:16:49,210 Miksi ei vain käyttää salausta koko ajan käytössä jutuissa? 283 00:16:49,210 --> 00:16:53,700 Mikä tuo on? Taisin kuulla jotain. [Opiskelija] Speed. 284 00:16:53,700 --> 00:16:56,250 Nopeus, eikö? On olemassa tapoja kiertää tämän. 285 00:16:56,250 --> 00:16:59,610 Mutta jos vain sellainen ajatella loogisesti, jos salaat jotain, 286 00:16:59,610 --> 00:17:01,820 sinun täytyy tehdä ainakin hieman enemmän työtä. 287 00:17:01,820 --> 00:17:05,460 Vuonna PSET 2, kun toteutetaan Caesar tai Vigenere tai jopa Crack, 288 00:17:05,460 --> 00:17:07,760 vain tulostus merkkijono on suhteellisen helppoa. 289 00:17:07,760 --> 00:17:12,040 Salaaminen ja sitten tulostaa merkkijonon minimaalisesti vaatii hieman enemmän työtä. 290 00:17:12,040 --> 00:17:14,520 >>  Super suositut sivustot, kuten Google ja Facebook, 291 00:17:14,520 --> 00:17:18,839 Jos sinun täytyy tehdä enemmän työtä jokaiselle käyttäjälle jokaisen sivun he käyvät, 292 00:17:18,839 --> 00:17:20,520 että vain vie enemmän CPU aikaa. 293 00:17:20,520 --> 00:17:22,920 Ja jos tarvitset enemmän CPU aikaa, ehkä enemmän palvelimia, 294 00:17:22,920 --> 00:17:24,270 mikä tarkoittaa saatat tarvita enemmän rahaa. 295 00:17:24,270 --> 00:17:27,579 Ja niin monta vuotta tämä vain todella ollut parhaita käytäntöjä. 296 00:17:27,579 --> 00:17:31,440 Ihmiset käyttävät SSL-salausta vain, jos ne tarvitaan. 297 00:17:31,440 --> 00:17:34,960 Mutta kävikin, ja koska tämä kaveri kanssa Firesheep tehnyt erittäin selväksi, 298 00:17:34,960 --> 00:17:37,920 kun te, jotka ovat tällä hetkellä Facebookissa juuri nyt - 299 00:17:37,920 --> 00:17:39,880 Uteliaisuudesta, katsotaanpa jos sinulla fess ylös. 300 00:17:39,880 --> 00:17:42,620 Jos olet Facebookissa nyt joissakin välilehdellä, vaikka se ei ole vastaavasti etusijalle, 301 00:17:42,620 --> 00:17:46,610 on URL HTTP tai HTTPS? 302 00:17:46,610 --> 00:17:50,560 [Useita opiskelijoita] S. S? [Naurua] 303 00:17:50,560 --> 00:17:55,510 Okei. Jokainen HTTP? Vain 1? Okei. 304 00:17:55,510 --> 00:17:58,940 Joten kaikki voimme hakata että kaveri Facebook-tili nyt. 305 00:17:58,940 --> 00:18:04,100 Suurimmaksi osaksi tämä on tullut käytössä oletuksena ainakin joitakin sivustoja. 306 00:18:04,100 --> 00:18:08,120 Ja pitkän tarinan lyhyesti, jos web-liikennettä ei ole salattu, 307 00:18:08,120 --> 00:18:12,960 ei ainoastaan ​​HTML mennä edestakaisin WiFis salaamaton, 308 00:18:12,960 --> 00:18:16,760 joten älä asiat kuten evästeitä mennä edestakaisin koko ilma 309 00:18:16,760 --> 00:18:18,940 ilman minkäänlaista salausta. 310 00:18:18,940 --> 00:18:23,540 Joten jos sinulla on vain vähän ohjelmointia taju tai hieman Googling taitojen 311 00:18:23,540 --> 00:18:27,410 löytää ilmainen ohjelmisto, joka tekee tämän, sinun täytyy tehdä, on istua Starbucks 312 00:18:27,410 --> 00:18:30,680 tai istua lentokentällä missä on yleensä salaamaton WiFi 313 00:18:30,680 --> 00:18:36,070 ja vain katsella avainsanoja kuten Set-Cookie: tai PHPSESSID 314 00:18:36,070 --> 00:18:39,300 koska jos sinulla on tekninen taju vain katsella WiFi 315 00:18:39,300 --> 00:18:43,010 kaikkien bittien että virtaus koko ilmaa tätä mallia, 316 00:18:43,010 --> 00:18:50,840 voit sanoa, että kaveri PHPSESSID sattuu olemaan bo8dal ja niin edelleen. 317 00:18:50,840 --> 00:18:53,890 Ja sitten taas jos olet tarpeeksi teknisesti taju tai on oikea työkalu, 318 00:18:53,890 --> 00:18:58,890 voit vain uudelleen oman selaimen ryhtyä esittämään, että käsi leima 319 00:18:58,890 --> 00:19:05,030 ja Facebook.com, ja Facebook on juuri menossa oletetaan, että olet se kaveri 320 00:19:05,030 --> 00:19:09,880 koska kaikki tietävät ole kuka olet, mutta sinulla on tämä yksilöllinen tunniste. 321 00:19:09,880 --> 00:19:14,650 Joten jos varastaa että yksilöllinen tunniste ja esittää sen web-palvelimen oman, 322 00:19:14,650 --> 00:19:16,860 he ovat vain menossa näyttämään, että henkilön uutissyöte 323 00:19:16,860 --> 00:19:18,980 tai kyseisen henkilön viestejä tai pokes. 324 00:19:18,980 --> 00:19:23,190 >> Ja haluaisin Googlelle nyt miten aktivoida HTTPS Facebook ehkä. 325 00:19:23,190 --> 00:19:25,150 Mutta se on todellakin niin yksinkertaista. 326 00:19:25,150 --> 00:19:27,660 Ja niin Facebook ja Google ja vastaavat ovat saaneet todella hyvä tässä, 327 00:19:27,660 --> 00:19:31,870 mutta pitää silmällä sitäkin mitään verkkosivustoja, jotka eivät käytä HTTP 328 00:19:31,870 --> 00:19:35,020 ja on jonkinlainen arkaluonteisia tietoja niistä, 329 00:19:35,020 --> 00:19:37,490 onko se taloudellista tai henkilökohtaista tai vastaavaa. 330 00:19:37,490 --> 00:19:43,180 Jos he eivät käytä tätä, hyvin mahdollisesti voi evästeet näin hyvin helppo varastaa 331 00:19:43,180 --> 00:19:46,270 ja sitten taotut, ja juuri sitä Firesheep teki. 332 00:19:46,270 --> 00:19:48,250 Sinulla ei tarvitse olla ohjelmoija. 333 00:19:48,250 --> 00:19:51,680 Kaikki mitä oli tehtävä oli on Internet-yhteys, lataa tämä ilmainen työkalu, 334 00:19:51,680 --> 00:19:56,490 ja mitä se tekisi on olet kirjautunut sisään ja sitten se näyttää Facebook-nimet 335 00:19:56,490 --> 00:20:00,170 kaikkien vuonna Sanders, tässä nimenomaisessa esittelyä, ympärilläsi 336 00:20:00,170 --> 00:20:03,260 ja kaikki mitä oli tehtävä oli napsauttamalla niiden nimeä ja ohjelmistojen automatisoitu prosessi 337 00:20:03,260 --> 00:20:05,970 ja haistaa että evästeen, sen esittämistä Facebook kuin oma, 338 00:20:05,970 --> 00:20:07,990 ja voila, olet kirjautunut sisään 339 00:20:07,990 --> 00:20:11,190 Joten tämä on taas niitä "älä tee tätä" virallisesti. 340 00:20:11,190 --> 00:20:14,660 Jos sinulla on oma kotiverkko ja haluat korjailla, kaikin keinoin, 341 00:20:14,660 --> 00:20:17,530 mutta ymmärtää tämä ei läpäise linjan yliopiston ympäristössä. 342 00:20:17,530 --> 00:20:20,030 >> Mutta tavoitteena tässä on oikeastaan ​​korostaa ei miten tämä 343 00:20:20,030 --> 00:20:22,320 mutta miten puolustautua tällaisia ​​asioita. 344 00:20:22,320 --> 00:20:26,180 Ja triviaali ratkaisua, vaikka se itse on puutteellinen, 345 00:20:26,180 --> 00:20:31,360 on todella vähentää käyttöä sivustoissa, jotka eivät käytä HTTPS jatkuvasti. 346 00:20:31,360 --> 00:20:34,520 Joten sivustot kuten Facebook ja Google yhä olla valintaruudut 347 00:20:34,520 --> 00:20:36,200 jossa voit valita sisään tällaista asiaa, 348 00:20:36,200 --> 00:20:40,000 ja pankit ovat joutuneet tämän vuosia samoista syistä. 349 00:20:40,000 --> 00:20:43,580 Joten hieman pelko tekijä, jos voimme. Mutta siinä se pähkinänkuoressa. 350 00:20:43,580 --> 00:20:46,420 Näin palvelin muistaa, kuka olet. 351 00:20:46,420 --> 00:20:50,760 Ja heti kun he muistavat kuka olet, he voivat muistaa mitään sinusta 352 00:20:50,760 --> 00:20:56,140 että ohjelmoija on tallennettu sisällä tämän erityisen superglobal nimeltään $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 Ja PSET 7 käytämme sitä triviaalisti vain muistaa int- 354 00:20:59,750 --> 00:21:02,260 eli yksilöllinen tunnus, että käyttäjä, joka on kirjautunut sisään, 355 00:21:02,260 --> 00:21:05,880 jotta tiedämme he ovat olleet siellä ennen. 356 00:21:05,880 --> 00:21:12,450 Kaikki kysymykset sitten istuntoja tai evästeitä tai vastaavia? 357 00:21:12,450 --> 00:21:15,130 Firesheep ei toimi niin hyvin enää, 358 00:21:15,130 --> 00:21:18,310 ja sinun täytyy laittaa tietokoneesi erityinen siveetön tilassa 359 00:21:18,310 --> 00:21:20,700 niin olet todella kuuntelevat liikenteen lisäksi itsellenne. 360 00:21:20,700 --> 00:21:23,940 Joten jos olet parhaillaan ladata Firesheep, ymmärtää se ei ole aivan niin helppoa 361 00:21:23,940 --> 00:21:26,850 koska se kerran oli osoittaa. 362 00:21:26,850 --> 00:21:29,070 Selvä. Ja älä tee sitä Sanders. Tee se kotona. 363 00:21:29,070 --> 00:21:30,890 Tietokannat. 364 00:21:30,890 --> 00:21:33,580 Yksi asioista, teimme PSET 7 erittäin harkitusti 365 00:21:33,580 --> 00:21:37,780 oli annamme sinulle mallitietokannan taulukon käyttäjille että on joitakin käyttäjätunnuksia, 366 00:21:37,780 --> 00:21:41,020 jotkut käyttäjätunnukset ja jotkut salattuja salasanoja siinä. 367 00:21:41,020 --> 00:21:44,520 Ja kuten näet, jos et ole jo, sinun täytyy muuttaa taulukon hieman. 368 00:21:44,520 --> 00:21:47,710 Olet menossa tarvitse lisätä joitakin välimuisti kullekin käyttäjien kyseisessä taulukossa, 369 00:21:47,710 --> 00:21:51,130 ja olet menossa on lisätä toisen historiaa pöytä, salkut pöytä, 370 00:21:51,130 --> 00:21:53,310 tai ehkä kutsua sitä jotain muuta. 371 00:21:53,310 --> 00:21:56,740 Mutta mitä ajatella miten tämä, katsotaanpa avata tämän työkalun 372 00:21:56,740 --> 00:22:00,570 joita käytimme perjantaina, mutta jos tunne, laite tulee työkalulla 373 00:22:00,570 --> 00:22:04,680 kutsutaan phpMyAdmin joka on sattumalta kirjoitettu PHP, 374 00:22:04,680 --> 00:22:07,950 mutta sen tarkoitus elämässä, kun olen kirjaudu sisään täällä jharvard kanssa karmiininpunainen, 375 00:22:07,950 --> 00:22:15,160 on antaa minulle käyttäjäystävällinen tapa tarkastella ja muuttaa tietokannasta. 376 00:22:15,160 --> 00:22:18,040 >> Tietokannan että olen käynnissä laite on nimeltään MySQL. 377 00:22:18,040 --> 00:22:23,420 Tämä on erittäin suosittu, ja se on ilmainen avoimen lähdekoodin tietokanta, joka on ihanan helppo käyttää, 378 00:22:23,420 --> 00:22:25,620 erityisesti etupäät näin. 379 00:22:25,620 --> 00:22:29,350 Mitä tämä työkalu sallii minun tehdä, esimerkiksi, on penkoa pöytiä. 380 00:22:29,350 --> 00:22:30,890 Anna minun mennä eteenpäin ja tehdä tätä. 381 00:22:30,890 --> 00:22:36,580 Perjantaina teimme taulukon nimeltä opiskelijoita että oli super yksinkertainen. 382 00:22:36,580 --> 00:22:41,680 Se oli 3 sarakkeet - id, nimi ja sähköpostiosoite - ja minä manuaalisesti lisätty pari riviä 383 00:22:41,680 --> 00:22:44,420 kuten David ja Mike tässä nimenomaisessa esimerkissä. 384 00:22:44,420 --> 00:22:47,290 Otetaanpa tähän hieman pidemmälle, ja oletetaan, että haluamme muistaa enemmän 385 00:22:47,290 --> 00:22:49,660 kuin vain nimi ja sähköpostiosoite noin käyttäjälle. 386 00:22:49,660 --> 00:22:53,090 Saanen napsauttamalla Rakenne täällä ylhäällä. 387 00:22:53,090 --> 00:22:55,440 Ja vielä, PSET opastaa tarvittaviin toimiin tässä 388 00:22:55,440 --> 00:22:58,150 joten älä huolestu, jos osa tästä on vähän nopeasti. 389 00:22:58,150 --> 00:22:59,690 Sitten aion klikkaa tästä. 390 00:22:59,690 --> 00:23:02,270 Aion lisätä useita sarakkeita jälkeen sähköpostin 391 00:23:02,270 --> 00:23:04,130 koska haluan lisätä jotain talon. 392 00:23:04,130 --> 00:23:06,640 Unohdin tallentaa opiskelijan talossa. 393 00:23:06,640 --> 00:23:11,400 Saanen valitset Siirry, ja nyt meillä on tässä muodossa on valitettavasti hieman laaja vasemmalta oikealle, 394 00:23:11,400 --> 00:23:13,710 mutta aion soittaa nimeä alan talo, 395 00:23:13,710 --> 00:23:16,050 ja sitten tyypin I on nyt valittava. 396 00:23:16,050 --> 00:23:18,870 Joten on lyhyt jutella eri MySQL 397 00:23:18,870 --> 00:23:24,590 koska taas PHP on heikosti kirjoitettu ja se tavallaan pelaa vilunkia tyyppejä, 398 00:23:24,590 --> 00:23:29,430 tietokantaan, erityisesti se on erittäin tärkeää itse käyttää kirjoittamalla eduksesi 399 00:23:29,430 --> 00:23:33,260 koska yksi niistä asioista MySQL ja muut tietokantaan moottoreita voi tehdä sinulle 400 00:23:33,260 --> 00:23:37,910 on varmistaa, että et laita pöytälaatikkoyrityksiä tiedot tietokantaan. 401 00:23:37,910 --> 00:23:41,850 Tämä on tavallaan ilmainen virheentarkistusta käytössäsi. 402 00:23:41,850 --> 00:23:46,250 >> Talon emme tietenkään halua sitä olla int, joka on 32-bittinen arvo MySQL. 403 00:23:46,250 --> 00:23:49,810 Teimme puhua lyhyesti perjantaina noin varchar, joka tarkoittaa muuttuvan pituuden char. 404 00:23:49,810 --> 00:23:54,720 Mikä tämä on? Näin voit määrittää, että haluat tämän olla merkkijono jonkinlaisia. 405 00:23:54,720 --> 00:23:56,840 Et todellakaan tiedä etukäteen, kuinka kauan se on, 406 00:23:56,840 --> 00:24:00,100 niin me mielivaltaisesti sanoa talon nimi voi olla 255 merkkiä, 407 00:24:00,100 --> 00:24:04,190 mutta voisit mennä 32, 64 - mikä tahansa numero oikeasti. 408 00:24:04,190 --> 00:24:10,700 Mutta etu käyttää varchar yli kentän nimeltään char on mitä? 409 00:24:10,700 --> 00:24:15,110 Vain intuitiivisesti jos en selaa täällä, huomaat siellä nieriää ja siellä varchar. 410 00:24:15,110 --> 00:24:19,520 Varchar on vaihteleva pituus char, char on kiinteä pituus char. 411 00:24:19,520 --> 00:24:24,730 Joten perustua vain tätä määritelmää, mikä on hyödyksi tai haitaksi jokainen? 412 00:24:24,730 --> 00:24:30,490 Toisin sanoen, joka välittää eroa, tai miksi sinun pitäisi hoitaa? 413 00:24:31,660 --> 00:24:35,750 >> Joo. [Opiskelija] Varchar on enemmän joustavuutta, mutta vie enemmän muistia. 414 00:24:35,750 --> 00:24:40,730 Hyvä. Varchar vie enemmän - Katsotaan. En ole varma, jos olen kuullut oikein. 415 00:24:40,730 --> 00:24:42,360 Voitteko sanoa vielä kerran? 416 00:24:42,360 --> 00:24:45,850 [Opiskelija] sanoin varchar luultavasti on enemmän joustavuutta, mutta se vie enemmän muistia. 417 00:24:45,850 --> 00:24:51,170 Mielenkiintoista. Okei. Varchar luultavasti antaa sinulle enemmän joustavuutta, mutta vie enemmän muistia. 418 00:24:51,170 --> 00:24:53,220 Jälkimmäinen ei ole välttämättä totta. 419 00:24:53,220 --> 00:24:56,290 Se riippuu asiayhteydestä, mutta Palataan siihen. 420 00:24:56,290 --> 00:25:03,230 >> [Äänetön opiskelija vastausta] Aivan. 421 00:25:03,230 --> 00:25:06,900 Se on oikeastaan ​​niin, että char on yleensä käyttää enemmän muistia 422 00:25:06,900 --> 00:25:10,950 koska char, kuten C, on kuin merkkijono, se joukko merkkejä. 423 00:25:10,950 --> 00:25:13,690 Joten jos sanot char alalla pituus 255, 424 00:25:13,690 --> 00:25:16,910 tietokanta on kirjaimellisesti aio antaa teille 255 merkkiä. 425 00:25:16,910 --> 00:25:22,290 Ja jos talo päätyy MATHER ja 6 merkkiä yhteensä, 426 00:25:22,290 --> 00:25:25,090 tuhlaat yli 200 merkkiä. 427 00:25:25,090 --> 00:25:29,640 >> Joten varchar tehokkaasti käyttää vain niin monta merkkiä kuin on tarpeen 428 00:25:29,640 --> 00:25:31,590 enintään määrään. 429 00:25:31,590 --> 00:25:35,470 Mutta hinnan maksat on itse asiassa suorituskykyä, mahdollisesti. 430 00:25:35,470 --> 00:25:39,740 Jos tiedät etukäteen että kaikki jouset tulevat olemaan 8 merkkiä - 431 00:25:39,740 --> 00:25:43,090 Esimerkiksi Oletetaan, että tarvitset salasanat pituus 8 - 432 00:25:43,090 --> 00:25:47,350 ylösalaisin käyttää char kentän yhteydessä, mutta ei usein, 433 00:25:47,350 --> 00:25:51,100 on määrittää kiinteän pituuden jotain salasanaa 434 00:25:51,100 --> 00:25:53,300 koska nyt tietokantaan voi olla jopa älykkäämpiä. 435 00:25:53,300 --> 00:25:58,160 Jos se tietää, että jokainen char kenttä, joka merkkijono sarakkeessa on sama pituus, 436 00:25:58,160 --> 00:26:00,780 saat takaisin piirre random access. 437 00:26:00,780 --> 00:26:05,110 Voit hypätä noin kesken eri char kentät tietokannan taulukkoon 438 00:26:05,110 --> 00:26:07,940 koska ajattelevat tietokannan rivejä ja sarakkeita. 439 00:26:07,940 --> 00:26:11,670 Joten jos jokainen jouset on sama pituus, 440 00:26:11,670 --> 00:26:17,820 tiedät, että ensimmäinen on tavu 0, seuraava on tavu 8 441 00:26:17,820 --> 00:26:20,240 ja sitten 16 ja sitten 24 ja niin edelleen. 442 00:26:20,240 --> 00:26:24,500 Eli jos kaikki jouset ovat samanpituiset, voit hypätä noin paljon tehokkaammin. 443 00:26:24,500 --> 00:26:26,710 Niin, että voi olla hyötyä suorituskyvyn, 444 00:26:26,710 --> 00:26:29,420 mutta tyypillisesti sinulla ei ole ylellisyyttä tietää etukäteen, 445 00:26:29,420 --> 00:26:32,170 joten varchar on tie. 446 00:26:32,170 --> 00:26:36,030 Tässä toinen yksityiskohta, että vaikka Facebook törmäsi lopulta. 447 00:26:36,030 --> 00:26:39,670 Ints ovat suuria, ja me tavallaan käyttää niitä oletuksena tahansa haluamme numero, 448 00:26:39,670 --> 00:26:41,750 mutta se on vain 32 bittiä. 449 00:26:41,750 --> 00:26:46,210 >> Ja vaikka Facebook ei aivan ole 4000000000 käyttäjiä nyt, 450 00:26:46,210 --> 00:26:48,680 siellä on varmasti joitakin ihmisiä siellä useita tilejä 451 00:26:48,680 --> 00:26:50,960 tai tilejä, jotka on avattu ja suljettu, 452 00:26:50,960 --> 00:26:55,130 ja niin Facebook itse uskon muutama vuosi sitten oli siirtyminen int 453 00:26:55,130 --> 00:27:00,010 on, kuten on osuvasti sanottu, bigint, joka on vain 64 bittiä sijaan. 454 00:27:00,010 --> 00:27:02,230 Joten tämäkin on suunnittelu päätös. 455 00:27:02,230 --> 00:27:06,570 Sinun olisi uskomattoman onnekas jos opinnäytetyö muuttuu käynnistyksen, 456 00:27:06,570 --> 00:27:10,010 on 4 miljardia euroa ja 1 käyttäjien, antaa tai ottaa, 457 00:27:10,010 --> 00:27:13,200 jolloin käytetään ints ehkä hieman lyhytnäköistä. 458 00:27:13,200 --> 00:27:16,230 Mutta todellisuudessa, käyttäjät pöytä on todennäköisesti hieno ints. 459 00:27:16,230 --> 00:27:19,340 Mutta jotain PSET 7, kuten teidän historia pöytä, 460 00:27:19,340 --> 00:27:23,700 saatat olla tuhansia, miljoonia käyttäjiä, jos kehittyä etrade.com. 461 00:27:23,700 --> 00:27:26,020 Joten taas et ehkä yli 4 miljardia käyttäjää, 462 00:27:26,020 --> 00:27:30,070 niille käyttäjille sinulla on ehkä enemmän kuin 4 miljardia maksutapahtumaa ajan - 463 00:27:30,070 --> 00:27:33,200 ostaa ja myy sekä asioita niiden historiasta. 464 00:27:33,200 --> 00:27:38,090 Joten jos et ennakoida - jälleen, nämä ovat hyviä ongelmista on, jos sinulla on paljon tietoa - 465 00:27:38,090 --> 00:27:40,920 jos et ennakoida tietoja ylittää koko int- 466 00:27:40,920 --> 00:27:47,740 menossa jotain bigint on suuntaa ei usein riitä hyväksynyt suunnittelijat 467 00:27:47,740 --> 00:27:49,710 koska ihmiset luku ei tule olemaan ongelma, 468 00:27:49,710 --> 00:27:51,930 mutta se on tämä helppo valita jotain suurempaa kuin se. 469 00:27:51,930 --> 00:27:55,380 Desimaali käytämme vuonna PSET 7, jossa määritellään kiinteä tarkkuus 470 00:27:55,380 --> 00:27:59,840 joten voit välttää kysymyksiä, joihin kellukkeet ja tuplaa ja realia ja vastaavat. 471 00:27:59,840 --> 00:28:02,440 >> Ja sitten on joitakin muita kenttiä täällä. Me heiluttaa käsiämme niitä jossain määrin. 472 00:28:02,440 --> 00:28:07,270 Mutta ajoista kaikilla on määrätty muodossa MySQL, 473 00:28:07,270 --> 00:28:10,830 ja etu tallentaa päivämäärät koska päivät eikä varchars 474 00:28:10,830 --> 00:28:15,730 tarkoittaa, että tietokanta voi todella muotoile ne eri formaatteja, 475 00:28:15,730 --> 00:28:18,800 onko Yhdysvaltojen muodossa tai eurooppalainen malli tms. - mutta haluat - 476 00:28:18,800 --> 00:28:22,700 paljon tehokkaammin kuin jos se olisi vain joitakin yleisiä varchar. 477 00:28:22,700 --> 00:28:25,150 Ja sitten on joitakin muita binary, varbinary, läiskä. 478 00:28:25,150 --> 00:28:28,580 Nämä ovat binääri suuria esineitä, ja voit myös tallentaa binaaridataa 479 00:28:28,580 --> 00:28:30,750 sekä geometriset tiedot tietokantaan. 480 00:28:30,750 --> 00:28:34,350 Mutta meille me yleensä välitä ints ja varchars ja vastaavat. 481 00:28:34,350 --> 00:28:36,230 Lopetetaan tätä esimerkiksi talon. 482 00:28:36,230 --> 00:28:40,030 Talo Aion mielivaltaisesti sanoa on 255 merkkiä. 483 00:28:40,030 --> 00:28:42,850 Sitten oletusarvo voisimme tehdä tämän. 484 00:28:42,850 --> 00:28:47,440 Voisimme oletuksena laittaa kaikille Mather Talo, esimerkiksi. 485 00:28:47,440 --> 00:28:49,710 Näin voisimme määrittää, että tietokanta 486 00:28:49,710 --> 00:28:52,460 olisi huolehdittava siitä, että joku on aina arvo. Mutta jätän sen olla. 487 00:28:52,460 --> 00:28:55,270 Itse asiassa, ihmiset, jotka elävät kampuksella eikä talossa, 488 00:28:55,270 --> 00:28:59,590 Ehkä olen itse haluan täsmentää, että oletusarvo talo on NULL, 489 00:28:59,590 --> 00:29:04,890 ja sitten minun täytyy tarkistaa tämä valintaruutu ja kertoa tietokanta on okei, jos käyttäjän talo on NULL. 490 00:29:04,890 --> 00:29:07,270 >> Tämäkin on toinen puolustusmekanismi voit ottaa käyttöön 491 00:29:07,270 --> 00:29:10,590 joten sinun ei tarvitse edes laittaa sen omaan PHP välttämättä. 492 00:29:10,590 --> 00:29:14,630 Tietokanta varmistaa, että asiat ovat tai eivät ole NULL. 493 00:29:14,630 --> 00:29:17,310 Ja sitten lopuksi, attribuutit. 494 00:29:17,310 --> 00:29:18,920 Mikään näistä ovat todella merkitystä. 495 00:29:18,920 --> 00:29:22,880 Binary, allekirjoittamaton - mikään näistä on merkitystä varchar. 496 00:29:22,880 --> 00:29:24,220 Index. 497 00:29:24,220 --> 00:29:27,320 Onko kukaan tiedä tai muista tai on arvaus siitä, mitä indeksi on 498 00:29:27,320 --> 00:29:29,510 jotain kuten talon? 499 00:29:29,510 --> 00:29:35,240 Tämäkin on todella tärkeä ja suhteellisen helppo malli päätös. 500 00:29:35,240 --> 00:29:39,200 Niille, jotka eivät vielä ole nähneet sitä, perjantaina puhuimme lyhyesti ensisijaisia ​​avaimia. 501 00:29:39,200 --> 00:29:43,240 Tietokantaan taulukon, perusavain on kenttä tai sarake 502 00:29:43,240 --> 00:29:46,270 joka yksilöi Taulukon rivit. 503 00:29:46,270 --> 00:29:49,150 Joten tässä taulukossa olemme tunnukset, meillä on nimet ja sähköpostit. 504 00:29:49,150 --> 00:29:52,050 Mikä näistä on paras ehdokas olla perusavain, 505 00:29:52,050 --> 00:29:55,810 jonka tehtävänä on tunnistaa rivit? 506 00:29:55,810 --> 00:29:57,530 Luultavasti tunnus. 507 00:29:57,530 --> 00:29:59,930 Ilmeisesti voisimme myös käyttää mitä vaikka? 508 00:29:59,930 --> 00:30:02,860 Ehkä voisit käyttää sähköpostia, koska teoriassa se on ainutlaatuinen 509 00:30:02,860 --> 00:30:05,380 ellei ihmiset jakavat sähköpostitilejä. 510 00:30:05,380 --> 00:30:09,980 Mutta tosiasia on, että jos käytät numeerinen tunnus, kuten 1234, 511 00:30:09,980 --> 00:30:14,170 se on vain 32 bittiä, kun taas sähköpostiosoitteen voisi olla näin monta tavua tai näin monta tavua. 512 00:30:14,170 --> 00:30:16,610 Joten tehokkuuden tunnistenimien, 513 00:30:16,610 --> 00:30:19,270 se on yleensä hyviä käytäntöjä vain käyttää int 514 00:30:19,270 --> 00:30:23,090 vaikka sinulla on joitakin merkkijono ehdokas että voisit todennäköisesti käyttää. 515 00:30:23,090 --> 00:30:26,760 >> Saat jotain talon, tämän ei pitäisi olla perusavain 516 00:30:26,760 --> 00:30:30,770 koska silloin vain 1 henkilö voisi elää Mather ja 1 henkilö Currier ja vastaavat. 517 00:30:30,770 --> 00:30:32,790 Samoin ei pitäisi olla ainutlaatuinen. 518 00:30:32,790 --> 00:30:37,830 Erotus ensiö-ja ainutlaatuinen, että siinä tapauksessa nykyiseen taulukon 519 00:30:37,830 --> 00:30:42,620 ID olisi ensisijainen, mutta sähköposti ei ole ensisijainen syystä juuri mainitsimme - 520 00:30:42,620 --> 00:30:44,740 suorituskyky - mutta se olisi silti olla yksilöllinen. 521 00:30:44,740 --> 00:30:47,200 Joten voit silti valvoa ainutlaatuisuutta tekemättä väitettä 522 00:30:47,200 --> 00:30:49,520 että se on erittäin tärkeä ensisijainen kenttä. 523 00:30:49,520 --> 00:30:52,610 Mutta tämä on varsin hyödyllistä: Index. 524 00:30:52,610 --> 00:30:56,180 Jos tiedät jo etukäteen opinnäytetyö, sillä PSET 7 tai yleisesti 525 00:30:56,180 --> 00:30:59,480 että tämän alan talo tulee olemaan jotain etsiä paljon 526 00:30:59,480 --> 00:31:01,910 käyttäen valitsemalla avainsanan tai jotain muuta, 527 00:31:01,910 --> 00:31:05,180 voit ennaltaehkäisevästi kertoa tietokantaan työtä sen taika 528 00:31:05,180 --> 00:31:10,510 ja varmista, että se luo muistiin mitään fancy tietorakenteet tarpeen 529 00:31:10,510 --> 00:31:13,770 nopeuttamaan hakuja perustuu talon. 530 00:31:13,770 --> 00:31:17,860 Ehkä se käyttää hash-taulukko, ehkä se käyttää linkitetty lista. 531 00:31:17,860 --> 00:31:21,260 Todellisuudessa, sillä on taipumus käyttää puu, usein rakennetta kutsutaan B-puu - 532 00:31:21,260 --> 00:31:24,090 ei binääripuu, mutta B-puu - mikä on erittäin laaja puu 533 00:31:24,090 --> 00:31:27,370 että saatat nähdä luokassa kuin CS124, tietorakenteiden luokkaa. 534 00:31:27,370 --> 00:31:31,800 Mutta lyhyt, sinun ei tarvitse huolehtia siitä, että käytettäessä Smart tietokantaohjelmisto. 535 00:31:31,800 --> 00:31:35,890 Voit vain kertoa sen, "Index tällä alalla niin voin hakea sen tehokkaammin." 536 00:31:35,890 --> 00:31:40,250 >> Jos jätät tämän pois ja yrität etsiä kaikille tietokannassa asuva Mather, 537 00:31:40,250 --> 00:31:42,710 se hajauttaa osaksi lineaarista hakua. 538 00:31:42,710 --> 00:31:45,360 Ja jos sinulla 6000 undergrads kaikki elävät joissakin talossa, 539 00:31:45,360 --> 00:31:47,900 aiot etsiä koko taulukosta löytää Matherites, 540 00:31:47,900 --> 00:31:52,190 katsoo, että jos sanot indeksi, toivottavasti se on jotain lähellä logaritmista haku 541 00:31:52,190 --> 00:31:54,510 löytää tuollaiset opiskelijoita. 542 00:31:54,510 --> 00:31:56,750 Tämä on vain ilmainen ominaisuus päälle, 543 00:31:56,750 --> 00:31:59,530 vaikka se ei tullut hintaan jonkin verran tilaa. 544 00:31:59,530 --> 00:32:02,690 Lopuksi, automaattinen kasvu, tämä AI kenttä, 545 00:32:02,690 --> 00:32:05,830 mikä tarkoittaa vain, jos se on int ja et halua välitä kasvattaa itse 546 00:32:05,830 --> 00:32:07,570 joka kerta on uusi käyttäjä, tarkista, että 547 00:32:07,570 --> 00:32:11,910 ja jokainen käyttäjä, joka saa lisätään automaattisesti saa uuden tunnuksen. 548 00:32:11,910 --> 00:32:15,620 Katsotaanpa valitse Tallenna, ja nyt etsitään vikaa tällä grafiikalla. 549 00:32:15,620 --> 00:32:20,200 Jos menen Selata, huomaa, että molemmat Mike ja taloni on NULL. 550 00:32:20,200 --> 00:32:22,420 Voin käyttää phpMyAdmin muokata manuaalisesti. 551 00:32:22,420 --> 00:32:25,110 Voin mennä tänne ja kirjoita Mather ja paina sitten Enter- 552 00:32:25,110 --> 00:32:27,740 ja nyt huomaa pöytä on erilainen. 553 00:32:27,740 --> 00:32:29,270 Mutta huomaa, että voisin tehdä jotain muutakin. 554 00:32:29,270 --> 00:32:33,530 Daavidin tunnus on 1, joten phpMyAdmin taas on vain hallinnollinen väline; 555 00:32:33,530 --> 00:32:35,970 tämä ei ole jotain käyttäjät eivät ikinä nähdä. 556 00:32:35,970 --> 00:32:38,810 Joten jos olen sen sijaan napsauttamalla SQL-välilehti ylös - 557 00:32:38,810 --> 00:32:41,450 ja jälleen PSET 7 esittelee sinulle enemmän nämä kyselyt - 558 00:32:41,450 --> 00:32:45,260 Voin itse suorittaa SQL Structured Query Language komento 559 00:32:45,260 --> 00:32:56,410 UPDATE käyttäjät SET house = 'Pfoho' WHERE id = 1. 560 00:32:56,410 --> 00:33:00,830 Nämä SQL-kyselyjä ovat kauniisti tarpeeksi, melko luettavissa vasemmalta oikealle. 561 00:33:00,830 --> 00:33:04,350 Päivitä käyttäjien taulukon, aseta kentän nimeltään talon Pfoho 562 00:33:04,350 --> 00:33:06,830 jos käyttäjän tunnus on 1. 563 00:33:06,830 --> 00:33:11,480 Tai voisin jopa tehdä missä email = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 Niin kauan kuin joka yksilöi minulle, että toimisi yhtä hyvin. 565 00:33:14,860 --> 00:33:18,810 Mutta tunnus on yleensä parempaa suorituskykyä, joten Tehdään se. 566 00:33:18,810 --> 00:33:22,950 Mennään sitten Go. Okei, lecture.users ei ole olemassa. Mikä on minun virhe? 567 00:33:22,950 --> 00:33:26,220 Mikä pöydän todella kutsutaan täällä? 568 00:33:26,220 --> 00:33:28,770 Sitä kutsutaan opiskelijoita vain koska sitähän me teimme täällä ylhäällä vasemmalla. 569 00:33:28,770 --> 00:33:31,860 Sitä kutsutaan opiskelijoita, eikä käyttäjiä. Joten valitse Siirry nyt. 570 00:33:31,860 --> 00:33:34,330 1 rivi vaikuttaa. Haku kesti 0,01 sekuntia. 571 00:33:34,330 --> 00:33:38,010 Jos minä klikkaa Selaa nyt, nyt Malan asuu Pfoho. 572 00:33:38,010 --> 00:33:42,070 Joten se on toinen maku SQL, mutta PSET opastaa vähän enemmän siitä. 573 00:33:42,070 --> 00:33:44,710 >> On typerää päätöstä olen jo tehnyt täällä. 574 00:33:44,710 --> 00:33:47,820 Väitän, että tämä Tietokannan suunnittelu on tehotonta 575 00:33:47,820 --> 00:33:51,650 koska useammat ihmiset minun lisätä opiskelijoiden taulukkoon, 576 00:33:51,650 --> 00:33:54,730 enemmän meistä aloitan lisäämällä enemmän TF aloitan lisäämällä, 577 00:33:54,730 --> 00:33:58,320 aiomme alkaa nähdä, mitä irtisanomisia tässä taulukossa? 578 00:34:00,840 --> 00:34:06,020 >> Joo. [Opiskelija] Seeing että se on opiskelijoiden, käytämme samaa [kuulumattomissa] 579 00:34:06,020 --> 00:34:07,360 Sama - Aivan, aivan. 580 00:34:07,360 --> 00:34:10,400 Joten jos 400 ihmistä asuu Mather, antaa tai ottaa, 581 00:34:10,400 --> 00:34:15,000 Lopulta tämä taulukko tulee olemaan 400 riviä, jotka sanovat "Mather," "Mather," 582 00:34:15,000 --> 00:34:16,590 "Mather", "Mather", "Mather." 583 00:34:16,590 --> 00:34:19,820 Me tuhlaamme kaikki nämä tavut, ja siellä on pari takeaways siellä. 584 00:34:19,820 --> 00:34:23,080 1, siellä hullu nurkkaan silloin, jos joku maksaa paljon rahaa 585 00:34:23,080 --> 00:34:25,949 ja nimeää Mather, meillä on nyt muuttamassa koko tietokannan taulukkoon. 586 00:34:25,949 --> 00:34:29,730 Se ei tule tapahtumaan usein, vaikka Pfoho oli kerran kutsutaan Pohjois House 15 vuotta sitten, 587 00:34:29,730 --> 00:34:32,310 niin se tapahtuu. Mutta ei siinä kaikki, että pakottavia. 588 00:34:32,310 --> 00:34:36,000 Houkuttelevampia kuin nurkkaan tapaus kuin että tarvitsee päivittää tietoja irtotavarana 589 00:34:36,000 --> 00:34:41,150 sillä tietokanta on miksi tallentamiseen MATHER uudestaan ​​ja uudestaan ​​ja uudestaan ​​ja uudestaan? 590 00:34:41,150 --> 00:34:43,020 Se on paljon merkkiä, 6 merkkiä. 591 00:34:43,020 --> 00:34:45,500 Emmekö vieläkin paremmin, varsinkin Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 Voimme varmasti tehdä paremmin kuin moni merkkiä. 593 00:34:48,320 --> 00:34:51,790 Miksi ei vain yhdistä yksilöllinen tunniste jokaisen talon 594 00:34:51,790 --> 00:34:55,020 ja myymälä että jokaiselle käyttäjälle? Joten kokeile tätä. 595 00:34:55,020 --> 00:35:00,610 Sen sijaan vain käyttää opiskelijoiden taulukkoa, anna minun mennä jopa minun luento tietokantaan täällä ylhäällä vasemmalla. 596 00:35:00,610 --> 00:35:02,600 Huomaa tässä sanotaan Luo taulukko. 597 00:35:02,600 --> 00:35:04,550 Saanen luoda uuden taulukon nimeltä taloja. 598 00:35:04,550 --> 00:35:08,880 Sarakkeiden määrä tulee olemaan 2. Enter. 599 00:35:08,880 --> 00:35:11,200 Nyt minulla on 2 kenttää. 600 00:35:11,200 --> 00:35:14,600 Aion kutsua tätä nimeä, ja se tulee olemaan varchar pituuden 255, 601 00:35:14,600 --> 00:35:18,770 >> mutta se on melko mielivaltainen. Sanon tämän tänne sopimuksin. 602 00:35:18,770 --> 00:35:22,840 Joten laita ID tänne. Annetaan jokaisen talon yksilöllinen tunniste. 603 00:35:22,840 --> 00:35:25,360 Annetaan jokaisen talon nimi. 604 00:35:25,360 --> 00:35:30,980 Katsotaanpa täsmennetään, että tunniste on allekirjoittamaton vain sopimuksen mukaan käyttää vain positiivisia lukuja. 605 00:35:30,980 --> 00:35:35,020 Mennään eteenpäin ja antaa tämän automaattisen lisäyksen kenttä nyt. 606 00:35:35,020 --> 00:35:38,160 Ja me tarvitsemme jotain muuta? 607 00:35:38,160 --> 00:35:41,010 Mennään eteenpäin ja valitse Tallenna. 608 00:35:41,010 --> 00:35:42,480 Nyt minulla on toisessa taulukossa. 609 00:35:42,480 --> 00:35:45,860 Ilmoitus koska syrjään tämä on hieman kryptinen SQL-komennon 610 00:35:45,860 --> 00:35:50,280 että sinulla olisi pitänyt kirjoittaa käsin, jos et käytä hallinnollista työkalua kuten phpMyAdmin. 611 00:35:50,280 --> 00:35:51,990 Joten toinen syy käytämme sitä. 612 00:35:51,990 --> 00:35:55,480 Se on ihanan hyödyllistä tavallaan pedagogisesti koska voit napsauttaa ympäri 613 00:35:55,480 --> 00:36:01,050 ja selvittää, miten asiat toimivat vain hieman kopioimalla mitä phpMyAdmin teki. 614 00:36:01,050 --> 00:36:04,150 Mutta luoda taulukko-komento on mitä juuri teloitettiin, ja tässä on minun taulukossa. 615 00:36:04,150 --> 00:36:11,370 Anna minun mennä eteenpäin nyt ja käyttää raaka SQL sijaan pelkistettyjen klikkaamalla Lisää-välilehden. 616 00:36:11,370 --> 00:36:15,040 Anna minun tehdä INSERT INTO taloja, 617 00:36:15,040 --> 00:36:22,230 ja aion sanoa nimeä talon tulee olemaan arvo "Mather". 618 00:36:22,230 --> 00:36:24,790 Siinä kaikki. Tämä syntaksi on hieman arvoituksellinen. 619 00:36:24,790 --> 00:36:26,660 Tämä on nimi kenttien haluamme lisätä. 620 00:36:26,660 --> 00:36:30,390 Nämä ovat arvoja haluamme lisätä noihin kenttiin. Minäpä valitse Siirry. 621 00:36:30,390 --> 00:36:34,410 1 krs lisätty kesti 0,02 sekuntia. Saanen napsauta Selaa nyt. 622 00:36:34,410 --> 00:36:42,020 >> Ilmoitus jos valitset Selaa, siellä Mather, jonka tunnus on automaation numero 1. 623 00:36:42,020 --> 00:36:45,000 Anna minun tehdä toinen. Sallikaa minun mennä SQL-välilehti. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO taloa. Nimen talon tulee olla arvo Pfoho ja niin edelleen. 625 00:36:52,950 --> 00:36:56,350 Go. Ja voin jatkaa tätä uudestaan ​​ja uudestaan ​​ja uudestaan. 626 00:36:56,350 --> 00:36:59,470 Tai jos kyllästyt käyttäen phpMyAdmin, voit vain käyttää Lisää-välilehden 627 00:36:59,470 --> 00:37:01,000 ja ei tarvitse kirjoittaa raaka SQL. 628 00:37:01,000 --> 00:37:04,690 Voit vain paukuttaa sitä nopeammin kirjoittamalla esimerkiksi Currier, Enter, 629 00:37:04,690 --> 00:37:07,610 ja nyt jos valitset Selaa, siellä Currier jossa tunnus on 3. 630 00:37:07,610 --> 00:37:09,920 Joten tämä on mitä me tarkoitamme automaattinen lisäys. 631 00:37:09,920 --> 00:37:12,280 Mutta nyt meidän täytyy korjata jotain opiskelijoita. 632 00:37:12,280 --> 00:37:16,240 Opiskelijoiden mitä tietotyyppi talon kentän nyt? 633 00:37:16,240 --> 00:37:19,450 Sen pitäisi olla int, eikö? 634 00:37:19,450 --> 00:37:23,950 Joten tavoite tässä on tekijä, sillä muuten tunnetaan normalisoida, taulukot 635 00:37:23,950 --> 00:37:27,940 joten emme säilytä tietoja tarpeettomasti missään minun taulukoita. 636 00:37:27,940 --> 00:37:31,130 Ja vielä, polku olimme täällä aikoo sanoa Mather, Mather, 637 00:37:31,130 --> 00:37:34,220 Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, joka on erittäin tarpeeton 638 00:37:34,220 --> 00:37:36,240 kannalta tuhlausta, että merkkiä. 639 00:37:36,240 --> 00:37:40,820 Joten anna minun mennä eteenpäin ja muuttaa klikkaamalla rakenne, 640 00:37:40,820 --> 00:37:44,620 ja anna minun mennä eteenpäin ja ruksata talon kenttään, valitse Muuta 641 00:37:44,620 --> 00:37:46,990 ja nyt aion vaihtaa tämän olevan int. 642 00:37:46,990 --> 00:37:49,490 255 ei ole enää merkitystä. 643 00:37:49,490 --> 00:37:54,010 Anna minun mennä eteenpäin ja sanoa, että on hienoa, jos se on vielä NULL. Tallenna. 644 00:37:54,010 --> 00:37:55,870 Nyt pöytä opiskelijat on muutettu onnistuneesti, 645 00:37:55,870 --> 00:37:59,090 ja huomaa taas talo on int. 646 00:37:59,090 --> 00:38:02,220 Kuten syrjään, sivuuttaa Suluissa kun se tulee ints. 647 00:38:02,220 --> 00:38:03,770 >> Tämä on legacy-syistä. 648 00:38:03,770 --> 00:38:06,920 Aikoinaan kun ei ole graafisia, voit sen sijaan oli komentoriviltä ympäristön, 649 00:38:06,920 --> 00:38:11,580 10 ja 11 on määritelty, kuinka monta merkkiä pitäisi näkyä 650 00:38:11,580 --> 00:38:13,950 vuonna pääteikkunassa todella näyttää kentät. 651 00:38:13,950 --> 00:38:19,150 Sillä ei ole mitään tekemistä bittipituuden varsinaisen kentän, niin me vain sivuuttaa se nyt. 652 00:38:19,150 --> 00:38:20,990 Nyt minun täytyy mennä tähän taulukkoon. 653 00:38:20,990 --> 00:38:24,610 Ja jos David asuu Mather, talon pitäisi olla 0, 654 00:38:24,610 --> 00:38:27,350 joka on oletusarvo int arvo lähimpänä NULL. 655 00:38:27,350 --> 00:38:29,810 Hänen pitäisi asua talossa 1. 656 00:38:29,810 --> 00:38:36,870 Oletetaan mielivaltaisesti sanoa, että Mike asuu Pfoho, joten talon numero 2. 657 00:38:36,870 --> 00:38:40,160 Nyt minun pöydässäni näyttää hieman arvoituksellisesti. 658 00:38:40,160 --> 00:38:41,960 Mutta pitävät tehokkuutta. 659 00:38:41,960 --> 00:38:44,860 Olen nyt käyttäen vain 32 bittiä tunnistaa talon, 660 00:38:44,860 --> 00:38:49,530 mikä tarkoittaa, että on vain 1 kanoninen määritelmä taloni Mather ja Pfoho 661 00:38:49,530 --> 00:38:52,090 ja se on talojen taulukossa. 662 00:38:52,090 --> 00:38:55,880 Joten jos haluan nyt jälleen näitä taulukoita, ajattele sitä tällä tavalla. 663 00:38:55,880 --> 00:39:01,980 Täällä minulla on opiskelijoita pöytä, ja oikealla puolella on olemassa näitä numeroita, 1 ja 2. 664 00:39:01,980 --> 00:39:04,180 1 on Mather, 2 on Pfoho. 665 00:39:04,180 --> 00:39:08,580 Meillä on samat arvot tässä toisessa taulukossa, joka on nimeltään talot, 666 00:39:08,580 --> 00:39:11,020 1 ja 2 ja 3 ne 3 taloa. 667 00:39:11,020 --> 00:39:14,990 Mitä me nyt haluamme tehdä, on olla kyky koodin, PHP ja SQL- 668 00:39:14,990 --> 00:39:18,800 tavallaan jälleen näistä taulukoista, joissa jos nämä ovat opiskelijoita ja nämä ovat taloja, 669 00:39:18,800 --> 00:39:22,050 haluamme jotenkin yhdistää niin, että 1 linjojen kanssa 1, 670 00:39:22,050 --> 00:39:25,670 2 riviä kanssa 2, ja jotta voimme selvittää, missä David 671 00:39:25,670 --> 00:39:28,000 ja missä Mike ja missä kaikki muutkin asuu. 672 00:39:28,000 --> 00:39:31,850 Voit tehdä tämän voimme suorittaa SQL-kyselyn kuten seuraavat. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM opiskelijoiden JOIN taloja - 674 00:39:40,470 --> 00:39:43,000 Ja nyt, mitä kenttiä haluamme liittyä päälle? 675 00:39:43,000 --> 00:39:49,520 Joten students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> Hieman arvoituksellinen, mutta tämä osa tarkoittaa kirjaimellisesti luoda uuden tilapäinen taulukko 677 00:39:54,150 --> 00:39:56,690 se tulos liittyä opiskelijoiden ja taloja. 678 00:39:56,690 --> 00:40:00,340 Ja miten haluat yhdistää vinkkejä sormiani täällä? 679 00:40:00,340 --> 00:40:05,280 Aseta opiskelijoiden talon kenttään sama talot "-kenttään. 680 00:40:05,280 --> 00:40:10,220 Ja jos minä nyt valitset Siirry, palaan mitä toivoin. 681 00:40:10,220 --> 00:40:15,890 David on Mather, Mike on Pfoho, ja näen myös yksilölliset tunnisteet. 682 00:40:15,890 --> 00:40:18,640 Mutta kohta on nyt minulla täydellinen taulukko. 683 00:40:18,640 --> 00:40:23,020 Ja niin takeaway täällä PSET 7 tai oikeastaan ​​opinnäytetyön: 684 00:40:23,020 --> 00:40:25,830 Jos huomaat, että olet tallentamatta tieto tarpeettomasti, 685 00:40:25,830 --> 00:40:28,850 onko se talo, ehkä se kaupunki, osavaltio ja ZIP 686 00:40:28,850 --> 00:40:32,050 jossa ZIP voi yleensä, mutta ei aina voida käyttää, koska yksilöllinen tunniste, 687 00:40:32,050 --> 00:40:35,810 älä mene läpi harjoituksen henkisesti ja sitten jotain phpMyAdmin 688 00:40:35,810 --> 00:40:40,660 factoring, että yhteiset tiedot, koska varsinkin sivustosi saa enemmän myös käytetään 689 00:40:40,660 --> 00:40:45,440 ja enemmän suosittu, näin varmistat, että kaikki on huippunopea, 690 00:40:45,440 --> 00:40:51,930 antamalla tietokantaan niin monta vinkkejä, ainutlaatuisuus kuin mahdollista. 691 00:40:51,930 --> 00:40:53,860 Se oli paljon. 692 00:40:53,860 --> 00:40:59,010 Kysyttävää? Selvä. Otetaanpa 5 minuutin tauko siellä ja koota. 693 00:41:01,600 --> 00:41:03,540 Selvä. 694 00:41:03,540 --> 00:41:08,680 Seuraavassa on esimerkki siitä, että on käytetty joitakin vuosia sitten kun otin CS161, 695 00:41:08,680 --> 00:41:10,960 joka on käyttöjärjestelmien luokassa college 696 00:41:10,960 --> 00:41:15,160 joka on tunnettu siitä, hämmästyttävä, mutta hullu paljon työtä, 697 00:41:15,160 --> 00:41:19,810 ja se keskittyy todella joitakin matalan tason ongelmia, joita syntyy käyttöjärjestelmissä 698 00:41:19,810 --> 00:41:22,700 ja myös jopa maailman tietokannoista. 699 00:41:22,700 --> 00:41:27,040 >> Tarina, joka kertoi minun professori, Margo Seltzer, että vuosi oli seuraava. 700 00:41:27,040 --> 00:41:30,990 Oletetaan, että sinulla on vähän asuntolan jääkaappi sinulle ja kämppäkaveri 701 00:41:30,990 --> 00:41:34,030 ja molemmat pidät maitoa. 702 00:41:34,030 --> 00:41:36,360 Joten tulet kotiin luokan yksi päivä, kämppis ei ole vielä olemassa, 703 00:41:36,360 --> 00:41:39,650 avaat jääkaapin, ja tajuat, "Oh damn, olemme ulkona maitoa." 704 00:41:39,650 --> 00:41:42,070 Joten sinä suljet jääkaappi, kävelet kadun CVS 705 00:41:42,070 --> 00:41:45,830 ja saada yhä pitkän linjan ostamaan maitoa CVS. 706 00:41:45,830 --> 00:41:48,470 Samalla sinun kämppäkaveri tulee kotiin hänen luokka, 707 00:41:48,470 --> 00:41:51,690 tulee huoneeseen, avaa jääkaapin todella haluavat maitoa, 708 00:41:51,690 --> 00:41:54,130 avaa jääkaappi ja "Hitto, ei maitoa." 709 00:41:54,130 --> 00:41:57,890 Joten hän sulkee jääkaappi, kävelee ulos ovesta, ja menee ABP 710 00:41:57,890 --> 00:42:00,910 tai muualla kuin CVS missä olet aio törmäävät toisiinsa 711 00:42:00,910 --> 00:42:02,790 mennä hakemaan maitoa. 712 00:42:02,790 --> 00:42:04,820 Tietenkin muutamaa minuuttia myöhemmin, molemmat saat takaisin kotiin 713 00:42:04,820 --> 00:42:07,740 ja nyt sinulla on kaksi kertaa niin paljon maitoa kuin sinä itse halusi. 714 00:42:07,740 --> 00:42:10,670 Ja on maitoa, nyt se tulee mennä huonosti, koska pidät maitoa 715 00:42:10,670 --> 00:42:14,200 mutta et todella maitoa, niin nyt sinulla on liikaa maitoa, joten se tulee hapan. 716 00:42:14,200 --> 00:42:16,830 Tämä on kauhea, kauhea tilanne. 717 00:42:16,830 --> 00:42:22,920 Mitä olisi voinut ratkaista tämän ahdinko olisit ensimmäinen kämppis kotona? Kyllä. 718 00:42:22,920 --> 00:42:25,970 [Opiskelija] Sinun olisi pitänyt jättää huomautuksen. [Naurua] 719 00:42:25,970 --> 00:42:28,090 Hyvä. Sinun olisi pitänyt jättää huomautuksen. 720 00:42:28,090 --> 00:42:32,320 Sinun olisi pitänyt laittaa Post-it note tms. sanomalla, "Gone maidon" 721 00:42:32,320 --> 00:42:36,830 ja sitten teidän kämppäkaveri käsitteellisesti olisi lukittu pois todella tekee niin. 722 00:42:36,830 --> 00:42:38,010 Tai voit mennä 1 askel eteenpäin. 723 00:42:38,010 --> 00:42:41,060 Voisit kirjaimellisesti lukita jääkaapin jonkinlainen Lukko, 724 00:42:41,060 --> 00:42:44,870 ja nyt sinun kämppäkaveri tulee kirjaimellisesti lukitaan ulos jääkaappi. 725 00:42:44,870 --> 00:42:48,520 Jos me yleistämään takaisin ohjelmoinnin, 726 00:42:48,520 --> 00:42:51,610 voit melkein ajatella jääkaapin jonkinlaisena muuttujan tai struct, 727 00:42:51,610 --> 00:42:53,500 jonkinlaisen säiliön tietoja. 728 00:42:53,500 --> 00:42:58,290 Ongelmana pohjimmiltaan tässä on, että molemmat teistä saivat tarkastaa 729 00:42:58,290 --> 00:43:02,370 tai lukea tilan tämän tietorakenteen, 730 00:43:02,370 --> 00:43:08,050 mutta näytettiin eri aikoina ja silti molemmat teitte päätöksen 731 00:43:08,050 --> 00:43:11,920 perustuu maailman tilaa noita eri ajankohtina. 732 00:43:11,920 --> 00:43:15,570 Joten jos olisitte lukittu jääkaappi, olisit ainakin välttää kämppis 733 00:43:15,570 --> 00:43:19,070 saamasta voinut tarkastaa maailman tilasta, 734 00:43:19,070 --> 00:43:22,530 joten hän ei olisi voinut tehdä saman päätöksen. 735 00:43:22,530 --> 00:43:25,780 Joten tietokantoja, kuten on käynyt ilmi, on tämä ongelma jatkuvasti. 736 00:43:25,780 --> 00:43:31,050 >> Katsotaan jos voimme rakentaa skenaario. 737 00:43:31,050 --> 00:43:34,310 Oletetaan, että olet tavallaan pahis ja menet Bank of America 738 00:43:34,310 --> 00:43:37,950 tai yksi muista paikoista neliö, joka on pari pankkiautomaatit vierekkäin, 739 00:43:37,950 --> 00:43:41,200 ja jotenkin tajunnut, miten kahtena Pankkiautomaattikortti - eivät kaikki, että kova. 740 00:43:41,200 --> 00:43:42,730 Se on vain magneettinauha. 741 00:43:42,730 --> 00:43:45,180 Ja niin, mitä haluat yrittää tehdä, on pelata tätä peliä 742 00:43:45,180 --> 00:43:49,060 jolloin laitat 1 kortin 1 kone, toinen kortti toiseen koneeseen, 743 00:43:49,060 --> 00:43:51,980 ja te pohjimmiltaan haluat yrittää nostaa rahaa samanaikaisesti, 744 00:43:51,980 --> 00:43:54,930 koska kuvitella, että tarina menee seuraavasti. 745 00:43:54,930 --> 00:43:57,350 Kone vasemmalla vie kortin ja PIN- 746 00:43:57,350 --> 00:44:00,240 ja sitten sanot, "Anna minulle 100 dollaria." 747 00:44:00,240 --> 00:44:04,790 ATM on ohjelmoitu ensin tehdä valitsemalla sen tietokantaan tai vastaava - 748 00:44:04,790 --> 00:44:10,780 mitä tietokantaa se käyttää - nähdä tämä käyttäjä on ainakin 100 dollaria hänen tilille? 749 00:44:10,780 --> 00:44:16,180 Jos näin on, niin sylkemään 100 dollaria ja vähentää 100 dollaria niiden tasapaino. 750 00:44:16,180 --> 00:44:20,470 Mutta tietysti jos on useampia koneita täällä tai useita tapoja tarkastaa 751 00:44:20,470 --> 00:44:23,560 tilaa että maailman pankkiholviin, kuinka paljon rahaa sinulla on, 752 00:44:23,560 --> 00:44:26,780 Oletetaan, että vain sattumalta koneen vasemmalla ja oikealla 753 00:44:26,780 --> 00:44:30,140 molemmat kysymään tuollaista suunnilleen samaan hetkellä. 754 00:44:30,140 --> 00:44:34,160 >> Ja tämä voi varmasti tapahtua. Pankkiautomaatit ovat tietokoneita näinä päivinä. 755 00:44:34,160 --> 00:44:37,670 Eli jos koneen vasemmalla sanoo: "Kyllä, olet vähintään $ 100," 756 00:44:37,670 --> 00:44:42,150 välin koneen oikealla sanoo: "Kyllä, olet vähintään $ 100," 757 00:44:42,150 --> 00:44:47,420 Sitten molemmat edetä loppuun ohjelmiaan ja todella sylkemään 100 dollaria 758 00:44:47,420 --> 00:44:50,820 ja sanoa: "Aiemmin sinulla oli 200 dollaria." 759 00:44:50,820 --> 00:44:54,890 "Haluan päivittää muuttujan nyt 100 dollaria jäljellä tilille." 760 00:44:54,890 --> 00:44:58,780 Mutta jos molemmat ovat tarkistaneet tilisi saldo ja totesi, että se on 200 dollaria 761 00:44:58,780 --> 00:45:02,000 ja molemmat tee matematiikka ja sanovat 200-100, 762 00:45:02,000 --> 00:45:06,990 koneet ovat mahdollisesti sylkäistä kaksi 100 dollaria laskut kunkin koneen 763 00:45:06,990 --> 00:45:11,360 mutta he vain päivittänyt summa tilin saldo on 100 dollaria. 764 00:45:11,360 --> 00:45:15,130 Toisin sanoen, olet ottanut 200 dollaria, mutta koska ne tarkastanut maailman tilasta 765 00:45:15,130 --> 00:45:18,840 samanaikaisesti ja sitten tehdään päätös perustuu tähän arvoon, 766 00:45:18,840 --> 00:45:21,930 he eivät tee matematiikkaa lopulta oikein. 767 00:45:21,930 --> 00:45:25,520 Joten pankin tilanne on myös todella haluat olla jonkinlainen lockout 768 00:45:25,520 --> 00:45:28,450 niin että heti kun olet tarkistanut tila joidenkin muuttujan 769 00:45:28,450 --> 00:45:31,220 se on todella tärkeää, kuten tilisi saldon, 770 00:45:31,220 --> 00:45:36,070 älä anna kenenkään muun tehdä päätöksiä, jotka perustuvat että kunnes olet valmis tekemässä juttusi, 771 00:45:36,070 --> 00:45:38,920 jos tässä tapauksessa olet ATM vasemmalla. 772 00:45:38,920 --> 00:45:41,160 Lukitse kaikki muut pois. 773 00:45:41,160 --> 00:45:44,650 Voit todella saavuttaa tämä vaikutus on pari eri tavoin. 774 00:45:44,650 --> 00:45:48,660 >> Yksinkertaisin tapa MySQL on rivi SQL jotka annoimme sinulle 775 00:45:48,660 --> 00:45:52,030 vuonna Harjoitus erittely, joka näyttää täsmälleen samalta kuin tämä. 776 00:45:52,030 --> 00:45:57,420 Sisällyttävät taulukkoon - mikä sen nimi - id, symboli, ja osake Osakkeiden lukumäärä, 777 00:45:57,420 --> 00:45:59,660 seuraavat arvot, esimerkiksi. 778 00:45:59,660 --> 00:46:03,370 Jos et ole lukenut spec vielä, tämä on esimerkki, johon miten edetä 779 00:46:03,370 --> 00:46:07,340 ostaa 10 osaketta tämän penniäkään varastossa presidentti Skroob, 780 00:46:07,340 --> 00:46:10,340 jonka käyttäjätunnus sattuu olemaan numero 7? 781 00:46:10,340 --> 00:46:14,070 Tämä kertoo INSERT INTO taulukko seuraavasti id, symboli, ja osakkeiden lukumäärä 782 00:46:14,070 --> 00:46:18,200 7, "DVN.V", ja 10. 783 00:46:18,200 --> 00:46:21,510 Mutta - mutta, mutta, mutta - toinen rivi on tärkeä. 784 00:46:21,510 --> 00:46:26,310 Rinnakkaismääritysten KEY UPDATE osaketta = Osakkeiden + VALUES (osakkeet). 785 00:46:26,310 --> 00:46:28,350 Joten täysin arvoituksellinen näköinen ensisilmäyksellä. 786 00:46:28,350 --> 00:46:31,990 Mutta se, että tämä SQL kysely, vaikka se kietoutuu päälle 2 riviä, 787 00:46:31,990 --> 00:46:35,920 on 1 pitkä kysely, se tarkoittaa että se on atomi 788 00:46:35,920 --> 00:46:41,000 siinä mielessä, että tämä kysely joko suoritetaan kaikki yhdessä tai ei lainkaan. 789 00:46:41,000 --> 00:46:45,100 Ja määritelmä MySQL, se miten ne pannaan täytäntöön tämän kyselyn. 790 00:46:45,100 --> 00:46:51,010 Se on määritelmän käyttöohjeessa taattu suorittaa kaikki kerralla tai ei lainkaan. 791 00:46:51,010 --> 00:46:54,020 Motivaatio tähän on seuraava. 792 00:46:54,020 --> 00:46:58,540 Jos tässä tapauksessa yrität ostaa 10 osakkeella, 793 00:46:58,540 --> 00:47:02,260 se on tavallaan sama juttu kuin maitoa, se on tavallaan sama juttu kuin ATM. 794 00:47:02,260 --> 00:47:04,970 >> Jos teet virheen, ei tällä syntaksia 795 00:47:04,970 --> 00:47:09,610 vaan valitaan tietokannasta kuinka monta osaketta tämän penniäkään varastossa 796 00:47:09,610 --> 00:47:13,750 ei presidentti Skroob on, ja kai hänellä on 10 osaketta, 797 00:47:13,750 --> 00:47:19,330 ja sitten jotkut sekunnin murto myöhemmin voit sitten tehdä UPDATE lausunto, 798 00:47:19,330 --> 00:47:24,810 joka on toinen lausuma SQL joka sanoo mennä eteenpäin ja lisätä 10 enemmän osakkeita 799 00:47:24,810 --> 00:47:28,700 Hänen nykyinen 10 siten, että ihannetapauksessa koko on 20, 800 00:47:28,700 --> 00:47:33,490 Ongelma johtuu siitä, että nykypäivän tietokantajärjestelmät ja koska nykypäivän tietokoneet 801 00:47:33,490 --> 00:47:35,990 sinulla on useita prosessorit, useita sydämiä - 802 00:47:35,990 --> 00:47:38,920 Toisin sanoen, tietokoneet voivat kirjaimellisesti tehdä useita asioita samanaikaisesti - 803 00:47:38,920 --> 00:47:44,270 ei ole mitään takeita, että SELECT ja teidän UPDATE tässä tapauksessa 804 00:47:44,270 --> 00:47:46,150 tulee tapahtumaan peräkkäin. 805 00:47:46,150 --> 00:47:49,140 Joten huono skenaario olisi et SELECT 806 00:47:49,140 --> 00:47:51,670 kuinka monta osaketta tämän penniäkään varastossa ei Skroob on, 807 00:47:51,670 --> 00:47:54,710 ja sitten vain sattumalta toisen tietokannan kysely suoritetaan - 808 00:47:54,710 --> 00:47:57,740 Ehkä sen Skroob toisessa selainikkunassa yrittää ostaa 10 osaketta 809 00:47:57,740 --> 00:48:00,700 toisessa ikkunassa kokonaan, aivan kuten ATM - 810 00:48:00,700 --> 00:48:05,410 ja olettaa, että toinen kysely joutuu välillä SELECT ja UPDATE. 811 00:48:05,410 --> 00:48:10,210 Se voisi olla, että Skroob nyt menettää osan osakkeista 812 00:48:10,210 --> 00:48:14,340 koska toinen prosessi tarkastus tilaa hänen maailmansa, 813 00:48:14,340 --> 00:48:17,800 tai hän saa enemmän osakkeita kuin hänen olisi pitänyt. 814 00:48:17,800 --> 00:48:23,250 Emme aio mennä tiedot mitä nuo erityisesti juonen olisi, 815 00:48:23,250 --> 00:48:28,380 mutta kohta on, jos sinulla on tarkistaa muuttujien arvo ja sitten tehdä päätös, 816 00:48:28,380 --> 00:48:32,500 jos on vaara, että joku muu tekee jotain välillä 2 lausunnot, 817 00:48:32,500 --> 00:48:36,220 kuten voi tapahtua moniprosessorijärjestelmät vuonna multicore järjestelmissä, 818 00:48:36,220 --> 00:48:41,220 tietokoneet kyky tehdä useita asioita samanaikaisesti, pahoja asioita voi tapahtua 819 00:48:41,220 --> 00:48:44,530 kuten pankkitilit on veloitettu virheellisesti, ostavat kaksi kertaa niin paljon maitoa, 820 00:48:44,530 --> 00:48:46,730 tai tässä tapauksessa väärä osakkeiden lukumäärä. 821 00:48:46,730 --> 00:48:48,370 Mutta on helpompi tapa ajatella tätä. 822 00:48:48,370 --> 00:48:53,290 >> On käynyt ilmi, että SQL tukee myös, jos määrittelet taulukon oikein, 823 00:48:53,290 --> 00:48:56,920 jotain kutsutaan liiketoimet, jotka väitän todella vieläkin helpompi ymmärtää 824 00:48:56,920 --> 00:49:00,650 kuin tämä, mutta se ei ole 1-liner, joten se on oikeastaan ​​hieman enemmän mukana. 825 00:49:00,650 --> 00:49:04,960 On kirjaimellisesti lausuma SQL kutsutaan START TRANSACTION. 826 00:49:04,960 --> 00:49:08,300 Aivan kuten siellä SELECT, UPDATE, INSERT, DELETE ja JOIN sekä joukko muita, 827 00:49:08,300 --> 00:49:10,970 olemassa avainsanoja, kuten START TRANSACTION. 828 00:49:10,970 --> 00:49:13,560 Ja mitä sitten tehdä osana PSET 7 - 829 00:49:13,560 --> 00:49:17,270 sinun ei tarvitse tehdä tätä PSET 7, se on nimenomaan poissuljettu koska ei ole tarpeen, 830 00:49:17,270 --> 00:49:18,830 mutta lopullinen hankkeille voi olla hyödyllistä - 831 00:49:18,830 --> 00:49:22,820 Jos soitat kyselyn START TRANSACTION ja sitten toinen kysely 832 00:49:22,820 --> 00:49:25,620 ja sitten toisen kyselyn, ja sitten toinen, toinen, ja toinen, 833 00:49:25,620 --> 00:49:31,860 nämä kyselyt eivät tosiasiassa panna täytäntöön ennen kuin soitat SQL COMMIT, 834 00:49:31,860 --> 00:49:37,220 jolloin, oliko se 2 lausuntoja tai 20 lausuntoja, ne kaikki toteutetaan kerralla, 835 00:49:37,220 --> 00:49:42,770 mikä tarkoittaa, ettei kukaan muu voi vahingossa ostaa liikaa maitoa tai pankkikortilla liikaa rahaa 836 00:49:42,770 --> 00:49:46,340 tai ostaa liikaa osakkeita, koska kaikki kyselyt tulee suorittaa 837 00:49:46,340 --> 00:49:48,410 takaisin takaisin takaisin takaisin. 838 00:49:48,410 --> 00:49:51,580 Ja tämä on erittäin tärkeä, varsinkin kun teet jotain tällaista. 839 00:49:51,580 --> 00:49:54,900 Tämä on mielivaltainen esimerkki, joka kertoo Katsotaan päivittää pankkitilille 840 00:49:54,900 --> 00:50:00,200 asettamalla tasapaino sama saldo - 1000 dollaria, jos tilinumero on 2. 841 00:50:00,200 --> 00:50:04,260 Ja sitten toinen lause nyt mennään tallettaa että 1000 dollaria 842 00:50:04,260 --> 00:50:07,310 jonkun toisen tilille, jonka tilinumero on 1. 843 00:50:07,310 --> 00:50:10,400 >> Toisin sanoen, tämä on täydellinen esimerkki siitä, missä haluat varmistaa 844 00:50:10,400 --> 00:50:13,590 että molemmat näistä lausunnoista tapahtuu tai ei ollenkaan 845 00:50:13,590 --> 00:50:15,450 koska muuten asiakas on menossa ruuvattu 846 00:50:15,450 --> 00:50:17,670 ja aiot viedä rahansa eikä tallettaa muualle, 847 00:50:17,670 --> 00:50:20,470 tai pankki on menossa ruuvattu minne olet menossa tallettaa rahaa 848 00:50:20,470 --> 00:50:23,140 mutta ei itse asiassa vähennä sitä käyttäjän tililtä. 849 00:50:23,140 --> 00:50:25,810 Joten haluat molemmat suorittaa yhdessä. 850 00:50:25,810 --> 00:50:29,140 Näin tulee maailmaan liiketoimiin. 851 00:50:29,140 --> 00:50:31,360 Niin, että jotain pitää takaraivossa, 852 00:50:31,360 --> 00:50:34,710 ei niinkään varten vain opinnäytetyö, 853 00:50:34,710 --> 00:50:36,700 mutta jos haluat ottaa opinnäytetyö jonnekin, 854 00:50:36,700 --> 00:50:39,040 Jos haluat käynnistää jonkin yrityksen ympärille, 855 00:50:39,040 --> 00:50:41,270 Jos haluat ratkaista joitakin opiskelijan ryhmän ongelma kampuksella 856 00:50:41,270 --> 00:50:45,210 ja oikeastaan ​​elää, aktiivinen sivusto, nämä ovat tavallaan hienovaraisia ​​vikoja, jotka voivat syntyä 857 00:50:45,210 --> 00:50:49,480 jos et ole aivan miettiä, mitä voi tapahtua, jos 2 henkilöä 858 00:50:49,480 --> 00:50:54,190 yrittävät käyttää verkkosivuilla osoitteessa kirjaimellisesti samalla hetkellä, 859 00:50:54,190 --> 00:50:56,890 jolloin niiden kyselyt muuten saada toisiinsa. 860 00:50:58,840 --> 00:51:01,420 >> Valmis noin JavaScript, teaser sen? 861 00:51:01,420 --> 00:51:04,320 Tämä on meidän viimeinen kieli lukukauden. Selvä. 862 00:51:04,320 --> 00:51:09,940 Onneksi JavaScript näyttää hyvin, hyvin, hyvin samankaltainen 2 kieltä, C-ja PHP- 863 00:51:09,940 --> 00:51:11,140 olemme tähän mennessä tehneet. 864 00:51:11,140 --> 00:51:14,340 Ei ole JavaScript PSET 7, mutta se on uskomattoman hyödyllinen työkalu 865 00:51:14,340 --> 00:51:18,840 kun se tulee tehdä web-pohjainen opinnäytetyöt tai oikeastaan ​​vain Web-ohjelmointi yleisemmin. 866 00:51:18,840 --> 00:51:20,950 Joten nopean yleiskatsauksen jotain kutsutaan DOM. 867 00:51:20,950 --> 00:51:23,600 Täällä on erittäin yksinkertainen web-sivu, joka oikeastaan ​​vain sanoo hei, maailma 868 00:51:23,600 --> 00:51:25,970 sekä otsikko ja runko. 869 00:51:25,970 --> 00:51:29,270 Koska syvennys on viittaa jonkin aikaa, 870 00:51:29,270 --> 00:51:31,380 on todellakin hierarkia verkkosivuille. 871 00:51:31,380 --> 00:51:34,220 Voisin tehdä tämä sama pätkä HTML puu, 872 00:51:34,220 --> 00:51:37,470 Muistelen meidän keskusteluja tietorakenteita C seuraavasti. 873 00:51:37,470 --> 00:51:40,710 Minulla on joitakin erityisiä juurisolmun nimeltään asiakirjan solmu, 874 00:51:40,710 --> 00:51:43,650 ja näemme analogia tämän Javascriptin vain hetken. 875 00:51:43,650 --> 00:51:48,330 Ensimmäinen lapsi ja ainoa lapsi, joka tässä tapauksessa on HTML tagi. 876 00:51:48,330 --> 00:51:49,880 Ei ole suoraa kartoitus DOCTYPE. 877 00:51:49,880 --> 00:51:53,170 Se erityinen asia, joten meidän pitäisi vain sivuuttaa sitä, kun se tulee tähän DOM, 878 00:51:53,170 --> 00:51:55,810 Tämän Document Object Model puu. 879 00:51:55,810 --> 00:51:59,530 Huomaa, että HTML tag, joka olen kuvattu mielivaltaisesti suorakaide, 880 00:51:59,530 --> 00:52:02,890 on 2 lasta: pää ja vartalo. 881 00:52:02,890 --> 00:52:04,840 >> Nämä ovat vastaavasti piirretty suorakaide. 882 00:52:04,840 --> 00:52:08,970 On mielekästä kuvallisesti että pää on vasemmalla puolella rungon. 883 00:52:08,970 --> 00:52:11,960 Tästä seuraa, että pää tulee ensin puussa. 884 00:52:11,960 --> 00:52:14,910 Joten siellä oikeastaan ​​tilaus puuhun kun piirtää sen näin, 885 00:52:14,910 --> 00:52:17,460 vaikka muodot ja vaikka mitä ovat mielivaltaisia. 886 00:52:17,460 --> 00:52:20,360 Head puolestaan ​​on yksi lapsi nimeltään otsikko, 887 00:52:20,360 --> 00:52:25,170 ja otsikko todella on oma lapsi, joka on "Hello, world", 888 00:52:25,170 --> 00:52:32,210 jonka olen tarkoituksella tehnyt kuin soikea täällä tehdä hieman eri suorakulmion. 889 00:52:32,210 --> 00:52:37,420 Nämä suorakulmioita ovat elementtejä, kun taas hei, maailma on todella tekstiä solmu. 890 00:52:37,420 --> 00:52:39,850 Niin se on solmu puussa, mutta se on eri tyyppinen solmun 891 00:52:39,850 --> 00:52:41,730 joten piirsin sen mielivaltaisesti eri tavalla. 892 00:52:41,730 --> 00:52:45,000 Samoin ei runko on lapsi nimeltä Hei, maailmassa samoin, 893 00:52:45,000 --> 00:52:47,910 joten eri solmu vaikka he sattumalta sama teksti, 894 00:52:47,910 --> 00:52:52,100 mutta olen laatinut sen käyttämällä samaa muotoa. Joten kuka välittää? 895 00:52:52,100 --> 00:52:56,820 No, mitä kivaa HTML on, että se ei ole tämän hierarkkinen luonne. 896 00:52:56,820 --> 00:53:01,010 Ja mitä kivaa JavaScript ja erityisesti kirjastot, jotka ovat vapaasti käytettävissä 897 00:53:01,010 --> 00:53:07,120 ja suosittuja, kuten jQuery, voit navigoida puurakenteessa niin hämmästyttävän helposti. 898 00:53:07,120 --> 00:53:11,790 Mikä tahansa tavaraa teimme C osoittimet ja liikkumisesta puita ja recursing on solmuja 899 00:53:11,790 --> 00:53:15,300 vasen lapsi oikea lapsi, yhtäkkiä voimme tavallaan itsestäänselvyys 900 00:53:15,300 --> 00:53:19,450 olevan hämmästyttävän valaisevaa, jos ei vähän turhauttavaa 901 00:53:19,450 --> 00:53:22,470 mutta ei läheskään tehokas tapa edetä ohjelmointia. 902 00:53:22,470 --> 00:53:24,470 Ja niin nämä korkeamman tason kielillä, kuten JavaScript 903 00:53:24,470 --> 00:53:28,340 pystymme navigoida tätä puuta paljon enemmän intuitiivisesti. 904 00:53:28,340 --> 00:53:30,430 >> Ja todellakin syntaksin tulee olemaan varsin tuttuja. 905 00:53:30,430 --> 00:53:32,950 Jos et ole koskaan nähnyt JavaScript aikaisemmin, tämä on todella mukava viite 906 00:53:32,950 --> 00:53:35,910 Mozilla-ihmiset, ihmiset jotka tekevät Firefox, 907 00:53:35,910 --> 00:53:38,370 joten rohkeasti selata että milloin sinulle sopii. 908 00:53:38,370 --> 00:53:41,590 Mitä löydät - ja nämä diat ovat samat, mitä käytimme toinen päivä - 909 00:53:41,590 --> 00:53:44,030 Samoin tärkein on mennyt. 910 00:53:44,030 --> 00:53:47,010 Joten kun kirjoitat ohjelmaa JavaScript ei ole tärkein ominaisuus. 911 00:53:47,010 --> 00:53:48,690 Sinä vain kirjoittamaan koodia. 912 00:53:48,690 --> 00:53:51,660 Mutta keskeinen ero JavaScript ja C PHP 913 00:53:51,660 --> 00:53:55,890 on, että kun C-ja PHP toistaiseksi on toteutettu palvelimen puolella 914 00:53:55,890 --> 00:53:59,180 jonka laitteen tässä tapauksessa tai yleisemmin palvelin, 915 00:53:59,180 --> 00:54:04,270 JavaScript suunnittelun yleensä suorittaa selaimessa. 916 00:54:04,270 --> 00:54:08,440 Toisin sanoen, saatat kirjoittaa JavaScript-koodia, koska olemme aikeissa, 917 00:54:08,440 --> 00:54:13,080 palvelimella on laite, mutta lisäät sen joukkoon HTML muun CSS- 918 00:54:13,080 --> 00:54:16,100 keskuudessa GIF ja teidän PNGs ja teidän JPEG 919 00:54:16,100 --> 00:54:19,170 niin että kun käyttäjä vierailee Web-sivu, jos käytät JavaScript, 920 00:54:19,170 --> 00:54:21,770 että JavaScript-koodi tulee palvelimelta selain, 921 00:54:21,770 --> 00:54:24,540 ja se on selain, joka todella toteuttaa sitä. 922 00:54:24,540 --> 00:54:27,960 Joten tämä on mielekäs vaikuttaa jopa tekijänoikeuksista. 923 00:54:27,960 --> 00:54:32,600 Se on tavallaan typerä edes ajatella suojata IP kun se tulee JavaScript-koodia 924 00:54:32,600 --> 00:54:37,560 koska luonteeltaan kielen se saa suorittaa yleensä selaimen puolella. 925 00:54:37,560 --> 00:54:40,360 >> Voit sekoittaa sitä, mikä tarkoittaa, että voit tehdä sen näyttämään hullu ja ruma 926 00:54:40,360 --> 00:54:45,400 ilman välilyöntejä, kamala muuttujien nimet, jotta vaikeuttaa ihmisten varastaa IP- 927 00:54:45,400 --> 00:54:48,120 mutta tärkeintä on, että se on toteutettu selaimen puolella. 928 00:54:48,120 --> 00:54:51,790 Vaikka niin syrjään JavaScript voidaan käyttää palvelimen puolella, 929 00:54:51,790 --> 00:54:54,480 yleisin käyttötapa nyt on vielä selaimen. 930 00:54:54,480 --> 00:54:59,800 Ja tässä mitä se näyttää. Tässä on if-else if-else rakentaa aivan kuten C, kuten PHP. 931 00:54:59,800 --> 00:55:02,420 Tässä on Boolen lauseke, kun "tai" 2 asioita yhdessä. 932 00:55:02,420 --> 00:55:04,330 Täällä on kun "ja" 2 asioita yhdessä. 933 00:55:04,330 --> 00:55:08,300 Tässä on kytkin ilmoitus, joka on samanlainen kuin PHP 934 00:55:08,300 --> 00:55:10,810 että voit kytkeä erilaisia ​​arvoja. 935 00:55:10,810 --> 00:55:15,180 Silmukat Samoin on silmukoita täällä, jotka ovat rakenteeltaan identtisen mitä olemme nähneet. 936 00:55:15,180 --> 00:55:18,110 Vaikka silmukat, meillä tehdä samalla silmukoita. 937 00:55:18,110 --> 00:55:20,290 Muuttujat, koskaan niin hieman erilainen. 938 00:55:20,290 --> 00:55:24,560 Et julistaa muuttujia kuin teet PHP ja C 939 00:55:24,560 --> 00:55:27,860 mutta samalla on JavaScript heikosti kirjoitettu. 940 00:55:27,860 --> 00:55:32,730 Et määrittää int tai float tai merkkijono tai mitään sellaista yleensä. 941 00:55:32,730 --> 00:55:34,240 Voit määrittää var. 942 00:55:34,240 --> 00:55:38,040 Sinun ei tarvitse määrittää var, mutta sillä on seurauksia, jos et ole. 943 00:55:38,040 --> 00:55:42,000 Yleensä jos jätät pois var, voit vahingossa luoda globaali muuttuja sijaan paikallista. 944 00:55:42,000 --> 00:55:46,420 Saanen siis ehdottaa, että melkein aina vain sanoa var ja sitten muuttujan nimi. 945 00:55:46,420 --> 00:55:48,740 Se ei ole tyyppiä, se on vain var muuttuvan. 946 00:55:48,740 --> 00:55:52,930 Tämä olisi esimerkiksi onko se 123 tai "Hello, world". 947 00:55:52,930 --> 00:55:58,910 Taulukot ovat läsnä ja syntaktisesti samanlainen PHP. 948 00:55:58,910 --> 00:56:03,690 Sanon var numerot ja sitten käytän Hakasulkeissa jälleen julistaa muuttuja 949 00:56:03,690 --> 00:56:08,870 joiden tyyppi on matriisi, jossa on nämä erityisesti numerot siinä pilkulla erotettuina. 950 00:56:08,870 --> 00:56:11,740 Ja sitten lopuksi, tämä on vain yksi, joka todella näyttää erilaiselta. 951 00:56:11,740 --> 00:56:16,700 Muistutan, että PHP olisimme ottaneet käyttöön assosiatiivisia array opiskelija 952 00:56:16,700 --> 00:56:20,220 kuten Zamyla että voisi näyttää tältä, jos muuttuja on nimeltään opiskelija. 953 00:56:20,220 --> 00:56:23,370 Hakasulkeissa tarkoitetaan tässä tulee array. 954 00:56:23,370 --> 00:56:28,500 >> Se, että en käytä numeerisia indeksejä mutta jouset - id, house, ja nimi - 955 00:56:28,500 --> 00:56:30,990 tarkoittaa, että tämä on assosiatiivinen array, 956 00:56:30,990 --> 00:56:34,490 ja nämä nuolet yhtäsuuruusmerkki ja kulmikas kiinnike 957 00:56:34,490 --> 00:56:37,310 tarkoittaa, että avain on "id", arvo on 1; 958 00:56:37,310 --> 00:56:39,310 avain on "talo", arvo on Winthrop House; 959 00:56:39,310 --> 00:56:41,800 avain on "nimi", arvo on Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 Joten on 3 avaimet sisällä tämän assosiatiivisia array, joilla kullakin on oma arvonsa. 961 00:56:47,110 --> 00:56:52,880 Olemme nähneet, että PSET 7, tai voit pian, JavaScript sama idea, 962 00:56:52,880 --> 00:56:55,220 mutta se tulee näyttää tältä. 963 00:56:55,220 --> 00:57:00,070 Joten var opiskelija - ei dollarimerkki eikä mainintaa tyyppiä vielä, mutta var - 964 00:57:00,070 --> 00:57:05,860 vastaa ja avaa aaltosulkeita koska JavaScript kun olet avain arvo-pareja, 965 00:57:05,860 --> 00:57:08,900 voit itse käyttää jotain kutsutaan objekti. 966 00:57:08,900 --> 00:57:13,490 Ja niille teistä, jotka eivät ottaa APCS tms. saattavat muistaa esineitä Java 967 00:57:13,490 --> 00:57:15,140 tai vastaavia kielillä. 968 00:57:15,140 --> 00:57:17,880 JavaScript ei ole Java ensinnäkin. 969 00:57:17,880 --> 00:57:21,600 Se oli tahallinen design päätöstä vuotta sitten pölliä jotain muuta, joka oli suosittu, 970 00:57:21,600 --> 00:57:25,640 sen nimi, vaikka se ei ole olennaista suhteessa Java itse. 971 00:57:25,640 --> 00:57:31,490 JavaScript on esineitä, ja voit luoda ne tavalla kihara ahdin merkintää. 972 00:57:31,490 --> 00:57:36,710 Esineet JavaScript ovat melko vastaavat assosiatiiviset taulukot PHP 973 00:57:36,710 --> 00:57:40,030 kun se tulee tallentaa dataa sisällä niitä. 974 00:57:40,030 --> 00:57:44,100 >> Mutta vieläkin voimakkaammin JavaScript voit liittää helposti toiminnot 975 00:57:44,100 --> 00:57:48,040 sisällä kohteen, ja vaikka voit tehdä muilla kielillä, 976 00:57:48,040 --> 00:57:50,040 se on melko yleinen paradigma, kuten näemme. 977 00:57:50,040 --> 00:57:54,380 Lyhyesti sanottuna tämä objekti edustaa opiskelija, joka on erityisen Zamyla, 978 00:57:54,380 --> 00:58:00,380 ja se on samanlainen käsitteellisesti, vain syntaktisesti poikkeaa tästä. 979 00:58:00,380 --> 00:58:03,840 Katsotaanpa itse käyttää JavaScript-tiedoston. 980 00:58:03,840 --> 00:58:05,570 On käynyt ilmi, siellä komentosarjatunnus. 981 00:58:05,570 --> 00:58:08,180 Olemme nähneet tyyli tag ja olemme nähneet muita HTML. 982 00:58:08,180 --> 00:58:11,510 Komentosarjatunnus todella sisältää joitakin JavaScript-koodia. 983 00:58:11,510 --> 00:58:15,500 Päästä minut sisään laitteeseen, jossa meillä on joitakin lähdekoodi valmiita. 984 00:58:15,500 --> 00:58:18,700 En ole lähettänyt sitä vielä sivustolla, mutta minä teen sen jälkeen luokassa. 985 00:58:18,700 --> 00:58:21,770 Katsotaanpa avata tämä, blink.html. 986 00:58:21,770 --> 00:58:27,560 1990-luvulla oli kirjaimellisesti HTML tagi nimeltään vilkkuvat tag, 987 00:58:27,560 --> 00:58:30,340 ja tämä oli yksi ihanan overused tagit Internetissä 988 00:58:30,340 --> 00:58:36,140 jolloin haluat käydä joitakin 1990 tyyli sivun ja alkaa nähdä tekstin vilkkua sinua tällaisena, 989 00:58:36,140 --> 00:58:39,810 tulokset marquis tunnisteen, joka oli teksti menee näin. 990 00:58:39,810 --> 00:58:45,070 Yksi pari kertaa, jos maailma on todella sovittu web standardi, 991 00:58:45,070 --> 00:58:48,250 kaikki kautta linjan tappoi vilkkuvat tag joitakin vuosia sitten. 992 00:58:48,250 --> 00:58:52,860 Mutta voimme elvyttää sitä JavaScriptiä osoitus valtaa teillä 993 00:58:52,860 --> 00:58:56,660 kun voit kirjoittaa ohjelma sisällä verkkosivun. 994 00:58:56,660 --> 00:59:00,240 Katsotaanpa ensin ohittaa uusia juttuja ja keskittyä vain vanha. 995 00:59:00,240 --> 00:59:01,780 >> Tässä on vanhaa kamaa tässä esimerkissä. 996 00:59:01,780 --> 00:59:06,350 Minulla HTML tag, pää tag, ja otsikko tag. 997 00:59:06,350 --> 00:59:11,210 Sitten on body täällä div, joka muistaa on vain suorakulmainen jako sivun 998 00:59:11,210 --> 00:59:14,720 että olen antanut yksilöllinen tunnus mielivaltaisesti of "tervehdys" on, 999 00:59:14,720 --> 00:59:18,320 juuri niin minulla on tapa ainutlaatuisesti viitataan siihen, että on hyvin yksinkertainen teksti: 1000 00:59:18,320 --> 00:59:20,220 Hei, maailma. 1001 00:59:20,220 --> 00:59:23,940 Nyt haluaisin siirtyä ylös tämän tiedoston ja nähdä mitä uutta. 1002 00:59:23,940 --> 00:59:27,710 Ensimmäinen asia, joka on uuden ajan alkuun on komentosarjatunnus, 1003 00:59:27,710 --> 00:59:31,280 ja sisällä komentosarjatunnus ilmoituksen olen ilmoittanut toimintoa. 1004 00:59:31,280 --> 00:59:34,610 Julistaa toiminnon JavaScript, melko samanlainen PHP, 1005 00:59:34,610 --> 00:59:37,930 te kirjaimellisesti kirjoittaa funktion sitten funktion nimi, sulkeita 1006 00:59:37,930 --> 00:59:40,400 ja ehkä joitakin perusteluja, jos se vie mitään. 1007 00:59:40,400 --> 00:59:43,510 Sitten olen sain kihara ahdin kuten tavallista, ja nyt meillä on hieman uuden koodin, 1008 00:59:43,510 --> 00:59:45,230 mutta katsotaanpa, mitä tämä tarkoittaa. 1009 00:59:45,230 --> 00:59:48,670 Joten var div, tämä tarkoittaa vain antaa minulle muuttuja nimeltä div. 1010 00:59:48,670 --> 00:59:50,530 Voisin ovat kutsuneet sitä foo, mutta halusin tulla kutsutuksi div 1011 00:59:50,530 --> 00:59:52,620 syistä, jotka on selvästi toinen. 1012 00:59:52,620 --> 00:59:57,480 Sitten se kääntyy ulos JavaScript - ja tämä on JavaScript-koodia upotettu Web-sivu - 1013 00:59:57,480 --> 01:00:01,760 on erityinen globaali muuttuja tapaisena nimeltään asiakirjan. 1014 01:00:01,760 --> 01:00:04,780 JavaScript on itse asiassa olio. 1015 01:00:04,780 --> 01:00:07,230 Emme aio mennä yksityiskohtaisesti 50, mitä se tarkoittaa, 1016 01:00:07,230 --> 01:00:11,180 mutta nyt tiedän, että kohde on melko paljon kuin struct. 1017 01:00:11,180 --> 01:00:14,740 Kuten näimme paluumatkalla kun yksi varhaisimmista ongelman asettaa 1018 01:00:14,740 --> 01:00:17,150 jos panemme paljon tietoa struct, 1019 01:00:17,150 --> 01:00:21,330 Samoin on dokumentoida erityinen struct mukana selain, 1020 01:00:21,330 --> 01:00:24,810 mukana tahansa sivulta. Se ei ole jotain olen luonut. 1021 01:00:24,810 --> 01:00:28,210 Inside tämän asiakirjan rakenteen, vaikka et ole ainoastaan ​​tietoja 1022 01:00:28,210 --> 01:00:30,010 mutta sinulla on myös toimintoja. 1023 01:00:30,010 --> 01:00:34,090 >> Ja aina kun on tehtävä sisällä rakenteen sisällä esine, 1024 01:00:34,090 --> 01:00:36,490 sitä kutsutaan menetelmää. Mutta se on sama asia. 1025 01:00:36,490 --> 01:00:40,110 Menetelmä on toiminto, joka sattuu olemaan sisällä jotain muuta. 1026 01:00:40,110 --> 01:00:42,990 Joten tämä tarkoittaa, että tämä erityinen globaali muuttuja nimeltä asiakirja 1027 01:00:42,990 --> 01:00:47,690 on toiminto nimeltään getElementById että kirjaimellisesti tekee sen. 1028 01:00:47,690 --> 01:00:52,460 Se saa sinut elementin DOM, Document Object Model puu, 1029 01:00:52,460 --> 01:00:55,520 jonka tunnus on tässä tapauksessa tervehdys. 1030 01:00:55,520 --> 01:00:59,200 Toisin sanoen, kaikki, että aika kuluu tietorakenteiden tulee pelata tässä. 1031 01:00:59,200 --> 01:01:01,400 Tämä kuva DOM että meillä oli hetki sitten, 1032 01:01:01,400 --> 01:01:06,100 vaikka sivu on hieman erilainen, jos olisin div tässä kuvassa, 1033 01:01:06,100 --> 01:01:11,180 Mitä document.getElementById palaisi minulle voitaisiin todella osoitin 1034 01:01:11,180 --> 01:01:15,440 suorakulmioon, puussa, viittaus suorakulmion puussa. 1035 01:01:15,440 --> 01:01:18,410 Niin, että mitä se tarkoittaa todella soittaa yhtä näistä toiminnoista. 1036 01:01:18,410 --> 01:01:21,960 Tässä tapauksessa taas se div. Se ei ole elin tai otsikko. 1037 01:01:21,960 --> 01:01:26,480 Joten mitä minä tee tätä div nyt olen sen sisällä tämän muuttujan nimeltään div. 1038 01:01:26,480 --> 01:01:32,580 On käynyt ilmi JavaScript sinulla on mahdollisuus nipistää CSS sivusi dynaamisesti. 1039 01:01:32,580 --> 01:01:39,060 Tähän asti kaikki CSS olemme tehneet, joskin rajallisesti, on tyyliattribuuttien 1040 01:01:39,060 --> 01:01:41,730 tai jos muuten olemme CSS? 1041 01:01:42,730 --> 01:01:45,810 Olen sellainen pilaantunut, että yksi. Tyyliin tag tiedoston alkuun. 1042 01:01:45,810 --> 01:01:49,180 Tai kolmas sija on ollut? 1043 01:01:50,710 --> 01:01:54,590 >> Ulkoisen tiedoston, jotain. Css. 1044 01:01:54,590 --> 01:01:56,730 Joten ne ovat 3 paikkaa olemme tehneet CSS toistaiseksi, 1045 01:01:56,730 --> 01:01:59,310 mutta saalis on meillä kova koodattu kaiken. 1046 01:01:59,310 --> 01:02:04,060 Päätit kun sukelsi PSET 7, päätimme ennen luennoimaan mitä CSS olisivat. 1047 01:02:04,060 --> 01:02:07,380 Mutta jos haluat muuttaa CSS, voit itse tehdä 1048 01:02:07,380 --> 01:02:09,370 kun olet todellinen ohjelmointikieli. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - ei ohjelmointikieliä. JavaScript on. 1050 01:02:13,910 --> 01:02:18,200 Joten näyttää siltä, ​​että heti kun on yksi niistä suorakulmioita puusta 1051 01:02:18,200 --> 01:02:23,050 kutsutaan DOM, se on itse joitakin tietoja sen sisälle. 1052 01:02:23,050 --> 01:02:27,820 Joten div, että olen vain tarttui puusta on mitä me kutsumme omaisuutta sen sisällä 1053 01:02:27,820 --> 01:02:34,390 kutsutaan tyyli, ja tyyli omaisuus on itse kiinteistön nimeltään näkyvyyttä. 1054 01:02:34,390 --> 01:02:37,330 Haluaisin tietää tämän vain katsomalla CSS käyttöohje. 1055 01:02:37,330 --> 01:02:41,160 On käynyt ilmi, siellä näkyvyys CSS ominaisuus, että mitä se sanoo. 1056 01:02:41,160 --> 01:02:44,530 Se tekee jotain näkyvissä vai ei, näkyvä tai ei. 1057 01:02:44,530 --> 01:02:46,810 Ja miten se tehdään tämä. 1058 01:02:46,810 --> 01:02:50,510 Pyydän ohjelmallisesti jos näkyvyyttä div on piilotettu, 1059 01:02:50,510 --> 01:02:53,390 Mitä voin vaihtaa sen? Näkyvä. 1060 01:02:53,390 --> 01:02:58,840 If näkyvyyttä sivusta ei ole piilotettu, loogisesti en tee sitä piilossa. 1061 01:02:58,840 --> 01:03:04,070 Minulla ei ole aavistustakaan, miksi se on näkyvissä ja piilossa eikä näkyviä ja näkymättömiä. 1062 01:03:04,070 --> 01:03:06,000 Tämä oli huono suunnittelu päätös varrella. 1063 01:03:06,000 --> 01:03:09,530 Mutta ne ovatkin vastakohtia CSS: näkyviä ja piilossa. 1064 01:03:09,530 --> 01:03:15,520 Kaikki tämä ei se tarkoittaa muuttaa CSS minun tiedoston päälle ja pois, päälle ja pois päältä 1065 01:03:15,520 --> 01:03:16,870 kyseiselle div. 1066 01:03:16,870 --> 01:03:20,630 Mutta jälleen kerran, tämä on toiminto nimeltään vilkkua. Kun on vilkkuvat toiminto nimeltään? 1067 01:03:20,630 --> 01:03:24,080 On käynyt ilmi, että on olemassa muu erityinen globaali muuttuja nimeltään ikkunassa 1068 01:03:24,080 --> 01:03:28,220 hengeltään samanlaisia ​​asiakirjaan, mutta että asiakirjassa mainitaan sivuillesi, 1069 01:03:28,220 --> 01:03:31,700 kuten DOM puu, HTML-te lähetetään palvelimesta, 1070 01:03:31,700 --> 01:03:35,250 ikkuna viittaa kromi ympärillä, osoiteriville, otsikkopalkissa, 1071 01:03:35,250 --> 01:03:37,880 ja kaikki jutut noin web-sivulla. 1072 01:03:37,880 --> 01:03:42,800 >> Ja käy ilmi, että ikkunasta objekti on erityinen tehtävä sen sisällä kutsutaan setInterval 1073 01:03:42,800 --> 01:03:44,360 että mitä se sanoo. 1074 01:03:44,360 --> 01:03:48,600 Se asettaa aikaväli - tässä tapauksessa jokaisessa 500 millisekuntia - 1075 01:03:48,600 --> 01:03:52,270 ja arvata, mitä se aikoo tehdä joka 500 millisekunnin? 1076 01:03:52,270 --> 01:03:55,240 Se tulee suorittaa tämän tehtävän vilkkuvat. 1077 01:03:55,240 --> 01:03:58,560 Ja mitä mukavaa täällä on, että olisimme voineet tehdä tämän C vaikka emme koskaan tehnyt. 1078 01:03:58,560 --> 01:04:01,580 C tekee jotain kutsutaan funktio-osoittimia, jossa voit kulkea toimintoja ympäri 1079 01:04:01,580 --> 01:04:03,140 argumentteina. 1080 01:04:03,140 --> 01:04:07,620 Vastaavasti JavaScript voit siirtää nimen funktion toisen funktion. 1081 01:04:07,620 --> 01:04:10,630 Ja huomaa, mitä olen tekemässä. En tee tätä. 1082 01:04:10,630 --> 01:04:14,380 Jos laitan sulkuihin jälkeen vilkkuvat, se tarkoittaisi kutsua vilkkuvat toiminto. 1083 01:04:14,380 --> 01:04:17,430 Jos minä jätä heitä, se tarkoittaa, että tässä on vilkkuvat toiminto 1084 01:04:17,430 --> 01:04:21,330 jotta setInterval voi kutsua jokaisen 500 millisekuntia. 1085 01:04:21,330 --> 01:04:28,200 Joten lopputulos, kamalaa kuin se onkin, että jos menen localhost ja mene blink.html, 1086 01:04:28,200 --> 01:04:32,120 Minulla on nyt tämä tapahtuisi uudestaan ​​ja uudestaan. 1087 01:04:32,120 --> 01:04:34,950 Ja jos minä todella Tarkasta Element, katsotaanpa jos voimme nähdä tämän. 1088 01:04:34,950 --> 01:04:38,550 Saanen Tarkasta Element, haluan selaa vain vähän, 1089 01:04:38,550 --> 01:04:44,320 anna minun valita Elements tänne, ja huomaa DOM sisällä Chromen tarkastajan. 1090 01:04:44,320 --> 01:04:48,840 Se kirjaimellisesti muuttuu edestakaisin jokaisen 500 millisekuntia. 1091 01:04:48,840 --> 01:04:55,660 Jos menemme ystävämme Nate, 1092 01:04:55,660 --> 01:05:00,020 Jos olet joskus miettinyt, miten tämä toimii, samanlainen idea välein, 1093 01:05:00,020 --> 01:05:04,810 mutta Nate on todella tekee erittäin tehokas käyttö väri tässä nimenomaisessa asiassa. 1094 01:05:04,810 --> 01:05:07,350 Mitä muuta voimme todella tehdä tämän? 1095 01:05:07,350 --> 01:05:09,990 Katsotaanpa avata toinen esimerkki ja kokeilla jotain 1096 01:05:09,990 --> 01:05:12,940 se ohjelmallisesti vieläkin enemmän hyötyä kuin tehdä asioita vilkkuvat. 1097 01:05:12,940 --> 01:05:17,990 Anna minun mennä meidän muotoihin hakemistoon tänään ja mennä form0. 1098 01:05:17,990 --> 01:05:20,820 Tämä oli rumin mahdollinen muodossa, että voisin keksiä, 1099 01:05:20,820 --> 01:05:23,290 ja haluan vain näyttää teille, mitä se näyttää selaimessa. 1100 01:05:23,290 --> 01:05:28,960 >> Sallikaa minun mennä localhost / lomakkeet, ja tämä on form0. 1101 01:05:28,960 --> 01:05:33,400 Tämä on erittäin ruma HTML-muodossa, joka on muutamia kenttiä sähköpostin, salasanan, 1102 01:05:33,400 --> 01:05:37,190 salasana, ja sitten vähän valintaruutu hyväksyä joitakin ehtoja. 1103 01:05:37,190 --> 01:05:41,350 Saalis on, jos käyn tämän lomakkeen enkä halua antaa teille sähköpostiosoitteen, 1104 01:05:41,350 --> 01:05:44,730 En halua hyväksyä ehdot ehkä voin napsauttaa Rekisteröidy 1105 01:05:44,730 --> 01:05:46,920 ja se antaa minulle läpi muutenkin. 1106 01:05:46,920 --> 01:05:50,800 Tämä tapahtuu esittää tyhmä PHP tiedosto nimeltä dump.php. 1107 01:05:50,800 --> 01:05:58,420 Kaikki se on tulostaa sisältöä $ _GET vain diagnostisiin tarkoituksiin. 1108 01:05:58,420 --> 01:06:01,580 Se oli mitä esitti käyttäjä juuri nyt. 1109 01:06:01,580 --> 01:06:05,010 Mutta oletetaan me todella haluamme vahvistaa käyttäjän lomakkeen lähettäminen. 1110 01:06:05,010 --> 01:06:06,530 Sallikaa minun mennä version 1. 1111 01:06:06,530 --> 01:06:11,420 Tämä on form1.html. Se näyttää esteettisesti yhtä paha, mutta huomaa kuinka fancy se on. 1112 01:06:11,420 --> 01:06:15,450 Jos minä Napsauta Register ilman yhteistyötä, saan huusi. 1113 01:06:15,450 --> 01:06:17,320 "Sinun on annettava sähköpostiosoite." 1114 01:06:17,320 --> 01:06:21,670 Selvä. Joten anna minun kokeilla sitä. Niin malan@harvard.edu. En tarvitse salasanaa. 1115 01:06:21,670 --> 01:06:25,100 Rekisteröidy. "Sinun on annettava salasana." Selvä. 1116 01:06:25,100 --> 01:06:28,470 Joten annan salasanan karmiininpunainen. Rekisteröidy. 1117 01:06:28,470 --> 01:06:32,300 "Salasanat eivät täsmää." Minun täytyy nyt kirjoittaa karmiininpunainen täällä. 1118 01:06:32,300 --> 01:06:35,710 Olen vahingossa tarkistanut että. Rekisteröidy. 1119 01:06:35,710 --> 01:06:39,860 "Sinun täytyy hyväksyä ehdot." Selvä. Hyväksyn siellä. Rekisteröidy. 1120 01:06:39,860 --> 01:06:43,700 Ja nyt se näyttää minulle diagnostiikkalähtö tuolla. 1121 01:06:43,700 --> 01:06:45,630 >> Joten mitä juuri tapahtui? 1122 01:06:45,630 --> 01:06:48,330 Meillä on ollut tämä kyky vahvistaa muotoon huomautuksia. 1123 01:06:48,330 --> 01:06:51,420 Itse asiassa, jos teit sukeltaa PSET 7, siellä anteeksi toiminto 1124 01:06:51,420 --> 01:06:54,620 jonka avulla on melko helppo huutaa käyttäjälle viestin ruudulla. 1125 01:06:54,620 --> 01:06:57,580 Käytän hieman erilainen mekanismi, hälytys-toiminto, 1126 01:06:57,580 --> 01:07:03,690 joka ei ole funktio, joka on hymyili kun sillä se tekee erittäin ruma käyttäjän viestejä. 1127 01:07:03,690 --> 01:07:05,710 Mutta katsotaanpa, mitä teen täällä. 1128 01:07:05,710 --> 01:07:09,620 Tämä on form1.html, ja huomaat, että minulla on joitakin melko tuttuja syntaksi: 1129 01:07:09,620 --> 01:07:12,920 body, muoto tag, toiminta määrite, menetelmä määrite. 1130 01:07:12,920 --> 01:07:17,050 Mutta huomaa olen antanut minun muodossa yksilöllinen tunnus mukavuussyistä. 1131 01:07:17,050 --> 01:07:19,190 Sitten olen saanut sähköpostia kenttä, jonka tyyppi on teksti, 1132 01:07:19,190 --> 01:07:23,780 salasana-kenttään, jonka tyyppi on unohtunut, vahvistus kenttä jonka tyyppi on salasana, 1133 01:07:23,780 --> 01:07:28,070 ja sitten valintaruutu, jonka nimi on sopimus täällä, tyyppi on valintaruutu. 1134 01:07:28,070 --> 01:07:30,380 Ja sitten minulla lähetä-painiketta. 1135 01:07:30,380 --> 01:07:33,050 Mutta huomaa yläosassa mitä enemmän minulla on. 1136 01:07:33,050 --> 01:07:35,810 Ensinnäkin, on olemassa toinen käyttö komentosarjatunnus. 1137 01:07:35,810 --> 01:07:40,520 Jos sinulla on JavaScript-koodia toiseen tiedostoon, aivan kuten CSS voit sisällyttää sen. 1138 01:07:40,520 --> 01:07:44,530 Ja sinä, että käsikirjoitus lähde, ja sitten huomaa olen yhdistää ilmeisesti 1139 01:07:44,530 --> 01:07:50,349 että googleapis.com erittäin pitkää polkua, mutta jonka tiedoston nimi päättyy jquery.min 1140 01:07:50,349 --> 01:07:52,420 minimi. js. 1141 01:07:52,420 --> 01:07:55,969 jQuery on erittäin suosittu kirjasto JavaScriptiä vain tekee JavaScript 1142 01:07:55,969 --> 01:07:58,230 kaikki käyttäjäystävällisempi käyttää. 1143 01:07:58,230 --> 01:08:00,610 Se tehokkaasti tullut de facto-standardi. 1144 01:08:00,610 --> 01:08:04,090 Joten vaikka mitä aiot nähdä ei ole puhdasta JavaScript sinänsä, 1145 01:08:04,090 --> 01:08:09,340 se on kirjaston päälle JavaScript paljon kuin CS50 kirjasto on kerros 1146 01:08:09,340 --> 01:08:13,670 päälle matalan tason C-koodia, todellisuus on lähes kaikki Internetistä käyttää sitä. 1147 01:08:13,670 --> 01:08:18,030 Joten nämä eivät ole apupyörät. Tämä on vain paras harjoitella näinä päivinä. 1148 01:08:18,030 --> 01:08:22,830 Nyt huomaa alla on oma komentosarjatunnus, ja huomaa mitä olen tehnyt täällä. 1149 01:08:22,830 --> 01:08:27,450 On käynyt ilmi, että jQuery tekee jotain hieman fancy. 1150 01:08:27,450 --> 01:08:29,660 JavaScript on dollarin merkkejä, mutta ne ovat merkityksettömiä. 1151 01:08:29,660 --> 01:08:32,870 >> Ne ovat kuin kirjain A tai B tai C. 1152 01:08:32,870 --> 01:08:36,670 jQuery on yksinkertaisesti hyväksynyt yleissopimuksen tai sellainen vedonneet siihen 1153 01:08:36,670 --> 01:08:40,280 että $ on heidän erityinen symboli. 1154 01:08:40,280 --> 01:08:44,950 Niin pian kuin lataat tämän maailmanlaajuisen JavaScript-tiedosto täällä kanssa komentosarjatunnus, 1155 01:08:44,950 --> 01:08:49,080 sinulla on mahdollisuus saada erityinen globaali muuttuja, joka on nimeltään $. 1156 01:08:49,080 --> 01:08:53,009 Se on oikeammin kutsutaan jQuery, mutta se ei näytä läheskään yhtä seksikäs kuin $. 1157 01:08:53,009 --> 01:08:56,250 Mutta $ ei ole erityistä merkitystä. PHP sillä oli erityinen merkitys. 1158 01:08:56,250 --> 01:08:58,440 Sinun piti olla se edessä muuttujan. 1159 01:08:58,440 --> 01:09:01,670 Tämä on vain seksikäs asia, että he ottivat. 1160 01:09:01,670 --> 01:09:03,389 Mitä täällä tapahtuu? 1161 01:09:03,389 --> 01:09:08,830 Ilmoitus olen ohimennen jQuery toiminnon minun globaali muuttuja asiakirja 1162 01:09:08,830 --> 01:09:10,860 ja sitten soitan. valmis. 1163 01:09:10,860 --> 01:09:15,480 Mitä jQuery lähinnä se on sen avulla voit ottaa joitakin vanilja JavaScript asioita 1164 01:09:15,480 --> 01:09:17,889 kuten asiakirja objekti, ikkuna objekti, 1165 01:09:17,889 --> 01:09:20,790 ja jos ohitat sen ja jQuery toiminto - 1166 01:09:20,790 --> 01:09:24,429 ja jälleen oltava selkeitä, tämä on toiminto nimeltään jQuery - 1167 01:09:24,429 --> 01:09:28,240 Mitä se on se palautuu sinulle erikoisversio asiakirjan 1168 01:09:28,240 --> 01:09:30,700 että on enemmän toimintoja liittyy siihen. 1169 01:09:30,700 --> 01:09:34,760 Joten raaka JavaScript ei ole valmis funktio, 1170 01:09:34,760 --> 01:09:37,810 mutta jos ohitat asiakirjan jQuery toimintoa, 1171 01:09:37,810 --> 01:09:40,960 se palaa teille erityinen versio Document Object 1172 01:09:40,960 --> 01:09:43,030 että on enemmän fancy ominaisuuksia. 1173 01:09:43,030 --> 01:09:48,230 Ja siksi ihmiset pitävät siitä. Se vain helpottaa asioita tehdä, koska aiomme nähdä. 1174 01:09:48,230 --> 01:09:49,820 Mitä tämä rivi koodia tarkoittaa? 1175 01:09:49,820 --> 01:09:52,690 Tämä koodirivi tarkoittaa tässä, kun asiakirja on valmis - 1176 01:09:52,690 --> 01:09:56,830 Toisin sanoen, kun selain on lukenut tämän tiedoston ylhäältä alas - 1177 01:09:56,830 --> 01:09:59,200 mennä eteenpäin ja suorittaa seuraavan toiminnon. 1178 01:09:59,200 --> 01:10:03,540 Mikä on todella mielenkiintoista JavaScript - ja PHP on tämä myös - 1179 01:10:03,540 --> 01:10:05,450 on anonyymi toiminnot. 1180 01:10:05,450 --> 01:10:10,560 JavaScript voit ilmoittaa toiminnoista, joilla ei ole nimeä, mutta niillä on ruumis. 1181 01:10:10,560 --> 01:10:12,570 Huomaa mitä täällä tapahtuu. 1182 01:10:12,570 --> 01:10:16,220 >> Tämä on toiminto nimeltään valmis, ja se tarkoittaa vain sitä tee seuraavat 1183 01:10:16,220 --> 01:10:20,220 kun koko web-sivu on valmis, kun se kaikki on lukea palvelimelta. 1184 01:10:20,220 --> 01:10:23,090 Mitä haluat tehdä? Haluan suorittaa kimpale koodia. 1185 01:10:23,090 --> 01:10:27,120 Huomaa, että emme halua suorittaa tämän koodin heti. 1186 01:10:27,120 --> 01:10:34,350 Jos minä pois tämä, tämä merkitsisi välittömästi aloittaa suorittamalla nämä riviä koodia. 1187 01:10:34,350 --> 01:10:39,040 Mutta se, että sanon ei, ei, ei, kääri tämän nimettömän funktion näin 1188 01:10:39,040 --> 01:10:43,000 keinot eivät suorita sitä vielä, kutsuvat sitä lopulta. 1189 01:10:43,000 --> 01:10:45,430 Näimme tämän hetki sitten edellisessä muodossa esimerkki. 1190 01:10:45,430 --> 01:10:49,990 Mitä toiminto ei kutsumme lopulta 500 millisekuntia myöhemmin? Blink. 1191 01:10:49,990 --> 01:10:51,480 Joten sama ajatus. 1192 01:10:51,480 --> 01:10:53,950 Jälleen, vaikka tämä näyttää hieman outo, ota nyt uskoon 1193 01:10:53,950 --> 01:10:57,060 että julistaa nimettömänä toiminto, joka kutsutaan lopulta 1194 01:10:57,060 --> 01:11:01,720 voit yksinkertaisesti kirjoittaa function () { 1195 01:11:01,720 --> 01:11:05,380 Joten mitä koodi aiomme toteuttaa lopulta? Seuraavat. 1196 01:11:05,380 --> 01:11:10,460 Tämäkin näyttää vähän uutta, mutta tämä tarkoittaa tässä jQuery toiminto, 1197 01:11:10,460 --> 01:11:13,430 ja tämä nyt on oikotie. 1198 01:11:13,430 --> 01:11:18,830 Tämä pätkä HTML alareunassa näytön tietysti on joitakin puu edustus. 1199 01:11:18,830 --> 01:11:21,730 Se ei ole tätä. Tämä sivu on kiinnostavampi kuin tämä Hello, world esimerkki. 1200 01:11:21,730 --> 01:11:25,210 Mutta on joitakin puu, joka vastaa tätä HTML. 1201 01:11:25,210 --> 01:11:28,910 Olisi kipua niskassa on toteuttaa jonkinlainen rekursiivinen funktio 1202 01:11:28,910 --> 01:11:34,380 alkavan juurisolmusta ja sitten löytää solmu, jonka tunnus on rekisteröinnin. 1203 01:11:34,380 --> 01:11:38,340 Joten mitä jQuery tekee super helppo meille on kirjaimellisesti tätä. 1204 01:11:38,340 --> 01:11:43,000 Mennä eteenpäin ja saada minulle mitä div tai missä muodossa tahansa, mitä tahansa HTML-elementti 1205 01:11:43,000 --> 01:11:45,820 on tunnus rekisteröintiä. 1206 01:11:45,820 --> 01:11:52,440 Tämä vastaa document.getElementById ("rekisteröinti"). 1207 01:11:52,440 --> 01:11:54,170 >> Miksi ihmiset, kuten jQuery? 1208 01:11:54,170 --> 01:12:00,110 Koska se on lyhyempi kirjoittaa. Mutta sitä se on. Se on sama idea. 1209 01:12:00,110 --> 01:12:02,630 Hanki minulle tag jonka tunnus on rekisteröinnin. 1210 01:12:02,630 --> 01:12:06,300 Ja kun se tag, joka sattuu olemaan muodossa, toimitetaan, 1211 01:12:06,300 --> 01:12:08,300 mennä eteenpäin ja suorittaa tämän koodin. 1212 01:12:08,300 --> 01:12:11,320 Joten ottaa yksi tarkastella nyt kuinka pärjäämme muodossa validointi. 1213 01:12:11,320 --> 01:12:15,950 Syntaksi on tosin kryptinen aluksi, mutta mitä on tekeillä? 1214 01:12:15,950 --> 01:12:21,050 Jos tätä linjaa koodi on totta, aion huutaa käyttäjää antamaan hänen sähköpostiosoitteeseen. 1215 01:12:21,050 --> 01:12:22,970 Joten mitä tämä rivi koodia? 1216 01:12:22,970 --> 01:12:25,560 $ Tarkoittaa jQuery. Nyt huomaa tätä. 1217 01:12:25,560 --> 01:12:27,920 Tämä on ikään kuin CSS. 1218 01:12:27,920 --> 01:12:33,370 Jos olet sukeltanut CSS vielä, tiedät, että tämä tarkoittaa elementtiä, jonka tunnus on rekisteröinnin. 1219 01:12:33,370 --> 01:12:39,840 Tila tarkoittaa löytää lapsi tai jälkeläinen rekisteröinnistä, jonka nimi on panos. 1220 01:12:39,840 --> 01:12:42,970 Ja sitten tämä asia hakasuluissa on pieni suodatin. 1221 01:12:42,970 --> 01:12:47,010 Ja vaikka tämä näyttää arvoituksellisesti, tämä tarkoittaa vain mennä lomake, jonka tunnus on rekisteröinnin, 1222 01:12:47,010 --> 01:12:51,230 Siirry syöttöosassa sisällä siinä, jonka nimi on sähköposti, 1223 01:12:51,230 --> 01:12:55,440 ja sitten saat sen arvo, riippumatta sen arvo sattuu olemaan - 1224 01:12:55,440 --> 01:12:59,670 asdf jos siinä on kaikki mitä koneella tai malan@harvard.edu jos se mitä olen kirjoittanut. 1225 01:12:59,670 --> 01:13:05,250 Joten jos arvon lomakkeen sähköpostiosoite kenttään == mitään, huutaa käyttäjä. 1226 01:13:05,250 --> 01:13:09,700 If arvo salasana-kenttään == mitään, huutaa käyttäjä. 1227 01:13:09,700 --> 01:13:19,520 >> If arvo salasana kenttä ei ole yhtä suuri kuin arvo vahvistuksen kentän, 1228 01:13:19,520 --> 01:13:22,850 joka oli muu elementti, huuda käyttäjälle. 1229 01:13:22,850 --> 01:13:25,680 Ja sitten lopuksi - ja tämäkin on joitakin uusia syntaksi omia, 1230 01:13:25,680 --> 01:13:29,270 mutta kun on nähnyt, se on ainakin hieman järkevämpi - 1231 01:13:29,270 --> 01:13:34,060 if lomake, jonka tunnus on rekisteröinnin on syöttöosassa jonka nimi on sopimus 1232 01:13:34,060 --> 01:13:39,720 ja se tarkastetaan, mennä eteenpäin ja huutaa käyttäjä. 1233 01:13:39,720 --> 01:13:42,520 Olen siis täysin myöntää tämä on täysin ylivoimainen ensi silmäyksellä. 1234 01:13:42,520 --> 01:13:46,530 Se on paljon uusia syntaksin. Mutta kaikki jQuery seuraa tällaisia ​​kuvioita. 1235 01:13:46,530 --> 01:13:49,880 Ja rehellisesti, en edes tiedä tätä olemassa vasta muutama minuutti sitten. 1236 01:13:49,880 --> 01:13:53,640 Googlasin "Miten tarkistaa, onko valintaruutu on valittuna jQuery?" 1237 01:13:53,640 --> 01:13:55,680 ja tämä on syntaksi, koska siellä on erilaisia ​​tapoja tehdä se 1238 01:13:55,680 --> 01:13:58,010 todellisia raaka JavaScript-koodia. 1239 01:13:58,010 --> 01:14:01,030 Niin ensimmäinen sivu Harjoitus 7 painottaa, 1240 01:14:01,030 --> 01:14:04,500 PSET 7 on hyvin harjoitus bootstrapping itse 1241 01:14:04,500 --> 01:14:08,650 missä olemme edellyttäen, toivottavasti, käsitteellinen kehys, jonka torjumiseksi PSET. 1242 01:14:08,650 --> 01:14:12,280 >> Mutta kuten usein käy web design, se on sinun todella penkoa, 1243 01:14:12,280 --> 01:14:16,680 sisällyttää koodinpätkää ja esimerkkejä Web niin kauan kuin siteerata niitä 1244 01:14:16,680 --> 01:14:17,960 kohden ehdot että ensimmäisen levyn, 1245 01:14:17,960 --> 01:14:21,460 ja ymmärtää, että oppiminen HTML, CSS, JavaScript ja jopa SQL 1246 01:14:21,460 --> 01:14:26,020 on todellakin tarkoitus olla tämän kotona harjoituksen alamme ottaa nämä apupyörät pois. 1247 01:14:26,020 --> 01:14:29,150 Ja huomannut liian on niin paljon enemmän asioita voit tehdä selaimella. 1248 01:14:29,150 --> 01:14:33,790 Sisällä useimmat näistä elementeistä on muitakin asioita kutsutaan tapahtumankäsittelijät. 1249 01:14:33,790 --> 01:14:37,140 Ja vaikka me vain katseli niitä kutsutaan onsubmit ja onready, 1250 01:14:37,140 --> 01:14:40,310 voit tehdä asioita, kuten onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 kuten kun käyttäjä koskettaa avain, voit kuunnella tästä ja ylös. 1252 01:14:43,410 --> 01:14:45,940 Gmail on pikanäppäimiä. 1253 01:14:45,940 --> 01:14:49,490 Miten Google toteuttaa pikanäppäimet kuten C säveltää? 1254 01:14:49,490 --> 01:14:54,120 He kuuntelevat tapahtumiin, kuten niitä kutsutaan, kuten onkeypress tai onkeyup ja onkeydown. 1255 01:14:54,120 --> 01:14:56,360 Jos olet joskus leijui hiiri joidenkin valikon 1256 01:14:56,360 --> 01:15:00,180 ja yhtäkkiä, voila, valikko tai graafisen väri muuttuu, 1257 01:15:00,180 --> 01:15:01,920 miten he tekevät sen? 1258 01:15:01,920 --> 01:15:06,940 Sen sijaan kuunnella onready tai onsubmit voit kuunnella onmouseover tai onmouseout. 1259 01:15:06,940 --> 01:15:10,920 >> Eli lyhyesti sanottuna, näitä hyvin yksinkertaisia ​​perusasioita, että olemme alkaneet naarmuta tänään 1260 01:15:10,920 --> 01:15:13,940 ja me sukeltaa edelleen keskiviikkona, sinulla on yhä, 1261 01:15:13,940 --> 01:15:17,530 valta toteuttaa erilaisia ​​asioita, jotka olet jo tuttu. 1262 01:15:17,530 --> 01:15:21,620 Joten päättyä siihen, ja jatkamme tätä keskiviikkona. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]