DAVID Malan: Gerai. Tai CS50, ir tai yra devynių savaitės pabaigoje. Tai buvo audra per per pastaruosius keletą dienų. Ir problema septynis, jei esate kelio giliai į jį, suvokti, yra gana tiek nauja tai ten. Bet pažiūrėkime, jei mes negalime gabalas viskas kartu čia trumpai iki to Posūkis išjungti dar kitą pusę ir mato kur dar galime eiti. Taigi, iki šiol mes kalbėjome apie HTML. Mes kalbėjome apie CSS. Mes kalbėjome apie PHP. Jūs pradėjote patirti SQL. Šiandien mes kalbame šiek tiek apie JavaScript. Bet kaip visi šie skirtingi kalbos dera tarpusavyje? Taigi mes kalbėjome praeitą savaitę apie sąvoka turėti serverį. Taigi galime tiesiog atkreipti šį stačiakampį kaip žiniatinklio serveryje čia. Ir web serveris tarnauja tikrai failus. Ir kai kurie iš šių failų gali būti HTML failus. Taigi vienas iš dalykų, kad interneto serveris gali išspjauti gali būti failas, mes tiesiog atkreipti, kaip tai , kurių sudėtyje yra tam tikras HTML. Taigi profanas sąlygomis, kas ar HTML jums daryti? PUBLIKA: Puslapis atrodo gražiai. DAVID Malan: Gerai, kad puslapis atrodytų gražiai, nors manau, kad aš įrodyta kad kitaip. Taigi, HTML ar jums išdėstyti puslapius struktūriškai, ir tai leidžia tarsi estetiškai antkainis puslapį, antkainis statinį turinį, kad jūs tada galite jį peržiūrėti su interneto naršykle. Bet tai raktas. Tai statinis turinys. Jūs rašote jį, jį įrašote, ir tada laivas jį. Ir interneto serverio, tada tarnauja ji iki jūsų lankytojams. Bet mes Stilizuoti dalykus per skirtinga kalba apskritai. Mes pradėjome naudoti stiliaus atributas dėl tam tikrų žymes. Ir stiliaus atributas mums nustatyti dalykų, pavyzdžiui, šrifto dydžio ir spalvos. Ir jūs tikriausiai pradėjo atrasti, ar jūs netrukus už galutinį projektai potencialiai dar kita savybės, kurias galite naudoti CSS. Ir taip profanas sąlygomis, kas tikrai gi atlikti CSS? Tai yra tik jų pavyzdžiai. Ką tai jums padaryti, kad HTML neatrodo, kad nuo to, ką mes matėme iki šiol? Auditorija: Apibrėžti stilių patys. DAVID Malan: Apibrėžti stilius patys. Taigi nustatyti tokius dalykus kaip klases, kaip jūs gali būti susidurta, arba unikaliai nustatyti mazgų dokumente taip kad galite Stilizuoti juos. Bet konkrečiai, aš sakyčiau, kad CSS tikrai galite imtis ko paskutinės mylios ir leidžia jums nurodyti, kiek tiksliau estetika, o HTML didžioji dalis leidžia jums sukurti savo puslapius. Ir nors yra keletas nutylėjimą, kaip matėme, kad tegus pozicijoje žymeles, kurios Apytiksliai padarė ką didelis ir drąsus. Tai gana bendra apibrėžtis TAG - didelis ir drąsus. Kas šrifto dydis yra? Kokios spalvos yra? Kaip paryškinti tai? Ir CSS leidžia jums labiau smulkiai tune dalykų, pavyzdžiui, kad. Taip pat išdėstymas, nes kai iš jūsų matė. Ir tiesą sakant, CSS yra šiek tiek iš nepatogus kalba. Tai labai galingas, kad jūs galite padaryti tiesiog bet kokios svetainės, kad jūs mačiau internete šiandien su juo, bet tai tipo sprando skausmo. Ir kai kurie iš jūsų susitrenkiau galvą prieš sienų jau tiesiog daryti kažkas kvailas, kaip centre meniu problema septynis, jei jūs Dotarłeś į kad vieta jau. Bet suprasti, tuos dalykus, gauti lengviau laikui bėgant. Jūs pradėsite pastebėti modelius. Ir vėl, "Google" bus jūsų draugas už įvairių būdų, kuriais galite išspręsti šias problemas rūšių. Ir drįstu pasakyti su CSS ir HTML daugiau Apskritai, jūs galite išspręsti problemas, daug daugiau būdų, kurie visi galėtų labai gerai būti teisinga, nei galėtumėte kažką panašaus į C, net dabar PHP arba JavaScript. Yra tik daug įvairių būdų nustatyti dalykus. Bet tai pradėjau gauti nepatogus, mes pasakėme. Tiesiog rūšies susimaišė savo HTML ir jūsų CSS su stiliaus atributas buvo šiek tiek prastesnis. Ir taip mes vietoj sakė, tarsi abstrakčiai kalbant, kad jums reikia bent pradėti veiksnys iš savo CSS tikriausiai. Ne tavo stiliaus atributus, bet bent jau naudoti stiliaus tegus viduje kas dalis interneto puslapyje? PUBLIKA: vadovas. DAVID Malan: į galvą. Iki šiol, mes turėjo tik titulą iki ten, bet jūs taip pat galite pridėti stilių pažymėti, ir jūs galite įdėti savo CSS maždaug kalbant į puslapio viršuje. Bet tada mes priėmėme dalykų dar vieną žingsnį ir mes atsižvelgti, kad daugiau į atskirą failą. Ir todėl šie du failai buvo kažkaip dabar susiję. Ir iš tiesų tai buvo žyma, kad tai padarė. Ir kas buvo vienas iš visuotinių motyvacija faktoringo mūsų CSS visi daugiau? PUBLIKA: pakartotinis naudojimas. DAVID Malan: pakartotinis naudojimas. Teisė? Galite matėme p septynis jau kad puslapių daug, pirkimo puslapis, pardavimo puslapis, portfelis puslapis, tikriausiai struktūra šiek tiek panašiai. Yra CS50 finansai logo viršuje nebent jūs nusprendėte jį pakeisti. Yra ne apačia šio puslapio apačioje. Ir CSS leidžia tada veiksnys jį tai į atskirą failą, kad jei norite ką nors pakeisti pasaulyje per visą savo svetainę, jums tikrai gali tiesiog pakeisti jį vienoje vietoje. Bet yra kaina, kurią mokate potencialiai Iki turintys sudauginti iš CSS iš savo HTML failą į atskiras pateikti nuorodos į ją žyma, kurioje matėme pirmadienį. Kas gali būti neigiama tai? Mintys atgal prieš savaitę, kada mes kalbame apie HTTP ir TCP / IP ir kaip Internetas veikia. Kažkas čia? Auditorija: Tai užtrunka daugiau laiko. Davidas Malan: Tai užtrunka daugiau laiko. Kodėl? Auditorija: [nesigirdi]. Davidas Malan: Taip. Taigi neabejotinai užima šiek tiek daugiau laiko. Kadangi vienas, CSS yra akivaizdžiai ne tame pačiame faile. Taigi, dabar jūs turite padaryti ne vienas, bet du prašymai. Ir kiekvieną iš šių prašymų, kaip matėme Chrome vadinamosios inspektorius, ir mes pažvelgė į tinklo kortelę, kiekvienas iš šių failų reikia vienos HTTP prašymas, kurį mes matėme trunka kai laiko suma. Dabar, gal tai nėra daug. Gal tai tik 20 milisekundžių. Gal tai 200 milisekundžių. Bet pagalvokite apie kaip "Facebook" puslapyje, arba CNN arba "Google", kuris yra daug didesnis nei pavyzdžių mes pažvelgė į iki šiol. Šie puslapiai gali turėti daugybę failų, kiekvienas iš kurių gali prireikti Parsisiųsti failą. Taigi, kas gali potencialiai pradeda lėtėti. Ir ypač šiais laikais, kai mes visi turi mobiliuosius telefonus, mūsų kišenės ir lėčiau interneto ryšį, atsižvelgiant į Palaukite keletą milisekundžių, mažai daugiau milisekundžių už papildomą bylos iš tikrųjų gali būti lėtas. Latency yra žodis, kuris apibūdina rūšies laukia, kad jūs turite, kad jūs patirtį, kai laukia kai informacija gabalas. Bet yra aukštyn kojom. Taigi, tai ne visi rūšiuoti - ji iš tikrųjų yra iš permainingai čia truputį. Smukimo dabar, bet kas naršyklės gali padaryti jei esate protingas, kad būtų išvengta nereikalaudami tą patį styles.css byla vėl gali būti ką daryti? Cache jį. Taigi spartinimo - C-C-H-e - paprastai reiškia čia tik sutaupyti failo, kurį prašoma pirmą kartą, ir tada patikrinkite talpyklą už jį. Patikrinkite, ar esate tarsi saugojimo konteineris, ir jei jau turite kopija styles.css, net jeigu kai kurios kitos puslapyje p-rinkinys, ar svetainėje, prašo jį dar kartą, tiesiog duoti vartotojas tą pačią talpyklą kopija. Nesivargink prašydama jį. Neigiama ten, nors, kaip kai kurie iš jūsų turi užkliūti į p-rinkinys. Jei kažką pakeisti serveryje ir jums grįžti į naršyklę ir jūs paleisti, kartais naršyklė nėra jūs už ir nesivargina iš naujo atsisiųsti savo styles.css failą nes, nagi, kokie šansai kad šie stiliai kad "Facebook" naudoja ketina keisti kas valandą arba kiekvieną dieną? Tai gana mažas. Jie gali keistis laikui bėgant, bet ne kas minutę ar valandą. Taigi triukas, tiesiog FYI, kai darai internete plėtra, dažnai laikykite nuspaudę Perjungimas pavyzdžiui tada spustelėkite perkrauti savo naršyklę, ir kad bus paprastai pasakyti naršyklės Perkrauti viskas, net jei jūs jau turite tai į talpyklą. Taigi dar kartą, ilguoju ir praradimas, tačiau visi jie galiausiai dizaino sprendimus. Taigi dabar mes ne tik baigti pasakojimą čia. Jei aš dabar grįžti atgal ir pirmyn ir atgal ir atgal, mes pradėjome taikyti ne tik HTML, bet PHP. Taigi profanas sąlygomis, kas nėra PHP darykime? Auditorija: [nesigirdi]. Davidas Malan: Kas tai? Auditorija: Įvesti logika į kodą. Davidas Malan: Taip, pristatyti Logika į savo kodą. Taigi tai tiesa programavimo kalba su vyriais ir kintamieji, ir funkcijas ir sąlygas, ir visi tai, ką mes jau naudojate kelią atgal kai nuo nulio. Ir PHP, mes matėme, gali būti naudojamas arba į komandų eilutę - tai neturi ką veikti su internete, nors tai tikrai ištakos ir ką jis linkęs būtų gerai ir palanki - , bet jūs galite naudoti PHP vien gamta į tai, kad ji turi print () funkcijos ir printf () funkcija, ar echo () funkcija. Yra kekių būdų, galima spausdinti tekstą su PHP. Todėl, jūs galite naudoti šią programavimas kalba išvesti tiksliai ką mes kalbame apie anksčiau. Jūs galite dinamiškai generuoti HTML. Gal ir ne visa tai. Gal kietieji kodas dalykų, pavyzdžiui, antraštės ir poraštės ir logotipas ir savo stiliui ir visa tai. Bet kažkas panašaus į p-rinkinys septynių, kur jūs manipuliuoti išteklius ir rodyti vartotojo portfelį, kuris vyksta dinamiškai keisti, galite tikrai naudoti PHP ir logika, tai suteikia jus kaip programavimo kalbą išvesties dinamiškai pogrupių Į puslapio. Taigi, kai jūs kalbate apie dinamišką svetaines, arba Web programavimas, tai Ką jūs iš tikrųjų kalbame apie. Naudojant kaip PHP kalbą, ar dalykų vadinamas Python ar Ruby, arba "Java", arba dar kitas kalbas, į užklausą duomenų bazę dažnai ar kitą serverį, ir tada dinamiškai išspjauti HTML. Dabar galutinis rezultatas, kaip panaikinti, yra kad dauguma interneto svetainių, HTML, įskaitant jūsų p-rinkinys septynių, tikriausiai bus didžiulė netvarka, jei pažvelgti į šaltinio kodas naršyklėje. Tai nėra baisi. Šiuo metu, kai mums rūpi stilius, mums rūpi Daiktai, kad rašote. Mes nerūpi stuff kad tai, ką jūsų kodas išėjimai. Taigi nesijaudinkite įdubimas Čia jei tai PHP tai faktiškai išvedė stuff. Galų gale, naršyklė nerūpi, ir žmogaus nebus ieškote prie šaltinio vistiek. Mes personalas, pavyzdžiui, būtų būti žiūri į jūsų PHP. Taigi, leiskite man duoti trumpą pavyzdį dabar kodėl kitur tai gali būti naudinga. Taigi, tiesą sakant, aš negaliu prisiminti paskutinį kartą aš naudojamas C išspręsti problemą realus pasaulis. Tai tikriausiai buvo aukštosios mokyklos, kai Man reikia naudoti kalbą, kuri buvo gana žemo lygio ir man galimybė padaryti kažką labai aukšto atlikti tikrai sutaupyti daug procesoriaus ciklai, kaip galėjau, didele dalimi nes aš naudoju didelius duomenų rinkinius, ir kiekvieną procesoriaus ciklas skaičiuojamas. Ir tiesą sakant, net ir tokius dalykus kaip telefonai šių dienų, ir kiti prietaisai jei jūs neturite pakankamai turėti kiek atminties ir jūs neturite pakankamai turėti kuo daug CPU, trumpo kalbas vis dar patraukli. Tačiau realiame pasaulyje, kai jūs tiesiog norite mesti šiek programą kartu su analizuoti tam tikrus duomenis, arba jūs surinkti Visa krūva registracijų už kai studentas grupė ir norite labai greitai automatizuoti siųsti laiškus po vieną į kiekvieną iš tų vieno registruotojai, jūs ketinate pasiekti, aukštesnio lygio kalba nei C, taip sakant. Kažkas panašaus PHP Python ar Ruby, arba puse tuzino kitų, kad egzistuoja šių dienų. Bet tie trys yra tikriausiai madinga dabar. Ir ką tai reiškia, kad galite atidaryti iki teksto redaktoriumi, pavyzdžiui, gedit arba labiausiai kas nors kitas, ir tada tiesiog pradėti rašyti kodą be nerimauti apie kompiliavimo, nereikia tikrai nerimauti atminties valdymas, turint omenyje, nors, kad mažai Niechlujstwo galų gale grįžti įkąsti, jei duomenų rinkinys gauna didesnis ar problema pasireiškia didelis. Bet ką tai reiškia mums yra taip. Leiskite man eiti į priekį ir paleisti Speller iš problema nustatyti šešių. Taigi tai yra mano trie pagrįstas įgyvendinimo kad aš naudojamas didelis lenta, kur atlikau ne taip gerai. Mes grįžti savaitę laiko ir peržiūrėti tiems, kurie nebuvo baigti viršuje didelis lenta mūsų paskutinio paskaita. Bet dabar, leiskite man eiti į priekį ir tik paleisti savo sprendimą, tekstą, ir mes padarysime King James Biblija, ir čia mes einame. Taigi tie, kurie visus tariamai žodžiai su rašybos klaidomis iš King James Biblija. Ir mano imtos pusę viso sekundę. Taigi ne per blogai apie tai pirma kompiuteris. Bet pagalvokite, kiek kodas turėjau parašyti. Pagalvokite, kiek kodas jums teko rašyti. Pagalvokite, kiek valandų jūs praleido D-salė ar jūsų bendrabučio ar kur faktiškai kodavimo sukurti tą sprendimą. Na, jei aš iš tikrųjų turi aukštesnio lygio kalba kaip PHP, atkreipti dėmesį į ką aš galiu padaryti čia. Pirma, manau, kad tai yra vietoj Jūsų platinimo kodas. Šis failas yra vadinamas Speller. Ji yra kaip šiandien platinimo kodas. Ir aš ruošiuosi bangos ranką ne daugiau detales, bet iš tikrųjų tai yra įdomus pavyzdys, kaip galbūt uostas kalbą kaip C per PHP. Aš tiesiog atidarė du tekstinius langus, vienas su mano C versija speller.c, ir aš ką tik pradėjo versti jį į savo galvą į PHP ir įrašyti ją naudojant artimiausi lygiavertes funkcijas. Taigi, kai kurie iš šių dalykų yra skirtingi. Mes matėme paskutinį kartą, kad PHP nenaudoja yra gana vienodai. Jis naudoja reikalauti paprastai, nors įtraukti egzistuoja. Apibrėžti yra šiek tiek skiriasi nuo # Define C, bet tai kaip mes darome konstantą. $ Argc Pasirodo egzistuoja PHP programavimo kalba, taip, mes matėme, kad prieš. Tai tik kintamieji, visi kurie prasideda su dolerio ženklais. Prisiminkite tai tik krūva kintamų taškų. Taigi, ilga istorija trumpa, kviečiame Jus vartyti tai jei įdomu, tai yra beveik linija-už-line konversija C portalo speller.c į PHP. Ir jūs galite tai padaryti dar kartą pustuzinis kitų kalbų. Bet įdomiausia yra tai. Ar kas atvirai tikėtasi tai. Leiskite man eiti į priekį ir įveskite apie dictionary.php, ir teiginys, kad aš ruošiuosi eiti į priekį ir iš naujo įgyvendinti problema nustatyti šeši čia. Taigi, tegul pirma pasiūlyti, kad šis failą, kuris bus įgyvendinamas PHP, todėl leiskite man atidaryti savo žymas, pavyzdžiui, kad. Leiskite man duoti save pasaulio kintamasis, $ dydis tampa lygus nuliui. Ir aš norėčiau duoti pats maišos lentelė. Aš naudoti maišos lentelę šio dalyko. Kaip paskelbti maišos lentelę PHP? Atlikta. Gerai. Taigi skliaustai atidaromi skliaustai uždaromi atstovauja kas PHP programavimo kalba, kaip mes matėme? Masyvas, bet matrica, galėtų būti masyvą. Asociatyvus masyvas duomenų struktūra, susieja raktus vertybes. Dabar paprasčiausias programinio indeksuojami masyvas, šie raktai yra tai, ką? Nulis, vienas, du, trys, tiesa? Old school stuff atgal nuo C. Bet ji negali taip pat būti simbolių eilutės, pavyzdžiui, foo, ir bare, arba Maxwell, ar toks eilutę. Taigi aš galiu išnaudoti, kad vos akimirką. Leiskite man eiti į priekį ir paskelbti kaip funkcija - darykime apkrovą () pirmasis. Taigi funkcija apkrova (). Ir PHP yra šiek tiek skiriasi tuo, kad jūs tiesiog įvesti funkciją, bet jūs ne tipo grąžinimo tipą. Aš ruošiuosi eiti į priekį ir pasakyti, kad apkrova () funkcija turėtų imtis argumentas $ žodynas, tiesiog kaip C redakcijoje. Aš darau, kad iš atminties. Ir aš siūlau, kad aš ketina tai padaryti. Aš tiesiog ketina daryti foreach. Aš ruošiuosi skambinti funkcija vadinama file (), einančios į to pavadinimo failą, kuris yra kintantis $ Žodynas kaip $ žodį. Ir tada viduje mano už linijos čia, aš ruošiuosi eiti į priekį ir laikyti savo $ Stalo, kad $ žodis tampa tiesa. Atlikta. Oi, palauk. Atlikta. Gerai. Tai yra apkrova () funkcija pasakyti, PHP. Dabar, kodėl tai veikia? Ir aš tipo cheating čia. Taigi, vienas, foreach matėme trumpai paskutinį kartą. Tai tiesiog reiškia, kad jūs galite pakartoti per be grisus su i masyvas ir n ir plius plius ir visa tai. Žodynas yra žinoma failo pavadinimas, kažkas panašaus didelė ar maža, du žodynai mes naudojamas paskutinį kartą. Failas yra funkcija, kuri atveria tekstą failą, jį perskaito pagal kiekvieną eilutę, ir rankos jums atgal didžiulis masyvas, kiekvienas iš kurių elementų linija nuo šios bylos. Štai iš fopen derinys, ir fread, ir nors kilpa, ir fclose, ir visa tai. Galiausiai, kaip žodis reiškia tiesiog tai kintamasis aš turėti prieigą prie kiekviename iteracijos šioje kilpą. Taigi trumpai tariant, tai vienas linijinės čia reiškia atverti failą, kurio vardas yra žodynas, kintamasis, pakartoti per ji pagal kiekvieną eilutę, kiekvieną kartą jums linija, parduotuvė kintamasis vadinamas žodžiu, ir tada kažką daryti su žodžiu. Ką norite daryti? Noriu įdėti žodį į mano maišos lentelėje. Na, aš galiu įdėti kažką savo maišos lentelę kaip C naudojant skliaustus. Tai mano maišos lentelės pavadinimas. Aš ruošiuosi į indeksą į šį maišos stalo šioje vietoje. Taigi, ne BRACKET nulį, o ne BRACKET vieną. Laikiklis citata citatos kažkas, ką tai žodis. Ir kaip jūs galite turėti savo maišos lentelės darbas trie, jūs tiesiog parduotuvė efektyviai Bulio netiesiogiai arba aiškiai. Atlikta. Aš saugoti vertė tiesa. Dabar yra pora dalykų Aš pjovimo kampų čia. Techniškai, ten bus erzina nauja eilutė, / n, pabaigoje kiekvieno iš šių žodžių. Taigi, aš tikriausiai turėtų skambinti PHP funkcija vadinama pjaustyti (), kuri bus gana pažodžiui pjaustyti, kad ne. Ir aš iš tikrųjų reikia padaryti vieną kitą dalyką. Aš tikriausiai turėtų prieaugio dydį kiekvienas iteracija, todėl aš nuolat stebėti visame pasaulyje, kas ji yra. Ir tiesą sakant, ir tai yra vienas iš stupider aspektai PHP, jei esate naudojant pasaulinį kintamąjį, reikia aiškiai pasakyti, kad esate. Taigi, aš ruošiuosi iš tikrųjų įvesti pasaulio $ Dydis, pasaulio $ stalo, o dabar Mano užduotis yra baigta. Taigi ne visai taip paprasta, kaip ir anksčiau, bet tikriausiai paėmė mažiau laiko nei C versija, gal? Gerai. Taigi dabar galime daryti patikrinimą () funkciją. Leiskite pamatyti, jei tai bent paėmė valandos pabaigos, kad ji paėmė mus C. Taigi leiskite man eiti į priekį ir paskelbti patikrinti kaip funkcija. Trunka argumentas žodžio, kuris yra ketina iš Speller. Ir aš tik ketina patikrinti, ar šis rodiklis isset, stalo laikiklis strtolower žodžio - tegul subalansuoti visi mano skliausteliuose - tada grąžina true. Kita - tai buvo tikrai sunku šios programos dalis. Kita, return false. Atlikta. Štai patikrinimas (). Dabar, kodėl tai veikia? Na, vienas aš išlaikė žodį, kuris yra eilutė. Du, aš patikrinti viduje maišos stalo, kas vadinama $ stalo. Aš verčia jį mažosiomis telefonu funkcija gana panašus tolower () in C, bet tai nereiškia, kad visą žodį, ne vienas simbolis. Ir jei tai yra nustatyta, kitaip tariant, yra vertė, nustatyta, kitaip tariant, jei tai tiesa, tada taip, tai žodis. Nes aš jį ten su apkrova (). O jei ne, aš ruošiuosi grįžti klaidinga. Dabar kiti yra lengva. Funkcija dydis (), kaip man tai padaryti? Aš iš esmės padaryti grįžti $ dydžio. Bet aš techniškai reikia padaryti šią erzina dalykas. Ir iš tikrųjų iki išgirsti, buvau pjovimo vienas kampas per daug. Aš tikrai reikia padaryti pasaulinį $ lentelę. Bet tai, kas pasakyta, iškrauti). Iškrauti () yra nuostabi. Funkcija iškrovimo (). Kaip aš noriu įgyvendinti iškrauti ()? Atlikta. Gerai. Taigi iškrauti (), atminties valdymas visiškai pasirūpinta už jus kažkas panašaus į PHP ir daug iš aukštesnio lygio kalbų. Taigi tai yra nuostabu. Kaip, kodėl po velnių mes praleido praeitį Aštuoni plius savaičių trukmės C raštu matyt tikrai lėtai, tikrai laikas suvartojantys problemų su dešimtimis valandų darbo pagal mūsų diržų? Na, vienas dalykas, tai gali dirbti gerai jau mažoms programoms. Tai tikrai pagreitino mano kūrimo laikas. Bet pažiūrėkime, kas vyksta realiame pasaulyje. Leiskite man eiti į šį katalogą terminalo lange. Yra Speller. Ir pastebėsite, kaip panaikinti, ir galbūt susidūrė su tai problema nustatyti šešių ar problema septynis. Jūs neturite griežtai turi galų PHP failus su. php. Jeigu jūs įtraukėte liniją, pavyzdžiui, kad pirmasis įvertinimas pačiame viršuje, tai specialios linijos sintaksė, kad iš esmės reiškia rasti Programa vadinama PHP ir naudoti jį interpretuoti šį failą. Taigi dabar niekas iš tikrųjų nežino, kad Bėgu PHP programą. Galiu paleisti jį kaip nors buvo kažkas rengiami C. Bet čia dalykas. Tiesą sakant, galime tai padaryti ir vėl. Dropbox/pset6 /. Yra Speller. Gerai, 0,44 sek. Jis gavo greičiau šį kartą. Dabar eikime į PHP versiją. Malonus liesti. Bet tik pagalvokite, kiek daug laiko Įrašiau ne darbo valandomis. Gerai. Taigi, 3,59 sekundės, o iš tikrųjų neatrodo tiksli arba. Bet tai todėl, kad ilga istorija trumpa, kai jūs spausdinate iš didžiulis stuff ekrane, kad pati lėtina dalykų žemyn. Kas iš tikrųjų paėmė centrinį procesorių prietaisas buvo 3,59 sekundės, į kontrastas C, kuris buvo 0,44 sekundžių neseniai. Tai tikrai Nutarimas dydis skiriasi. Taigi, kur yra, kad kaina iš? Kodėl taip yra daug lėtesnis? Kodėl PHP atlikti taip prastai? Danielle? Auditorija: Jūs nelabai naudoti maišos lentelę. DAVID Malan: aš tikrai ne naudoti maišos lentelę. Taigi aš tipo padarė. Todėl masyvą. Greičiausiai, jei ne PHP žmonės tikrai protingas, jie naudojami po dangtis tikrasis maišos lentelė įgyvendinti kažką panašaus į C arba C + +. Tačiau. Taip. PUBLIKA: [nesigirdi]. DAVID Malan: Taip. Taigi, kiekvienas iš funkcijų parašiau dabar - Tiesą sakant, galite pasakyti, kad dar kartą tiek garsiau? PUBLIKA: Kiekvienas iš funkcijų, kurios jūs įtraukti turi daug daugiau visą talpa ne - DAVID Malan: Taigi, kad labai tiesa. Yra daug daugiau pridėtinių, kad mes nelabai matau, sutelkiant dėmesį tik į dictionary.php, o aš tik parašė. Priešingai, ten visa vertėjas vyksta fone. Iš tiesų, kai išbėgau šią programą, ji nebuvo veikia apibendrina nulių ir skirta mano Intel CPU. Greičiau, jis buvo rodomi pagal kiekvieną eilutę PHP kodas, kuris atrodo lygiai kaip mes jį įvedėte. Ir todėl, kai jūs naudojate aiškinama kalba, jums iš tikrųjų sumokėti šią kainą. Ji ketina imtis šiek tiek laiko skaityti Jūsų failas iš viršaus į apačią, iš kairės į Gerai, o tada atlikti kiekvienas linija vėl ir vėl. Dabar iš tikrųjų, ypač internete, jūs iš tikrųjų galite paspartinti šį procesą spartinimo apie rezultatus PHP kodas yra aiškinama. Ir tai prasminga internete, nes jei turite ne vienas vartotojas, pavyzdžiui, man čia, bet 1000 arba 10.000 vartotojų, tada gal pirmą kartą byla atvertas tai lėtas, tačiau vėliau tai daug greičiau. Bet tai taip pat, vėlgi, yra kompromisas. Ir kažką panašaus tyrimo duomenų nustatyti, ar net kažką didelis kaip tai, vartotojai ilgainiui pradeda jausti, kad sulėtėjimo. Taigi, trumpai tariant, aiškinama kalbos labai madingas, labai populiarus, ir atvirai turbūt kalbas turėtų pasiekti, kai sprendžiant problemas po CS50. Bet suprasti, kiek daug jūs tikrai atsižvelgiant į suteiktas po gaubtu tikrai tie pastaruosius keletą savaičių maišos stalai, ir medžiai, ir stengiasi, kurie naudojami galiausiai iš tikrųjų įgyvendinti tokius dalykus kaip atviros laikiklio, kvadratas laikiklis, kurį dabar galime Dėkojame laiko savaime suprantamu dalyku. Taigi galime pažvelgti dabar Šioje interneto kontekste. Ir jau minėjau praeitą kartą, kad yra iš superglobals krūva PHP, kad tikrai ne aktualus į komandų eilutę. Jie svarbesnis kontekste Naudojant PHP interneto kontekste. Taigi veikia PHP žiniatinklio serveryje, siekiant kurti stuff like HTML. Ir mes pažvelgė į $ _GET ir $ _POST, ir tai kur automatiškai naudotojų įvesties baigiasi tiesiog jei jūs pateikiate suformuoti į failą, kuris baigiasi. Php dėl interneto serverio kaip prietaiso. Bet pažvelkime trumpai $ _COOKIE Ir $ _SESSION. Į profanas sąlygomis, kas yra slapukas, kaip jums suprasti jį kontekste naudojant interneto? PUBLIKA: Failų kompiuteryje. DAVID Malan: Taip. Tai į vartotojo kompiuterį failą pasodinti kokia tinklapyje atsitiktų aplankyti. Taigi, kai jūs einate į "Facebook", kai jūs einate į bankofamerica.com, kai jūs einate į google.com, kai jūs einate į beveik bet interneto pasaulyje šių dienų, įskaitant cs50.net, slapukas pasodinti kompiuteryje, kuris yra arba vertė saugomi RAM savo kompiuteris naršyklės atmintyje arba kartais tikrai failas saugomas kietajame diske. Ir tai, kas paprastai saugomi tame faile nėra jūsų vartotojo vardas, o ne savo slaptažodis, paprastai nėra kažkas jautrus, nebent svetainė yra ne taip gerai su jų saugumu, o tai yra didelis unikalus identifikatorius tarp kitų dalykų. Tai didelis atsitiktinis skaičius pasodinti savo kompiuteris, bet jūs galite galvoti, kaip tarsi virtualus ranka spaudas, kaip iš klubas, arba kai atrakcionų parkas, kuris leidžia darbuotojams, tos savininkai paslaugos, prisiminti, kas jūs esate. Taigi, jei didelis atsitiktinių skaičių yra tarsi 12345678, nors tai akivaizdžiai ne per daug atsitiktinių, manau, kad rankų antspaudas, kad kai Jūs lankotės facebook.com pirmą kartą, jie antspauduoja šį numerį savo ranka. Ir tada, nes jūs kalbate HTTP, jūs yra naršyklė, o dėl "Facebook" akivaizdžiai kalba pats kaip web serverio protokolas HTTP sako, kad bet kada vėliau lankotės facebook.com, ar tai antrasis vėliau, po valandos, net kitą dieną, taip ilgai, kaip jūs neturite aiškiai atsijungę, kuris efektyviai yra kaip plauti rankas. HTTP sako turėtumėte pateikti savo rankų antspaudas kaskart grįžti į tą svetainę. Ką "Facebook" gi yra jie pažvelgti į tą rankų antspaudu ir jie sako, oi, 123456789. Aš nežinau, iš pirmo žvilgsnio, kad tai David Malan Kembridže, Masačusetsas, tačiau jie gali patikrinti jų duomenų bazė ir sako, oi, asmuo kurio kompiuterio mes pasodinti 123456789 David Malan iš Kembridžo, Masačusetsas. Parodykime, kad vartotojas tada jo aprašymą puslapis ar jo Naujienų. Bet yra problema čia, jei šis kaip interneto tiesų veikia. Leiskite pažvelgti greitai pavyzdžiui išvaizdą. Leiskite tikrųjų eiti pasakyti facebook.com. Bet kol mes galime eiti ten, leiskite man eiti į priekį ir atverti Chrome " Inspektorius čia. Leiskite pažvelgti į tinklo kortelę. O dabar eikime į priekį ir įveskite į https://facebook.com. Ir aš darau, kad taip, kad mes nematome visų šių nukreipimų ir atliekų laiko ieško per juos. Leiskite paspauskite Enter. Gerai. Mes matome visa krūva prašymų. Ateina "Facebook". Yra visa krūva failų. Ir čia, už mano paminėti Latency paskutinį kartą, tai HTTP prašymus daug. Bet pirmasis tikriausiai įdomiausia. Taigi leiskite pereikite čia, ir Aš padidinti per sekundę. Tai ketina būti natūra netvarka, bet pažiūrėkime. "Facebook" siunčia mums visa krūva daiktų. Bet Whoa, įdomu. Jie sodinti ne vienas, bet keturi rankų antspaudus ant mano rankos čia. Set-Cookie, Set-Cookie, set-cookie, set-cookie. Ir yra keletas funkcijų čia. Visi jie paminėti keletą rūšies pabaigos. Ir atrodo, kad "Facebook" tikisi, prisiminti mane iki 2015 metų. Štai matyt laiką, per kurį Turiu išsiregistruoti ar jie bus tik automatiškai daryti prielaidą, aš negrįžta. Taigi, tai tikrai geras daug laiko. Ir keletas kitų viskas čia vyksta. Šis Slapukas atrodo prievarta ištrinti sakydamas, kad tai baigėsi 1970 prieš slapukus egzistavo. Taigi, naršyklė tiesiog vyksta prisiimti Gerai, kaip plauti rankas antspaudu. Bet dabar, kai mano naršyklė leidžia vėlesnis prašymas - leiskite man eiti į priekį ir tai padaryti vėl ir vėl. Dabar leiskite man pereiti į viršų prašymą ir eiti žemyn čia prašyti antraštes. Pastebėti tai. Taigi, dabar aš pagal ne atsako antraščių, bet pastebėsite, kad jis sako užklausos antraštes. Ir pastebėsite, kad mano naršyklė dalis savo prašymą po to pradeda reload turi išsiunčiamas likus mažiausiai po informacija. Nenustatyta-slapukas, bet slapukas. Taigi tai yra linija, HTTP, kad sakant, jei mano naršyklė yra tarsi nekeliant žinau, jog jis pateikdamas mano ranką "Facebook" patikrinimą. Taigi šie slapukai gali būti naudojamas tada už ką? Prisiminti, kas jūs esate, arba prisiminti, kaip daug kartų jūs buvote ten, ar tikrai nieko. Taigi čia yra counter.php. Ir leiskite man padidintumėte šriftu. Ir kiekvieną kartą, kai aš iš naujo įkelkite šį puslapį, pranešimą tai prisiminti, kiek kartų Aš buvau ten. Na, kad ne visi, kad įspūdingas. Tegul tik uždaryti šią kortelę, o dabar grįžkime prie http://localhost/counter.php. O, tai įdomu. Jis vis dar prisiminė, net nors aš uždarytas skirtuką. Ir tiesą sakant, jei aš uždaryti naršyklę, jei įgyvendinami tinkamu būdu, aš vis dar gali prisiminti, kad šis naudotojas kas jis ar ji buvo pirmas kartas, ir tik vieną kartą aš einu į "Chrome" meniu, kuriame čia yra čia, ir eikite į Istorija ir spustelėkite Išvalyti naršymo duomenis, kaip kai kurie iš jūsų gali turėti Anksčiau, tik tada slapukus iš tikrųjų būti išbrauktas internete per plėtra. Taigi, jei mes einame - tegul uždaryti gedit čia. Ir jei mes eiti į šį failą. Leiskite man eiti į mūsų vhosts / localhost / visuomenės, ir leiskite man padaryti counter.php. Atkreipkite dėmesį, kad tai yra gana paprasta programa. Tai gana paprasta tinklapyje. Taigi failo viršų yra tik komentarai. Bet štai nauja linija, kad jūs gali mačiau jau p nustatytą septynių, session_start (). Tai PHP kodo eilutę, kad iš esmės pasakoja žiniatinklio serverį, padaryti įsitikinkite, kad antspaudas rankas ir padaryti Būtinai patikrinkite rankų antspaudus. Štai ir viskas, kad linija daro, ir tai ar visi šiame procese mums. Tada pastebėsite, aš ką tik gavo du filialai čia. Jeigu skaitiklis raktas viduje šis ypatingą pasaulinį kintamąjį vadinamą $ _SESSION Nustatytas - kitais žodžiais tariant, jei ten kai vertė yra - galime gauti jį ir saugoti jį į vietos kintamasis vadinamas $ skaitiklis. Kitur, tegul priskirti $ skaitiklis numatytoji vertė 0. Dabar čia yra vienas aspektas, PHP tai tiek palaiminimas ir prakeikimas. PHP yra šiek tiek prastesnis. Taigi, o C, kas būtų apimtis skaitiklis buvo arba čia arba čia? Tai buvo tik tiems garbanotas petnešos. Atspėk kas? PHP programavimo kalba, jis yra net ne iš tų, garbanotas petnešos, čia ir čia ir čia, ir čia, ir net žemiau. Taigi aš sakau, tai ta prasme, palaiminimas kad jūs neturite galvoti, kaip sunku, kaip mes padarėme savaites. Bet jis taip pat iš į, kad prakeikimas tiek , nesvarbu, kur jūs naudojate kintamojo PHP, bent jau kaip ši programa, tai visame pasaulyje prieinama geriau ar blogiau. Taigi jūs turite turėti omenyje, kad dabar Jūsų kintamieji negali būti neapibrėžtas. Galbūt apibrėžta juos kitur. Bet ką aš ketinu daryti galiausiai? Aš ruošiuosi laikyti viduje, kad visuotinis kintamos vertės skaitliukas klavi rezultatą daro skaitiklis plius 1. Taigi, tai tik aritmetika kad tai incrementation tos skaitiklis. Ir tai, kad aš laikyti, kad vertė vėl čia yra tai, kad iš esmės atnaujinti duomenų bazę prisiminti, kad vartotojas 123456789 buvo čia du kartus. Ir kai aš tai padaryti dar kartą, kai kitą kartą perkraukite puslapį, jis ketina patikrinti mano ranka antspaudas ir sako, oi, vartotojas 123456789 yra dabar čia buvo tris kartus. Ir taip, kas PHP ir panašios kalbos daro mums yra jie suprasti , kaip, kur ir už kiek saugoti vertybes ši speciali superglobal. Ir tai superglobal kitą kartą aš apsilankykite puslapyje yra tarsi stebuklingai prieš apgyvendinta, alsuoja vertybes, ten buvo paskutinį kartą lankėtės, ar tai buvo antras prieš savaitę prieš arba 2013 ir mes dabar kalbame apie 2015. PHP ir web serveris rūpintis iš visa tai už jus. PUBLIKA: [nesigirdi]. DAVID Malan: Kintamieji PHP yra iš esmės visada pasaulinė jei paskelbti juos viduje funkcijos, ir tada jie yra vietos, kad tik funkcija. Bet kadangi aš ne parašyta bet funkcijos, jie dabar efektyviai pasaulio per visą mano faile čia. Auditorija: Ar yra būdas jas vietos? DAVID Malan: Ar yra koks nors būdas padaryti jiems vietos? Tik vyniojimo juos į funkcijas. Kuris naujausią versiją PHP, tai galite padaryti su anoniminis funkcija. Bet daugiau, kad kontekstas JavaScript. Bet trumpas atsakymas yra ne. Ilgiau atsakymas yra "taip". Gražus. Geras viktorina klausimas. Gerai. Taigi, galiausiai, pati puslapis iš tikrųjų labai paprasta. Atkreipkite dėmesį, kad kai aš išeiti iš režimo PHP, prisiminti kad visa tai stuff žemyn Toliau yra tik ketina gauti iešmo iš žalio į naršyklę. Kuris yra gerai, nes aš noriu siųsti vartotojo keletas HTML, bet aš noriu dinamiškai atnaujina HTML. Ir dar vienas būdas galiu tai padaryti yra rūšiuoti labai greitai nukris atgal į PHP režimas, naudojimas skliaustai atidaromi klaustukas Lygybės ženklas, tada išėjimo vertė iš skaitiklis. Arba, jei tai atrodo šiek tiek paslaptingas, šis Lygybės ženklas iš tikrųjų yra tik keletas sintaksinis cukrus tai printf ($ skaitiklis). Bet tiesą sakant, tai tik šiek tiek negraži ir šiek tiek erzina tipo. Taigi PHP labai gražiai siūlo šią funkciją kur Jūs galite tiesiog pasakyti, kad daugiau glaustai tuo pačiu būdu. Taigi, kas vyksta po dangtis? Leiskite greitai pažvelgti į tinklo skirtukas čia counter.php. Ir leiskite man eiti į priekį ir pirmą kartą tegul išvalyti slapukus. Leiskite Išvalyti naršymo duomenis nuo laiko pradžia. Dabar grįžkime čia. Dabar galime iš naujo įkelkite puslapį. Ir aš vėl nuo nulio. Nes mano ranka antspaudas buvo išplauti, Aš dabar gauti naują slapuką. Iš tiesų, jei aš pažvelgti į tinklo skirtuko ir ieškoti atsakymo antraštes, skelbimo kad prietaisas siunčia man slapukas, kurio pavadinimas yra šiek tiek savavališkai, bet kokios pagrįstai, PHPSESSID. Ir tai siųsti man tai tikrai didelis atsitiktinis skaičius. Tai ne visai numeris. Tai ne visai šešioliktainis. Tai kai raidinę skaitmeninę eilutę natūra, bet matyt tai atsitiktinai. Ir tai yra ranka spaudas taip kalbėti, kad aš nuoroda į. Tuo tarpu, jei aš spustelėkite reload ir tada pažvelgti į šią antroje eilutėje mano sekundę prašymas, pranešimas, kad dabar mano prašymas antraštes įtraukti PHPSESSID lygu tai, nenustatytas-slapuką, bet tik slapukas. Ir tai mano naršyklės pristatymas Iš mano rankos antspaudą. Taigi dabar kaip erzina, o mes kalbame daugiau apie tai per savaitę arba tiek, bet Kokiu būdu tai padaryti jums pažeidžiami, "Facebook" paskyrą pažeidžiami, ir kiti tokie sudaro pažeidžiamas? PUBLIKA: Jei kas nors turi slapuką. DAVID Malan: Taip, jei kas nors turi slapuką. Aš turiu galvoje, tikrai, panašiai kaip kai kurie iš jūsų galėjo teisiamas kaip klubo ar atrakcionų parkas, jei bandysite ką nors kaip tai nukopijuoti antspaudą, nors atgal į kito asmens rankas, ir tada jis arba ji pristato jį kaip savo, jei ji iš tikrųjų tai atrodo identiški, 123456789, tada interneto serveris matyt tik ketina tikiuosi, kad tas vartotojas yra jums. Ir tai iš tiesų yra esminis grėsmė bet kuriuo metu galite naudoti slapukus nes jei kas nors tik apsimeta taip kalbėti slapuką, skaičiai, kas tai yra, bet išties kopijuodami ją , žiūrėdamas į savo kompiuterį ir yra kaip, Gerai. Dovydo Slapukas yra JJ3JIK ir tt, ir tada jie pakankamai protingas, kad žinotų kaip rūšiuoti rankiniu nusiunčia Slapukas iš naršyklės arba Programa jie rašo, jie galėtų visiškai prisijungti į svetainę kaip jūs. Tai nereiškia, kad sunku apsimesti kažkas, nebent mes peržiūrėti p-rinkinys du, kuris pristatė ką? PUBLIKA: Kriptografija. DAVID Malan: mažai tiek kriptografija. Paprasta kriptografija, bent jau Standartinė versija, bet kriptografija vis dėlto. mažiau. Taigi paaiškėja, jei užšifruoti visus šios antraštes, naudojant kažką, kad jūs dabar gali žinoti daugiau familiariai, kaip SSL, Secure Socket Layer arba https URL, tada visus šiuos dalykus mes jau žvelgdamas iš tikrųjų užšifruotas, tai reiškia, kad tai, kaip jūs negali perskaityti rankų antspaudu. Tik facebook.com galite, arba google.com, ar šiuo atveju, prietaisas gali skaityti rankinio antspaudą. Deja, nors ir vėl, tai yra pernelyg tinkama NSI stuff vėlai, net SSL yra trapus. Ir tai tikrai nereiškia, kad sunku net nulaužti, kad šifravimas. Ne tiek krekingo šifravimo, bet apgaulės naršyklė į iškodavimo duomenys anksti. Bet vėl, mes erzinti jus su, kad prieš ilgas. Nes dabar, tiesiog bijo. Tai tragiškai tipo tiesa. Gerai. Taigi, kur tai dabar palieka mus? Na, galime tai padaryti. Eikime į priekį ir imtis greitai kibinimas kol mes atsipūsti. Ir manau, kad mes svyruos tiek ilgiau šiandien, bet mes ketiname pasinerti į kažkas visiškai nauja ir seksualus, kurie bus pustyti apetitas dar daugiau. Štai kibinimas. Taigi SQL, mes pradėjome kalbėti apie vis tiek trumpai paskutinį kartą. Jūs tikrai gauti savo rankas purvinas su kai jį p nustatytą septynių. Ir profanas sąlygomis, ką SQL - S-K-L - padaryti už jus? Kas tai yra? Taip. Auditorija: Leiskite jums prieigą duomenis. DAVID Malan: Taip. Tai tegul jums prieigą duomenys duomenų bazėje. Struktūrizuotų užklausų kalbą. Ir tai iš esmės programavimo kalba. Yra funkcijų, apie jį, kad mes net naudoti klasėje. Bet jūs galite efektyviai apibrėžti funkcijas. Jie vadinami saugomos procedūros SQL. Bet mes nuolat jį gana paprasta ir tiesiog jį naudoti kai kurių pagrindinių operacijų kaip pasirinkti duomenis, įvedant duomenis, atnaujinti duomenis, ir ištrinti duomenis. Ir jūs tikrai gali galvoti apie duomenų bazę, kaip SQL duomenų bazę, kaip tik yra "Microsoft Excel". Kadangi SQL remiasi reliacinės duomenų bazė, kurioje santykis tiesiog reiškia lenteles. Eilutės ir stulpeliai. Taigi, kas galite įdėti į skaičiuoklę kaip šis arba Google Docs, galite įdėti į SQL duomenų bazės deklaruojant lentelę. Dabar, kaip jūs iš tikrųjų pasiekti ši informacija? Na, su komandomis ar užklausų tai patinka. SELECT, INSERT, UPDATE ir DELETE. Ir didžioji dalis, jie yra Keturi vieninteliai ingredientai, jums reikia padaryti kažką labai galingai į problemą septynis. Dabar atgal per dieną, jūs iš tiesų bendrauti su duomenų baze juoda ir balta terminalo langą į mirksi greitai, kaip šis. Ir duomenų bazės mes veikia Prietaisas vadinamas MySQL, kuris yra nemokama ir atviro kodo duomenų bazės variklis. Jei "Google" ir skaityti Wikipedia straipsnis, jūs žinosite, kad vardas yra perėjimo tiek kai "Linux" versijas. Maria duomenų bazė yra iš tikrųjų sumokėti, kad kalbėti apie MySQL. Trumpai tariant, "Oracle" įsigijo MySQL. "Oracle" yra didelė kompanija. Žmonės buvo neramu, kad jis būtų nebegali likti visai kaip atviro kodo, todėl tai yra tik MySQL kopija tai vis dar laisvas, vis dar atviro kodo, ir įrengtas Fedora Linux pagal nutylėjimą. Bet tai yra natūra į skausmą kaklo susipažinti su duomenų bazė šiuo būdu. Taigi, mes įtraukti į CS50 prietaiso nemokama atviro kodo įrankis, vadinamas phpMyAdmin. Tiesiog sutapimas, kad jis parašytas PHP. Nėra pagrindinis reikia PHP čia. Bet tai tik internetinė priemonė, kuri mes nemokamai atsisiųsti, įdiegta prietaisas, kuris leidžia mums turėti grafinė vartotojo sąsaja, su kuria ištirti p-septynis duomenų bazę kurie sukurti naujas duomenų bazes, pasakyti savo galutinio projekto, jei norite patinka, ir galiausiai sukurti dinamišką svetaines, pavyzdžiui, CS50 Finansų kad galima užklausti duomenų ir duomenis dinamiškai atnaujinti. Jūs nesate ketinate naudoti tik paprastas tekstinis failas, arba CSV. Jūs iš tikrųjų galite naudoti intelektualiąją duomenų bazę programa, kad būtų galima įvykdyti daugiau sudėtingų užklausų ne tik skaityti per viską tiesiškai. Taigi, pavyzdžiui, tai, ką mes duodame Jūs iš už p nustatytą septynių dėžutę. Tai lentelė, kurioje, matyt, bent trys stulpeliai, iš kurių vienas yra vardas, iš kurių vienas yra maišos, ir kitą, kuri yra ID. Bet įdomus dalykas, ir tik erzinti vieną mintį čia, vardas , matyt, jau unikalus, tiesa? Aš turiu galvoje, bet dauguma interneto svetainėje, jei turite vardą, yra Negali būti dviejų Caesars. Negali būti du Malans. Negali būti du jharvards. Jo unikali. Priešingu atveju, jie nežino, kuris jharvard ji iš tikrųjų yra. Taigi, kas gali būti dėl to motyvacija atsižvelgdamas trečią stulpelį kairėje yra vadinamas ID, kuris atrodo kaip skaičius, kad yra panašiai unikalus? Jis jaučiasi truputį tampa nebereikalinga kad man iš pirmo žvilgsnio. Kodėl jis gali būti įdomus, kad ne tik unikalūs vardai, bet taip pat unikalūs numeriai? PUBLIKA: jie gali turėti pats slaptažodis. DAVID Malan: Žmonės gali turėti pats slaptažodis, tikrai. Tai galėtų visiškai atsitikti. Bet jeigu jie turi šią unikalią vardą, aš būtų teigti, kad tikrai ne klausimas, nes jei jie tipo savo vardas, man reikia tik patikrinti jų slaptažodis jų maišos jų. Kodėl dar? PUBLIKA: Greičiau paiešką. DAVID Malan: Greičiau paiešką. Kodėl? PUBLIKA: ID yra tik vienas. DAVID Malan: ID yra tik vienas simbolis, arba tiksliau, tai skaičius, todėl tikriausiai 32 bitų ar kažkas panašaus. Kadangi vartotojo vardą, matyt, Jason Hirschhorn anketa ten yra tarsi juokingai ilgas, ir jis ketina imtis man daug daugiau laiko eilutę palyginti H-I-R-S-C-H-H-O-R-N, o gal / 0 arba kažką panašaus, kad, siekiant ieškoti Jason, o ne tik sakydamas man vartotojo numeris du. Tai 32 bitų. Tai vienintelis LC kad jūs turite palyginti. Ir iš tiesų, tai būtent tai, kodėl duomenų bazės linkę priskirti unikalų identifikatorių eilutės į juos. Dabar, ką kiti duomenų tipai yra ten be INT ir, matyt, stygos, kaip tai? Na, būtų labiau tinkamas, SQL duomenų bazės, pavyzdžiui, MySQL turi char laukus. Ir char tiek klaidinančiai nėra vieno CHAR. CHAR laukas MySQL duomenų bazės vienas ar daugiau simbolių, bet tai nustatytą skaičių simbolių. Taigi, pavyzdžiui, jei aš einu per į phpMyAdmin kaip galite jau, arba netrukus problema nustatyti septyni, ir aš einu mano duomenų bazėje, ir tiesiog for fun, kurkime naują lentelę, vadinamą išbandyti tik su dviem stulpeliais. Aš tada spustelėkite Vykdyti. Ir tai bus gana pažįstamas, ypač kaip jūs Taisome aplink savo. Čia galėčiau įvesti vardą kurti nauja lentelė tipo INT. Bet čia galėčiau įvesti vartotojo vardą atkurti, kad anksčiau lentelę. Ir pastebėti Turiu visa krūva rūšių pasirinkti. Ir tai taip pat yra, kodėl phpMyAdmin rūšies gražus. Tai tipo savarankiško mokymo tame jumis gali tiesiog rūšies taškas ir spustelėkite, ir pažvelgti išskleidžiamajame meniu, ir daro išvadą, kad tai, ką įgaliojimai SQL suteikia jums. Ir iš tiesų, jei aš pasirinksiu CHAR, aš tada turiu nurodyti ilgį, arba kaip daug reikšmės, kiek simbolių. Taigi labai bendros vertybės yra dalykų, pavyzdžiui, 255, bet tai šiek tiek ilgai. Dažniausiai yra aštuoni įvesti vartotojo vardą. Bet tai šiek tiek mažas šių dienų. Taigi tai yra dizaino sprendimas. Tai 8 simbolių maks, 32, 255, 1000? Tai tikrai ne jums. Bet CHAR laukas yra fiksuotas skaičius. Taigi pasirinkti per mažai ir jūs natūra prisukamas, jei norite ilgesnį vardą. Pasirinkite per daug ir kas Neigiama? PUBLIKA: [nesigirdi]. DAVID Malan: Tai išlaidavimas. Tiesiog kaip ir C, jei turite didesnį riekė atminties, nei jums reikia, jūs esate tiesiog gaišti laiko ir eikvoti vietos. Taigi, kaip alternatyva egzistuoja VARCHAR, kuris išsprendžia šią problemą, gydant ilgis ne kaip fiksuoto ilgio, bet kaip maksimalus ilgis, ir naudojant skaičiaus rodiklis simbolių, kurie vėliau linkęs naudoti tik kaip daugelis simbolių, kaip jūs iš tikrųjų reikia. Tai skamba puikiai. Kodėl mes atsikratyti CHAR duomenų tipo tada? Kas gali būti neigiama naudojant VARCHARs, kuris skamba kaip tai malonu laimėti? Taip? PUBLIKA: [nesigirdi]. DAVID Malan: Gerai, gerai. Taigi, jei visi jūsų duomenys yra tas pats ilgis, kas susiję? PUBLIKA: Kadangi jūs eikvoti duomenys papasakok juos visus. DAVID Malan: Taigi, jei visi jūsų duomenys yra tokio pat ilgio, nors aš norėčiau ginčytis kad nurodant maksimalią į VARCHAR nesiskiria nuo nurodant fiksuotą ilgį CHAR jei žinote, kad numeris iš anksto. Bet ten yra iš tikrųjų, ir aš tarsi ištrauka iš šio atsakymo realybę kad dar yra daugiausiai, kurie galėtų būti nemalonus, ypač jei susiduria asmens vardą, kad tai neįprastai ilgai, kad tu ne numatyti. Ir tai taip pat šiek tiek mažiau efektyvus iš tikrųjų ieškoti VARCHARs kaip o ne ieško simbolių, ypač ilgus lentelių, kurie turi daug ir daug duomenų. Taigi čia taip pat, teminė vėl nėra akivaizdus pasirinkimas. Taigi tiesiog suteikti jums kitą jausmą duomenų tipai, kurie gali būti įdomūs arba p-septynis ar ateitis, ten LC. Yra bigint, kuris yra kaip ilgai ilgai. Jis linkęs būti 64 bitai. Yra dešimtainis, kurį matysite problema rinkinys, kuris yra daug siurblys atsakymas į problemas, mes susidūrė su mentele ir plaukiojantieji atkreipti nepatikslinus. Ir tada ten DATETIME. Yra pažodžiui duomenų tipas, kuris turi atrodyti per metus, mėnesį, dieną, ir valandą, minutę ir sekundę. Bet SQL duomenų bazės taip pat turi ką mes vadiname indeksus. Ir indeksas yra kažkas, kad jūs nurodyti kuriant lentelę padaryti paieškas ir kitas operacijas efektyviau. Tiksliau, yra kažkas vadinamas REKOMENDUOJAMA rodiklis, kad galėtumėte deklaruoti taip. Mes padarėme tai už jus su Vartotojų stalo mes suteikiame jums. Tačiau pastebite, jei aš buvo rankiniu būdu atkurti Vartotojų lentelė čia suteikiant tai vartotojų pavadinimą. Aš jau nurodyta ID. Aš nurodyta INT. Aš nurodyta vartotojo vardas didžiausias 32 simbolių. Bet jei mes judame į tai gana platus langas, pranešimas nėra krūva kitų dalykų, aš galiu nustatyti. Vienas iš jų, galiu nurodyti atributus kaip, žinote, ką tai LC turėtų būti nepasirašytas. Nenoriu neigiamus skaičius, tad kad jis nepasirašytas. Null, nėra svarbi, nes čia Aš noriu kiekvieną vartotoją turėti unikalų numerį. Aš nenoriu, kad ji būtų niekinis. Bet tai yra įdomu. Galiu nurodyti, kad ID arba pirminio rakto duomenų bazės, ar jis unikalus, ar jis indeksuojamas, ar visą tekstą. Taigi šiandienos reikmėms, ilga istorija Trumpai tariant, REKOMENDUOJAMA reiškia, kad tai turi būti konceptualiai ir techniškai srityje, kad mes naudojame unikaliai nustatyti vartotojams. Taigi, kai mes žiūrime iki vartotojų, tai yra tarsi iš pažado ieškoti juos daugiausia kad unikalus identifikatorius. Ir duomenų bazė užtikrina, kad jeigu jums turėti vartotojo numerį 3, jūs negalite fiziškai įterpti kitą vartotoją su tuo pačiu numeriu 3. Duomenų bazė bus tiesiog atsisakyti , kad išsaugotumėte pakeitimus. Kuris yra geras dalykas, nes galite apsaugoti save nuo savęs. pats Kita vertus, už vardą. Taigi, antra eilutė, priminti, yra vardo laukelis. Taigi antroje eilėje čia yra vardas, kaip mes padarėme dėl toli paliko ten. Taigi, ką dar galėčiau norite nurodyti? Aš ne leisti, atsižvelgiant į SQL nurodyti du pirminius raktus. galite nurodyti bendrą raktą, kur jūs pažvelgti abiejose srityse, tačiau jie negali individualiai būti pirminiai raktai. Štai iš klausimą. Taigi, kuris galėtų Noriu pasirinkti? Na, yra unikali panaši dvasia pirminis raktas, kur jūs nurodote tai laukas turi būti unikalus, tačiau tai nesiruošia būti vienas Aš naudoju visą laiką. Ir mes neketiname naudoti šį vieną visiems dėl kokios priežasties laiko vėl? Tai lėčiau potencialiai jei tai ilgas vardas. Tai tik laiko švaistymas. RODYKLĖ, tuo tarpu, nurodoma, kad tai nesiruošia būti unikalus, bet norėčiau jums dirbti savo magija po gaubtu, kad jis greičiau man ieškoti šioje srityje. Taigi, tai tikriausiai nėra svarbūs. Už vardą, aš teigti, kad Unikalus yra geras atsakymas. Bet tarkime, kad mes padarėme vartotojams daugiau įdomus ne tik vardus, maišos, ir ID numeriai. Ką daryti, jei mes davė žmonėms vardus ir pavardes? Ką daryti, jei mes jiems davė adresus ir kitus duomenis apie juos? Na, jei nurodysite, kad į stulpelį Duomenų bazė yra indeksuojami, tai reiškia, kad MySQL ar Oracle, ar kokia duomenų bazė jūs naudojate, turi dirbti savo magija ir naudoti tam tikras išgalvotas duomenų natūra struktūra kaip medis ar TRIE arba maišos lentelė, ar kažkas garantuoti kad kai jums ieškoti duomenų naudojant pasirinkti tą konkrečioje srityje - kaip man parodyti visiems, kad gyvena Oksfordo gatvėje. Kaip kad užklausos. Jei nustatomos iš anksto, kad norite apie šioje srityje indeksas, paieškos bus daug, daug greičiau. Jei nenurodysite indeksą, geriausiai jūs galite padaryti, tai linijinis paieška, jei tai nėra rūšiuojamos. Bet jei nurodysite indeksas, protingas žmonės, kurie padarė duomenų bazę - žmonės kaip jūs, kurie dabar žino medžius ir bando ir maišos lenteles - bus automatiškai sukurti tokį duomenis struktūra RAM įsitikinti, kad šios paieškos yra daug greičiau. Fulltextowe tuo tarpu panaši dvasia, bet leidžia daryti pakaitos paieškos, kaip man parodyti visiems, kad gyvena gatvėse, kurie prasideda su raidė O dėl kokios nors priežasties. Tai galite padaryti pakaitos paieškos panašaus. Arba daugiau įtikinamų dalykų, pavyzdžiui, rodo, mane visi, kurie turi žodį - man parodyti visiems, kurių vardas prasideda su tam tikra raide. Jūs galite ieškoti raktažodžių šiuo būdu. Gerai. Taigi, dizaino galimybės yra potencialiai. Yra ir kitų, kad aš pakylės mano rankas. Pasirodo, kad jūs galite turėti skirtingų saugojimo varikliai. Ir tai yra daugiau paslaptingų nei mums reikia tikrai už problemos septynis. Pagal nutylėjimą, vaikinai vartojate kažkas vadinamas InnoDB. Pamatysite paminėti šio kažkur phpMyAdmin sąsaja greičiausiai. Bet žinau, kad yra kitas planas sprendimus, kurie yra potencialo palūkanų ateiti galutinius projektus, jei jūs ką nors žiniatinklyje. Bet tegul tai padaryti. Eikime į priekį ir įdėti šią nuorodą į ekranas kaip istorija kibinimas įtraukti jus, kambarioku, ir stiklinė pieno. Paimkime dvi minutės ar taip pertraukos čia. Ir jeigu jūs galite klijuoti aplink, tegul ateina atgal, atrodo šiek tiek daugiau ne SQL, ir tada JavaScript tiek su p nustatytas aštuonių galvoje. Gerai. Taigi, galime jums galvoti apie kampas atvejis, kad labai lengvai gali kilti Jei naudojate duomenų bazę, arba kontekste tiesą sakant, net ir naudojant realaus pasaulio dalykus kaip bankomatai gauti pinigus. Taigi čia yra šaldytuvas. Tarkime, jūs turite vieną per į Jūsų bendrabučio arba jūsų namuose. Ir jūs turite vieną kambarioku, ir abu jums tikrai patinka pienas pvz. Taigi, jūs grįžti namo iš klasės vieną dieną. Jis ar ji dar ne atgal. Atidarote šaldytuvą. Jūs tikrai norite didelę stiklinę pieno. Nėra pienas. Taigi, ką jūs darote? Uždaryti šaldytuvą. Jūs patraukti savo raktus. Jūs einate į aikštę. Ir jūs gaunate linija CVS tiems Savitarnos kasos dalykų, kurie visada užtrukti ilgiau nei iš tikrųjų turintys kasininkai. Šiaip ar taip. Taigi, tuo tarpu, dot dot dot, savo kambarioku grįžta namo, ir jis arba ji panašiai turi norėti kai pieną. Taigi jis atidaro šaldytuvą, atrodo viduje, ir oh, nusispjauti. Ne pieno. Taigi jis vadovauja iš, būna eiti į kitą CVS, kuris buvo tik kvartalo dėl kokios nors priežasties, ir jis arba ji pasireiškia eilėje nusipirkti pieno. Tuo tarpu, ateini namo, jis arba ji grįžta namo, ir ką jūs galų gale turi? Dvigubai daugiau pieno. Bet jūs tikrai patinka pieno, kad daug. Taigi, dabar jūs turite tiek daug pieno, kad dabar vienas iš jų yra tik ketina eiti rūgštus ilgainiui. Taigi tai yra tikrai blogai, problema. Teisė? Taigi, kas nutiko? Taigi, iš esmės, tai yra natūra apie juokingas pavyzdys. Tačiau po gaubtu, ką mes turėjome atsitikti čia jus abu tikrinamas kokio nors kūrinio būsena atmintis, šaldytuvas. Jus abu patikrino būklę kai kurių kintamųjų. Jūs abu padarė išvadą, kad tada veikė. Tačiau, deja, kol jūsų kambarioku buvo parduotuvėje, tos valstybės kintamasis pasikeitė, jis grįžo ir dabar nori pakeisti padėtį, bet jis jau buvo pakeistas jam ar jai. Ir, žinoma, jis neturės nuėjo į parduotuvę, jei jie žinojo, kad jau buvo pakeliui. Taigi realaus pasaulio, kaip tu galėjai išvengti šios problemos, jei turite šaldytuvas, turite kambarioku, ir jūs iš tikrųjų patinka pieno? PUBLIKA: Bendravimas. DAVID Malan: Bendravimas. Gerai. Bet kaip gali jums bendrauti? PUBLIKA: Komentuoti dėmesį. DAVID Malan: Komentuoti dėmesį, tiesa? Visada palikite pastabą dėl gerbėjai šou. Viskas gerai, todėl visada palieka raštelį, arba įdėti tikrai kaip spyna ar kažką prie šaldytuvo, kad saugo jūsų kambarioku nuo apžiūrėję būklę kad kintamasis. Dabar, kodėl gali tai būti konsultuojama su problema septynis ar bankomatus. Na, įsivaizduokite, į bankomatą pasaulį, kuriame Jums gali būti suteikta galimybė eiti į bankomatą mašina čia, o kitas OEV čia. Ir tai atsitinka gana dažnai. Ir manau, kad jūs turėjo du ATM korteles, kurios galima gauti. Ir įėjus į abi mašinos efektyviai vienu metu, tikiuosi o niekas žiūri. Ir tada įvedate savo PIN maždaug tuo pačiu metu. Ir tada jūs darote balansą užklausą pamatyti, kiek pinigų turite. Ir tarkime, jūs turite $ 100 į kairę į jūsų sąskaitą. Taigi, iš esmės tuo pačiu metu, jūs sako vieną, o nulis, nulis, įveskite. Ir jūs tikiuosi grįžti šiek tiek pinigų. Tačiau kiek pinigų gali jums atgal? Dabar kompiuteriai Tuo dienos pabaigos, ypač jei jie kalbate serveriai, nebūtinai daryti dalykus ta tvarka, kuria tikimasi. Taigi manau, kad tai, kas vyksta, nes nepriklausomai nuo tinklo greitis klausimus ten yra arba CPU klausimai yra, ar nieko panašaus, kad, tarkime, kad Pirmasis bankomatas patikrins jūsų pusiausvyrą ir mato, oi, šis asmuo turi $ 100. Bet tada gauna išsiblaškęs, nes gal atsarginės vyksta, ir todėl lėtėja. O gal tikrinant, tinklo jungtis gavo šiek tiek lėčiau, nes tai tiesiog atsitinka. Jie fizinius įrenginius. Taigi, tuo tarpu, antra bankomatas klausia tą patį klausimą. Kiek pinigų nėra Davidas turi? $ 100 yra atsakymas. Bet kadangi pirmasis bankomatas dar nėra išsiuntė pranešimą atimti $ 100, ir Bankomatai apžiūrėjo banko skliautą, matau ten 100 $ ten, ir dabar abu aparatai potencialiai yra ketina išspjauti atsakymą. Dabar, tai yra puikus jums tam tikra prasme jei ką bankas daro galiausiai yra pakeisti sumą, atėmus 100 iki nustatyti kintamąjį lygi savo Banko sąskaita lygu 0, o ne daryti atėmus 100. Dabar blogiausiu atveju bankas - arba bankui geriausiai, tuo tarpu, jie suteiks jums 200 $, o jūsų banko sąskaita dabar rodo neigiamas $ 100, kuris tikrai nėra naudinga jums visiems. Bet esmė yra ta, kad ši rasė sąlyga du kambariokai vis pienas arba du bankomatus bando gauti pinigų ir pakeisti Vault būklę tuo pačiu metu egzistuoja bet kartą jūs turite duomenų bazę. Dabar problema septynis, šis klausimas kyla ta prasme, kad jei jūs perkate dalis "Facebook" akcijų, o po to Pavyzdžiui jūs perkate antrą dalį "Facebook" akcijų, jums reikia įsitikinti, sprendimas, kaip programuotojas. Siekiant nuspręsti, kaip atnaujinti duomenų bazė, šansai yra, kad jūs ketinate vieną eilutę tos sandėlyje, ir tai yra vienas iš būdų ją įgyvendinti. Ir jūs ketinate turėti vieną dalį FB, kuris yra jų akcijų simbolis simbolis Šio vartotojo vardą ar šį klientą ID numeris, unikalus identifikatorius. Bet pati istorija gali atsitikti čia. Jei jūs nustatysite SQL, kaip pamatysite į problemą septynis kai pamatysite, oh, Davidas turi vieną dalį "Facebook" akcijų. Leiskite man dabar pakeisti, kad tai dvi akcijos, nes jis nori pirkti antra dalis. Bet tarkime, Davidas tikrųjų turėjo du naršyklės langus atidaryti, arba manyti, kad tai bendra sąskaita su abiem sutuoktiniams, ir jie abu bando atlikti pati operacija, ten pat, egzistuoja galimybė priimti sprendimą, kad būtų priimtas remiantis ankstesnių pasaulio valstybė - sąskaita turi vieną dalį - ir abu žmonės, arba abu serveriai, dabar pabandykite pasakyti prieaugio jį dvi akcijas. Tačiau šiuo atveju, jūs galėjote mokėti man pinigų tiek akcijų, tačiau padidinamas tik tai, kad vieną kartą. Taigi, trumpai tariant, esminė problema čia, kaip ir pokštas apie paliekant dėmesį, ar pradėti su spyna ant jo yra jei du žmonės, ar dvi temas - prisiminkite nulio - gali patikrinti kai kurių kintamųjų būklę ir tada bandyti pakeisti šį kintamąjį, bet tie du dalykai neturi vykti pats laikas, bet galite gauti nutrauktas kitų dalykų vyksta, duomenys gali patekti į labai keistą būseną. Ir jūs galite gauti naudos arba galite patirti atsižvelgiant į pinigų Pavyzdžiui prasme. Taigi problema nustatyti septyni, mes suteikiame Jums tai viena eilutė kodo, kuris ilgai Trumpai tariant, sprendžia ši problema MySQL. Tai labai ilgas instrukcija, kuri nėra net tilptų ant vieno linijos ekranas čia užtikrina, kad jūsų operacija yra tai, kas vadinama atominis. Viskas vyksta vienu metu, arba tai neįvyks ne visiems. Tai labai ilgas frazė negali gauti nutraukiamas iš dalies. Ir ką ji daro yra tiesiog ką ji sako. Įdėkite į tam tikrą lentelę taip trys laukai šios konkrečios vertybės, bet dublikato raktą, nedaryk intarpą. Ar atnaujinti. Taigi tai patinka daryti PASIRINKTI ir INSERT todėl kalbėti tuo pačiu metu. O kas tai yra raktas, kuris tikriausiai nukreipiamas į čia? Pasirodo, ir pamatysite tai problema buvo nustatyti septyni yra spec, nes mes pareiškė, kad turi būti unikalus raktas šiuo konkrečiu stalo tokia, kad jūs negalite turėti kelias eilutes tam pačiam vartotojui, turinčiam pats Penny Stock simbolis - Šiame pavyzdyje čia, DVN.V yra kvailas Penny Stock, kad mes kreiptis į spec. Kadangi mes pareiškė, jog turi būti unikalus, ką tai reiškia, kad jei pabandykite įrašyti pasikartojantį eilutę, jūs vietoj ketina ją atnaujinti be kas nors, turinčių galimybę pakeisti pasaulio valstybės arba. Taigi trumpai tariant, tai užtikrina viskas yra atominis. Apskritai, nors, duomenų bazės kaip MySQL - ir jums nereikia šią funkciją p rinkinys septynių, bet laikyti jį omenyje ateityje - remti tai, kas vadinama sandorius, kur galite pasakyti START SANDORĮ pažodžiui. Tada galite vykdyti du SQL. Ir SQL, kaip pamatysite į p-rinkinys septynių, atrodo šiek tiek kažkas panašaus į tai. Atnaujinti lentelę, pavadintą sąskaitą. Nustatykite balanso stulpelį vienodą kokia Balanso stulpelis metu minus 1000, kur numeris, sąskaitos numeris, pavyzdžiui, vartotojo ID, lygu 2, tada atnaujinti sąskaita taškas taškas taškas. Taigi profanas sąlygomis, ką šie du užklausų, atrodo, daro realaus pasaulio prasme bankininkystės? PUBLIKA: patekus į santaupas. Davidas Malan: Būtent. Pervesti lėšas iš vienos sąskaitos į kitą. Ir tai yra dar vienas pavyzdys, kur tikrai noriu šie du dalykai atsitiks ar neįvyks. Jūs nenorite, kad kažką gauti iš viduryje jų ir potencialiai bałagan matematikos, arba bałagan kiek pinigų turite, arba kiek pinigų bankas. Taigi, kas yra tikrai malonu apie sandorius MySQL yra tai, kad ir duomenų bazės apskritai, yra tai, kad jie ir protingų žmonių, kurie jau įgyvendinami šios savybės išsiaiškinti, kaip padaryti įsitikinęs, kad abiejų šių dalykų atsitikti arba ne visi. Ir jei jūs tikrai siekia, kad svetainėje, kad manimi naudojasi žmonių Campus, žmonės realiame pasaulyje, daro kažkas į paleisties prasme, tai yra rūšys dizaino sprendimai, tampa vis toks svarbus. Priešingu atveju, jūs pradėsite prarasti duomenis, praranda Vartotojų, arba, blogiausiu atveju, kaip mes matėme čia, potencialiai prarasti pinigus. Taigi dar kartą, daugiau, kad problema nustatyti septynerių metų, taip pat galbūt dėl ​​kai kurių jums galutinių projektų. Taigi galime pakeisti, kad paveikslėlį mes turėjome prieš akimirką tik dar vienas būdas. Taigi leiskite man iš tikrųjų pamatyti, jei aš galiu - Ne, kad dingo. Yra tai yra. Taigi, tai yra, kai mes palikome paskutinį kartą. Ir it turns out, mes ketiname išmesti dar vienas dalykas, į mišinį čia - kalba vadinama "JavaScript". Taigi Javaskriptą tikrųjų tinka į šiame kūrinyje - ir aš ne visai palikti pakankamai vietos, taigi tai nėra dabar pagal mastelį. Gerai, tai tikrai apgailėtina. Gerai, kad tai "JavaScript". Gerai. Aš tikrai tai daro meškos. Gerai. Taigi JavaScript kitą programavimo kalba, ir mūsų paskutinis, jei tai padeda nuraminti, kad nėra daug iš gaisrinių hidrantų čia. Taigi, "JavaScript" yra taip pat aiškinama kalba, o tai reiškia, jūs neturite kaupia jį į nulių ir. Jūs tiesiog paleisti jį. Bet kas iš esmės skiriasi su JavaScript paprastai yra tai, kad ne paleisti jį į savo interneto serverį. Jis neturi gauti paleisti prietaisas savaime. Greičiau, jis bus paimtas vienas vartotojas per HTTP į savo naršyklę - "Chrome", "Safari, Internet Explorer, "Firefox", bet - ir tai naršyklė, kuri vykdo šią pirma programavimo kalba. Taigi turi būti aišku, PHP, iki šiol buvo įvykdytas arba į komandų eilutę mūsų juoda ir balta lange serveryje kaip prietaiso, kompiuteris kaip prietaiso ar tai buvo vykdo interneto serverį veikia kompiuteryje. Bet tema čia yra, kad PHP šiol buvo įvykdytas server-side, todėl vartotojo ir vartotojo naršyklė niekada mato PHP kodo eilutę. Iš tiesų, jei jūs kada nors atidaryti naršyklę jūsų svetainė ar kitą ir jums iš tikrųjų matyti PHP kodą į jūsų langą, kas nors įsukus. Nes jis nėra skirtas būti siunčiami į naršyklę tiesiogiai. Tai turėtų būti vykdomas ir pasuko į kažką panašaus HTML. Bet JavaScript esmės priešingai. Tai reiškia būti paleisti paprastai viduje iš vartotojo naršyklės lange. Ir kokios svetaines naudoti "JavaScript" iš šių dienų? Kaip pažodžiui kiekvieną populiarus svetainę. Kiekviena svetainė, kad jums, vaikinai, tikriausiai naudoti kasdien naudoti JavaScript Paprasčiausias ir net Sexiest funkcijų. Taigi, kažkas panašaus į "Facebook" Pokalbiai jei jūs naudojate, kad. Kaip tai realiai veikia? Na iki šiol visi stuff mes padaryti su HTML ir PHP daroma prielaida, kad atsigriebti URL ir paspausite Enter ir pamatysite šiek tiek HTML turinį. Ir jūs spustelėkite nuorodą, kad pokyčiai URL pakeičia puslapį, ir pakartotini kai naujas turinys. Spustelėkite kitą URL arba pateikti formą, gauti plakinio į kitą puslapį ir matote šiek tiek naują turinį. Tačiau naudojant kažką panašaus į "Facebook Chat, arba gchat, ar "Google Maps", retai jis visas puslapis atnaujinti taip, kad matote baltas ekranas trumpam ir tada naujas turinys. Atvirkščiai, tinklalapių šiandien yra dinamiškai vis atnaujinama ir vėl vėl ir vėl visi rūšiuoti iš užkulisiuose. Ir paaiškėja, kad, kai jūs einate į kažkas panašaus į "Facebook" ar gchat, ar "Gmail", ir puslapio atnaujinimai automatiškai neperkraunant visą ekraną, kas atsitiko, kad Jūsų naršyklė tapo tarsi slapta papildomi HTTP užklausas - ne apskritai interneto puslapių, bet tik mažai gabaliukus duomenų, pavyzdžiui, trumpąją žinutę, kad tavo draugas tiesiog pasiunčiau jus, ar būsenos atnaujinimą, kad kažkas tiesiog atsiuntė jums, ar Čivināšana kad kažkas ką tik išsiunčiau. Tai tiesiog padaryti šiek tiek prašymus duomenys, ir tada naudojant JavaScript, tai programavimo kalba, keisti, ką interneto puslapis atrodo be serverio padėti, be serverio generuoti, kad HTML. Taigi trumpai tariant, "JavaScript" gali būti naudojamas tada ne tik parsiųsti naujus duomenis iš neperkraunant visumą serverį puslapyje arba pateikimo formą. Jis taip pat gali būti naudojamas pakeitimo Vadinamasis DOM - Objektinis modelis dokumento - kuri yra tik išgalvotas būdas sakydamas HTML medį kad mes matėme paskutinį kartą. Taigi, norint įtikinti, kad JavaScript yra sintaksiškai tiek panaši į C, taip pat. Nėra pagrindinės funkcijos. Jūs tiesiog pradėti rašyti kodą ir ji bus įvykdyta, arba aiškinama daugiau tinkamai. Sąlygos atrodys taip. Nesiskiria nuo C arba PHP šiuo klausimu. Būlio išraiškos ar-ED kartu atrodys taip. Anded kartu atrodyti taip. Jungikliai atrodys taip. Dėl kilpų atrodys taip. Nors kilpos atrodys taip. Daryti, o kilpos atrodys taip. Tai yra naujas. Taigi, "JavaScript" yra ne foreach statyti per se, bet šis konstruktas Aš kintamasis masyvas, ir i tai atveju tampa indekso vertė. Taigi tai šiek tiek skiriasi nuo foreach, nors naujos versijos JavaScript išeina visą laiką, Taigi, net šios kalbos ypatybės vystosi. Ir kaip žemę, JavaScript šių dienų Taip pat gali būti naudojamas serveryje kaip PHP naudojant sistemą, vadinamą Node.js. Vienas CS50 yra TFS, Kevin, lėmė seminaras Node.js tai galima rasti cs50.net/seminars. Taigi, jei jums įdomu, žinau, kad jums galite naudoti serverio pusėje, kaip gerai, bet tai gana neseniai tendencija, bet galingas vienas tuo. Tai yra šiek tiek kitoks. Tai JavaScript masyvo. Ir kas streikų jums kaip skiriasi , palyginti su C ar PHP? Yra keletas greitai istorijos mes galime pasakyti čia. Ko trūksta palyginti su PHP? PUBLIKA: [nesigirdi]. DAVID Malan: Taip? Atsiprašome, pakartosiu dar kartą? PUBLIKA: Ne skelbiantis kintamojo tipas. DAVID Malan: Mes ne skelbiantis kintamojo tipas. Taigi iš tikrųjų labai patiko PHP, mes ne nurodydama šio kintamojo tipus. Atvirkščiai, mes daugiau bendrine sakydamas var kintamojo. Mes neturime PHP daromą poveikį dolerio ženklas, kurie, nors ir varginantis tipas, ar priimti labiau aišku, kad kažkas yra kintamas. Kadangi čia mes tarsi atgal C metodas tiesiog paskambinę kintamojo pavadinimu norime suteikti jai, kaip ir numerius. Ir taip pat kaip PHP, mes turime kvadratinių laikikliai vertybės viduje, kad masyvo. Taigi kintamieji JavaScript pat gali atrodyti taip. Atkreipkite dėmesį, čia tai eilutė vadinama s bet panašiai turi mes nenurodomas kad tai eilutė. Tačiau čia yra funkcija, kuri nėra egzistuoja lygiai taip pat, PHP, bet šiek tiek panašiai. Tai JavaScript objektas. Ir objektai yra tarsi Šveicarų armijos Peilis duomenų struktūros, kad jūs gali juos naudoti bet daug dalykų. Štai, pavyzdžiui, mes skelbiantis kintamasis vadinamas citata. Šio kintamojo tipas yra objektas. Jūs galite galvoti apie tai, kaip C struct kad turi raktus ir reikšmes. Simbolis yra raktas. FB yra vertė, matyt akcijų simbolis. Kablelis. Kaina yra dar vienas svarbus, o jo reikšmė yra matyt slankaus kablelio arba skaičius apskritai JavaScript ir $ 49,26. Taigi PHP neturi - mes nematėme PHP objektus gana kaip tai, bet mes pamatyti analogas, kuris buvo ką? PUBLIKA: [nesigirdi]. DAVID Malan: Association masyvai. Taigi, kadangi PHP turi Association masyvai kurios sintaksė yra kada nors šiek tiek, skirtingi - matėme skliaustus. Mes matėme keistus Rodyklių simboliai. JavaScript turi daiktų, bet tai daugiausia semantinis skirtumas ir skiriasi sinonimas dabar. Tačiau, kaip panaikinti, PHP taip pat turi objektus tokiu būdu, kad "Java" ir kiti kalbos turi objektų Objektinis programavimas. Bet mes naudosime šias tiesiog už duomenų tipų dabar. Objektai ir Association masyvai. Tai vienas gali padaryti tai šiek tiek daugiau aišku. Štai kodėl objektas yra naudinga. Jei norite paskelbti studentų, kaip Zamyla, mes galime iš tikrųjų viską, taip sakant viduje, kad prieštarauti naudojant garbanotas skliausteliuose kaip prieš visa krūva raktų ir vertybės čia. Turime ID, namą, ir už vardą Zamyla, po kabliataškiu kaip Įprasta pabaigoje. Žemyn ir čia, tai yra šiek tiek skiriasi, bet taip pat labai galingas šių dienų. Štai masyvas, ir aš žinau, kad dėl ten kvadratas laikiklis iki viršuje ir kvadratas laikiklis apačioje. Ir tai yra tai, kokie duomenys masyvas įveskite matyt JavaScript? Tai ji atrodo masyvas kaip trys objektai. Ir aš žinau, tai tik daiktas nes garbanotas petnešos. Ir pastebėsite, kad atvira garbanotas petnešomis, kai kurių dalykų, netoli garbanotas petnešomis, kablelis, tada šiek tiek daugiau, kablelis, ir tada šiek tiek daugiau. Štai trys argumentai atskirti du kableliais. Taigi tai yra trijų objektų masyvo. Ir kiekvienas iš šių objektų atrodo studentas ar darbuotojas kai rūšiuoti, kiekvienas su ID, namas, vardas ir pavardė. Bet aš pavadino kažką vadinamas JSON - JavaScript objektas žymėjimas. Ir tai yra duomenų formatas, kad iš tikrųjų yra toks labai populiarus ir madoje šių dienų, kad jei jums reikia parašyti programa, kuri naudoja Facebook API Twitter API tikrai beveik bet API ten šių dienų, įskaitant kai CS50 savo, duomenys, gauti atgal nėra senosios mokyklos CSV formatu. Kadangi prisiminti, kad CSV yra super paprasta. Jis yra tik stulpeliai atskirti kableliais. JSON duomenų suteikia jums daugiau metaduomenis. Ji susieja su kiekvienu vertės raktą taip jie neturi tiesiog manyti, kad nulinis stulpelis yra viena reikšmė stulpelyje vienas kitą, du stulpelis yra kita. Viskas JSON objektas čia yra tarsi savarankiškai aprašyti, nes kiekvienas vienas iš pavadinimų, šioje byloje yra tiesiog vardas prieš jį kaip citavo eilutė. Taigi, galime pažvelgti į išvaizdą pora pavyzdžių čia. Leiskite man eiti į prietaisą. Ir leiskite man eiti į mūsų vhost katalogas į visuomenę. Ir leiskite man eiti į JavaScript katalogas. Ir eikime į priekį ir atverti dom-0.html, kur DOM tiesiog reiškia, Objektinis modelis dokumento. Tai medis stuff, kuris Aš anksčiau nurodyta. Ir leiskite man pasiūlyti šiuos. Štai interneto puslapis, kurio kūnas yra gana paprasta. Taigi, čia apačioje apačioje, pastebėti Turiu formą. Mes matėme tuos anksčiau. Ji turi du įėjimus, vienas iš jų turi ID pavadinimu, iš kurių vienas turi tipą pateikti, ir pirmą One tipas yra tekstas. Taigi tai tikrai skamba gana paprasta. Vykime čia. Grįžkime į šį puslapį čia. Vykime į localhost, ir eiti į mūsų Javaskriptą katalogas, eikite į dom-0, ir čia mes turime šią formą. Štai, matyt, visa tai puslapis nėra. Jis turi vardą lauką mygtuką "Siųsti". Bet aš ne ketinate naudoti PHP čia. Aš ruošiuosi padaryti viską kliento pusėje taip sakant "JavaScript" taip. Atkreipkite dėmesį, kad aš iš tikrųjų suteiktas pavadinimas laukas šio įėjimo unikalus identifikatorius, kuris bus faktiškai sutaupyti man laiko momentu. Ir pranešimas aš pristatė dar tegus į mano tinklalapį galvos,  žymė. Taigi, tai ta prasme, kad JavaScript yra client-side programavimo kalba. Šiuo atveju, kaip ir CSS, aš įdėti tai tiesiai viduje savo HTML. Bet pranešimas aš paskelbė funkciją kad atrodo šiek tiek panašus į PHP sintaksiškai, bet iš tikrųjų tai yra JavaScript nes vėl, tai kliento pusėje naršyklėje. Ir atspėti, ką šis ketina padaryti, nors kai kurios sintaksė čia yra naujas. PUBLIKA: Say hello to tas, kas. DAVID Malan: Ji ketina pasakyti labas kad kiekvienas, kuris apsilanko šį puslapį. Taigi, kaip? Taigi pastebėti, paaiškėja, JavaScript ten alert () funkciją. Tai labai tarsi liūdna funkcija, tikrai tik linkęs erzina vartotojus. Tai ne vienas tikrai turėtų naudoti paprastai, bet tai greitai ir purvinas būdas rūšiuoti spausdinti kažką į grafinę vartotojo sąsaja, kaip naršyklėje. Atkreipkite dėmesį, kad čia aš turiu Styga apostrofais. Pasirodo, kad, skirtingai nei C, JavaScript iš tikrųjų gali turėti jūs naudojate vieną citatos, ir atvirai tai tiesiog rūšies iš stilistinės konvencijos tarp "JavaScript" programuotojai naudoti kabutes. PHP, jie iš tikrųjų turi šiek tiek kitokią prasmę. Bet dabar, tiesiog žinau, kad tai vienintelė priežastis. JavaScript konvencija dažnai Viegubomis kabutemis, bet mes galime naudoti kabutes abiejose vietose, taip pat. Taigi tai yra įdomu. Prisiminkite paskutinį kartą, kad mes turėjome, kad vaizdo ekrane, kad atkreipė į medį kur turėjo HTML mazgas, ir Pagrindinis mazgas, o kūnas mazgas, ir tada kai tekstas. Tačiau juk tai buvo viena speciali mazgas ne pačiame viršuje, kad aš vadinamas dokumentą. Na, paaiškėja, JavaScript, bet kartą jums parašyti į "JavaScript" programa naršyklėje, jūs turite prieigą prie ypatingą pasaulinį kintamąjį. Panašus dvasia PHP superglobals, tai vienas yra vadinamas mažosiomis raidėmis dokumentas. Tai tarsi struct, bet tai struct taip pat turi funkcijas viduje. Taigi C struct tiesiog turi duomenis paprastai. Bet JavaScript objektas, nes tai techniškai taip pat turi funkcijas, kitaip žinomas kaip metodų, viduje ji. Ir jūs galite skambinti funkcija viduje šis objektas yra gana pažodžiui daro savo pavadinimas, taškas, ir tada pavadinimas funkcija, ar vėl metodas. Tai tiesiog sinonimas, tikrai. Ir ką ši funkcija daro? Galite rūšies atspėti iš pavadinimo. Gauk elementas pagal ID. Taigi tai vyksta ieškoti interneto puslapį, ieškoti tą medį, ieško kokia mazgas, AKA elementas turi unikalus ID citata citatos vardą. Ir tada ką aš darysiu? Aš ruošiuosi gauti vertę viduje kad mazgas medžio, ir aš ruošiuosi kažkaip pasakyti labas tokiu pavadinimu. Taigi spėti, nors mes ne mačiau tai dar, ką daryti plius reiškia simboliai čia ir čia tikriausiai? Auditorija: Jungiant. Davidas Malan: Jungiant. Teisė, ir tai tik rūšiuoti dizaino sprendimus žmonės padarė metų. PHP, jūs Jungiant viskas su taškeliais. In C, galite šokinėti per kelis lankus ir skambinti funkcijas, pavyzdžiui, strcopy () arba strcat () arba kitų tokios funkcijos. Tačiau JavaScript, galite naudoti pliusus. Taigi tai yra tik concatenating Trys stygos - labas, pavadinimas, o tada šauktukas. Taigi, kada ir kodėl ši funkcija vadinamas nors? Na, iš spėti HTML apačioje. Kodėl pasveikinti () vadinamas, ar kada? Matyt, kaip geriausiai galiu pasakyti, ant pateikti, kai ši forma yra pateikta, Aš ruošiuosi daryti viską, viduje šių kabučių. Tiksliau, aš ruošiuosi skambinti pasveikinti () ir tada grįžti klaidinga. Na, pažiūrėkime, ką grynasis poveikis čia yra pirmasis. Taigi leiskite man eiti į priekį ir įveskite , tarkim, Loren, siųsti. Sveiki Loren. Leiskite pamatyti, jei gal tai buvo tik pasisekė įgyvendinti. Nope. Taigi tai rašyti bet kada pavadinti Aš iš tikrųjų įdėti ten. Tačiau pastebėti, kas nesikeičia. URL yra dar dom-0.html. Nėra register.php. Nėra antra byla. Nereikia imtis jokių veiksmų atributas. Taigi, kas yra šis sugrįžimas klaidinga tikriausiai darai? Kodėl aš skambina pasveikinti () ir tada grįžti klaidinga tikriausiai? Kas paprastai atsitinka, kai jūs spustelėkite Pateikti tokią formą, kuri dar turime pastebėtas praeitą savaitę? Auditorija: [nesigirdi]. Davidas Malan: Jis eina kažkur, tiesa? Jis eina tam tikru paskirties URL. Bet aš nenoriu, kad taip atsitiktų čia. Noriu, kad mano interneto puslapis turi būti visiškai dinamiškas kaip "Gmail", kur kadaise esate ten, jūs ten pasilikti. URL nesikeičia tokiu būdu, kuris rodo visas puslapis yra perkraunami. Atvirkščiai, aš tik noriu ką nors pakeisti kaip spausdinti kažką čia ekrane. Na leiskite man valyti tai iki šiek tiek. Leiskite man atverti ne dom-0, tačiau leiskite man atverti Dom-2. Tiesiog taip, jūs mačiau kai sintaksę. Pasirodo, kad tai, ką mes tiesiog buvo naudojant žalią "JavaScript". Taigi tai tikrai kalba "JavaScript". Kai kurie iš jūsų gali žinoti, iš biblioteka vadinama JQuery. Taigi JQuery yra ne tas pats dalyko kaip "JavaScript". Tai tik biblioteka, kuri tikrai protingas vaikinas rašė ir išpopuliarino tokios kad beveik visi pasaulyje dabar naudoja JQuery naudojant "JavaScript". Ir iš pirmo žvilgsnio, sąžiningai, tai atrodo šiek tiek daugiau paslaptingas. Bet jūs rasite, ypač jei jūs einate ten savo galutinį projektą su interneto plėtra, jūs pamatysite, kad tai valo viską ir taupo Jūsų gana keletą eilučių kodo. Taigi tegul tiesiog pažvelgti kaip ši forma yra darbo. Pranešimas ką aš pašalinti matyt iš savo HTML? Nėra ant pateikti prižiūrėtojas taip sakant. Nėra atributas. Kadangi jūs žinote, ką Aš tikrai patinka? Aš jaučiau, kad mes krito į senus įpročius ten. Kaip ji buvo pradeda jaustis aplaistytas susimaišyti tiek CSS su HTML, nes esate rūšies mesti skirtingomis kalbomis visame vieta, panašiai buvo tai pradeda jaustis kaip blogas kelio eiti ten, kur Aš pradėti JavaScript kodą viduje iš mano HTML, o ne faktoringo jį. Štai pamoka čia. Be Dom-2.html, aš faktoringo jį. Ir aš darau dalykus šiek tiek skirtingai. Nes dabar, aš ruošiuosi pakylės savo rankas kokia tai tikrai po gaubtu. Bet tik dabar prisiima, kad pirmasis eilutėje kodas šioje bibliotekoje vadinamas JQuery tiesiog reiškia, kai dokumentas yra pasirengusi, atlikite šiuos veiksmus. Kadangi tinklalapiai gali būti šiek tiek laiko įkelti. Jums gali būti ant lėtos internete ryšys, ir jis gali būti verpimo ir verpimo, ir galiausiai jis pakrautas. Šis kodo eilutę tiesiog sako laukti, kol visas puslapis yra pasirengusi dokumentas yra pasirengęs, prieš vykdant šį kodą. Ir dabar pastebėkite, tai tikriausiai labiausiai naudingas pirmasis atimti iš JQuery. Ši linija čia yra labai panaši dvasia šį daug ilgesnį linijos čia. Kadangi žaliavinio JavaScript kodą, yra egzistuoja dokumento pasaulio objektą, turi funkciją, vadinamą getElementById (), žmonės, kurie parašė JQuery supaprastintas, kad tiesiog pasakyti dolerio ženklas, tada viduje skliausteliuose įdėti du kabučių, tada įdėti grotelėmis po unikalus ID, jūs norite paimti. Taigi tai atitinka document.getElementById. Tuo tarpu. Submit tiesiog reiškia, į pateikimas bet kokia forma jūs nuoroda į kairėje pusėje, eikite į priekį ir atlikti tai. Bet tai dabar smalsumas taip pat. Kas keista, apie ką Aš pabrėžė čia? Ne tik tai rūšies sintaksiškai naujas, ten taip pat kažko trūksta. Auditorija: Tai tiesiog vadinama funkcija? Tai nėra vadinamas perspėjimą? Davidas Malan: Taip. Na, taip, alert () yra žemyn čia būti sąžininga. Bet nėra paminėjimas pavadinimas, kaip žinote, rūšys arba kažkas čia. Ir iš tiesų, tai viena iš funkcijų "JavaScript", kad gana galingas, bet taip pat gana nauja. Ir PHP tikrųjų turi tai taip pat. Leiskite man eiti į priekį ir daryti kažkas nekilnojamojo greitai. Leiskite man eiti į priekį ir įdėti šį čia. Leiskite tai padaryti. Funkcija. Tegul vadina prižiūrėtojas (). Prižiūrėtojas funkcija taip sakant. Kažkas, kad rankenos tikrą operaciją. Leiskite išvalyti mano įdubimas. Ir įdėti šią nuorodą čia. Ir įdėti, kad čia. Taip. Gerai. Taigi dabar turiu funkcija vadinama prižiūrėtojas (), kad aš tikrai nežino, ką ji daro dar. Tai tik dar, kad kita. Oi. Buvo per daug. Leiskite tai padaryti. Gerai. Atsiprašau. Gerai. Leiskite tai padaryti. Gerai. Kad atrodo gražiai ir tiesiai perduoti dabar. Leiskite tai padaryti. Darykite tai. Ir Gerai. Taigi, dabar, tegul įdėti šią nuorodą čia. Ne daugiau programavimo skristi. Gerai. Taigi dabar grįžkime prie kur istorija prasidėjo. Anksčiau sakiau, kad ši linija čia reiškia, kai dokumentas yra pasirengusi eiti į priekį ir tai padaryti. Ką norite daryti? Na konkrečiau, aš noriu eiti į priekį ir atlikite šiuos veiksmus. Paleiskite šią kodo eilutę, ir tada ką aš noriu jums reikia padaryti, tai vadiname veikti, kai yra pateikta forma. Dabar tai yra tai, kas įdomu. Tai nėra pati funkcija. Atkreipkite dėmesį, aš ne išleisti skliaustus čia įprastu būdu. Aš tiesiog artimųjų funkcija vadinama prižiūrėtojas () kitos funkcijos vadinamas pateikti () kaip argumentą kaip nors tai kaip kintamąjį. Ir tai yra viena iš funkcijų JavaScript yra funkcijas vykdantiems patys tikrai tik objektai. Tiesą sakant, jie tikrai tik kintamieji kažkoks. Ir jei funkcija vardas prižiūrėtojas (), nėra jokios priežasties, aš negaliu perduoti jį kaip argumentą čia. Ir tai reiškia, kai forma su DEMO ID pateikta, skambinkite šią funkciją. Bet dabar, jei aš atšaukti visa tai, kodėl tada aš galbūt padaryti šis momentas prieš? Na, tai yra anoniminis funkcija. Nes tiesą sakant, supratau, kodėl aš trukdote gaišti laiko, skelbiantis funkcija vadinama prižiūrėtojas (tik) skambinti tai viena ir tik vienoje vietoje? Jei man nereikia pavadinimą, ir aš ne reikia ją vadina daugiau nei viena vieta, tegul tiesiog įgyvendinti funkciją ten, kur man reikia. Ir todėl JavaScript ir PHP remti ką vadinami anoniminiai funkcijas, leiskite man padaryti būtent tai čia. Bet mes tik įbrėžimas paviršiaus. Leiskite erzinti tik su pora Galutiniai pavyzdžiai čia. Jei aš einu į quote.php. Atkreipkite dėmesį, kad iš tikrųjų tai yra PHP funkcija, PHP programa, kad aš parašiau kad tikisi HTTP parametras vadinamas simbolis, ir aš gali perduoti vertė, kaip FB. Ir jei mes iš tikrųjų atrodo prie šaltinio kodas, tai užklausų nemokamą tinklavietę vadinamas "Yahoo Finance, kaip p rinkinys septynių, ir jis grįžo į mane kažkas, matyt, formatas žinomas yra JSON - JavaScript objektas žymėjimas. Tai tiesiog objektas. Atkreipkite dėmesį, garbanotas petnešos, citatos, storosios žarnos, ir kablelius. Dabar tuo tarpu, tai yra gana kietas. Nes aš tikriausiai gali naudoti programas kalba generuoti URL kad atrodyti taip dinamiškai, tiesa? Galiu tai pakeisti į "Google" ir grįžti "Google" akcijų kaina $ 1,017.55. Taigi pažiūrėkime, jei mes negalime naudoti tai dabar. Leiskite man eiti į Ajax 0 čia, o atrodo taip. Tai tiesiog svetainė, kuri turi forma su mygtuku. Leiskite man čia eiti į priekį ir įveskite YHOO Yahoo akcijų simbolis, spustelėkite Gauti Citata, ir dabar pastebite aš Dotarłeś Priminimas su 32,86. Leiskite man iš tikrųjų eiti į mėgėjas versija tai puslapis, versija du, ir įveskite tarkim "Microsoft", MSFT. Gauti citatą. Ir dabar pastebėti, nėra perspėjimą. Atkreipkite dėmesį, kai jis sako kaina turi būti nustatoma? Yra paprasčiausias pavyzdžiais, kad užuominų kokia gchat, ir "Facebook" Pokalbiai ir "Gmail" ir kitų tokių svetainės darai pagal faktiškai keičiant tinklalapį. Pastebėti tai. Leiskite perkraukite puslapį. Leiskite man atverti Chrome "inspektorius. Leiskite man eiti į elementų skirtukas čia. Dabar pastebėti, jeigu aš padidinti žemyn čia ir atidarysime, pastebėsite, kad tai mano HTML DOM - mano Objektinis modelis dokumento. Čia yra mano HTML. Bet dabar pastebėti, nors tai vyksta būti šiek tiek sunku jį pamatyti tiek vietose vienu metu, jei aš tipo FB čia, žiūrėti apačioje ekrano tik. Tai iš tiesų keičiasi mano HTML skristi. Ir tai daro tai paprasčiausiai daro kažką panašaus į tai. Jei aš atverti ajax-2, pranešimas įgyvendinant kažkas seksualus kaip kad, nors tai gana bjaurus, bet taip sudėtinga, kaip kad funkciniu, ji turi kai kurių HTML apačioje. Tačiau pastebėti aš naudojamas žymėti. Mes nenaudojama prieš tai, bet tai kaip, bet neverčia viskas į naują eilutę. Jis tiesiog daro stačiakampę sritį toje pačioje eilutėje esmės. Atkreipkite dėmesį, kad aš davė jai į kainą ID. Ir it turns out, naudojant tą patį JavaScript biblioteka, turiu funkcija vadinamas citata () tai vadinama, kai forma pateikta. Ir ką aš darau tai. Aš deklaruojant kintamąjį JavaScript vadinamas url, taupymo vertę quote.php? simbolis =. Kitaip tariant, aš esu pradedant parengti HTTP užklausą, tada Aš concatenating ant kad su pliuso ką su ID elementas iš simbolis, kai pranešimas apie tai, kad teksto laukas, nustatančio teisę čia. Taigi, kaip mes turėjo formas praeityje. Ir tada paaiškėja, į JQuery, jei skambinti. Val (), kad skambučiai iš Val funkcija, vertė funkcija, kuri pasireiškia ką vartotojas įvedėte in Ir tada visą tinklo srautą tai atsitiks tai. $. GetJSON. Ir kaip žemę, dolerio ženklas yra tiesiog sutrumpintai žymėjimas. Tai tikrai jQuery.getJSON. Gauk mane JSON šiuo adresu, o kai prašymas grįžta, tai vadiname funkcija ir praeiti kaip argumento ką grįžo iš serverio. Taigi, kitaip tariant, jei aš einu atgal į naršyklė, ir aš grįžti į quote.php, ką mano naršyklė darote, yra gauti tai duomenų riekė. Ir kai aš einu į šį tinklalapį čia pastebėsite, jei mes vietoj eiti prie tinklo skirtuką ir jį išvalyti, tada įveskite kažkas panašaus GOOG dėl "Google" ir gauti Citata, pastebėsite puslapis nepakito. Bet HTTP užklausa buvo, ir ką grįžo čia, jei pažvelgtume atsakymas yra visa krūva JSON kad mes atvertas pagaliau su tai paprasta linija čia. Duomenys kas Dotarłeś iš serverio. Kaina yra pavadinimas svarbiausia man rūpi. Taigi data.price man duoda, kad. Dabar tuo tarpu, ir tai yra paskutinis pavyzdys. Jūs galite padaryti dar daugiau su puslapio. Vienas iš tikrųjų, gerai du. Mes galime sugrąžinti pažymėti, jei žinote tai. Štai JavaScript. Mes galime tai padaryti. Labai įdomu. Mes palikti, kad kaip Įspūdingos filmą. Bet labiau intriguojančiai, galite daryti tokius dalykus. Jei aš einu į geolokalizacijos-1, paaiškėja, kad "Chrome" žino, kad mes esame platuma ilguma 42.37. -71,10. Taigi, čia yra dar ten jūsų dispozicijoje. Bet daugiau apie tai kitą savaitę. Pasimatysime pirmadienis.