[00:00:02] [Muzikos grojimo] HANNAH: Sveiki, visi. Ačiū vaikinai tiek daug išeina į šlykštų oras už viktorina vieną peržiūrėti sesiją. Kaip jūs žinote, viktorina viena yra šį trečiadienį. Taigi mes ketiname eiti per temomis krūva. DAVIN: Ei, aš galiu pasakyti kažkas realaus greitai? HANNAH: Taip, Davin vyksta kažką pasakyti nekilnojamojo greitai. DAVIN: Atsiprašau. Tiesiog nekilnojamojo greitai, jei turite klausimų apie viktorinos, galite prisijungti prie interneto. Eiti iki 2014 viktorina vieną, apie viktorinoje. Jis gavo logistikos apie kur eiti, kada eiti. Jei tuo pačiu metu mokosi, mes ketinate turėti makiažas viktorinoje 5:30. Arba, jei atsiuntė man klausimas, jūs turite kokį kitą klausimą. Tačiau 5:30 yra makiažo laikas trečiadienį. Tačiau, jei turite klausimų, bendri klausimai, Prisijungė turi visas logistikos. Taigi patikrinti ten pirmas. [00:00:47] HANNAH: Nuostabus. Taigi čia didelis sąrašas pranešimus kad mes ketiname eiti per šiandien. Aš ruošiuosi apima visus C daiktų, kurie yra tai, kad pirmoji kolonėlė. Taigi C stuff, kad mes kuriems po viktorinos nulio. Pradedant susietą sąrašą kuri apima patarimų. [00:01:05] Gerai, kad mes matėme tai paskutiniame peržiūros sesijos todėl aš ruošiuosi eiti per tai šiek tiek greičiau. Tiesiog pakelti savo ranką, jei norite mane sulėtinti arba toliau spręsti kažką. Bet mes naudoti susietus sąrašus, nes mes pradėjome C matricos. Ir matricos yra puikus, tačiau problema yra jie turi fiksuotą dydį. Susiję sąrašai leidžia mums sukurti dinamiškai dydžio duomenų struktūras. [00:01:28] Ir mes turime pagrindines operacijas, įterpti, ištrinti, ir ieškoti. Ir mes galime padaryti įdėklą blogiausiu atveju pastovus laikas jei mes tiesiog padėkite jį pačioje pradžioje. Ištrinti ir ieškoti, kas blogiausia atveju didelis oh n metu. Taigi dar kartą, tiesiog apversti per šias nuotraukas, Aš žinau, mes matėme šias paskutinį kartą, bet mes nori sekti mūsų susijusi sąrašą iki sekti ir vadovas mūsų susijusi sąrašą. Nes mes žinome, kad kiekvienas iš mūsų mazgų yra tik ketina atkreipti dėmesį į Kitas mazgas mūsų susijusi sąrašą. [00:01:58] Štai kaip mes sekti. Nors tai nėra nuolat gabalai atminties, mes galime rasti juos tiesiog po skirtingas rodykles. Čia yra mūsų struktūra už susietą sąrašą mazgas. Mes matėme tai paskutinį kartą. Mes turime struct mazgas. Ir ji turi dvi savybes. Numeris vienas, faktinis vertė norime išsaugoti. Šiuo atveju, tai sveikasis skaičius. Tai gali būti eilutę, ji galėtų būti char, ką tik norite. Ir tada, mes turime sekti Kitas mazgas mūsų susijusi sąrašą. Taigi, kad tai bus rodyklę į kitą mazgą. Jei buvo tiesiog daro paieška, kaip minėjau anksčiau, jūs turite sekti savo strėles žemyn. Įterpimas, jums sekti kur savo sąrašą poilsio. Ir jūs norite nukreipti galvą atkreipti dėmesį į mūsų naują elementą, kuris šiuo atveju yra vienas, ir tada vienas bus taškas į susietą sąrašo likusią dalį. Taigi dar kartą, aš žinau, tai yra tiek tiek iš viktorina nulio pakartoti. Taigi, mes turime būti labai atsargūs, apie tvarką, kuria mes padaryti šias pointings todėl mes ne prarasti sekti sąrašo gale. Gerai, bet su klausimai tik atskirai susijęs sąrašus? Nuostabus, gerai, gerai. [00:03:06] Taigi dabar mes ketiname eiti į kažką tik šiek tiek daugiau sudėtinga, dvigubai susijęs sąrašus. Taigi, be to, siekiant išlaikyti kūrinys kitą mazgą, mes taip pat norime sekti ankstesnių mazge. Ir tai leidžia mums, jei mes tam tikru mūsų susijusi sąrašo punktą, ne tik eiti į priekį, tačiau taip pat pakartoti atgal. Kadangi, kaip matėme atskirai susijęs sąrašas jei mes kada nors mazgas, ir visi staiga, mes nusprendėme Tiesą sakant, aš noriu eiti į mazgas tiesiai prieš mane, jūs turite pereiti visą kelias atgal į galvą ir pakartoti per kol jums rasti mazgas jūs ieškote. [00:03:35] Taigi, tai daro ką šiek tiek lengviau, nes mes bando pakartoti per mūsų susijusi sąrašą. Bet tai verčia mus sekti vieną daugiau žymeklis, todėl vienas mazgas žvaigždė. Gerai, kad čia ateina įdomus dalis. Mes ketiname praktika įgyvendinimo nuimti dvigubai susijusių sąrašus. Taigi, tai yra kažkas, kad yra visiškai teisingas žaidimas viktorinoje. Tai parodė praeities viktorinos. Taigi tikrai bus parengta kodo truputį C Nepamirškite, kad su visais tai smagu PHP Javaskriptą, mes vis dar turime prisiminti daryti C. Taigi atsigaivinti, kad Jei jaučiatės aprūdijęs. [00:04:12] Gerai, pažiūrėkime, ar mes galime tai padaryti. Gerai, gerai. Taigi mes ketiname pabandyti redaguoti teisę čia ir tikiuosi, tai eina kaip planuota. Viskas gerai, kas nors nori man duoti pasiūlymas, kaip turėčiau pradėti? Tik prielaida, aš priėmimas yra tai, kad aš jau jau struktūra apibrėžta, vienas parodžiau paskutiniame puslapyje, paskutinę skaidrę. Ir aš laikyti mano susijęs galvos sąrašas kai žymeklis vadinamas sąrašą. Ar kas nors nori get me prasidėjo? [00:04:42] AUDITORIJA: Ar jums sukurti naują mazgas skambinti per sąrašą? [00:04:45] HANNAH: Nuostabus, todėl mes ketiname sukurti Naujas mazgas nuskaityti per sąrašą. Man patinka, kad. Aš tiesiog vadina jį žymiklį, jei tai gerai. Ir kur ji turėtų iš pradžių pradėti? [00:04:57] AUDITORIJA: Tikriausiai ne Sąrašo vadovas. HANNAH: Gražus. Mes norime, kad prasideda galvos, kuris Sakiau bus saugomi sąrašą. Nuostabus. Iki šiol, taip gerai. Ir dabar, mūsų tikslas yra pakartoti per sąrašą kol randame mazgas su vertė n, kad mes norime ištrinti. Gerai? [00:05:13] Taigi dabar yra dalis, kur mes norime pakartoti per. Ar kas nors pasiūlyti būdas pakartoti per? [00:05:19] AUDITORIJA: kilpa. [00:05:20] HANNAH: kilpa. Aš myliu jį. Tiksliau sakant, mes galime pabandyti while cikle. Gerai, mes žinome, kad pasiekėte mūsų sąrašą, kai ką pabaiga? AUDITORIJA: Kai žymeklis yra niekinis. HANNAH: Kai žymeklis yra niekinis. Gražus, aš myliu ją. Gerai, gerai. Taigi atsiprašau, jei mano ribojantis petnešomis yra rūšies nukristi ekrano. Mes atnešė jį atgal. Gerai, gerai. Kas toliau? [00:05:48] Taigi mes žinome, mes norime ištrinti mazgas, kuris turi vertę n. Taigi tegul rasti atveju, kai mes iš tikrųjų rasite mūsų mazgas. Taigi, kaip man patikrinti, kad? Norėčiau tik pasakyti, jei žymeklis, tada, jei aš norite gauti naudos iš rodyklė, Aš tiesiog arrow n lygus n, parametras kad mes davė šią funkciją, mazgas, kad mes norime, kad iš tikrųjų pašalinti. Bet iki tol, kol čia klausimų? Gerai. Gerai, kad dabar galime padaryti greitai paveikslėlį ant lentos, siekiant vizualizuoti tai. [00:06:24] Taigi tarkime, kad mūsų mielas mazgas. Ir tai turi vertę, aš tiesiog pasakyti keturi. Ir ji pažymi, kad šalia mazgas mūsų susijusi sąrašą. Ir ten nieko prieš jį. Taigi, mes turime Ankstesnis nukreipta į nieką. Šiuo atveju, mes nukreiptos atgal. Gerai, tiesiog steigiant mano susiję sąrašą čia. Ir mes turime sąrašą, kuris rodo šios struktūros prasideda. Aš atkreipti viena daugiau išsamumo. Gerai. Aš atkreipti šiuo klausimu. Ir aš mintį, kad vienas atgal. Oi, atsiprašau. Taip, turiu tai atgal. Ar jį dar kartą. Gerai, kad mes einame. Gerai, gavo jį. Gerai, štai mūsų nuotrauką. [00:07:21] Gerai, kad mes norime apsvarstyti dvi bylas. Pirmasis atvejis yra, jei mazgas norime ištrinti yra pačiame pradžios mūsų sąraše. Ir tada, antras atvejis, kad mes norime apsvarstyti, yra, jei jis niekur kitur. Aš suprantu, kad tai visiškai nepatogus brėžinys su visais mano trynimas bet tikiuosi mes bandysime tai aiškiai su tam tikru kodu. [00:07:40] Gerai, kad galime padengti bylą kur mes rasti mūsų mazgas, ir tai ne labai pradėti mūsų susijusi sąrašą. Kiekvienas man pasiūlymas čia, ką Turėčiau daryti, kad iš tikrųjų pašalinti mūsų mazgas? Tai šiek tiek sudėtinga. Gerai? [00:07:56] Auditorija: Jūs turite imtis mazgas, kad būtų prieš jį ir kad ji rodo, kad vienas, kad būtų po to, ir imtis mazgas, kad būtų po juo ir padaryti tai rodo, kad prieš jį mazgas. HANNAH: Būtent. Gerai, kad tai yra atvejis where-- turime dvi bylas. Mes turime atvejį, kai mazgas, kad mes ieškome yra iš sąrašo priekyje. Gerai, tada tokiu atveju, kad jums aprašyta kitaip, tiesa? Tai kažkur kitur sąraše. Taigi jūs sakėte, turime pažvelgti į mazgą ankstesnės, ir padaryti ankstesnę mazgas atkreipti dėmesį į kitą mazgą. Taigi tarkime, mes bando imti penkias mano labai nepatogus piešimo čia. Mes norime įsitikinti, kad keturių dabar nurodo iki šešių. Keturi Next taškai iki šešių. Ir šešios ankstesnės taškai iki keturių. Tai mūsų tikslas čia, tiesa? Tai yra tai, ką aš manau, jums tik pasakė ten. [00:08:56] Gerai, kad galime gauti, kad pirmasis gabalas. Darom turi Ankstesnis Ankstesnis žymeklis. Taigi keturi artimiausi turėtų atkreipti dėmesį į tai, ką? Būtent šiuo atveju, šeši. Taigi, mes turime pasakyti žymeklį šalia. Gerai? Gerai. Taigi galime atsikratyti šio negraži paveikslėlį ir bandyti atkreipti šiek tiek gražiau vieną. Mes turime sąrašą galvą čia. Ir kad nurodo į pirmąjį mazgo mūsų susiję sąrašą, kuris sakėme yra keturi. Štai mūsų antrasis mazgas, penki. Ir trečiasis mūsų mazgas, šeši. Tiesiog bando atkreipti patį nuotrauka, tik šiek tiek daugiau švariai. Gerai, kad keturi artimiausi pradžių nurodo iki penkių. Penki Next taškai iki šešių. Šeši ankstesnį taškai iki penkių. Ir penkių ankstesnį taškai iki keturių. Tiek daug gražiau! Gerai, gerai. [00:10:04] Taigi, dabar, ką mes padarėme tik čia, šį kodo linija, kuris sako žymeklis Ankstesnis Kitas, todėl, ką tai reiškia? Tai reiškia, kad, jei mes ieškome penkių, eikite į ankstesnį mazgas, ir tai šalia turi dabar taškas penki artimiausi. Taigi, iš esmės, ką tai daro yra tai, kad manimi ištrinti šį rodyklę ir todėl iš karto pereiti per penkių. Ar tai aišku? Žinau, kad gali būti šiek tiek paviršutiniškas. Matau kai galvos linkteli. Tai gerai. Gerai, gerai. Dabar, kas kitas žingsnis? [00:10:39] Aš iš naujo į kitą. Dabar, kuri kita rodyklė man reikia keistis? Tai vienas čia. Šeši ankstesnį. Mes norime šešių ankstesnį nėra atkreipti dėmesį į penkių nebėra. Mes norime, kad ji rodo, kad keturi. Ar tai nuotrauka prasmės? Taigi dabar mes iš tikrųjų gali imtis penki iš. Taigi galime gauti, kad gabalas. Ką turėčiau daryti, prieš Pirmąjį naujo šešių ankstesnį iki keturių? Any ideas ten? [00:11:14] AUDITORIJA: nemokamai tarp mazgas juos nustatant, kad jis niekinis? HANNAH: cool. Tikrai, mūsų galutinis tikslas yra bus išlaisvinti mazgas. Taigi, mes galime padaryti, kad čia. Nemokama žymeklis. Absoliučiai. Bet net ir prieš tai, tegul just-- Mūsų tikslas teisę čia yra nustatyti žymeklį šalia Ankstesnis lygus žymiklį ankstesnę. Aš žinau, tai yra gauti uždengtas. Gerai, tegul take-- kietas. Ar kiekvienas pamatyti šį bottom line? Ar tai super maža? [00:11:50] Taigi, kol mes vykdyti ši eilutė čia, mes norime įsitikinti, kad žymeklis šalia nėra lygus nuliui. Nes jei žymeklis yra šalia niekinis, kokios klaidos aš gausiu, kai bandau nuoroda null žymeklį? AUDITORIJA: Sekundes kaltė. HANNAH: seg kaltės, gražus. Gerai, kad, jei tai ne niekinis, tada mes galime iš naujo. Ir mes turime šešis tašką vėl iki keturių. Klausimai Iki šio taško? Taip? [00:12:17] AUDITORIJA: jūsų pirmas jei pareiškimą, tu reiškia, kad rodyklę Kitas, arba [nesigirdi]? HANNAH: Aš norėjau žymeklis rodyklės n. Taigi, iš esmės, ką aš bandau padaryti yra pasakyti, esamą mazgą, kad aš Iteracja daugiau, dabartinė mazgas, kad Žiūriu, aš saugojimo rodyklė. Ir aš noriu žinoti, žymeklis s vertė, kuri šiuo atveju yra n. Ir aš noriu pamatyti, yra mazgas Aš ieškau už mazgo aš siekiant ištrinti? Štai kodėl mes turime čia žymiklį n. [00:12:47] AUDITORIJA: Taigi rodyklė vyksta n, galite nustatyti vertę ir laikyti jį į mazgą, vadinamo n? [00:12:55] HANNAH: Taigi tai kaip, jei aš esu išgyvena šį susijusi sąrašą ir nukreipta į penkių. Jei aš noriu gauti tą vertę, jei Noriu gauti šį numerį, 5, Turiu padaryti rodyklė rodyklės n. Cool? Taip. [00:13:07] AUDITORIJA: Ar n kintamojo vardą? HANNAH: Taip. Taigi, jei mes apversti atgal vieną skaidrių, n yra pavadinimas iš viduje vertė mazgas mūsų susijusi sąrašą. Ir aš žinau, jis gali gauti šiek tiek šiek tiek klaidina, nes mes taip pat skambinate dalykas kad mes norime ištrinti n. Štai jeigu tai viena eilutė ateina iš. Taip? [00:13:27] AUDITORIJA: Ką jūs turite [Nesigirdi], kaip jie dirba? Rodyklė [nesigirdi]? [00:13:35] HANNAH: Žinoma. Ar tu kalbi about-- kuri linija? AUDITORIJA: paskutinė eilutė [nesigirdi]. [00:13:44] HANNAH: Žinoma, Gerai. Taigi pažvelkime pavaizduoto paveikslėlyje Siekiant pabandyti tai paaiškinti. Aš atsiprašau, už kamera, klausimas buvo galime paaiškinti žymeklį rodyklę rodyklę ankstesnę. Gerai, kad tarkim mes penkių ir mūsų tikslas yra ištrinti penki. Taigi žymiklį šalia, kuris iš jų trys mazgai ar tai mums duoda? Tai duoda mums į šeštąjį mazgas, tiesa? [00:14:10] Gerai, kad dabar mes klausia už šešių ankstesnį. Gerai? Ir mes iš naujo tai būtų lygi keturių, kuris nutiko penki ankstesnį. Aš žinau, tai super sunku sekti. Aš tikrai rekomenduojame jums piešti jei jums patinka šis klausimas. Taip? [00:14:30] AUDITORIJA: Ar todėl, kad mes neturime [nesigirdi]? [00:14:37] HANNAH: Būtent. Taigi klausimas buvo, kodėl mes ne reikia patikrinti čia? Kodėl mums reikia patikrinti, žymeklis Ankstesnis nėra lygus nuliui? Ir tai todėl, kad mes jau atskirta atveju, jei žymeklis s pačioje pradžioje. Labai geras klausimas. Kitoks apie tai? Gerai, gerai. Taigi leiskite baigti jį. Mes beveik ten. [00:14:59] Taigi, kas, jei jis yra bent galvos? Ką daryti, jei vietoj bando ištrinti penki, mes iš tikrųjų norėjo išbraukti keturi? Ką turiu daryti? Na, aš noriu naujo mano galva, ką? Shout jį? AUDITORIJA: vienas po juo. HANNAH: Gražus. Gerai, kad mes norime sąrašą turi būti nukreipta kad ir kokia mūsų žymeklis šalia mazgas. Geras. Ir tik išsamumo aisiais dėlei, mes norite patikrinti, kad tol, kol mūsų sąraše yra ne nulis, tol, kol mūsų sąrašas nėra tuščias, tada mes norime nustatyti mūsų ankstesnę lygus null. Klausimų iki šiol? Vienas žingsnis toli from--? [00:15:53] AUDITORIJA: Ar tai būtų, jei sąrašas nėra lygus nuliui? [00:15:55] HANNAH: Taip, jūs esate visiškai teisus. Aš taip atsiprašau. Sąrašas nėra lygus nuliui. Nuostabus. Bandymas suderinti visa tai ekrane. Jis rūšies nukristi. Atsiprašome, vaikinai. Ir paskutinis, bet ne mažiau visiems mes turime padaryti, tai grąža. Gerai. Tai buvo daug sugrūsti iš tiesų greitai. Paimkite antrą pažvelgti šį perėmimą. Pasakykite man, jei turite kokių nors klausimų. Taip? [00:16:20] AUDITORIJA: Jei sąrašas yra vadovas, then-- laukti, nevermind. [00:16:26] HANNAH: Gerai, gerai. Taigi, tai yra, jei sąrašas yra ne galvos, mes jį pašalinti, kad ką mes įdėta. Taip? [00:16:31] AUDITORIJA: Ar galite paaiškinti Pirmasis, jei pareiškimas dar kartą? Jei iki n žymeklis lygus n? HANNAH: Žinoma. Taigi, mūsų tikslas visą šį funkcija ištrinti mazgas, kuris turi vertę n. Taigi, jei mes pastebėjome, kaip mes Iteracja per mūsų sąrašą, mazgas su vert n, tai viena norime ištrinti. Taigi visi trinama atsitinka viduje, kad didelis, jei ataskaitoje. Ar tai prasminga? Nemokama. Taip? [00:16:59] AUDITORIJA: Gal jūs tiesiog negali matyti tai, bet ne jums taip pat reikia linija už slinkdami į sąrašą? HANNAH: Nuostabus. Leiskite atnešti tai padaryti šiek tiek, ir mes mesti, kad apačioje dešinėje. Gal lenta tai jau buvo šiek tiek geresnė idėja. Taigi, kaip man perkelti žymiklį į priekį? [00:17:17] AUDITORIJA: pointer lygus žymeklį plius vienas. [00:17:20] HANNAH: Gražus. Taigi, kad leidžia mums toliau Iteracja per. Gerai. AUDITORIJA: Ar ne ten būti kitur? HANNAH: Vienas daugiau laiko? AUDITORIJA: Ar ne ten būti po seno, jei kitur pareiškimas [nesigirdi]? HANNAH: Kuris? Aš atsiprašau. [00:17:38] AUDITORIJA: Sankryþos, neturėtų ten būti kitur? HANNAH: Jūs visiškai galėtų turėti kitur. Kadangi turiu grįžti teisę ten, jūs nereikia kitur. Bet taip, geras klausimas. Gerai, taip? AUDITORIJA: Ar mes galvojame apie rodyklė kad juda per sąrašą pat atsižvelgiant į vertės iš kiekvienos sąrašo mazgas? Arba mes turėtume galvoti apie tai, kaip rūšiuoti išorės į sąrašą? [00:18:00] HANNAH: Bet viena yra gerai, manau. Kaip aš įsivaizduoju yra Sakau, gerai, aš esu žymeklis. Ir tai mane. Tai mano ranka. Aš ruošiuosi atkreipti dėmesį į skirtingas dalykų, kad aš noriu pakartoti per. Pirma, aš ruošiuosi atkreipti į sąrašą galvutėje. Ir tai man sako, aš tikiu, ketina atkreipti dėmesį į keturių. Ir taip me, būdamas išorės į sąrašą, I gali nurodyti, kad kiekvienas iš šių elementų. Taigi, manau, apie save kaip žymeklį. AUDITORIJA: Taigi, kai jūs ištrinti vienas iš šių elementų, ištrinsite save, taip sakant. HANNAH: Būtent. Taigi jūs ištrinti dalykas jūs nukreipta į. Taigi, kad, pavyzdžiui, matėme, kur mes esame bando ištrinti penki, kai aš nukreipta į penkių, Noriu ištrinti dalykas aš nukreipta į. Visiškai teisus. Taip? AUDITORIJA: Ar mes pasirūpinta tuo atveju, kai n yra nėra sąraše? HANNAH: Jei n yra nėra sąraše? Visa tai nutiks yra jums ketina pakartoti per ir kartoti per, tada jūs ketinate gauti žymiklį negaliojimo, ir tada jūs ketinate būti padaryta. [00:18:48] AUDITORIJA: Taigi mes turime grįžti nieko? HANNAH: Galėtume. Taip, kad jei tai apibrėžta funkcija, aš tiesiog pasakyti, kad jis grįžta negalioja nepriklausomai. Tačiau galite turėti kažką pavyzdžiui, grįžta sveikasis skaičius, ir jį grąžinti neigiamas 1, jei tai nepavyksta. Kažkas panašaus, kad. Klausimai with-- taip? Auditorija: [nesigirdi]? HANNAH: Atsiprašome? Auditorija: [nesigirdi]? HANNAH: Žinoma. Štai actual-- kai mes padaryti visa tai juda darbai visi šie rodyklės aplink, mūsų visa tikslas buvo atsikratyti mazgas kad mes ieškome. Taigi, šiuo atveju, išlaisvinant žymeklis, jei aš nukreipta į penkių, tai kaip ištrinti šį vidurinį mazgą. Štai nemokama žymeklis dalis. Tai prasminga? [00:19:29] AUDITORIJA: Taigi net minties tu negali [nesigirdi]? [00:19:31] HANNAH: Taigi mes prielaidą, pradžioje mes turėjome šiek sąrašą, kuris buvo already-- jie įdėti tai kartu. Taigi, siekiant statyti ši sąrašas, jie must've [nesigirdi]. Nemokama. Kitoks su tai? Taip? [00:19:46] AUDITORIJA: Ką daryti, jei sąrašas nėra lygi null liniją? [Nesigirdi]? HANNAH: čia? AUDITORIJA: Taip. HANNAH: Gerai, viskas, ką aš darau yra aš tiesiog įsitikinkite, kad prieš bandau dereference sąrašą prieš bandau prisijungti prie ankstesnio, Noriu įsitikinti, kad tai ne niekinis, kad aš ne gauti SEG gedimą. Nemokama. [00:20:08] Gerai, aš žinau, tai buvo gana daug gauti per. Taigi ši skaidrė bus prieinami jums. Taigi galite eiti per jį išsamiau. Taip? [00:20:17] AUDITORIJA: Kodėl sąrašas [nesigirdi]? HANNAH: Žinoma. Taigi sąrašas tikrai atkreipia dėmesį į Šis elementas čia, pirmasis elementas į sąrašą. Taigi jis negali turėti ankstesnę. Taip? [00:20:31] AUDITORIJA: Ar rodyklė tašką į tą patį adresą atmintyje? Ar tai rodo, kad pats adresas atmintyje kaip mazgas kad ji nukreipta į? [00:20:40] HANNAH: Taip, jis nurodo prie šio mazgo atmintį. [00:20:43] AUDITORIJA: Teisė, todėl kai [nesigirdi]? [00:20:47] HANNAH: Tam tikra prasme, taip. Gerai. Gerai, pereikime kartu su tai. O jei turite daugiau klausimų, klijuoti aplink pabaigoje ir mes galime eiti per jį dar kartą. Gerai, gerai. Dabar, mes turime judėti į priekį maišos lentelės, kartų, ir medžiai, kurie turite super susipažinęs su P-nustatyti penki, Speller. [00:21:04] Taigi maišos lentelė yra tik masyvas su atskirai susijusių sąrašus arba dvigubai susijęs sąrašus atskilimas jį. Taigi, mes turime kokią nors nuo masyvą. Ir kaip mes žinome, kurie iš jų masyvai kibirai patekti į, mes naudojame maišos funkciją. Taigi šiuo atveju, gali kas nors Atspėkite, kas maišos funkcija būtų pagrįstas tik kai iš įvesties ir išvesties? [00:21:31] AUDITORIJA: Laiškas skaičius abėcėlės. HANNAH: Būtent. Jis tiesiog iškelia juos abėcėlės tvarka. Viskas, kas prasideda Yra įdėti į pirmojo segmento. Viskas su B yra įdėti į Antrasis kibiras, tt, ir taip toliau. Nuostabus, Gerai. Ir maišos funkcija yra bet funkcija, kuri trunka žodis ir jums pasakys, ką kaušas ji priklauso iš. Taigi, kuris įrašas mūsų masyvas ji priklauso iš. [00:21:55] Taigi kiekvieną kartą aš duodu maišos funkcija žodį ji turėtų pasakyti pats vieta kiekvieną kartą. Taigi, jei mes naudojame maišos funkcija nuo ankstesnės skaidrės kur mes rūšiavimas pagal pirmoji raidė abėcėlės, kiekvieną kartą aš atiduosiu savąjį maišos funkcija "obuolys" jis visada turi mane atgal 0. Taigi, jei aš turiu obuolių įdėti į mano maišos lentelė, jei duosiu "obuolys" mano maišos funkcija, ji turėtų pasakyti, eikite įdėti jį į kibirą 0. Jei aš ieškau obuolys mano maišos lentelė ir sakau, kur galybė obuolių gyvi, jūs paprašykite savo maišos funkciją. Ir ji sako, eikite į kaušas 0. Viskas gerai? Klausimai su maišos funkcijos? Nuostabus. [00:22:34] Čia yra šiek tiek daugiau Išsamus pasiūlymo paaiškinimas kas maišos funkcija gali atrodyti. Gerai. Dabar, su maišos problema funkcijos yra idealiame pasaulyje, mes turime tik vieną dalykas kiekviename segmente. Bet iš tikrųjų, yra ne tik vienas žodis kad prasideda A. Čia nėra tik vienas žodis, kuris prasideda B. So šiuo atveju, jei mes staiga gauti "uogų" ir mes norime jį į mūsų maišos lentelė, ir matome, oi, ne, bananų yra jau ten, ką mes darysim? [00:23:03] Na, mes turime dvi galimybes. Pirmasis variantas yra linijinis zondavimo, kuris tiesiog reiškia, eiti ieškoti Kitas tuščias kibiras. Eiti rasti kitą tuščią masyvo įrašą. Ir tiesiog įdėti "uogų" ten. Taigi, aš žinau, tai turėtų eiti su bananu ir kibirą viename. Bet tiesiog įdėti jį į kibirą trijų, nes kibirą trys yra tuščias. Kitas variantas yra turbūt ką įgyvendinti savo p-rinkinys, kur jums turėjo atskirą Grupavimo. Taigi kiekvienas iš jūsų kibirai, kiekvienas iš jūsų masyvo elementų, ne tik turi vieną žodžius, bet iš tikrųjų turi žymiklį į žodžių sąrašą. Taigi, kad jei jūs turėjote bananų jūsų maišos lentelė ir staiga norėjo pridėti uogų, jokių problemų. Tiesiog pridėkite uogų prie pabaigos, arba pradžioje, jūsų susietą sąrašą. Gerai, nuostabus. Klausimai su maišos stalai, kol mes eiti? [00:23:58] Gerai. Medžiai ir bando. Gerai, kad tai buvo dar vienas variantas įgyvendinimo žodyną. Galima turite pabandyti. Taigi tai specialios rūšies medžio, elgiasi kaip kelių lygių maišos lentelę. Taigi jūs pamatysite paveikslėlį kur jūs turite masyvą, kad nurodoma ir matricos krūva kad taškas dėl matricos krūva kad taškas dėl matricos krūva. Ir mes pamatyti, ką tai atrodys ateityje skaidrės. Ir apskritai, medis yra bet koks duomenų struktūra , kurioje duomenys yra organizuojamas kai hierarchijoje. Taigi, kur mes matėme mes turime kai suprasti rūšiuoti iš viršaus lygiu kitą lygį, Kitas lygis, kitą lygį. Taigi tai turbūt aišku, su kai kuriais konkrečiais pavyzdžiais. Taigi čia mūsų medis. Galite matyti, kad juo turi kritinį lygį kad mes pradėti su tuo šakninis mazgas, vienas. Ir mes galime eiti per mūsų medžio. [00:24:50] Dvejetainis medis tikros rūšies medžio. Ir tik specifikacija už dvejetainis medis yra tai, kad kiekvienas mazgas turi ne daugiau kaip du lapus. Taigi jūs nesiruošia pamatyti bet Šių mazgų turi tris ar keturis arba kai kurie kiti lapų skaičius. Ir tada net daugiau specifinių yra dvejetainis paieškos medis kur kiekvienas mazgas į kairę mazgas teks vertė mažesnė. Ir kas vertė teisė bus didesni. Taigi, jei jūs matote 44 yra mūsų šaknys, į kairę, 11, 22, ir 33 visi mažiau nei mūsų šaknis. Ir dešinėje pusėje, yra visi numeriai bigger-- 66, 55, ir 77. Ir dėl šio objekto pasakytina kiekviename medžio lygiu. [00:25:37] Taigi, kai mes einame žemyn 22, 11, ir 33, dar 11 yra mažesnis nei 22, ir 33 yra didesnis nei 22. Ir tai leidžia lengviau ieškoti nes jei mes ieškome skaičių, mes žinome, kurie tiksliai filialas sekti žemyn. Taigi tai turėtų priminti jums Šiek tiek dvejetainis paieškos. Taip? [00:25:56] AUDITORIJA: Taigi, kai esate aprašant dvejetainis, Jums sakė, kad tai yra ne daugiau kaip du lapus? HANNAH: MM-hm. AUDITORIJA: Ar tai turi mažiau? HANNAH: Taip. Taigi tarkime, pavyzdžiui, jūs neturėjo lyginį ko ir tu negali užpildyti visus savo lapai, tai gerai, jei vienas turi vieną. Gerai? Nuostabus. Visi kiti klausimai medžių? Gerai. [00:26:16] Atgal į mūsų bando kaip aš kalbėjau apie šiek tiek anksčiau, kaip mes turime šiuos kelių lygių matricos. Taigi, šiuo atveju, mes pradėti viršuje. Ir mes galime stebėti bet kokį tikrą žodį žemyn. Taigi tarkime, mes norėjome ieškoti Turingas. Mes prasideda T, atlikite jį žemyn į masyvą, kuriame U, ir sekti jį žemyn, kol mes pasiekti šį mažai deltą, kuri pasakoja, taip, jums rasti žodį. Išvalyti bando? Viskas eiti ten? Taip? AUDITORIJA: Ar Delta simbolį turi užimti erdvę per pabandyti? HANNAH: Taip, taip, tai nėra nebūtinai net reikia, kad būtų delta. Bet mums reikia šiek tiek kelią Parašykite computer-- Atsiprašome, taip, kad mes žinome, kad TUR nėra žodis. Nes tarkim mes neturėjome šis iš delta koncepcija, ši koncepcija sveikinimas, galite rasti žodį, būtų pereiti ir pakartoti T-U-R, ir tada pasakyti, nuostabus, aš ją radau! Jis turi būti žodis. Bet tai tikrai ne. Mes norime, kad visa Tiuringo būti žodis. Taigi mes turime kažką pabaigos, kad sako, sveikinimai, radote teisėtą žodį. AUDITORIJA: Taigi, jei jūs turėjote, kaip 26 raidės abėcėlės, jūs iš tikrųjų turi 27 klavišai Jūsų pabandyti? [00:27:24] HANNAH: Nuostabus, taip. Taigi iš tiesų, manau, kad bus ant kito šliaužiklio. Ta-da! Kur, jei turite mazgas jūsų pabandyti, jūs teks 27 vaikus, o ne 26. Bet kokie sutapimai su kad klausimai? Taip? AUDITORIJA: Kodėl bando imtis, kad daug vietos [nesigirdi], kaip jūs einate? Kodėl jis laikomas [nesigirdi]? HANNAH: Žinoma. Grįžkime. Kyla klausimas, kodėl yra bando tiek daug didesnis nei kažką panašaus maišos lentelę. Taigi, kiekvienai iš šių lygmenų, net jei jie nėra čia išdarinėtos, jūs turite turėti visus 26 simbolių. Ir todėl, kad jūs galite ne sako, oi, bet kaip už Turingas, aš nereikia turėti bet kurią iš tų, tie patys dalykai dėl U. Na lygio, jei staiga jūs norėjote pridėti kažkas, kad buvo kaip T-H, jums reikia turėti galimybė pridėti šį žodį. Taigi už kiekvieną laišką, jūs ketinate turėti turėti krūva masyvai atskilimas jį. Taigi jūs galite pamatyti, kaip jis nori gauti tikrai didelis, tikrai greitai. Visi kiti klausimai? Gerai. Taip? [00:28:29] AUDITORIJA: Kada bando greičiau nei maišos lentelėmis? [00:28:33] HANNAH: Kada bando greičiau nei maišos lentelėmis? Taigi, jei jums teko tikrai blogai maišos funkcija. Taigi leiskite pasakyti, kad aš buvo, pavyzdžiui, čia yra jūsų maišos funkcija. Nesvarbu, koks žodis galite duoti man, aš visada ketina įdėti jį į masyvą įrašą 0. Ir taip mes galų gale su vos išleidimą viskas viename dideliame seniai susijęs sąrašą. Ir taip peržvalgos laiko užtruktų blogiausiu N, jei tai pačioje pabaigoje mūsų sąrašą. Su pabandyti, mes tiesiog turime pakartoti per žodžio raides. Taigi, net jei mes pridėjome krūva daugiau žodžių mūsų pabandyti, ji nebūtų priimti mus ilgiau rasti tam tikrą žodį. [00:29:09] Visi mes turime padaryti, yra, pavyzdys, šiuo atveju, tarkim mes ieškome priartinimu, mes tiesiog turime pakartoti per Z-O-O-M, keturios raidės. Taigi, kad tik ilgis žodis priartinimu. Nesvarbu, kiek daugiau žodžių mes įdėti į šį pabandyti. Mes visada galite jį gauti tose keturiais etapais. Nuostabus. Taip? [00:29:32] AUDITORIJA: Taigi [nesigirdi] yra masyvas, tiesa? [00:29:34] HANNAH: MM-hm. AUDITORIJA: Jei esate ieško [nesigirdi] Jūs turite pereiti per Jūsų masyvas rasti [nesigirdi]? HANNAH: Žinoma. AUDITORIJA: Ar ne tai, kad daugiau laiko? HANNAH: Jei aš ruošiuosi pasakyti, kad mano masyvas yra visada bus A, B, C, D, E, F, G, bla bla bla, Taigi, jei aš visada žinau, tai toje pačioje tiksliai tam, jei aš visada žinau, tai abėcėlės tvarka, Galiu tik pasakyti, O yra skaičius taip ir taip abėcėlėje. Tiesiog šokinėti į tą vietą. Nes prisimenu, su matricos, mes galime prieiti prie bet tos masyvo konstanta elementas laikas, jei mes žinome, kur mes ieškome. Taip? [00:30:09] AUDITORIJA: Ant Ankstesnis skaidrių [nesigirdi] 27, tačiau 26 pirmą vieną. [00:30:14] HANNAH: Atsiprašome? [00:30:15] AUDITORIJA: Ar ne pirmą kartą vienas 0, todėl nebūtų tai būtų 26? [00:30:18] HANNAH: Žinoma, todėl, kai mes sakome, 27, tai ketina suteikti mums indeksai 0 per 26. Bet jei jūs iš tikrųjų skaičiuoti tiems iš, tai bus 27. Geras klausimas. Kitoks? Taip? [00:30:31] AUDITORIJA: Taigi yra bando lėčiau nei maišos lentelėmis? [00:30:34] HANNAH: Bandymas ketinate būti, kad teorija, greičiau nei maišos lentelės bet užima daugiau atminties. Taip? Auditorija: [nesigirdi]? [00:30:45] HANNAH: aš atsiprašau, aš ne išgirsti jus. Auditorija: [nesigirdi]. 0-25 suteikia jums 26. [00:30:54] HANNAH: nuo 0 iki 25-oji jums 26, į dešinę. [00:30:56] AUDITORIJA: Ir tada [nesigirdi]. HANNAH: Teisė. Taigi skaičius mes nurodant yra dalykų mūsų masyvas skaičius. Taigi, jei mes turime 27, tai ketina duoti mums 0 per 26, kuri duos mums kambarys, šiuo atveju, Nesu įskaitant kabutes. Taigi mes vis 0 per 25 yra pirmieji 26 abėcėlės raidės, ar visos 26 abėcėlės raidės. Ir tada, kad paskutinis dalykas, atvykstant 26, yra bus patikrinimas ženklas arba delta. Kitoks? Nuostabus. Pamiršote savo erdvę. Gerai, gerai. [00:31:31] Taigi, mes jau palietė ši. Tačiau didelis kompromisą tarp bando ir maišos lentelės yra tai, kad bando numatyti, kad teorija, nuolatinis ieškoti kartų, tačiau naudoja visai daug atminties. Gerai, dabar mes turime šiek tiek mažiau sudėtingas struktūras, ir mes bus padaryti su C, ir mes judėti į dešinę kartu. [00:31:49] Taigi kaminai, mes matėme tai į paskaitą, kur jūs turi kažką panašaus kamino padėklai kur Paskutinis dalykas, kurį jūs įtraukėte ant kamino vyksta būti pirmas dalykas, kurį kilimo. Taigi tai, kas iš tikrųjų apibrėžia steką yra tai, kad paskutinis dalykas, kurį įdėti į bus pirmas dalykas, kurį jūs kilimo. Ir terminologija, kad mes naudojame jei mes ketiname daryti kažką, jei mes ketiname pridėti kažką mūsų kamino, mes vadiname, kad stumti. Ir jei mes kažką išjungti, mes jį vadiname Popping. Ir jei mes ketiname įgyvendinti krūvą, mes reikia būtinai sekti tiek dydis ir talpa. Taigi, bendras skaičius elementų galime laikyti ir dabartinis skaičius elementų kad mes laikome. [00:32:27] Ir labai panašiai, mes turime eiles. Ir vienintelis skirtumas yra vietoj su kaminai, sakėme paskutinis dalykas, mes įdėti yra pirmas dalykas, kurį mes kilimo. Taigi su eilėse, Pirmas dalykas, mes įdėti bus Pirmas dalykas, kurį mes imti. Taigi tai yra, pavyzdžiui, jei esate iš tikrųjų rikiuojasi parduotuvėje ir jūs padedama, Tada pirmasis asmuo atitinka turėtų būti pirmasis asmuo, turi būti padėjo. Taigi, kad būtų eilė. [00:32:52] Taigi, mes turime sekti dydis, pajėgumas, ir galvos, nes mes esame ketina imtis visiems išjungti priekio iš vietoj nugaros sąrašą. Klausimai apie tai? Bet C klausimai, kurie jums trukdo? Duomenų struktūros, bet to fun stuff? Gerai, gerai. Taigi aš jį perduoti Alison į peršokti į šiek tiek daugiau programavimą. [00:33:14] ALISON: O, mes pamatysime. Pamatysime, kaip gerai aš čia. Gerai, aš ruošiuosi pabandyti ir skristi per šią medžiagą, vaikinai. Ona išėjo labai į gylis apie visus savo daiktus. Aš ruošiuosi pabandyti duoti Jūs greitai sprogimo apžvalga kad galėtume gauti Davin su visais įdomus JavaScript ir saugumo dalykai kad galbūt jūs iš tikrųjų nori išgirsti daugiau apie. [00:33:33] Gerai, kaip sakė Ona, jei jūs turite kokių nors klausimų, Aš einu per greitai, prašome leiskite man žinoti. Aš atsakyti į klausimus, kaip reikia. Taigi, norint pradėti, mes ketiname pradėti turbūt vienas iš pirmųjų dalykų, Jūs išmoko internete programavimas, teises. Taigi CHMOD, vaikinai turėtų buvote meistrai tai su visa web programavimo, kad jūs darė pastaruoju metu. Tai iš esmės yra tik komanda kad keičia leidimus arba prieigos teises mūsų failų sistemos objektus. Žinoma, kad iš tikrųjų pamatyti tai, jei esate turintys bet problemų su jų per jūsų problema rinkinių, jums gali tekti naudoti ls -l, kuris yra ilgas, gauti vaizdas lyg tai, kur jūs iš tikrųjų pamatyti visus priežastys, dėl kurių bylos leidimus. [00:34:16] Ir tikrai, mes tik ketina eiti per gana greitai tik gana daug ką kiekvienas iš jų reiškia. Taigi mes dienas čia, o tiesiog stovi kataloge. Akivaizdu čia matome rwx, kuris yra skaitoma, rašomus ir vykdomąjį. Tai taip pat gali būti atstovaujama kaip bitai, kuri mes gauti į kitą puslapį. Taigi kiekvienas triada, kad mes matėme čia, todėl tris triadas. Mes rwx r nieko Rx ir nieko x šiam pirmą failą. Tai ši bendroji struktūra. [00:34:49] Taigi, mes turime tam tikrą katalogą. Mes turime vartotojų grupę šių leidimų. Kai grupė, kuri turi šiuos leidimus, ir pasaulis, kuris turi leidimą. Jūs galite galvoti apie tai, kaip triados. Jūs galite galvoti apie tai, kaip trys bitai. Taigi jie gali turėti reikšmes bet nuo 0 iki iki 7, kuris yra, kodėl kartais mes turėjome jūs chmod 600 vietoj CHMOD RW whatever. Mes patekti į pavyzdyje. Bet iš esmės, jūs galite galvoti iš jų, kaip arba ką tik rwx, arba galite galvoti apie juos kaip kai kurie skaičius, jei tai pirmasis čia žymi tarp skaičių 0 ir 7, šis antrasis vienas žymi tarp skaičių 0 ir 7, ir trečiasis žymi skaičių tarp 0 ir 7 skaičių, OK? [00:35:38] r turi reikšmę būti 4. w turi reikšmę iš 2, ir X turi reikšmę 1, kuris yra, kodėl šis Leidimas čia būtų chmod 700. Kadangi šiuo atveju čia, tai sako, kad mes buvo pirmą kartą tiek ten yra apversta ant. Taigi, mes turime 4 skaitymo. Antra tiek yra apversta ant w, kuris yra 2, todėl dabar turime 6. Ir trečia tiek yra apversta ant X, kuris yra 1, todėl mes gauti septynių. Ir, žinoma, mūsų grupė ir mūsų pasaulis yra kiekvieno 0. Taigi, tai taip pat yra ekvivalentas chmod 700. Ir aš tikrai pabandyti suprasti skirtumą tarp tų žemėlapių. Aš nesu įsitikinęs, jei jis turi sugalvoti viktorinoje anksčiau, tačiau tai būtų klausimas, kad galėčiau paklausti. [00:36:18] Tiesiog truputį vyksta net toliau į CHMOD čia čia yra labai bendro pobūdžio struktūra yra chmod skambutį. Taigi žinoma, mes chmod čia. Nuorodos, ką tai reiškia, kad yra Kas mes esame suteikiant šias teises į arba kurie mums imtis šių Permissions atstumu nuo. Taigi, mes turime čia, teises, kaip mes jau davė jums chmod pliuso x, kaip matysime vėliau. tiesiog reiškia duoti tai konkretus leidimus visiems. Duok jiems visiems. Taigi jums gali labai gerai būti u plius x arba g plius x arba o plius x arba kelių jos. Taigi, kad pirmoji dalis yra visada bus nuorodos. Kas mes suteikiant šias teises, arba kurie mes juos vartoti nuo? [00:37:03] Antrasis yra operatorius. Taigi jūs, vaikinai dažniausiai nagrinėjami plius. Tai suteikia teises į kas esate suteikiant jiems, o minusas, logiškai, pašalina juos. Taigi nieko per daug baisu ten. Ir tada režimai yra tai, ką mes kalbėjome apie skaitymo, rašymo, arba vykdyti. Taigi plius X reiškia duoti vykdomąjį leidimus visiems. Ir tada, žinoma, dėl kurių konkretus failo ar katalogo. Gerai? Kiekvienas geras chmod? Ne per blogai? [00:37:37] Gerai, kad HTML, kas nors iš jūsų yra pakankamai suaugę to-- MySpace amžius? Aš pasiunčiau tai mano skyriuje, ir tiesiog pusė žmonių pažvelgė į mane, kaip aš buvo pamišęs. Ir man buvo kaip, vaikinai, mes ne, kad senas. Nagi. Taigi hiperteksto kalba, tai sąžiningai tik už jus būdas rodyti tam tikrus dalykus internete. Taigi, tai žymėjimo kalba. Tai ne skriptų kalba. Nėra jame logika. Ji yra tiesiog pakeisti būdas kažkas yra rodomas. Gerai, kad yra svarbu, atskirti padaryti. Tai laikoma kalbą, nėra skriptų kalba. [00:38:12] Taigi čia mes turime HTML žymes. Šiame skaidrės tikriausiai dauguma tie, kurie jums turėtų būti susipažinę su ir tikrai patogu. Taigi akivaizdu, kad turime Mūsų HTML tegus, kuris nurodo, kad viskas Tarp šių dviejų bus HTML. Mes turime ryšį, kuris akivaizdžiai duos jums Nuoroda į išorinio interneto puslapyje. Kai pavadinimas, kaip mūsų galva čia. Ir mes turime kūną h1, kuris yra galva, todėl bus padaryti jį gražus ir drąsus ir didesni. Ir tada, mes turime kai p, kuris yra dalis. Jūs tikriausiai turėtų žinoti ir būti susipažinęs su dalykų pavyzdžiui, kaip jūs įtraukėte vaizdą, yra yra kitų antraštės klasės? Aš neabejotinai būtų patogu su div. Taigi jie turi žymų dauguma kad jums turėtų būti susipažinę su. Bet, žinoma, kaip ir viskas CS 50, sąrašas nėra baigtinis. Todėl įsitikinkite, kad jums atsigaivinti kad. [00:39:08] CSS, todėl CSS, jei kas nors iš jūsų žiūrėti mano seminaras iš prieš dvi savaites, yra tikrai tik būdas stiliaus savo tinklalapį? Gerai, kad mes turime tam tikrą žymėjimo kalbą. HTML, kuri rūpinasi tik tekstą ir kur ji gali būti ant puslapio. Bet CSS yra tikrai tai, ką daro tai gana. Jūs galite turėti juos savo HTML failai, bet mes kalbame apie vėliau Aš esu gana įsitikinęs, ji gali būti šalia skaidrių, tai yra įprasta praktika, ir iš tikrųjų praktika, kad mes tikrai skatina, jums išlaikyti juos atskirti, kai mes kalbėti apie MVC ir kad visa paradigma. Tai tikrai, kas tai atiduria. [00:39:42] Taigi CSS yra tiesiog būdas kad viskas atrodo gana. Dalykų, čia, kaip kūno ir #title ir .info, jie vadinami selektoriai ir ką jie yra jie pasirinkti konkrečius dalykus per savo HTML failą ir taikyti nepriklausomai nuo stiliaus, kokia rūšiuoti dalykų, kad jūs norite, kad šiuo konkrečiu elementu savo interneto puslapis. Taigi čia mes turime fono spalva ir spalva ir šrifto šeimos, kad manimi yra taikomos nepriklausomai yra organizme. Taigi, jei mes pažvelgė atgal čia ją nebūtų taikomos pavadinimą. Jis būtų taikomas tik tai, kas yra Šiose kūno selektoriai, gerai? [00:40:22] Su pavadinimu čia, tai bus tas pats, teksto spalva yra mėlyna tik ketina paveikti tai, kas per Pavadinimo selektoriai. O taip pat informacijos čia, tekstas bus rožinė, kokia info, kuris yra čia. Taigi vienintelis dalykas, kuris būtų rožinė Šiame puslapyje yra data, pirmadienis, lapkritis 17, 2014. Gerai, kad CSS yra tiesiog būdas labiau kontroliuoti over-- taip? [00:40:48] AUDITORIJA: Kodėl jūs turite naudoti maišos su pavadinimu? [00:40:51] HANNAH: Kita skaidrė, žada! Mes ten. Taigi tai, kodėl mes turime naudoti maišos. Taigi selektoriai imtis trijų pagrindinių formos, kad mes su jumis pasikalbėti vaikinai apie tai. Aš fyou norite sužinoti daugiau, ten yra daug ten. Yra puikus CSS dokumentai. Yra žyma, pavadinimas, kuris turi daryti tik su savo įprastą žymeles HTML. Taigi h1, P, div, H2, tie dalykų rūšių. Ir mes galime tik pavadinimas tiems, kaip yra. Taigi, kaip matome čia kūno, tai normalu žymė. Taigi, mes galime tiesiog įdėti kūną, kai mes kalbame mūsų CSS faile. [00:41:26] Su pavadinimu, visai priežasties mes turi tai maišos yra mes turime tai, kas laikoma ID. Taigi ID visada turėtų būti unikalus savo HTML puslapį kad, kai esate nuoroda į tai, jūs žinau, kad jūs tik nuoroda vienam konkrečiam dalykas. Taigi, šiuo atveju čia, su mūsų h1 čia CS 50 peržiūros sesija, mes turime teisę į nuosavybę, ID. Taigi, siekiant tik nuoroda į, kad gabalas mūsų HTML, mes maišos titulą. Tiesiog pagal susitarimą ID yra paskirta su priešais juos maišos. Tuo pačiu būdu, matome, informacijos čia yra klasė. Ir taip klasę su CSS yra paskirta dot klasės arba dot ką, kad klasė yra. Taigi šiuo atveju čia, tai informacijos. [00:42:10] Taigi aš jį atgal. Abu šie būtų rožinė mūsų CSS čia nes jie abu turi informacijos klasės. Ir mūsų CSS failą, mes paskirta kad nieko su info klasės turi būti rausva. Ar tai prasminga? Taip? [00:42:27] AUDITORIJA: Jei buvo padaryti viskas Kūno balta, ir tada pabandyti padaryti kažkas viduje mėlyna, būtų, kad sukelti problemų? [00:42:34] HANNAH: Taigi CSS pakopinių stilių. Taigi kas yra link dugnas bus viršesnės. Taigi, jei jūs ką nors su kūnu, ir jums padaryti visa balta, ir tada vėliau galite pakeisti pavadinimą ar jums pakeisti tekstą per kūną, jis perrašo, kad. Taigi nieko link dugnas bus viršesnės. Taip? [00:42:56] Auditorija: Ir ID yra unikalus, bet klasės gali būti daugiau? HANNAH: Teisė. Taigi ID turi būti unikalus ir klases gali vadina daugelio dalykų, kaip jūs norite. Visi kiti klausimai? Taip. [00:43:09] Auditorija: [nesigirdi]. Man įdomu, ar kad daro skirtumą. HANNAH: Aš atsiprašau, kas buvo klausimas? AUDITORIJA: Yra mažas "F" ir kapitalas "F." HANNAH: Taigi skirtumas tarp mažo "F" ir sostinės "F" neturėtų padaryti skirtumą. Taigi "F" bus 15 Bet kuriuo atveju. Šaunu, dar ką nors? Kiekvienas geras, CSS? Taip? [00:43:30] AUDITORIJA: Atsiprašau. Ar turite klasę ir ID? [00:43:35] HANNAH: Taip, galite. Ką gali turėti tiek klasę ir ID. Ir aš labai rekomenduoju išbandyti tai savo. CSS jums geriausia mokytis tik darant kažkas, labai paprastas interneto puslapis, rengiant kai CSS, ir tik pamatyti, kaip jie sąveikauja. Ir gausite labai gera, intuityvus jausmas už, kaip ji veikia. [00:43:56] Gerai, visi gerai su CSS? Jūs visi ketina padaryti gražūs svetainės su CSS dabar. Gerai, geriausia praktika, tik dalykų, kuriuos reikia turėti omenyje, daiktai that-- tai kodėl mes dokas Jūs dizainerio ir Papuošalą. Taigi uždaryti visus savo HTML žymes. Taigi, jei turite atvirą kūną, turėtų būti arti kūno. Jei turite atvirą dalį, turėtų būti artimas dalis. Patikrinkite, jūsų puslapis patvirtina. Vaikinai turėtų būti labai gerai susipažinęs su šia iš p-septynis su AP 50 finansus su W3 tvirtintojas. Ir kaip minėjau anksčiau, vienas iš mūsų didžiųjų paradigmų yra atskirti savo stilių su CSS iš savo antkainį, kuris yra HTML. Ir tada, žinoma, mes turime tai puikus XKCD žemyn čia. Yay, Comic Relief! [00:44:38] Gerai, TCP / IP. Tarp jų ir HTTP, Iš esmės jie abu protokolai. Taigi jums gali tiesiog manau, iš jų kaip taisyklių rinkinys kad reglamentuoja, kaip viskas pereiti per internetą. Taigi perdavimo kontrolė protokolas, arba interneto protokolą, yra tik būdas įsitikinti, kad kad duomenys gauna kur ji vyksta ir kad mes žinome, jeigu mes niekada trūkstamus duomenis. Taigi, jei jūs manote atgal į paskaitą prieš porą savaičių su Dovydo kur mes turėjome keturis vokus, jie visi buvo sunumeruoti, kaip vienas iš keturių, du iš keturių, trys iš keturių, keturi iš keturi, tai tik taisyklių rinkinys. Mes sakėme, gerai, kai mes siųsti daugiau nei vieną paketą, mes ketiname sunumeruoti tai, ką numeris yra ir kiek iš viso, kad vartotojas turėtų gauti. [00:45:19] Ir tai tik sakau, kas gauna duomenis, ar jie Dotarłeś viską arba jei kažkas pasiklydo pakeliui. Ir jie turi paprašyti jį dar kartą. Tai tikrai tik taisyklių rinkinys. Štai kaip jūs galite galvoti apie tai, gerai? Taip pat, ji nurodo uostą, kuris vaikinai can-- Žinau paskaitos metu jie turėjo visą sąrašą uostus. Bet mes neturime juos čia dabar. [00:45:41] Taigi hiperteksto perdavimo protokolas yra, vėlgi, tai dar vienas protokolas. Taigi, tai dar vienas taisyklių rinkinys kad valdyti, šiuo atveju, kaip hiperteksto perkeliama. Taigi jis tiesiog leidžia naršyklių kalbėti interneto serverių. Ir kaip mes sakėme, čia tai kaip žmogaus Patvirtinimas ryšio. Tai tiesiog būdas valdyti kaip žiniatinklio serveris yra ketina bendrauti su savo naršyklėje. Ir mes turime tik keletą pavyzdžių. Mes turime keletą prašymų čia kur GET yra metodas. Mes turime HTTP 1.1, kuri yra protokolo versiją už mus. Ir tada, priimančiosios, kuri yra tai, ką mes iš tikrųjų bando prieiti. Ir tada, kaip matote čia, mes kažkiek šio 200 atsakymą Gerai, kaip mūsų HTTP atsakymo kodas. Mes turime didelį sąrašą aš ruošiuosi atsigriebti per vieną sekundę kad vaikinai turėtų būti susipažinę su. Ir mes turime šį Turinio tipas text / html, kuri tiesiog sako, kokio tipo duomenis mes gauti iš serverio, gerai? Šis kompiuteris, o tai turinio tipas yra dalis HTTP antraščių. Jūs galite turėti keletą ar kiek būtina kontekste, kas jūs susiduriame su. Kartais jūs turite daug informacija iš jūsų serveryje. Gal jie prašo daug informacijos iš naudotojo. Ji kinta priklausomai nuo konteksto. Jei pažvelgti į CS 50 studijų, ten daug daugiau apie tai. Bet mes turime daug gauti per, todėl aš ruošiuosi eiti tiesiai pirmyn, jei kad viskas OK su jumis vaikinai? Nemokama. Prašome palaukti. Aš tikrai turi, kad Visą sąrašą of-- huh! Aš nežinau, kodėl tai visi per čia taip. Aš maniau, kad aš tiesiog persikėlė ją, o aš buvau sitting-- [00:47:15] DAVIN: Ar norite išmokyti jį? Arba jūs norite mane mokyti? [00:47:17] AUDITORIJA: aš maniau, mes galėtų tiesiog parodyti juos pradėti. Aš turiu galvoje, jūs galite pereiti į juos toliau, bet aš maniau jis padarė daugiau prasmės, nes I buvo tik kalbame apie HTTP statuso. Taigi čia Visą sąrašą. Manau, kas nutiks yra Davin ketina eiti į juos vėliau. Bet ten visa sąrašas Peržiūrėti skonio ateiti. Gerai, mes ketiname blow-- tai vyksta būti PHP avarijos metu, kaip niekas kitas. [00:47:41] Taigi PHP Hypertext Preprocessor, tai grįžtamojo Backronym, tai reiškia, kad buvo pavadintas ką nors kita. Ir tada jie buvo kaip, šis nėra prasmės. Taigi jie tiesiog pavadino it-- ir tai buvo akronimas, kad jie tiesiog tapo PHP hiperteksto pirminio apdorojimo, kuris tiesiog neturi prasmės. Pramogos istorija. Tai programavimo kalba. Taigi tiek, kiek noriu pabrėžti, kad HTML nėra programavimo kalba, tai žymėjimo kalba, PHP yra programavimo kalba. Kaip jūs žinote, tai yra nes yra logika. Yra Conditionals. Mes turime kintamuosius, o mes nė vienas iš tų dalykų, į HTML. [00:48:12] Gerai, tada mes turime tai tiek tiek, kad čia tarsi PHP skonį. Taigi pagrindai, kintamųjų vardai pradėti su dolerio ženklu. Daug žmonių tai patinka. Primena mums pinigus. Tai viskas puiku. Mes visi norime PHP. Taigi, mes nenurodysite Kintamojo tipas nebėra. Jis yra nustatomas vykdymo metu. Vertėjas bus kaip, oi, mes tiesiog paleisti per, ir, atsižvelgiant į aplinkybes, matysime, kokių tipų tipų Šie kintamieji turi turėti. Nėra pagrindinė funkcija. Viskas bus tiesiog paleisti. Jūs vaikinai su savo importo jūsų paskutinis p nustatyta, pastebėsite tai. Nebuvo tikrai pagrindinė funkcija. Jūs tiesiog rašė, ką jūs norėjote, kad taip atsitiktų. Ir tai tiesiog rūšies atsitiko. Taigi, kad PHP už jus. [00:48:56] Masyvai yra labai panašūs. Mes vis dar turime šį laikiklį. Čia mes turime šiek tiek kintamasis vadinamas aranžuotė, ir tai yra lygus to-- mes turime normalu laikiklis žymėjimas. Ir mes turime tam tikrą svarbiausią reikšmę. Ir didelis skirtumas tarp C ir PHP masyvų yra tai, kad mes galime turėti šį associate-- mes galime susieti vertybes raktus. Taigi vietoj tiesiog masyvas, kuris yra indeksuojamas pagal skaičių arba pozicijos tos į masyvo elementą, mes iš tikrųjų galime susieti jį su raktu. Kur mes galime pasakyti, gerai, aš noriu kokia vertė yra susijęs su vaisių. O gal mes turime vaisių nuvyko į bananų. Taigi reikia grįžti bananą į mus. [00:49:41] Bet iš esmės, dauguma galingas dalykas, apie tai yra tai, kad, jei jus vaikinai prisiminti demo paskaitą, kur mes iš esmės perrašytas Speller PHP, ir tai was-- peržvalgos buvo tikrai tik patinka, Ar tai raktas egzistuoja? Tai tikrai natūra iš jo valdžią. Jūs neturite reikia pakartoti per savo masyvo. Jums nereikia žinoti Kokia vieta jis yra. Tai gali būti pabaigoje, arba pradžioje. Tol, kol jūs žinote, raktą Štai susijęs su verte, PHP gali tik spjaudyti tą vertę atgal į tave, gerai? [00:50:09] Ir tada, mes taip pat tik ką tik, nes mes gali turėti rakto poros nereiškia, kad jūs turite. Taip pat galite tiesiog sukurti normalus masyvas, kaip čia apačioje, kur jis tik vienas, du, tris, keturis. Tai yra mūsų vertybės. Ir iš tikrųjų, jų raktai yra indeksai. Taigi vienas raktas būtų lygi nuliui. Du raktas būtų vienas. Taigi, toliau ir taip toliau, nebent Jūs aiškiai priskirti raktą, galima daryti prielaidą, kad vertės yra tik jų indeksas. Ar tai prasminga visiems? Nėra klausimų? Nuostabus. [00:50:38] Gerai, foreach yra būdas pakartoti per savo matricos. Taigi, mes turime kažką čia tik bendra struktūra. Taigi foreach, ir vardas mūsų masyvas, kaip kokia norite skambinti vieni elementas jūsų masyvas, ir mes galime padaryti kažką kad elementas arba tos vertės. Taigi, mes turime pavyzdį čia. Mes turime Association masyvas su šių dviejų įrašų su baru yra susijęs su foo ir qux yra susijęs su Baz. Taigi raktai foo ir bazių. Vertybės yra baras ir qux. Taigi foreach, mes turime įvairių čia kaip rakto porą. Tai leidžia mums naudotis tiek klavišą ir vertę. Gal jūs tiesiog norite vertė, tokiu atveju galima tiesiog patinka ARR kaip $ vertės, ir tada yra tik patekti į vertę kaip jums pakartoti per. O gal, kai priežastis, norite raktą, kuris yra, kodėl aš pasirinkau šis pavyzdys vietoj. Taigi jūs iš tikrųjų galite manipuliuoti raktas ir vertė ir šiuo atveju. Gerai? Klausimas? [00:51:41] AUDITORIJA: Jei nori tiesiog manipuliuoti raktą, būtų jūs turite padaryti foreach-- [00:51:45] ALISON: Teisė. Taigi, jei norite manipuliuoti tik raktą, jūs vis dar reikia tai sintaksė, nes jei jūs tiesiog turi Arr kaip kažkas, kaip vienas dalykas, tai ketina prisiimti norite reikšmės, o ne raktas. Taigi, jei jūs kada nors tiesiog kaip aranž kaip, gal tai kaip $ elementas, jis ketina daryti prielaidą, kad esate klausia tik už kiekviename taške vertę. Jei atvirai noriu kažką daryti su raktu, net jei jūs nesiruošia nieko daryti su verte, Jums reikia šio struktūra kad mes turime čia kur jūs aiškiai klausia tiek raktu ir vertę. Didelis klausimas. Kitoks? Nemokama. [00:52:27] Gerai, PHP ir HTML. Oi, mes grįžome į p-septynis dar kartą. Taigi tai turėtų atrodyti mažai pažįstamas. Taigi tai yra paprastas HTML forma kad turi įvesties pavadinimą labas. Ir mes matome mes turime metodą GET. Ir jei mes prisimename iš mūsų p-rinkinys, pateikus šią formą, ji siunčia masyvą vadinamas $ _GET, kad turi visų šių įėjimų ar kintamųjų iš forma, kuri turėtų būti manipuliuoti mūsų PHP. Taigi, šiuo atveju, vartotojas būtų įdėti savo vardą. Jie teikia jį. Ir mes matome, kad mes kažkiek masyvas čia. Mes turime GET masyvo. Ir mes gauti vardą. [00:53:11] Taigi, kad sako, gerai, duok man vertė, kuri manimi susijęs su vardu, pavadinimas yra raktas čia. Ir, kad žemėlapiai tiesiai į ką sakėme mūsų indėlis vardas. Taigi tai buvo duoti jums į raktą, ką bus jūsų masyvas čia. Ar tai prasminga visiems? Taip? [00:53:32] AUDITORIJA: Ar pavadinimas GET skaitykite į purpurine linija [nesigirdi]? [00:53:36] ALISON: Tai reiškia, kad tai čia. Taigi šis laukas čia, ji nurodo šiuo pavadinimu čia. Taigi tai buvo galima pavadinti kaip telefono numeris, ar whatever. Šis pavadinimas iš tikrųjų sako, ką jūs skambinate šį lauką? Kaip jūs ketinate nuoroda į šį lauką? Ir šis pavadinimas iš tikrųjų patinka, mes sakydamas šį lauką vadinamas vardas. Štai kaip mes ketiname jį pasiekti. [00:53:59] AUDITORIJA: Taigi tai patinka, įvesties pavadinimą lygus Bob, and-- [00:54:02] ALISON: Teisė, tada jūs gaus Bob ten. Būtent. Kiekvienas kietas? Gerai, kad gauti palyginti POST, Šitie yra du pagrindiniai būdai kad mes pereiname duomenis HTTP prašymu. Vaikinai turėjo matyti abu tikiuosi. Taigi su GET, informacija yra perduodama per URL. Taigi, jei jūs kada nors padaryti "Google" paieškos, "YouTube", jums tikriausiai pastebėsite, kai klaustuką. Ir tada, visi žodžiai kad jūs tiesiog įdėti ten. Ir po eina duomenis HTTP pranešimų kūno. Taigi, priešingai nei GET, jūs rūšies apsvarstyti kad duomenys yra paslėpta nuo naudotojo. Bet kas iš tikrųjų svarbu suprasti, yra tai, kad tai yra vis dar kaip nesaugus pat gauti. Analogija man patinka naudoti tai, jei jūs turite savo banko sąskaitos numerį ir rašote jį į išorę paketas, tai gana nesaugus. Jei buvo rašyti nuo gabalo popieriaus ir įdėti jį viduje voką, tai dar tikrai nesaugu, nes viskas, ką turite padaryti, tai atidaryti, kad iki ir pažvelgti į faktinį turinį Pranešimo pamatyti, kad. Taigi tai yra "paslėptas", ir žmonės mėgsta manau, kad tai saugus, bet tai tikrai ne. Ir aš tikiu, kad bus Davin patekti į, kad daugiau, gal. Bet tai svarbu skirtumas, kad ir kažkas tikrai gera suprasti. [00:55:15] Gerai, SQL, Structured Query Language. Viskas stuff, kad mes matėme, kad neseniai! Taigi tai iš esmės tik suprojektuoti, Akivaizdu, kad duomenų valdymą. Vaikinai turėjo daug patirties su tai jūsų lenteles su PHP MyAdmin. Ir ten yra keturi bendri užklausos kad mes norime, kad jūs vaikinai žinoti. Taigi ten atnaujinimas, įterpti, pasirinkti ir ištrinti. Todėl įsitikinkite, kad žinote, tie tikrai gerai. Mes ketiname eiti per juos tikrai greitai. [00:55:40] Taigi atnaujinti, tikrai, kaip tai, ką jūs manote, ji, jis tiesiog atnaujina duomenis savo duomenų bazę. Taigi, mes turime tam tikrą pavyzdį čia. Tai yra bendra struktūra atnaujinimas užklausą. Taigi, mes atnaujinti lentelę kad mes kalbame apie. Ir mes norime nustatyti tam tikras vertybės, tam tikri stulpeliai lygus konkrečias vertes. Taigi, tai tik atnaujina lentelę, keičiant vertės visų šiuo atveju eilučių. Taigi šis žemyn čia tikrasis Pavyzdžiui, mes turime insert-- atsiprašau. Tai skaidrių pažangios be manęs nesuvokdami. [00:56:17] Taigi, tai atnaujinimai lentelė col1 lygus į VAL1 kur namas yra lygus "Kurier". Kas tai vienas daro, yra jis tik pakeičia, tai tik atnaujina šias vertybes konkrečiose vietose. Taigi šiuo pirmuoju, jis keičia jų vertės viskas jūsų stalo, Gerai? Ji ketina tai pakeisti stulpelis už kiekvieną įrašą, už kiekvieną eilutę. Bet tai kur tu gali galvoti apie tai, kaip skiriamasis. Taigi tai tik ketina keisti tai labai konkrečių vietų. Taigi p nustatytas septynių, kai jums gal atnaujino pinigų sumą kad savo vartotojo turėjo, tikriausiai turėjo kai kur ID lygus sesijos ID, tiesa? [00:56:53] Kadangi jūs nenorėjo keisti pinigų sumą kiekvienam asmeniui, kuris buvo naudojant jūsų svetainę. Jūs norėjote jį pakeisti vieną konkretus asmuo, tas asmuo yra kas buvo naudojant jį tuo metu. Teisė? Gerai, kad įterpti, įdėklas tam tikros vertybės į lenteles. Tai kaip tada, kai esate sukurti naują vartotoją. Bendra struktūra čia yra įterpti į bet kokio stalo mes kalbame apie. Vertybės, kuri yra vertybės, mes iš tikrųjų norite įterpti. Gerai, kad mes matome čia, mes buvo įterpti į lentelę. Tai specialūs stulpeliai su jų atitiko vertybės. Taigi, tai sako, įterpti nauja eilutė, kurių sudėtyje yra vertės VAL1 ir VAL2 pagal šios konkrečios stulpeliai. [00:57:33] Taigi gal jūs tik norite užpildyti iš puse šioje eilėje dalykų. Štai ką ši dalis čia leidžia jums padaryti. Jis leidžia jums iš tikrųjų nustatyti, kokia dalis. Taip? [00:57:44] AUDITORIJA: Ar jūs tik [nesigirdi] ląstelių eilės [nesigirdi]? [00:57:52] ALISON: Jei tik užpildyti tam tikras savo eilės, tų ląstelių poilsio tik tuščias. Tol, kol jūs leidžiate jiems tuščias, tai ne problema. Jei bandote prieiti prie jų, tai ketina grįžti šiek tiek tuščias elementas. Tačiau ji yra svarbu žinoti kad tam tikrais lenteles, jie turi būti leidžiama, kad niekinis. Jūs galite paleisti į problema per savo p-rinkinys nes mes ne leisti bet iš jūsų vertybės yra niekinis. Bet jūs galite nurodyti neprivaloma vertė jūsų stalo. [00:58:26] Gerai, pasirinkite, kad tai yra tiesiog gauti būdas specialių duomenų iš lentelė kai identifikatorius, kad jūs norite. Taigi pasirinkite žvaigždė iš stalo, kur sp lygus kažkas tiesiog reiškia, man visus duomenis, susijusius kur ši konkreti stulpelis yra tiesa. Taigi, šiuo atveju žvaigždė grąžinti visą eilutę jums, gerai? [00:58:49] Ir tada, šiuo atveju, pasirinkite žvaigždę nuo stalo tiesiog suteikia jums visą lentelę. Ir tada, ištrinti be abejo, tai tik ištrina eilutę iš lentelės. Taigi ištrinti iš lentelės, kokia lentelė mes nuorodos, jei kai konkretus identifikatorius arba kai sąlyga yra teisinga. Taip? [00:59:07] AUDITORIJA: Klausimas Nr. Kodėl jūs naudojate dvigubai citatos, ar jums padaryti kabutes ar vieno citatos, tai padaryti skirtumą? [00:59:13] ALISON: kabutes ar Viengubomis kabutėmis nereiškia, kad SQL skirtumą. Aš maniau, kad aš pamačiau kitą klausimą. Taip? [00:59:20] AUDITORIJA: Ar ne tai paveiks ką gauna pabėgo iš užklausai? [00:59:25] ALISON: Rob? [00:59:27] ROB: Ką reiškia pabėgo iš užklausai? [00:59:31] AUDITORIJA: Jei kas nors turi vieno užklausos formą of-- [00:59:36] ROB: Jei kas nors buvo įdėti vieną citatą iš, tada taip ilgai, kaip jūs valyti jūsų indėlis, tai nesvarbu. Bet jei jūs naudojate vieną citata ir esate neteisingai pabėgti savo įėjimai, tada taip, jie turi įdėti vieną citatą siekiant išsivaduoti Jūsų kodas. jei jūs naudojate kabutes, jiems reikia įdėti dvigubai pacituoti nutraukti savo kodą. Bet kaip ilgai, kaip jūs pabėgti dalykus teisingai, tai nesvarbu. Tai tiesiog bus verčiamas į teisingą simbolį vistiek. [00:59:59] AUDITORIJA: Ką pabėgti reiškia? ALISON: Na, kaip dezinfekavimas ir pabėgti. Egzaminą, kad mes turime, puikus XKCD Komiksai kad jie atsigriebti, kur jūs turite, oh-- ROB: Tai paskutinė skaidrė. ALISON: Tai paskutinė skaidrė, tikrai? O Dieve. Čia mes eiti, tobula. Gerai, kad iš esmės, galite švirkšti kažkas į šią SQL užklausa kur ji sugenda tavo kodas, arba kaip Davidas parodė klasėje, jei mes turime kai vieno citata 1 lygus 1, ir jei mūsų kodu mes tiesiog tiesiogiai nukopijuoti, kad ir turime baigiasi vieną pasiūlymą, kas atsitinka, yra gausime kai išraiška, įvertina, kad tiesa, kad bus tegul kas nors patekti į mūsų duomenų bazę ir gauti duomenis, kad mes nenorite, kad jie gauti. Taigi valyti įėjimus tiesiog reiškia, įsitikinkite, kad mes pabėgti tai simbolių ir juos paskiriant kaip simbolių, o ne dalykų kad turėtų būti leidžiama būti suprantami tiesiogine prasme kaip mūsų SQL. [01:01:04] Taigi didelis dalykas, kad mes sakėme kad vaikinai turėtų būti naudojant buvo HTML specialių simbolių, kuri yra kažkas kad jūs galbūt norėsite pažvelgti. Gerai, ištrinti. Duomenų tipai, tai visi bus internete. Kadangi mes 15 minučių į kairę, aš tik ketina eiti tiesiai per tai. PHP ir SQL, iš esmės tai yra tik mes turėjome užklausos funkcija, padėjo apsisaugoti nuo šie kenkėjiškų atakų. Taigi, jei jūs naudojate užklausą, mes įsitikinkite, kad viskas buvo dezinfekuotas ir Papuošalą. [01:01:36] MVC yra tik dizaino paradigma, taip modelis, peržiūrėti, valdytojas. Tai tiesiog būdas išlaikyti dalykų gražus ir padalinti taip pat kad mes linkę veiksnys iš kodą į funkcijas. Tai tik web dizainas sistema kuri leidžia jums padaryti tą patį. Aš ruošiuosi praleisti tai. [01:01:54] Tai yra kažkas, kad aš Būtų super patogūs su. Tai labai mažai stalo ten. Jis suteikia jums funkcija pavyzdys modelio. Aš tiesiog išgyvena tai, nes aš tikrai norite Davin galės pasikalbėti. Jei turite kokių nors klausimų, nedvejodami. Aš būsiu čia po. Tiesiog ateiti pasikalbėti su manimi. Su tuo, turime HTTP būsenos. Ir Davin ketina smūgis per tai per 15 minučių. Tai bus puikus. [01:02:17] DAVIN: Gerai. Uh, jūsų mikrofono? Taip. Atsiprašau. ALISON: Kelias būti parengta. DAVIN: Ne, aš pasiruošęs. Aš pasiruošęs. Leiskite tai padaryti. Tai paruošta. Gerai. Atsiprašau. Aš išsiliejo kava save. Aš nežinau, jei aš daugiau nusiminusi, kad man atrodo kvailas, arba kad aš neturiu kavos nebėra. Bet kokiu atveju, tiesiog greitai skelbimas apie lape jus vaikinai. Taigi, šis lapas jums vaikinai nėra Oficialus kas ant viktorina. Tai oficiali, kas ant viktorina. Be to, svetainėje, mes pasakyti Jūs, Gerai, tai bus viktorinoje. Taigi, šiek tiek apgauti lape turite, o ne pareigūnas. Ir ten yra klaidų ant jo. Taigi geriausia ne tik aklai jį naudoti. Taigi, taip, tai, kad. Taigi galime gauti į šią realią greitai. [01:03:05] Taigi HTTP būsenos. Taigi, kas atsitinka, kai svetainė, viskas gerai. Viskas gerai. Viskas grįžta į Jūs, kaip jūs norite. Jūs gausite 200 OK. 301, kur matėme, kad 301 anksčiau? Palaukite, ką yra? Atsiprašau. Matėme i alavo paskaitą saugumo. Taigi saugumo metu, todėl, jei Davidas įvedėte HTTP ir tada bandė eiti į cs50.net, jūs ketinate pamatyti 301 perkeltas. Kodėl? Nes ji ketina nukreipti automatiškai mūsų HTTPS. [01:03:35] Taigi 301 persikėlė, tiesiog tai iš esmės nukreipimas. Ir jūs galite galvoti apie tai, kaip šis. Bet iš būsenų, kurios prasideda su 2-aisiais, tie, kurie patinka, gerai, viskas OK. Bet iš būsenų, kurios prasideda su 3, tai yra nukreipimas. Statusai, kad pradėti su 4, tai reiškia, ten kai kliento klaidų rūšies. Statusai, kad pradėti su 5, tai kai serverio klaida natūra. Taigi jūs rūšies lūžti panašūs, kad statusai. Taigi 304 ne nepakeitė, todėl jūsų server.c p-komplektai, todėl tarkim jus pakrautas cat.html. Viskas grįžta, jums 200S, Gerai, puiku. [01:04:03] Tarkime, jūs atnaujinamas ją. Na, viduje, kad cat.html, turite JPEG. Na, JPEG nėra ketinate gauti naujo. Jūs esate nesiruošia rašyti kitą GET užklausą į serverį, ir tada gauti visą šią informaciją atgal. Jis ketina tik be-- kad vaizdas yra bus išsaugota Jūsų kompiuteryje. Ir taip, kad vaizdas bus 304. Taigi jis nebuvo pakeistas. Jei tada uždaryti, aišku, sausainiai, ir tada atnaujinti ir pabandyti įkelti šį puslapį vėl, jūs ketinate pamatyti 200S. Jūs esate nesiruošia matyti, kad 304. [01:04:28] 400, blogai prašymas, nekilnojamojo greitai, pavyzdžiui, jei jums einasi siųsti JSON į serverį ir jūsų JSON buvo neteisingas, pamatysite kažką panašaus, kad. 403, draudžiama. Kada jūs matote draudžiama? Tikriausiai Turbūt? AUDITORIJA: Chmod. DAVIN: Chmod, taip. Taigi jūs turite nenustatytas Permissions teisingai. 404, nerastas. Tai tiesiog nėra. Taigi, jei įvesite neteisingą URL. 500, vidinė serverio klaida, serveris tikriausiai nebuvo tinkamai sukonfigūruotas. Kažkas ne savo tikslu, bet kažkas serverio pusėje. Ir 503? Daug žmonių matė 503s per pastarąjį p-rinkinys. Kada, kad taip atsitiktų? Girdėjau šnabžda. [01:05:05] AUDITORIJA: Kai "Google" nusprendžia esate robotas. DAVIN: Taip, kai "Google" nusprendžia Jūs esate robotas, gausite 503s. Taigi, kad perkrovos. Jei jūs paprašė iš serverio per daug, tai dažniausiai yra laikinas. Ir dauguma iš jūsų pastebėjo. Taigi, kad matėte 503. Galbūt ėmėsi šiek tiek pertrauka, tada 503s nuėjo ir viskas buvo gerai. [01:05:20] Gabe: Nekilnojamojo greitai, kai jūs vaikinai gauti 500 tikriausiai tai paskutinis problema nustatyti? Taip? [01:05:27] AUDITORIJA: Paprastai, jei serveris failą netinkamas arba [nesigirdi] savo mašinos [nesigirdi]. [01:05:34] Gabe: Taigi jis gali būti konfigūracija klausimas jūsų PHP jūsų serveryje. Tačiau tai gali būti tik kažkas kaip kabliataškis, kad jūsų pamiršau. Jei įvedate PHP, kai neteisingai sintaksė gali jums ką nors panašaus. Gerai? [01:05:46] DAVIN: cool. Ar jūs norite man daryti tik iki AJAX? [01:05:51] Gabe: [nesigirdi]. DAVIN: Gerai. Taigi, kas yra DOM? Ką DOM stovėti? [01:05:55] AUDITORIJA: Dokumento objektinis modelis. DAVIN: Nicos. Ir kodėl mums patinka tai? Nuostabus. Teisė, todėl tik leidžia mums naudotis HTML, naudotis mūsų puslapyje labai greitai. Kodėl? Kadangi mes elgiamės su savo puslapis, gydant mūsų HTML žymes gydant viskas tarsi jie objektus. Jei mes gydyti juos kaip jie objektus, tada ką mes galime padaryti? Na, mes galime skambinti funkcijas ant jų. Ir tai yra svarbu, kodėl? Na, nes mes ketiname naudoti JavaScript atnaujinti savo HTML, atnaujinti šiuos objektus. Taigi, jei mes elgiamės juos kaip objektus, mes galime tada skambinti funkcijas ant jų. Aš ruošiuosi gauti į tai šiek tiek daugiau, kai aš einu į "JavaScript", bet jūs visi matė, kaip document.getElementById. Taigi dokumentas yra jūsų elementas, gauti elementą ID todėl jūs ketinate ieškoti dėl tam tikrų į HTML tegus ID. Ir tada jūs galite padaryti kažkas, kad. Pavyzdžiui, kaip document.body, galite pridėti vaiką. Taigi, jūs ketinate rasti dokumentą. Jūs turite dokumentą. Jūs ketinate rasti kūną. Jūs rado kūną. Ir tada, jūs ketinate skambinti tam tikrą funkciją ant jo. Taigi pridėti vaiką, ir jūs galite pridėti kai ant viduje jūsų kūno pabaigoje HTML. Taigi, iš esmės, jūs tik gydyti jį kaip objektas. Jūs gydant HTML žymės kaip objekto. Ir tai labai lengva ir greitai eiti per juos. Tačiau ji taip pat leidžia jums skambinti funkcijas jų todėl jūs galite manipuliuoti ir keisti elementus. [01:07:04] Gabe: Atsižvelgiant į tai, kodėl yra JavaScript, pavyzdžiui gražus kalba bendrauti su HTML? Šansai yra, kai žmonės buvo pasirinkti už naršyklėje kalba, už kliento pusėje JavaScript yra tikrai gražus, tai tikrai gerai tvarkymo objektus. Ir objektai yra lyg objektai, kurie atrodo į HTML, todėl labai lengva JavaScript daryti, kad tvarkymo natūra. DAVIN: Nicos. Taigi čia tik pavyzdys. Taigi manau, kad nuo praėjusių metų viktorinos, gal prieš dvejus metus, mes paprašė sukurti medį. Taigi, tai yra būtent tai, ką norite daryti. Taigi jūs pradedate su dokumentu. Ir tada jūs iš esmės tiesiog pažvelgti į žymes. Taigi, jei jums atrodo, mes pradėti HTML tegus. Ir tada, gausite užuominų apie tai, kaip tai padaryti pagrįstas įdubimas. Taigi vadovas rūšies atsišakoja. Viduje galvos, mes turime kitas tag pavadinimą. Taigi, mes turime žymės pavadinimą. Ir viduje, kad mes turime tam tikrą eilutę. Ir taip mes atstovaujame ratu eilutė. Ir visi žymės aikštėse. [01:07:54] Ir jei jums atrodo, jei mes galvoti apie tai, kaip medis, ir tarkime, kad HTML tėvų, tada galva ir kūnas ketinate būti broliai ir seserys. Jie abu bus vaikai iš tėvų. Taigi dėl to, kad jie abu broliai ir seserys, jie bus rūšies šalia viena su kita mūsų medžio modelį. Ir tada, jūs iš esmės padaryti tą patį dalyką. Taigi nėra sunku, tačiau mes paprašėme klausimai, kaip tai prieš į viktorinos. Gabe: Ar kas nors turite klausimų iki šiol? Ar tai gerai? DAVIN: cool. JavaScript Gerai, gerų dalykų. Taigi Javaskriptą, kas dingo JavaScript? Na, "JavaScript" is-- tai sudėtinga, tačiau tai keletas akcentų kad jums reikia turėti omenyje. Pirma, ji laisvai įvedėte. Ką tai reiškia? Taigi PHP was-- Taip, kas atsitiko? [01:08:35] Auditorija: Jūs neturite aiškiai Valstybė, kokio tipo kintamasis yra. DAVIN: Puikiai. Taigi jis pasakė, kad tu neturi aiškiai nurodyti kintamojo tipą. Būtent dešinėje. Taigi C, jei aš turėjo int i lygus 50, tada PHP, tai tik, kaip šis, $ i, lygi 50. Tada JavaScript, ką kvietimas būti? Var, tiesa? Tai būčiau kaip var i lygus 50. Bet jūs neturite būti kaip, OK, tai yra tarpinis junginys. Gerai, tai yra eilutė. Nereikia daryti. Tai aiškinama kalba. Taigi, ką tai reiškia? [01:09:04] AUDITORIJA: nerenkami. [01:09:06] DAVIN: Ką nerenkami reiškia? Taip? [01:09:11] Auditorija: Jūs neturite restruktūrizuoti kodą ją gauti pasirengusi Kompiuteris paleisti jį. Tai tiesiog imtis laiko vykdymo ir kompiuteris [nesigirdi]. DAVIN: Taip, taip, jis ketina perduoti per vertėją. Bet jūs esate visiškai teisus. Taigi jūs niekada rinkti ją, tiesa? Kai jūs darote savo PHP ir JavaScript kodą, jūs niekada vadinamas kompiliuoti. Jūs niekada vadinamas kažką panašaus padaryti ar ko nors panašaus, kad. Tai todėl, kad ji aiškinama. Taigi kiekvieną kartą, kai jis eina per naršyklę, jis eina per vertėją. Ir tai vyksta ją interpretuoti tik realiu laiku iš karto už jus. Taigi, kas yra keletas teigiamų ir neigiamų kad turintys aiškinama kalbą ir turintys rengiami kalbą? Taigi compiling-- Taip, kas atsitiko? [01:09:50] AUDITORIJA: Aiškinama yra lėtesnis. DAVIN: Kokia prasme? [01:09:57] AUDITORIJA: Po kaupia, jūs neturite padaryti jokių papildomų veiksmų, kad būtų įvykdyti tai, kadangi šis [nesigirdi]. [01:10:04] DAVIN: Teisė, tobula. Taigi, ką jūs sakėte, yra Iš esmės, kad kaupimas, kai jūs rinkti, jūs turite daug išankstinių išlaidų, tiesa? Jūs ketinate rinkti ją. Bet po to, kai surinkti jį, kompiliatorius ketina optimizuoti. Tai bus greitai. Ji ketina iš esmės būti taip greitai, kaip jis gali būti. Su žodžiu, jūs niekada turėti, kad išankstinių išlaidų. Atvirkščiai, jis bus šiek tiek lėtesnis kiekvieną kartą, kai jūs ją interpretuoti. Ir jūs ketinate turi interpretuoti kiekvieną kartą. Taigi vietoj to, ši vieną kartą kaina, o dabar esate teks ją interpretuoti kiekvieną kartą, puslapis tampa. [01:10:29] Taigi vertėjai yra gerai, nes Jūs neturite kaupia jį, bet jie blogai, kad kiekvienas kartą, kai puslapis įkeliamas, tai teks interpretuoti šį JavaScript. Ir jis ketina paleisti šiek tiek lėčiau nei jei buvo sudaryti ją. Leidžia communicate-- Oi, palauk. Naudojamas manipuliuoti turinys ir išvaizda. Mes tiesiog kalbėjomės apie tai. Jis naudoja DOM. AJAX, mes patekti į Ajax truputį. Ir tada, tai kliento pusėje. Taigi PHP yra serverio pusėje. JavaScript yra kliento pusėje. Kas yra teigiami, kad? Jis sako. Tai greičiau, tiesa? Kadangi jūs neturite to-- tai greičiau. Jūs neturite bendrauti su kitu įrenginiu. Jei esate tik nuo jūsų klientas, jūs niekada teks eiti ir pamatyti, kas serveryje ir tada ataskaitą ar kažkas panašaus. Taigi kliento pusėje linkęs būti šiek tiek greičiau. [01:11:15] Gabe: Taip, bet tai nereiškia, PHP greičiau nei JavaScript ar kas nors panašaus. Jie paleisti rūšies in pats greitis, nes jie abu aiškinami kalbomis. Dalykas, kad lėtas čia yra prašymas. Taigi jūs iš tikrųjų vyksta visi perkelti į Braziliją būdas gauti tam tikrą informaciją kad ten gyvena. Bet PHP ir "JavaScript", jie rūšies paleisti tuo pačiu greičiu. Tai nereiškia, kad vienas yra greičiau nei kitos. Tai, taip pat, triukas klausimas. Taigi JavaScript niekada tampa Mašina kodas, true arba false? [01:11:47] AUDITORIJA: Neteisingų. Gabe: Neteisingų. Ji turi tapti mašina kodas, nes mašina kodas Vienintelis dalykas, mašina supranta. Nors jis nebuvo parengta, ji vis dar tampa mašina kodas nes vertėjas yra tik programa, kuri eina po eilutę ir paverčia tą liniją į kažkas kompiuteris supranta. Gerai? Nemokama. [01:12:08] DAVIN: Čia yra tiesiog labai paprastas hello world "JavaScript" programą. Taigi, aš nežinau if-- matėte tai. Tačiau jums tereikia HTML čia. Ir vietoj tikrųjų išleisti JavaScript scenarijus žymeles, taip paprastai norite įdėti jį į galvą. Jūs turite scenarijų žymes. Jūs upuść jį ten. Visi mes padarėme čia mes susiję in-- todėl mes susieti JavaScript failą kaip šis. Ir jūs visi tai padarėte, tiesa? Taigi, kai jūs naudojate JQuery ir underscore.js per pastarąjį p-rinkinys, Jūs neturite tonų kodas Aukštyn Jūsų scenarijus žymės, iki jūsų galvos. Jūs galite tai padaryti, bet vietoj to jūs tiesiog susiejimas jį. Ir jūs susiejimas jį Tiesiog kaip jūs darote su CSS. Taigi jis tiesiog lengviau perskaityti, kad Jūsų kodas nemėgsta 1000 linijos ilgio tonų funkcijas, Jums gali būti naudoti. [01:12:52] Vietoj to, jūs tiesiog susieti jį. Tai compartmentalizes ją. Tai kaip rašyti kai antraštės failą, tada taip, kad antraštės failo C Pagalvokite apie tai, kaip šis. Taigi, ką tai padaryti? Na, tai ketina paleisti. Ji ketina įspėti. Taigi, jūs ketinate gauti šiek tiek pop-up vadinamas Hello world. Greita klausimas, tiesiog normalumas patikrinti, todėl jūs pamatyti čia organizme, sako kūno, HTML čia. Kas ateina pirmas? Ar aš matau kūno, HTML čia arba nematau perspėjimą pirmas? [01:13:19] AUDITORIJA: Alert ". [01:13:20] DAVIN: Teisė. Jis sako, kad perspėjimas. Kodėl? [01:13:22] AUDITORIJA: Kadangi jus eiti iš viršaus į apačią. [01:13:24] DAVIN: Taip. Puikiai. Taigi jis sako, jūs einate iš viršaus apačios, kuri yra absoliučiai teisinga. Jūs ketinate eiti iš viršaus į apačią. Ir JavaScript, jQuery, turite funkcija, kuri tarsi įkėlimo arba pasirengęs, ir kad sako, gerai, palaukite, kol visą šį HTML yra įkeltas. Ir tada, skambinkite "JavaScript". Kadangi mes neturime, kad čia, Pats pirmas dalykas, kad nutiks yra jis ketina pereiti nuo viršaus iki apačios. Jis ketina hit, kad JS skambinti, jis ketina įspėti. Po to jūs spustelėkite Gerai, kad perspėjimas nueina. Tada jis ketina parodyti Jūs kūno HTML čia. Nicos. [01:13:54] Gerai, kad tik nekilnojamojo greitai, rašymas JavaScript yra super greitas. Norint deklaruoti kintamasis, var vardas. Taigi C, turite int i, turite deklaruoti, kokios rūšies ji yra. PHP $. JavaScript var. Mes kalbėjome apie tai. Gerai, eikime. [01:14:11] Loops, tas pats dalykas. Tas pats dalykas. Funkcija deklaracijos, todėl kaip jūs matėte C Vienintelis dalykas, skiriasi, todėl, kai jums kitų programavimo kalbų, pavyzdžiui, kai jūs imtis 51 kitą semestrą ir jūs darote su OCaml, galite elgtis su anoniminiais funkcijas. Taigi tai yra būtent tai, ką turime čia. Taigi jūs norite įdėti į sumą, kai suma vertę natūra. Tačiau galite tai daryti tik vieną kartą. Taigi jūs nenorite jį vadiname funkcija suma, suteikti jai funkcija deklaraciją. Vietoj to, jūs tiesiog naudoti jį anoniminio funkcija. Ir jūs matėte tai daug. Jūs pamatysite pavyzdžiu tai pora skaidres. Taip, mes pamatysime. Gabe: Geras klausimas. Kai gali norite naudoti Anoniminis funkcija čia? Iš esmės, kai norite ką nors, kaip įvykio, kad taip atsitiktų. Taigi, kai pelė yra paspausti, pavyzdžiui, norite kai funkcija turi būti vadinamas. Taigi jums perduoti į renginį prižiūrėtojas, pereisite į renginį, rūšies, funkcija, kuri norite būti vadinamas. Ir ką jūs artimųjų yra kaip, pabaigoje dienos, tiesiog žymiklį į šis nurodymas, kad funkcijos. Taigi tai ne kaip jūs artimųjų Visas kodas, kaip rodyklę į funkciją. Ir tada, kai kas nors paspaudžia pelė, tai funkcija pasireiškia vadinamas. [01:15:17] Davin: masyvai, todėl jums turi masyvo deklaraciją. Tada masyvo įdėti dalykų. Nekilnojamasis greitai, kas tai atsispausdinti? Ką Trečiasis elementas būti? [01:15:31] Auditorija: "JS". [01:15:32] DAVIN: Teisė, tai būtų "JS". Palaukite, grįžti atgal. Kas yra ilgis? [01:15:37] AUDITORIJA: Trys. DAVIN: Trys, tiesa? Būtent, ką galvojate. Gerai, dabar eiti. Masyvai, galite įdėti ką su jais. Taigi jūs galite daugiau nei jų pradiniai ribų. Tiesiog kažkas nepamiršti. PHP, JavaScript, kad jie šiek tiek šiek tiek daugiau atlaidus, kalbant apie dalykus, patinka. Objektai, labai panašiai kaip structs C, labai kaip asociacijų masyvai PHP. Jūs visi turėjo patirties su tai. Taigi JSON, kai jūs einančios JSON į priekį ir atgal p-nustatyti aštuoni, kad jūsų objektas. [01:16:03] Taigi, taip, pavyzdžiui, nekilnojamojo greitai pavyzdys. Čia yra objektas. Kaip jums nuoroda tai objektas, todėl tik nekilnojamojo greitai, tarkim aš norėjau rasti iš, Gerai, kas yra žinoma? Ir taip Objekto pavadinimas čia yra CS50. Ir tada, jei aš turėjo Association masyvas, kaip man tai padaryti? Aš būsiu naudojant raktą, tiesa? Taigi turiu masyvo vardą. Turiu laikiklis, citatos, raktą, galutiniams citatos, pabaiga laikiklis, ir, kad bus nuoroda, kad elementas viduje mano masyvą. Kaip man nuorodos Žinoma viduje mano objektą? Žinote? [01:16:39] Auditorija: [nesigirdi]. [01:16:40] DAVIN: Kas naujo? AUDITORIJA: CS50.course. DAVIN: Teisė, taip. Taigi CS50.course. Taigi, kaip jums nuoroda dalykus viduje JSON yra su tašku. [01:16:48] Auditorija: Jūs taip pat galite naudoti masyvo sintaksė. [01:16:53] DAVIN: Gerai, gerai. [01:16:54] Gabe: Taip pat galite naudoti CS50 laikiklį, eilutė, kaip ir kabutėse. AUDITORIJA: manau, kad tai identiškas PHP. Gabe: Tai tas pats. DAVIN: Bauda! Bet jūs pamatysite šį kitas vietas. Taip, taip, nesustoti. Tai yra tai, ką aš ką tik pasakė. Taigi į "JavaScript jQuery pavyzdį. Taigi tai yra mano DOM, tiesa? Nekilnojamasis greitai, todėl turiu vadovas, hello world, kūno. Turiu mygtuką. Jis sako: "stumti mane", todėl noriu stumti jį. Ir aš noriu kažką daryti kai jis paspaudžia. Teisė, šalia. [01:17:31] Teisė, todėl tai yra mano "JavaScript". Taigi JQuery yra tik lengviau būdas rašyti "JavaScript". Taigi, tai, ir tai, ką aš ketinu parodyti kitą kartą, bus JQuery, yra identiški. Taigi jie darys tuos pačius dalykus. Tiesiog JQuery yra linkęs būti šiek tiek lengviau. Žmonės linkę patinka daugiau. Jis turi daug funkcionalumo. Taigi žmonės linkę naudoti JQuery. Jūs visi naudoti JQuery paskutiniame p-rinkinys. Taigi, ką tai darys? Ką šis JavaScript-- taip tai tiesiog JavaScript. Ką tai padaryti? Ką jis daro? [01:18:03] Taigi, pirmiausia, pamatysite langą įkėlimo. Teisė? Taigi, mes nemačiau, kad prieš. Taigi tai vyksta palaukti kol visas langų krovinį. Taigi jis ketina palaukti, kol HTML, visi vaizdai apkrova Prieš ji nieko. Taigi tarkime, mūsų DOM yra įkeltas. Viskas ten. Tada, kas nutiks? Taip? [01:18:19] Pasirodo mygtukas: auditorijai. [01:18:22] DAVIN: mygtukas yra jau ten. Taip, taip, mygtuko jau ten. Bet tai ketinate pasakyti, Gerai, jei aš spustelėkite mygtuką, taip mygtuką Jau ten, kaip kad HTML tegus. Palaukite, grįžti nekilnojamojo greitai. Ši žyma teisė čia yra bus mygtuką jau. Yra jau mygtuką. Bet tada, JavaScript žymeles, čia, ji sako, gerai, aš noriu gauti elementą ID taip paieška mygtuką tiesiog sako, gerai, aš noriu į žemėlapį šį kintamąjį į tą mygtuką. Taigi, kad kintamasis yra tik paprasčiausias būdas pasiekti, kad "mygtuką. Ir aš sakau, gerai, jei aš spustelėkite, kad mygtuką, todėl, jei aš spustelėkite tą elementą, ir šis elementas reiškia mygtuką, jei aš spustelėkite jį, tada aš noriu paskambinti funkciją. Čia yra vienas iš tų, anoniminė funkcijos mes kalbame apie. [01:19:03] Tiesiog skambinti tam tikrą funkciją. Viduje šią funkciją, iš esmės ką mes matėme daug, perspėjimą. Paspaudus paieškos mygtuką. Ji ketina iš esmės turi mygtuką. Jūs jį spustelėkite. Jūs gausite šį perspėjimą. X dėmesį. Štai ir viskas. Taip? [01:19:16] AUDITORIJA: Taigi, jei jūs įtraukėte scenarijų [Nesigirdi], scenarijų tegus savo HTML? [01:19:21] DAVIN: Jūs galite įdėti scenarijų Tag tiesiai į galvą nes jūs turite šį įkėlimo. Taip pat, kad jūs turite spragtelėjimą. Taigi jis ketina palaukti, kol Paspaudus kažko. Bet įkėlimo yra tiesiog būti saugūs, kad kad viskas įkelia į savo HTML iš anksto. Taip? Jūs norite kažką pasakyti? [01:19:40] Gabe: [nesigirdi]. DAVIN: Taip. [01:19:42] AUDITORIJA: Taigi įkėlimo vengia apibrėžti kintamąjį paieškos mygtuką tiesiog sakydamas document.getElementById Paieška mygtuką taškas [nesigirdi]. [01:19:49] DAVIN: Tikrai, bet tada Jūsų eilutė tiesiog gauna milžiniškas. Būtent, todėl tai yra tik Kad būtų lengviau jums, taip. Taip? [01:19:56] AUDITORIJA: kur mes sukurti window.onload? Arba document.ready? [01:19:58] DAVIN: Taip, yra. Taip, ten yra, aš patikrinti. [01:20:02] Gabe: Ne jiems rūpi. [01:20:03] DAVIN: Gerai, kad aš ruošiuosi papasakoti vistiek. Taigi, iš esmės, tiesiog apskritai, taip, window.onload laukia, kol jūsų DOM, visi HTML, siuntos. Ji laukia, kol jūsų vaizdai apkrovos. Ji laukia, kol viskas krovinį. document.ready, jis tiesiog laukia, kol jūsų DOM krovinį. Kai HTML visi ten, kai Jūsų DOM yra, pradeda veikti. Štai vienintelis skirtumas. [01:20:23] Gabe: Greita normalumas patikrinti čia. Taigi, tai gali būti vertinama rūšies kaip kodo eilutę, tiesa? Nes tai window.onload lygus daiktų krūva. Kai JavaScript skaito šią, tiesa ar klaidinga, funkcija paleidžiama vykdyti. Neteisingų. Gerai? Kas atsitinka, čia jūs tiesiog artimųjų Ši funkcija taip anonimiškai funkcijas į window.onload. Ir tada, kai tai vyksta faktiškai gauti įvykdytas? Kai langas krovinius. Štai įvykis. Taigi, kad jus t dalykas, mes esame kalbame apie anksčiau, tiesa? Taigi, kai įvykis atsitinka, funkcija atsitiks. Tas pats su onclick. [01:20:59] DAVIN: Gerai, kad kažkas paėmė toli document.ready. Bet tai bus tiksli same-- AUDITORIJA: dolerio ženklas, , kad yra document.ready. Štai nuoroda. [01:21:07] DAVIN: O, kad yra? Gerai, kad tai reiškia, document.ready, nuoroda. Tačiau tai yra toks pat, kaip window.onload išskyrus, kad mažai skirtumo Sakiau apie tai. Ir tai yra JQuery. Taigi, tai yra lygiai toks pats thing-- tai yra JavaScript. Tai just-- kai kurie žmonės galvoja apie tai kaip daugiau šviesos svorio, aptakus versija kad turi daug funkcijų kad jūs tikriausiai naudojate. Taigi, tai daro tą patį dalyką. [01:21:34] Taigi dalykų rūšies atkreipti dėmesį. Taigi, iš kitos, pavyzdžiui, mes turėjo document.getElementById, todėl mes turėjome tai ilgai eilutė, ketina gauti bet kokiomis ID ji elementas. Štai pakeičiami šio kvietimo čia. Taigi, kaip matote, dolerio ženklas, tada pamatysite pasiūlymą, hashtag. Hashtag visada selektorius. Ji sako, gerai, tai turi daryti su ID. Kokia klasės selektorių? [01:21:56] AUDITORIJA: Dot. [01:21:57] DAVIN: Dot, tiesa. Jei jūs tik ketina pasirinkti žymą, kas tai yra? Tai tiesiog žymeles, tiksliai. Ir tu gali naudoti, kad čia taip pat. [01:22:05] Gabe: Ir žymeles, mes suprantame, kaip div, pavyzdžiui, arba galvos. [01:22:08] DAVIN: ar įstaiga arba p, arba nieko panašaus, kad taip. Taigi čia, GERAI, o ne pasakyti, document.getElementById, tai tik patį dalykas. Tiesiog jQuery, tai trumpesnis. Taigi tai paprastesnis. Taigi, ne daugiau onclick, tiesiog spustelėkite. JQuery funkcija vadiname funkciją. Įspėjimo yra lygiai toks pats. Taigi tai šiek tiek mažesnis arba šiek tiek trumpesnis, šiek tiek bit-- žmonės galvoja, tai šiek tiek lengviau rašyti, šiek tiek lengviau suprasti. Bet tai JQuery. Daug žmonių gauti šiek tiek tiek supainioti ir neramu ir jie galvoja, gerai, JQuery yra kitoks nei "JavaScript". Turiu prisiminti tai du skirtingi dalykai. Tai ne. Aš turiu galvoje, tai skiriasi sintaksė. Bet JQuery yra JavaScript. Tai tiesiog pažiūros geriau versija, kad gali būti lengviau suprasti, kad žmonės naudoja. Gabe: Taip, bus Tiesą sakant, kad dolerio ženklas kad matote jQuery, tai tik Pavadinimas funkcija, kad JQuery apibrėžia. Tai neturi nieko ypatingo. Ar tai tik pavadinimas funkcija, tiesiog, kaip jūs galėtų apibrėžti dolerio ženklas. [01:23:03] DAVIN: Taip, taip, kalbėjau apie tai. Keletas naudingų dalykų. Buvau Prisiminus senus viktorinos. Per pastaruosius porą viktorinos, jie jau teko naudoti tokius dalykus. Taigi document.ready, todėl įsitikinkite, kad viskas pakrautas prieš pradėdami daryti dalykus. Pasirinkite adresą, arba pasirinkite klasė, tai reikia tik būti citata dot kai klasę, Baigti citatą. Pateikti, todėl, jei esate pateikdamas formą ir skambinti ši funkcija po forma pateikia. Vertė, todėl tarkim turėjau formą pateikimas, pavyzdžiui, vartotojo vardą, elektroninio pašto, nesvarbu. Turėjau teksto laukelį. Taigi aš rašyti į tą teksto lauką. Na, jei norite gauti vertę iš tos teksto laukelyje galite naudoti dot val. Ir tada, žemyn čia dot HTML yra tas pats, yra kaip dokumentas tašku getElementById taškas innerHTML. Taigi, kad ketina grįžti Jums nuo to ID HTML. Čia jūs tiesiog naudoti kai ID numeris ar kas dot HTML. Tai gausite iš šio elemento HTML. Jei nori tada pakeisti, kad HTML, galite perduoti jį kažką. Taigi jūs norite būti panašūs dot HTML, tada viduje, citatos, naujos HTML ar kažką. [01:24:05] Gabe: Gerai, kad AJAX. Aš tikrai norėčiau suprasti AJAX tikrai gerai. Taigi aš noriu jums vaikinai į suprasti AJAX tikrai gerai. Nes jei jūs darote, jūs gana daug vyksta suprasti viską, kad turi daryti su HTTP, PHP JavaScript, nes visa tai ateina kartu AJAX. AJAX nėra kalbos. AJAX yra technika. Ir ji naudoja daug įvairių įrankių. AJAX stendai Asinchroninis JavaScript XML. Taigi, būdas, kalba, duomenys. [01:24:36] Taigi pagrindinės kalbos, kad mes naudojame AJAX sukelti viską ir tvarkyti viską vėliau yra JavaScript. Štai kodėl jis yra susijęs labai arti JavaScript. Ir tada asinchroninis yra nes mes neturime daryti visus iš karto, kai mes pakrovimo puslapį. Tai dalykas, kad mes galime daryti tai, ko rūšies lygiagrečiai. Pagrindinė idėja AJAX yra ta, kad jūs norite tai kažkiek konkrečią informaciją. Pavyzdžiui, kai įvedate naują vartotojo vardas, kai jūs užsiregistruosite vartotojo vardą, mano vartotojo vardas abc123. Ir tada, bent iš pabaigoje forma, jūs turite paspausti "Siųsti". Ir tai turėjo eiti į serverį, ir tada patikrinti, ar duomenų bazėje, abc123 jau yra. O jei jis jau ten, jis sako, vartotojo vardas jau yra duomenų bazėje. Ir jie, jūs turite užpildyti iš viso forma dar kartą. Ir tai buvo tikrai, tikrai blogai. [01:25:23] Ir tada žmonės sako, Gerai, tai kodėl mes negalime tiesiog padaryti mažą HTTP užklausa tiesiog patikrinti pamatyti, jei šis vartotojas yra duomenų bazėje, kol vartotojas turėjo pateikti visą formą? Taigi, pavyzdžiui, kai vartotojas baigia rašyti ABC123, tegul tiesiog eiti į serverį mažai tiek ir tiesiog gauti true arba false iš serverio norėdami pamatyti, jei tai galioja vartotojo vardas ar ne. Gerai, taip, kad vienas iš pagrindinis naudoja AJAX šiandien dar. [01:25:49] DAVIN: Taigi nekilnojamojo greitai, ir Ajax skambutis JQuery, Jums gali reikšti, kad jūs noriu, kad ji būtų sinchroninis. Jūs neturėtumėte daryti. Bet jūs galite tai padaryti. Ir jei tu, kad kas nutiktų? Na, pavyzdžiui, kai esate gauti naujienas ar kas, Jūsų naršyklė yra tik ketina laukti kol ta visa skambutis baigtas vietoj leidžia jums padaryti kitą viskas iš karto po spustelėkite ją. [01:26:14] Gabe: Tai ne artimųjų nebėra. O Dieve. Atsiprašau! Yup. "Anksčiau, kliento reikia prašymu Visas turinys svetainėje. " Štai ką aš sakiau. Jis leidžia mums siųsti Papildomas GET arba POST prašymai nereikės perkrauti mūsų naršyklę. Tad dienos pabaigoje, mes iš tikrųjų padaryti HTTP užklausas čia naudodamas "JavaScript". Nes anksčiau, mes naudojome tik JavaScript keisti HTML, kad jau atėjo. Ir dabar, mes galime jį naudoti sąsaja su interneto serverių, taip pat. Būdas tai atsitinka yra mes turime klientą. Davin yra klientas. Ir jis turi visą JavaScript veikia, nes HTML yra kvailas. JavaScript yra protingas. Taigi Davin Davin turi jo protingas dalis ir jo kvailas dalis. Jis ketina naudoti savo sumanaus dalis dabar. Jis ketina naudoti "JavaScript" į prašymą, pavyzdžiui, ar abc123 yra duomenų bazė, ar ne. [01:27:04] Taigi Davin, prašome tiesiog siųsti man HTTP užklausą. Ačiū. Taigi jis tiesiog atsiuntė HTTP užklausą. Jūs matote, kad? Ir tai tik pati būdas kad bet HTTP užklausa yra siunčiama. Naršyklė, "Google" "Chrome" ar kažkas yra ketiname pamatyti, kad Davin s bando siųsti HTTP užklausą, ketina padėti hm truputį. Ir tai vyksta eiti visi būdas serveryje. Dabar serveris teks PHP čia arba bet kokia kita kalba. Tiesiog patinka normalus HTTP užklausa. Tai gana daug normalus HTTP užklausa. [01:27:31] Ir tada, serveris ketina pasakyti, gerai, Davin nori mane patikrinti, ar tai abc123 yra duomenų bazėje. Pasikalbėkite su modeliu. Modelis sako, kad ne. abc123 yra gera vartotojo vardas. Ir tada, žiniatinklio serveris ketina naudoti PHP teikti tam tikrą failą formą. Tai gali būti tiesiog tik failą kad yra "taip" į jį, arba "ne", ar kažkas panašaus. Tai gali būti bet koks failas. [01:27:54] Tai galėtų būti, kaip aš ruošiuosi siųsti Davin iš antis paveikslėlį jei jis į duomenų bazę ir nusiųsti žiurkėno vaizdą jei ji nėra duomenų bazėje. Tai būtų rūšies kvailas, bet jis veiks. Gerai, kad aš siunčiu antis į Davin. Davin gavo antis. Ir dabar, kas vyksta tvarkyti antis? Davin pažangaus dalis vėl taip Javaskriptą, tiesa? JavaScript išsiųsti prašymas, ir "JavaScript" ketina gauti prašymą ir interpretuoti ją tam tikra forma. [01:28:22] Ir šia prasme, ji ketina sako, gerai, jei antis tada aš gerai. Jei žiurkėno, tada aš ruošiuosi pasakyti, ne, vartotojo vardas jau egzistuoja į duomenų bazę. Tačiau paprastai, jūs ne ketina siųsti antis. Jūs ketinate siųsti kažkas šiek tiek protingesni. Ir ką mes naudojame XML. Ir visai neseniai, mes naudojame JSON. JSON yra tik Javaskriptą Objektas Žymėjimas, kuris iš esmės jūs gaunate Visa JavaScript objektas. Ir jūs įdėti jį į failą, tiesiog patinka kad CS50 objektas, vaikinai pamatė. Jūs įdėti jį į failą, siųsti jį į Davin. [01:28:53] Taigi šiuo atveju, aš norėčiau padaryti JavaScript objektą ir tiesiog pasakyti, vartotojo egzistuoja, taip. Arba vartotojas egzistuoja, nėra. Ir siųsti jį atgal į jį. Ir kodėl JSON? Kadangi asmens kas gauna tai ketinate naudoti JavaScript tvarkyti atsakymą. Ir Javaskriptą veikia taip gerai, nes tai vadinama "JavaScript" Objekto žymėjimas. Teisė? Taigi jis gali tiesiog paskambinti funkciją ir gauti tai gražus daiktas iš atsakymo. Ir tada, jis ketina išsiaiškinti, ar kad vartotojas yra duomenų bazėje, ar ne. [01:29:22] Taigi, kaip matote, visa tai ateina kartu į interneto serverį, ir ten vienas HTTP prašymu ir vienas atsakymo HTTP ir viskas. Todėl įsitikinkite, kad vaikinai suprasti šią AJAX skambutį nes jis padeda jums suprasti visus sąvokų mes kalbame apie. [01:29:37] Taigi čia pavyzdys AJAX su JQuery. Ir čia mes darome su get JSON. Taigi mes ne bando gauti vaizdas katės čia arba antis. Mes stengiamės gauti JSON failą. Ir tada mes laukti, kol tai daroma, taškas padaryta. Tai reiškia, kad aš laukia atsakymo. Tai gali šiek tiek užtrukti. Tada pamatysite mažai apkrovai. Jei norite padaryti, kad jūsų svetainėje. Taigi, dot padaryta, ir tada, kas atsitinka, kai tai daroma? Jūs pereiti į anoniminė funkcija, kaip matėme anksčiau. Kadangi padaryti yra įvykis, tik kaip ir spustelėjus pele ar kas, JQuery. Taigi jūs praeiti šią funkciją su duomenų, teksto, statusas, ir jqXHR. Ir iš esmės, tai tik keletas kintamųjų kad galite naudoti vėliau turėti HTTP prašymu statusas, duomenų, kad ji vyksta siųsti su Jumis. Taigi galite vėliau ją interpretuoti ir daryti kažką prasmingo su juo. Ir jei tai nepavyksta, kai jis galėtų žlugti? Na, kai HTTP užklausa suteikia Jums 500 ar kažkas panašaus. Tada jis ketina pasakyti jums statusas, kokios nesėkmės, kurios buvo, ir visi dalykų rūšių. Jūs turite įsitikinti, tvarkyti Abiem atvejais kitaip programa eina iš proto. [01:30:42] DAVIN: Taigi, taip, tai yra būtent tai, ką matė savo paskutinę p-rinkinys. Tikrasis AJAX skambutis yra get JSON. Tai yra kvietimas. Ir tada, taškas padaryti yra tarsi ji patikrina, ar tai sėkmingas. Jei jis yra sėkmingas, norite kažką daryti su duomenimis. Jūs gaunate atgal nuo JSON duomenų prašančios. Tai yra tai, ką jūs gaunate atgal. Taigi, jei jūs prisimenate iš savo p-rinkinys, iš jūsų daug buvo kaip duomenų laikiklio i ar kas, taškas nuorodą ar pavadinimą. Nepriklausomai ateina atgal nuo tos JSON, nepriklausomai nuo laukai yra toje JSON, kad tai, ką jūs gaunate atgal. Duomenys yra tai, ką jūs gaunate atgal. Tekstas statusas, tiesiog kažkas, kad leidžia jums žinoti, kas atsitiko. Ir tada, jqXHR, tai tik JQuery XML HTTP užklausa. Štai kaip objektas. Ir tada nepavyks, kaip ir sakė Gabe. Gabe: Mūsų mažai pavyzdys abc123 tik patikrinti, jei tai duomenų bazėje ar ne, duomenys būtų kažkas jums darytumėte, jei egzistuoja duomenų taškas vartotojo vardas, o tai, ką jūsų PHP sugeneruotas Jums, jei duomenų taškas vartotojo vardas egzistuoja, tada Aš ruošiuosi įspėti, vartotojo vardas jau egzistuoja. Kita, aš tik ketina leisti vartotojas tęsti užpildę formą. Gerai, saugumo, kietas. [01:31:50] DAVIN: Nori mane? [01:31:52] Gabe: Man patinka šis. Taigi kažkas, kad atrodo pažįstamas. Mes beveik baigėme. Taigi tai yra tik pavyzdys vaikinai pamatė klasėje. Jūs naudojote argv1 čia. Štai kaip komandinės eilutės argumentas. Ir mes MEM kopijavimas, kad į keletą 12 dydžio buferio. Kas problema čia? Buferio! Kadangi mes turime 12 dydžio buferį. argv1 gali turėti du milijardai dydį. Mes nedarome jokio kontūro patikrą. Taigi, mes galime kopijuoti daug atminties. Ir mes ypač blogas apie tai. Ką galėtume padaryti, kad tai labai, labai reiškia šiuo atveju? Taip? AUDITORIJA: Dalis dviejų milijardų dalykų yra vykdomąjį kodą, kuris grąžina [Nesigirdi]. Gabe: Būtent. Štai natūra dalykas, kad žmonės naudoja Jailbreak iPhone, pavyzdžiui. Taigi, kad rūšies dalykas. Kadangi jūs galite tiesiog padaryti įrenginį vykdyti bet kokį kodą, kad jums patinka. Nustatyti, kad nustatyti yra paprasta. Tiesiog įsitikinkite, kad yra ribos. Jūs patikrinti null nes mes visada patikrinkite null kai mes susiduriame su stygos. Ir tada, jūs imtis eilutės ilgis anksčiau. Ir jei eilutę ilgis galioja eilutė ilgis, kuris yra per 0 ir 12, tada mes gerai. [01:33:03] DAVIN: Jei neturite patikrinti niekinis, nekilnojamojo greitai, kas atsitiks? Tai bus SEG gedimą. Kodėl ji SEG kaltės? Kadangi jūs skambinate strlen apie null. Gabe: Taip. Tiesa ar melas, naudojant vieną slaptažodis gera idėja. [01:33:19] AUDITORIJA: Neteisingų. [01:33:20] Gabe: Neteisingų. Naudokite daug slaptažodžius ir didelis, ilgus. Spynos piktogramos užtikrinti saugumą. [01:33:26] AUDITORIJA: Neteisingų. [01:33:27] Gabe: Neteisingų. Tai nieko nereiškia. Tai tiesiog piktogramą. SSL apsaugo nuo vyras viduryje ataka. AUDITORIJA: Neteisingų. Gabe: Neteisingų. Gerai, kad visi tie, yra klaidinga. Nicos. [Nesigirdi] Norite apie tai kalbėti? Jūsų eilė. Davin: tipai išpuolių, vyras viduryje. Kas vyras viduryje ataka? Auditorija: [nesigirdi]. DAVIN: Jei siųsti HTTP prašymas, jie gali tai padaryti, tiesa? Bet jei jūs siunčiate HTTPS, jie tikriausiai nebus galima tai padaryti. Yra daug taškų palei savo ryšį. Jūs turite maršrutizatorių. Jūs turite DNS serverius. Jei kas nors galėtų fiziškai pamatyti, ką jūs siunčiate, taip kas nors galėtų faktiškai gauti tarp jūsų, klientas, ir serveris, ir yra galės pamatyti, ką jūs siunčiate, tai yra žmogus viduryje priepuolis. Taigi, norint pamatyti, ką jūs bandote gauti iš serveris, arba gali see-- blogiau, Jums gali būti galėtų pamatyti sausainiai ar kažką panašaus, kad. [01:34:16] Taigi, pavyzdžiui, jei Jūs neprisijungęs naudojant SSL, jis galėtų matyti jūsų ID slapukus. Ir tai vadinama sesijos vogimą nes jis mato savo ID slapukus, ir tada jis galėtų eiti, kad svetainė ir apsimesti jumis. Nes tik norėčiau PHP, nepamirškite kai mes prisijungęs, ką mes galime padaryti? Mes nustatėme sesijos ID, lygią ID. Taigi, kuris identifikuoja jus. Štai kodėl jūs galite pamatyti savo portfelį o ne visi kiti portfelį. [01:34:38] Na, jei aš galėtų gauti tą slapuką, tada aš galiu prisijungti į šį puslapį. Ir tada, aš tiesiog negaliu matyti savo stuff ir pradėti pirkti ir parduoti stuff. Taigi, kad sesijos vogimą. Bet jūs turite būti negali to-- todėl jūs gali naudoti žmogus viduryje priepuolio net jei jie naudoja SSL. Bet jūs turite būti negali. Jei jie naudoja SSL, galite ne sesijos svetimą. Kodėl? Kadangi visa tai užkoduota, tiesa? jei ji užkoduota, ir aš vis dar žmogus viduryje, aš vis dar gauti savo duomenis. Tai gerai. Bet tai šifruojamas. Taigi, aš tikrai negali naudoti jį. Taigi, kad du. [01:35:09] Nekilnojamasis greitai, kryžius svetainė prašymas klastotė. Tai tiesiog, jei yra ryšys ir kad ryšys daro kažką kad jūs nemanau, kad tai turėtų daryti. Taigi, pavyzdžiui, jei ryšys buvo ketinate pirkti akcijas ar parduoti atsargas, ir jūs nežinote, kad. Jūs paspaudėte nuorodą, išsiuntė prašymą, nusipirkau arba parduoti kažką, kad Jūs nereiškė daryti. Štai, kad. [01:35:25] Cross Site Scripting, todėl čia jūs einančios per kintamojo q, vietoj einančios kažkokia vertės, o gal q yra kaip pavadinimas. Taigi vietoj pravažiuojančių Q yra lygus Davin ar kažkas panašaus, jei nenorite naudoti HTML specialieji simboliai, jei jūs neišvengtų tai įsitikinkite, kad jis Gerai, tada aš galėčiau pereiti į vietoj to, tarkim čia aš sakau Spausdinti ar kažkas panašaus, tada galėčiau perduoti čia scenarijų skambutį. [01:35:51] Taip, tada, vietoj to, tiesiog gauti kintamąjį, Tada norėčiau vykdyti šį scenarijų skambutį. Taigi viduje, kad scenarijų skambinti, ką jis daro? Dokumento taškų vieta, kad ketina pakeisti dokumento buvimo vietą. Taigi, aš ruošiuosi nukreipti kažkur kitur. Tai vadinama bloga vaikinas šis pavyzdys, labai gerai. Nepavyko galvoti žodį. Ir tada, kas dar Blogiau yra tai, kad aš ruošiuosi tada nustatytą slapuko, kuris yra šiek tiek kintamasis turiu šioje svetainėje. Aš ruošiuosi nustatyti, kad jis lygus į dokumentą dot slapuką. Todėl aš ruošiuosi pavogti jūsų slapuką. Ir aš ruošiuosi nukreipti kai į svetainę informacija kad jums nereikėtų būti pasiekti. Ir visa tai vyksta, nes jūs esate ne pabėgti, ką mačiau. Taip? [01:36:29] AUDITORIJA: Taigi tik padaryti, kad aišku, tai vulnerable.com kad yra pažeidžiami tai. Taigi, kad ryšys gali atsirasti bet kurią puslapyje. Kažkas paspaudžia ant jo, eina į vulnerable.com. Turite slapuką į vulnerable.com. Tarkime, "Facebook" yra pažeidžiami, todėl facebook.com. Jūs turite savo "Facebook" slapuką. Kas tai daro, jūs ketina facebook.com, jis iš karto nukreipti jums badguy.com, bet įskaitant savo slapuko informaciją. Taigi, tai greitai peradresavimas, bet jūsų "Facebook" Slapukas yra įtraukta į to peradresavimo, ir tai, kaip jie [nesigirdi]. Gabe: Taip, ten keletas labai vidutiniai dalykai kad žmonės gali padaryti, jei yra tai. Pavyzdžiui, jei Facebook leidžiama visi pakeisti savo vartotojo vardą, ir jie nepadarė bet normalumas patikrinimai, todėl jums gali įterpti JavaScript dalykas, kad keičia savo įvaizdį į žiurkėno. Ir tai įterpia tą patį JavaScript į visiems, kurie peržiūri jūsų puslapį. Taigi visi, kurie views savo puslapį turi tą patį vartotojo vardą. Ir todėl, kad tai virusas, ji plinta eksponentiškai. DAVIN: Mes praleisti paskutinis viena, ir tada mes baigsite. Taigi tai yra tik dar vienas pavyzdys. Taigi tai, kad jie nėra pabėgti savo SQL lentelę. Taigi galite paleisti jį. Taigi jūs norite pabėgti dalykų. Tai buvo ankstesnio pavyzdys su Cross Site scenarijus. Atsiprašome nubėgome truputį vėlu. Rytoj, atsiprašau! Rytoj, mes turime darbo valandomis. Taigi biuro valandas Cabbot 8:00-11:00. Raštinės valandos griežtai viktorinų klausimus.