DAVID MALAN: Ondo da. Hau CS50 da, eta hau da, astean bederatzi amaieran. Honez baino gehiago izan dira zurrunbilo bat Azken egunetan. Eta arazo ezarri zazpi, Oraindik belauna bada sakonak sartu, konturatzen ez da nahiko bit berria hor da. Baina ikus dezagun ezin dugu pieza bada dena batera, hemen, labur-labur aurretik ondoren off veering oraindik beste norabide eta ikusten non bestela joan gaitezke. Beraz, beraz, orain arte, HTML hitz egin dugu. CSS hitz egin dugu. PHP hitz egin dugu. SQL esperientzia hasi duzun. Gaur egun, hitz egingo dugu apur bat JavaScript buruz. Baina nola jakin desberdinak horiek guztiak hizkuntzak batera jarrita? Beraz buruzko azken astean hitz egin dugu zerbitzari bat izatea nozioa. Hargatik laukizuzen hau marraztu besterik en web zerbitzari bat hemen bezala. Eta web zerbitzari bat balio du ziur aski fitxategiak. Eta fitxategi horietako batzuk HTML fitxategiak izan daiteke. Beraz, gauza bat duten web zerbitzari bat txu fitxategi bat izan liteke besterik ez dugu hau bezalako marraztu HTML batzuk duten. Beraz layman dagokionez, zer du HTML utzi egin nahi duzu? AUDIENCE: Page itxura polita. DAVID MALAN: Ados, egin orri baten itxura polita, uste dut frogatu dut, nahiz bestela. Beraz HTML du finkatzeko duzu orriak utzi egituraz, eta aukera ematen da Sort estetikoki markatzeko gora orri bat, markatzeko gora eduki estatikoa, beraz, orduan ikusi ahal izango da, web nabigatzaile baten bidez. Baina hori gakoa. Edukia estatikoa da. Idazten duzunean, gorde egin duzu, eta, ondoren, ontziratu duzu. Eta web zerbitzariak, ondoren balio zure bisitariek aukeratu. Baina gauza desberdinak erabiliz estilizatzeko dugu hizkuntza erabat. Estilo atributu bat erabiltzen hasi gara zenbait etiketa da. Eta estilo atributua gaitezen ezarri letra tamaina eta kolorea bezala gauzak. Eta seguruenik hasi duzu gorderik, edo zuk laster finalean izango proiektuetan potentzialki, oraindik beste propietate CSS erabili ahal izango dituzu. Eta beraz layman dagokionez, zer benetan gero egin du CSS? Horiek hemen adibide besterik kontratuan. Zer egiten duzu utzi duten HTML ez du zer tik diruditen ikusi dugu, beraz, orain arte? AUDIENCE: estilo Zehaztu bakarrik. DAVID MALAN: Zehaztu estiloak bakarrik. Beraz duzun bezala klaseak bezala gauzak definitzeko aurkitu daiteke, edo bakarrean nodoak identifikatu dokumentu batean hain horiek estilizatzeko dezakezu. Baina zehatzago, CSS dela esango nuke Benetan aukera ematen dizu gauzak hartu dituzun azken milia eta, horri esker, askoz ere zehaztu behar duzu gehiago, hain zuzen, estetika, berriz HTML zati handiena ematen dizu zure orriak egituratzeko duzu. Eta lehenetsiak batzuk daude, nahiz eta, bezalako etiketa ikusi genuen epigrafe etiketa bat, eta horrek gutxi gorabehera hitz egin gauza handia eta lodia. Duten definizioa nahiko generiko bat da Etiketa du - handia eta lodia. Zein tamaina letra-da hori? Zer koloretakoa da hori? Nola lodia da hori? Eta CSS aukera ematen dizu gehiago fin-fin sintonizatu gauzak horrela. Baita diseinua, batzuek bezala la ikusi duzu. Eta Egia, CSS pixka bat da narratsa hizkuntza baten. Oso indartsua da hori egin ahal izango dituzu bertan literalki edozein duzun dudan dituzten web gaur web-ean ikus berarekin, baina lepoan mina bat mota da. Eta zuetako batzuk zure burua banged dute hormak dagoeneko besterik egin aurka zerbait zentro menu batean bezala ergelak Arazo multzo zazpi duzun ahaztuak bada dagoeneko puntu horretan. Baina konturatzen, gauza horiek lortzeko denboran zehar errazago. Ereduak nabarituko hasten zara. Eta, berriz ere, Google zure laguna izango da bertan, ahal duzun hainbat modutan egiteko arazo mota horiek konpontzeko. Eta CSS batera esango nuke, eta HTML gehiago oro har, arazoak konpontzeko dezakezu Modu asko gehiago, denak ere agian oso ondo izan zuzena, ezin izan duzu baino C antzeko zerbait, nahiz orain PHP, edo JavaScript. Badira besterik hainbat gauzak finkatzeko dituzten moduak. Baina hau hasi iristeko narratsa, esan dugu. Mota besterik ez zure HTML commingling eta Zure CSS estilo atributua zen Pixka bat sloppy. Eta, beraz, horren ordez, esan dugu, ordenatzeko abstraktuan hitz eginez, behar duzun gutxienez faktorea hasteko Zure CSS daudelarik seguruenik. Ez zure estiloa egozten, baina, gutxienez, zer barruan style etiketa erabiltzeko web orriaren zati? AUDIENCE: Head. DAVID MALAN: burua ere. Orain arte bakarra izan genuen izenburua sortu han, baina baita estilo bat gehitu dezakezu etiketatu, eta zure CSS gutxi gorabehera jarri dezakezu orriaren goiko aldera mintzo. Baina gauzak beste urrats bat eman ondoren, hartu genuen eta gehiago duten faktorizazioa dugu aparteko fitxategi batean. Eta beraz, bi fitxategi hauek izan ziren nolabait, gaur egun lotuta. Eta halaxe izan zen Etiketa hori egin. Eta zer zen Globalak bat daudelarik factoring gure CSS motibazio gehiago? AUDIENCE: Berrerabilerea. DAVID MALAN: Berrerabilerea. Eskuin? In ahal izango duzu ikusi p-set zazpi dagoeneko duten orriak asko, the erosketa-orria, salmenta-orria berriz ere, zorroa orria, ziur aski zertxobait antzera egituratua. Ez dago CS50 finantzak goialdean logo bat hura aldatzeko erabaki duzun ezean. Han bertan Oina bat orrialdeen behealdean. Eta CSS ahalbidetzen orduan faktore duzu aparteko fitxategi batean Hori hala bada zerbait globalki aldatu nahi zure gune osoan, ahal duzun benetan besterik aldatuko da leku batean. Baina ez dago prezio bat potentzialki ordaindu behar da haber factored kanpo egindako Nire HTML fitxategitik CSS bereizi bat sartu fitxategia da erreferentzia duen Etiketa, ikusi astelehena dugu. Zer dezake arazotxo hori izango ote da? Atzera pentsatzen duela astebete Oraindik dugu HTTP eta TCP / IP eta buruz nola hitz egiten Interneten lan egiten du. Hemen baino gehiago zerbait? IKUSLEEN: denbora gehiago behar izaten ditu. DAVID MALAN: denbora gehiago behar izaten ditu. Zergatik? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: Bai. Beraz, dudarik gabe, pixka bat gehiago denbora hartzen du. Bata, CSS da jakina delako Ez dago fitxategi berean. Beraz, gaur egun ez da egin behar duzu bat, baina bi eskaerak. Eta eskaerak horietako bakoitzean ikusi dugun Deiturikoak Inspector in Chrome, eta begiratu sare fitxa, bakoitza fitxategi horiek HTTP bat eskatzen eskaera, eta bertan ikusi genuen hartzen Denbora kopuru batzuk. Orain, agian, ez da asko. Agian milisegundotan 20 bakarrik da. Agian 200 milisegundotan da. Baina Facebook bezalako orri bat pentsatzen, edo CNN edo Google, horrek askoz adibideek dugu baino handiagoa beraz, oso urrun begiratu. Orri horiekin fitxategiak dozenaka izan dezake, horietako bakoitzak bat behar izatea fitxategi baten deskarga. Beraz gauzak ezin potentzialki hasteko motelduko. Eta, batez ere, egun hauetan denean denok telefono mugikorrak izan gure poltsikoetan eta internet konexio motelagoa, beharrik itxaron bat milisegundotan gehiago batzuk, gutxi batzuk osagarriak milisegundotan gehiago fitxategiak benetan daiteke motela. Latentzia duten deskribatzen duen hitza da motatako duzula zain duzula esperientzia denean zain Informazio zati batzuk. Baina han goitik da. Beraz, ez da bat-mota guztiak - benetan seesaw bat hemen pixka bat da. Arazotxo orain, baina zer nabigatzaile egin ahal smart ari dira saihesteko bada the styles.css bera eskatu beharrik fitxategia berriro zer egin daiteke? Cachean da. Beraz cachean - C-A-C-H-E - oro har, hemen esan nahi du, besterik gabe, gorde du fitxategia lehen aldiz eskatu duzu, eta ondoren egiaztatu zure cache da. Check Oraindik biltegiratze edukiontzi moduko, eta dagoeneko badaukazu bat styles.css kopia, nahiz eta beste batzuk p-set, edo edozein web orrialdean, berriro eskatzen, besterik gabe emateko erabiltzaile berari duela katxeko kopia. Ez saiatu hura eskatzeko. Arazotxo han, nahiz eta, batzuk bezala dute estropezu gehiagoko p-multzoan. Zerbitzarian aldaketaren bat egin baduzu eta atzera nabigatzailean eta joan zaren freskatuz, batzuetan nabigatzailea ez duzun alde bat eta ez da traba Zure styles.css fitxategia berriro deskargatzen , izan ere, goazen, zer dira odds duten estilo horiek Facebook erabiltzen duen daude orduko aldatzeko ordu edo joan egunez egun? Nahiko txikia da. Denboran zehar aldatu dute agian, baina ez minutuko edo orduko. Beraz, trikimailu bat, besterik FYI web egiten denean garapena, maiz, ez askatu da filmea gako Adibidez eta egin klik Zure nabigatzailean freskatuz, eta borondate horren normalean esango nabigatzailean berritu du guztia, dagoeneko baduzu ere gordailuan da. Beraz, berriro ere, upsides eta downsides, baina ez denak azken finean, erabakiak diseinatzeko. Beraz, gaur egun, ez dugu besterik Istorioa amaitzeko hemen. Orain dut atzera eta atzera eta atzera jo bada eta atzera, eta ez bakarrik aurkeztu hasi ginen HTML, baina PHP. Beraz layman dagokionez, zer duela PHP gaitezen egin? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: Zer da hori? AUDIENCE: Sar logika kodea sartu. DAVID MALAN: Bai, aurkeztu logika zure kodea sartu. Beraz, programazio hizkuntza egia da begiztak, eta aldagaiak, eta honekin funtzioak, eta baldintzak, eta guztien izan dugu modu back erabiliz gauzak denean scratch geroztik. Eta PHP, ikusi dugu, erabili ahal izango da bai komando-lerroan - da ez dute ezer egin behar den web batera, nahiz eta hori da benetan bere jatorria eta zer joera ona eta aproposa izan - baina PHP erabil dezakezu naturak hutsa Izan ere, kopia bat duela (of) funtzioa, eta printf baten () funtzioa, edo oihartzuna () funtzioa. Ez dago modu sortak duzu testu inprimatu ahal PHP. Hori dela eta, programazio hau erabil dezakezu hizkuntza irteera zehazki zer aurretik buruz hitz egin genuen. Dinamikoki sortzeko dezakezu Zure HTML. Agian ez da guztia. Agian kode gauza gogorra, bezalako goiburua, eta behean, eta logotipoaren, eta zure estilo-orriak, eta hori guztia. Baina p-set zazpi antzeko zerbait, non izakinen manipulatzeko eta zu erabiltzaile-zorroa erakutsiz, hau da, dinamikoki aldatu egingo da, ezin duzu ziur asko PHP eta logika horri ematen erabili programazio hizkuntza gisa duzu irteera dinamikoki azpimultzoak orrialdearen. Beraz, webgune dinamikoagoa buruz hitz egin duzu, edo web programazioa, hori da zer zaren benetan buruz hitz egiten. PHP bezalako hizkuntza bat, edo gauza erabiliz Python, Ruby edo, edo Java, edo deitu oraindik beste hizkuntzetan, datu-base bat kontsultatzeko askotan, edo beste zerbitzari batera, eta Orduz dinamikoki txu HTML. Orain azken emaitza, bat alde batera utzita, ez da duten webgune gehienak HTML, barne zure p-set zazpi, da seguruenik nahaspila handi bat bada izango da begiratu iturburua n zaude arakatzaile batean kodea. Hori ez da big aurre. Honekin, denean arduratzen gara style, buruzko zaintzen dugu Idazten dituzun gauzak. Ez dugu stuff buruzko zaintzeko hori da zure kodea irteerak. Beraz, ez koska kezkatu hemen PHP bada hori da benetan stuff outputting. Azken finean, nabigatzailea ez du axola, eta giza bat ez dugu bilatzen iturburua hala ere. Dugu langileek, adibidez, ez litzateke egon zure PHP begira. Hargatik adibide azkar bat ematen dit orain zergatik bestela Hori erabilgarri izan daiteke. Beraz, Egia, ezin dut gogoratzen azkena denbora C erabiltzen dut arazo bat konpontzeko mundu errealean. Ziurrenik zen eskola graduondoko denean Hizkuntza bat erabili behar nuen duela maila nahiko altua zen eta eman zidan aukera oso altua zerbait egin PUZ asko bezala benetan gorde eszenikoen zikloak nuen bezala, neurri handi batean dut datu-multzo handi erabiltzen delako, eta PUZaren ziklo guztietan zenbatuko. Eta Egia da, nahiz eta telefonoak bezalako gauzak egun hauetan eta beste gailu non ez nahiko duzu askoz memoria eta ez duzu nahiko izan gisa askoz CPU, hizkuntzak azkarrago erabiliz da oraindik erakargarria. Baina mundu errealean, noiz besterik ez duzu programa batzuk elkarrekin bota nahi datu batzuk aztertzeko, edo jasotzen dituzun matrikulazioak sorta oso bat Ikasle talde batzuek eta oso nahi duzun azkar automatizatzeko emailak bidaliz banan behin horietako bat one eman, ari den iritsi zoazen maila altuagoa hizkuntza bat baino C nolabait esateko. PHP edo Python, Ruby edo antzeko zerbait, edo beste batzuk dozena erdi bat existitzen egun hauetan. Baina hiru horiek dira ziurrenik gehien modan oraintxe. Eta zer esan nahi duten ireki dezakezu gedit bezala testu-editore bat edo sortu gehienetan ezer beste eta gero besterik ez hasteko kodea idazten kezkatu beharrik gabe , konpilatzean beharrik gabe buruz benetan memoria kudeaketa kezkatu, Kontuan nahiz mantenduz duten apur bat sloppiness joango itzuli duzu hozka datu multzoaren lortzen bada handiago edo arazoa lortzen big. Baina zer esan nahi du honek honako hau da gurekin. Dezagun aurrera eta exekutatu speller arazoa ezarri sei. Beraz, hau da nire trie oinarritutako inplementazioa da erabiltzen duten big dut taula non ez egin nuen hain ongi. Itzuli dugu aste bat denbora eta berrirakurtzeko zuen azkenean atop horiek Gure azken hitzaldia at board big. Baina orain, utzi aurretik eta bakarrik joan me exekutatu nire irtenbide testuan, eta zer egingo dugun King James Bible, eta hemen goaz. Beraz, horiek ustez guztia Gaizki idatzitako hitzak daudelarik King James Bible. Eta nire ezartzeko hartu guztira, bigarren erdia. Beraz, ez gehiegi hontan txarra ordenagailua bereziki. Baina zenbat uste kodea idatzi nuen. Uste zenbat kodea idatzi izan duzu. Uste du zenbat ordu eman dituzu D-areto edo zure gela edo lekuan benetan konponbidea duten kodeketa. Beno, bada, egia esan behar dut goi mailako PHP bezalako hizkuntza, hartu ohar zer egin dezaket hemen. Lehen, eman dezagun hau dela ordez Zure banaketa kodea. Hau speller izeneko fitxategi bat da. Da gaur egungo barruan eskuragarri Banaketa kodea. Eta ez dut nire eskua olatuen gehienez joan xehetasunak, baina hau da, benetan nola adibide interesgarria portu agian hizkuntza baten PHP gehiagoko C bezala. Bi testu leihoak ireki nuen literalki, nire C estrategia bertsio bat, eta hasi besterik ez dut itzultzeko nire PHP joatea eta bertan idatzita daudelarik erabiliz funtzio baliokidea hurbilena. Beraz, gauza horietako batzuk ezberdinak dira. PHP erabiltzen ez duen azken aldiz ikusi genuen Era berean, nahiko, besteak beste. Eskatzen normalean erabiltzen du, nahiz eta besteak beste, ez da existitzen. Definitzen da, apur bat ezberdina # C definitzeko, baina hori da konstante bat nola egin genuen. $ Argc bihurtzen da PHP existitzen, beraz, ikusi dugu horren aurretik. Hauek dira aldagaiak besterik, guztien eta horrek dolarraren seinaleak hasteko. Gogoratzen horiek dira mordo bat besterik ez puntu mugikorreko. Beraz, ipuin luze, Oraindik ongi etorria honen bidez irauli, bitxia bada ere, hau da ia lerro-for-line du bihurketa C estrategia bertsio PHP sartu. Eta hau berriro egin izan zuretzako beste dozena erdi bat hizkuntzak. Baina zer da interesgarria da hau. Edo zer Egia negargarria da hau. Dezagun aurrera eta buruz idatzi dictionary.php, eta erreklamazioa naiz aurrera joan eta berriro ezartzeko joan Arazo multzo sei hemen. Hargatik proposatzen duen lehendabiziko honetan fitxategia, eta bertan ezarriko dira PHP, beraz, utzi nire horrelako etiketa ireki zidan. Neure burua ematen dit globala aldakorra, $ tamaina lortzen zero. Eta ez dut eman joan neuk hash taula bat. Hash taula bat erabili dut gauza honetan. Nola hash taula bat deklaratzen dut PHP? Egin. Ados. Parentesi hain irekiak ixteko kortxetea adierazten PHP zer, Nik ikusi dugun bezala? Array bat, baina array bat duten Could elkartze-array bat izango da. Elkartze-array bat da datu-egitura bat balioekin gakoak lotzen dizkie. Orain errazena zenbakiaren indexatutako in array, tekla horiek zer dira? Zero, bat, bi, hiru, ezta? Eskola zaharra stuff C. atzera Baina, ahal halaber foo eta bar bezalako kateak izan, edo maxwell, edo halako katea. Beraz, leverage dut une bat besterik ez. Dezagun aurrera eta deklaratzeko bezalako funtzio bat - Egin karga () lehen utzi. Beraz funtzioa karga (). Eta PHP apur bat ezberdina da, literalki funtzioa idatzi duzu, baina zuk ez idatzi bueltan mota bat. Aurretik joan eta esan noa dela karga () funtzioa hartu behar du parte Argumentu $ hiztegia, besterik bezalako C bertsioa egin zuten. Dut hori egiten ari naiz memoriatik. Eta ni naiz dela proposatzen dut Horretarako joan. Ez dut besterik foreach egin. Izeneko funtzio bat deitu noa fitxategia (), horren izena igaroz fitxategian, hau aldakorra da $ Hiztegi $ hitza gisa. Eta gero nire begizta hemen, naiz barrutik Aurretik joan eta gorde nire $ Taula duen $ hitza lortzen egia. Egin. Oh, itxaron. Egin. Ados. Duten karga () funtzioa da PHP esatea. Orain, zergatik duen lan? Eta naiz motatako hemen iruzurra dut. Beraz, bat, foreach dugu ikusi laburki azken aldia. Esan nahi du, besterik ez da hori baino gehiago batetik bestera joateko dezakezu i ekin bothering gabe array eta n eta plus plus, eta hori guztia. Hiztegi-fitxategi izena da noski, handi edo txiki antzeko zerbait, bien hiztegiak azken aldiz erabili dugu. Fitxategi hori testu irekitzen funtzioa da fitxategia, irakurtzen lerro lerro, eta eskuak multzo handi bat itzuli duzu, horren elementu bakoitza da bat fitxategi hori lerro. Beraz, fopen konbinazioa da, eta fread, eta begizta, eta fclose bitartean, eta hori guztia. Azkenik, hitza besterik ez, esan nahi baita, hori da aldakorra naiz sarbidea izan da joan begizta hau iterazio bakoitzean. Beraz, azken finean, bat liner honek hemen esan nahi ireki horren izena da fitxategiaren hiztegi, aldakorra da, batetik bestera joateko baino gehiago da lerroz lerro, eta lortuko duzu aldi bakoitzean lerro bat, hitza aldakorra izeneko batean denda, eta ondoren zerbait egin hitzarekin. Zer egin nahi dut? Hitza jarri nire hash taula sartu nahi dut. Beno, zerbait jarri ahal izango dut nire hash taula besterik C bezala kortxete erabiliz. Hau nire hash taula izena da. Indize noa hash horretan kokaleku honetan mahaia. Beraz, ez da parentesi zero, ez bat parentesia. Parentesi aurrekontua unquote zerbait, edozein dela ere, hitza dela. Eta besterik ez bezalako agian duzu zure Hash taula lan trie, denda besterik ez duzu eraginkortasunez boolear bat, inplizituki edo esplizituki. Egin. Balioa egia gordetzeko naiz. Orain ez dago gauza pare bat Ebaketa naiz txoko hemen. Teknikoki, ez da bat izango da linea berri gogaikarriak, / n, amaieran Hitz horietako bakoitzean. Beraz, ziurrenik PHP funtzio bat deitu behar dut txuleta izeneko (), egingo den nahiko literalki txikitu off. Eta nik egia esan behar beste gauza bat egin. Ziurrenik Kontatzailea behar dut tamaina bakoitzean iterazio, beraz, jarraipena naiz orokorrean zer den neurtzen. Eta Egia, eta hau da bat PHP alderdi stupider, Oraindik baduzu aldagai global bat erabiliz, behar duzun esplizituki esan zarela. Naiz, beraz globalean benetan idazten joan $ Tamaina, global $ taula, eta, orain, nire funtzio osoa. Beraz, ez da nahiko aurretik bezain erraza, baina ziurrenik C baino denbora gutxiago hartu bertsioan, agian? Ados. Beraz, orain egin dezagun check () funtzioa utzi. Ikus dezagun, gutxienez, hartu hau bada utzi amaieran ordu horretan hartu zuen gurekin C. Beraz hemen utzi aurrera eta deklaratzeko check funtzio gisa. Argumentu hitza hartzen du, hau da, Speller sistemak ere. Eta besterik ez naiz, egiaztatu egingo bada isset aldakorreko jarraituz, mahai parentesi hitzaren strtolower - utzi orekatzeko en nire parentesi guztiak - ondoren, itzultzeko egia. Bestela - gogorra izan zen benetan Programa honetan parte. Bestela, itzultzeko faltsua. Egin. Hori da txeke (). Orain, zergatik funtzionatzen dute? Beno, inork hitz batean pasatu dut, horrek katea da. Bi, dut egiaztapena hash barrutik taulan, nor $ taula deritzo. Bertara deituz minuskula behartuz naiz nahiko antzekoak tolower () funtzio bat C, baina hori hitz osoa egiten du, Ez karaktere bakar bat. Eta hori zehaztu bazaio, hau da han dago balio bat ezarrita, hau da, egia bada, orduan bai, honek hitz bat da. Jarri dut ez delako karga batekin (). Eta hala ez bada, faltsua itzuliko naiz noa. Orain besteak erraza. Funtzio tamaina (), nola egin behar dut hau? Funtsean egiten dut $ tamaina itzultzeko. Baina teknikoki behar dut gogaikarriak gauza hori egin. Eta benetan entzun gora, ebaketa nintzen txoko bat gehiegi. Benetan behar dut global $ taula egin. Baina hori Ari esan, jaisteko). Deskargatu () harrigarria da. Funtzioa hustuketa (). Nola ez hustuketa ezartzea nahi dut ()? Egin. Ados. Beraz deskargatu (), memoria kudeaketa da erabat tratua zuretzat de PHP eta asko antzeko zerbait goi-mailako hizkuntzen. Beraz, hau harrigarria da. Zergatik arraio zuen iraganean gastatu dugun bezala C idatziz on plus zortzi aste itxuraz benetan motela, oso denbora ordu hamarnaka arazoak kontsumitzen gure gerrikoak pean lan? Beno, gauza bat, hau funtziona dezakete programak xumean. Zalantzarik sped da nire garatzeko denbora. Baina ikus dezagun zer gertatzen den mundu errealean. Let me joan direktorio honetan sartu terminal-leiho batean. Han speller da. Eta bat alde batera utzita nabarituko, eta zuk agian dute aurkitu da hau arazo girotuta sei edo zazpi arazo ezarri. Nahi ez zorrozki behar Amaierara PHP. php fitxategiak. Lerro bat jartzen baduzu etan lehena horrelako oso goian, lerro berezi bat sintaxia, funtsean esan nahi du aurki PHP izeneko eta erabili ahal izateko programa fitxategi hau interpretatzeko. Beraz, gaur egun inork ez daki benetan duten PHP programa bat exekutatzen ari naiz. Besterik ezin dut exekutatu, nahiz eta gisa ziren zerbait C. biltzen Baina hemen gauza da. Egia esan, Berriro egin dezagun. Dropbox/pset6 /. Han speller da. Ados, 0,44 segundo. Azkarragoa lortu du une honetan. Orain goazen PHP bertsioa sartu. Nice ukitu. Baina besterik uste denbora zenbat Gordetako bulego etan dut. Ados. Beraz, 3,59 segundo, benetan ez du soinu zehatzak bai. Baina hori beste istorio luze-laburrak delako, noiz kopuru handi bat ari zaren inprimatzeko stuff pantailara, hori Gauza bera motelduz behera. Zer hartu benetan PUZak en tresnaren 3,59 segundo izan zen, hasi C zituen 0,44 kontrastea segundo duela gutxi. Hori da, zinez, ordena baten magnitude desberdinak. Beraz, non prezio hori datozen? Zergatik da askoz motelagoa da, beraz? Zergatik ez PHP egiteko hain gaizki? Danielle? Ikusleak: Ez duzu benetan erabili hash taula bat. DAVID MALAN: ez nuen benetan erabili hash taula bat. Beraz, mota egin nuen. Beraz, elkartze-array bat da. Seguruenik PHP pertsona badute benetan smart, erabiltzen zuten azpian kanpaia benetako hash taula inplementatu zerbait bezala, C edo C + +. Baina. Bai. Ikusleak: [INAUDIBLE]. DAVID MALAN: Bai. Funtzio bakoitzean Beraz, orain idatzi nuen - Egia esan, ezin dela esan duzu behin gehiago apur bat ozenago? Ikusleak: funtzio bakoitza duzu barne ditu, askoz osoa ahalmena baino - DAVID MALAN: hori ere egia da, beraz. Asko gehiago Buruak Oraindik dugu ez da benetan bakarrik bideratua by ikusten dictionary.php, eta horrek idatzi zuen dut. Aitzitik, oro har, interprete bat da atzealdean doa. Izan ere, programa hau exekutatu dut, baina ez zen konpilatu zero eta bai exekutatzen nire Intel CPU diseinatuta. Baizik eta, lerro zen exekutatzen lerro PHP kodea duten itxura zehazki gustatzen idatzi dugu. Eta, beraz, betiere, bat erabili duzu Lengoaia interpretatu, duzu benetan egiten ordaintzen prezio hori. Denbora pixka bat hartu behar da irakurri joan Zure fitxategia, goitik behera, ezkerrera eskubidea, eta, ondoren, exekutatu bakoitzean line, behin eta berriro. Orain errealitatea, bereziki, web orrian ere, ez duzu prozesu hau azkartzeko emaitzak cachean arabera PHP kodea ari interpretatu. Eta hori, web orrian zentzurik, zeren duzu, ez da erabiltzaile bat bezala bada Niri, baina, 1.000 edo 10.000 erabiltzaile, eta, ondoren agian lehen aldiz fitxategia sar motela, baina hortik aurrera ez da askoz azkarragoa da. Baina honetan ere, berriro ere, merkataritza-off bat da. Eta ikerketa-datuak bat bezalako zerbait ezarri, edo are zerbait handi bezala hau da, zure erabiltzaile azkenean hasteko moteldu dela sentitu behar du. Beraz, azken finean, interpretatu hizkuntza Oso modan, askoz ere, oso ezaguna da, eta sinceramente Baliteke hizkuntzak duzu behar denean, arazoak konpontzeko iritsi to CS50 ondorengo. Baina konturatzen zenbat benetan zaren kanpaia azpian ematen ari da Benetan hash horiek hainbat aste iragan mahaiak, eta zuhaitzak, eta saiatzen da, erabiltzen dira, azken finean, benetan parentesi irekiak ezartzea bezalako gauzak, kortxetea, orain ezin dugu gratefully hartzeko emandako. Beraz, utz ditzagun orain web testuinguru honetan. Eta azken denbora ez da aipatu dut bat superglobals mordo PHP duten ez dira benetan garrantzitsuak lerroan. Gehiago garrantzitsuak dira testuinguruan PHP erabiliz web testuinguru batean. Beraz, PHP exekutatzen web zerbitzari bat izateko HTML horrelako gauzak sortzeko. Eta begiratu $ _GET eta $ Bi_dali dugu, eta hor automatikoki erabiltzaile ' sarrera amaitzen du, besterik gabe, bidaltzen baduzu fitxategi batean bukatzen dira. php web batean tresnaren bezalako zerbitzaria. Baina utz ditzagun laburki at _COOKIE $ Eta $ _saioa. Layman en dagokionez, zer cookie bat da Ulertzen duzu testuinguruaren en web erabiliz? Ikusleak: ordenagailuan fitxategia. DAVID MALAN: Bai. Erabiltzailearen ordenagailuko fitxategi bat da landatu by edozein dela ere web bisitatzeko gertatuko. Beraz, joan Facebook duzu, noiz joan bankofamerica.com behar denean, joan Joan google.com, noiz joan behar duzu, eta ia edozein munduko web egun hauetan, cs50.net barne, cookie bat landatu Zure ordenagailuan, hau da, bai RAM gordetzen dira zure balore Zure nabigatzaileak memorian ordenagailua, edo batzuetan, hain zuzen ere, fitxategi bat gordetzen zure disko gogorrean. Eta zer ari normalean, fitxategi horretan gordetzen dira ez da zure erabiltzaile-izena, ez zure duzu, normalean, ez da zerbait web ezean sentikorrak ez da hain beren segurtasun ona, baizik handi bat identifikatzaile bakarra da, besteak beste, beste gauza batzuk. Handi bat ausazko zenbaki landatu da ordenagailua, baina pentsa dezakezu esku bat birtual zigilua moduko bezala klub batean edo batzuetan, jolas-parke hori langileek, horren jabeek aukera ematen du zerbitzua, nor zaren gogoratzeko. Beraz, bada, big ausazko zenbaki bezala 12345678, hori da, jakina, nahiz eta ez gehiegi ausazko, hori uste bezala eskuko zigilua denean duzula bisitatu lehenengo aldiz facebook.com dute, zigilua zenbaki hori zure eskuan. Eta gero, hitz egiten duzu HTTP, duzulako nabigatzaile bat izatea, eta Facebook delako hitz egiten du, jakina, bera da web bat zerbitzaria, protokoloa HTTP dio edonoiz, ondoren, bisitatzen dituzun facebook.com, da ala ez da bigarren geroago, ordubete geroago, nahiz eta hurrengo egunean, hain luze jo ez esplizituki behar duzu saioa, eta hori eraginkortasunez zure eskuak garbitzeko bezalakoa da. HTTP dio aurkeztu beharko duzu zure entregatu zigilua zaren bakoitzean Web gune hori itzultzeko. Zer Facebook ondoren, ez dute eskuko zigilua duten begiratu, eta , esan oi dute, 123456789. Ez dut lehen begiratuan jakin hori David da Cambridge Malan, Massachusetts, baina egiaztatu ahal izango dute, datu-base eta esan, oh, pertsona zeinen ordenagailuan 123456789 landatu dugu David da Cambridgeko Malan, Massachusetts. Dezagun erakutsi erabiltzaileak orduan bere profila orria edo bere Jarioak. Baina arazo bat dago hemen hau bada da, nola web horri, hain zuzen ere lan egiten du. Ikus dezagun adibide azkar bat begirada bat. Goazen en benetan esateko facebook.com. Baina dugu han joan aurretik, utzi Aurretik joan eta ireki Chrome Inspektore behera hemen. Ikus dezagun sarea fitxan at me. Eta orain, goazen aurrera eta idatzi https://facebook.com in. Eta hori egiten ari naiz baina ez dugu horrela ikusten birzuzentzen eta hondakin horiek guztiak denbora haietan barrena begiratuta. Dezagun sartu hit me. Ondo da. Eskaerak sorta oso bat ikusiko dugu. Han dator Facebook. Ez dago fitxategiak sorta oso bat da. Eta hemen, nire aipamen per latentzia azken aldiz, hori da HTTP eskaerak asko. Baina lehenengoa da seguruenik interesgarrienetakoa. Hargatik joan behera hemen, eta Handiagotzeko dut bigarren batean. Hau da, mota horretako izango da gaizki, baina ikus dezagun. Facebook da gurekin bat bidaliz stuff sorta osoa. Baina Tira, interesgarria. Oraindik ez, baina lau landatzen dute eskuko zigiluak nire eskua hemen kalera. Set-cookie, Set-Cookie, set-cookie, set-cookie. Han eta hemen dira ezaugarri batzuk. Denak aipatzea batzuk iraungitze-mota. Eta Facebook mesederako antza du Niretzat gogoratzeko 2015 arte. Beraz, zentzuzkoa denbora horren bidez Saioa behar dut edo, besterik gabe, egingo dute automatikoki bere gain hartzen dut ez itzultzea. Beraz, benetan duina denbora zenbatekoa. Eta badira beste batzuk Gauza da hemen. Cookiean honetan agertzen indarrez izateko iraungi 1970ean esaten ezabatu cookieak existitu aurretik. Beraz nabigatzailea besterik ez da joan OK bereganatzeko, eta gustatzen eskuak zigilua garbitzeko. Baina orain nire nabigatzailea egiten denean ondorengo eskaera bat - utzi aurrera eta hau egin behin eta berriz kargatu. Orain utzi nau korrituko atzera top eskaera eta jaisten Hemen, eskatu goiburuak. Iragarki hau. Beraz, orain ez erantzun goiburu pean nago, baina konturatu eskaera goiburuak dio. Eta konturatu nire nabigatzailea parte gisa bere eskaera reload kolpatzeko ondoren gutxienez igorri ondorengo informazio. Ez set-cookie, baina cookiean. Beraz, hau lerroa da, HTTP goiburua beraz , hitz egiteko, non nire nabigatzailea moduko of my jakitea da aurkeztu gabe Facebook en ikuskatzeko nire eskua. Beraz, cookie horiek izan daitezke orduan erabilitako zertarako? Gogoratzeko nor zaren, edo gogoratzen nola han egon duzu hainbat aldiz, edo benetan ezer. Beraz, hemen counter.php da. Eta utzi gerturatzeko me font da. Eta honek orri, abisua freskatuz dut aldi bakoitzean Honez gogoratzeko da zenbat aldiz Izan dut. Beno, hori ez da guztia horretan ikusgarria. Utzi itxi besterik fitxa horretan, eta, orain, goazen atzera egiteko http://localhost/counter.php. Oh, hori interesgarria da. Oraindik ere gogoratzen du, nahiz fitxan itxi dut baina. Eta Egia, nabigatzailea itxi badut, modu egokian ezarri bada, I izan, oraindik gogoratzen erabiltzaile hori ez dela duten lehen aldia zuen zen, eta behin bakarrik joan Chrome menu, sartu nintzen eta horrek hona hemen, eta joan Historia, eta sakatu Garbitu arakatze-datuak, gisa zuetako batzuk, agian, parte izan iragana, orduan bakarrik izango cookieak benetan zehar web ezabatu garapenean. Beraz, goaz bada - dezagun hurbiletik gedit hemen. Eta orain joan behar izanez gero fitxategi honetarako dugu. Let me joan sartu gure ostalari birtual / localhost / publikoetan, eta utzi niri egin counter.php. Iragarki hori ez da nahiko a programa sinple. Webgune nahiko erraza da. Beraz fitxategia goialdean iruzkinak besterik ez da. Baina hemen linea berri bat duzula may da ikusi dute jada p-set, zazpi urtean, session_start (). Hau PHP kode-lerro bat da, funtsean, web zerbitzari kontatzen du, egin ziur eskuak zigilua eta egin ziur eskuko zigiluak egiaztatzeko. Hori da lerro hori guztia egiten du, eta hura du prozesu hori guztia guretzat. Orduan konturatu besterik ez dut lortu bi adar hemen. Badago kontagailu gakoa honen barruan izeneko aldagai global berezia $ _saioa Da ezarri - beste era batera esanda, han balioa batzuk bada ez - dezagun lortu eta gordetzeko lokal bat aldakorra $ kontagailua izeneko. Bestela, dezagun esleitu $ counter lehenetsi 0 balioa. Orain hemen PHP alderdi bat hori da bai bedeinkazioa eta madarikazio bat. PHP apur bat sloppy da. Beraz, berriz, C, zer egingo du counter esparrua izan dira bai hemen edo hemen? Ezinik izan litzateke giltza kizkur horiek. Zer? PHP, nahiz eta horiek kanpo existitzen kizkur, hemen, eta hemen, eta hemen, eta hemen, eta nahiz behera beheko. Beraz, hau zentzu bedeinkazio bat da diot ez duzula izan bezala uste Duela aste egin dugu gogor gisa. Baina ere horretan madarikazio bat pixka bat no non aldagai bat erabiltzen duzunean materia PHP, honen antzeko programa batean, gutxienez, globalki irisgarria da onerako eta txarrerako. Beraz, kontuan hartu orain aukera izango duzu Baliteke zure aldagaiak ez dira undefined. Duzu beste nonbait definitzen dute agian horiek. Baina zer ari naiz, azken finean egin da joan? Ra global horren barruan gordetzeko noa aldagaiaren balioa gisa counter gako emaitza counter plus 1, egiten. Beraz, hau, besterik gabe, aritmetika da eta horrela, ez du counter horren incrementation. Eta hain zuzen, gordetzeko naiz horretan Balio hemen berriz hau da esan nahi funtsean, datu-basea eguneratzeko gogoratu erabiltzaileari 123456789 izan dela Hemen bi aldiz. Eta orduan berriro egiten dut hurrengo aldian I orria berriz kargatzea, berriro egiaztatu da joan nire eskua zigilua eta esan, oh, Erabiltzaileak 123456789 ditu orain Hemen hiru aldiz izan da. Eta beraz, zer PHP eta antzeko hizkuntzak dira guretzat egiten da kalkulatzen ari dira nola eta non eta zenbat denboraz balioak gordetzeko berezi honetan superglobal. Eta hau hurrengo aldian superglobal dut orria berriz bisitatzeko moduko magikoki aurrez populatuena, balio beteta duten han izan ziren bisitatutako zuk azkenez, ala duten aste bat Duela bigarren izan zen, duela, edo 2013an eta guk gaur egun hitz egiten ari 2015 inguru. PHP eta web zerbitzari take zainketa hori guztia zuretzat neurtzen. IKUSLEEN: [INAUDIBLE]. DAVID MALAN: PHP aldagaiak dira funtsean beti global baduzu behintzat funtzio baten barruan horiek deklaratzen, eta ondoren, tokiko dira funtzio bakarra. Baina ez dut idatzizko edozein delako funtzio, gaur egun dira eraginkortasunez global nire fitxategia osoa hemen zehar. AUDIENCE: Ba al dago modu bat Horietako lokala egiteko? DAVID MALAN: Ba al dago edozein Bide horiek tokiko egiteko? Horiek biltzeko funtzioen sartu bakarrik eginda. Horietatik azken bertsioa hemen PHP, hau egin ahal izango du zurekin funtzio anonimoa. Baina gehiago parte JavaScript testuinguruan. Baina erantzun laburra ez da. Erantzun luzeagoa bai da. Polita. Galdetegi galdera ona. Ondo da. Beraz, azkenik, orria bera da benetan nahiko erraza. Nabarituko behin irten nintzen PHP moduan, abisuaren duten stuff hau guztia behera azpitik dago besterik txu get joan nabigatzaileak gordinak daudelarik. Zein gauza ederra, dut nahi ez duelako bidali erabiltzaileari HTML batzuk, baina nahi dut HTML duen dinamikoki eguneratuko. Eta hau egin dut modu batean ordenatzeko oso azkar erortzen back PHP sartu moduan, erabilera parentesi irekiak galdera marka zeinu berdina, eta gero irteerako balioa counter. Edo hau itxura apur bat zailago, hau bada zeinua berdina da, benetan batzuk besterik azukre sintaktiko honetan printf ($ kontra). Baina, Egia, hori besterik pixka bat itsusi eta apur bat gogaikarriak idatzi. Beraz PHP oso nicely ezaugarri hau eskaintzen non besterik ez dezakezu esan gehiago succinctly modu berean. Beraz, zer da on going azpian kanpaia? Dezagun sarea begiratu azkar fitxa hemen counter.php da. Eta, utzi aurretik, eta lehen me dezagun garbitu cookieak. Dezagun argi nabigazio datuak geroztik denboraren hasieran. Orain, goazen atzera hemen. Orain dezagun berriro orria. Eta zero itzuli naiz. Nire eskua zigilua izan garbitzen delako, Orain cookiea berri bat lortu dut. Begiratzen dut sare fitxan etan hain zuzen ere, gero eta erantzun goiburu, abisua begiratu aparatuaren me bidaltzen ari da cookie bat bere izena da zertxobait arbitrarioki, baina mota arrazoiz, PHPSESSID. Eta me bidaliz ezazu hau benetan ausazko zenbaki handi. Ez da zenbaki bat nahiko da. Ez da nahiko hamaseitarra. Da alfanumeriko katea mota batzuk, baina zentzuzkoa ausazko da. Eta hori eskuan zigilua da, beraz hitz egiten duten naiz aipatuz. Bitartean reload sakatu dut eta ondoren bada bigarren begiratu lerro nire bigarren eskatuta, oharra, orain nire eskaera goiburuak honakoak PHPSESSID berdin honetan, Ez set-cookie, baina cookiea besterik. Eta hori da nire nabigatzailea aurkezpena da nire eskua zigilua. Beraz, orain teaser bat bezala, eta gehiago hitz egingo dugu hau aste bat edo, beraz, baina buruz zer modu honetan egiten duzun, zaurgarria, zure Facebook kontua zaurgarria, eta beste hainbat kontuak ahulagoak? AUDIENCE: norbaiti zure cookiea badu. DAVID MALAN: Bai, bada norbait Zure cookiea ditu. Benetan esan nahi dut, askoz dituzu batzuk bezala baliteke klub batean edo bat bezalakoa at Ahalegindu jolas-parkea, zerbait saiatu baduzu bezalako zigilua hau kopiatzeko, nahiz beste pertsona bati eskua atzeraka kalera, eta, ondoren, zuen bezala aurkezten beren, bada benetan begiratu berdin-berdina, 123456789, ondoren weba zerbitzaria da itxuraz besterik ez da joan fidatzen erabiltzaile hori dela duzu. Eta hau da, hain zuzen ere, funtsezko bat mehatxu egiteko erabiltzen duzun edozein unetan delako norbait besterik spoofs hala bada nahi Zure cookie hitz egiten, zifrak zer da, bai benetan kopiatuz Zure ordenagailuan begira eta, OK bezalakoa izatea. Daviden cookiea JJ3JIK da eta abar, eta, ondoren, smart nahikoa ezagutzen ari dira nola eskuz moduko bidali duten nabigatzaile batetik edo bat cookiea dute idatzi programa, erabat izan dute webgune bat duzun bezala sartu. Ez da hain gogorra izan asmoa norbaitek p-set revisit dugu behintzat bi, eta horrek sartutako zer? AUDIENCE: Kriptografia. DAVID MALAN: Apur bat kriptografia pixka. Simple kriptografia, gutxienez dagoen edizioa estandarra, baina kripto hala ere. gutxiago. Beraz, bihurtzen da guztia enkriptatzen baduzu goiburuak hauek zerbait duzula erabiliz agian gaur egun ezagutzen gehiago SSL gisa familiarly, socket geruza seguru, edo https:// URLak, ondoren, gauza horiek guztiak izan gara glancing benetan enkriptatuta, horrek esan nahi dela zu bezalako ezin irakurri eskuko zigilua. Facebook.com bakarrik ezin, edo google.com, edo, kasu honetan, aparatuaren ahal irakurri eskuan zigilu hori. Tragikoki ordea, eta berriz ere, hau da guztiak ere NSA gauza batera egoki zetorrena, SSL are breakable da. Eta, egia esan, ez da zaila enkriptatzea are crack. Ez hain enkriptatze cracking by askoz, baina tricking arabera desenkriptatu sartu nabigatzailean Datuak behar baino lehenago. Baina, berriro ere, aurre egiten dizugu hori baino askoz lehenago. Oraingoz, besterik ez izan beldurrik. Da tragikoki motatako egia da. Ondo da. Beraz, kode hau orain utzi digu? Beno, egin dezagun hau. Dezagun aurrera eta azkar bat hartu atsedenaldi bat hartuko dugu teaser aurretik. Eta uste dut linger egingo dugu pixka bat gehiago gaur egun, baina ari gara ahal murgiltzea joan zerbait estreinatzeko eta sexy, egingo den whet zure gosea are gehiago. Beraz, Esan nahi dudana da. Beraz, SQL, buruz hitz egiten hasi ginen inoiz beraz, labur-labur, azken aldiz. Benetan duzu zure eskuak zikin batzuk p-set zazpi urtean. Eta layman en terminoetan, zer SQL du - S-Q-L - zuretzat egin? Zer da? Bai. AUDIENCE: Dezagun duzu sarbidea datuak. DAVID MALAN: Bai. Utzi en duzu sarbidea datuak datu base batean. Egituratu kontsulta-lengoaia. Eta hau da funtsean bat programazio-lengoaia. Badira ezazu ezaugarri duten ezin izango dugu, nahiz eta klasean erabiltzeko. Baina eraginkortasunez ahal duzun funtzioak definitzeko. Gordetako deitzen ari dira SQL prozedurak. Baina nahiko erraza da eta, besterik gabe, gorde egingo dugu erabiltzen da oinarrizko eragiketak batzuentzat datuak aukeratuz, datuak sartu eta bezalako datuak eguneratzeko, eta datuak ezabatu. Eta benetan dezakezu datu-base bat pentsatzea, SQL datu base bat bezala, bezain Microsoft Excel izatea. SQL erlazional bat aipatzen delako datu-basea, non erlazioa besterik taulak esan nahi du. Errenkadak eta zutabeak. Beraz, ezer duzu kalkulu-orri bat jarri ahal hau edo Google Docs bezalako, duzu SQL datu-base bat jarri ahal taula bat deklaratzen duena. Orain, nola ez, benetan sartzen zaren informazio hori? Beno, komando eta ekin honen antzeko kontsultak. SELECT, INSERT, UPDATE, eta EZABATU. Eta zati handiena, horiek dira egiteko beharko duzu lau osagai bakarrik zerbait egin nahiko potentziaz arazo girotuta zazpi. Orain egun atzera, benetan egiten duzun batean datu-base bat elkarreragin terminal eta zuri-beltzean at leihoa keinuka hau atsegin gonbita. Eta on ari gara exekutatzen datu-basea tresnaren deritzo MySQL, hau da, libre eta open source datu-base motorrarekin. Google baduzu eta irakurri Wikipedia artikuluan, jakin ahal izango duzu izena, hau da trantsizio pixka bat batzuentzat Linux bertsioak. Maria datu-base bat da, benetan Iak beraz MySQL mintzatzea. Long Narrazio laburren, Oracle erosi MySQL. Oracle enpresa handi bat da. Pertsona izan dira kezkatuta litzateke duten ez da gehiago egongo iturri nahiko irekita bezala, beraz, hau, besterik gabe, hori da MySQL kopia da Oraindik ere libre, oraindik ere, kode irekiko eta Fedora Linux instalatuta lehenetsita. Baina hau da, mina bat mota lepoan bat ezagutu ahal izateko datu-basea modu honetan. Beraz, besteak dugu CS50 aparatuaren free kode irekiko izeneko tresna bat phpMyAdmin. Just kasualitatea nik PHP idatzita. Ez da funtsezko ez PHP behar hemen. Baina hori web bidezko tresna bat da, deskargatu doan dugu, instalatutako aparatuaren, aukera ematen duen behar digu bat erabiltzailearen interfaze grafikoa duten p-set zazpi-basean esploratzeko horrek datu-base berriak sortzeko, zure azken proiektu propioa esan duzu litzaidake bada bezala, eta, azken finean, sortu CS50 Ogasun bezalako webgune dinamikoa datuak kontsultatzeko aukera ematen duten eta datuak dinamikoki eguneratuko. Oraindik ez duzu erabili behar joan besterik Testu fitxategi edo CSV sinple bat. Benetan datu-base bat smart erabili ahal izango duzu programa, beraz, gehiago exekutatu dezakezu kontsultak sofistikatua besterik irakurtzea baino guztia linealki bidez. Horrela, esate baterako, hau da, zer dugu eman duzu p-set zazpi koadroan. Hau itxuraz gutxienez taula da hiru zutabeak, eta horietako bat da erabiltzaile-izena, horietatik bat hash da, eta beste horietatik izena da. Baina gauza interesgarri, eta, besterik gabe, tease daudelarik pentsamendu bat hemen, username da, ustez jadanik berezia da, ezta? Esan nahi dut, gehienetan edozein web, bada erabiltzaile izen bat duzu, ez dago ezin bi caesars izan. Han ezin bi malans izan. Han ezin bi jharvards izan. Bere berezia. Bestela, ez dute ezagutzen zein jharvard benetan da. Beraz, zer ere motibazioa izango da agian ezker aldean hirugarren zutabe bat izatea identifikazio han deitzen, eta horrek bat itxura zenbaki hori, era berean berezia? Erredundantea apur bat sentitzen da niri hasiera batean. Zergatik izan liteke sinesgarria behar izango da ez bakarrik erabiltzaile-izen berezia, baina, halaber, zenbakiak berezia? AUDIENCE: izan dute pasahitz berdina. DAVID MALAN: People agian izan pasahitz berdina, ziur. Erabat gerta liteke. Baina erabiltzaile-izen berezia hori izanez gero, I hori ez benetan argudiatzeko litzateke materia, izan ere idatzi dute, bada, beren username, bakarrik egiaztatu behar dut euren pasahitza, bere hash kontratuan. Zergatik bestela? AUDIENCE: Faster bilatuz. DAVID MALAN: Faster bilatuz. Zergatik? AUDIENCE: izena besterik ez da. DAVID MALAN: NAN pertsonaia bat besterik ez da, edo zehazkiago, zenbaki bat da, beraz, ziurrenik, ez da 32 bit edo horrelako zerbait. Berriz, erabiltzailearen izena, itxuraz Jason Hirschhorn han sort ridiculously luze, eta nik joan nahi hartu me denbora asko gehiago katea alderatu H-I-R-S-C-H-H-O-R-N, eta, agian, / 0 edo horrelako zerbait bat, ordena Jason aurkitu, aurka jokatu esanez eman dit Erabiltzaileak bi zenbaki. Duten 32 bits. INT bakar bat da hori alderatu duzu. Eta hain zuzen ere, hori da zehazki zergatik databases joera identifikazioak berezia esleitzeko behar haietan ilarak. Gaur egun zer beste datu motak dira INT eta itxuraz gain honen antzeko kateak? Beno, gehiago egokia izan nahi du, Datubaseak, bezalako MySQL, izan CHAR zelaietan. Eta char apur bat misleadingly Ez da CHAR bakarrean. CHAR MySQL datu base batean eremu bat da karaktere bat edo gehiago, baina bat da karaktere kopurua finkoa. Horrela, esate baterako, gehiago joan balitz dut Dagoeneko izan dezakezu phpMyAdmin gisa, edo laster izango da arazo multzo bat, zazpi, eta biok joan nire datu-basea, eta soilik ondo pasatzeko, dezagun izeneko taula berri bat sortu zutabe bi besterik ez probatzeko. Egingo gero egin klik I Go. Eta hau izango da izango nahiko ezagunak, tinker duzu batez ere inguruan zure kabuz. Hemen izena idazten dut agian, sortu mota INT taula berria. Baina hemen erabiltzaile-izena idatzi liteke dut birsortzeko lehenago mahai horretan. Eta nabarituko sorta oso bat daukat moten artean hautatzeko. Eta hau ere horregatik phpMyAdmin mota da polita. Auto-irakaskuntza mota duzula da daiteke besterik ez mota puntua eta egin klik, eta Goitibeherako menuak begiratu, eta infer zer eskumen SQL ematen dizu. Eta, hain zuzen, aukeratu dut CHAR bada, I gero luzera, edo nola zehaztu behar balore asko, zenbat karakteretan. Balioak, beraz, oso ohikoa bezalako gauzak dira 255, baina hori apur bat luzea da. Normalean zortzi izen bat da. Baina hori txiki-txiki bat da egun hauetan. Beraz, hau diseinu erabaki bat da. Da 8 karaktere gehienez, 32, 255, 1.000? Benetan da, sortu nahi duzun. Baina CHAR eremu baten kopuru finko bat da. Beraz, too batzuk aukeratu eta Oraindik motatako izorratu username luzeagoa nahi baduzu. Aukeratu gehiegi eta zer arazotxo? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: hondakin-ekoizpena da. Just C bezala, handiagoa izan beharko duzu memoria zatia behar baino, zu besterik ez denborarik galdu eta espazioa alferrik galtzen. Beraz, alternatiba gisa, badira existitzen VARCHAR, eta horrek arazo hau konpontzen arabera luzera ez tratatzeko luzera finko gisa, baina gehienezko luzera bat, eta bat erabiliz Chars kopurua aldakorra, eta gero karaktereak bakarrik asko bezala duzun bezala erabili ohi benetan behar. Perfektua soinuak. Zergatik ez dugu ezagutu, kentzeko CHAR datuak idatzi ondoren? Zer arazotxo izan liteke VARCHARs, zein soinuak erabiliz bezalako irabazi polit bat da? Bai? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: Ados, ona. Beraz, zure datuen guztietan da berdina bada luzera, zer kezka? AUDIENCE: alferrik galtzen ari delako horiek guztiak kontatzeko datuak. DAVID MALAN: Beraz, zure datu guztiak da luzera bera, nahiz eta, argudiatzeko nuke duten gehieneko luzera zehaztuz VARCHAR da desberdinak ez CHAR on luzera finko bat zehazten bada aldez aurretik zenbaki hori badakizu. Baina ez dago, hain zuzen, eta sort dut Erantzuna hartako errealitatea ateratzeko Ba hori da, oraindik ere, gehienezko bat, hau Could izan gogaikarriak, batez ere baduzu pertsona baten izena topo hori da ohiz luze egin ez duzula aurreratzen. Eta, gainera, apur bat gutxiago eraginkorrak benetan VARCHARs bilaketak gisa bilatzen Chars aurka, batez ere, mahai luze horretan asko izan eta bost Datu asko. Beraz, hemen ere, gai da berriro bistako aukeratu ez. Beraz, besterik ez duzu beste zentzu bat emateko agian interesgarriak izan datu motak bai p-set zazpi edo in Etorkizunean, ez da INT. Ez dago bigint, zein luze luze bat bezalakoa da. 64 bit izan ohi da. Ez dago hamartarra, ikusiko dituzu Arazoa multzoa, hau da, askoz bat arazoei erantzun garbiagoa dugu karroza eta mugikorreko aurkitu imprecision seinalatu. Eta orduan, DATETIME. , Hitzez datu mota bat dela urte bat bezala begiratu, hilabete bat, egun bat, eta ordu bat, minutu eta segundo. Baina datubaseak ere badituzte gauza dugu indizeak dei egingo. Eta indize bat zerbait duzula da zehaztu noiz mahai sortzeaz bilaketak eta bestelako eragiketak egiteko eraginkorragoa. Hain zuzen ere, han zerbait deitzen da the PRIMARY indizea duzula Could honela deklaratzen. Hau egin dugu zuretzat batera erabiltzaile taulan emango dizkizuegu. Baina konturatu nintzen eskuz birsortzeko balira erabiltzaile mahai hemen emanez duen erabiltzaile izen bat. Zehaztutako dagoeneko dut izena. INT zehaztu dut. Erabiltzaile-izena zehaztu dut 32 karaktere gehienez. Baina jarraituko dugu bada hau nahiko korritu leiho zabal, abisua, ez da bat Beste gauza batzuen dut zehaztu dezakezu sorta. Bata, atributuak zehaztu ahal dut bezala, badakizu zer, hau INT unsigned izan behar du. Ez dut zenbakiak negatiboak nahi, beraz dezagun hura sinatu gabe. Nulua ez da garrantzitsua delako hemen Egin nahi dut, erabiltzaile bakoitzak den zenbaki bat izan. Ez dut nahi nulua izan da. Baina hau interesgarria da. Izena bai da I zehaztu ahal izango du Datu-base honen funtsezko lehen, edo ari berezia, edo indexed da, edo testu osoa. Beraz, gaur egungo helburuetarako, istorio luzeak labur, PRIMARY esan nahi izango hau be bai kontzeptualki eta teknikoki eremuan erabiltzen duten bakarrean nahi dugu erabiltzaileak identifikatzeko. Beraz, sortu erabiltzaile begiratzen dugu, hau da, nolako Horien bila dezan, batez ere, egindako promesa baten identifikatzaile bakarra duten. Eta datu-base bermatu egingo du badituzu erabiltzaileari zenbaki bat 3 izan, ezin duzu fisikoki beste erabiltzaile txerta zenbaki hori bera 3. Datu-basea besterik uko egingo aldaketak gordetzeko. Gauza ona da, ezin duzulako zeuk zeure burua babesteko. auto Bestela, erabiltzaile izena. Beraz, bigarren errenkadan, abisuaren, username eremua da. Beraz, bigarren lerroan hemen erabiltzaile-izena da, genuen on urrun han utzi behar izan baitu. Beraz, zer gehiago agian zehaztu nahi dut? Ez dut onartzen, SQL arabera, bi gako lehen zehazteko. joint gako bat non duzun zehaztu dezakezu Bi eremuak begiratu, baina ezin dute banaka lehen mailako gakoak izan. Beraz, galdera da. Beraz, horrek agian aukeratu nahi dut? Beno, BAKARRA espirituz antzeko bat da lehen mailako gako kode hau zehaztu duzu Eremu berezia izango da, baina ez da ez bat izango da Denbora guztian erabiltzen dut. Eta ez ari gara hau guztia erabili joan zer arrazoigatik ordua berriro? Hura motelagoa da potentzialki bada Erabiltzaile izen luze bat da. Besterik ez da denbora galtze bat da. INDEX, bestalde, zehazten du dela Ez berezia izango da, baina gustatuko litzaidake dut zure magia lan duzu azpian kanpaia egin azkarrago dit bilatu eremu honetan. Beraz, hau seguruenik ez da garrantzitsua hemen. Erabiltzaile izena, litzaidake argudiatu dut BAKARRA erantzuna ona da. Baina demagun erabiltzaile egin dugula gehiago erabiltzaile-izenak baino zerbait interesgarria, egiaztapenekin, eta NAN zenbakiak. Zer izen osoa eman dugu bada jendeak? Horietako helbideak eman dugu zer bada eta haiei buruzko beste datuak? Beno, zuk zehaztutako bada batean zutabe bat datu-basean indexatutako da, horrek esan nahi du MySQL edo Oracle, edo dena delakoa, datu-basea , erabiltzen ari zaren bere magia lan egin behar eta erabiltzeko datuak fancy nolabaiteko zuhaitz bat, edo trie bat, edo bat bezalako egitura Hash taula, edo zerbait bermatu bilatu duzunean datuak erabiliz hautatu eremu jakin - bezala erakutsi denek Oxford Street-bizi. Horrelako kontsulta bat. Aldez aurretik zehaztu duzun bada Eremu horretan indize bat gorde nahi bada, bilaketak askoz ere izango da, askoz azkarrago. Ez duzu indize bat, hoberena zehaztu bada egin dezakezu bilaketa lineala bada Ez da antolatuz. Baina INDEX, elegante zehaztu baduzu datu-basea egin duten pertsonen - zu bezalako pertsonak gaur egun ezagutzen duten zuhaitzak eta saiatzen eta hash taulak - besteak beste, datuak automatikoki eraikitzeko izango RAM egitura ziurtatu egin bilaketak horiek askoz ere azkarrago. Fulltext bestalde espiritua antzekoa da, baina aukera ematen komodina egin duzu bilaketak, bezala erakutsi denek hasiko duten kaleetan bizi gutun edozein arrazoigatik O. Komodin bilaketak egin ahal izango duzu duten bezala. Edo, ikuskizun atsegin gehiago sinesgarria gauzak niri nor hitza ditu guztiontzat - Erakutsi Edonork bere izena hasten letra jakin batekin. Bila ditzakezu gako-hitzak modu horretan. Ondo da. Beraz, diseinu-aukerak han potentzialki. Badira beste batzuk, I izango direla olatuen nire esku dago. Bihurtzen da izan dezakezu biltegiratze motore ezberdinak. Eta hau da, gehiago urrutira behar duguna baino zalantzarik gabe, arazo multzo zazpi. Berez, guys erabiltzen ari zerbait InnoDB deritzo. Ikusiko nonbait horren aipamena duzu phpMyAdmin interfazeak ziurrenik. Baina ezagutzen ez diren beste diseinu duten potentziala dira erabakiak interes azken proiektu etortzen bada zerbait web bidezko egiten duzu. Baina egin dezagun hau. Dezagun aurrera, eta hau jarri da pantaila istorio bat teaser gisa duzu inplikatuz, gelakide bat, eta esne edalontzi bat. Ikus dezagun bi minutu bat hemen edo hala apurtzen. Eta inguruan duzun itsasten ahal bada, dezagun etorri atzera, itxura pixka bat gehiago SQL at, eta Orduz JavaScript pixka batekin p-set zortzi kontuan. Ondo da. Beraz, gaitezen pentsatzen duzu bati buruz izkina kasu horretan oso erraz sor daitezke datu-base bat erabiliz, edo testuinguruan Egia, nahiz eta mundu errealeko gauzak erabiliz kutxazainetan bezala dirua lortzeko. Beraz, hemen hozkailu bat. Demagun duzun got bat ere egina zure gela edo zure etxea. Eta lortu duzun gelakide bat, eta bien Benetan nahi duzu adibidez esnea. Beraz etxera, egun batean klasean from. Berak ez da oraindik itzuli. Hozkailua ireki duzu. Esne edalontzi handi bat benetan nahi dituzun. Han esnea ez da. Beraz, zer egin nahi duzu? Hozkailua ixtean. Zure Hartu teklak. Duzu joan plazara. Eta lerro lortu duzu CVS at horietan auto checkout gauzak, beti egia esan baino gehiago iraun Kutxazainak beharrik. Dena dela. Beraz, ondoren, bere aldetik, dot dot dot, zure gelakide etxera dator eta berak era berean hankering bat du esne batengatik. Beraz, hozkailuan zuen irekitzen, barrutik itxura, eta oh, madarikatua. Esnea ez. Beraz, zuen edo atera zuzentzen zuen, gertatzen joan Beste CVS, hain zuzen, bakarrik bat blokeatu kanpoan arrazoi batzuk, eta zuen edo lortzen line zuen esne pixka bat erostera. Bitartean, etxera, zuen edo etxera dator zuen, eta zer egin azken finean, izan al duzu? Bi aldiz ere esnea. Baina ez benetan nahi duzun esnea askoz. Beraz, gaur egun hainbeste esne duzula orain horietako bat besterik ez da garratza joan azkenean. Beraz, honek arazoa benetan txarra da. Eskuin? Beraz, zer gertatu da? Beraz, funtsean, hau da, mota Adibidez barregarria baten. Baina kanpaia azpian, zer izan dugu gertatuko da hemen, bai gero egiaztatuko pieza batzuen egoera memoria, hozkailuan. Biak duzun egiaztatuko egoera aldagai batzuk. Zuk bai Ondorio bat marraztu ondoren, hori jokatu duzu. Baina, zoritxarrez, berriz, zure gelakide dendan zegoen, hori estatuan aldagai aldatu, berak itzuli zen eta, orain, egoera aldatu nahi du, baina nik aldatu egin da dagoeneko zion edo bere on. Eta, jakina, berak ez luke dendan joan ziren bazekien Dagoeneko zinela en ibilbidea. Beraz, mundu errealean, nola ezin duzu Arazo hori saihesteko, daukazula suposatuz hozkailua, gelakide bat behar duzu, eta benetan gustatzen duzu esnea? AUDIENCE: komunikatu. DAVID MALAN: komunikatzen. Ados. Baina, nola liteke komunikatuko zara? Ikusleak: Utzi ohar bat. DAVID MALAN: Utzi ohar bat, ezta? Beti utzi ohar bat, for show the fans. Guztiak eskubidea, beti utzi ohar bat, edo benetan jarri giltzarrapo bat edo antzeko zerbait hozkailuan mantentzen zure egoera ikuskatzeko tik gelakide duten aldagai. Orain, zergatik ez litzateke izan behar germane arazo multzo zazpi, edo kutxazain automatikoak. Beno, pentsa mundu bat kutxazain bat non hasi ahal joateko kutxazain bat izan dezakezu makina hemen, eta kutxazain beste hemen. Eta hau gertatzen da sarritan. Eta demagun bi kutxazain txartelak izan duzu, hau da, ahalik lortzeko. Eta bai makinak saioa hastean eraginkorrean aldi berean, espero inor ez da bilatzen ari diren bitartean. Eta, ondoren, idatzi zure PIN duzun aldi berean, gutxi gorabehera. Eta gero, oreka-kontsulta bat egin duzu zenbat cash duzu ikusteko. Eta esan dezagun 100 $ izango duzu zure kontuarekin utzi. Beraz, funtsean, aldi berean, zuk esan bat, zero, zero, idatzi. Eta espero dugu atzera dirua. Baina zenbat diru itzultzen lortu duzu? Orain egun bukaeran, ordenagailuak, batez ere galtzen ari diren hizketan zerbitzariak, ez dute zertan gauzak ordena hori espero. Beraz, eman dezagun zer gertatzen den, baita edozein dela ere sarearen abiadura gai ez dira, edo CPU-arazoak daude, edo horrelako ezer egin, suposatzen duten lehen kutxazain zure oreka eta egiaztatzen ikusten, ai, pertsona honek ez du $ 100. Baina, ondoren, erabat arreta beharbada segurtasun kopia bat gertatzen ari da, eta beraz, motelduz. Edo agian egiaztapena, berriz, sarearen konexioa lortu apur bat motelagoa delako hori gertatzen da. Gailu fisikoak dira. Beraz, bere aldetik, bigarren kutxazain da galdera bera eskatuz. Zenbat diru izan du David? 100 $ erantzuna da. Baina lehen kutxazain du oraindik ez duelako Mezua kendu $ 100, bai Kutxazain ikuskatu dute banku-en ganga, ez da 100 $ han ikusten, eta, orain, makinak bai potentzialki dira txu erantzun bat egingo da. Orain, hau zuretzako da handia, zentzu batzuetan banku zer egiten bada, azken finean, zenbatekoa aldatu da ken 100 aldagai zure berdina ezartzeko banku-kontu eta 0 berdin, aurrean 100 ken egiten. Orain banku kasu txarrenean - edo banku onena, berriz, bere aldetik, eman dute $ 200, eta banku kontuan orain negatiboa erakusten $ 100, eta horrek ez du benetan mesede duzun guztietan. Baina puntua da lasterketa hori bi roommates lortzeko baldintza esnea, edo bi kutxazain eskudirutan saiatzen aldatu eta ganga baten egoera aldi berean, existitzen den edozein denbora datu base bat egin behar duzu. Orain arazo girotuta zazpi, gai honen Zentzu sortzen erosi baduzu duten Facebook stock-kuota, eta orduan instantzia bat bigarren parteka erosi Facebook-salda, egin behar duzun programatzaile erabakirik hartu. Nola eguneratzeko erabakitzeko datu-basea, odds ari zaren joan bat izan duten stock errenkadan, eta hau modu bat jartzera da. Ko eta parteka izan behar duzu FB, hau da, beren stock ticker sinbolo izen hau, edo erabiltzaile honentzat Identifikazio, identifikatzaile bakarra da. Baina kontakizun berbera hemen gerta daiteke. Ez baduzu SQL hautatu dituzu ikusten arazo girotuta zazpi ikusita, Oh, David ko kuota du Facebook stock. Refresh aldatu dit orain bi akzio izango da, nahi du bat erosi duelako bigarren partekatzeko. Baina demagun David benetan bi leiho irekia, edo suposatzen duten bi ezkontideek elkarrekin kontu bat da, eta biak dira burutu saiatzen bera dute, han ere, potentzial erabaki bat egon badago oinarritutako aurreko egindako munduko egoera - Kontu bat partekatzen ditu - eta pertsona bi edo zerbitzariak bai, orain saiatu ahala ditu bi akzio esateko. Baina kasu honetan, izan kobratuko zenituzkeen dirua akzioen bi dit, baina handituaren bat besterik ez da denbora. Beraz, azken batean, funtsezko arazoa Hemen, utzi buruz txantxa bezala Kontuan izan, edo giltzarrapoa jarri da, eta ez da bi pertsona edo bi hariak bada - Uste itzuli urratu - aldagai batzuen egoera aztertu ahal eta saiatu aldagai hori aldatzeko, baina bi gauza horiek ez at gertatuko Aldi berean, baina, eten get dezakezu beste gauza gertatzen ari da, datuak ahal Oso egoera arraroa sartu. Eta prestazio edo jasaten dezakezu dezakezu Adibidez dirua zentzu batean. Beraz, arazo multzo zazpi, emango dugu kode-lerro bat, hau luzea Narrazio laburren, hau konpontzen MySQL arazoa. Hau oso luzea da agindu hori ez da nahiz eta lerro aldera egokitzen buruzko pantaila hemen zure funtzionamendua bermatzen duten da, zer deitzen atomikoa. Aldi berean gertatzen den, edo ez da gertatuko guztiak. Oso luzea esaldi hau ezin get eten partzialki. Eta zer egiten da, hitzez hitz esaten duena. Taula batzuk txertatzeko honako hiru eremu zehatz balio horiek, baina gakoa bikoiztuak an, ez egin txertatu. Eguneratze bat. Beraz, hau hautatu bat eta egiten bezalakoa da INSERT beraz, aldi berean hitz egiten. Eta zer gakoa hori da ziurrenik da aipatzen ari den hemen? Bihurtzen da, eta hau ikusiko duzu hemen Arazoa zazpi zehaztapenak ezarri, zeren han deklaratu dugu giltza berezia izango da taulan zehatz honetan, besteak beste, Ezin duzu gehiago errenkadak dute duen erabiltzaile berari eman bera Penny stock sinboloa - hemen adibide honetan, DVN.V da silly Penny stock bat dugula aipatzeko zehaztapenak ere. Deklaratu dugu berezia izan delako, zer esan nahi duzun bada saiatu bikoiztuak ilara batean txertatzeko, zaren ordez hura gabe egunera joan inork aldatzeko aukera bat izatea munduaren egoera, bai. Beraz, azken finean, hori bermatzen Gauzak atomikoak dira. Oro har, nahiz eta, datu-base MySQL bezala - eta ez duzu behar ezaugarri hau p-set, zazpi, baina mantendu kontuan izateko etorkizuna - zer dira transakzio deitu onartzen, non esan dezakezu START transakzio literalki. Gero zuk exekutatu ahal SQL bi adierazpenak. Eta SQL adierazpen batean, ikusiko duzun bezala in p-set zazpi, itxura apur bat honen antzeko zerbait. Eguneratu Kontu bat izeneko taula. Ezarri oreka edozein dela berdina zutabe oreka zutabean Une da ken 1.000 non kopurua, kontu zenbakia, erabiltzaile-izena bezala, berdinen 2, eta gero eguneratu Kontu dot dot dot. Beraz layman en terminoetan, zer bi horiek kontsultak badirudi beharreko egiten Mundu errealean banka zentzua? AUDIENCE: aurrezki transferitzea. DAVID MALAN: Zehazki. Funtsak transferitzeko batetik bestea kontuan. Eta hau beste adibide bat da, non duzu benetan bi gauza horiek gertatuko nahi edo ez zen gertatu. Ez duzu nahi zerbait lortu Horien erdian eta nahaspila potentzialki sortu math, edo nahastea, zenbat dirua behar duzu, edo zenbat dirua bankuan ditu. Beraz, zer da benetan transakzio inguru polita MySQL dela, eta datu-base gehiago, oro har, hauxe litzateke: eta pertsona smart nor naiz abian Ezaugarri horiek irudikatu nola egin ziur gauza horiek biak gerta edo batere ez. Eta benetan duzu egin aspirante badira duten jendeak darabilen web-a campusean, mundu errealean pertsona, egiten startup zentzu zerbait, horiek mota dira diseinu erabakiak bihurtu da inoiz hain garrantzitsua. Bestela, datuak galtzen hasten zarenean, gal erabiltzaile, edo txarrena kasuan bezala Hemen ikusi dugu, potentzialki dirua galtzen. Beraz, berriro ere, gehiago duten arazo girotuta zazpi, baita agian batzuk azken proiektuetan duzu. Hargatik aldatzeko irudi hori izan genuen une bat besterik ez duela modu bat gehiago dira. Hargatik, benetan me ikusten dut, ahal bada - nope, hori da desagertu. Hor dago. Beraz, hau da, non azken aldiz utzi dugu. Eta bihurtzen da zozketa goaz nahasketa sartu gauza bat gehiago hemen - JavaScript izeneko hizkuntza bat. Beraz JavaScript benetan egokitzen Pieza hau sartu - eta ez da nahiko nahikoa toki uzten dut, beraz, hau ez da orain arte eskalatu. Ados, hau da, benetan patetikoa. Ados, beraz, JavaScript da. Ondo da. Benetan ari naiz egiten disservice bat. Ondo da. Beraz, Javascript programazioarekin bat da hizkuntza, eta gure azkena, horrek laguntzen bada lasaitzea ez dagoela ez da askoz ere gehiago sute ahoak hemen. Beraz Javascript da ere interpretatuak hizkuntza, eta horrek esan nahi du, ez duzu konpilatu zeroen eta bai sartu. Exekutatu besterik ez duzu. Baina zer da funtsean desberdinak Ikusteko Javascript-a izan ohi da duzun ez exekutatu zure web zerbitzarian. Ez du lortzen aldean abian tresnaren per se. Hobeto esanda, da erabat deskargatu erabiltzaile batek HTTP bidez bere nabigatzailea sartu - Chrome, Safari, Internet Explorer, Firefox, edozein izanda ere - eta hori exekutatzen honek nabigatzailea da programazio hizkuntza jakin. Beraz, argi izan, PHP beraz, orain arte izan exekutatu bai komando-lerroan gure zuri-beltza eta leiho, zerbitzari batean aparatuaren, ordenagailu baten antzera aparatuaren gustatzen, edo izan da Web zerbitzari batean exekutatu ordenagailu batean exekutatzen. Baina gaia hemen PHP dela beraz, orain arte ha exekutatu zerbitzariaren aldeko, beraz erabiltzailearen eta erabiltzailearen nabigatzailean inoiz PHP kode lerro bat ikusten. Izan ere, inoiz irekitzen duzu nabigatzaile bat izanez gero Zure webgune edo bestean eta zuk benetan ikusi PHP kodea zure leihoan, norbait izorratu ditu. Delako ez da ekarri ahal izango nabigatzaile baten zuzenean bidaliko. Honez ustezko exekutatu behar da, eta horrexegatik HTML antzeko zerbait sartu. Baina JavaScript funtsean kontrakoa. Honez normalean barruan exekutatuko diren jakin ezazu Erabiltzaile baten nabigatzailearen leihoa. Eta zer mota webgune erabili Ikusteko Javascript-a gero, egun hauetan? Literalki popular webgune guztietan bezala. Webgune bakoitzak you guys ziurrenik erabili eguneroko JavaScript erabili du errazena eta baita sexiest ezaugarri. Beraz, Facebook bezalako zerbait Chat duten erabiltzen bada. Nola duten benetan lan? Beno beraz, orain arte, stuff guztiak dugu HTML egin eta PHP bere gain hartzen duen tira duzu URL bat, eta hit duzu Sartu, eta HTML edukiak batzuk ikusiko dituzu. Eta esteka, hori aldatzen klik eginez URL, orria aldatzen, eta kargatzen eduki berri batzuk. Klik URL edo beste inprimaki bat aurkeztu, get orri baterako whisked eta eduki berri batzuk ikusiko dituzu. Baina bezalako Facebook Chat zerbait erabiliz, edo Gchat edo Google Maps, oso gutxitan hala nola freskatu du orri osoa pantaila zuri bat ikusten duzu une batez eta ondoren, eduki berriak. Hobeto esanda, web orriak gaur dira dinamikoki ohitu berriro eguneratu eta behin eta berriro ordenatzeko guztiak atzean. Eta bihurtzen denean joan ez duzu nahi Facebook, edo Gchat antzeko zerbait, edo Gmail, eta orria eguneratu egiten automatikoki berkargatu gabe du pantaila osoan, zer gertatu dela Zure nabigatzaileak moduko ezkutuka egin du HTTP osagarriak eskaerak - Ez osoa web orriak, baina besterik datuak zatiak gutxi bezala, berehalako mezu hori zure laguna besterik bidali dizu, edo egoera-eguneratzea dela Norbaitek besterik bidali dizu, edo tweeta Norbaitek besterik bidaltzen duten. Besterik ez da eskaerak gutxi egiten ekarriko duen datuak, eta, ondoren, Javascript, hau erabiliz programazio-lengoaia, zer aldatzeko web orriaren itxura duen gabe zerbitzaria, lagunduz zerbitzariari gabe HTML duten sortuz. Beraz, azken finean, Javascript, ondoren erabili ahal izango da datu berririk ez bakarrik eskuratu etik osotasunean berkargatu gabe zerbitzariari orri edo inprimaki bat bidaltzen. Ere erabil daiteke aldaketara DOM llamado - dokumentuaren objektu-eredua - besterik fancy bidea da HTML zuhaitza esaten Azken aldiz ikusi dugu. Beraz, lasaitzea, Javascript da sintaktikoki beraz C antzekoa baita. Ez dago funtzio nagusia da. Kodea idazten hasteko besterik ez duzu eta exekutatu egingo da, edo interpretatu behar bezala. Baldintza itxura hau izango du. No desberdinen C-tik edo Gai horren PHP. Boolear adierazpen edo-ed elkarrekin itxura hau izango du. Elkarrekin Anded itxura hau. Etengailuak itxura hau izango du. For begiztak itxura hau izango du. Bitartean begiztak itxura hau izango du. Egin begiztak bitartean itxura hau izango du. Hau berria da. Beraz, ez du JavaScript foreach bat eraikitzeko per se, baina eraikuntza hau aldagai array i, eta i honetan Kasu indizearen balioa bat bihurtzen da. Beraz, apur bat ezberdina da foreach, nahiz eta bertsio berriak Ikusteko Javascript-a denbora guztian irteten dira, beraz, nahiz eta hizkuntza ezaugarri hauek garatzen ari dira. Eta alde batera utzita, egun hauetan JavaScript gisa ere egin daitezke, zerbitzari bat erabili besterik ez bezalako PHP Node.js. izeneko esparru bat erabiliz CS50 TFS, Kevin bat, ekarri bat Mintegi Node.js on hori da eskuragarri cs50.net/seminars. Oraindik bitxia hala bada, badakizu hau erabili ahal zerbitzari aldean bezala on ondo, baina hori nahiko azken joera bat da, baina hartan indartsua izango du. Hau da, apur bat desberdina. Hau JavaScript array bat da. Eta zer jotzen duzu desberdin gisa versus C edo PHP? Badira istorioak azkar batzuk hemen esan ahal dugu. Zer falta versus PHP? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: Bai? Barkatu, esan berriro? AUDIENCE: Not deklaratzen aldagai mota. DAVID MALAN: Ez gara geratuko aldagai mota. Beraz, benetan oso PHP bezala, ez gara aldagai hau mota zehaztuz. Baizik eta, oro gaude esanez aldagaiaren var. Ez dugu PHP-en gogaikarriak dolarraren ikurra, zein lapurtera bitartean mota, egin du argiagoa duen zerbait aldagai bat da. Hemen berriz, gaude moduko itzuli C-ren hurbilketa besterik deituz bat nahi dugun izenarekin aldakorra emateko, zenbakiak bezala. Eta, gainera PHP bezala, ez dugu egiteko kortxete array barruan balioak. Beraz JavaScript aldagaiak ere baliteke itxura hau. Iragarki hemen hau s izeneko kate bat da, baina, era berean, ez dute zehaztu dugu kate bat dela. Hemen ordea, ez du hori ezaugarri bat da zehazki PHP modu berean existitzen, baina pixka bat era berean. Hau JavaScript objektu bat da. Eta objektuak daude moduko Suitzako Army Datu egitura bat labana duzula horiek erabili ahal izango edozein gauza egiteko. Hemen, esate baterako, deklaratzen ari gara aurrekontua izeneko aldagai bat. Aldagai hori motaren objektu bat da. Pentsa daiteke C egitura gisa duten gakoak eta balioak ditu. Ikur garrantzitsua da. FB balio bat da, itxuraz stock sinboloa. Koma. Prezioa funtsezko beste kontu bat da, eta bere balioa da itxuraz puntu mugikorreko, edo bat zenbakia orokorrago batean Ikusteko Javascript-a, $ 49,26 neurtzen. Beraz PHP ez dauka - ez dugu PHP objektu ikusi nahiko Hau atsegin, baina ikusiko dugu analogiko bat, izan zen zer? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: Asoziatiboa arrayak. Beraz PHP berriz elkartze-array ditu zeinen sintaxia da inoiz hain arinki desberdinak - plaza parentesi ikusi genuen. Bitxi geziak ikurrak ikusi genuen. JavaScript objektuak ditu, baina hau da, batez ere, desberdintasuna eta bat semantikoa gaur egun sinonimo desberdinak. Hala ere, bat alde batera utzita, PHP ere baditu modu batean objektuak duten Java eta beste hizkuntzak objektu izan in objektuetara bideratutako programazioa. Baina besterik erabiliko dugu horiek datuak oraingoz motetarako. Objektu eta elkartze-array. Honetan bat egin dezake apur bat argiagoa. Hona hemen zergatik objektu bat erabilgarria da. Ikasle batek aldarrikatu nahi baduzu, Zamyla bezala, ahal dugu benetan enkapsulatu beraz, horren barruan hitz egiten objektu bezala giltzak erabiliz gakoak sorta osoa aurretik eta hemen balioak. ID bat, etxe bat, eta izen bat behar dugu Zamyla, puntu eta koma gisa, eta jarraian amaieran ohikoa. Behera hemen ere, hau da, pixka bat ezberdinak, baina aldi berean oso indartsua egun hauetan. Hemen array bat da, eta badakit hori delako ez da karratu parentesi bat sortu goiko eta kortxetea bat behealdean. Eta hau zer datu multzo bat da, Ikusteko Javascript-a idatzi, itxuraz en? Honek itxura sorta bat da Hiru objektu bezala. Eta objektu bat da, ezagutzen dut bakarrik du kizkur giltza delako. Eta konturatu ez dago irekita kizkur giltza da, zenbait gauza, kizkur itxi giltza, koma, ondoren, batzuk gehiago, koma, eta, ondoren, zenbait gehiago. Beraz, hiru argumentu da bi komaz bereizita. Beraz hau hiru objektuen array bat da. Eta objektu horietako bakoitzaren Dirudienez zenbait kide, ikasle edo langile bat ordenatu, bakoitzaren identifikazio batekin, etxea, eta izena. Baina deitzen dut zerbait honetan izeneko JSON - Ikusteko Javascript-a Objektu Idazkeraren. Eta hau datu formatu bat da, benetan hori da, beraz, oso ezaguna eta modan egun horiek gero idatzi aplikazioak erabiltzen duen Facebook API, Twitter API, benetan ia API edozein daude egun hauetan, CS50 en, egin batzuk barne datuak berriro ez da hasi eskola zaharra CSV formatuan. Abisuaren delako CSV super erraza da. Besterik zutabe bereizita da komekin. JSON datuak ematen dizu gehiago metadatuak. Gako bat elkartutako da, balio behin ez dute nahi, besterik gabe, bere gain hartzen duten zeroth zutabean balio bat, zutabe da beste bat, bi zutabe bat da. JSON objektu batean dena da hemen ordenatu auto-deskribatzeko, behin delako fitxategi honetan izen bat du, hitzez hitz aurrean bezala izen kotizatzen katea. Beraz dezagun begirada bat hemen adibide pare. Utzi tresnaren sartu zidan. Eta utzi gure ostalari birtualaren sartu me publiko bihurtu direktorioa. Eta utzi sartzen me Ikusteko Javascript-a direktorioa. Eta egin dezagun aurrera eta ireki dom-0.html, non DOM besterik esan nahi dokumentua objektu eredua. Zuhaitz gauza zein da Aipatu dut lehenago. Eta utzi ondorengo proposatu zidan. Hona hemen web orri bat da, zeinen gorputza nahiko erraza da. Beraz, hemen behera behealdean, nabarituko inprimaki bat daukat. Ikusi dugu horiek baino lehen. Bi sarrera, eta horietako batek ez du bat dauka Izena NAN, horietako mota bat du aurkeztuko du, eta lehen bat testu-mota da. Beraz, hau benetan soinuak nahiko erraza da. Goazen hemen. Goazen Itzuli orri hau hemen. Dezagun localhost sartu, eta joan sartu Ikusteko Javascript-a gure gida, eta joan dom-0, eta hemen, inprimaki hau dugu. Beraz, hori da, antza, Orri hau guztia egiten du. Eremu izen bat du berarekin a Bidali botoia. Baina ez naiz PHP erabili nahi hemen. Dena bezero alboko egin nahi dut Ikusteko Javascript-a beraz hitz honela. Nabarituko dudan hain zuzen ere, eman izena sarrera berezi baten eremuan identifikatzailea, hau da, benetan gorde me denbora pixka bat momentu batean. Eta nabarituko sartu ditut, beste etiketa nire web orrian burua da,  etiketa. Beraz, hau da, zentzu Javascript dela hura bezero-aldean, programazio hizkuntza. Kasu honetan, besterik CSS bezala, jarri dut zuzen nire HTML barruan. Baina konturatu deklaratu dut funtzio bat itxura apur bat PHP bezalako sintaktikoki, baina hau da, benetan Ikusteko Javascript-a, berriz, delako, bere nabigatzailean Bezeroaren aldeko. Bat hartu eta zer hori joan egin, nahiz eta sintaxia batzuk Hemen da berria. Ikusleak: agurtu nahi duenarentzat. DAVID MALAN: kaixo esan behar da joan nahi duenak Orri hau bisitatzen. Beraz, nola? Oharra, beraz, bihurtzen da Javascript-en Han alerta () funtzio bat da. Hau funtzio triste moduko bat oso da Benetan, besterik ez ohi erabiltzaile annoy da. Ez da bat benetan behar duzu erabili normalean, baina azkar eta zikina da Ordena modu zerbait inprimatzeko grafikoan erabiltzaile bat interfazea, nabigatzaile bat bezala. Iragarki hemen ditudan lortu komatxo bakar-katea. Bihurtzen da C, Javascript ez bezala benetan izan bakarrean erabiltzen duzun komatxo artean, eta sinceramente besterik mota da biltzarrean estiloari artean Ikusteko Javascript-a programatzaileak Komatxo erabiltzeko. PHP dute, benetan, pixka bat ezberdinen esanahia. Baina oraingoz, besterik ezagutzen duten arrazoi bakarra da. Ikusteko Javascript-a hasi Konbentzioa ohi da erabili Komatxo, baina erabili izan dugu bikoitza, leku bietan komatxo baita. Beraz, hau interesgarria da. Gogoratzen azken aldiz izan dugu Pantaila marraztu zuen zuhaitz baten irudi non HTML nodoa, eta izan duzu burua nodoa, eta gorputza nodoak, eta, ondoren, testu batzuk. Baina ez zen bat-batean nodo bereziak Oso goian deitu dut dokumentua. Beno, bihurtzen da JavaScript batean, edozein Ikusteko Javascript-a denbora programa bat idatzi arakatzaile batean, sarbidea izango duzu berezi global aldagai. PHP en superglobals espiritua antzekoa, hau da, izeneko minuskulaz dokumentu guztiak. Da egitura bat bezalakoa da, baina hau egitura Era berean, barruko funtzioak. Beraz, C-egitura bat besterik ez ditu datuak normalean. Baina hau objektu bat a aktibatu teknikoki ere ditu funtzioak, Besterik metodo gisa ere ezaguna, horren barruan. Eta funtzio bat deitu ahal izango duzu barruan Objektu hau nahiko literalki bere eginez izena, dot, eta, ondoren, izenaren funtzioa, edo berriro metodoa. Besterik ez da sinonimo bat da, benetan. Eta zer funtzio hau ez du egin? Bere izena eta etxebizitza mota dezakezu. Talde elementu ID arabera. Beraz, hau da, web orria bilatu going, bilatu zuhaitz hori, bila edozein dela ere nodoa, AKA elementu ditu bat Aurrekontu unquote izena NAN berezia. Eta gero, zer naiz joan egin behar dut? Balioa lortzeko barruan noa duten zuhaitz nodoa, eta joan naiz nolabait esateko kaixo izen hori. Beraz, etxebizitza bat hartu, ez dugu, nahiz oraindik ikusi, zer egin gehi ikurrak esan nahi hemen eta hemen seguruenik? AUDIENCE: kateatu. DAVID MALAN: kateatu. Eskubidea, eta horiek dira, besteak Sort diseinatzeko erabakiak jendeak duela urte egin. PHP, kateatu duzu puntuekin gauzak. C, salto hainbat uztai bidez eta deitu strcopy bezalako funtzioak () edo strcat () edo beste funtzioak. Baina JavaScript, pluses erabiltzen duzun. Beraz, besterik ez da hau kateatuz hiru kate - kaixo, izen bat, eta, ondoren, harridura puntu bat. Beraz, noiz eta zergatik funtzioa hau da deitzen nahiz eta? Beno, hartu from asmatzeko Behealdean HTML. Zergatik da agurtzeko () deitua, edo noiz? Itxuraz, onena gisa esan ahal dut, on Aurkeztu, noiz inprimaki hau aurkeztu, Edozein dela ere egin nahi dut komatxorik horien barruan. Eta, zehazki, naiz deitzera joan agurtzeko () eta ondoren, itzultzeko faltsua. Beno, ikus dezagun zer net efektua hemen lehen da. Beraz, aurrera eta idatzi , esaten, Loren, Bidali. Kaixo Loren. Ikus dezagun, agian hau ez da txarra izan bada utzi zortea ezarpena bat. Laguia. Beraz, idazten du, edozein dela ere izendatzeko benetan jarri nuen han. Baina konturatu zer ez aldatuz. URL dom-0.html da oraindik. Han erregistroa ez da. Ez dago bigarren fitxategia ez dago. Ez dago ekintza atributua da. Beraz, zer bueltan faltsua hau da zentzuzkoa egiten? Zergatik naiz agurtzeko deituz () eta ondoren seguruenik faltsua itzultzen? Zer sakatzen duzunean gertatzen da normalean Are dugu formulario bat aurkeztu iragan astean ikusi? IKUSLEEN: [INAUDIBLE]. DAVID MALAN: nonbait doa da, ezta? Doa helmuga URL batzuk etxean. Baina ez dut nahi hemen gertatuko. Nire web orrian erabat izan nahi dut Gmail, non behin zauden bezala dinamikoa Han, egonaldia duzu han. URL ez du bide hori aldatu adierazten du orri osoa birkargatzen da. Baizik eta, besterik gabe, zerbait aldatu nahi dut inprimatzeko zerbait bezala Hemen pantailan. Beno hau garbitu nazazu utzi gora pixka bat. Ireki me ez dom-0, baina utzi ireki me dom-2. Besterik ez, beraz ikusi duzun sintaxia batzuk hemen. Bihurtzen da, zer besterik ez dugu zuen JavaScript gordinak erabiltzen ari da. Beraz, hau da, benetan hizkuntzaren Ikusteko Javascript-a. Zuetako batzuk agian ezagutzen liburutegi bat jQuery izeneko. Beraz jQuery ez da bera Gauza JavaScript gisa. Besterik liburutegi bat benetan smart bat da Guy idatzi eta ezagun, hala nola munduko ia denek hori orain jQuery erabiltzen Javascript erabiltzean. Eta hasiera batean, egia esanda, hura itxura apur bat gehiago críptica. Baina aurkituko dituzu, zuk joan batez ere Han zure web amaierako proiekturako garapena, aurkituko dituzu que esta Gauzak garbitzen hasi eta aurrezten duzu nahiko Kode lerro batzuk. Hargatik begiratu besterik at nola Formulario honetan lan egiten ari da. Nabarituko zer itxuraz kendu nuen nire HTML from? Ez dago on aurkeztu kudeatzailea nolabait esateko. Han atributua ez da. Badakizu delako, zer Ez benetan gustatzen zait? Erortzen garen bezala sentitu nuen ohitura zaharra han sartu. Da bakarrik bezalako sloppy sentitzen hasi zen bai CSS nahasten dituzten HTML, you motatako botatzen ari delako guztietan zehar hainbat hizkuntzatan lekua, era berean honi sentitzen hasten errepide txarra behera joan bezala non JavaScript kodea naiz jarriz barrutik nire Baino HTML ezazu factoring daudelarik. Beraz, ikasgaia hemen. Dom-2.html, hara factoring naiz daudelarik. Eta gauzak apur bat egiten ari naiz ezberdinean. Oraingoz, nire eskuak olatuen joan nintzen zer hau benetan at kanpaia azpian. Baina besterik ez oraingoz bere gain hartzen duten lehen kode line liburutegi honetan izeneko jQuery besterik gabe esan nahi denean dokumentu prest dago, honako hauek egiteko. Web orriak hartu ahal izango duelako denbora pixka bat kargatu. Internet motela Baliteke konexioa, eta spinning zitekeen eta, spinning eta azkenik Honez kargatu du. Kode lerro bat besterik ez dio arte itxaron orri osoa prest dago, dokumentuan prest dago, kode hau exekutatu aurretik. Eta orain konturatu, hau da, ziurrenik gehien erabilgarria lehenengo hartu jQuery urrun. Lerro hau hemen oso antzekoa da espirituz askoz luzeagoa lerro hau hemen. Gordinak JavaScript kodea, ez dago berriz dokumentuaren objektu global bat existitzen dela getElementById izeneko funtzio bat du (), idatzi duten pertsonek jQuery sinplifikatu dela besterik esateko dolarraren ikurra, eta orduan barrutik parentesi bi komatxo jarri, eta, ondoren, hash sinbolo bat eta jarraian jarri identifikazio berezia hartu nahi duzun. Beraz, hau da baliokidea document.getElementById. Bien bitartean,. Submit besterik gabe esan nahi on edozein dela ere inprimaki duzu Oraindik aurkezteko aipatuz ezkerrean joan Animatu eta exekutatu hau. Baina hori da, gaur egun jakin-mina ere. Zeri buruz bitxi zer Azpimarratu dut hemen? Ez da bakarrik mota horretako sintaktikoki berria, zerbait falta da, gainera. AUDIENCE: Besterik izeneko funtzioa? Ez da alerta deitu? DAVID MALAN: Bai. Beno, beraz, Alerta () erorita Hemen, bidezko izan. Baina ez dago bat ere aipatzen da izendatzeko, badakizu bezala, lelo edo zerbait sortu hemen. Eta hain zuzen ere, hau da, ezaugarri bat Ikusteko Javascript-a hori da nahiko du indartsua, baina ere nahiko berria. Eta PHP benetan ditu honek, baita. Utzi aurretik, joan eta egin me zerbait benetako azkar. Dezagun aurrera eta hau jarri hemen. Hau do me. Funtzioa. Dezagun dei handler hau (). Handler funtzio bat nolabait esateko. Zerbait eragiketa batzuk maneiatzen duen. Let me garbitu nire koska. Eta jarri hau hemen. Eta jarri hemen. Yep. Ados. Beraz, gaur egun izeneko funtzio bat daukat kudeatzailea () ez dutela benetan ezagutzen dut oraindik zer egiten du. Besterik ez da oraindik gauza hori dauka. Whoops. Hartu gehiegi. Egin dezagun. Ondo da. Barkatu. Ondo da. Hau do me. Ados. Itxura polita eta zuzen birbidaltzeko orain. Hau do me. Ez hau. Eta Ados. Beraz, gaur egun, dezagun jarri hau hemen baino gehiago. Hegan programazioa ez gehiago. Ados. Beraz, orain, goazen atzera egiteko non istorioa hasi zen. Aurretik, esan dut lerro hau hemen esan nahi du dokumentua prest dago, joan aurrera, eta hau. Zer egin nahi dut? Beno, zehazki, joan nahi dut aurrera eta, honako hau. Exekutatu kode-lerro honetan, eta ondoren, zer egin nahi dut da dei hau funtziona denean inprimakia aurkeztu. Orain, hau da, zer da interesgarria. Hau ez da berez funtzio bat. Ohartu ez naiz jarriz parentesi Hemen ohiko eran. Naiz literalki izeneko funtzio bat pasatzen dut kudeatzailea () funtzioa bestera izeneko submit () argumentu gisa gisa aldagai bat bezala, nahiz eta. Eta hau da, ezaugarri bat JavaScript, funtzio burua da benetan besterik objektuak. Izan ere, benetan besterik ari dira Nolabaiteko aldagaiak. Eta funtzioaren izena da agertzen kudeatzailea (), bertan ezin dut arrazoia ez da pasa ezazu hemen argumentu gisa. Eta hau inprimakia denean esan nahi du rekin demo baten izena da aurkeztu, deitu funtzio hori. Baina orain, hori guztia desegin badut, zergatik orduan zuen agian egiten dut Duela hau une bat? Beno, hau funtzio anonimo bat da. Egia delako, zergatik naiz konturatu nintzen denbora alferrik geratuko bothering bat handler izeneko funtzioa () bakarrik deitu bat eta leku bakarrean baino ez da? Ez badut izena behar, eta ez dut leku bat baino gehiago deitu behar, utzi funtzioa ezartzea besterik en eskubidea bertan behar dut. Eta beraz, JavaScript eta PHP onartzen zer funtzio anonimoa deitzen duten baimendu zehazki hori hemen egin behar dit. Baina zu besterik azalera scratching dugu. Utzi tease pare bat besterik ez azken adibide hemen. Joaten naiz quote.php sartu bada. Iragarki hori da, benetan, PHP bat funtzioa, PHP programa bat idatzi dudala dela espero izeneko HTTP parametroa sinboloa, eta ezin dut pasatzen FB atsegin dute balio. Eta iturburua benetan dugu bada kodea, hau webgune librea da neurketako da Yahoo Ogasun deitu, besterik p-multzo bezala zazpi, eta me itzuli da itxuraz zerbait da formatu ezagun JSON da - Object Notation Javascript. Objektu bat besterik ez da. Formula giltzak nabarituko, komatxorik, puntuek, eta koma da. Orain berriz, hau da, oso politak. Ziurrenik dut programazio bat erabili daitekeelako URLak sortzeko hizkuntza hori dinamikoki itxurarik, ezta? Aldatu ahal izango dut hau Google eta itzultzeko Google-en stock $ 1,017.55 prezioan. Beraz, ikus dezagun ezin dugu erabili orain. Goazen ajax-0 nirekin hemen, eta horrek honako itxura. Duen web orri bat da botoi bat formulario bat. Dezagun hemen aurrera eta idatzi YHOO in Yahoo-ren stock sinboloa egiteko, sakatu Lortu Aurrekontua, eta orain konturatu Ahaztuak dut 32,86 rekin alerta bat. Let me benetan bertsio dotore bat joan orrialde honetan, bi bertsio, eta idatzi demagun Microsoft, MSFT. Talde aurrekontua. Eta orain konturatu, alerta gabe. Nabarituko prezioa non esaten zehazteke dago? Ez dago adibiderik errazena duten zer Gchat ukituak, eta Facebook Berriketan, eta Gmail, eta beste hainbat webgune dira benetan egindako eginez Web orri aldatuz. Iragarki hau. Utzi orria berriz kargatzea me. Ireki me Chrome Inspector. Goazen elementu me fitxa behera hemen. Orain konturatu handiago badut behera hemen eta ireki honek gora, konturatu da nire HTML DOM - dokumentuaren objektu-eredua. Hau nire HTML da. Baina orain konturatu, nik joan arren Pixka bat gogorra izan da ikusteko bai aldi berean leku, idatzi dut FB bada Hemendik gora, kontuz beheraino pantailaren bakarrik. Benetan aldatzen nire HTML hegan. Eta hau nahiko besterik gabe egiten da honen antzeko zerbait eginez. Ireki dut ajax-2 bada, abisua ezartzeko zerbait bezain sexy , hori nahiko itsusia baldin bada ere, baina hori bezain sofistikatua funtzionalki, batzuk ditu Behealdean HTML. Baina nabarituko etiketatu erabiltzen dut. Ez dugu erabiltzen honen aurretik, baina hau da, bezalako bat, baina ez du behartuko linea berri baten gainean dena. Besterik eskualde laukizuzena Egiten lerro berean, funtsean. Nabarituko eman dut prezioa ID bat. Eta bihurtzen da bera erabiliz JavaScript liburutegia, funtzio bat daukat aurrekontua izeneko () duten deitzen direnean Inprimakia aurkeztu da. Eta zer egiten ari naiz da hau. Aldagai bat deklaratzen dut JavaScript url izenekoa, balioa aurrezteko quote.php? ikur =. Beste era batera esanda, ni neu hasten naiz HTTP eskaera bat prestatzeko, eta, ondoren, I kateatuz naiz duten kalera plus batekin dena delakoa izena duen elementua sinboloa da, hau abisua da testu eremua hementxe behera. Beraz, besterik gabe gustatuko formak izan dugu iraganean. Eta gero bihurtzen da jQuery batean, zuk deitu. val (), que val baten deiak funtzio, balio funtzio bat, hori lortzen edozein dela ere, erabiltzaileak idatzitako du sartu Eta ondoren sareko trafiko guztia Hori gertatzen da hau. $. GetJSON. Eta bat alde batera utzita, dolarraren ikurra da idazkera azkarra besterik. Benetan jQuery.getJSON da. Get me JSON URL honetatik, eta noiz eskaera bueltatzen, dei hau funtzioa eta pasatu argumentu gisa Zerbitzaritik back, edozein dela ere iritsi zen. Beste era batera esanda, beraz, atzera jo nuen, nahi izanez nabigatzaileak, eta joan I itzuli quote.php, zer nire nabigatzailea egiten ari da lortzean datuen zatia hau. Eta joan naizenean, web orri honetan hemen, nabarituko sarera beharrean gara bada fitxa eta garbitu, eta, ondoren idatzi GOOG Google antzeko zerbait eta Talde Aurrekontua, nabarituko orria ez da aldatu. Baina HTTP eskaera bat egin zen, eta zer itzuli zen, hemen aztertuko dugu at bada erantzuna JSON sorta oso bat da azkenik sar dugula ekin linea sinple hau hemen. Datu da, zer ahaztuak zen zerbitzariak. Prezioaren izena da Giltza buruz zaintzen dut. Beraz data.price ematen dit horrek. Orain berriz, eta honen azken adibidea da. Oraindik gehiago egin dezakezu orri batera. Bat benetan, ondo bi. Ekarri ahal izango dugu atzera etiketatu, hau gogoratzen baduzu. Hori da JavaScript. Hori egin ahal izango dugu. Oso zirraragarria. Utziko dugun cliffhanger baten ondorioz. Baina gehiago excitingly, ahal duzun hau bezalako gauzak egin. Joaten naiz geolokalizazio-1 nahi izanez gero, bihurtzen da Chrome daki garela at latitude longitude 42,37. -71,10. Beraz, ez da, nahiz eta han gehiago zure eskura. Baina datorren astean horretan gehiago. Ikusiko duzu astelehenean.