[Muusika mängimine] DAVID Humala: See on CS 50 ja see on algus nädalal üheksa. Ja me arvasime me tahaks teha, ei ole täna ainult sulgeda peatükki eelmisel nädalal materjali, kus keskendusime server pool veebi programmeerimine PHP ja SQL mõned andmebaasi kraami. Me räägime natuke turvalisus täna ja siis Üleminek kliendipoolse programmeerimine keeles tuntud kui JavaScript. Aga kõigepealt mõned lunastus. Nette et Kolmapäev, I sätestatud kirjutada kodulehel, et võttis kasutaja sisend poolt HTML kujul, et siis salvestatud et kasutaja sisend nimesid, numbrid ja mobiiltelefon Vedajate andmebaasis. Ja siis oli mul veidi käsk line script kirjutatud PHP mis pidi itereerima üle rida andmebaasis ja saata tekstsõnumeid. Vaatamata mitmetele, mitmeid katseid, me ei saada, et töö lõpuks. Nii et ma veetsin kogu selle nädala tööpäeva selle koodi meid viimase punkti kus meil pooleli jäi, kusjuures kõik Sain lõpuks kolmapäev oli selle teksti sõnum alates Margo nagu ma võidelnud, järgneb tekstisõnumi teise klassivend, Sul on see David. Järgneb selle ühe, imeliselt julgustav. Hoida läheb, väga julgustav. Ma peaaegu sain selle alles then-- ja see märkus me lõppes kolmapäeval. Ja siis tegelikult võib-olla mu lemmik, Hetk hiljem see tuli. Damn Live Stream. Nii et täna me määrata see kiire vaadata, mida ma olen teinud alates. Nii et kõik see kood on olemas Internetis eelmise nädala, nädala kaheksa, lähtekoodi. Ja te näete, et ma läksin läbi, ja ma tegelikult puhastada asju natuke. I tutvustas paar muud funktsioonid SQL andmebaasi. Näiteks mitte lihtsalt kandja var char nagu ma arvan, et ma tegin lennult eelmisel nädalal. Ma asemel määratleda seda mida nimetatakse enum. Ja mõned teist ehk näinud seda uurisime C. Väärtustik on tegelikult tunnuseks C, kus saab loetleda terve hulk konstante ning määrata need automaatselt väärtused, nagu üks, kaks, kolm, neli ilma et peaks kõvasti koodi numbrid. Nii SQL toetab sama, kusjuures kui teil on andmebaasis väli, et te ainult taha võtta ühe piiratud väärtused, mida saab sõna-sõnalt, määra see nagu ma olen teinud seal neli populaarne USA size kandjad. Nii et ma tegin seda. Ja ma teinud mitmeid muudatusi hästi, millest olulisemad oli saada email tööta, sest turult, et see programm tugines mis tavaliselt nimetatakse e- SMS gateway, mis on vaid fancy viis öelda, et Verizon, ja AT & T ja teised inimesed toetavad server, kusjuures, kui ta saab e teisendab selle SMS ja saadab teksti teade kellegi telefoni. Nii et kui ma tegin seda õigesti, siin on uus ja parandatud kujul et läheb rääkima uue ja parema kood, mis saab mängida võrgus. Ja loodetavasti teeb mu telefon helisignaali vaid hetk. Nii et esimene, ma lähen kirjuta oma nime. Teiseks, ma ei kavatse seda teha seekord. Ma lähen ära Kontrollige Element. Ja see on lihtsalt väike asi, et ma seda ei tee luua tundi post tootmine töö tegin viimast korda. Seal nüüd on minu telefoninumber. Ma valida Verizon. Ja siin, lähme lülitage see mikrofon siin ja eesmärk see minu telefoni siin. Ma lähen klõpsake registri mis peaks loodetavasti pane see andmebaasi. Nüüd ma lähen minema käsurea programm, mis turult kutsuti dot kaldkriips teksti ja risti sõrmede. Siin me läheme. [PHONE DINGS] [APPLAUSE] DAVID Humala: Nii lõbusam kui see-- see on lõbus, muidugi, kui ma saan seda. Aga see on rohkem lõbu, ma arvasin, et kui me loodud üks neist filmi hetked kus nagu midagi tõesti halb juhtus maailmas ja nagu kõik NSA inimeste mobiiltelefonides alustada piiksumist sõnumiühenduses hoiatatakse neid sellest. Nii et ma arvasin, et me peame püüdma taasloomine sama siin, milles mitte kasutades andmebaasi, Ma asemel ette kirjutas programmi, mis näeb välja selline. See on index.php-- ja panin selle koodi Internetis kui well-- et ilmselt lihtsalt muudab form.php, kasutades MVC stiil paradigma, mida me räägime üksikasjalikumalt probleem komplekt seitse. See vorm on üsna lihtne. See saab esitada fail nimega here.php posti teel. Ja see on ilmselt küsin Nime ja telefoninumbri ja seejärel läbi niinimetatud Valige menüü, siis on annan teile vähemalt neli populaarne USA size vedajad, ja seejärel võimaldab teil tõhusalt võtta kohalolijate klikkides siia. Ja siin, vahepeal läheb laenata kood viimast korda. Ja kui sa lihtsalt koorima see, näete, et seal on terve hunnik vigu kontrollimata. Aga ilu lõpus on see, et me ei kirjuta andmebaasi täna. Me hoides seda lihtne ja lihtsalt saates loodetavasti tekstisõnumi kaudu funktsiooni I kirjutas viimastel päevadel kõne Tekst, mis on funktsioonid. php, mis on jälle saadaval internetis. Nii et kui soovid osa saada sellest. Me ei kavatse olla ladustamiseks midagi. Mine seda URL siia reaalajas. Ärge esitage see lihtsalt veel, aga olgem kas meil on üks neist filmi hetki, kus igaühe mobiiltelefon hakkab piiksuma, loodetavasti lihtsalt kui sel aastal erinevalt 2011. aastal kui see läks kohutavalt viltu. Ja kui sa lähed sellele aadressile, sa näed super lihtne vorm et kui sul on nimi, mobiiltelefoni number ja mobiiltelefon vedaja, et sobib nimekirja seal minna minna ja täitke vorm. Kuid ei tabanud esitada veel. Vorm läheb välja nägema selline. Lase käia ja kirjuta oma nimi ja telefoninumber. Oop, keegi läheb ees kõver. See on OK. OK, kõik on täis vorm. See peaks töötama telefon ka, kui tahad. Olgu, teie kaubamärkide saada valitud, minna. Tulemus siin. Mis? Ei. Ma vannun, ma katsetada see mitu korda täna. Sa said selle? [Astudes VOICES] DAVID Humala: OK, kasutaja viga olla. See on kaks. Ta töötas kaks välja mõnisada, kolm, neli. OK, see on hea. Neli viiest jaoks õigsuse kuidas. Mis siis juhtus? Nii et arvatavasti, nägemata oma ekraanid, miks võiks see on errored? See on ilmselt, et me olime lihtsalt püüavad teha liiga palju ühendusi Harvardi posti server kõik on üks kord sama IP aadress. Ma lihtsalt aim sest ma ei ole on luksus testimine Selle koodi mõned 300 inimest ette aga nüüd aru, et et vähemalt peaks on saanud tööd teha seekord. Olgu, aga miks see kõik rohkem Sobiv mis toimub? Noh esiteks, kiire Paar teadaandeid. Nii üks, kui soovite liituda Chang, ja Nick ja teised lõunasöögi sel reedel, teha RSVP tavalisel URL seal. Kui te olete mõelnud, et keskenduda või teeme teisejärgulised CS, kas sa oled üliõpilane või uustulnuk, või isegi noorem või vanem siinkohal ja saab veel pigistada kursused, aru, et insener koolis on kogumas tasuta Ben ja Jerry jäätis ja nõu Kolmapäeval vahetult pärast klassi kell 04:00 CS hoone kell Maxwell Dworkin. Kui see on liiga kiire ekraanil, minge et cs50.harvard.edu eest link Facebook sündmus kus saab näha rohkem üksikasju. Vahepeal ma mõtlesin parandada üks teine ​​asi, mida ma goofed kolmapäeval. Selgub, et Markuse ID Facebook ei olnud kolm. See oli neli. Selgub, et ta oli rohkem test kontode kui ma mäletan. Aga mida see tundsin võimalus teha on tõmmata URL niimoodi. Nii selgub, et Facebook on API, Application Programming Interface, mis on mehhanism, mille abil sa võib nõuda andmete programmiliselt Facebookis ja saada tagasi masin loetava info ei veebilehtede aga lihtsalt tavalist teksti, midagi nimetatakse JavaScript Object Märge. Ja tegelikult, kui ma külastan seda URL ja suumida vaikimisi see on Markuse avalikult kättesaadavat teavet. Ja huvitav detail siin just tema ID tõepoolest, number neli, mis on minu mõistsin kohe, kui ma tegin seda. Seda saab teha ise, kui sa tead, oma Facebook kasutajanimi, kui teil on üks. Lihtsalt kirjuta see üles top seal. Ja ükski see on privaatne. Ma lihtsalt teen seda isegi inkognito režiimis. Nii et ma ei ole isegi veel sisenenud. Ja te näete, et ma ilmselt oli kasutaja number 6454 Facebook, mis ei ole liiga halb nendel päevadel. Nii et igal juhul, näete ka täiendavat teavet seal. Ja kasulik aspekt selle, et sa võiks kirjutada oma tarkvara, et kuidagi ühendab andmed, nagu see teie enda taotluse. Võite anda kasutajatele õiguse logida oma veebilehel, ei kasuta oma kohandatud kasutajanime ja parooli, kuid äkki oma Facebook login ja saada teavet isegi nende sõbrad, kui nad on heaks kiitnud sellised või sarnased. Nii et pange tähele, et CS50 Ka on mõnel tema API üks muidugi kataloogi andmetel mõned neist kallistusi menüüd söögituba hallid, kõik hooned ja kohad ülikoolilinnakus meil API samuti et saate päringu sarnaselt ja saada tagasi tekstilised andmed, mida saab integreerida arvesse PHP või JavaScripti, või isegi, kuigi harvemini C põhineb lõplik projekt. Tõepoolest enne lõpliku Projekt on mõned verstapostid. Sul meilt e teisel päeval. Aru, et ettepanek on tingitud tuleval esmaspäeval. See ei ole tingimata siduvad, kuid te ei pea saada oma õpetamise stipendiaatide heakskiitu enne mis tahes muudatuste järel. Ja siis edasi on mitmed teised verstapostid. Nii et kiusa ka mõned võimalustest, meil on hunnik Nende tooni lambid. Ja mõned kutid on nüüd mõned Nende oma Dorm tuba samuti. Ja ka neil on API. Nii meenutavad need binaarsed pirnid nädalat tagasi, et Dan Bradley ja Ansel Duff loodud meile. Nad kasutasid tarkvara liides see lamp, mis hetkel on ühendatud elekter ja siis läbi traadita on ühendatud väike asi nimega Bridge siin, nagu väike ruuter varaliste selle konkreetse seadmega. Aga selgub, kui ma tean, kuidas Kirjuta HTTP sõnumeid, nagu me kõik nüüd teha, Võin saata sõnum niimoodi Selle lambi sisse- ja väljalülitamine või teha mis tahes arv muid toiminguid ta. Pange tähele, et see ei saa, see ei saa postitada. Seal on veel üks nn panna. Seal on tegelikult mõned muud sellised verbid. Aga teate seal teed seal, kaldkriips API, kaldkriips uus arendaja, kaldkriips valgus, kärpida üks, kärpida riik. See on ilmselt lihtsalt tee, et firma, Philips, otsustasid sa pead vajuta koos HTTP taotluse Kui soovite muuta riigi pirn HTTP 1.1. Siis teate tühi rida. Ja siis lõpuks, mida näeb sellist massiivi mingisugune, see jälle läheb nimetada JavaScript Object Märge, või Jason. Ja mida sa näed on see, et on kolm põhiväärtus paari. Üks võti on kutsunud. Ja selle raha ilmselt läheb, et olla tõsi. Heledus on 128, mis on mingi int. Ja siis ülemineku aeg on null, mis on ilmselt kui kaua see aega võtta, et muuta see asi. Nii et just nüüd see lamp on välja lülitatud. Aga kui ma teen täpselt see-- lasta mul minna veidi petma lehte et Dan loodud advance-- ja ma lähen minna ja kopeerida järgmine käsk. Curl, nagu mõned teist oleks võinud väita kohta CS50 Arutle on utiliit nagu Telnet sellise et saate simuleerida HTTP päringuid, eriti paneb. Võin saata neid andmeid, konkreetselt, mida me lihtsalt nägin hetk tagasi just Selle URL siia. Ja siis Curl läheb käepide kõik vajalikud päised ja sõelumine seal. Nii et kõik, mida ma pean tegema, on kopeerida seda arvesse terminali aken ja vajuta Enter. Ja lamp põlema. Ja see kõik on läbimas minu arvuti juhtmevabalt kuidagi alla silla, mis Seejärel räägi see lamp. Ma võin teha midagi muud. Võin teha seda asja mine punane näiteks. Võin näiteks teha see asi minna roheline. Ma saan selle käima sinine. Ja teate kõik need juhtumeid, kõik, mis ma olen muutumas on nn toon väärtust tegelikult annab see teatud värvi. Nii et lubage mul kleebi see üks samuti. Nüüd on sinine. Ja seda saab teha isegi Kasvataja asjad where-- lähme roheliseks. Ja ma võiks seda kohta muidugi mu enda koodi. Aga isegi API ise toetab funky toimingud nagu see, mis nüüd vaeva meil järgmiseks 30 sekundit. Nii et see on üks maitse, mida sa võiksid pistmist API, see hõlmab lambipirnid. Pange tähele, et CS50 on paar paari Google Glass Kui soovite meeldib tegeleda midagi mööda need read, Arduino unos, mis on tilluke arvutid Sisuliselt on veidi trükiplaatide et saate ühendada juhtmed ja muud asjad ja tegelikult kontroll oma reaalses maailmas keskkonda. Ja siis seal on paar Uute mänguasjad, mis meil on. See üks sõna otseses mõttes just saabunud Teisel päeval posti, Müo Armbandist. Ja ma arvasin, et see on viis, kuidas sulle põnevil projektid mida te võite kasutada see riist oleks on mängida selle lühikese klipi et nad kasutavad tease inimesed et me oleme nüüd elavad tulevikus. [Muusika mängimine] DAVID Humala: Nii vaid paar nädalat, siis Ka võib olla, et jahedas CS50 õiglane. Teine seade, mis me on hunnik, et me oleme õnnelik laenata läbi projektide nimetatakse algatusel töötleja. See on väike USB seade ühendate arvutiga, võimaldab teil suhelda sülearvuti, Mac või PC, nagu sa olid nagu Xbox Kinect ja tegelikult teha füüsiline liikumine palju nagu me näeme seda tulevikunägemus. [Muusika mängimine] DAVID Humala: Nii et isegi kui teil on ei tea, kuidas midagi sellist võiks leiutas või töö on riistvara tasandil, ükskõik. Isegi pärast paari kuu CS50, ja arusaam programmeerimine üldisemalt ja veebi programmeerimine rohkem hiljuti ja seejärel ka API-sid ja HTTP, on teil juurdepääs kaudu tarkvara API-sid, kui te ei taha laenata üks neist seadmete tegelikult rääkida ta ja ei pea muretsema alusvara rakendamine üksikasju, mis on täiesti kooskõlas käesoleva mõiste kihilisus võtmiseks, et me oleme näha kogu semestri. Nii ka nädalavahetusel nägin paar tükki uudis. Mine esimese minge seminare kui te tahaks midagi õppida rohkem iga mitmesugustel teemadel. Vaata URL seal. Ja see üks saadeti mulle Chang, kes te teate, kes printimine meie armee elevandid. Ja see oli ka peamiseks järgmiselt. Ma olen hirmunud minu uus TV. Miks ma kardan, et muuta see asi ja siis oleksin ka. Nii et me oleme nüüd osutavad semestri Ka juhul, kui ka siis, kui teil on vähimatki arusaamist kuidas web töötab ja HTTP, ja turvalisuse asjad niimoodi tuleks hakata saagi oma silmaga. Aga ka, siis saad aru, kas need asjad on või ei ole tegelikku ohtu. Nii ma võtsin mõned katkendid see artikkel siin. Ja lugu on järgmine. Ma olen nüüd omanik Uue Smart TV, mis lubab anda streaming multimeedia sisu, mängud, app, sotsiaalse meedia ja internet sirvimise oh ja TV ka. Ainus probleem on see, et ma olen nüüd karda seda kasutada, ütleb autor. Sa oleks ka, kui sa loed läbi 46 Privacy Policy oma TV. Andmemaht see asi kogub on vapustav. Ta logib, kus, millal, kuidas ja kui kaua te kasutate telerit. See seab jälgimise küpsiseid, nagu me oleme arutanud, ja majakad kavandatud avastada, kui teil on vaadatud eelkõige sisu või eriti e-kiri kui sa tahad, et kontrollida e-posti oma TV. See salvestab teie poolt kasutada teie külastatavad veebisaidid, ja kuidas sa suhtled sisu teeme kõik, et tänu oma Smart TV. Samuti, creepier yet-- see on minu addition-- on ehitatud kaamera näo tunnustamist. Eesmärk on pakkuda žest kontrolli TV ja võimaldab teil logida sisse isikliku konto, kasutades oma nägu. Positiivsest küljest pildid salvestatud TV asemel üleslaaditud et ettevõtte server. Puuduseks on internet ühendus muudab kogu TV haavatavaks häkkerite kes on tõendanud oma suutlikkust võtta täieliku kontrolli seadme üle. Rohkem murettekitav, sest see ei olnud piisavalt targad, on mikrofon. TV uhke hääl tunnustamise funktsioon mis võimaldab vaatajatel kontrollida Ekraani häälkäsklustega. Aga teenuse kaasas üsna kurjakuulutav hoiatus. Pange tähele, et kui oma kõnet hulka isiklikku või muud tundlikku teavet, et teave on üks neid andmeid pildistatud ja edastada kolmandale osapoolele. Said aru? Ärge öelge, isiklikke või tundlikke kraam ees oma TV. Nii et see on tegelikult päris. Ja see on raske mitte näha, kas te minna Best Buy vms teleritele nendel päevadel. Nad kõik on tark mingil moel. Ja nad saavad targemaks ja creepier. Ja nad lihtsalt andmete kogumine viisil, mida me rääkisime ja siis üles laadida see HTTP või mõne teise protokolli mõned server. Nii et see oli lõbus artikkel Selles veebisaidile siin, mis rääkis eriti veast või eksinud kood et me saame tegelikult siduda arvesse eelmisel nädalal toimunud arutelu. Nii et see pealkiri oli järgmine lugu läheb siia, Josh Breckman töötanud Ettevõte ei jõudnud lepingu arendada sisuhaldustarkvara süsteemi või CMS kui nad kutsutakse, jaoks üsna suur valitsuse veebilehel. Suur osa projekti kaasatud arendada sisuhaldustarkvara et töötajad oleksid võimalik luua ja säilitada pidevalt muutuva sisu oma veebilehel. Asjad läksid päris hästi Mõne päeva pärast minnakse elama. Aga kuuendal päeval, asjad ei läinud nii hästi. Kõik sisu kohta kodulehel oli täiesti kadunud. Ja kõik lehed viinud Vaikimisi sisestage sisu veebilehel. Oih. Josh oli kutsutud uurima ja märkasin et üks eriti häirivaks väline IP aadress oli läinud ja kustutatakse kõik sisu süsteemi. IP-aadress ei kuulu et meretaguste häkker painutatud hävitades kasulik valitsuse informatsiooni. Ta otsustas googlebot.com, Google'i enda veebi indekseerimise ämblik. Oih. Pärast natuke uurimistööd ja skrambleerimise ringi, et leida noncorrupt backup, Josh leitud probleemi. Kasutaja oli kopeeritud ja kleebitud mõned sisu ühest leht teise, sealhulgas Muuda link muuta lehe sisu. Tavaliselt see ei oleks küsimus, sest väljaspool kasutaja oleks vaja sisestada ja parool kuid CMS autentimise süsteem, sisselogimise süsteemi, ei võtnud arvesse keerukamaid häkkimine tehnikaid Google Spider. Oih. Nagu selgub, Google Spider ei kasuta küpsised, mis tähendab, et ta saab lihtsalt mööda tšeki on sisse loginud küpsis seatud valeks. Samuti ei pöörata tähelepanu JavaScript, mis tavapäraselt kiire ja suunata kasutajad kes pole veel sisenenud. Ta peab siiski järgima iga hüperlink igal leheküljel ta leiab, sealhulgas Kustuta Page pealkirjas. Oih. Nii et mida see tähendab rohkem tehniline, kuid üsna kättesaadavad terminoloogia? See tähendab lihtsalt, et kogu oma veebilehel, nad olid URL ei ole erinevalt see, et võite näha probleemi pani seitse. Meenuta probleem pani seitse või teada, probleem seatud seitse et sa oled vaidlustanud, muuhulgas müüa varud nimel kasutajad. Aga rakendavate funktsioon teel kohta saada kaudu hüperlinke oma kasutajanime liides, ilmselt ei ole kõige targem mõte sest kui teie sait on kuidagi kättesaadavad kas inimese kes klõpsates ümber või osta bot nagu Google või Spider kui nad kutsutakse see on lihtsalt indekseerimise web püüab indeks veebi otsingumootori nad võiksid väga kergesti tabas kaudu saada selline URL. Ja see on funktsionaalselt samaväärne, antud juhul müüa kõik aktsiad Google. Nüüd ausalt öeldes, see on täiesti rumal, et CMS kasutatud JavaScript ja küpsised rakendada oma sisselogimise süsteemi ja ei tee seda serveri poolel, kui kutid teha ning peavad pset 7-- seal on login.php file-- alati, alati, alati turvalisus peaks olema teha serveripoolne, mitte kliendi poolel, sest see artikkel näitab, ja te võite ennast vaata mingil ajahetkel, siis on triviaalne kasutaja, hea või halb, lihtsalt välja lülitada JavaScript rääkimata küpsised. Nii et on oma igapäevast WTF. Seal on veel üks, mis on lihtsalt selline hirmutav, nii et ma mainida seda, kui ainult elu õppetund. Kui kasutad taotluse kutsus nagu Snapchat vms mis ütleb, et need pildid alles möödunud viie sekundi, kümne sekundi või etažeer. Nad on üürike Just absoluutselt ei ole. Nagu ei ole võimalik digitaalselt, rakendada mingil kujul video, või pilt või teksti jagamiseks selline et saaja teises otsas saa kuidagi salvestada andmeid. Kõige naiivne tee, keegi võiks oma telefonile. Ja nad on 10 teine ​​osa samas vaadates mõned snap lihtsalt võtta mõne muu telefoni ja pildistada seda, ilmselt. Nii saab säilitada midagi digitaalselt nii. Mõned teist teavad, kuidas võtta Ekraanikuvad telefoni. Tegelikult, kui sa ei tea seda, aru, et vähemalt Snapchat, ja ma arvan, et teised rakendused nendel päevadel, vähemalt öelda, kui saajal on tegelikult võtta screenshot oma pilt. Aga veel hullem oli see snappening, kui keegi mõtles ta hiljuti, kus mõned 100000 klõpsatusega oli vabastatud mida nimetatakse torrent faili erinevatel veebilehtedel lõpuks. Ja need sisaldasid terve hunnik privaatsõnumeid ja ametikohta. Selgub, enamik neist healoomuline, nii ei ole, mida te võite arvata. Aga kuna inimesed olid kasutada kolmanda osapoole veebilehel, Logides sisse oma Snapchat kasutajanimi ja parool ning seejärel säästa kõik oma klõpsatusega Selle kolmanda osapoole veebilehel. Ja see oli see, et kolmas isik veebileht, mis oli häkkinud, mis just mõeldud keegi arvasin, kuidas saada kõik 100.000 pluss nende pilte Iseenda kõvaketas järgnevaks jagamine. Ausalt, siin, see on omamoodi on rumal, et Snapchat rakendatakse sellisel viisil, et kolmas isik saab järjestada ning lõikepunktide andmete ja et see ei ole seotud teie enda rakendus telefonis. Aga ka siin aru, et need asjad ei saagi sa üllatusena, või vähemalt ei peaks olla elu õppetund siin. Kui soovite tehnilise Lisateavet minna, et URL on see on tänapäeva slaidid. Olgu, mis tahes küsimustele Tänapäeva elu õppetunni CS? Lülita see välja. Üldse midagi? Üldse midagi? Mul on palju inimesi kontrollida nende Snapchat või midagi nüüd. Olgu, nii SQL, Structured Query Language. Olgem murrab see. Ja ka, kuigi me lihtsalt kriimustada pind keelt, anname teile piisavalt keelt kujul pset 7 nii, et saate lahendada mõned üsna levinud funktsionaalsust. Aga siis on paar asjad, mida me ei vaja sind, aga nad ei kavatse olla oluline tulla Lõputööde ja kindlasti tulevad tegemise tegelik veebisaitide tegelikke kasutajaid on see disain otsus. Selgub, et MySQL andmebaasi, siis on kobarad valikuid nagu andmetüübid oma veerud ja muid asju, kuid siis on ka valik nn ladustamise mootor kõik oma andmed, omamoodi failisüsteemi kui sa oled tuttav, kõik oma andmed. Mis formaati ta lõpuks salvestatakse? Ja kõige levinum, võib-olla on olnud MyISAM ja InnoDB, tehnilised terminid et me hoolime ainult sel määral, et üks on ja üks ei ole järgmine funktsioon. Oletame, et teil on veidi Dorm külmik. Ja oletame, et teie ja teie toakaaslane, kes jagavad seda külmik, on tõesti armastab rääkida piima. Ja see on tegelikult, kuidas lugu öeldi mulle teed tagasi sel päeval, kui ma võtsin muidugi nimega CS 161 operatsioonisüsteemid, mis sarnaselt uurib seda teemat. Nii et sul on see külmkappi. Sa oled piima. Ja sa tuled koju, oma toakaaslane on veel klassi või mis iganes, ja teil otsustada, ma lähen minema ja saaksin piima. Nii et sa sulgeda külmik, eellukustusega Dorm tuba, minna üle tänava CVS või kus iganes, ja saada kooskõlas osta piima. Vahepeal oma toakaaslane koju jõuab klassi, satub Dorm tuba, avab külmik, mõistab ka ooph, oleme välja piima. Nii et ta sulgeb külmkapp ja siis juhtub minna teise CVS, mis juhtub olema ühe kvartali kaugusel muud CVS ruudus, ja saab vastavalt seal saaksin piima. Nüüd, muidugi, paar minutit hiljem, siis saavad mõlemad tagasi ja halvim kõik võimalik tulemused on juhtunud. Mõlemad teil on piim. Ja sa tõesti ei nagu piim, et palju. Nii et üks neist on lihtsalt läheb hapuks mingil ajahetkel. Nüüd olete liiga palju piima külmkappi kõik, sest miks? [Kuuldamatu] DAVID Humala: Jah, sa ei kuidagi üksteisega suhelda et te ei saada piima. Nii et lihtsaim kuidas inimeste maailma, kuidas võiks teil vältida seda rumal stsenaarium juhtub selline et te ainult lõpuks üks. Tekst neid, jah hea. Aga kuidas siis veel? Post-it märkmepaberid. DAVID Humala: Post-it note. Igasugune kommunikatsioon mis ütleb teie toakaaslane ei lähe külmkappi piima. Ma lähen merega minu oma. Nii et sa kuidagi vaja lukustada seda ressurssi. Nii saame teha see-- saame omamoodi rikud lugu ja muutuda CS lugu kusjuures mõtlen seda nagu muutuja, mis salvestab teatud väärtus. Ja just nüüd, väärtus piim on null, mida te ei soovi oma toakaaslane kontrollida, et muutuja ja siis teha otsus ennast põhineb riigi muutuja kui sa oled selles protsessis oleku muutmisel, et muutuv. Nii et üks rida SQL, et me anda teile pset 7 spetsifikatsioon on see siin. Ja me ei kuluta suur aega rääkinud seda. Aga selgub, kui sa üritad osta mõned varu CS50 rahandus mis teil juba on mõned aktsiad, siis tahan, et oleks võimalik teha mitmeid asju kohe kokku. Sa tahad, et oleks võimalik tõhusalt, kõrgel tasemel, vaadake kõik korras, kui ma tahan osta rohkem aktsiaid Free, Penny varude me rääkida ka spec, Tahan kõigepealt kontrollida kui palju aktsiaid mul on. Ja arvan, et see on viis. Ja arvan, et ma tahan osta 10 rohkem, ma lõpuks tahad olla 15 aktsiaid. Nii et mul on kaks küsimust. Mis riik muutuja? Mis on riigi rida? Kui palju aktsiaid ma praegu? Siis sa tahad minna ja seda ajakohastama. Nii et analoog piima, et teil vaadata järjest, ja siis sa tahad seda uuendada sest kui sa tahad osta 10 aktsiat, sa ei taha muuta rida 10, siis soovite seda muuta kuni 5 pluss 10 või muidugi 15. See koodirida tagab Nende kahe ideestik juhtuda koos või üldse mitte. Keegi, ka mõne teise kasutaja kes on sisse loginud samal veebilehel, saab kuidagi katkestada kontrollimise rida ja ajakohastamisega järjest valida ja update kui soovite. Ja süntaks ei ole super selge, aga see üks rida, pikk on see, tagab selle, et need kaks operatsiooni kontrollida muutuja või vaadata järjest ja ajakohastada rida juhtuda atomically. Oh siin me läheme uuesti. Lühisõnum mu telefon. Nii et teeme seda natuke konkreetsem. Oletame, et sa ei ole rakendamise külmkapp, ja sa ei rakenda Pset 7, kuid tegelik pank, või ATM, Automated Teller Machine, mille sa kuidagi tahan, et oleks võimalik anda kasutajad saavad raha ühelt kontolt teisele. OK, riputada. Ma lähen vaigistamiseks seda nüüd, aitäh. Nii et me tahame liikuda raha ühest kontonumber teisele kontole number, täpsemalt 100 $. Nii et see on omamoodi suvaline Näiteks, millega te, ATM, Võiksid täita kaks SQL päringuid, lahutama üks konto, ja lisada teise konto. Aga sa tahad, et need kaks rida nii juhtub või üldse mitte. Sa ei taha midagi saada katkestada. Sul ei ole mingi tark paha poiss kuidagi seisab Bank of America kaks pangaautomaati ees Temast ja kuidagi omamoodi kirjutades käsud samal ajal, loodetavasti üritab maha $ 200 asemel $ 100 ja neil on ainult $ 100 krediiti. Ühesõnaga, sa tahad seda käituda täpselt nii, nagu te ootate. Ja kuidas te teete see SQL andmebaasi te murrab ta, mis on nimetatakse tehingu. Sõna otseses mõttes SQL, võite helistada CS50 on päringu funktsiooni viitega lõppeb algus tehing. Siis saab käivitada mis tahes arv Järgnevate SQL päringuid, kuid ükski neist ei võta mõju andmebaas kuni helistate päringu quote lõppeb toime, kui uuesti kasutades PHP. Ja sel moel saab tagada, et isegi kui teil on 1000 kasutajad kõik lööb oma andmebaasi samal ajal SQL luban, et need kaks päringut on rakendatud ühe peale teine. Nii et sa ei lõpetame üle piima või vale summa lõppkokkuvõttes raha. Nii et pidage seda meeles, mitte niivõrd pset 7 kuid lõpliku projekti kui sa oled tegelikult püüab liikuda andmed ümber kogu tabelid nagu te võite siin. Aga võib-olla isegi lihtsam ja selgelt mõistetav, näite on see siin. Ja keegi saadetakse meile seda just paar päeva tagasi kui ta nägi midagi sarnast võrgus. Nii et minu teada pin süsteem ei ole ka haavatavad. Ja ma ei tea, kas see isegi kasutusalad SQL andmebaasi all kapuuts. Kuid olgem seda kasutada Huvides arutelu. Siin on ekraan, mis Harvard inimesed kipuvad näha, kui logite sisse oma Harvard ID number ja PIN-kood. Ja oletame, et pin süsteem oli rakendada PHP ja MySQL andmebaas, kood, et keegi oleks kirjutatud aastat tagasi tunduda see. Esiteks tunnistada muutuja nimega kasutajanime. Ja just selle said POST superglobal. Siis saad teise muutuja nimetatakse salasõna ja sama tegema. Ja siis lihtsalt ellu Selle pika päring siin valige star kasutajate kus kasutajanimi võrdub sellise ja sellise ja salasõna võrdub selline ja selline. Pange tähele, et lokkis traksid Olen kasutanud siin tähenda ainult PHP minna edasi ja asenda väärtus nende kahe muutujad seal. Need ei ole tingimata vajalik, kuid nad kipuvad vältima peen süntaksi vigu. Nii et see tundub täiesti õige esimesel pilgul. Ja see on. Sa võiksid rakendada pin süsteem niimoodi. Aga oletame, et super tark ja pahatahtlikud õpilane input seda oma pin. Nii et ma olen ära bullet märgid siin mõnitama üles ja ma olen tegelikult selgus mida ta võiks olla kirjutamist. Ja see on natuke imelik. Aga mis hüppab välja ennast potentsiaalselt murettekitav umbes kasutaja sisend, isegi kui sa ei tea, mida SQL süst rünnak tähendab. Miks see tunduda veidi kahtlane? Mis see on? [Kuuldamatu] DAVID Humala: või on veidi kahtlane. Tegelikult, see on märksõna SQL. Nii et ei tõota. Asjaolu, et seal on kõik need ülakoma there-- tegelikult üks lihtsamaid kuidas murda mõned andmebaasid on kirjutades nime nagu O'Reilly mis on ülakomaga see sest kui inimene, kes kirjutas kood kulisside taga ei võta arvesse seda, et võib olla ülakoma kasutaja juures sisend ja ta kasutab ülakoma oma koodi halbu asju võib juhtuda. Tegelikult hullem veel, et sellest. Kui see oli jälle koodi et keegi Harvardis aastat tagasi kirjutas pin süsteemi, teate, mis on umbes saada asendatud kasutajanime ja salasõna kui kasutaja liigid uuesti skroob oma kasutajanime ja siis üks, kaks, kolm, neli, viis, tsitaat või tsitaat lõppeb üks võrdsete Tsiteerin ühte. Ja teate, mis on võti siin on kasutaja pole alustas oma salasõna või oma pin tsiteerida. Ja nad ei ole lõppenud see tsiteerida, sest ta Eeldame, et kui programmeerija ei olnud nii terav, nad ei kavatse on need ülakoma oma koodi. Nii et siin on kood. Ja asendus et Nüüd võib juhtuda, on see. Ja ma olen rõhutanud, mida kasutaja on sisestatud. Nii enne, pärast. Ja teate, mis on pisut murettekitav nüüd umbes parempoolses SQL koodi? See on veidi keerulisem, küll kui päringuid oleme näinud. Aga see ei saa olla oleks hea, kui sa oled öeldes, valige täht, mis on valige kõike kasutaja tabelis kus kasutajanimi võrdub skroob ja parooli võrdub ühe, kahe, kolme, nelja, viis või üks võrdub üks. Mis on loogiline jätk selle viimase lause arvatavasti? See on lihtsalt alati tõsi. Ja kuna me oleme omamoodi arvata või arvasin, katse-eksituse meetodil et programmeerija, kes kirjutasin selle koodi ei ennetada inimeste või halb inimene kirjutades ülakoma samuti, saame süntaktiliselt lõpule SQL päring millegi mõttetu kuid midagi, mis on süntaktiliselt vale et alati hindab true. Nii et kui see kood on kasutatud vastata Küsimus on õige või vale peaks Selle kasutaja anda võimalus läbida, Vastus on alati ilmselt läheb et olla tõsi, sest see on alati läheb valida midagi andmebaasis sest üks kursus võrdub alati üks. Mis siis lahendus? Noh pset 7, me tegelikult Selle vältimiseks kõik koos. Anname teile päringu funktsiooni ja me Soovitame Teil kasutada küsimärke kui kohatäitjaid, mis on sarnane sisuga printf s% s, kuid milline on võti umbes küsimärke siin on, kui sa tegelikult läbi lugeda functions.php, kus meie päringu funktsioon on rakendatud, need küsimärgid on põgenenud, kusjuures midagi potentsiaalselt ohtlike nagu ülakoma lülitatakse sisse pääsesid ülakoma. Nii et see on see, mis tegelikult toimub, kui kasutada CS50 päringu funktsioon või number kolmandate isikute vaba raamatukogud, mis sama tegema. Vahet pole antud juhul roheline kui kasutaja on sisestanud ülakoma sest päringu funktsioon, mis me kirjutasime on läheb lisada längkriipse enne selliseid ohtlikke tsiteerida. Nii see ei ole, on Tegelikult saab olema õigustatud. See on nagu kirjutades hull otsin Parooli see muidugi ei kavatse olema skroob tegelik parool. Nii Buffee jaoks CS50 on üks, absoluutselt alati kasutada midagi nagu CS50 päringu funktsiooni või selle aluseks olev raamatukogu mis juhtub nimetada KPN. Aga kunagi, mitte kunagi, ei tee kunagi koodi niimoodi ilma põgenedes või puhastamine nagu nad ütlevad oma sisendeid. Ja sa mingil hetkel ilmselt kohanud mõningaid veebilehel niimoodi. Tegelikult tundub, et antud juhul nagu lennujaamades ja hotellides kohtades kui neil on tasuta Wi-Fi juurdepääs, et sa pead sisse logima, need veebilehed on alati jubedalt rakendada. Ja nii omamoodi lõbus kodus kasutamise, ei kuritegelikel eesmärkidel või rohkem on lõbus teedel kasutamise, on lihtsalt tüüp ülakomaga, ülakoma, kujule mõnel veebilehel ja vaata, mis juhtub. Ja kui server jookseb või annab sa mingi veateate, see võib väga hästi olla, et keegi ei ole seda ette näinud. Ja siis tuleb hoiatada õige asutuste ja edasi enam. Nüüd kutid peaks loodetavasti mõista veidi geek huumor siin. [NAER] DAVID Humala: Tead sa oled geek. Järgmise mitu aastat, mäletate kes vähe Bobby tabelid on sest see multikas siin. Nii et hoidke seda meeles, kui me kontekstis lüliti viimast korda täna JavaScript. Veetsime suhteliselt vähe aega süntaksit PHP sest see on tegelikult super sarnane C. Ja kenasti kombel JavaScript liiga on super sarnane C süntaks samuti me näeme hetk ja jagame Vaata hiljem sel nädalal eriti. Mida saab teha selles keeles, aga on veelgi võimsam, eriti rakendusliideste. Aga kõigepealt kiirülevaate. Nii et üks, JavaScript, seal ei põhifunktsiooni, mis on kena. Nagu PHP, võid lihtsalt kirjutada koodi. Tingimused näeb välja selline. Ja Loogiline väljendeid võiks näeb välja selline või selline. Lülitid olemas ja nad tunduda see. Neli silmad nägema selline. Kuigi silmad nägema selline. Kas whiles näeb välja selline. Ja siis massiivid nägema Selle väga sarnane PHP. Aga teate, et JavaScript sa kuulutada muutuja mitte dollar kirjutada, mitte andmete tüüpi, kuid sõna-sõnalt öeldes var muutuja enne seda. See liiga lõdvalt kirjutatud et sellel on tüübid, aga sa ei ole selgesõnaliselt deklareerida neid. Ja siis string jaoks Näiteks võiks vaadata meeldib see, et string kutsutakse s käesolevas asjas. Ja siis objekt. Ja need me näeme veel enne pikk. Ja objekt on ilmselt üks Kõige sagedamini täheldatud andmestruktuuride sisse JavaScript põhineb programmi, sest see võimaldab sa siduda suvalise põhiväärtus paari lihtsalt nagu PHP assotsiatiivne massiivid ja nagu oma hash tabelit või proovida kui me ellu paar nädalat tagasi. Nii et olgem tegelikult näha, mida me saame teha JavaScript. Ja eelkõige on see pesu omaduste loetelu et brauserid on, et võimaldavad meil konksu JavaScript arvesse veebilehel järgmisel viisil. JavaScript kasutatakse tihti Kliendi skript keel. See ei ole koostatud. See liiga on tõlgendanud. Kuid erinevalt PHP, mis on kestnud server, veebiserver, või sügav sisemus kliendid, JavaScript on erinev, et see Tavaliselt jookseb brauser. Seega igasugused JavaScripti koodi hakkate kirjalikult jaoks pset 8 või oma lõpliku projekti või reaalses maailmas üldiselt läheb salvestatakse serveris, absoluutselt aasta dot HTML või dot JS JavaScripti fail. Aga brauser läheb alla laadida, et JavaScript koodi oma enda astme Chrome, või IE või Firefox, või mis iganes. Ja kood on tegelikult hakka hukati sees oma brauserit. Lihtsalt teha see rohkem reaalne, Vaatame selle konkreetse vormi. Me ei tea, mida see kood teeb ilma tõesti lugedes seda. Kuid lubage mul minna Facebook.com ilma sisse logimata. Lubage mul minna Kontrollige Element ja minna, oletame, Võrgustik ja laadige leht uuesti. Ja me see-- lase mul minna Reload Page saada kõik taotlused uus. Ja kõige esimene fail ma näen, on CSS, CSS. Siin on esimene JavaScript fail, ja mul on ei tea, mida see teeb, kuid siin on mõned JavaScripti koodi mis ajendab Facebook. See ei ole isegi tõesti, et paljastavad, et suumida. See on ikka sama absurdne. Aga näete, isegi allapoole, seal on isegi mitu neist JavaScript faile. Oih. See on ping. Lähme alla veidi veelgi, veelgi, veelgi. Seal on üks. Seal on üks. Seal on üks. Nii et kuigi Facebook, taga stseene, on kirjutatud osaliselt PHP ja Facebook oma versiooni sellest, seal on tohutu JavaScript. Tegelikult ükskõik jututoas sa Facebookis ükskõik inline ajakava uuendused mis juhtub reaalajas, kõik see on ajendatud JavaScript. Jah? Sihtrühm: Ma ei ole kindel kui see on Facebook, aga ma mõtlesin, et Facebook arenenud oma in-house kood keelt? DAVID Humala: Nad tegid. Nii et miks ma ütlen hälbega PHP nimega Hip Hop, et nad tegelikult lisafunktsioonid sellised, et kui Mark esmakordsel rakendamisel Facebook, oli kirjutatud PHP. Ja see omamoodi on jäänud omamoodi esiotsa keel et nad kasutavad palju nende kodeerimist, kuid see ei ole keel, mis on kaalud eriti hästi miljardeid inimesi. Ja nii nad lisasid oma parandusi kulisside taga. Ja nad kasutada mis tahes arv teiste keelte erinevat tükki oma infrastruktuuri. Nii et jah, see on dispersiooni mida me teame nüüd, kui PHP. Võtame pilk on paar näidet kuidas me võiksime kasutada JavaScripti siin. Tänapäeva lähtekoodi meil hunnik faile, millest esimene, olgem nimetatakse DOM null. Nii DOM null näeb välja järgmine. Lubage mul minna selle kataloogi ja avada domzero.html, mille peale on doc tüüp deklaratsioon, öeldes, siin on HTML 5. Ja nüüd siin on HTML tag. Siin on pea tag. Ja siin on, mida uut täna. Meil on nüüd script tag sees juht lehel. Ja see ilmselt ei väga vähe, kuid teade et ma olen määratletud script, JavaScript. Ja kui kõrvale, kuna see on levinud väärarvamus, JavaScript ei ole absoluutselt mitte midagi pistmist Java keeles et mõned võite õppinud APCS. See oli mitu turundus asi kui midagi, ratsutamine coattails Java aastat tagasi. Aga JavaScript, midagi pistmist Java, just samamoodi ja tüütult, äravahetamiseni nimega. Nii et siin on, kuidas deklareerida funktsiooni JavaScript sõnalt öelda funktsiooni Seejärel nime funktsiooni siis ühtegi argumenti, see võib võtta, just nagu PHP. Selgub JavaScript, üks tüütu ülesandeid, mis on olemas, on teade. See on väike aken, mis avaneb ja ärataks teatud osa teabest. See on tavaliselt kortsutas kulmu. Aga me kasutame seda, kui meie Esimene harjutus. Pane mõned omadused JavaScript. Ülakoma ja jutumärkide tegelikult ei hooli enam sellest. Single hinnapakkumisi ja topelt hinnapakkumisi omavahel vahetatavad, arvestades, C, sa pead kasutama jutumärgid keelpillidele, ja sul on kaks ühekohalist hinnapakkumisi tähemärki. In JavaScript maailmas paljud inimesed, et enamik inimesi Kasutada ülakoma ümber stringid lihtsalt sellepärast, et see on stilistiline asi. Aga mis on pluss operaator siin mida me ei ole näinud? Sihtrühm: ketistamine. DAVID Humala: ketistamine. Nii C ei ole isegi seda. PHP on dot operaator, mis seda teeb. JavaScript on pluss operaator, mis äravahetamiseni on nagu Java. Nüüd sellest, mis siin toimub? Nii et siin on, kui põhiline arusaam, et pilt me oksendasin paar päeva tagasi hakkavad. Mäletad, kui meil oli lihtne versioon HTML page-- ta just ütles, hello world. Ja siis me tõmbas puu üles paremale, oli hunnik ristkülikud ja liinid ühendab neid nagu sugupuu. Nii et nn DOM või Document Object Model. Ja selgub, et pääsete ruutude et puu süntaks nagu järgmine. Sa sõna otseses mõttes öelda dokument, mis on eriline globaalse muutuja JavaScript programm, mis on funktsioon sellega seotud, mida saab kasutada sarnaseid struktuure, aga sa lihtsalt öelda dot ja siis funktsioon nimi, saada elemendi ID. Element ma tahan saada on ilmselt tsiteerida lõppeb nimi. Ja siis ma tahan saada selle väärtust. Nüüd me saada enne ise. Ma pole isegi kindel, mida see kõik on umbes. Lähme edasi rutates HTML lehel, mis on super lihtne. Pange tähele, et ma olen määratletud moodustavad siin. Teadaanne olen andnud talle kordumatu ID, kuigi meil ei kasutata seda omadust varem. Aga see on olemas HTML. Võite üheselt määratleda mõned patakas HTML tunnus niimoodi. Teate nüüd see-- välja HTML toetab kohta, et pesu nimekirja Hetk tagasi kogu hunnik korral käitleja. Ja see sündmus ütleb esitama. Kasutaja esitamist selle vorm, helista järgmine kood. Ja kood, mis läheb mida nimetatakse ega hukata Just see, et Kreeka funktsioon, millele järgneb tagasipöördumine vale. Kõik muu peaks päris tuttav. Siin on sisend teksti tüüp, kelle ID, sellisel juhul saab olema nimi. Meil ei ole tegelik nimi atribuut Selle AEG_ ja detailid. Nii saadud lehekülg näeb välja selline. Ja tulemuseks käitumise näete, näeb välja selline. Lehte see kohalikele masinatele ütleb tere David, vaevalt esteetiliselt meeldiv viis tervitada kasutaja. Aga mis tegelikult toimub? Noh, mõtle, mis see on. See on tekstiväljale. Ja vastavalt HTML siin, ma olen teinud selle kordumatu tunnus nimetatakse quote lõppeb nimi. Vahepeal ma olen öelnud, kui kasutaja leiab selle vormi lööb Enter või klõpsates Esita nupp, kõne funktsioon nimega Greet ja siis tagasi False. Vaatleme neid vastupidises. Pange tähele, kui ma vajutad nupule Saada, URL selle lehekülje ei muutu. Brauseri ikooni ei hakanud ketramine. Ma ei lähe kuhugi, ja see on sõna otseses mõttes, sest ma ütlesin tagasi False. Tagasi False lühise või seiskub vaikimisi käitumise vorm. Nii et siis jätab meid see viimane küsimus. Mis Greet teha? Noh, Tervitage ilmselt kutsub funktsioon nimega Alert läbib ühes pikk argument, mis on tulemus concatenating kokku hunnik alamstringide, hello komaga ruumi, siis mis iganes see tagasi. Nii et dokument on nagu globaalne muutuja, mis juure, et puu, helistades eriline funktsioon, vastasel nüüd tuntud meetodit. Funktsioon, mis on sees muutuja on nimetatakse meetodi asemel funktsiooni. Nii et saada elemendi ID. Mis element sa tahan saada oma ID? Tsitaat lõppeb nimi ja siis konkreetselt väärtustada. Nii et teiste sõnadega, et koodi lihtsalt leiab tekstiväljale kelle ID on nimi ja siis saab selle väärtust. Kui ma seda muuta ja öelda Davin Taaveti asemel, ja vajutad nupule Saada, nüüd on tervitus Davin. Olgu, nii et kõik on hea ja hea. Aga vaatame, kas me saame teha see veidi puhtam, sest lihtsalt kirjalikult kood, nagu see on üldiselt saab olema kortsutas kulmu. See läheb otsima scarier. Aga mis on esimene erinevusega, et sa tähele siin selles versioonis lisaks nimi lendama DOM üks? Mida struktuurilt näeb välja teistsugune sellest versus muud? Jah? Sihtrühm: Kas formaadis top script nüüd? DAVID Humala: Jah, vorm on peal skripti mõned uudishimulikud põhjusel. Nii et esimene asi, et hüppab mulle ka. Ja õnneks vähemalt see osa on identsed. Nii et ainus asi, mis tundub olla erinev on see. Nii et siin on, mida on puhas umbes JavaScript 2. Ja see muudab raskeks mõista esmapilgul eriti viimane, kui projekti te vaatate proovi kood online, kuid see taandub mõne põhilised süntaktilised funktsioonid. Ka siin on see, et Globaalse muutuja dokument. Ka siin on see, et meetod või ülesanne mis ütleb, et saada elemendi ID. Seekord ma tahan saada ID nimega demo. Kus see on? See on ilmselt õigus Siit vormi ise. Ja nüüd teate, et ilmselt kui ma saada tagasi, et sõlme puu esindab kujul Iseenesest ei ole tekstiväljale selgub, et vorm, mis sõlme või ristkülik puult, on see, mida me kutsume vara, väga, väga, väga sarnased sisuga struct C. See on lihtsalt andmed liige sees selle ristküliku. Nii et mul on vormis siin, ja ma olen seotud, või ma määrates, et tema On Esita käitleja või pigem Esita kinnisvara järgmised funktsiooni. Ja see on kaugelt craziest asi siiani süntaktiliselt. Selgub, JavaScript ja PHP, ja ausalt öeldes, et asi on C, kuigi me seda ei tee, võite lisada nimetu, anonüümse või AKA lambda funktsioone, mis ei ole nime kuid selle võib sellegipoolest. Nii et mida ma teen siin ma määrates see On Esita vara, mis on sees see sõlm minu DOM puu, funktsioon, funktsiooni pointer kui soovite. See funktsioon ei ole nimetada, kuid see ei oluline, sest me näeme ühel hetkel, kuidas seda nimetada. Kui see funktsioon on kutsutud, Selle koodi saab täita, siis vale tagasi nagu enne. Aga teate, mis ma olen teinud. Sel hetkel lugu, mul on vormis. See ju unikaalne ID nimega demo. Alla siia, mul on script tag mis täidab järgmine kood. See kinnitub, et sõlm puu on On Esita vara see funktsioon siin. Ja just olemuselt kuidas brauserid töötavad, kui ma nüüd nuppu Saada või vajutage Enter, et funktsioon ei hakka kutsutud. See ei vaja nime, sest kes kuradit huvitab, mida see nn. Ainus kord, kui ta on kunagi hakka kutsunud on, kui ma saatke vorm. Ei ole vaja minu jaoks, inimese arendaja, tegelikult nimetada seda kusagil mujal. Nüüd nagu teaser, sest kui see ei pahanda painutamine piisavalt, saame isegi teha seda Vaata rohkem segasena kasutades super populaarne raamatukogu kutsus jQuery. Tegelikult jQuery ja JavaScript Sageli conflated. Ja mida me teeme kolmapäeval on start kasutavad seda keelt ja neid raamatukogud ehitada üha asünkroonse ja dünaamilisi rakendusi nagu kaardi saamine rakendused, rakenduste et uuendada veebilehe reaalne ajal palju nagu Facebook või Gchati teha ja mitte enam piirduda seintele esitama get või lihtsalt postitus üksi. Nii et ma näen sind kolmapäeval. [Muusika mängimine]