>> DAVID MALAN: Selvä.
Tämä on CS50, ja tämä on viikon lopussa yhdeksän.
Se on ollut tornado yli viime päivinä.
Ja ongelma asettaa seitsemän, jos olet polvi syvälle se, toteuttaa siellä melko
vähän uutta, että on siellä.
Mutta katsotaanpa, jos emme saa selville kaikki yhdessä täällä lyhyesti
sitä ennen ajautuminen ulos vuonna vielä toiseen suuntaan ja näkeminen
missä muualla voimme mennä.
>> Joten toistaiseksi, olemme puhuneet HTML.
Olemme puhuneet CSS.
Olemme puhuneet PHP.
Olet alkanut kokea SQL.
Tänään me puhua vähän noin JavaScript.
Mutta miten kaikki nämä erillisten kielet sopivat yhteen?
>> Joten puhuimme viime viikolla käsite, jonka palvelin.
Joten haluan vain tehdä tämän suorakulmion kuten web-palvelin täällä.
Ja web-palvelin palvelee varmasti tiedostoja.
Ja jotkut näistä tiedostoista voi olla HTML-tiedostoja.
Joten yksi niistä asioista, jotka www-palvelin voi sylkemään voisi olla tiedosto, joka
me vain vetää näin sisältää joitakin HTML.
Joten maallikon termein, mitä ei HTML voit tehdä?
>> Yleisö: Page hyvältä.
>> DAVID MALAN: OK, tee sivun hyvältä, vaikka mielestäni olen osoittautunut
että muuten.
Joten HTML ei anna sinun asetella sivut rakenteellisesti, ja sen avulla voit
tavallaan esteettisesti merkitä sivun, merkitse staattista sisältöä, niin että sinulla
voi sitten katsella sitä selaimella.
>> Mutta se on avain.
Se on staattista sisältöä.
Kirjoitat sen, voit tallentaa sen, ja sitten lähettää sen.
Ja web-palvelin toimii sitten se jopa kävijöitä.
>> Mutta me tyylitellä asioita käyttämällä eri kielen kokonaan.
Aloimme käyttää tyyliattribuutti tietyistä tageja.
Ja tyyliattribuutti Tehkäämme asioita, kuten fontin kokoa ja väriä.
Ja olet todennäköisesti alkoivat löytää, tai voit pian lopulliseen
hankkeisiin mahdollisesti vielä muita ominaisuuksia, joita voit käyttää CSS.
Ja niin maallikon termein, mitä todella niin ei CSS tehdä?
Nämä ovat vain esimerkkejä niistä.
Mitä se antaa sinun tehdä sitä HTML ei näytä siitä, mitä
olemme nähneet tähän mennessä?
>> Yleisö: Määrittele tyylejä itse.
>> DAVID MALAN: Määritä tyylit itse.
Joten määritellä asioita, kuten luokkiin, kun ovat voineet kokea, tai yksinomaan
tunnistaa solmut asiakirja niin että voit tyylitellä niitä.
Mutta tarkemmin, sanoisin, että CSS todella voit ottaa asiat
viimeisen mailin ja voit määritellä paljon tarkemmin estetiikka,
kun taas HTML suurimmaksi osaksi avulla voit jäsentää sivuja.
>> Ja vaikka jotkut oletusarvot, kuten näimme tag
Nimikkeen tunniste, joka karkeasti ottaen tehnyt asioita iso ja rohkea.
Se on aika yleinen määritelmä tag - iso ja rohkea.
Mikä fonttikoko on?
Minkä värinen se on?
Kuinka rohkea on?
Ja CSS voit enemmän hienoksi virittää tuollaista.
Sekä ulkoasu, kuten jotkut teistä ovat nähneet.
>> Ja suoraan sanottuna, CSS on vähän sotkuinen kieltä.
Se on hyvin voimakas, että voit tehdä kirjaimellisesti minkä tahansa sivuston, että olet
nähtävänä netissä tänään, mutta se on eräänlainen kipua niskassa.
Ja jotkut teistä ovat takoi päätäsi vastaan ​​seinät jo vain tehdä
jotain tyhmää kuten keskustan valikosta ongelma asettaa seitsemän, jos olet mennyt
Siinä vaiheessa jo.
>> Mutta ymmärtää, nuo asiat helpompaa ajan.
Voit alkaa huomata kuvioita.
Ja vielä, Google on ystäväsi eri tapoja, joilla voit
ratkaisemaan tällaisia ​​ongelmia.
>> Ja uskallan sanoa CSS ja HTML enemmän yleensä, voit ratkaista ongelmia
paljon enemmän tapoja, jotka kaikki voisi hyvin hyvinkin olla oikea, kuin mitä voisi
jokseenkin C, jopa nyt PHP tai JavaScript.
On vain monia erilaisia tapoja antaa asioita.
>> Mutta tämä alkoi saada sotkuinen, sanoimme.
Juuri sellainen sekoittuminen HTML ja CSS kanssa tyyliattribuutti oli
hieman huolimaton.
Ja niin me sen sijaan sanoi, eräänlainen abstraktisti ottaen, että sinun pitäisi
ainakin alkavat tekijä out your CSS todennäköisesti.
Ei sinun tyyliattribuuttien mutta ainakin käyttää tyyliä tag sisällä mitä
osa web-sivun?
>> Yleisö: Head.
>> DAVID MALAN: päähän.
Tähän asti meillä oli vain otsikon ylös siellä, mutta voit myös lisätä tyyliä
tag, ja voit laittaa CSS karkeasti ottaen kohti sivun yläreunassa.
Mutta sitten otimme asioita askeleen pidemmälle ja me laskelmiin, että enemmän
erilliseen tiedostoon.
>> Ja niin nämä kaksi tiedostoa olivat jotenkin nyt liittyy.
Ja se todellakin oli tunniste, joka teki sen.
Ja mikä oli yksi kaikenkattava motiivit factoring tutustu CSS
sitäkin?
>> Yleisö: Uudelleenkäytettävyys.
>> DAVID MALAN: Uudelleenkäytettävyys.
Oikea?
Olet ehkä nähnyt p-asettaa seitsemän jo että paljon sivuja,
ostaminen sivu, myynti sivu, portfolio sivu, ovat luultavasti
rakenteeltaan hieman samalla tavalla.
On CS50 rahoitus-logoa ylhäällä jos olet päättänyt muuttaa sitä.
Siellä footer sivujen alareunassa.
Ja CSS voit sitten tekijä sitä se erilliseen tiedostoon niin, että jos
haluat muuttaa jotain maailmanlaajuisesti poikki koko sivuston, voit todella
vain muuttaa se yhteen paikkaan.
>> Mutta on hinta, jonka maksat mahdollisesti laiminlyömällä pois laskusta
CSS minun HTML-tiedosto erilliseen tiedostoon viitataan sen
tag, joka näimme maanantaina.
Mikä voisi haittapuoli olla tämän?
Muistelen viikko sitten, kun olemme puhumme HTTP ja TCP / IP ja miten
internet toimii.
Jotain täällä?
>> Yleisö: Se vie enemmän aikaa.
>> DAVID MALAN: Se vie enemmän aikaa.
Miksi?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Joo.
Joten se luultavasti vie vähän enemmän aikaa.
Koska yksi, CSS on ilmeisesti ei samaan tiedostoon.
Joten nyt sinun täytyy tehdä ei yksi, mutta kaksi pyyntöä.
Ja jokainen näistä pyynnöistä kuten näimme Chrome ns tarkastaja,
ja me katsoimme verkko-välilehti, kukin näistä tiedostoista vaatii yhden HTTP
pyynnöstä, jonka näimme vie jonkin verran aikaa.
Nyt, ehkä se ei ole paljon.
Ehkä se on vain 20 millisekuntia.
Ehkä se on 200 millisekuntia.
>> Mutta ajattele sivulle, kuten Facebook, tai CNN tai Google, jotka ovat paljon
suurempi kuin esimerkkien olemme Katsoin toistaiseksi.
Nämä sivut voi olla kymmeniä tiedostoja, joista jokainen saattaa edellyttää
lataaminen tiedoston.
Joten asiat voivat mahdollisesti alkaa hidastua.
>> Ja varsinkin näinä päivinä, kun me kaikki on matkapuhelimet taskussa ja
Hidas internetyhteys, ottaa odota muutama millisekuntia, muutama
enemmän millisekuntia ylimääräisiä tiedostoja voi todella olla hidasta.
Latenssi on sana, joka kuvaa sellaista odottaa, että sinulla on, että sinä
kokemus, kun odottaa joitakin tieto.
>> Mutta on väärinpäin.
Joten se ei ole kaikki tavallaan -
se todellisuudessa on hieman kiikkua täällä.
Pessimistinen nyt, mutta mitä selaimia voi tehdä jos he fiksu välttämiseksi
niiden on pyydettävä sama styles.css tiedosto uudelleen voidaan tehdä mitä?
>> Välimuistiin se.
Joten välimuistia -
C-A-C-H-E -
yleensä tarkoittaa tässä vain säästää tiedosto pyysit ensimmäistä kertaa, ja
tarkista välimuistin sitä.
Tarkista olet tavallaan säiliöön, ja jos sinulla on jo
kopio styles.css, vaikka jotkut muut sivun p-sarja, tai minkä tahansa sivuston,
pyytää uudelleen, vain antaa Käyttäjä saman välimuistinsa.
Älä vaivaudu sitä pyytää.
>> Huonona puolena on, vaikka, kuten jotkut teistä ovat kompastua in p-set.
Jos teet muutoksia palvelimelle ja menet takaisin selaimen ja olet
lataa, joskus selain ei sinulle palveluksen ja ei häiritse
uudelleen lataamista styles.css tiedosto koska nyt, mitkä ovat kertoimet
että nämä tyylit, että Facebook käyttää tulevat muuttumaan tunnista tai
päivittäin?
Se on melko alhainen.
He saattavat muuttua ajan myötä, mutta ei mennessä minuutti tai tunti.
>> Joten temppu, vain FYI kun teet internetistä kehitys, on usein pidä
Shift, esimerkiksi ja valitse lataa selaimessasi, ja se
tyypillisesti kertoa selaimen reload kaiken, vaikka sinulla on jo
sen välimuistiin.
Joten jälleen, upsides ja haittoja, mutta ne kaikki
lopulta suunnitteluun liittyviä päätöksiä.
>> Joten nyt, emme vain Loppuun tarina.
Jos minä nyt takaisin ja takaisin ja takaisin ja takaisin, aloimme esitellä ei vain
HTML, mutta PHP.
Joten maallikon termein, mitä ei PHP tehkäämme?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Mikä tämä on?
>> Yleisö: Esittele logiikka osaksi koodia.
>> DAVID MALAN: Joo, käyttöön logiikkaa koodi.
Joten se on totta ohjelmointikieli silmukat, ja muuttujat, ja
toimintoihin, ja edellytykset, ja kaikki asioita olemme käyttäneet Paluumatkalla
kun sillä tyhjästä.
Ja PHP, olemme nähneet, voidaan käyttää joko komentoriviltä - se
ei tarvitse olla mitään tekemistä kanssa web, vaikka se on
todella sen alkuperä ja mitä se pyrkii olla hyvä ja edistä -
mutta voit käyttää PHP pelkästään luonto siitä, että se on tulosta ()
toiminto, ja printf ()-funktiota, tai echo ()-funktiota.
On rypäleterttuja tapoja voi tulostaa tekstiä PHP.
>> Siksi voit käyttää tätä ohjelmointi kieli tulostaa täsmälleen
mitä puhuimme ennen.
Voit dynaamisesti HTML.
Ehkä kaikki eivät sitä.
Ehkä sinua kovasti koodin asioita, kuten header ja footer, ja logo,
ja tyylisivut, ja kaikki tämä.
Mutta jotain p-set seitsemän, jos olet manipuloimalla varastot ja
osoittaa käyttäjän salkun, joka on menossa dynaamisesti muuttaa, voit
varmasti käyttää PHP ja logiikka se antaa sinut ohjelmointikieli
lähtö dynaamisesti Osajoukot sivun.
>> Joten kun puhutaan dynaamisia verkkosivuja, tai Web-ohjelmointi, joka on
mitä olet todella puhutaan.
Käyttämällä kuten PHP tai asioita sanottu Python tai Ruby tai Java tai
vielä muita kieliä, kyselyn tietokantaan usein, tai toiselle palvelimelle, ja
sitten dynaamisesti sylkemään HTML.
>> Nyt lopputulos, kuten syrjään, on että HTML useimmat sivustot,
mukaan lukien p-set seitsemän, on luultavasti olemaan valtava sotku, jos
sinä katsot lähde koodia selaimessa.
Se ei ole iso juttu.
Tässä vaiheessa, kun välitämme tyyli, välitämme
tavaraa, että kirjoitat.
Emme välitä juttuja että mitä koodia lähtöä.
Joten älä ole huolissasi painuman , jos se on PHP, joka on
todella syöttöä kamaa.
Loppujen lopuksi selain ei välitä, ja ihmisen ei tule tarkastella
alkulähteellä muutenkin.
Meillä henkilökunta, esimerkiksi asioista Tarkastelemme PHP.
>> Joten annan nopea esimerkki nyt miksi muuten tämä voi olla hyödyllistä.
Joten suoraan sanottuna, en muista viimeksi kertaa käytin C ratkaista ongelma
todellisessa maailmassa.
Se oli luultavasti tutkijakoulun kun Tarvitsin käyttää kieltä, joka
oli melko alhaisella tasolla ja antoi minulle tilaisuus tehdä jotakin erittäin korkea
esittävien todella pelastaa mahdollisimman monta CPU jaksoa kuin pystyin, suurelta osin
koska olin käyttäen valtavia tietomääriä, ja jokainen CPU sykli lasketa.
Ja suoraan sanottuna, jopa asioita, kuten puhelimissa näinä päivinä ja muiden laitteiden
jos sinulla ei aivan ole niin paljon muistia ja sinulla ei aivan ole niin
paljon CPU, käyttäen nopeammin kielillä on edelleen houkutteleva.
>> Mutta todellisessa maailmassa, kun vain halua heittää jotain ohjelmaa yhdessä
analysoida joitakin tietoja, tai olet kerännyt koko joukko rekisteröinnit
Joissakin opiskelijaryhmä ja haluat hyvin nopeasti automatisoida sähköpostiviestien lähettäminen
yksi kerrallaan jokainen näistä Rekisteröijäksi aiot tavoitella
korkeamman tason kielellä kuin C niin sanoakseni.
Jotain PHP tai Python tai Ruby, tai puoli tusinaa muita, jotka ovat olemassa
näinä päivinä.
Mutta nämä kolme ovat luultavasti kaikkein trendikkäitä juuri nyt.
>> Ja mitä tämä tarkoittaa, että voit avata ylös tekstieditorissa, kuten gedit tai
Useimmissa mitään muuta ja sitten vain alkaa kirjoittaa koodia ilman huolta
noin kokoamiseen, ilman todella murehtia muistin hallinta,
pitäen mielessä kuitenkin, että hieman epäjärjestys tulee lopulta takaisin
pure, jos tietokokonaisuus saa suurempi tai ongelma saa iso.
Mutta mitä tämä merkitsee meille on seuraava.
>> Anna minun mennä eteenpäin ja ajaa aapinen alkaen ongelma asetettu kuusi.
Joten tämä on minun triestä-pohjainen toteuttamista että käytin iso
lauta jossa Tein ei niin hyvin.
Tulemme takaisin viikon kuluttua ja uudelleen ne, jotka eivät lopulta huipulla
iso board meidän viimeinen luento.
Mutta nyt haluan mennä eteenpäin ja vain ajaa minun ratkaisu tekstiä, ja teemme
King James Bible, ja tässä sitä mennään.
>> Joten ne ovat kaikki muka kirjoitusvirheet pois
King James Bible.
Ja minun Toteutus kesti puoli sekuntia yhteensä.
Joten ei ole liian huono tässä tiettyyn tietokoneeseen.
Mutta ajattele, kuinka paljon koodi Jouduin kirjoittamaan.
Ajattele, kuinka paljon koodia sinun piti kirjoittaa.
Ajattele kuinka monta tuntia olet viettänyt D-hallissa tai asuntolan tai missä
todella koodaus jopa tätä ratkaisua.
>> No, jos olen oikeastaan ​​korkeampi kuten PHP, huomioi
mitä voin tehdä täällä.
Ensinnäkin luulla, että tämä on sen sijaan jakeluasetuksesi koodi.
Tämä on tiedosto nimeltä aapinen.
Se on saatavilla osana nykypäivän jakelu-koodi.
Ja aion heiluttaa kättäni eniten yksityiskohdista, mutta tämä on oikeastaan
mielenkiintoinen esimerkki siitä, miten saatat portti kieli
kuten C yli PHP.
Olen kirjaimellisesti avasi kaksi tekstiä ikkunat, yksi minun C-version speller.c,
ja olen juuri aloittanut kääntäminen se minun suunnata PHP ja kirjoittamalla sitä käyttäen
lähinnä vastaavia tehtäviä.
>> Joten jotkut näistä asioista ovat erilaisia.
Näimme viime kerralla, että PHP ei käytä kuuluu aivan samalla tavalla.
Se käyttää edellyttävät tyypillisesti, vaikka kuuluu käytännössä olemassa.
Määrittele on hieman erilainen kuin # Define C, mutta se on
miten teemme jatkuvasti.
$ Argc käy ilmi olemassa PHP, joten olemme nähneet, että ennen.
Nämä ovat vain muuttujia, jotka kaikki jotka alkavat dollarin merkkejä.
Recall nämä ovat vain nippu kelluva pistettä.
>> Niin pitkän tarinan lyhyesti, olet tervetullut selata tätä, jos utelias, tämä on
lähes linja-for-line muuntaminen C-versio speller.c osaksi PHP.
Ja voit tehdä tämän uudelleen puoli tusinaa muita kieliä.
>> Mutta mikä on mielenkiintoista on tämä.
Tai mitä rehellisesti masentavaa on tämä.
Anna minun mennä eteenpäin ja kirjoita noin dictionary.php, ja väittävät, että olen
menossa eteenpäin ja uudelleen toteuttaa Ongelma asetettu kuusi täällä.
>> Joten ehdottaa, että tällä tiedosto, joka toteutetaan
PHP, joten haluan avaan tageja niin.
Annan itselleni maailmanlaajuisen muuttuja, $ koko saa nolla.
Ja minä aion antaa itse tiiviste.
Minä käytän hash table tämän asian.
Miten voin julistaa hash taulukon PHP?
Valmis.
OK.
>> Joten alkusulkumerkki loppusulkumerkki edustaa mitä PHP, kuten olemme nähneet?
Array, mutta array, joka voisi olla tällainen taulukko.
Assosiatiivisia array on tietorakenne, joka
yhdistää avaimet arvoja.
>> Nyt yksinkertaisin numeerisesti indeksoitu array, ne avaimet ovat mitä?
Nolla, yksi, kaksi, kolme, eikö?
Old school tavaraa takaisin C. Mutta se voi myös jouset kuten foo ja bar,
tai Maxwell, eikä mitään muuta sellaista merkkijono.
Joten en voi hyödyntää, että vain hetken.
>> Anna minun mennä eteenpäin ja julistaa toimivat kuten -
Tehdään kuormitus () ensin.
Joten toiminto kuormitus ().
Ja PHP on hieman erilainen, että kirjaimellisesti kirjoittaa toiminto, mutta et
älä kirjoita palautuva.
Aion mennä eteenpäin ja sanoa, että kuormitus ()-funktiota pitäisi ottaa
argumentti $ sanakirja, vain kuten C-versio teki.
Teen että muistista.
>> Ja ehdotan, että olen aikoo tehdä tämän.
En yksinkertaisesti aio tehdä foreach.
Aion soittaa toiminto nimeltään tiedostoon (), kulkee nimissä, että
tiedostoon, joka on muuttuja $ Sanakirjassa $ sana.
Ja sitten sisällä minun silmukan täällä, olen menossa eteenpäin ja tallentaa minun
$ Table että $ sana saa totta.
Valmis.
Hei, odota.
Valmis.
OK.
>> Että on kuormaa ()-funktiota sanoa PHP.
Nyt, miksi se toimii?
Ja olen tavallaan huijausta täällä.
>> Niin, yksi, foreach näimme lyhyesti viime kerralla.
Se vain tarkoittaa, että voit kerrata yli array huolehtimatta kanssa i
ja n ja plus plus, ja kaikki tämä.
Sanakirja on tietysti tiedoston nimi, jotain iso tai pieni, kaksi
sanakirjoja käytimme viime kerralla.
Tiedosto on toiminto, joka avaa teksti tiedosto, lukee sen rivi riviltä, ​​ja
ojentaa sinulle takaisin valtava, jokainen, jonka elementit on
line Tuosta tiedostosta.
Niin, että yhdistelmä fopen, ja fread, ja kun silmukka, ja fclose,
ja kaikki tämä.
Lopuksi, koska sana tarkoittaa vain sitä, että on muuttuja Aion saada
jokaisen iteraation tässä silmukka.
>> Joten lyhyt, tämä liner tarkoittaa tässä avata tiedoston, jonka nimi on
sanakirja, muuttuja, kerrata yli se rivi riviltä, ​​ja joka kerta saat
linja, myymälän muuttuja nimeltä sana, ja sitten tehdä jotain sanaa.
Mitä haluan tehdä?
Haluan laittaa sanan minun tiiviste.
>> No, voin laittaa jotain minun hash table aivan kuten C
hakasulkuja.
Tämä on nimi minun tiiviste.
Aion indeksinä että hash taulukko tässä paikassa.
Joten ei haarukoida nolla, ei haarukoida yksi.
Kannatin quote unquote jotain, mitä se sana on.
Ja aivan kuten saatat olla omassa hash table työ triessä, juuri myymälä
tehokkaasti totuusarvoarvoja epäsuorasti tai erikseen.
Valmis.
Olen tallentaa arvon true.
>> Nyt on olemassa pari asiaa Olen tinkivät täällä.
Teknisesti siellä tulee olemaan harmittaa uusi linja, / n, lopussa
kukin näistä sanoista.
Joten minun pitäisi varmaan soittaa PHP funktio kutsutaan chop (), joka
aivan kirjaimellisesti hakata että pois.
Ja minä itse tarvitse tehdä yhden asian.
Pitäisi varmaan porrasväliksi kullakin iteraation, joten olen pitää seurata
maailmanlaajuisesti, mitä se on.
Ja suoraan sanottuna, ja tämä on yksi stupider näkökohtia PHP, jos olet
käyttäen globaali muuttuja, tarvitset nimenomaan sanoa, että olet.
Joten aion todella kirjoittaa maailmanlaajuisen $ Koko, globaali $ pöytä, ja nyt
tehtäväni on valmis.
>> Joten ole aivan niin yksinkertainen kuin ennen, mutta luultavasti kesti vähemmän aikaa kuin C
versio, ehkä?
OK.
>> Joten nyt tehkäämme check ()-funktiota.
Katsotaanpa, jos tämä ainakin otti tuntikausia, että se vei meidät C. So
anna minun mennä eteenpäin ja julistaa tarkista funktiona.
Vie väite sana, joka on oikein tulevat speller.
Ja olen juuri menossa tarkistaa, jos muuttuja seuraavasti isset, taulukko
kiinnike strtolower sanan -
katsotaanpa tasapainoon kaikki minun suluissa -
sitten palata totta.
Else -
se oli todella kova osa tätä ohjelmaa.
Else, return false.
Valmis.
Se tarkistaa ().
>> Nyt, miksi tämä toimii?
No, yksi ohitin sanalla, joka on merkkijono.
Kaksi, olen tarkkailun sisällä hash taulukko, joka kutsutaan $ taulukko.
Olen pakottaa sen pieniksi soittamalla funktio melko samanlainen tolower () vuonna
C, mutta tämä ei koko sana, ei yksittäinen merkki.
Ja jos se on asetettu, toisin sanoen siellä on asetettu arvo, toisin sanoen,
jos se on totta, niin kyllä, tämä on sana.
Koska laitoin sen sinne kuorman kanssa ().
Ja jos ei, aion palata vääriä.
>> Nyt toiset ovat helppoa.
Funktion koko (), miten voin tehdä tämän?
Olen lähinnä palaavat $ kokoa.
Mutta minä teknisesti täytyy tehdä tämän Harmillista.
Ja oikeastaan ​​jopa kuulla, olin leikkaus yksi kulma liikaa.
En todellakaan tarvitse tehdä maailmanlaajuisia $ taulukko.
>> Mutta että on sanottu, purkaa).
Purkaa () on hämmästyttävä.
Toiminto purkaa ().
Miten haluan toteuttaa purkaa ()?
Valmis.
OK.
>> Joten purkaa (), muistin hallinta on täysin huolehtinut sinulle
jotain PHP ja paljon korkeamman tason kielillä.
Joten tämä on hämmästyttävä.
Kuten miksi ihmeessä me viettänyt viimeiset kahdeksan plus viikkoa C kirjallisesti
ilmeisesti todella hidas, todella aika vievää ongelmia kymmeniä tunteja
Työn alla vyötä?
>> No, yksi asia, tämä saattaa toimia hieno pieniä ohjelmia.
Se varmasti nopeuttanut minun kehityksen aikaa.
Mutta katsotaanpa, mitä tapahtuu todellisessa maailmassa.
>> Anna minun mennä tähän hakemistoon pääteikkunaan.
On aapinen.
On hyvä huomioida syrjään, ja saatat ovat kohdanneet tämän ongelman asetettu
kuusi tai ongelma asettaa seitsemän.
Sinun ei ehdottomasti tarvitse end PHP tiedostoja. php.
Jos laitat likoon ensin nopeudella hyvin alkuun, se on erityinen linja
syntaksin, jolle on olennaista löytää ohjelma nimeltä PHP ja käyttää sitä
tulkitsevat tämän tiedoston.
Joten nyt kukaan ei oikein tiedä, että Olen käynnissä PHP-ohjelma.
Voin käyttää sitä aivan kuin se oli jotain koottu C.
>> Mutta tässä on asia.
Oikeastaan, tehdään tämä uudestaan.
Dropbox/pset6 /.
On aapinen.
OK, 0,44 sekuntia.
Se sai nopeammin tällä kertaa.
>> Nyt mennään osaksi PHP versio.
Nice touch.
Mutta ajatelkaa, kuinka paljon aikaa Säästin toimistossa tuntia.
OK.
>> Joten 3,59 sekuntia, mikä oikeastaan ei kuulosta tarkkoja myöskään.
Mutta se johtuu pitkän tarinan lyhyesti, kun olet tulostaa valtava määrä
tavaraa näyttö, että itse hidastaa asioita alas.
Mitä se todella vei CPU Laite oli 3,59 sekuntia, vuonna
Toisin kuin C, joka kesti 0.44 sekunnin viimeksi.
Se on todella järjestyksessä suuruus eri.
>> Joten missä on, että hinta tulee?
Miksi se on niin paljon hitaampaa?
Miksi PHP tehdä niin huonosti?
Danielle?
>> Yleisö: Sinun ei oikeastaan Käytä tiiviste.
>> DAVID MALAN: En todellakaan Käytä tiiviste.
Joten Olen sellainen teki.
Joten se on assosiatiivinen array.
Todennäköisesti jos ihmiset PHP ovat todella fiksu, ne käytetään alla
huppu todellinen tiiviste täytäntöön moisesta C-tai C + +.
Mutta.
Joo.
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Joo.
Joten jokainen toiminnot kirjoitin nyt - Oikeastaan ​​voi sanoa, että jälleen kerran
vähän kovempaa?
>> AUDIENCE: Jokainen toiminnot, jotka olet mukana on paljon enemmän täynnä
kapasiteettia kuin -
>> DAVID MALAN: Niin, että on hyvin totta.
Siellä on paljon enemmän yläpuolella, että olemme ei todellakaan nähdä keskittymällä pelkästään
dictionary.php, jonka minä vain kirjoitti.
Sen sijaan siellä on koko tulkki menee taustalla.
Todellakin, kun juoksin tätä ohjelmaa, se ei ollut käynnissä koottu nollia ja ykkösiä
suunniteltu minun Intel CPU.
Pikemminkin se oli käynnissä rivi riviltä PHP, joka näyttää täsmälleen
like me kirjoittanut sen.
Ja niin, kun käytät tulkita kielen,
itse tehdä maksaa tämän hinnan.
Se vie jonkin aikaa lukea tiedosto ylhäältä alas, vasemmalle
oikealle, ja sitten suorittaa kunkin linja uudestaan ​​ja uudestaan.
>> Nyt todellisuudessa, erityisesti verkossa, voit itse nopeuttaa tätä prosessia
tallentamalla tulokset PHP tulkitaan.
Ja että on järkevää Webissä, koska jos et ole yksi käyttäjä, kuten
minut tänne, mutta 1000 tai 10000 käyttäjää, niin ehkä ensimmäistä kertaa tiedosto on
näytetty se on hidas, mutta sen jälkeen se on paljon nopeampi.
>> Mutta tämäkin taas on kaupan pois.
Ja jotain tutkimustietoa set, tai edes jotain suurta, kuten
Tämän käyttäjät lopulta alkaa tuntua, että hidastuminen.
>> Joten lyhyt, tulkitaan kielet ovat hyvin muodissa, hyvin suosittu, ja
rehellisesti ovat luultavasti kieliä pitäisi tavoitella, kun ongelmien ratkaisemiseen
jälkeen CS50.
Mutta ymmärtää, kuinka paljon olet todella itsestään selvänä alla huppu
todella ohittaneet useita viikkoja hash taulukot, ja puita, ja yrittää,
joita käytetään lopulta itse toteuttaa asioita, kuten alkusulkumerkki,
hakasulkeen, jonka voimme nyt kiitollisena itsestäänselvyytenä.
>> Joten katsomaan nyt Tämän internetsivuston yhteydessä.
Ja mainitsin viime kerralla, että on olemassa nippu Superglobaalit PHP, joka
eivät oikeastaan ​​merkitystä komentoriviltä.
He enemmän merkityksellisiä käyttää PHP web yhteydessä.
Joten käynnissä PHP web-palvelin, jotta tuottaa tavaraa kuten HTML.
>> Ja me vilkaisi $ _GET ja $ _POST, ja siitähän automaattisesti käyttäjien
input päätyy vain jos lähetät muodostavat tiedostoon päättyy. php web
palvelimelle kuin laite.
Mutta katsotaanpa lyhyesti $ _COOKIE Ja $ _SESSION.
>> Maallikon termein, mikä on evästeen ymmärrät sen yhteydessä
käyttämällä web?
>> Yleisö: tiedosto tietokoneeseen.
>> DAVID MALAN: Joo.
Se on tiedoston käyttäjän tietokoneessa istutettu tahansa verkkosivuilla
satut käymään.
Joten kun menet Facebook, kun menet to bankofamerica.com, kun menet
to google.com, kun menet lähes kaikki verkkosivuilla maailmassa näinä päivinä,
lukien cs50.net, eväste on istutettu tietokoneeseen, joka on
joko arvo tallennetaan RAM-muistia tietokoneeseen selaimen muistiin tai
joskus todellakin tiedosto tallennetaan kiintolevylle.
>> Ja mitä tallennetaan tyypillisesti, että tiedosto ei ole käyttäjätunnuksesi, ei sinun
salasanan, tyypillisesti ole jotain herkkä ellei sivusto ei ole niin
hyvä niiden turvallisuutta, vaan se on iso yksilöllinen tunniste keskuudessa
muita asioita.
Se on iso satunnaisluku istutettu teidän tietokoneeseen, mutta et voi ajatella niin
eräänlainen virtuaalinen käsi leima kuin suoraan klubi tai jokin huvipuisto, että
mahdollistaa henkilöstön, omistajien, jotka palvelu, muistaa, kuka olet.
Joten jos iso satunnaisluku on kuin 12345678, vaikka se on tietysti
ei liian satunnainen, ajatella, että käsi leima, että kun käyt
facebook.com ensimmäistä kertaa, ne leima että numero käteen.
Ja sitten, koska puhut HTTP, voit on selain, ja koska Facebook
ilmeisesti puhuu samaa kuin web palvelin, HTTP sanoo, että
milloin myöhemmin käy facebook.com, onko se toinen
myöhemmin, tuntia myöhemmin, vaikka seuraavana päivänä, niin kauan kuin et ole nimenomaisesti
kirjautunut ulos, joka tehokkaasti on kuin käsien pesu.
HTTP sanoo sinun pitäisi esitellä käsi leima aina
palata että verkkosivuilla.
>> Mitä Facebook sitten ei on ne katsoa, ​​että käsi leima ja
he sanovat, oh, 123456789.
En tiedä ensi silmäyksellä, että tämä on David Malan Cambridge,
Massachusetts, mutta ne voivat tarkistaa tietokanta ja sanoa, oh, henkilö
jonka tietokone istutimme 123456789 on David Malan Cambridge,
Massachusetts.
Näytetään, että käyttäjän niin hänen profiilia sivu tai hänen News Feed.
>> Mutta on ongelma, jos tämä Näin web todellakin toimii.
Katsotaanpa katsomaan nopea esimerkki.
Katsotaanpa itse mennä sanoa facebook.com.
Mutta ennen kuin voimme mennä sinne, anna minun mennä eteenpäin ja avata Chromen
Tarkastaja täällä.
Anna kun katson verkon välilehti.
Ja nyt mennään eteenpäin ja kirjoita vuonna https://facebook.com.
Ja olen tekemässä, että niin, että emme näe kaikki nämä ohjaukset ja jätteiden
aikaa etsimässä läpi nuo.
Minäpä enteriä.
>> Selvä.
Näemme koko joukko pyyntöjä.
Siellä tulee Facebook.
On koko joukko tiedostoja.
Ja tässä kohden minun mainita latenssi viimeisen kerran, se
paljon HTTP-pyyntöjä.
Mutta ensimmäinen on luultavasti mielenkiintoisin.
>> Joten selaa täällä, ja Minä suurentaa toisessa.
Tämä tulee olemaan eräänlainen sotku, mutta katsotaan.
Facebook lähettää meille koko joukko tavaraa.
>> Mutta hei, mielenkiintoista.
He istutus ole yksi, vaan neljä käsi postimerkkejä päälle käteni täällä.
Set-evästeen Set-evästeen, set-evästeen, set-cookie.
Ja on muutamia ominaisuuksia täällä.
Kaikki heistä mainita muutamia Tällainen päättymistä.
Ja näyttää siltä, ​​Facebook toivoo muistaa minut vuoteen 2015 saakka.
Niin, että oletettavasti aika, jonka Minun täytyy kirjautua ulos tai he vain
automaattisesti olettaa, olen ole tulossa takaisin.
Niin, että on todella kunnollinen aikaa.
>> Ja joitakin muita asioita tapahtuu täällä.
Tämä eväste näyttää väkisin Poistetaan sanomalla se päättyi vuonna 1970
ennen evästeet olemassa.
Joten selain on juuri menossa olettaa OK, se on kuin
käsien pesua leima.
>> Mutta nyt kun minun selain tekee myöhempi pyyntö -
anna minun mennä eteenpäin ja tehdä tämän uudelleen ja uudelleen.
Nyt haluaisin siirtyä takaisin top pyynnöstä ja mene alas
täällä, pyyntöotsikoihin.
Huomata tämän.
Joten nyt olen alla ole vastaus otsikot, mutta huomaa sanoo pyyntöotsikoihin.
Ja huomaan että selain osana pyyntönsä syönnin jälkeen reload on
lähetetään ainakin seuraavat tietoa.
Ei set-evästeen, mutta evästeen.
Joten tämä on linja, HTTP-otsikon niin puhua, jos selain on eräänlainen
ja ilman minun tietämättä esittää käteni Facebookin tarkastusta.
>> Joten nämä evästeet voivat olla käytössä niin mitä?
Muistaa, kuka olet, tai muistaa miten monta kertaa olet ollut siellä, tai
oikeastaan ​​mitään.
>> Joten tässä on counter.php.
Ja haluaisin suurentaa fonttia.
Ja joka kerta kun päivittää tämän sivun, huomaat se muistaa kuinka monta kertaa
Olen ollut siellä.
No, se ei ole kaikki, että vaikuttava.
Katsotaanpa vain sulkea kyseisen välilehden, ja nyt mennään takaisin
http://localhost/counter.php.
>> Sepä mielenkiintoista.
Se vielä muistetaan, jopa vaikka olen suljettu välilehti.
Ja suoraan sanottuna, jos suljen selaimen, jos ne toteutetaan oikealla tavalla, I
voisi silti muistaa, että tämä käyttäjä on kuka hän oli ensimmäinen kerta, ja
vain kerran menen Chromen valikon, joka tänne on täällä, ja siirry
Historia ja valitse Poista selaustiedot, kuten jotkut teistä saattaa olla
Aiemmin vain silloin tulevat evästeet tosiasiallisesti poistetaan aikana web
kehitystä.
>> Joten, jos menemme -
Katsotaanpa läheltä gedit täällä.
Ja jos menemme nyt tähän tiedostoon.
Anna minun mennä meidän vhosts / localhost / julkinen, ja anna minun tehdä
counter.php.
Huomaa, että tämä on melko yksinkertainen ohjelma.
Se on melko yksinkertainen sivusto.
>> Joten tiedoston alkuun on vain kommentteja.
Mutta tässä on uusi linja, että saatat nähneet jo p-set seitsemän,
session_start ().
Tämä on linja PHP koodia, joka lähinnä kertoo web-palvelin, jotta
Muista leima kädet ja tehdä Muista tarkistaa käsin postimerkkejä.
Siinä kaikki, että linja ei, ja se ei kaikki tämä prosessi meille.
Sitten huomaa Olen juuri saanut kaksi haaraa täällä.
Jos laskuri avaimensa tämän erityinen globaali muuttuja nimeltään
$ _SESSION On asetettu - toisin sanoen, jos siellä on jotain arvoa siellä -
Mennään sen ja tallentaa sen paikalliseen muuttuja nimeltä $ laskuri.
Else, nyt antaa $ counter oletusarvo 0.
>> Nyt tässä on yksi osa PHP, joka on sekä siunaus että kirous.
PHP on hieman huolimaton.
Joten taas C, mitä laajuus laskuri on
joko tässä tai täällä?
>> Se olisi rajoitettava niille aaltosulkeita.
Arvaa mitä?
PHP, se on olemassa jopa niiden ulkopuolella aaltosulkeita, täällä ja täällä,
ja täällä, ja täällä, ja jopa alhaalla.
Joten sanon tämä on siunaus siinä mielessä että sinun ei tarvitse ajatella niin
kovaa kuin teimme viikkoa sitten.
Mutta se on myös hieman kirous, joka missä käytät muuttujaa
PHP, ainakin tällaisen ohjelman, se on maailmanlaajuisesti saatavilla
parempaan tai huonompaan.
Joten sinun täytyy pitää mielessä nyt, että teidän muuttujat voivat olla määrittelemätön.
Olet ehkä määritellä niitä muualta.
>> Mutta mitä aion tehdä lopulta?
Aion säilyttää sisällä, että maailmanlaajuinen muuttujan arvo
counter keskeinen tulos tekee laskuri plus 1.
Joten tämä on vain aritmeettinen joka ei
incrementation tuon laskurin.
Ja se, että olen varastointia että arvo takaisin täällä on keino
olennaisesti päivittää tietokanta Muista, että käyttäjä 123456789 on ollut
täällä kaksi kertaa.
Ja kun teen sen uudestaan ​​seuraavan kerran Lataa sivu, se tulee tarkistaa
käteni leima ja sanoa, oh, Käyttäjä 123456789 on nyt
ollut täällä kolme kertaa.
>> Ja niin mitä PHP ja vastaavat kielillä tekevät meille on niitä mietitään
miten ja missä ja kuinka kauan tallentaa arvot tähän erityiseen
superglobal.
Ja tämä superglobal seuraavan kerran käydä sivulla on tavallaan maagisesti
Esitäytetyn veroilmoituksen, täynnä arvot olivat siellä viimeksi kävit,
oliko se toinen sitten, viikko sitten, tai vuonna 2013 ja olemme nyt puhu
noin 2015.
PHP ja web-palvelin hoitaa kaikki tämä teille.
>> Yleisö: [kuultavissa].
>> DAVID MALAN: muuttujat PHP ovat pohjimmiltaan aina maailmanlaajuinen ellet
ilmoittaa ne sisällä toiminto, ja sitten he ovat paikallista aikaa
toimintoa vain.
Mutta koska en ole kirjoittanut toiminnot, ne ovat nyt tehokkaasti
maailmanlaajuinen koko minun koko tiedosto tästä.
>> Yleisö: Onko tapa jotta ne paikallisia?
>> DAVID MALAN: Onko tapa saada ne paikallisia?
Vain käärimällä ne toiminnot.
Joka uusin versio PHP, voit tehdä tämän kanssa
Nimetön toiminto.
Mutta siitä lisää yhteydessä JavaScript.
Mutta lyhyt vastaus on ei.
Pidempi vastaus on kyllä.
Nice.
Hyvä tietokilpailu kysymys.
Selvä.
>> Joten lopuksi, sivu ei oikeastaan ​​aika yksinkertainen.
Huomaa, että kun suljen PHP tilassa, muistuttaa että kaikki tätä kamaa alas
Alla on vain menossa sylkeä ulos raaka selaimen.
Joka on hieno, koska en halua lähettää Käyttäjä joitakin HTML, mutta haluan
päivittää dynaamisesti, että HTML.
Ja yksi tapa voin tehdä tämä on lajitella hyvin nopeasti pudota takaisin PHP
tilassa, käytä alkusulkumerkki kysymysmerkki yhtäläisyysmerkki, ja sitten lähtö arvo
counter.
>> Tai jos tämä näyttää hieman arvoituksellisesti, tämä yhtäläisyysmerkki on oikeastaan ​​vain joitakin
syntaktista sokeria tähän printf ($ laskuri).
Mutta suoraan sanottuna, se on vain vähän ruma ja hieman harmittaa kirjoittaa.
Joten PHP hienosti tarjoaa tätä ominaisuutta jossa voit vain sanoa sitä enemmän
lyhyesti samalla tavalla.
>> Joten mitä tapahtuu alla huppu?
Katsotaanpa nopeasti katsomaan verkkoon välilehti täällä counter.php.
Ja anna minun mennä eteenpäin ja ensimmäinen katsotaanpa poistaa evästeet.
Katsotaanpa selkeä selailun tiedot vuodesta aikojen alusta.
Nyt mennään takaisin tänne.
Nyt lataa sivu.
Ja olen takaisin nollaan.
Että käteni leima on pesty, Olen nyt saada uuden evästeen.
>> Tosin jos katson verkko-välilehti ja katso vastaus otsikot, huomaa
että laite lähettää minulle evästeen, jonka nimi on hieman
mielivaltaisesti, vaan eräänlainen kohtuullisesti, PHPSESSID.
Ja se lähettää minulle todella iso satunnaisluku.
Se ei ole aivan numero.
Se ei ole aivan heksadesimaali.
Se on jonkinlainen aakkosnumeerinen merkkijono, mutta oletettavasti se on satunnaista.
Ja se on käsi leima niin puhun, olen viitaten.
>> Samaan aikaan, jos valitsen uudelleen ja sitten katsokaa tämä toinen rivi toinen
pyynnöstä, huomaa nyt, että pyyntöni otsikot ovat PHPSESSID vastaa tähän,
ei set-evästeen, mutta vain evästeen.
Ja se on minun selaimen esitys kädestäni leima.
>> Joten nyt teaser, niin jutellaan lisää tästä viikon tai niin, mutta
millä tavalla tämä tekee sinulle haavoittuvia, Facebook-tilin
haavoittuva, ja muut tällaiset Tilit haavoittuva?
>> Yleisö: Jos joku on evästeen.
>> DAVID MALAN: Joo, jos joku on evästeen.
Siis todella, aivan kuten jotkut teistä ehkä kokeillut kuten klubin tai
huvipuisto, jos yrität jotain näin kopioida leima, vaikkakin
taaksepäin toiseen henkilön käsi, ja sitten hän esittelee sitä
omaa, jos se todella ei näytä identtisiä, 123456789, sitten web
Palvelin on ilmeisesti juuri menossa luottaa siihen, että käyttäjä on sinun.
>> Ja tämä on todellakin olennainen uhka tahansa käytät evästeet
koska jos joku vain parodiat niin Kattava evästeen, lukuja, mitä se
on joko todella kopioimalla katsomalla tietokoneen
ja on kuin, OK.
David eväste on JJ3JIK ja niin edelleen, ja sitten he fiksu tietää
miten tavallaan lähettää manuaalisesti että evästeen selaimen tai
Ohjelman he kirjoittavat, he voisivat täysin kirjautua verkkosivuilla kuin sinä.
Se ei ole niin vaikea teeskennellä joku muu ellemme uudelleen p-sarja
kaksi, joka esitteli mitä?
>> Yleisö: Salaus.
>> DAVID MALAN: pieni vähän salauksen.
Yksinkertainen salaus, ainakin Standard Edition, mutta Crypto
kuitenkin.
vähemmän.
Joten se kääntyy pois, jos salata kaikki nämä otsikot käyttämällä jotain,
Nyt ehkä tietää enemmän tuttavallisesti kuin SSL, secure socket layer tai https:// URL,
sitten kaikki nämä asiat olemme olleet vilkaisi ovat todella salattu,
mikä tarkoittaa, että se on kuin sinä ei voi lukea käsi leima.
Vain facebook.com voi tai google.com, tai tässä tapauksessa laite voi
lukea, että käsi leima.
>> Traagisesti vaikka, ja jälleen, tämä on liiankin tarkoituksenmukaisia ​​NSA juttuja
myöhässä, vaikka SSL on särkyviä.
Ja se on oikeastaan ​​ole niin vaikeaa jopa halki että salaus.
Ei niinkään halkeilua salaus, mutta huijaamalla
selaimesta salauksen tietojen ennenaikaisesti.
Mutta jälleen kerran, me kiusaa sinua kanssa, että ennen pitkää.
Nyt vain pelkää.
Se traagisesti eräänlainen totta.
>> Selvä.
Joten, jos tämä nyt jättää meidät?
No, tehdään tämä.
Mennään eteenpäin ja ottaa nopeasti teaser ennen kuin taukoa.
Ja mielestäni me viipyä hieman pidempään tänään, mutta aiomme sukeltaa
jotain täysin uutta ja seksikäs, joka alkupaloiksi vieläkin.
Niin, että teaser.
>> Joten SQL, aloimme puhua koskaan niin lyhyesti viimeisen kerran.
Tulet todella saada kädet likainen joidenkin sen p-set seitsemän.
Ja maallikon termein, mitä SQL -
S-Q-L -
tehdä sinulle?
Mikä se on?
Joo.
>> Yleisö: Katsotaanpa käytät tietoja.
>> DAVID MALAN: Joo.
Se katsotaanpa käytät tietoja tietokantaan.
Structured Query Language.
Ja tämä on lähinnä ohjelmointikieli.
On piirteitä siitä, että emme edes käytä luokassa.
Mutta voit tehokkaasti määritellä funktioita.
Niitä kutsutaan tallennettu menettelyt SQL.
Mutta me jatkamme sen melko yksinkertainen ja vain käyttää johonkin perustoiminnot
kuten haluttu data, lisäämällä tietoa, päivittää tietoja ja poistaa tietoja.
>> Ja voit todella ajatella tietokannan kuten SQL-tietokannan, kuten juuri
on Microsoft Excel.
Koska SQL viittaa ihmissuhteisiin tietokanta, jossa
suhteessa vain tarkoittaa taulukoita.
Rivejä ja sarakkeita.
Joten mitä voit laittaa taulukkolaskenta näin tai Google Docs,
voisit laittaa SQL-tietokannan julistamalla pöytä.
>> Nyt, miten voit itse käyttää nämä tiedot?
No, komentoja tai kyselyitä näin.
SELECT, INSERT, päivittää ja poistaa.
Ja suurin osa, ne ovat neljä vain ainesosia sinun
tehdä jotain melko voimakkaasti ongelmatilanteissa asettaa seitsemän.
>> Nyt takaisin seuraavana päivänä, te todella vuorovaikutuksessa tietokannan
musta ja valkoinen terminaalin ikkunasta vilkkuu nopeasti kuin tämä.
Ja tietokanta olemme käynnissä Laitetta kutsutaan MySQL, joka on
vapaan ja avoimen lähdekoodin tietokanta moottori.
Jos Google ja lukea Wikipedia artikkelin, tiedät, että nimi on
vähän siirtyminen joidenkin Linux-versioita.
Maria tietokanta on oikeastaan haarukka niin sanotusti MySQL.
>> Pitkä tarina lyhyt, Oracle osti MySQL.
Oracle on iso yritys.
Ihmiset ovat huolissaan siitä, että se olisi ei enää ole aivan niin avoimen lähdekoodin,
joten tämä on vain kopio MySQL, joka on vielä vapaana, vielä avoimen lähdekoodin, ja
asennettu Fedora Linux oletuksena.
>> Mutta tämä on sellainen kipu kaula tutustua
tietokanta tällä tavalla.
Joten liitämme CS50 laitteen ilmainen avoimen lähdekoodin työkalu nimeltään
phpMyAdmin.
Vain sattumaa, että se on kirjoitettu PHP.
Ei ole perustavaa laatua tarvitset PHP täällä.
Mutta tämä on vain web-pohjainen työkalu, joka me ladata ilmaiseksi, asennettu
laite, jonka avulla voimme olla graafinen käyttöliittymä, joka
tutkimaan p-set seitsemän tietokanta joka luo uusia tietokantoja,
sanoa oman opinnäytetyön jos olisit kuten, ja lopulta luoda
dynaamiset sivustot kuten CS50 Rahoitus joiden avulla voit kyselyn tiedot ja
päivittää tietoja dynaamisesti.
>> Et täytyy käyttää vain yksinkertainen tekstitiedosto tai CSV.
Voit itse käyttää älykäs tietokanta ohjelma, jotta voit suorittaa enemmän
edistyneitä hakuja vain käsittelyssä kaiken läpi lineaarisesti.
>> Niin esimerkiksi tämä on mitä annamme voit kättelyssä p-set seitsemän.
Tämä on taulukko, jossa ilmeisesti ainakin kolme saraketta, joista yksi on
käyttäjätunnus, joista yksi on hash, ja toinen, joka on tunnus.
>> Mutta mielenkiintoinen asia, ja vain kammata pois yksi ajatus täällä, käyttäjätunnus
on oletettavasti jo ainutlaatuinen, eikö?
Tarkoitan, useimmat tahansa sivuston, jos sinulla on tunnus, siellä
ei voi olla kahta caesars.
Ei voi olla kahta Malans.
Ei voi olla kahta jharvards.
Sen ainutlaatuinen.
Muuten he eivät tiedä mikä jharvard se todellisuudessa on.
Joten mikä voisi olla motivaatio myös ottaa kolmas sarake vasemmalla
siellä kutsutaan tunnus, joka näyttää numero, joka on samalla ainutlaatuinen?
Se tuntuu hieman tarpeeton minulle ensi silmäyksellä.
Miksi se voisi olla vakuuttava saada paitsi ainutlaatuinen käyttäjätunnuksia,
mutta myös ainutlaatuisia numeroita?
>> Yleisö: Ne voisivat olla sama salasana.
>> DAVID MALAN: Ihmiset saattavat olla sama salasana, varma.
Se voisi aivan tapahtua.
Mutta jos heillä on tämä ainutlaatuinen käyttäjätunnus, I Väittäisin, että ei oikeastaan
asia, koska jos he kirjoittavat heidän käyttäjätunnuksen, minulla on vain tarkistaa niiden
salasanan, niiden hash viipymättä.
Miksi muuten?
>> Yleisö: Nopeampi haku.
>> DAVID MALAN: Nopeampi haku.
Miksi?
>> Yleisö: ID on vain yksi.
>> DAVID MALAN: ID on vain yksi merkki, tai tarkemmin sanottuna, se on numero,
joten se on luultavasti 32 bittiä tai jotain.
Sekä katsoo käyttäjätunnuksen, ilmeisesti Jason Hirschhorn tuolla ylhäällä on eräänlainen
naurettavan pitkä, ja se tulee ottaa minua paljon enemmän aikaa string
vertaa H-I-R-S-C-H-H-O-R-N, ja ehkä / 0 tai jotain, jotta
etsiä Jason, eikä vain sanoi anna minulle käyttäjän numero kaksi.
Se on 32 bittiä.
Se on yksi INT että sinun täytyy vertailla.
Ja todellakin, juuri siksi tietokantoja yleensä yksilöllisten tunnukset
rivit niitä.
>> Nyt mitä muut tietotyypit ovat siellä lisäksi INT ja ilmeisesti
jouset näin?
No, olla oikea, SQL-tietokantoihin, kuten
MySQL, on CHAR kentät.
Ja nieriää hieman harhaanjohtavasti ei ole yksittäinen CHAR.
CHAR kenttä MySQL-tietokanta on yksi tai useampia merkkejä, mutta se on
kiinteän määrän merkkejä.
>> Niin esimerkiksi jos menen yli phpMyAdmin kuten olet ehkä jo, tai
pian ongelma asettaa seitsemän, ja menen minun tietokantaan, ja vain huvin vuoksi,
Luodaan uusi taulukko nimeltään testata vain kaksi saraketta.
Minä sitten Siirry.
Ja tämä tulee varsin tuttuja, varsinkin kun korjailla
noin itse.
Tässä voisin kirjoittaa ID luoda Uuden taulukon tyyppiä int.
Mutta tässä voisin kirjoittaa käyttäjätunnuksesi uudestaan, että aiemmin taulukossa.
Ja huomaa Minulla on koko joukko tyyppejä, joista valita.
>> Ja sekin siksi phpMyAdmin on tavallaan mukavaa.
Se on tavallaan itsestään opetuksen että olet voi vain eräänlainen kohta ja napsauta, ja
tarkastella avattavasta valikot, ja päättelevät että mitä valtuuksia SQL saat.
>> Ja todellakin, jos päätän CHAR, minä sitten on täsmennettävä pituutta tai kuinka
monet arvot, kuinka monta MERKEILLÄ.
Joten hyvin yhteiset arvot ovat asioita, kuten 255, mutta se on hieman pitkä.
Yleisesti on kahdeksan käyttäjätunnusta.
Mutta se on vähän pieni näinä päivinä.
Joten tämä on suunnittelu päätös.
Onko enintään 8 kirjainta, 32, 255, 1000?
Se on todella sinun.
Mutta CHAR kenttä on kiinteä määrä.
Joten valitse liian vähän ja olet aika ruuvattu jos haluat pidemmän käyttäjätunnuksen.
Valitse liikaa ja mikä Huonona puolena?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Se on tuhlausta.
Aivan kuten C, jos sinulla on isompi murikka muistia kuin tarvitset, olet
vain tuhlaa aikaa ja tuhlaa tilaa.
Niin vaihtoehtona on olemassa VARCHAR, joka ratkaisee tämän ongelman
hoitoon pituus ei ole niin kiinteä pituus, mutta enimmäispituus, ja käyttämällä
vaihteleva määrä MERKEILLÄ, joka sitten taipumus käyttää vain niin monta MERKEILLÄ kuin
todella tarvitsevat.
Se kuulostaa täydellinen.
>> Miksi emme päästä eroon Char data kirjoita sitten?
Mikä voisi olla haittapuoli käyttämällä VARCHARs, joka kuulostaa
kuin se on kiva voittaa?
Joo?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: OK, hyvä.
Joten jos kaikki tietosi on sama pituus, mikä huoli?
>> Yleisö: Koska olet tuhlaa tietojen kertomalla ne kaikki.
>> DAVID MALAN: Joten jos kaikki tiedot on samanpituiset, vaikka Väitän
että täsmennetään maksimipituus on VARCHAR ei poikkea
määrittämällä tietty pituus CHAR jos tiedät, että numero etukäteen.
Mutta on todella, ja minä tavallaan ote tuo vastaus todellisuus
että siellä on vielä max, joka voisi olla ärsyttävää, varsinkin jos
kohtaat henkilön nimi, joka on epätavallisen kauan, että olet päässyt
ennakoida.
Ja se on myös hieman tehottomampi todella etsiä VARCHARs kuin
Toisin kuin etsiä MERKEILLÄ, erityisesti pitkiä pöytiä, jotka ovat paljon ja
paljon tietoa.
Niin tässäkin temaattinen on jälleen ei itsestään selvä valinta.
>> Joten vain antaa sinulle tunteen muiden tietotyypit, jotka saattavat olla kiinnostavia
joko p-asettaa seitsemän tai Tulevaisuudessa siellä INT.
On bigint, joka on kuin pitkä pitkä.
Se on yleensä 64 bittiä.
On DECIMAL, jonka näet vuonna Harjoitus, joka on paljon
puhtaampia vastaus ongelmiin me kohdatut kellua ja kelluva
kohta epätäsmällisyys.
Ja sitten on DATETIME.
On kirjaimellisesti tietotyyppi, joka on näyttää vuosi, kuukausi, päivä,
ja tunti, minuutit ja sekunnit.
>> Mutta SQL-tietokantoihin myös asioita me kutsumme indeksit.
Ja indeksi on jotain, Määritä luotaessa taulukkoa
tehdä hakuja ja muu toiminta tehokkaampaa.
Erityisesti on jotain kutsutaan PRIMARY indeksi voisit
julistaa seuraavasti.
>> Teimme näin sinulle käyttäjätaulu annamme sinulle.
Mutta huomaa, jos olisin manuaalisesti uudestaan käyttäjätaulu täällä antaa
se nimi käyttäjille.
Olen jo määritelty tunnus.
Määritin INT.
Olen määritellyt käyttäjätunnuksen kanssa enintään 32 merkkiä.
Mutta jos pidämme rullata tässä melko leveä ikkuna, ilmoitus siellä
joukko muita asioita, joita en voi määrittää.
>> Yksi, voin määrittää ominaisuuksia kuten, tiedätkö mitä, tämä
INT olisi UNSIGNED.
En halua negatiivisia lukuja, joten tehkäämme se UNSIGNED.
Null ei ole merkitystä tässä, koska En halua jokainen käyttäjä
on yksilöllinen numero.
En halua sen olevan nolla.
>> Mutta tämä on mielenkiintoista.
Voin täsmentää, että tunnus on joko perusavain tätä tietokantaa, tai se on
ainutlaatuinen, tai se on indeksoitu, tai koko tekstistä.
Joten nykypäivän tarkoituksiin, pitkä tarina lyhyt, ensisijainen keino, että tämä on
olla sekä käsitteellisesti ja teknisesti kentän että käytämme yksilöllisesti
tunnistaa käyttäjät.
>> Joten kun katsomme ylös käyttäjille, tämä on eräänlainen lupausta etsiä niitä lähinnä
että yksilöllinen tunniste.
Ja tietokanta varmistaa, että jos on käyttäjän numero 3, et voi
fyysisesti aseta toinen käyttäjä kanssa, että sama numero 3.
Tietokanta vain kieltäytyä Tallenna muutokset.
Mikä on hyvä asia, koska voit suojautua itse. itse
>> Vaihtoehtoisesti käyttäjätunnus.
Joten toinen rivi, muistaa, on käyttäjätunnus kenttään.
Joten toinen rivi tässä käyttäjätunnuksen, kuten teimme äärimmäisenä vasemmalla siellä.
>> Joten mitä muuta voisi haluan täsmentää?
En saa mukaan SQL, määritellä kaksi ensisijaisia ​​avaimia.
voit määrittää yhteinen avainta, kun katsomaan molemmat kentät, mutta he eivät voi
yksilöllisesti olla ensisijainen avaimia.
Niin, että kuuloonkaan.
Joten mikä voisi haluan valita?
>> No, Unique on hengeltään samanlainen perusavain, jossa voit määrittää tämän
pellon on oltava yksilöllinen, mutta se on ei tule olemaan yksi
Käytän koko ajan.
Ja emme aio käyttää yhtä kaikki aika mistä syystä uudelleen?
Se on hitaampi mahdollisesti jos se on pitkä käyttäjätunnus.
Se on vain ajanhukkaa.
>> INDEX puolestaan ​​täsmennetään, että se on ei tule olemaan ainutlaatuinen, mutta haluaisin
voit työskennellä your magic alla huppu tehdä nopeammin minulle
etsi tällä alalla.
Joten tämä luultavasti ei ole merkitystä täällä.
Saat käyttäjätunnuksen, olin sitä mieltä, että Unique on hyvä vastaus.
Mutta oletetaan, että teimme käyttäjille enemmän mielenkiintoinen kuin vain käyttäjätunnukset,
hash, ja ID-numerot.
Mitä jos antaisimme ihmisten täydelliset nimet?
Mitä jos antaisimme heille osoitteet ja muut tiedot niistä?
>> No, jos määrittää, että sarakkeen tietokanta on indeksoitu, se tarkoittaa, että
MySQL tai Oracle, tai mitä tahansa tietokantaan käytät, pitäisi toimia sen taika
ja käyttää jonkinlaista fancy tietoja rakenne kuin puu tai triestä, tai
hash table, tai jotain takaamaan että kun etsiä tietoja käyttäen
Valitse tästä nimenomaisesta kenttä -
kuten näyttää minulle kaikille, että elää Oxford Street.
Kyselyn niin.
Jos olet määrittänyt etukäteen, että Haluatko indeksi tällä alalla,
haut on paljon, paljon nopeammin.
>> Jos et määritä indeksi, paras mitä voi tehdä on lineaarista hakua, jos
se ei ole lajiteltu.
Mutta jos olet määrittänyt INDEX, älykäs ihmisiä, jotka tekivät tietokanta -
sinun kaltaisiasi ihmisiä, jotka tietävät nyt puita ja yrittää ja hash taulukoita -
automaattisesti rakentaa tällaisen tiedon rakenne RAM varmistaa, että
nämä haut ovat paljon nopeammin.
>> Fulltext välin on samanlainen henki, mutta voit tehdä wildcard
hakuja, kuten näyttää minulle kaikille, että asuu kaduilla, jotka alkavat
O-kirjain jostain syystä.
Voit tehdä yleismerkkihakuja niin.
Tai enemmän pakottavia asioita, kuten näyttelyssä me jokainen, jolla on sana -
näytä minulle jokainen, jonka nimi alkaa tietyllä kirjaimella.
Voit etsiä avainsanoja tällä tavalla.
Selvä.
>> Joten, suunnittelun mahdollisuuksia siellä mahdollisesti.
On toisia, että minä aalto käsiäni.
On käynyt ilmi, että voit olla erilaisia ​​varastointi moottoreita.
Ja tämä on enemmän mystistä kuin me tarvitsemme varmasti ongelma asettaa seitsemän.
Oletuksena te käytät jotain kutsutaan InnoDB.
Näet mainitsee tämän jossain phpMyAdmin käyttöliittymä todennäköisimmin.
Mutta tiedän, että on olemassa muita suunnittelun päätöksiä, jotka ovat mahdollisia
kiinnostusta tulla lopullinen hankkeita, jos teet jotain web-pohjainen.
>> Mutta tehdään tämä.
Mennään eteenpäin ja asettaa tämän ruudulla teaser tarina
johon olet, kämppäkaveri, ja lasi maitoa.
Otetaanpa kahden minuutin tai niin tauko tässä.
Ja jos voit jäämään, nyt tulevat takaisin, näyttää vähän enemmän SQL, ja
Sitten vähän JavaScript kanssa p-asetettu kahdeksan mielessä.
>> Selvä.
Joten, lähdetään Ajattelitko corner tapaus, joka voi helposti syntyä
yhteydessä käyttäen tietokantaa, tai rehellisesti, jopa käyttäen reaalimaailman asioita
kuten pankkiautomaatit saada rahaa.
Joten tässä on jääkaappi.
Kai olet saanut yhden liian asuntolan tai talosi.
Ja sinulla on yksi kämppäkaveri, ja molemmat pidät maitoa esimerkiksi.
>> Joten tulet kotiin luokan yksi päivä.
Hän ei ole vielä takaisin.
Avaat jääkaappi.
Haluatko todella iso lasi maitoa.
Ei ole maitoa.
Joten mitä teet?
Suljet jääkaappi.
Nappaat avaimet.
Menet ulos aukiolle.
Ja saat jonossa CVS noita itse kassalle asioita, jotka aina
kestää kauemmin kuin itse ottaa kassat.
Oli miten oli.
>> Joten sitten puolestaan ​​dot dot dot, sinun kämppis tulee kotiin ja hän
Samoin on haikailu joillekin maitoa.
Joten hän avaa jääkaappi, näyttää sisältä, ja oh, hitto.
Ei maitoa.
Joten hän päänsä ulos, sattuu menemään Muihin CVS, joka oli vain
korttelin päässä jostain syystä, ja hän tai hän saa rivi ostaa maitoa.
>> Samaan aikaan tulet kotiin, hän tai hän tulee kotiin, ja mitä
sinulla lopulta on?
Kaksi kertaa niin paljon maitoa.
Mutta et todellakaan pidä maitoa niin paljon.
Joten nyt sinulla on niin paljon maitoa, että nyt yksi heistä on juuri menossa epäonnistua
lopulta.
Joten tämä on todella huono ongelma.
Oikea?
>> Joten mitä on tapahtunut?
Niin perusteellisesti, tämä on tavallaan of naurettava esimerkki.
Mutta alla huppu, mitä meillä on ollut tapahtua täällä on teille molemmille tarkistanut
tila palan muisti, jääkaappi.
Molemmat valitsit valtion Joidenkin muuttuja.
Te molemmat teki päätelmän että olet sitten toiminut.
Mutta valitettavasti, kun kämppis oli kaupassa, tilan vuoksi
muuttuja muuttunut, hän tuli takaisin ja nyt haluaa muuttaa tilaan, mutta
se on jo muutettu hänelle tai hänen.
Ja tietenkin, hän ei olisi mennyt liikkeeseen, jos he tietäisivät
että olit jo matkalla.
>> Niin todellisessa maailmassa, kuinka saatoit Tämän ongelman välttämiseksi, olettaen olet
jääkaappi, sinulla on kämppäkaveri, ja te oikeastaan ​​kuin maitoa?
>> Yleisö: Viestintä.
>> DAVID MALAN viestinnästä.
OK.
Mutta miten voi kommunikoida?
>> Yleisö: Jätä huomata.
>> DAVID MALAN: Jätä huomata, eikö?
Aina jättää setelityypistä fanit osoittavat.
Kunnossa, niin aina jättää huomautuksen tai laittaa todella kuin riippulukko tai jotain
jääkaapin, joka pitää kämppäkaveri tarkastamatta tilasta
että muuttuja.
>> Nyt, miksi tämä voisi johtua germane ongelma asettaa seitsemän tai automaateista.
No, kuvitella maailman ATM jossa saatat pystyä mennä jopa ATM
kone täällä, ja toinen ATM täällä.
Ja tämä tapahtuu melko usein.
Ja kai oli kaksi ATM kortit, , joka on mahdollista saada aikaan.
Ja kirjaudut molemmissa koneissa tehokkaasti samanaikaisesti, toivottavasti
Vaikka kukaan etsii.
Ja sitten kirjoitat PIN suunnilleen samanaikaisesti.
Ja sitten teet saldokysely kuinka paljon rahaa sinulla on.
Ja oletetaan, että sinulla on 100 dollaria jäljellä tililläsi.
Niin olennaisesti samanaikaisesti, sanoa yhden, nolla, nolla, kirjoita.
Ja et toivottavasti saada takaisin rahaa.
>> Mutta kuinka paljon rahaa voisi saat takaisin?
Nyt tietokoneet lopussa päivä, varsinkin jos he puhuvat
palvelimet, ei välttämättä tee asioita siinä järjestyksessä, joka on odotettavissa.
>> Joten kai mitä tapahtuu, koska riippumatta verkon nopeus kysymyksiä siellä
ovat, tai CPU kysymyksiä on olemassa, tai mitään sellaista, olettaa, että
Ensimmäinen ATM tarkistaa saldosi ja näkee, oh, tämä henkilö on 100 dollaria.
Mutta sitten saa hajamielinen koska ehkä varmuuskopiointi tapahtuu ja niin se on
hidastumassa.
Tai ehkä katsomalla, verkon yhteyden sai hieman hitaammin, koska
tämä vain tapahtuu.
He ovat fyysiset laitteet.
Joten välin toinen ATM on kysyä saman kysymyksen.
Kuinka paljon David on? 100 dollaria on vastaus.
Mutta koska ensimmäinen ATM ei ole vielä lähettänyt viestin vähennyslaskua 100 dollaria, sekä
Pankkiautomaatit ovat tarkastaneet pankin holvissa, nähdä siellä 100 dollaria siellä, ja nyt
molemmissa koneissa mahdollisesti ovat menossa sylkäistä vastaus.
>> Nyt tämä on hyvä sinulle jossain mielessä jos se, mitä pankki tekee lopulta
on muuttaa määrää miinus 100 vuoteen asettamalla muuttuja vastaa oman
pankkitilille 0, toisin tekemään miinus 100.
Nyt pahimmassa tapauksessa pankin -
tai paras pankki puolestaan he antavat sinulle 200 dollaria, ja
pankkitilisi näyttää nyt negatiivinen 100 dollaria, mikä ei todellakaan
hyödyttää sinua ollenkaan.
Mutta kohta on, että tämä rotu edellytys kaksi kämppäkaverini saada
maitoa tai kahdelle pankkiautomaattien yrittää saada käteistä ja muuttaa tilan holvissa
samaan aikaan olemassa mitään aikaa sinulla on tietokanta.
>> Nyt ongelma asettaa seitsemän, tätä kysymystä syntyy siinä mielessä, että jos ostat
osuus Facebook varastossa, ja sitten Esimerkiksi voit ostaa toisen osuuden
Facebook hyllyssä, sinun täytyy tehdä Päätös sellaisena kuin ohjelmoija.
Jotta voidaan päättää, miten päivittää tietokanta, kertoimet olet menossa
on yksi rivi kyseisen kannan, ja tämä on yksi tapa toteuttaa se.
Ja olet menossa on yksi osake FB, joka on heidän osaketunnus
Tämän käyttäjätunnuksen, tai tämän käyttäjän ID, yksilöllinen tunniste.
>> Mutta sama tarina voi tapahtua täällä.
Jos et SELECT SQL, kuten näet ongelmatilanteissa asettaa seitsemän, kun näet,
oh, David on yksi osakesarja Facebook varastossa.
Anna minun nyt vaihtaa tämän olevan kaksi osaketta, koska hän haluaa ostaa
Toinen osuus.
Mutta oletetaan David todella oli kaksi selaimen ikkunat auki, tai olettaa, että
se on yhteinen tili, jossa on kaksi puolisot, ja molemmat yrittävät suorittaa
Sama toiminto, sielläkin, mahdollista että päätös on
tehty perustuu edellisen maailman tilasta -
tilillä on yksi osake -
ja molemmat ihmiset, tai molemmat palvelimet, nyt yritä sanoa kasvattaa sen kaksi osaketta.
Mutta tässä tapauksessa, olet ehkä ladattu minulle rahaa sekä osakkeisiin, mutta
kasvatetaan vain sen yhden kerran.
>> Joten lyhyt, perusongelma täällä, kuten vitsi lähdöstä
Huomioithan, tai laittaa lukon se on jos kaksi ihmistä, tai kaksi kierteet -
muistelen scratch -
voi tarkastaa valtion joidenkin muuttujan ja sitten yrittää muuttaa muuttujan,
mutta nämä kaksi asiaa eivät tapahdu samaan aikaan, mutta voi saada keskeyttää
Muiden asioita tapahtuu, tietoja voidaan päästä hyvin outo tila.
Ja voit hyötyä tai voit kärsiä siinä mielessä rahaa esimerkki.
>> Joten ongelma asettaa seitsemän, annamme sinulle tämä yksi rivi koodia, joka pitkällä
tarina lyhyt, ratkaisee tämän ongelma MySQL.
Tämä erittäin pitkä ohje, että ei edes mahdu yhdelle riville
näyttö tässä takaa, että toiminta on mitä kutsutaan atomi.
Se kaikki tapahtuu kerralla, tai se ei tapahdu lainkaan.
Tämä hyvin pitkä lause ei voi saada keskeyttää osittain.
>> Ja mitä se tekee on kirjaimellisesti mitä se sanoo.
Laita johonkin taulukossa seuraavat kolme kenttää näitä tiettyjä arvoja,
mutta kahtena avain, älä tee insertti.
Tehdä päivityksen.
Joten tämä on kuin tekee SELECT ja INSERT niin sanotusti samaan aikaan.
Ja mikä on avain, joka on luultavasti saatettiin täällä?
>> On käynyt ilmi, ja näet tämän ongelma asettaa seitsemän spec, koska
olemme julistettu siellä olla yksilöllinen avain etenkin tähän pöytään siten, että
et voi olla useita rivejä samalle käyttäjälle kanssa
sama penniäkään varastossa symboli -
tässä esimerkissä täällä, DVN.V on typerä penniäkään varastossa, että me
viittaan spec.
Koska olemme ilmoittanut sen olevan ainutlaatuinen, mitä tämä tarkoittaa, että jos
yrittää lisätä kahtena peräkkäin, olet sen sijaan menossa päivittää sitä ilman
joku muu ottaa tilaisuuden kohentaa maailman tilasta joko.
Joten lyhyt, tämä takaa asiat ovat atomi.
>> Yleisemmin kuitenkin, tietokannat kuten MySQL -
ja sinun ei tarvitse tätä toimintoa varten p-asettaa seitsemän, mutta pitää se mielessä
tulevaisuudessa -
tukea mitä kutsutaan liiketoimia, jossa voit sanoa
START TOIMENPIDEMAKSUT kirjaimellisesti.
Voit sitten suorittaa kaksi SQL.
Ja SQL-lause, kuten näet p-asettaa seitsemän, näyttää vähän
jotain tällaista.
Päivitä taulukkoon nimeltä huomioon.
Säädä tasapaino sarake vastaa mitä tahansa Saldo-sarakkeen hetkellä
on miinus 1000, jos niiden määrä, tilinumero, kuten käyttäjätunnus,
on 2, ja sitten päivittää huomioon dot dot dot.
>> Joten maallikon termein, mitä nämä kaksi kyselyt näyttävät tekevän vuonna
reaalimaailman tunnetta pankki?
>> Yleisö: siirtäminen säästöjä.
>> DAVID MALAN: Aivan.
Siirtämällä varoja yhden tilin muille.
Ja tämä on toinen esimerkki, jossa olet todella haluavat nämä kaksi asiaa tapahtuu
tai ei tapahdu.
Et halua jotain saada niiden keskelle ja mahdollisesti sotket
matematiikka, tai sotkea kuinka paljon rahaa sinulla on, tai kuinka paljon
rahaa pankkiin on.
Joten mitä todella mukavaa noin liiketoimista MySQL on, että sekä
tietokannat yleisemmin, on se, että ne ja fiksuja ihmisiä, jotka ovat toteutettu
nämä ominaisuudet selvittää, miten tehdä Varmista, että nämä molemmat asiat tapahtuvat
tai ei ollenkaan.
>> Ja jos olet todella aikeissa tehdä verkkosivusto, joka käyttää ihmisiä
kampuksella, ihmiset todellisessa maailmassa, tekee jotain käynnistyksen merkityksessä,
nämä ovat erilaisia suunnittelun päätöksiä, että
tullut koskaan niin tärkeä.
Muuten, voit alkaa menettää tietoja, menettää käyttäjille, tai pahimmassa tapauksessa
olemme nähneet täällä, mahdollisesti menettää rahaa.
Joten jälleen, siitä lisää Harjoitus seitsemän, sekä kenties joidenkin
sinua opinnäytetöissä.
>> Joten muuttaa, että kuva meillä oli hetki sitten vain yksi tapa.
Joten haluan itse nähdä, jos voin -
Ehei, että on mennyt.
Siinä se on.
>> Joten tämä on kun jätimme viime kerralla.
Ja käy ilmi, aiomme nakata yksi asia taikinaan täällä -
kieltä kutsutaan JavaScript.
Joten JavaScript todella sopii tähän pala -
ja en oikein jätä tarpeeksi tilaa, joten tämä ei ole nyt mittakaavassa.
OK, tämä on todella säälittävää.
OK, niin se on JavaScript.
Selvä.
Olen todella tekemässä sitä karhunpalveluksen.
Selvä.
>> Joten JavaScript on toinen ohjelma kieltä, ja meidän viimeinen, jos se auttaa
vakuuttaa, että siellä ei ole paljon ja palopostit täällä.
Joten JavaScript on myös tulkittu kieliin, joten et
kääntää sen osaksi nollia ja ykkösiä.
Olet vain ajaa sitä.
Mutta mitä pohjimmiltaan erilainen JavaScript yleensä on, että
älä suorita sitä web-palvelimelle.
Se ei saa ajaa Laite sinänsä.
Pikemminkin se saa ladata käyttäjän HTTP selaimeen -
Chrome, Safari, Internet Explorer, Firefox riippumatta -
ja se on selain, joka suorittaa tämän erityisesti ohjelmointikieli.
>> Joten on selvää, PHP on tähän mennessä ollut toteutetaan joko komentorivillä
meidän musta ja valkoinen ikkuna, palvelimella kuten laite, tietokone
pidä laitetta, tai se on ollut suorittaa www-palvelin
käynnissä tietokoneessa.
Mutta teema on, että PHP toistaiseksi on toteutettu server-side, joten
käyttäjä ja käyttäjän selaimen ei näe rivi PHP.
>> Itse asiassa, jos joskus avata selaimen sivuston tai toiseen ja olet
itse nähdä PHP koodi in your ikkunassa joku on mokannut.
Koska se ei ole tarkoitus olla lähetetään selaimeen suoraan.
Sen pitäisi panna täytäntöön ja kääntyi jotain kuten HTML.
>> Mutta JavaScript on olennaisesti päinvastainen.
Se on tarkoitettu suoritettavaksi tyypillisesti sisällä käyttäjän selaimen ikkunassa.
Ja millaisia ​​sivustot käyttävät JavaScript sitten näinä päivinä?
>> Kuten kirjaimellisesti jokaisen suosittu verkkosivusto.
Jokainen verkkosivuilla, että te luultavasti käyttää päivittäin käyttää Javascript
Yksinkertaisin ja jopa seksikkäin ominaisuuksia.
>> Joten jotain Facebook Chat, jos käytät sitä.
Miten se käytännössä toimii?
No tähän asti kaikki jutut olemme tehdään HTML ja PHP oletetaan, että
vedät URL, ja osut Enter, ja näet joitakin HTML-sisältöä.
Ja klikkaat linkkiä, joka muuttaa URL, muuttaa sivun ja lataa
joitakin uutta sisältöä.
Valitse toinen URL tai lähetä lomakkeen pyyhkäistiin toiselle sivulle ja
näet joitakin uutta sisältöä.
>> Mutta käyttämällä jotain Facebook Chat, tai Gchat tai Google Maps, harvoin
ei koko sivun päivittää niin, että näet valkokangas hetkellisesti ja
sitten uutta sisältöä.
Pikemminkin verkkosivut ovat nykyään dynaamisesti saada päivitetään uudelleen ja
uudelleen ja uudelleen kaikenlaisia kulissien takana.
Ja käy ilmi, että kun et mene jotain Facebook tai Gchat,
tai Gmail, ja sivun päivitykset automaattisesti ilman lastin purkua
koko ruudun, mitä on tapahtunut on se, että selaimessasi on tehnyt tavallaan salaa
HTTP-pyyntöjä -
eikä kaikista web-sivuja, mutta vain pikku paloina tietoja, kuten
pikaviestin, että ystäväsi vain lähetti sinulle tai tilapäivitystä että
joku juuri lähettänyt sinulle tai jaa että joku juuri lähettänyt.
Se vain tekee vähän pyyntöjä data, ja sitten JavaScriptin avulla, tämä
ohjelmointikieli, muuttaa mitä Web-sivu näyttää ilman
palvelin auttaa, ilman palvelimen tuottaa että HTML.
>> Joten lyhyt, JavaScript voidaan käyttää sitten ei vain hakemaan uusia tietoja
palvelin ilman lastin purkua koko sivun tai lähettämällä lomake.
Sitä voidaan käyttää myös muutoksiin ns DOM -
Document Object Model -
joka on vain hieno tapa sanomalla puu HTML
että näimme viime kerralla.
>> Joten vakuuttamaan, JavaScript on rakenteeltaan niin samankaltaisia ​​C samoin.
Ei ole päätehtävä.
Sinä vain alkaa kirjoittaa koodia ja se saa suorittaa, tai
tulkita oikein.
Sääolot näyttävät tältä.
Ei poikkea C tai PHP että asiassa.
Boolen operaattoreilla tai-ed yhdessä näyttää tältä.
Anded yhdessä näyttävät tältä.
>> Kytkimet näyttää tältä.
Silmukoita näyttää tältä.
Vaikka silmukat näyttää tältä.
Tehdä, kun silmukoita näyttää tältä.
>> Tämä on uusi.
Joten JavaScript ei ole foreach rakentaa sinänsä, mutta tämä konstrukti
Muuttujan i array, ja olen tässä tapauksessa tulee indeksin arvo.
Joten se on hieman erilainen kuin Foreach, vaikka uudet versiot
JavaScript ovat tulossa ulos koko ajan, joten nämäkin kielen ominaisuuksista
kehittyvät.
>> Ja syrjään, JavaScript näinä päivinä voidaan käyttää myös palvelimella kuten
PHP käyttäen puitteet nimeltään Node.js.
Yksi CS50: n TF: ien, Kevin, on johtanut seminaari Node.js, joka on saatavilla osoitteessa
cs50.net/seminars.
Joten jos olet kiinnostunut, tietää, että olet voivat käyttää tätä palvelimen puolella
hyvin, mutta se on melko uusi suuntaus, mutta tehokas sellainen.
>> Tämä on hieman erilainen.
Tämä on joukko JavaScript.
Ja mitä lyö sinua niin erilaisia vs. C tai PHP?
On olemassa muutamia nopeita tarinoita voimme kertoa täällä.
Mitä puuttuu vs. PHP?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Niin?
Anteeksi, sano uudelleen?
>> Yleisö: Ei julistamisesta Muuttujan tyyppi.
>> DAVID MALAN: Emme julistamisesta Muuttujan tyyppi.
Joten oikeastaan ​​aivan kuten PHP, emme ole määritellään minkälaisia ​​tämän muuttujan.
Pikemminkin olemme enemmän yleisesti sanomalla var muuttujan.
Meillä ei ole PHP: n harmia dollarin merkki, joka taas ikävä
tyyppi, ei tehdä enemmän selväksi, että Jokin on vaihteleva.
Kun taas täällä, olemme tavallaan takaisin C: n lähestymistapa vain soittamalla
muuttujan nimen haluamme antaa sille, kuten numeroita.
Ja myös PHP, meillä on neliön kiinnikkeet
arvojen sisällä että jono.
>> Joten muuttujat JavaScript myös voisi näyttää tältä.
Huomata tässä tämä on merkkijono kutsutaan s, mutta samalla meillä ei ole määritelty
että se on merkkijono.
Tässä kuitenkin on ominaisuus, joka ei olemassa täsmälleen samalla tavalla PHP,
mutta hieman samalla tavalla.
Tämä on objekti JavaScript.
Ja esineet ovat tavallaan Sveitsin armeijan Veitsi datarakenteesta että olet
voivat käyttää niitä monia asioita.
>> Täällä esimerkiksi olemme julistamisesta muuttuja nimeltä lainaus.
Tyyppi, että muuttujan on esine.
Voit ajatella tätä C struct että on avaimia ja arvoja.
Symboli on keskeinen.
FB on arvo, ilmeisesti osakesymbolille.
Comma.
Hinta on toinen keskeinen, ja sen arvo on ilmeisesti liukuluku, tai
numero yleisemmin JavaScript, on 49,26 dollaria.
>> Joten PHP ei ole -
emme ole nähneet PHP esineitä varsin näin, mutta näimme analoginen,
joka oli mitä?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Assosiatiiviset taulukot.
Joten taas PHP on assosiatiiviset taulukot Niiden syntaksi on koskaan verran,
eri -
näimme hakasuluissa.
Näimme outoa nuolet symboleja.
JavaScript on esineitä, mutta tämä on lähinnä semanttinen ero ja
eri synonyymi nyt.
Kuitenkin, kuten syrjään, PHP on myös esineitä siten, että Java-ja muut
kielet ovat esineitä olio-ohjelmointi.
Mutta käytämme näitä vain tietojen tyypit nyt.
Esineitä ja assosiatiivisia taulukoita.
>> Tämä voisi tehdä hieman selvempi.
Tässä syy esine on hyödyllinen.
Kun haluat julistaa opiskelija, kuten Zamyla, voimme itse
kiteyttää niin sanoakseni sisällä että objektin kaarisulun aivan kuten
ennen koko nippu avaimia ja arvot täällä.
Meillä on tunnus, talo, ja nimi Zamyla, jonka jälkeen puolipistettä
tavallista lopussa.
>> Täällä alhaalla, tämä on hieman erilainen, mutta myös erittäin voimakas
näinä päivinä.
Tässä on jono, ja tiedän, että koska siellä hakasulkeen ylös
ylä-ja hakasulkeen alareunassa.
Ja tämä on joukko mitä tietoja kirjoita ilmeisesti JavaScript?
Tämä on joukko näyttää kuten kolme esinettä.
Ja tiedän, että se on esine vain koska aaltosulkeiden.
Ja huomaa siellä auki kihara ahdin, joitakin juttuja, lähellä kihara ahdin, pilkku,
sitten hieman lisää, pilkku, ja sitten hieman lisää.
Niin, että kolme argumenttia erotettu kaksi pilkuilla.
>> Joten tämä on joukko kolme esinettä.
Ja jokainen näistä kohteista näyttää olevan opiskelija tai henkilökunnan jäsen joidenkin
lajitella, joista jokaisella on tunnus, talon, ja nimi.
Mutta olen kutsunut tätä jotain nimeltään JSON -
JavaScript Object Notation.
Ja tämä on tiedostotyyppi, joka todella on niin kovin suosittu ja
muodissa näinä päivinä, että jos kirjoitat sovellus, joka käyttää Facebook
API, Twitter API, oikeastaan ​​melkein kaikki API siellä näinä päivinä,
kuten jotkut CS50 oma, tiedot saat takaisin ei ole
old school CSV-muodossa.
>> Koska muistaa, että CSV on erittäin yksinkertainen.
Se on vain sarakkeet erotetaan pilkuilla.
JSON tiedot antaa sinulle enemmän metatietoja.
Se yhdistää avain jokaisen arvon niin ne eivät tarvitse vain olettaa, että
zeroth sarake on yksi arvo, sarake yksi on toinen, sarake kaksi on toinen.
Kaikki JSON esine tässä on tavallaan itse kuvaavat, koska jokainen
yksi nimiä tiedosto on kirjaimellisesti nimen edessä se
lainattu merkkijono.
>> Joten katsomaan pari esimerkkiä tästä.
Anna minun mennä laitteen.
Ja anna minun mennä meidän vhost hakemiston yleisölle.
Ja anna minun mennä JavaScript-hakemistossa.
Ja mennään eteenpäin ja avata dom-0.html, jossa DOM tarkoittaa vain sitä,
Document Object Model.
Se puu tavaraa, johon Aiemmin viittasin.
>> Ja haluaisin ehdottaa seuraavaa.
Tässä web-sivun, jonka elin on melko yksinkertainen.
Joten täällä alareunassa, huomaa Minulla muodossa.
Olemme nähneet kuin ennen.
Siinä on kaksi tuloa, joista yksi on ID nimi, joista yksi on eräänlainen
esittää, ja ensimmäinen yhden tyyppi on teksti.
Joten tämä todella kuulostaa melko yksinkertainen.
>> Mennään tästä.
Mennään takaisin tälle sivulle tästä.
Mennään localhost, ja mennä JavaScript-hakemisto, ja siirry
dom-0, ja tässä meillä on tässä muodossa.
Niin, että ilmeisesti Kaikki tämä sivu ei.
Se on nimi-kenttään Lähetä-painiketta.
Mutta en aio käyttää PHP täällä.
Aion tehdä kaiken asiakkaan puolella niin sanotusti JavaScript seuraavasti.
>> Huomaa, että olen todellakin antanut nimen alalla tämä tulo ainutlaatuinen
tunniste, joka tosiasiallisesti pelasta minut jonkin aikaa hetki.
Ja huomaa Olen otettu toinen tag pää minun web-sivun,
tag.
>> Joten se on tässä mielessä, että JavaScript on client-side ohjelmointikieli.
Tässä tapauksessa, kuten CSS, olen koonnut se suoraan sisällä minun HTML.
Mutta huomaa olen ilmoittanut toiminto joka näyttää vähän kuin PHP
syntaktisesti, mutta tämä on oikeastaan JavaScript, koska uudelleen, se on
client-side selaimessa.
Ja ottaa arvata, mitä tämä tulee tehdä, vaikka osa syntaksin
tässä on uusi.
>> Yleisö: Tervehdi kuka.
>> DAVID MALAN: Se tulee tervehtimään sille, joka vierailee tällä sivulla.
Niin miten?
>> Joten ilmoitusta, se kääntyy pois JavaScript siellä alert ()-funktiota.
Tämä on hyvin murheelliset toiminto oikeastaan ​​vain taipumus ärsyttää käyttäjiä.
Se ei ole yksi sinun pitäisi todella käyttää yleensä, mutta se on nopea ja likainen
tapa tavallaan tulostaa jotain on graafinen
käyttöliittymä, kuten selaimen.
Huomatkaa, että minulla string puolilainausmerkeissä.
On käynyt ilmi, että toisin kuin C, JavaScript voi todella olet käyttää yhden
lainauksia, ja suoraan sanottuna se on vain eräänlainen ja tyylillinen yleissopimuksen keskuudessa
JavaScript ohjelmoijat käyttää puolilainausmerkkejä.
PHP, ne todella ovat hieman eri merkitys.
Mutta nyt, juuri tietää, että se on ainoa syy.
Yleissopimus JavaScript on usein Käytä puolilainausmerkkejä, mutta voisimme käyttää
lainausmerkkeihin molemmissa paikoissa samoin.
>> Joten tämä on mielenkiintoista.
Pyydä viimeinen kerta, kun oli, että kuva ruudulla, joka veti puu
jossa piti HTML solmu, ja pääsolmussa ja kehon solmu,
ja sitten tekstiä.
Mutta oli yksi erityinen solmu hyvin alkuun, että kutsuin asiakirja.
No, se kääntyy pois JavaScript kaikki kun kirjoittaa ohjelman JavaScript
selaimessa, voit käyttää erityinen globaali muuttuja.
Hengeltään samanlainen PHP: n Superglobaalit, tämä kutsutaan
kaikki pieniä asiakirja.
>> Se on kuin struct, mutta tämä struct myös toimintoja sisälle.
Joten C struct vain on tietoa tyypillisesti.
Mutta JavaScript objektin tämä teknisesti on myös toimintoja,
joka tunnetaan myös menetelmiä, sen sisälle.
Ja voit soittaa toiminnon sisällä Tämä esine aivan kirjaimellisesti tekee
nimi, piste, ja sitten nimi toiminto tai uudelleen menetelmällä.
Se on vain synonyymi, todella.
>> Ja mitä tämä toiminto tekee?
Voit sellaista arvaus sen nimen.
Hanki elementin ID.
Joten tämä tulee etsiä web-sivun, etsiä, että puu, etsii
mitä solmu, AKA elementti, on yksilöllinen tunnus lainaus lainaus nimi.
Ja sitten mitä aion tehdä?
Aion saada arvon sisällä että solmu puussa, ja aion
jotenkin tervehtimään, että nimi.
>> Joten ota arvata, vaikka olemme ei nähnyt tätä vielä, mitä plus
symbolit tarkoittavat täällä ja täällä luultavasti?
>> Yleisö: Concatenate.
>> DAVID MALAN: Concatenate.
Aivan, ja nämä ovat vain tavallaan suunnittelun päätöksiä
ihmiset tekivät vuotta sitten.
PHP, voit liität asioita pisteitä.
C, voit hypätä läpi useita vanteet ja soittaa toimintoja, kuten strcopy () tai
strcat () tai muita vastaavia toimintoja.
Mutta JavaScript, käytät plussia.
Joten tämä on vain liittämällä kolmea asiaa -
Hei, nimi, ja sitten huutomerkki.
>> Joten milloin ja miksi on tämä toiminto nimeltään vaikka?
No, arvaa alkaen HTML alareunassa.
Miksi tervehtiä () kutsutaan, tai kun?
>> Ilmeisesti, koska paras voin kertoa, on esittää, kun tämä lomake lähetetään,
Aion tehdä mitä on sisällä näitä lainauksia.
Ja erityisesti, aion soittaa tervehtiä () ja sitten palauttaa false.
>> No, katsotaanpa mitä net vaikutus tässä on ensimmäinen.
Joten anna minun mennä eteenpäin ja kirjoita vaikkapa Loren, Lähetä.
Hei Loren.
Katsotaan ehkä tämä oli vain onnekas täytäntöönpanoa.
Ehei.
Joten se kirjoittamalla ulos riippumatta nimetä Olen itse laittaa sinne.
>> Mutta huomaa, mitä ei ole muuttumassa.
URL on edelleen dom-0.html.
Ei ole register.php.
Ei ole toista tiedostoa.
Ei ole toiminnan ominaisuus.
Joten mitä tämä paluu väärä oletettavasti tekee?
Miksi olen soittamalla tervehtiä () ja sitten paluu false luultavasti?
Mitä yleensä tapahtuu, kun klikkaat Jätä lomakkeella, että vaikka meillä on
nähdään viime viikolla?
>> Yleisö: [kuultavissa].
>> DAVID MALAN: Se menee jonnekin, eikö?
Se menee joitakin kohde-URL.
Mutta en halua että näin tapahtuu täällä.
Haluan verkkosivustoa täysin dynaaminen, kuten Gmail, jossa kerran olet
siellä, pysyt siellä.
URL-osoite ei muutu niin, että osoittaa koko sivun uudelleen lataamista.
Pikemminkin haluan vain muuttaa jotain kuin painaisi jotain
tässä näytössä.
>> No saanen puhdista jopa hieman.
Saanen avata ei dom-0, mutta haluan avata dom-2.
Just niin olet nähnyt joitakin syntaksin täällä.
>> On käynyt ilmi, että mitä vain ei käyttää raaka JavaScript.
Joten tämä on todella kieli JavaScript.
Jotkut teistä ehkä tietävät kirjasto nimeltään jQuery.
>> Joten jQuery ei ole sama asia kuin JavaScript.
Se on vain kirjasto, joka todella fiksu kaveri kirjoitti ja suosituksi tällainen
että lähes kaikki maailman nyt käyttää jQuery käytettäessä JavaScript.
Ja ensi silmäyksellä, rehellisesti, se näyttää hieman arvoituksellinen.
Mutta voit löytää, varsinkin jos menet siellä teidän opinnäytetyön web
kehitys, huomaat, että tämä puhdistaa asioita ja säästää melko
muutaman rivin koodia.
>> Joten haluan vain vilkaista miten tämä lomake toimii.
Huomaa, mitä minä poistaa ilmeisesti minun HTML?
Ei ole lähetettäessä handler niin sanoakseni.
Ei ole ominaisuus.
Koska tiedät, mitä En todella?
Tunsin olimme laskussa vanhoihin tapoihin siellä.
Aivan kuten se oli alkanut tuntea huolimaton sekoittua sekä CSS
HTML, koska olet sellainen heitto eri kielellä ympäri
paikka, samoin ei tämä alkaa tuntua kuten huono tie mennä alas, jos
Laitan JavaScript-koodin sisällä minun HTML sijaan factoring sitä.
>> Niin, että opimme tästä.
Dom-2.html, olen factoring sitä.
Ja teen asioita hieman eri tavalla.
Nyt aion heiluttaa käsiäni , mitä tämä todella
alla huppu.
Mutta juuri nyt olettaa, että ensimmäinen rivi koodia tässä kirjastossa
sanotun jQuery tarkoittaa vain sitä, kun asiakirja on valmis, toimi seuraavasti.
>> Koska web-sivuja voi kestää jonkin aikaa ladata.
Saatat olla hidas internet yhteydessä, ja se saattaa pyöriä
ja spinning, ja lopulta se on ladattu.
Koodirivin sanoo vain odottaa koko sivu on valmis, asiakirja
on valmis, ennen kuin se täyttää tämän koodin.
>> Ja nyt ilmoitus, tämä on luultavasti hyödyllisin ensimmäinen
ottaa pois jQuery.
Tämä tässä on hyvin samanlainen henki Tämän paljon kauemmin linja täällä.
Kun taas raaka JavaScript-koodia, on olemassa asiakirja globaali objekti
on toiminto, jota kutsutaan getElementById (), ihmiset, jotka kirjoittivat
jQuery yksinkertaistettu, että vain sanoa dollarin merkki, ja sitten sisällä
Suluissa laittaa kaksi lainaa, ja sitten laittaa hash symboli ja sen jälkeen
yksilöllinen tunnus haluat napata.
Joten tämä vastaa document.getElementById.
>> Samaan aikaan. Submit tarkoittaa vain sitä, on jättämisen tahansa muodossa olet
viittaa vasemmalla, mene eteenpäin ja toteuttaa tämä.
Mutta tämä on nyt uteliaisuus liikaa.
Outoa, mitä Olen korostanut täällä?
Ei vain se sellainen syntaktisesti uusi, siellä on myös jotain puuttuu.
>> Yleisö: Se on vain kutsutaan funktio?
Se ei ole kutsuttu hälytys?
>> DAVID MALAN: Joo.
No, niin hälytys () on alaspäin täällä, olla oikeudenmukainen.
Mutta ei ole mainintaa nimi, kuten tiedätte, foo tai
jotain täällä.
Ja todellakin, tämä on yksi niistä ominaisuuksista, JavaScript-se on aivan
tehokas, mutta myös aivan uutta.
Ja PHP on itse asiassa tämän hyvin.
>> Anna minun mennä eteenpäin ja tehdä jotain todella nopeasti.
Anna minun mennä eteenpäin ja laittaa tämän tänne.
Anna minun tehdä tämä.
Toiminto.
Kutsun tätä handler ().
Käsittelyfunktio niin sanotusti.
Jotain, joka käsittelee joitakin toimintaa.
Saanen siivota minun sisennys.
Ja laittaa tämän tänne.
Ja esittää, että täällä.
Jep.
OK.
>> Joten nyt minulla on toiminto nimeltään ohjaaja (), että en todellakaan tiedä
mitä se tekee vielä.
Se vain on edelleen, että tavaraa.
Oho.
Vei liikaa.
Tehdään tämä.
Selvä.
Anteeksi.
Selvä.
Anna minun tehdä tämä.
OK.
Se näyttää hienolta ja suorat eteenpäin nyt.
Anna minun tehdä tämä.
Tee tämä.
Ja OK.
Joten nyt, nyt laittaa tämän tänne.
Ei enää ohjelmointi lennossa.
OK.
>> Joten nyt mennään takaisin jossa tarina alkoi.
Aiemmin sanoin, että tämä linja täällä tarkoittaa, kun asiakirja on valmis, mene
eteenpäin ja tehdä tämän.
Mitä haluat tehdä?
No nimenomaan, haluan mennä eteenpäin ja tehdä seuraavasti.
Suorita tämä rivi koodia, ja sitten mitä haluan sinun tekevän on kutsua tätä
toimi, kun lomake lähetetään.
>> Nyt tämä on mitä mielenkiintoista.
Tämä ei sinällään ole toimintoa.
Huomaa en ole laskemisesta suluissa Tässä tavalliseen tapaan.
Olen kirjaimellisesti kulkee toiminto nimeltään ohjaaja () toisen toiminnon
kutsutaan esittämään () kuin väitteen vaikka se on kuin muuttuja.
Ja tämä on yksi ominaisuuksista JavaScript on toiminnot itse
ovat oikeastaan ​​vain esineitä.
Itse asiassa, ne ovat oikeastaan ​​vain muuttujat jonkinlaisia.
Ja jos toiminnon nimi on ohjaaja (), ei ole mitään syytä en voi
suorittaa sen argumentiksi täällä.
Ja tämä tarkoittaa, kun lomake ID-demo on
toimitettu, kutsuvat tätä toimintoa.
>> Mutta jos nyt perua kaikki tämän, Miksi sitten olen ehkä tehdä
tämä hetki sitten?
No, tämä on anonyymi funktio.
Koska rehellisesti, tajusin miksi olen kiusaa tuhlata aikaa julistamisesta
toiminto nimeltään ohjaaja () vain soittaa se yksi ja vain yksi paikka?
Jos en tarvitse nimeä, enkä täytyy kutsua sitä useampaan kuin yhteen paikkaan,
Haluan vain toteuttaa toiminto juuri siellä missä sitä tarvitsen.
Ja niin JavaScript ja PHP-tuki, mitä ovat nimeltään anonyymi toiminnot
haluan tehdä juuri näin täällä.
>> Mutta me vain esimakua.
Katsotaanpa kiusaa vain pari lopullinen esimerkkejä tästä.
>> Jos menen quote.php.
Huomaa, että tämä on todella PHP toiminto, PHP-ohjelma, jonka kirjoitin
että odottaa HTTP parametri nimeltään symboli, ja voin kulkea
arvo kuin FB.
Ja jos me todella katsoa lähde koodia, tämä kysely ilmainen sivusto
nimeltään Yahoo Finance, kuten p-sarja seitsemän, ja se palaa minua
jotain ilmeisesti muodossa eli on JSON -
JavaScript Object Notation.
Se on vain esine.
Huomaa aaltosulkeiden, lainauksia, paksusuolen ja pilkkuja.
>> Nyt puolestaan, tämä on aika siistiä.
Koska en voi varmaan käyttää ohjelmointi kieli tuottaa URL
tämän näköisiä dynaamisesti, eikö?
Voin muuttaa Google ja saada takaisin Googlen
osakekurssi $ 1,017.55.
Katsotaanpa, jos emme voi käyttää tätä nyt.
>> Anna minun mennä ajax-0 täällä, joka näyttää seuraavalta.
Se on vain sivusto, joka on lomake-painiketta.
Saanen tässä mennä eteenpäin ja kirjoittaa YHOO Yahoon osakesymbolille, klikkaa Get
Lainaus, ja nyt huomaa olen saanut valppaana 32.86.
>> Saanen itse mennä harrastaja versio Tämän sivun versio kaksi, ja
kirjoita sanotaanko Microsoft, MSFT.
Pyydä tarjous.
Ja nyt huomaa, ei hälytys.
Huomaa jossa sanotaan hinta määritellään?
On yksinkertaisin esimerkkejä siitä, että vihjaa mitä Gchat ja Facebook
Keskustella, ja Gmail ja muut tällaiset sivustot tekevät by tosiasiallisesti
muuttamalla sivun.
>> Huomata tämän.
Saanen lataa sivu.
Saanen avata Chromen Inspector.
Anna minun mennä elementtejä välilehti tänne.
Nyt huomaa, jos en zoomata tänne ja avaa tämä ylös, huomaa, että tämä on minun
HTML DOM - minun Document Object Model.
Tämä on minun HTML.
Mutta nyt huomaa, vaikka se menee olla hieman vaikea nähdä sitä sekä
paikassa samaan aikaan, jos kirjoitan FB täällä, katsella alhaalta
on näytön vain.
>> Se on todella muuttuu minun HTML lennossa.
Ja se tekee tämän yksinkertaisesti tekemällä jotain tällaista.
Jos Avaan ajax-2, huomaa täytäntöönpanosta jotain niin seksikäs kuin
että vaikka se on melko ruma, mutta yhtä kehittyneitä kuin
toiminnallisesti, se on jonkin verran HTML alareunassa.
Mutta huomaa Käytin tag.
Olemme ole käyttäneet tätä ennen, mutta tämä on kuten, mutta se ei pakota
kaiken päälle uusi rivi.
Se vain tekee suorakulmainen alue samalla linjalla olennaisesti.
>> Huomaa, että annoin sen ID hinnan.
Ja se kääntyy pois käyttämällä samaa JavaScript-kirjaston, minulla on tehtävä
kutsutaan quote (), joka kutsutaan aina lomake lähetetään.
Ja mitä olen tekemässä on tämä.
Olen julistaa muuttuja JavaScript kutsutaan url, säästää arvo
quote.php? symbol =.
Toisin sanoen, minä olen alkanut valmistelemaan HTTP-pyynnön, ja sitten
Olen liittämällä päälle, että plus mitä elementti tunnus
symbolin on, mikä ilmoitus on ettei tekstikenttään oikea tänne.
Joten aivan kuten meillä oli muodoissa menneisyydessä.
>> Ja sitten käy ilmi, jQuery, jos soittaa. val (), joka kutsuu ja val
toiminto, arvo-toiminto, joka saa mitä käyttäjä on kirjoittanut sisään
Ja sitten kaikki verkkoliikenne että tapahtuu, on tämä.
$. GetJSON.
>> Ja syrjään, dollarin merkki on vain lyhennetty merkintätapa.
Se on todella jQuery.getJSON.
Vie minut JSON tähän URL, ja kun pyyntö tulee takaisin, kutsuvat tätä
toiminto ja kulkea argumenttina mitä tuli takaisin palvelimelta.
>> Eli toisin sanoen, jos menen takaisin selain, ja menen takaisin quote.php,
mitä selain tekee on tulossa tämä kimpale tietoja.
Ja kun menen tällä sivulla täällä, huomaa, jos me sen sijaan mennä verkkoon
välilehti ja poista se, ja kirjoita jotain GOOG Google ja Get
Lainaus, huomaa sivun ei muuttunut.
Mutta HTTP pyyntö on tehty, ja mitä tuli takaisin tänne, jos katsomme
vaste on koko joukko JSON että siirryimme lopuksi
tämä yksinkertainen linja täällä.
>> Data on mitä on mennyt palvelimelta.
Hinta on nimi avain välitän.
Joten data.price antaa minulle.
>> Nyt puolestaan, ja tämä on viimeinen esimerkki.
Voit tehdä vielä enemmän sivulle.
Yksi todella hyvin kaksi.
Voimme tuoda takaisin merkitä, jos muistat tämän.
Se JavaScript.
Me voimme tehdä sen.
Erittäin jännittävä.
Jätämme että jännitysnäytelmä.
>> Mutta enemmän jännittävän, voit tehdä asioita, kuten tämä.
Jos menen geolocation-1, se kääntyy pois että Chrome tietää, että olemme
leveyttä pituusaste 42.37. -71,10.
Joten on vielä enemmän siellä käytettävissänne.
Mutta siitä lisää ensi viikolla.
Nähdään maanantaina.