[Musika jotzen] DAVID MALAN: Hau CS50 da. Aste honetan bederatzi hasiera da. Eta hau da, zer egin behar luke Mr. Boole-ren 200. urtebetetzea izan da. Beraz, hau bekadun da harekin aipatu ditugun erabiltzeari buruzko aldiz luzez Aldagai boolear egia eta gezurra, 1 eta 0, eta, besteak. Eta hau izan zen Google-en zion omenaldia gaur. He bertan irauli 200. Beraz, nahi izanez gero to apunta zaitez CS50 bazkaltzeko, Lotura begirada bat hartu ikastaroaren web orrian. Eta aurpegiak, hala nola, eta lagun gisa horiek hemen Cambridge zain. Horrelako aurpegiak zain New Haven. Eta, hain zuzen ere, Ken New Haven atseginez egin zer ari animaziozko Eli GIF bat deitu hemen azken batean lunch-- GIF da oraindik Beste fitxategi formatu grafiko, horrekin ari ezagunak duzu honen antzeko zerbait apur bat itxura. Beraz, besterik sekuentzia bat OK of--. Inor ez da hemen Cambridge barrezka ari da. Baina New Haven, hau benetan dibertigarria da, ezta? Ados. Beraz, ez, gurekin han. Hemen Harvard at, Zehazki, asteazken honetan, Oraindik sophomore bat bada edo freshman even-- edo are junior-- making of pentsamendua ordenagailuan sartzen switch bat zientzia, badakit ez dela egingo egon CS a hau arrazoizko aholkularitza Asteazkena, handik gutxira, klase ondoren 4:00 ordenagailuan PM zientzia eraikin Maxwell Dworkin. Jarriko dugu hau, jakina ren gaineko biharko webgunean, baita. Donuts, Esan zidaten, eskeiniko da. Ados. Beraz dibertigarria kontu poking ari nintzen Inguruan Interneten, eta artxiboak zahar batzuk aurkitu dut Nire web ohia. Eta bihurtzen da honen inguruan denbora, oso puntuala badirudi Pentsatzen dut UC hauteskundeak geroztik engranaje zoaz berriro. Beraz UC ran I, miserableki galdu. Eta, agian, hau zati batean, zergatik izan zen. Beraz, hau nire garai hartan webgunean zen. Arrazoi batzuk, izan zen pentsatu nuen Ideia ona da, pertsona kontatzea aurretik zer nire plataforma izan zen eta zergatik Bozkatzeko beharko niretzat, dutela jakiteko horretan sartzen Ezkutatu informazioa, eta horrek atzera begirako da creepy mota. Egia esan, ez dakit zer izan zen. Baina zalantzarik gabe, ez da lagundu nire kanpaina. Ere aurkitu dut senior arabera aurten Muppet egutegi hau izan nuen. Muppets motatako ziren modan itzuli ondoren. Edo agian ez ziren. Muppet egutegi bat izan nuen eta itzuli ondoren. Eta izena emateko cool egongo zela pentsatu nuen Nire ordenagailua Harvard sarean frogman.student.harvard.edu. Garai hartan, bakarrean izan dugu identifikagarri ostalarien izenak. Eta Vanity batzuk aukeratu ahal izango duzu Horren ordez, zure izen propioa izena. Eta arrazoi batzuk Frogman batera joan nintzen. Eta gero, asko eman nuen started-- dut Denboraren esteka horietan klik eginez gaur goizean. Eta hori izan zen nire inguruan orria, bertan, gaur egun, mota horretako badirudi adorable. Baina, era berean, lekukoa delako besterik noraino teknologia iritsi da. Esan nahi dut, atzera egunean, 486 bat zerbait izan zen. Egun hauetan, super, super da, super motela eta ongi gutxiago agian duzu zure baino norberaren poltsikoak egun hauetan. Ez da, ez dagoela on gehiago are gehiago, lotsa zen. Beraz utziko dut horretan. Baina hori izan zen nire lehen foray web-- sartu Oh, ez. Hori ez zen. Nire web programazioa sartu benetako lehen foray Gune honetan, eta hori ahaztua besterik ez dut izan zen. Une jakin batean, ikasi nuen nola errepikakorra atzeko irudiak egiteko. Eta beraz, teilatuak hau eraginkorra aurkitu nuen, hockey jokalari, futbola, eta golf bezalako pilota, edo dena dela Frosh Berehal webgunea da. Eta hau izan zen benetan, benetan egin Lehenengo web oinarritutako proiektu on-- hartu nuen Uste dut, agian sophomore Urte, junior aurten CS50 eta CS51, bat hartu ondoren jarraipen-ohikoa klaseak. Konturatu naiz bila artxiboetan bidez Nire ondorengoek bat dela eta lagun, Lee, mota aldatu Bere artean copyright du. Baina hori izan zen, hain zuzen ere, zerbait Lotsa jabe beharko nuke. Baina garai hartan, hau Lehenengo webgunean zen, duela aste batzuk esan dudan bezala, bertan freshman Could arabera diren barruko kirol hemen izena emateko. Eta horrela bihurtzen da hondo irudiak Horrelako ez dira hain ideia ona. Baina web berria zen, eta guztiak esperimentatzen ari ginen. Eta hau zer da itxuraz garai hartan zuen. Ados. Beraz, besterik esan gabe, aldatuko dugu engranajeak gaur emango den, benetan, baliteke aurkituko dituzu, azken pieza batez ere, azken proiektu erabilgarria baina, aldi berean, hori izango da hasteko mundu osoa web dadin sentitzen pixka bat gehiago ulergarria. Hain zuzen ere, aurkeztu goaz programazio hizkuntza bat gehiago Ikusteko Javascript-a deitzen duten antzera eta modu ezberdinetan ezberdinak hizkuntzetatik orain arte begiratu dugu. Beraz, C, oroitzapen, konpilatu hizkuntza hau. Nik ez da konpiladore baten bidez exekutatu. Oposiziorako iturburu-kodea eskuratu duzun kodea, edo zero eta bai. Eta horiek zero eta bai zarela zure CPU, Central Processing Unit, benetan ulertzen. PHP, ordea, ez da konpilatu hizkuntza bat. Da a zer? Lengoaia interpretatu bat da. Beraz, ez dago programa batzuk Interprete baten deituak it gora irakurtzeko aukera du behean, ezkerrean Arrazoi bertan zer guztia Zure sintaxia duela eta esan, begizta batean edo egoera bat ote den edo programazio beste edozein zenbaki eraikitzen. Beraz, hori interpretatu hizkuntza bat da. Ondoren HTML sartu dugu. Eta HTML ez da, nahiz bat programazio hizkuntza. Genuke zer deitu? A markaketa lengoaia da, hau da, besterik gabe, dela esaten modu dotore moduko bat ez du eraikuntza bezala programatzen dute nahiz eta Scratch egun atzera ikusi genuen. Badira begiztak ez. Badira baldintza ez. Benetan da hizkuntza bat da Zure datuak markatzea buruz eta formatu horri edo egiten egituratzeko nolabait. CSS, bere aldetik, era berean, Ez programazio hizkuntza bat. Honez are gehiago estetikoki orientatuta. Eta fintzeko ordenatzeko aukera ematen du letra-tamaina eta kolore bezala gauzak eta laneratze eta hori guztia. Orduan izan genuen SQL. Beraz SQL da, hain zuzen ere, programazio bat zentzu batean hizkuntza, egokitutako arren zehazki, datu izateko. Baina nahiz eta zuk bakarrik aurkeztu dugu hautatu eta txertatu eta ezabatu eta eguneratu eta beste pare bat, bihurtzen benetan dezakezu funtzio idatzi edo prozedurak, Oraindik dute , izeneko SQL begiratzen duten eta egintza batean nahiko PHP eta C funtzio bezala. Beraz badakiela dituztenak. Baina ez dugu haiekin traba urratu dugun bezala besterik azalera hemen. Eta gero, JavaScript, azkena gure hizkuntzak formalki sartu. Beraz, Javascript, ere, hizkuntza bat interpretatu. Eta ezagutzen dutenek, egiten bereizteko nahi duzu berezitasun batzuk bai C eta PHP from? Zer egiten du ezberdin? Ikusleak: Ez da konpilatu. DAVID MALAN: Esan berriro? Ikusleak: Ez da konpilatu. DAVID MALAN: Ez da konpilatu. Beraz, gehiegi, interpretatzen da. Beraz, ez da konpilatu. Baina hori egiten PHP bezalako apur bat. Baina oraindik ere ezberdina da PHP modu deigarri batzuk ere, Bide batez, gutxienez dugu erabiliko. Bai? Ikusleak: bezeroaren aldeko exekutatzen da. DAVID MALAN: exekutatzen Bezeroaren aldeko, normalean. Hori da, hain zuzen ere bereizgarria du guretzat ezaugarria oraintxe. C zerbitzariaren aldeko zen zentzuan CS50 IDE guztia egin dugula. PHP, beraz, orain arte izan da Zerbitzari aldeko neurrian bezala, ere, lortzen interpreted-- Ez konpilatu, baina interpreted-- CS50 IDE, eta horrek, noski, barruan besterik zerbitzaria zerbitzari bat edo hodeia. Baina JavaScript, nahiz eta duzu bazoazela arren idazten, adibidez, pset hasteko Zortzi eta, agian, final proiektuak Oraindik Hori da patxada aldera joan CS50 IDE eta gorde CS50 IDE, CS50 IDE barruan fitxategietan eta, aldi berean, hodei zerbitzarietan horien gainean da da ostatutako, ez dira joan interpretatzeko edo exekutatu zure kodea. Izan ere, bidaliko da joan nabigatzailea behera formulario aldaketarik jasango. Eta nik orduan IE izango da edo Chrome edo Firefox edo Safari edo dena dela benetan interpretatzen da, goitik behera, ezkerretik eskuinera. Beraz, gako bereizgarrietako Gaurko ezaugarria da JavaScript hori bezeroaren aldeko da eta PHP, esate baterako, egon zerbitzariaren aldeko ditu. Orain, hau inplikazio interesgarriak ditu , bezala, jabetza intelektuala eta benetan ikus dezakezu zure kodea. Eta hain zuzen ere, joan ahal izango duzu web orrian eta ikusi gehien norbaitek dauka inolako kodea Javascript idatzita. Batzuetan irakurgarri da, Batzuetan nahasia da. Baina denbora dela eta horretan gehiago. Beraz, JavaScript, nicely nahikoa, da super antzekoa, sintaktikoki, C. Eta PHP bezala, ez dago funtzio nagusia da. Idazten hasteko nahi baduzu JavaScript kodea, ikusiko duzu gaur bezala, besterik hasten zara idazten. Baina da, ikusiko duzu, bereziki Nabigatzaile testuinguruan erabilgarria. Hala eta guztiz ere, nire little normalean lehenago ezespena zen, gero eta gero esan gaur erabilera Javascript zerbitzariaren aldeko Node.js izeneko marko fancy bat erabiliz CS50 aplikazioen propioa batzuk daude idatzita. Check 50 benetan erabiltzen Node.js. Baina ari gara ardatz joan Javascript bezeroaren aldeko hemen gunean. Beraz, hemen PHP Baldintza sorta bat da. Sentitzen dut, egia esan in--, hori En un comunicado, too zuzena da. Hemen da, halaber, multzo bat Ikusteko Javascript-baldintzak. Sintaktikoki bada, C eta PHP berdina. Mr. Boole-ren adierazpenak dira, era berean, sintaktikoki bai C eta PHP berdina. Horrez gain, bat ere switches Javascript-berdina begiratzen duten. Direla begiztak daukagu berdinean egituratuta, loops bitartean, loops bitartean. Honek apur bat desberdina da. PHP izan du eraiki bakoitzeko baliteke erabiliz izango duzu edo egingo pset zazpi erabili, agian. Ikusteko Javascript-a bertsio berezi hau du non literalki zerbait esan duzu funtsezko aldagai objektu ere, dagoen bezala, esaten modu oso laburra da, I got bada object-- eta dizkizugu horiei buruz hitz egin berriro une batean eta osoko batetik bestera joateko nahi dut the gako bikote barruan, Nik ez dut irudikatu nola den zenbakiz indize horiek zero, bat, bi, hiru. I literalki esan daiteke hau. Eta iterazio bakoitzean, Ikusteko Javascript-a Niretzat funtsezko aldagai eguneratuko Lehenengo gakoa, gero hurrengo gakoa izango da, ondoren, hurrengo tekla, ondoren datorren gakoa, eta abar. Eta bere balioan lor dezaket tratatuz Javascript objektu bat, gisa ikusiko dugu, bat da, nahiz eta gisa PHP elkartze-array. Izan ere, zuk azkenik bilduta bada zure Axola inguruan elkarte array zer da PHP, pentsatu ahal izango duzu orain bezala Javascript objektu bat berdina. Baina hori pixka bat da oversimplification. Arrayak begiratu, nicely nahikoa, berdin- PHP pertsonaia bat izan ezik. Bada gauza bat hemen falta da ikusi azken astean PHP batera egin dugun. Zer ari da zehazten ez? Bai? Ez dago dolarraren ikurra. Beraz, hemen gara bati Mundu normal gehiago non aldagaiak ez dolarraren seinaleak dute. Baina has horiek egiten duzu var, normalean batera. Eta var aldakorra esan nahi du. Eta PHP bezala da, gutxi gora behera typed-- zeinaren daude mota, daude zenbakiak eta kateak eta karroza eta beraz forth-- Javascript antzera mota ditu. Baina baziren duten idatzitako gara programatzaileek ez dute horiek zehazteko. Besterik ez dugu kontuan izan behar da mota ezberdinak existitzen. Aldagaiak, hona hemen nola meanwhile-- Baliteke aldarrikatzen dugu "Kaixo mundua" Kate gisa. Iragarki berdina da PHP baina ez dolarraren ikurra. Eta hau zerbait da, dugu hasteko, gaur egun ikusten, Horren bidez, objektu bat behar duzu gakoak eta balioak. Eta saiatu nahi baduzu Pasa den astean infer sintaxia apur bat desberdina da. Baina apur bat behatu check zenbat gakoak objektu honek ez dirudi behar? Beraz, lau ikusten dut. Bi ikusten dut. Beraz, egia esan, bi. Beraz, hau bilduma bat da Bi gako-balioa bikoteak. Gakoa sinboloa bere balioa FB da. Gakoa prezioa bere balioa 101,53 da. Beraz, bi gako-balioa bikoteak dira. Eta gogoratu, PHP eta hau da berriro besterik desberdintasun sintaktikoak moduko. Ez da hori guztia intelektualki interesgarria. PHP bera honek agian idatzi Gauza follows-- aurrekontua bezala, berdin. Eta aldatuko dut horiek parentesi karratu bat. Eta gero, aldaketa I honetarako kotizatzen hitz bat, "prezioa". Eta gero, ez dut puntu eta erabili. Zer egin zuen joan den astean erabili dut? Bai, berdin ikurra gezi funky notazioa. Eta gero, gauza bera egin nuen hemen. Gauza bera hemen. Eta hori da dena. Beraz, gauza ederra da hori ez badu benetan hondoratu in memoria besterik oraindik delako da benetan intelektualki izanarren. Besterik sintaktikoa ezberdintasunak da. Baina ideia berdinak dira zehazki. Aldagai horren barruan Ikusteko Javascript-a aurrekontua gako-balioa bikoteak bilduma bat da, horietako bat sinboloa da, eta horietako batek prezioa da. Eta balio horiek at lor dezaket ondoko sintaxia batera. Just PHP, eta ahal nuen bezala Zerbait egin antzekoak utzi Kutxa hau apur bat handiagoa egin zidan. Just PHP, eta ahal nuen bezala egiteko Halako oh, dammit. Etorri. Just PHP OK ere, dugu bezala besterik erabili aurkezlea notak. Just PHP bezala, ahal dudan $ aurrekontua $ aurrekontua ["ikurra"] egiten, eta hau lortuko me balioa "ikurra". Ikusteko Javascript-a ere, izan da joan berdin-berdina, eta horren bidez ezin dut besterik ez hau. Hori da gauza bakarra falta dolarraren ikurra da. Beraz nicely nahikoa, gero, ez da Askoz sintaxia berri guztiak ez direla. Beraz, gaur egun erreparatuta, benetan, da Ideiak eta aplikazio batzuei. Eta lehen, hala nola Aplikazio duzula agian ikusi dute atean sartu duzun pset hartuz gero zazpi dagoeneko sintaxia hau da. Beraz, pset zazpi urtean, baduzu ikusi edo ikusi gabea, Ezagutzen ez dagoela hori ematen diogu fitxategi bat da config.json-- JavaScript izeneko duzu Objektu Notation. Zergatik? Emateko gauza izan nahi genuen gako-balio bikote batzuekin txantiloi bat. Zerrenda bat emateko gai izan nahi dugu ostalaria, zerbitzari-izena. Ematen den bat nahi dugu Zure erabiltzaile-biltegia eta pasahitza biltegia. Zuk ez da ikusten ari bazara hala ere, hau da, ez kezkatu. Gehiago honetan pset zazpitik [? zehaztapenak. ?] Eta gero, jakina, zuk nahi dugu to the egitekoak bete saioa sartu duzulako CS50 IDE, bakoitzaren Zure erabiltzaile-izena eta pasahitza egin dute. Beraz, ez dugu dozena erdi bat izan du erabili edo fitxategi formatu ezberdinetan gehiago. .txt Fitxategi bat erabil genezakeen dugu. CSV fitxategi bat erabil ahal izan genuen. Erabili ahal izan dugu antolaketa INI fitxategia, XML fitxategi bat, sigla sorta oso bat gehiago dela agian ez duzu inoiz entzun. Arbitrarioa mota It Egunaren amaieran. Baina super popular egun hauetan testu bat da formatu JSON-- JavaScript Object izeneko Hori Notation-- itxura hau. Apur bat críptica, baina nabarituko ereduak. Hasteko kizkur irekia duzu giltza, eta, azkenean, bera baita. Horren barruan duen zerbait da. Gako-balio bikote bat da. Beraz, hori naiz objektu bat da batera pantailan hemen bila duten gako bat, eta horrek balio bat dauka. Eta besterik oinarritutako inferentziak aurreko eredua, zer da gakoa hemen? Database, gauza puntuek ezkerreko. Orain, balioa gertatzen da a lerro bat baino gehiago denbora honetan. Baina balio kizkur batekin hasten giltza eta kizkur giltza bat amaitzen da. Beraz, zer egingo zenuke zuk proposatzen da database balioa mota? Hiztegi bat edo, besterik gabe, gehiago laburki, objektu bat. Eskuin? Datuak egitura baten antzeko zerbait da hori beraren barruan beste egitura erabil daiteke. Beraz, hori guztia bagaude object-- bat eta objektu bat deituz besterik gako-balioa pairs-- mordo bat da datu-basearen beraren balio objektu bat da. Database balioa sorta oso bat du gako bikoteak, lehenengoa ostalari bada, izen, gero Erabiltzaile izena, pasahitza, bakoitzak bere baloreak, bestalde, ez da Komatxoen katea aspergarri bat besterik ez. Beraz, hori ez da, nahiz eta super argi besterik ez da oraindik, jakin hori ez da estandarra, nahiko aspergarria modu ren datuak gordetzeko formatu estandar batean. Baina ohikoa akatsak duzu , egin dezake, nahiz eta pset zazpi urtean, dira ergelak gauza txiki, gustoko baduzu ustekabean ezikusia koma dago. Hori da artxiboa itxi lezake joan ez du zertan irakurgarriak izatea. Nahi gabe bezala gauzak ezikusia bada komatxorik, ez da irakurtzeko modukoa izango da. Beraz, nahiko nitpicky formatu baten, baina hori da super ohikoa da. Eta erabili, nahiz eta gerta dugu Ez duzu inolako JavaScript erabili bestela, pset zazpi urtean. Ados. Beraz, gogoratu irudi honetan. Buruz hitz egin dugu, HTML, hori Kodea litzateke berdina. Hau da, HyperText Markup Language [INAUDIBLE] besterik ez da "kaixo, mundua." Baina orduan proposatu dugu bat Atzera berriz laguntzen bada hori, pentsatzean hasi nahi baduzu honek dagoeneko zuhaitz bat bezala. Izan ere, koska garela erabili besterik irakurgarritasuna en mesedetan edo estilo-en mesedetan erabiltzeko ezkerreko mota dezakezu zuhaitz hau, non itzulia erro nodo berezi bat bagenuela egingo oro dokumentu deitzen, eta horren azpitik erro HTML elementu edo etiketa, HTML da, eta gero bi ditu haurrak, burua eta gorputza. Eta gero, aldi berean, burua izenburua dauka. Eta titulu-balioa du. Eta gorputz antzera testu balioa du. Beraz, esaera eroso bada Hori bai, HTML hau hartu ahal izango duzu eta atsegin marraztu honetan, eskuineko aldean mental eredu polit bat da orain delako Javascript dugula, programazio bat Hizkuntza nabigatzaile ahal duten gauzatzeko eta zuretzat interpretatzea, bihurtzen da zer dela kode egin buruz ari gara hau manipulatzeko hasiko da zuhaitz memorian egitura. Guk ez dugu izan nahi eraikitzeko memorian zuhaitza. Guk ez dugu izan Sort egin pset bost-style datu-egitura konplexutasuna. Nabigatzailea, nicely nahikoa, haren HTML goi interpretatzeko behera, ezkerrera edo eskuinera, literalki joan entregatu gurekin erakuslea baliokidea doan zuhaitz osoa dela. Lan gogorra guztia egiten du. Hori zer Mozilla eta Apple eta beste batzuk, guretzat egin dute. Eta Ikusteko Javascript-a egingo dira nahi dugu izan kontrolatuko eta aldatu eta egin gauza interesgarri zuhaitz hori, bestela ezagunen DOM edo Document Object Model bezala. Zer gauza mota? Beno, bihurtzen da Ikusteko Javascript-a ere, ez da garbitegia zerrenda hau leku hartu daiteke ekitaldiak. Eta ez dugu benetan erabiltzen duten Hitz geroztik aste zero eta pset zero noiz hitz Scratch gara. Duzun ziurrenik ez zuen erabili Zure Scratch proiektu ekitaldi batean. Baina agian duzula gogoratzen sinpleak Marco Polo Adibidez, non bi izan genuen sprites, eta haietako bat esan, Marco. Horietatik gero, entzute gainean Bestea eta ekitaldi horretan entzumena, esan zuen, Polo. Hala ez bada, sentitzeko doan atzera begiratu duten neurrian atzera. Baina hori da esan, eta ez duzu mota horien izenak ondorioztatu Gauzak, JavaScript, bihurtzen da, da gurekin emateko modu bat entzuteko joan saguaren jaisterakoan edo sagua gorantz joan edo gakoa behera edo giltza joan gora edo onsubmit onselect edo zerbait onresizing. Beste era batera esanda, ekintza fisikoak edozein Giza hori nabigatzaile baten bidez hartu daiteke Egunero egiten duzula, idatzi ditzakezu Hori kodea gertakari horiek entzuten eta, ondoren, zerbait egokia egiten du. Adibidez, Google Maps erabili bada, zer gertatzen sakatu baduzu eta mugimendua sagua, normalean? Klik egiten baduzu eta arrastatu? Bai? Hain zuzen ere. Mapan mugitzen hasten. Beraz ordenatzeko ikusiko duzu zer da hemen baino, zer han. Eta nola gauzatu du Googlek? Beno, ustez, Oraindik dute Gertaera horiek pare bat erabiliz entzule, bat dio, entzun sagua erabiliz erabiltzaileari fisikoki Behera orain Bere trackpad edo bere sagu batzuk bultzatzen behera. Eta gero ari gara bila Mugimendu antzeko zerbait edo beste ekitaldi batzuk arrastatu ateratzeko aukera ematen digu. Eta hain zuzen ere, arrastatu da, era berean, hau ere dot dot ahalik eta aukeren zerrenda dot. Beraz, hau da, indartsu bat izango da erabiltzaileari erantzuten hasteko modu benetan klik egiten berak, nahiz eta lehen Zerbait esplizitua bezala aurkeztu. Baina ari gara aurkeztera joan Bikote gaiei bat iritsi. Baina lehenengo eta behin, dezagun trantsizio Benetako kodea batzuk. Beraz, ez dut joango aurrera eta ireki dom-0 bertan adibide oso erraza da Handiagotzeko dut besterik ere bada hemen dagoela sarrera hau hemen niretzat ditu. Eta aurrera noa eta idatzi joan "David" nire izena eta sakatu Bidali. Eta gero, nahiz Sort merke, I azalduko dela dio galdera hau egin behar, "Kaixo, David!" Beraz, hau da, mota Gure "kaixo, mundua" awhile C atzera egin dugula eta are PHP dinamikoki dut dudalako nire izena Outputted. Norbaiten izena hemen egin ahal izango dut. Besterik ezin dut aldatu honetarako, bezala, Hannah, sakatu Bidali. Eta hain zuzen ere, apur pop-up aldaketak. Orain, pop-up bat dira tratu web eginbide. Eta hain zuzen ere, atzera ere egun pop-up blokeatzaileak modan jarri ziren duzulako website-- batzuk joaten ziren agian eztabaidagarri leku bat litzateke, ondoren, bat-batean, hasteko zure pantaila peppering pop-up osoa sorta batekin. Eta beraz, gaitasun hori, pop erabiltzaileari aurrean leihoak ez du bereziki izana gizateriaren ondo jaso. Beraz, horregatik ikusten duzu hau gauza gerta ez dadin, bertan besterik egiten esandako guztia itsusia. Beraz, egin behar da modu hobea erabiltzaileari galdetuko. Baina orain, hori dirudi lan egiteko. Beraz, intuizioa, zer dirudi gertatzen ari da hemen? Aurrera joan nintzen eta sakatu Bidali, eta ondoren, zerbait gertatzen da argi eta garbi. Baina zer gertatzen da, ez da gertatzen hori zen gertatu azken astean edozein denbora Bidali klik egin nuen? Zer ez da pantailan gertatuko? Sentitzen dugu? Freskatuz. URL ez da aldatu guztietan. Hau izan zen Dom-0 esan dut, eta oraindik ez naiz Dom-0. Normalean, lortu genuen beste batzuk aldatu URL, erregistroa edo antzekoak. Baina, nahiz eta I kargutik OK klik eginez gauza hau, Oharra URLa egonaldiak erabat jarri. Eta, hain zuzen ere, apur bat banago eszeptikoa, let me ireki Chrome. Ireki me Sarea fitxa. Eta konturatu hutsik da une honetan. Dezagun aurrera me eta berriz bidali Maria. Ez dago sareko trafikoa inolako. Beraz, ez dago HTTP ez da. Beraz, hain zuzen ere, begiratu nuen iturburu-kodea, Halako for utzi leiho hau itxi me eta joan Iturria ikusteko. Interesgarria da. Badirudi bezala batzuk Etiketa berriak, horien artean, gidoi. Beraz, dezagun CS50 barruan begirada bat IDE zehazki zer bidaliko diote erabiltzaileari dut. Beraz, hemen utzi is-- HTML bakarra ardatz. Hemen behean Dom-0.html erdia da. Eta nabarituko dela lortu titulua, Etiketa burua, gorputza tag bat, forma etiketa bat. Baina zer joango duzu behar bezala desberdinak, ez dut inoiz, batez ere baduzu Edozein Javascript zeuk idatzia. Dezagun apur bat joan me eskubidea hemen. Lortu dut, sarrera bat, sarrera gehiago bidaltzeko. ID bat du eta new mota da lortu dut. Baina ikusi genuen hau CSS batera. Zer gehiago da, zalantzarik berria? Bai? Nice. Ados. Beraz, non onsubmit esaten du, nabarituko zer dela jarraiki. Hau atributua da HTML nomenklatura ere. Bere balioa kotizatzen kate hau da hemen. Eta hau itxura apur bat Lehen begiratuan bitxi. Ez da HTML. Ez da CSS. Hau da, zelan eragingo, Javascript. Beraz, hau barneratzen dela dirudi Web orria agurtu izeneko funtzio bat da. Eta ni besterik ondorioztatu dut Hitz bat delako, agurtzeko. Honez paren bat lortu, itxi paren, puntu eta koma. C funtzio baten itxura du, PHP funtzioa itxura. Eta hain zuzen ere, nik joan JavaScript funtzio bat izan. Gero gezurra itzuli naiz. Itzuli dugu nahi une bat besterik ez dela. Baina non definitzen da funtzio hau? Beno utzi me joan gora Fitxategiaren goian. Eta lerro luze bat baldin bada ere, nahiko erraza da. Dezagun zooma hemen me eta lau lerro hauen ardatz. Ikusteko Javascript-a Beraz, besterik ez PHP bezala, besterik ez duzu esan, literalki, "funtzio" hitzaren funtzioaren izena, eta, ondoren, inolako Parentesi argumenturik ez argumentuak kasu honetan. Eta ez dago bueltan mota Ikusteko Javascript-a ere, besterik ez gustatzen PHP. Beraz, C. baino pixka bat looser da Open kizkur giltza, itxi kizkur. Javascript barneratzen da funtzio bat Ez da gomendagarria bat funtzioa baina alerta funtzioa izeneko zeinen bizitzan helburu bakarra da tira, nahiko itsusi eskatuko duela une bat ikusi genuen. Orain hau mokadu baten antzeko zerbait da. Zer gertatzen da hemen? Hargatik hasteko en nabarmendu dena hemen. Hori ohartarazteko argumentu bera da. Eta zer gertatzen da? Hau besterik kate baten itxura du. Eta bihurtzen da, PHP ez bezala, eta ez bezala C, ez du JavaScript axola komatxorik single edo komatxo bada. Baliokidea izango dute. Eta Egia, besterik ez da herri-egun hauetan Javascript programatzaileak beti Komatxo erabiltzeko arrazoi batzuk. Gauza egin da. Baina komatxo erabili izan dugu, baita. Beraz, plus pertsonaia berri bat da. Baina duzuenontzat Nik egin duten honen aurretik, zer esan nahi du plus? Bai. Kateatu. Beraz, hau ikusi genuen PHP. Ez dago besterik ez dot PHP operadorea bi kateak kateatu dira elkarrekin. C lepoan mina bat hau egin zen. Pset sei, zein zen gogoratzen Lepoan mina especial bat, erabili behar zenukete strcat antzeko zerbait memoria esleitzean ondoren pila edo zeure gainean. Uztai bidez salto egin izan duzu bi kateak kateatu. Ikusteko Javascript-a ere, super erraza da. Just plus operadorea erabili haien artean. Beraz konplexuko du Gauza badirudi hau dela uste dut amaieran delako kate honetan guztian, besterik ez dut harridura kateatu an. Zer sortu zen leihoa Beraz bazen "Kaixo, David", "kaixo, Hannah," "Kaixo, Maria", eta abar, argi eta garbi Bien arteko gauza erdialdera dagoela pluses eman behar dit zer sarbidea? Zer da ere ez ziur? Bai. Beraz, hemen itxurak dut beren izena erantzutea, ezta? Beraz, haien izena idatz sortu finalean emaitza. Beraz, zer esan nahi du horrek? Beno, lehenago proposatutako dut horretan irudi hori deiturikoak DOM erro elementu hau berezia du bide eman gora dokumentu deitzen. Eta orain, bihurtzen da, hori gertatzen global aldagai berezi bat izan nahi du Ikusteko Javascript-a, hau da, bat barneratzen Funtzionalitatea erabilgarria sorta osoa. Artean funtzionalitate erabilgarria da gaitasuna edozein ondorengoa nodo at lortu. Lauki edo laukizuzenak edo elipseak horiek besterik ez dira zuhaitz batean nodo, nolabait esateko. Eta gertatu da txertatua dagoela Javascript-ren dokumentuan objektu funtzio bat, bestela bezala ezagutzen da metodoa, hori getElementById deitzen. Deituz sintaxia JavaScript funtzio bat objektu bat edo baten barruan dago aldakorra besterik dot idazkera da. Eta hau ikusi genuen C zer eta egitura sintaxia. Hau ikusten duzu pset zazpi urtean, mota, ordenatzeko, denean CS50 :: kontsultan ikusten duzu. Colon PHP puntuek beste bat hori da funtzio bat deituz modu objektu batzuen barruan. Baina JavaScript oraingoz, puntu bat besterik ez da. Eta, beraz, funtzio hau, nicely nahikoa, mota dio zer elementu zaitez honek, identifikazio arabera. Elementu bat besterik ez, beste izen bat da Etiketa bat edo nodoaren DOM barruan. Eta beraz, elementu ID "name" arabera esan Halako hemen nire erakutsiko da. Eta oinarritutako HTML honetan, zer nodo edo zer HTML etiketa naiz programazioaren izan eskuarekin joan document.getElementById deituz? Bai, hain zuzen. Sarrerako lortzeko noa elementu ez horren izena "izen" da. Beraz, zehazki, ahal duzun Funtzio honen ustez, getElementById, emanez modu gisa kopiak erakuslea nodo horren zuhaitzean. Ez dugu marraztuko honetan zuhaitz, baina modu bat da duten sarbidea lortzean Laukizuzen edo laukizuzenaren bakarrean, bere NAN bidez identifikatuz. Orain, zergatik da erabilgarria? Beno, bihurtzen da Behin ahaztuak duzun hori nodo hori, batetik laukizuzenaren Irudian, nodo horren barruan, aldi berean, sorta oso bat du properties-- gako-balioa bikoteak edo datuak, eta horietako batek balio deritzo. Beraz, literalki, bat mota da mokadu gauza osoa azaldu nahi du. Baina egunaren amaieran, da hau egiten du dena ematen duzu duten erabiltzaileak idatzitako kate bat hierarkikoa moda hau. Baina ez zait gustatzen a Gauza horiek pare. Edo, hobeto esanda, ez jakinmina batzuk oraindik. Hori guztia zirudien lanera. Zergatik itzuli dut uste duzu faltsua agurtzeko deituz ondoren? Badirudi pixka bat itsusi, hori Daukat bi adierazpenak ez puntuz bereizita. Hartu asmatzeko. Itzultzeko faltsua kendu badut, zer Gerta liteke, besterik senari? Sentitzen dut, esan berriro? Ireki Windows mordo bat. Beraz, potentzialki agian zerbait atsegin gertatuko litzateke. Zer gehiago? Eskaera bat non aurkeztu daitezke? Orri berera. Beraz, hain zuzen ere, hori da hori hurbilago hemen erantzun, are gehiago, nahiz eta ez bezala iraganean, ez dut ekintza-ezaugarriak, normalean egin behar dugu. Turns han lehenetsi bat. Ez duzu ekintza zehaztu badu, da aurrekontua esatea bezala da, unquote edo fitxategi beraren izenean, Kasu honetan, zein izango litzateke Dom-0.html bezalakoa izan. Besterik motatako inferitu, edo, hobeto esanda, inplizituki. Eta ez dut ez, beraz, bada egin, dezagun nabarituko. Utzi hau gorde me. Eta kendu dut bueltan faltsua. Uztazu honetarako Adibidez, eta indarrean kargatzea eragingo du. Eta ikusi izan liteke me iradokitzen hau CS50 aldiz mordo bat eztabaidatu. Funky ezer inoiz bada interpretazio eta nabigatzailea ez da jokaera espero bezala, anhitzetan eutsi nahi dituzu Filmea eta ondoren egin klik Birkargatu. Hori fitxategia behin behartuko du freskatuz eta ez zure nabigatzailean web cache erabili edo kopia orain, beraz, utzi aurrera me eta ireki, nire Inspector, Sarea fitxa. Egin klik noa Ganboa Login dudalako ez nahi ilaretan ezabatu da Behin I whisked kanpoan beste nonbait emateko. Dezagun aurrera me hemen eta Andi mota, sakatu Bidali. Ados. Hori espero bezala, badirudi. Dio "kaixo, Andi." Let OK sakatu me. Interesgarria da. Iragarki orria aldatu, Jatorrizko orrialdera arren. Iragarki URL aldatutako mota. Galdera-marka bat gehitu da, bertan adierazle bat izan ohi da Zerbait aurkeztu saiatu garela. Eta gero, behealdean, are gehiago, esplizituki, Hemen benetako HTTP eskaera da, Horietarik, 200 inguru erantzun bat lortu zuela ekarri nau hona itzuli. Beraz, hau ez da zer da , eskuinera egin nahi dugu? Zeren eta ez dut nahi orri osoa kargatu berriro. Ordez nahi nuen itzultzeko beraz, zirkuitu labur bezain faltsua nabigatzailea lehenetsia portaera, eta horrek izan zen, noski, orrialde aurkeztu. Beraz, dezagun begirada bat Adibidez mugagabeko hobea. Hau dom inork bertsioa da. Eta konturatu da honako hau. OK da, ez baduzu grok Kode lerro guztia. Baina zer da funtsean ezberdinak ezartzeko honi buruz? Zeintzuk dut jokatzen du etorri bera, gauza bera egiten du. Zer izan da, jakina, beste era batera egin dut? Bai? Ikusleak: [INAUDIBLE]. DAVID MALAN: Bai. Beraz, funtzioa definitzen da differently-- Beste era batera esanda, inprimakia gutxitan, eman ez on line, 7 edo baizik eta, line 8-- jada ez egin du onsubmit attribute daukat. Aurreko adibidean, hau izan nuen. Eta gero, literalki idatzi my kodea hemen dut. Eta itzuli faltsua esan nuen. Eta bada ez igurtzi okerreko bidea, hala ere, beharko luke neurrian eta, besterik HTML bezala, denean hasi ginen elkarlanean nahasten da style atributuetan CSS batera, hasi besterik ez da apur bat lortzeko narratsa edo oker pixka bat sentitzen. Era berean, hemen, bada HTML hartzen hasten zara, eta, ondoren, automatikoki plop JavaScript kodea batzuk kotizatzen kate baten erdian, da Ez oso mantengarriak izango. Eskuin? Ez da, nahiz eta hasiera batean bistako place non JavaScript kodea da. Beraz, benetan polita izango litzateke diseinu hobe-hastapena, dezagun erabat mantentzeko gure HTML Gure Javascript urrun. Beraz, hori egin ahal izateko, zer dugu Hemen egin honako hau da: erabili dugu besterik HTML marka bakarra da. Eta beraz bertsioan honek bat, guztiak Tengo ID berezia da modu bat da. Eta gero, hara behera, aprobetxatuz naiz Javascript ezaugarri berezi baten Horren bidez, zer da izan ahal dut funtzio anonimo esaten. Eta gertatu da hori esaten diot bada 'demo' of document.getElementById Hori me emanez erakusle bat bezalakoa da Nire zuhaitz lotune honetan, formulario elementua, nolabait esateko. Orain, I-tik jakin besterik HTML apur bat jakitea orain ari irakurri dugu online batzuk erreferentzia, inprimaki elementu bat onartzen duen Gertaera listeners-- osoa sorta batean Beste era batera esanda, garbitegia, ekitaldi zerrendan entzule, duela une bat ikusi genuen. Badakizu dokumentazioa irakurtzen dut onsubmit baliozko zita da Formulario elementu bat entzulearen. Beraz, hori badakit behin, segurua da niretzat egin honako hau nodo hori lortu zuhaitza, inprimaki elementua, eta sarbide-izen hori bere Jabetza onsubmit. Beraz, besterik ez dot esan nahi du honen jabetza bat da, horren barruan balio berezi bat bezala. Eta zer datu-mota naiz esleitzea, itxuraz, , onsubmit zein da eraginkortasunez aldagai baten barruan zuhaitza nodo hori? Eremu bat struct horren barruan dago. Zer da datu-mota? Funtzio A, bai. Beraz, izarrekin bihurtzen da PHP ditu honek. Eta are dugun arren ez zuen horri buruz esango dizu, C funtzioa ere erakusleak, dauka gainditu eta funtzioak esleitzeko gaitasuna aldagai 'balioak beraiek bezala. Eta ez goaz Atzera regress C. Baina, oraingoz, bihurtzen da Eskuineko aldean, hemen, Apur bat ikusten da, nahiz eta funky, baliabide hau, beno nabigatzailea, funtzio bat eman dit. Ez naiz, nahiz eta traba emanez joan literalki naiz izen bat delako dezagun deitzen esleitzeko joan funtzio honen helbidea berehala onsubmit. Beste era batera esanda, nabigatzailean, egin behar ez baduzu zer funtzio hau deitzen den jakiteko. Besterik ez duzu jakin non da memorian. Eta, beraz, besterik gabe, nahikoa da berdin ikurra izan ez eta ez traba honek izendatzen den, bezalako foo edo agurtzeko edo beste hitz. Eta orain gauza estilistiko bat besterik ez da. Kizkur hau mugitu ahal izan nuen Hurrengo lerroan barkatu the-- kalera bezala egin ohi dugun CS50. Baina Javascript ere, da, Egia esan, estilistikoki komuna kizkur giltza, gorde, etorri lehenengoa, lehen lerro horretan. Baina hemendik aurrera, ez da ezer interesgarri. Kizkur irekia dela besterik Nire funtzioa hasi baino demarcates. Funtzioa da orain berdin-berdina, salbu dut sartutako bueltan faltsua du funtzio honen barruan. Bihurtzen da delako eta bakarrik egiten duzun Badakizu hau irakurtzen documentation-- du Funtzio duzula esleitu baldin bada to the onsubmit handler itzultzen faltsua, nabigatzailea besterik ez daki, eta ados Ez inprimakia aurkeztu zerbitzari batera. Itzultzen egia bada ere, izango da aurkeztu arrazoi ikusiko dugu zerbitzaria da une bat besterik ez dira erabilgarriak. Eta gero, koma ondoren kizkur giltza ez besterik esan nahi dut egin funtzioa definitzeko naiz. Zer den azkarren deitzeko Badakizu aurkezteko entzuten duzun bezala. Ados. Hau da, oraindik ere, dudarik gabe, itsusia mota. Beraz, zer gehiago egin dezakegu? Beno, bihurtzen da orduan ere bi bertsio, hau da, azken hori du eta begiratu besterik honetan bilatuko dugu. Egiteko arriskua hartuta da itsusiagoa, bihurtzen da ez dagoela liburutegi bat ere jQuery izeneko munduan. Eta jQuery super bat da popular Javascript liburutegia hori da, beraz, herri gehienek Edozein JavaScript ez da arraroa pertsona nahastu JavaScript jQuery. Zergatik? Ikusteko Javascript-a berez oso ditu gauza egiteko modu xehetua document.getElementById, dadadadadada. Honekin jarraituz, oso beharrik Kode lerro luzeak. Beraz, John Resid izeneko ikaskide bat, Duten benetan startup batean lan egiten du egun hauetan sortu, atera zen Liburutegi honetan urte ekin Duela jende askok lagundu dute jQuery izeneko to aldatuko du honela sintaxia. Eta halaxe ikusten duzun hau, azkarra izaten direlako duzu Ikusten honek bat egiten badu Web-ean oinarritutako proiektua behin betiko, Hori horrela baliokidea izango litzateke funtzio bera duten erabilita gauzatzeko liburutegi berezi honetan. Orain, baizik eta tease baino gain, bere osotasunean, dezagun eredu batzuk begiratu besterik ez. Sintaxia hau agertzen dute zenbat funtzio anonimo edo funtzio izenik edo Unzurrunzaga lambda funtzio? Bi, ezta? Eta badakizu, nahiz Oraindik ez duzu super honekin comfy, besterik ez da hori, hain zuzen, dio funtzioa () birritan. Eta bihurtzen da zer kode hau doing-- da eta online erreferentziak ikusteko aukera izango dugu erreferentzia, azken finean, honetan laguntza batzuk. Hau esan nahi duela Dokumentu prest dago, Aurretik joan eta erregistratu hurrengo funtzioa aurkeztu kudeatzailea HTML gisa elementu baten berezia ideia demo da. Eta gero, hori gertatzen denean, Bi kode lerro hauek deitu. Eta hau da, tragikoki, gehiago bat itzultzeko faltsua esaten modu xehetua. Eta hau aipatu dugu, besterik ez delako Ikus kodea online hau atsegin dituzu. Eta ez da ezer daunted izango da. Baizik eta, kontuan izan behar da zer da hori ohikoa izan da JavaScript joan paradigma hau da. Eta beraz, horregatik da erakutsiko dugu oraingoz. Ados. Beraz, gehiegi etxebizitza gabe sintaxia inguruan asko, ari badira buruzko edozein galdera Adibide edo ideia horiek orain arte? Ados. Hargatik erabili izan da hau, zerbait erabilgarria da. Web orri bat besterik ez dela dio kaixo egiteko, beraz, eta, beraz, ez da hori guztia interesgarria, ez underwhelm. Bat, hau ez da ederra izango da, baina, zerbait erabilgarria da. Atzera egin ninduen nire direktoriora hemen eta ireki, esan, inprimaki-0.html. Beraz, eman dezagun hau freshman da diren barruko kirol erregistroa orria Edozein CSS edo beste edozein diseinu zentzu gabe. Eta aurrera joan nahi dut eta hemen erregistratzeko pasahitz batekin. Eta ez dut nahi baldintzekin ados joan eta baldintzak eta sakatu Erregistratu. Eta orain webgunean dioenez, "You dira erregistratutako! (Beno, ez da benetan.) " Harekin lan egin bezala, baina utzi aurrera me eta indarrean Berritze. Eta esan behar dut, ez, ez duzu behar nire benetako helbide elektronikoa. Edo agian besterik ez dugu esango mail han ere. Pasahitza izango, bezala, 12345. Eta gero, besterik ez dut delako lelo bat, orain 123456789 da. Eta ez dut zure kutxa ikusteko. Hmm. Ados. Beraz, ez jartzeko aukera dago Hobekuntza hemen da. Eta, badakizu, edo izango pset ikusi zazpi, hori, kode idatzi ditzakezu eta idatzi izan dituzu PHP kodea eta defendatzeko Erabiltzaile mota hauen aurka erroreak erabiltzaileak argi eta garbi duelako Ez ditu elkarlanean. Eta ez du berak eman dizun guztia du Nahi izan edo are formatuan balioak Horietako nahi duzun. Beraz pset zazpi ikusiko dituzu dagoela zalantzarik izan dugu zenbait esaten duten baldintza bada Helbide elektronikoan bada Ez da username@something.edu bat, besterik ezin dugu barkamena eta erabiltzaileak barkamena eskatzea Askoz, atsegin pset zazpi egon zaitezkeen. Edo dute hautatu gabe badaude lauki hori, bihurtzen PHP, hori detektatu ahal izango duzu, too. Eta zalantzarik pasahitzak bada ez erregistroa bezala etortzeko pset zazpi, hori detektatu ahal izango duzu. Baina hori mina bat da horretan lepoan orain dezala eskatzeko modu guztiak joan gutako zerbitzariari. Erabiltzaileak error informatuta da. Eta, gutxienez, erabiltzen ez baduzu teknikak hazlerik batzuk, orain atzera egin klik gezi dute. Ez litzateke polita izango da, bezala webgune asko gaur, hurbilago izan baduzu iritzia, berehala? Beste era batera esanda, goazen bertsioa me bat, hau da, ez politagoa izango da. Baina ezaugarri hau izan du. Malan, 12345, 123456789, ez koadroan egiaztatu den, Erregistroan joan. Pasahitzak ez datoz bat. Beraz, pop-up hau ugly-- da, nahiz honek azkenean ordezkatu ahal izango dugu Bootstrap antzeko zerbait, bertan pset zazpi ikusiko dituzu liburutegia oso ezaguna egin nuen da detektatzeko pasahitzak ez dutela bat egiten. Ados. Beno, utzi hori konpontzeko me erabiltzaile moduan. Dezagun aurrera me eta esan 12345, 12345. Hala eta guztiz ere, ez da akordio markatuz. Onartu behar duzu Termino eta baldintza. Beraz, zergatik? Dugu dagoeneko posited bada ez dagoela modu bat da, eta nik beharrezkoa dugu ere pset zazpi error detektatzeko hau bezalako baldintza Zerbitzari aldeko, zergatik behar dut traba halaber honek JavaScript egiten? Zer da argumentu gehituz aldeko zer Oraindik some-- bezala ikusi buruz konplexutasunezko gehigarria da. Agian ez goitik ez da. Zer izan da? Ikusleak: [INAUDIBLE]. DAVID MALAN: Oh, interesgarria. Ustiatzen potentziala. Beraz, ziur, ez bazaude manipulazioa okerrak erabiltzailearen sarrera handia dagoela, agian da nik hobeto guztiak ez du, nahiz eta zure zerbitzari iristeko. Ez atzera bultza nuke eta esan, ziurrenik behar duzu konpondu arazo horiek biak. Baina hori da azoka. Zer gehiago? Ikusleak: [INAUDIBLE]. DAVID MALAN: Bai. Kode hori, lehen esan dugun bezala, bezero-aldean interpretatu. Ez du zerbitzariari traba, horrek esan nahi du horrek ez dio zerbitzari horrek karga edo ahalmena eragin. Eta orain, me zaharraren bila, hau esanguratsua somatzen ez daukat Erabiltzaile bat oraintxe delako. Baina Oraindik baldin badago tamaina duina webgunean, batez ere, handiena, Facebook bezalako, du jende gehiago gorde ahal izango duzu off Zerbitzariaren hobeto zerbitzari bat delako, noski, bakarrik RAM mugatu bat du, gigahertz kopuru mugatua, Gauzak kopuru mugatua aleko egin ahal izango da, denbora. Beraz, ez dira pertsona gehiago bada Mundu zure zerbitzari kolpeak, ustekabean saioa amaitzeko gaizki, besterik ez baita baduzu karga hori mantendu dezakezu zure zerbitzaria itzaltzeko. Plus, batez ere, mugikor bat device-- inoiz dut badituzu my.harvard saioa edo Yale en NetID edo antzekoak, Han asko duen latentzia hau da webguneen Horren bidez hartzen duela, bezala, madarikatu bat bigarren edo bi batzuetan. Eta gero, nire Jainkoa, nahaspilatu baduzu ondoren, atzera jo egin eta berregin egon behar duzu. Beraz, ez latency da, batez ere, sare-konexioak motelagoa. Baina JavaScript, zeren jotzea bezeroa eta ez du behar atzera eta aurrera joan internet motela potentzialki zehar konexioa, eskuratu ahal izango duzu ia berehalako feedback. Hargatik begiratu honetan. Ireki me inprimaki-0 eta HTML hemen begiratu. Eta ea nahiko luke zer gertatzen den. Hau modukoa da eta bere da Ekintza erregistroa da. Besterik ez naiz hain erabiliz URL ikusi izan dut. Baina pasahitzak, ziur aski nuke nahi dugu hau aldatzeko errealitatean idazteko. Hemen da sarrera mota testu eremu bat. Hemen sarrerako beste mota pasahitza eremuan. Hemen da, inoiz ikusi duzun bada, mota checkbox sarrera bat. Baina ez dago Javascript Hemen inolako. Hau HTML besterik ez dela to erregistroa doa. Baina bertsio bat, non I horiek pop-ups lortzeko hasi, ikus dezagun zer benetan gertatzen da hemen. Bertsio bat, zer I see-- noa pentsatu nahikoa saltoki nezakeen nahikoa hitzekin, baina ran dut. Bertsio daude one-- goaz. Bertsio bat, nabarituko honako hau eta ez da ezartzeko onena, baina nire lehen da. Iragarki azpitik dagoela forma, gidoi etiketa bat daukat. Eta gidoi etiketa bat esan nahi du, beno, nabigatzailea, hemen Kodea batzuk dator, normalean, Javascript. Eta orain, nabarituko zer egiten ari naiz. Lerroan On Kasik ezin dut irakurri it 32 lerro, dio, var form-- hain eman me Formulario aldakorra izeneko. Eta gero document.getElementId ren "izen-ematea." Zer da hau? Beno, utzi Errebobinatu eman hemen me. Eta, adi, ah, inprimaki elementua eman dut ideia arbitrarioa baizik deskriptibo bat Izen-emate. Beraz, honek ematen dit aldagai bat ematen du nodo hori hartzen ninduen, zuhaitzean laukizuzenaren inprimaki izeneko. form.onsubmit bitartekoak, beno nabigatzailea, erregistratu gertaera entzuleengana Sasoi honetan. Beste era batera esanda, betiere formulario hau da, aurkeztu, exekutatu ondoko kodea. Ez du ere izen bat behar zergatik ez, izena jakin behar duzu? Besterik ez duzu jakin , zer burutzeko baimenik ergo funtzio anonimoak edo lambda bat da. Eta funtzio hori da Lerro hauen hemendik guztiak. Eta orain, egia esateko, nahiz eta, nahiz agian ez dute inoiz idatzi Javascript aurretik, besterik C eta PHP logika da. == "" Beraz form.email.value bada - email eremuan hutsik bada, orain, batera "You must Yell erabiltzaile Zure helbide elektronikoa eman. " Bestela bada form.password.value erabiltzaileak Yell hutsik, "Zure pasahitza eman behar duzu." Are interesgarriagoa logikoki, Hala ez bada form.password.value form.confirmation.value-- berdina non berrespena ez dator? Let me atzeratzeko. Beno, sarrera honetan deitzen dut eremu Hemen pasahitza. Eta hau deitzen hemen I berrespena. Dut deitu du pasahitza bi edo beste edozer. Besterik ez naiz logikoki egiaztapena duten bi horiek berdinak dira. Bestela bihurtzen da, hau da, Mr. Boole balio boolear bat, kontrol-laukia, berriro. Beraz, esan badut, harridura point-- form.agreement.checked ez bada, erabiltzaileak Yell baita. Beraz, sintaxia hau ikusiko duzu Ikusteko Javascript-a oso ohikoa, non notazioa puntuzko hau duzu. Hasteko objektu bat hemen duzu. Murgiltze bat sakonago nago pasahitza bezalako etxebizitza bat. Eta gero bere benetako balioan duzu. Eta berriro ere, hemen sarrera da. Hemen izen pasahitza da. Eta bere balioa da edozein dela ere Giza hori berez idatzitako. Beraz, horiek guztiak kasuetan, faltsua itzultzen hasi nintzen. Baina ez bada, egia itzuliko naiz. Eta, beraz, gaur egun ikusten dugu betiere erabilera sinesgarria faltsua itzuliko zenukete gelditzeko zer Erabiltzaile eginez eta egin du berari aukeratu berriro idatzi berriro. Bestela, egia itzuliko gara. Eta utzi bat aurkeztera me beste aldaera besterik ulertzeko batzuk hazia kontratuan. Beno, 2 bertsio honen batean, inprimaki-2-- Egin dut esku bat olatu bat. Hau da, horiek bitxi, jQuery bertsioa, baliteke nahi duzuenontzat liburutegi jakin horretan dabble. Baina dezagun start-- eta edozein galdera? Let pausatu une delako niretzat azkar eta asko izan zen. Baina gauza polita Hemen guztia dela kodearen pretty askoz ere gauza bera. Gauza berria da, zer dom da? Zer dira laukizuzenak horiek? Zer dira nodo horiek? Zein da funtzio anonimoa? Zer da gertaera kudeatzailea bat? Baina, zorionez, hori gehienetan besterik ez da , adibidez, aste zero zirkulu osoa. Ados. Beraz, zerbait apur bat gehiago interesgarri? Beno, lehenik eta behin, let me go aurrera eta ireki Google Maps. Eta nabarituko duzu bat dagoela Une, split bigarren, nabarituko zer gertatzen den Bezain azkar sakatu dut. Eta Harvard konexio hau hain da azkar ez duzula benetan nabarituko da. Baina, zer nolako Ordena ikusten duzu klik badut eta arrastatu oso azkar? Online behaketa dituzun horiek, hau motela bada 0.5x abiadura, hau hobeto ikusi ahal izango duzu. Zer zen besterik gertatzen klik egin nuen eta arrastaka eraman aurretik? Dezagun hemen saiatu me utzi nau egin beste zerbait, 90210 bezala. Goazen urrun. Hori izan zen oso azkar, gehiegi. Nola Disney World buruz? Hor dugu. ONDO DA. Zer egin split bigarren bat ikusten duzu? Just, bezala plazetan, ezta? Fitxak leku-markak? Beno, zer gertatzen da hemen? Google Maps adibide polita da teknologia hori AJAX izeneko. Eta hau da, non gauden hasiko Ikusteko Javascript-a erabiltzeko bereziki batean alluring bidea. Itzuli egunean, ez zen Webgune honetako MapQuest deitzen. Eta hartu behar dut bat honen screenshot 1990eko hamarkadatik aurrera, non nahi izanez gero Hemen begiratu gora mapan, litzateke literalki sakatu duzu gezi bat goialdean sortu dela erakutsi duzu Maparen karratu desberdin bat. Ezkerreko mugitu, zuk nahi baduzu gezi bat dela erakutsi duzu, bertan klik Maparen karratu desberdin bat. Eta zenbait webgunek oraindik egin, gaur egun hau. Baina are MapQuest ahaztuak hobea, Google Maps bezalako. Horren ordez, zer da hobea horiek egun AJAX erabili duten webguneak dira. AJAX-- bestela bezala ezagutzen Asynchronous JavaScript and XML, bertan esaten modu dotore bat besterik ez da teknologia edo teknika nabigatzailean JavaScript erabiliz HTTP eskaeren osagarriak egiteko orria kargatu ondoren izan da. Beraz, zer esan nahi du horrek? Beno, mota izango litzateke ren Gmail in gogaikarriak bada nahi duzun aldiro Zure posta egiaztatu, literalki zuen hit duzu Kontrol-R edo Komando-R edo sakatu birkargatzeko botoia eta darn orri osoa kargatu berriro litzateke. Eskuin? Zuri flash litzateke Segur aski beste egiteko. Ergelak progresio-barra ikusiko duzu. Eta besterik berria izanez gero ikusteko posta, web orrialde osoa eta URL Oraindik etxean birkargatu beharko lukete. Baina hori ez da Gmail zer gertatzen den. Eskuin? When in elektroniko berri bat lortuko duzu Gmail, zer gertatzen da pantailan? Erakusten du besterik ez da eman, ezta? Magikoki besterik ez da agertzen taulako errenkada berri gisa. Hori benetan dakar bat konplexutasuna kopuru duina. Izan ere, zuhaitz honi buruz uste baduzu, bertan, nahiz eta sinple bat da hemen, Gmail-- eta begiratu beharko nuke Kodea at sure-- izan nahi du ziurrenik HTML taula bat dauka, edo agian Ordenatu gabeko zerrenda bat da pintatzen duen Zure postontzi emailak bezala bakoitzari. Eta, beraz, hau imajinatzen duzu bada ez memoria zaudenean zuhaitz bat da mota horretako itxura Sort Gmail erabiliz Hau atsegin, Google konturatuko da, ooh, email berri bat behar duzu, ez da zuhaitz osoa birsortu nahi. Baizik eta, nodoa aurkitu nahi du zuhaitz Sarrerako ontzian adierazten eta besterik Nodo berria sartu. Beraz, oso bost, non pset antzekoak nodes txertatzeko hash taula batean izan, era berean, ez du Google, bidez Javascript kodea duten idatzia izan da, Zuhaitz honen ibilbidea, irudikatu non Lehioaren zati hori inbox da, eta gero sartu lerro berri bat. Eta lerro berri bat besterik esan nahi du edo zuhaitz batean nodo berriak gehiago. Eta beraz, AJAX teknika hau da hori zehazki hori egiteko aukera ematen du. URL bat bisitatu ostean, ordea ero luzea da, eta behin orrialde ditu kargatu, oraindik dezakezu datu gehiago har ea interneten mezu elektroniko bat edo map-- baten fitxa bat probesten du atzealdean eta, ondoren, sartu ezazu orrialde sartu duten giza berriz, ez da benetan, beraz, bertan itxaron. Facebook Messenger modu berean lan egiten du. Beste websites-- edozein zenbaki Oh, egia esan, nahiz eta hau. Esan nahi dut, hau da, Egia, mota gogaikarriak egun hauetan agertu. Hau cats-- hasteko I bilatzen baduzu Erabiltzaile izugarria esperientzia baten antzeko zerbait da. Besterik ez da hasten nire bila. Beno, zer egiten ari da? URLa ez da aldatu Idazteko hasi naizenetik. Baina zer gertatzen igaro wire-- OK, hmm interesgarria. Zer ari da igaro alanbre hemen besterik lortzen weirder. ONDO DA. Hargatik aurrera me eta ikuskatu elementu eta Network fitxan joan eta saiatu hau egiteko tekniko eta katuak buruz gutxiago. I idatzi bezala, literalki, katuak and-- zer gertatzen per-- ez dut egin klik joan. Ados. Beraz, hemen behera, zer ari da gertatzen ari denbora idazten dudanean pertsonaia bat, itxuraz? Bezala, maila jaitsi? Zer ari da horietako bakoitzarekin gertatzen pertsonaiak idazten dut nire teklatua at? Bai? Ikusleak: [INAUDIBLE]. DAVID MALAN: Zehazki. Horietako bakoitzean pertsonaiak da Google, inork joan aldi berean. Kate bat eman eraikitzen ari dira beren zerbitzariak dagoela adierazten guztia idatzi dut orain arte. Eta aldi bakoitzean idazten dut beste pertsonaia bat, zuten Beren baten sekretua saltsa erabili bilatu algoritmoa eta irudikatu, du esan nahi zuen katua orri hau edo katu orri hau edo antzekoak? Beraz, zentzu batean, me eskaintzen batekin duten esperientzia hobeto egin dut, nahiz eta ez nire pentsamendua osatzeko behar. Eta hain zuzen ere, erabilgarria da gauza, oro har, automatikoki osatu. Euren algoritmoak bezain onak badira eta nire bilaketak bistakoak dira nahikoa izanez gero, Nik ez dut hitz osoa idatzi. Me kontatzen ari dira zer da da benetan ari naiz bilatzen. Beraz, zer Google deiak berehalako bilaketa da, besterik gabe, AJAX erabiliz, hori eskatzeko aukera ematen kodea erabiliz eduki gehigarria web nabigatzaile baten bidez eszenak hau erabiliz atzean Hizkuntza berri, Javascript. Beraz, minutu pare bat utzi behar dugu. Eta utzi deitu zidan nire laguna Colton up etapa gainean, zirudien geroztik bereziki fun azken aldiz teknologia bat aurkeztera Zuetako batzuk interesa erakutsi duten azken proiektu batean. Fun litzaidake ekarri pentsatu dugu boluntario eman, nahiz eta, gaur egun, erakusteko gain bat honek aukera ematen duen zu bai, Eskuko hau ikusi nuen lehen. Goazen sortu. Oso ondo egiten. Ondo egina. Hau proiektu on noa une bat besterik ez da pantailan. Zein da zure izena guztiontzat? EFA: naiz EFA. DAVID MALAN: Etha? EFA: EFA. DAVID MALAN: efa? EFA: Bai. DAVID MALAN: Nice duzu ikusteko. Ados. Let prest hau lortzeko me. Goazen baino gehiago izateko Colton hemen erdiguneko. Zer Colton bere eskuetan dauka gaur urrutiko kontrol bat da. Beraz, baizik eta besterik ez stand baino batean Mundu hiru dimentsioko inguruan bila Colton egin zuen bezala, orain ALE ahal benetan ibiltzen gora joanda, behera, ezkerrera eta eskuinera bat bezala Nintendo edo Xbox controller. EFA: nabil off erori etapa joan nintzen. DAVID MALAN: I will stand gutxi gorabehera hemen baino. Baina hori arrisku bat da. ONDO DA. Anima zaitez eta jarri dutenak. Dezagun aurrera me eta pantaila hemen aldatzeko. Let argiak iluntzeko me. Eta Colton, let me etorriko stand duzu ondoan. Ez hemen azaldu nahi duzu mic batera zer egiten ari garen? Hemen duzu joan. COLTON: Dudarik gabe. Beraz, oraintxe dugu kargatzen Eye du, Suposatzen dut operating-- jarduten ez sistema, baina, programa nagusia, non partida guztiak sartu ahal izango duzu, eta Hori zure liburutegian daude apps. Beraz, oraintxe bertan, esan behar da ukitu touchpad hasiko. Touchpad ari den gainean egon joan eskubidea entzungailu bestaldean. Beraz, aurrera eta tap-- EFA: Oh, gizon. DAVID MALAN: Bai, ez duzu joan. Kalitatea ALE ikusten da kalitatea askoz ere handiagoa da. Hori besterik ez da WiFi. COLTON: Beraz, zer Oraindik Egin nahi joan goiko aldera begiratu pantailaren eskuinaldean. Bai, oso goian, eskuinean joko duten. Eta orduan, hautatzen ari zaren bertan, ukitu touchpad berriro. Bere Dreadhalls uste dut. Eta gero, hara hemen a-- da, utzi eutsi me zure betaurreko duzu. Beraz, eman dut besterik ez zion controller. Beraz, gaur jokoa kontrolatu ahal izan dezan. Inguruan eta gauzak mugitu ahal zuen horrelako. Anima zaitez eta begiratu goian. Game berria ikusi beharko zenuke. Anima zaitez eta hori egin ahal izango duzu. Orain, kontrolatzeko gai izan behar duzu kontroladorea yourself, baita, ahalik eta azkarren Joko kargatzen hemen. Hau pixka bat scary izan daiteke. EFA: Orain esango didazu. ONDO DA. COLTON: Ondo da. Beraz, baieztatu mugitu ahal izango duzu. ONDO DA. Mugi dezakezu inguruan. Perfect. Behera begiratu hain baduzu, mapa bat behar duzu. Mapa erakusten dizu non zauden. Gela inguruan begiratu dezakezu. You guztiz piztu inguruan. Bai, hain zuzen. Piztu inguruan. Beraz, zure ezkerretara begiratu. Nik uste dut zerbait egin dezakezu jaso gelan kanoi baten gainean. EFA: Nola lortu nuen mapa out bidea? COLTON: Look up. Just begiratu. Ados. Bertan joan zaitezke. Orain, aurrera, besterik buelta inguruan. Beraz, begiratu urrunago Ezkerreko aldean. Jarrai geratzen mugitzen. Jarrai geratzen ari da. Mantendu egingo da. Bai. EFA: Oh, era horretan. COLTON: Bai. Horra zuzendu kontroladorea. Bertan joan zaitezke. Orain jaso esan behar da. Bertan joan zaitezke. Jaso. Ados. Orain, goazen gela honetan. Anima zaitez eta ate hori oinez. Beraz ari da dio hold-- zoazen eduki botoia beharrean jo irekita. Anima zaitez eta eduki botoia. Bai, irekitzeko behartuz. Ados. Ondo egina. Gela kanpo Orain dugu oinez ari. Beraz, ez dut gainerakoak uzteko gora noa duzu, eta zer aurkitu duzu ikusteko. EFA: Ez dut gela ilun batean joan. Oh, itxaron. Orain jaisteko areto iluneko behar dut? Ados, naiz atzera egingo dut [INAUDIBLE]. COLTON: Ondo da. Elementu batzuk gehiago jasotzeko. Txanpon batzuk itxura. Hori lock pick bat da. Beraz, aurkituz gero a blokeatuta atea, hori erabili ahal izango duzu. Al zaude beldur? EFA: Oraindik ez. COLTON: OK. Pretend-- bai. Just asmoa Oraindik Egia esan, ez dago zutik. Eta bada inguruan piztu baduzu Ohizko duzu erabili ahal izateko. Baina duela zentzurik. DAVID MALAN: Eta ALE jarraitu ahal izateko jolastu, egun osoan egin izan dugu geroztik, ahal dugun guztia-puntetan out hemen. Baina beste bi bikote izan dugu, etorri eta jolastu nahi izanez gero. Bestela, ikusiko dugu zuk asteazkenean hurrengo. Eskerrik asko gure boluntario gaur. [Txaloak] [MUSIKA - "Seinfeld gaia"] HIZLARIA 1: Ba, ez dut jarriz PL berri bat muntatu dute. Aldatu dut OLPF-- du HIZLARIA 2: Beraz, zer zehazki egiten ari zara? HIZLARIA 1: Beno, banan-banan, horiek Hemen, erakutsi dut hau hemen bat. Hementxe bertan ikusi ahal izango duzu. HIZLARIA: 3 uste dut hauekin ona naiz. Batzuk gehiago nahi duzu? HIZLARIA 4: Ez, ona naiz. [INAUDIBLE]. HIZLARIA 3: Ez, [INAUDIBLE]. Dute batzuek. HIZLARIA 1: beste kolore. HIZLARIA 2: OK. HIZLARIA: 1 Beraz, azken finean, zer da gertatzen da kolorearekin egokitzen da of--