>> DAVID Malan: Kull dritt.
Dan huwa CS50, u dan huwa l-aħħar ta 'disa' ġimgħa.
Huwa kien whirlwind fuq l-aħħar ftit jiem.
U l-problema stabbilita seba ', jekk int irkoppa fond fis dan, realizzata hemm pjuttost
bit ġdida li fil hemmhekk.
Imma ejja ara jekk aħna ma tistax biċċa kollox flimkien hawnhekk fil-qosor
qabel dakinhar veering off fil għadhom Stat direzzjoni u tara
fejn inkella nistgħu mmorru.
>> Allura s'issa, konna tkellimna dwar HTML.
Imxejna tkellem dwar CSS.
Imxejna tkellem dwar PHP.
You ħadthom bdew iġarrbu SQL.
Illum, aħna ser nitkellmu daqsxejn dwar JavaScript.
Imma kif do kollha ta 'dawn dispari lingwi joqogħdu flimkien?
>> Allura aħna tkellimna aħħar ġimgħa dwar il- kunċett ta jkollhom server.
Mela ejja biss jiġbed dan ir-rettangolu bħala web server hawn.
U web server jservi żgur files.
U xi wħud minn dawk il-fajls jista 'jkun fajls HTML.
Allura waħda mill-affarijiet li web server jistgħu bżiq out jista 'jkun fajl li
aħna ser biss jiġbed bħal dan fihom xi HTML.
Allura f'termini laymans, dak ma HTML let you do?
>> UDJENZA: Page tfittex sbieħ.
>> DAVID Malan: OK, tagħmel paġna ħarsa sbieħ, għalkemm I think stajt ippruvati
li mod ieħor.
Allura HTML ma tavżak jistabbilixxu paġni strutturalment, u li jippermettilek li
tip ta 'estetikament mark up paġna, mark up kontenut statiku, sabiex inti
jistgħu mbagħad tarah ma 'web browser.
>> Iżda li l-ċavetta.
Huwa kontenut statiku.
Tikteb, inti isalvawh, u allura inti vapur.
U l-web server imbagħad jservi it up għall-viżitaturi tiegħek.
>> Iżda aħna stylize affarijiet jużaw differenti lingwa għal kollox.
Bdejna biex tuża attribut stil dwar ċerti tags.
U l-attribut istil let us stabbiliti affarijiet simili daqs tat-tipa u kulur.
U inti probabilment ħadthom bdew jiskopru, jew inti hekk se għal finali
proġetti potenzjalment, iżda oħrajn proprjetajiet li tista 'tuża fil-CSS.
U hekk f'termini laymans, dak verament allura ma CSS tagħmel?
Dawk huma biss eżempji tiegħu.
X'tikkontrolla tavżak tagħmel dan HTML ma jidhirx li minn dak
Rajna s'issa?
>> UDJENZA: Iddefinixxi stili mill yourself.
>> DAVID Malan: Iddefinixxi stili mill yourself.
Allura jiddefinixxu affarijiet simili klassijiet kif inti jistgħu ikunu ltaqgħu magħhom, jew unikament
jidentifikaw nodes 'dokument sabiex li inti tista stylize lilhom.
Iżda aktar speċifiku, I d ngħid li CSS verament ihallik jieħdu l-affarijiet l-
aħħar mil u tippermetti li inti tispeċifika ħafna b'mod aktar preċiż l-estetika,
billi HTML għall-aktar parti tikri inti istruttura paġni tiegħek.
>> U anki jekk hemm xi nuqqasijiet, bħall rajna l-tikketta għall-
intestatura tag, li madwar jitkellem magħmula affarijiet kbir u ambizzjuz.
Li definizzjoni pretty ġeneriku tal-lametta - kbir u ambizzjuz.
X'inhu d-daqs tat-tipa huwa li?
Liema kulur huwa li?
Kif kuraġġużi huwa li?
U CSS ihallik aktar fin affarijiet intunazzjoni bħal dik.
Kif ukoll tqassim, kif xi wħud minnkom raw.
>> U franchement, CSS huwa daqsxejn ta 'lingwa messy.
Huwa qawwija ħafna li inti tista 'tagħmel litteralment kwalunkwe websajt li inti ħadthom
jidhru fuq il-web illum magħha, iżda huwa tip ta 'uġigħ fl-għonq.
U xi wħud minnkom banged ras tiegħek kontra l-ħitan diġà biss biex jagħmlu
xi ħaġa stupid bħal ċentru menu fuq problema sett seba jekk inti ħadthom gotten
dak il-punt diġà.
>> Iżda realizzata, dawk l-affarijiet tikseb aktar faċli maż-żmien.
Tibda l-avviż mudelli.
U għal darb'oħra, Google se tkun ħabib tiegħek għad-diversi modi li bihom tista '
issolvi dawn it-tipi ta 'problemi.
>> U jien DARE ngħid CSS, HTML u aktar ġeneralment, inti tista 'ssolvi l-problemi fil-
ħafna aktar modi, li kollha jistgħu ħafna ukoll tkun korretta, milli inti tista '
fil xi ħaġa simili C, anki issa PHP, JavaScript jew.
Hemm biss differenti ħafna modi biex jistabbilixxu affarijiet out.
>> Iżda dan bdiet tikseb messy, għidna.
Just tip ta 'taħlit HTML tiegħek u CSS tiegħek mal-attribut istil kien
a sloppy ftit.
U hekk aħna minflok qal, tip ta ' astratt jitkellem, li inti għandek
inqas tibda fattur out CSS tiegħek probabbilment.
Mhux attributi stil tiegħek, iżda mill-inqas użu l-tikketta istil ġewwa dak
parti tal-paġna web?
>> UDJENZA: Kap.
>> DAVID Malan: Fir-ras.
Sa issa, aħna biss kellhom it-titolu up hemm, imma int tista 'wkoll żżid stil
tag, u inti tista 'tpoġġi CSS tiegħek bejn wieħed u ieħor jitkellem lejn il-quċċata tal-paġna.
Iżda mbagħad aħna ħa l-affarijiet pass ulterjuri u aħna f'fatturi li taf aktar
fis-fajl separat.
>> U hekk dawn iż-żewġ fajls kienu b'xi issa marbuta.
U fil-fatt kien il- tag li ma li.
U dak kien wieħed mill-ġenerali motivazzjonijiet għall factoring barra CSS tagħna
l-aktar?
>> UDJENZA: Użu mill-ġdid.
>> DAVID Malan: Użu mill-ġdid.
Dritt?
Inti tista raw fil-p-set seba diġà li ħafna tal-paġni, il-
jixtru paġna, il-paġna tal-bejgħ, il- paġna portafoll, huma probabbilment
strutturati kemmxejn simili.
Hemm logo finanzi CS50 fil-quċċata sakemm inti iddeċidejt li jibdlu.
Hemm footer fil- qiegħ tal-paġni.
U CSS jippermettilek mbagħad għall-fattur out hija fis fajl separat b'tali mod li jekk
inti trid tibdel xi ħaġa globalment madwar is-sit kollu tiegħek, inti tista 'verament
biss bidla fil-post wieħed.
>> Iżda hemm prezz li inti tħallas potenzjalment billi fatturati l-
CSS minn file HTML tiegħi ġo separata fajl referenzar ma 'l-
tag, li rajna nhar it-Tnejn.
Liema jista 'l-tnaqqis ikun ta' dan?
Ħsieb lura ġimgħa ilu li meta nkunu jitkellem dwar HTTP u TCP / IP u kif
l-internet xogħlijiet.
Xi ħaġa fuq hawn?
>> UDJENZA: Huwa jieħu aktar ħin.
>> DAVID Malan: Huwa jieħu aktar ħin.
Għaliex?
>> UDJENZA: [inaudible].
>> DAVID Malan: Yeah.
Għalhekk forsi jieħu ftit aktar ħin.
Għaliex wieħed, il-CSS huwa ovvjament mhux fl-istess fajl.
Allura issa inti għandek tagħmel ma wieħed, iżda żewġ talbiet.
U kull wieħed minn dawk it-talbiet kif rajna fil- Chrome fl-hekk imsejħa Ispettur,
u ħarisna lejn il-tab netwerk, kull ta 'dawn il-fajls jeħtieġ HTTP wieħed
talba, li rajna jieħu xi ammont ta 'ħin.
Issa, forsi mhuwiex ħafna.
Forsi huwa biss 20 millisekondi.
Forsi huwa 200 millisekondi.
>> Imma naħseb dwar page bħal Facebook, jew CNN, jew Google, li huma ħafna
akbar mill-eżempji konna ħares lejn s'issa.
Dawk il-paġni jista 'jkollhom għexieren ta' fajls, kull wieħed minnhom jistgħu jeħtieġu
download ta 'fajl.
Sabiex l-affarijiet jistgħu potenzjalment tibda jmajna.
>> U speċjalment f'dawn il-jiem meta aħna kollha mowbajls fil-bwiet tagħna u
konnessjonijiet internet bil-mod, li biex stenna ftit millisekondi aktar, ftit
aktar millisekondi għall addizzjonali fajls jista 'attwalment jiġi bil-mod.
Latency hija l-kelma li tiddeskrivi l- tip ta 'stennija li inti għandek li inti
esperjenza meta stennija għal xi biċċa informazzjoni.
>> Iżda hemm rasu.
Għalhekk mhuwiex kull tip ta 'a -
fatt huwa daqsxejn ta 'seesaw hawn.
Negattivi issa, imma dak browsers tista 'tagħmel jekk dawn qed intelliġenti sabiex jevitaw
jkollhom bżonn jitolbuha-istess styles.css fajl mill-ġdid jista 'jkun li jagħmel xiex?
>> Cache dan.
Allura caching -
C-A-C-H-E -
ġeneralment ifisser hawn biss biex isalva l- fajl inti mitlub-ewwel darba, u
mbagħad tiċċekkja cache tiegħek għaliha.
Iċċekkja int tip ta 'kontenitur tal-ħażna, u jekk diġà għandek
kopja ta 'styles.css, anke jekk xi oħra paġna fil-p-set, jew kwalunkwe websajt,
jitlob mill-ġdid, biss biex jagħtu l- utent li kopja istess Cached.
Ma jolqot li jitolbuha.
>> Negattivi hemmhekk, għalkemm, kif xi wħud minnkom jkunu tripped fuq fil-p-set.
Jekk inti tagħmel bidla fuq is-server u tmur lura għall-browser u int
rikarigu, xi kultant il-browser ma inti a favor u ma jolqot
mill-ġdid tniżżil fajl styles.css tiegħek għaliex, jaqgħu fuq, liema huma l-odds
li dawn l-istili li Facebook użi huma se jibdlu siegħa sa siegħa jew
jum għal jum?
Huwa pjuttost baxx.
Huma jistgħu jinbidlu maż-żmien, iżda mhux mill-minuta jew mill-siegħa.
>> Allura trick, biss FYI web meta tagħmel iżvilupp, huwa spiss żomm il-
bidla ewlenija għall-eżempju u mbagħad ikklikkja rikarigu fil-browser tiegħek, u li se
tipikament tgħid il-rikarigu browser kollox, anki jekk diġà għandek
fil-cache.
Għalhekk għal darb'oħra, upsides u negattivi, iżda kollha kemm huma
finalment disinn deċiżjonijiet.
>> Allura issa, aħna ma biss tispiċċa l-istorja hawn.
Jekk I issa jmorru lura u lura u lura u lura, bdejna biex jintroduċu mhux biss
HTML, imma PHP.
Allura f'termini laymans, dak ma PHP jgħidilna jagħmlu?
>> UDJENZA: [inaudible].
>> DAVID Malan: X'hemm li?
>> UDJENZA: Introduċi loġika fil-kodiċi.
>> DAVID Malan: Yeah, jintroduċu loġika fid-kodiċi tiegħek.
Allura huwa lingwa ta 'programmar vera ma loops, u varjabbli, u
funzjonijiet, u kondizzjonijiet, u kollha ta ' l-affarijiet aħna kont qed tuża mod lura
meta sa mill-bidu.
U PHP, Rajna, jistgħu jintużaw jew fil-linja tal-kmand - huwa
ma għandhomx għalfejn ikollhom xejn x'jaqsmu ma mal-web, anki jekk dan huwa
verament oriġini tagħha u dak li hemm tendenza tkun tajba fuq u li jwasslu għal -
iżda tista 'tuża PHP sempliċement min-natura tal-fatt li hija għandha print ()
funzjoni, u printf () funzjoni, jew eku () funzjoni.
Hemm għenieqed ta 'modi kif inti jistgħu jistampaw test ma PHP.
>> Għalhekk, inti tista 'tuża din il-programmazzjoni lingwa output eżattament
dak li konna nitkellmu qabel.
Tista dinamikament jiġġeneraw HTML tiegħek.
Forsi mhux kollha ta 'dan.
Forsi inti affarijiet kodiċi iebes, bħall- header, u l-footer, u l-logo,
u folji stil tiegħek, u kollha ta 'dak.
Iżda għal xi ħaġa bħal-p stabbiliti sebgħa, fejn int manipulazzjoni ħażniet u
turi portafoll tal-utent, li huwa se jibdlu dinamiku, inti tista '
żgur jużaw PHP u l-loġika tagħti inti bħala lingwa ta 'programmar li
output dinamiku sottogruppi tal-paġna.
>> Allura meta tkellem dwar websajts dinamiku, jew programmar web, li
dak li int verament jitkellem dwar.
Bl-użu ta 'lingwa bħal PHP, jew affarijiet imsejħa Python, jew Ruby, jew Java, jew
għadhom lingwi oħra, għall-mistoqsija database spiss, jew server ieħor, u
imbagħad dinamikament bżiq out HTML.
>> Issa r-riżultat aħħari, bħala twarrib, huwa li l-HTML tal-websites l-iktar,
inkluż p sett seba tiegħek, huwa probabbilment se jkun mess enormi jekk
inti tħares lejn is-sors kodiċi fil-browser.
Li mhux big deal.
F'dan il-punt, meta aħna kura dwar stil, aħna kura dwar il-
Jittieħed li tikteb.
Aħna mhux se kura dwar l-għalf li dak outputs kodiċi tiegħek.
Allura ma joqogħdu jinkwetaw dwar indentazzjoni hawn jekk huwa PHP li l-
attwalment outputting Jittieħed.
Wara kollox, il-browser mhux se kura, u l-bniedem mhux se tkun qed tfittex
fis-sors xorta waħda.
Aħna l-istaff, per eżempju, kieku tkun tħares lejn PHP tiegħek.
>> So let me jagħtu eżempju ta 'malajr issa ta 'għaliex inkella dan jista' jkun utli.
So franchement, I ma tistax tiftakar l-aħħar ħin I użati C biex isolvu problema fl
-dinja reali.
Kien probabbilment fl-iskola graduate meta I meħtieġa biex jużaw lingwa li
kien livell pjuttost baxx u tatni l- opportunità li jagħmel xi ħaġa għolja ħafna
jwettqu biex verament isalva CPU kemm ċikli I kif jista ', fil-parti kbira
minħabba I kienet qed tuża settijiet ta 'data kbar, u kull ċiklu CPU magħduda.
U franchement, anke fl-affarijiet bħal telefowns dawn il-jiem u tagħmir ieħor
fejn inti ma pjuttost jkollhom kemm memorja u inti ma pjuttost jkollhom bħala
CPU ħafna, jużaw lingwi aktar mgħaġġel għadu attraenti.
>> Imma fid-dinja reali, meta inti biss tixtieq li tarmi xi programm flimkien biex
janalizzaw xi data, jew inti ħadthom miġbura mazz sħiħ ta 'reġistrazzjonijiet għall-
xi grupp student u inti tixtieq li ħafna malajr awtomat jibgħat emails
wieħed wieħed għal kull wieħed minn dawk reġistranti, int ser jilħqu għall-
lingwa f'livell ogħla minn C biex ngħidu hekk.
Xi ħaġa bħal PHP jew Python, jew Ruby, jew xi oħrajn nofs tuzzana li jeżistu
dawn il-jiem.
Iżda dawk tlieta huma probabbilment l-aktar trendy dritt issa.
>> U dak li dan ifisser huwa li inti tista 'tiftaħ up editur test bħal gedit jew
xejn aktar ieħor u mbagħad biss tibda miktub kodiċi mingħajr ma joqogħdu jinkwetaw
dwar kompilazzjoni, mingħajr ma jkollhom verament tinkwieta dwar ġestjoni tal-memorja,
jżomm f'moħħu li għalkemm ftit sloppiness eventwalment se terga 'lura
li gidma inti jekk is-sett tad-dejta gets akbar jew l-problema gets big.
Imma din xi tfisser għan us hija s-segwenti.
>> Let me imorru quddiem u run speller minn problema stabbiliti sitt.
Allura dan huwa l-implimentazzjoni bbażata fuq trie tiegħi I li jintużaw fuq il-big
board fejn I titwettaq mhux hekk ukoll.
Aħna ser terga 'lura fi żmien ġimgħa u tirrevedi dawk li ma jispiċċaw atop-
board big fl-aħħar lecture tagħna.
Iżda għal issa, let me imorru quddiem u biss run tiegħi soluzzjoni fit-test, u aħna ser nagħmlu
il-Bibbja James King, u here we go.
>> Għalhekk dawn huma kollha ta 'l-allegatament kliem misspelled minn
il-Bibbja James King.
U l-implimentazzjoni tiegħi ħa nofs sekonda b'kollox.
Allura mhux wisq ħżiena fuq dan partikolari kompjuter.
Imma naħseb ta 'kemm kodiċi I kellu jikteb.
Aħseb kemm kodiċi kellek jiktbu.
Aħseb kemm sigħat inti jintefqu fil- D-sala jew dorm tiegħek jew fejn
attwalment kodifikazzjoni up din is-soluzzjoni.
>> Ukoll, jekk I attwalment ikollhom livell ogħla lingwa bħal PHP, jieħdu nota ta '
dak I tista 'tagħmel hawn.
L-ewwel, ejja ngħidu li dan huwa minflok kodiċi ta 'distribuzzjoni tiegħek.
Dan huwa fajl imsejjaħ speller.
Huwa disponibbli bħala parti mill-lum kodiċi ta 'distribuzzjoni.
U jien ser mewġa naħa tiegħi l-aktar tad-dettalji, iżda dan huwa attwalment
eżempju interessanti ta 'kif inti tista port lingwa
bħal C quddiem għall PHP.
I litteralment fetħet żewġ twieqi test, waħda mal-verżjoni C tiegħi ta 'speller.c,
u I biss beda jagħmel traduzzjoni tagħha fil tiegħi ras għal PHP u tajping bl-użu
-funzjonijiet ekwivalenti eqreb.
>> Allura xi wħud minn dawn l-affarijiet huma differenti.
Rajna aħħar darba li PHP ma jużax jinkludu fil pjuttost l-istess mod.
Hija tuża jeħtieġu tipikament, għalkemm jinkludu ma jeżistu.
Iddefinixxi hija ftit differenti minn # Jiddefinixxu C, iżda li
kif nagħmlu kostanti.
$ Argc jirriżulta teżisti fil-PHP, hekk aħna stajt tidher li qabel.
Dawn huma biss varjabbli, kollha ta ' li tibda bil sinjali dollaru.
Recall dawn huma biss mazz tal-punti varjabbli.
>> Allura storja twila fil-qosor, inti qed jilqgħu biex flip permezz ta 'dan jekk kurjuż, dan huwa
kważi konverżjoni linja-għal-linja tal- Verżjoni C tal speller.c fis PHP.
U inti tista 'tagħmel dan mill-ġdid għal nofs tużżana lingwi oħra.
>> Imma x'hemm interessanti hija din.
Jew x'hemm franchement diżappuntanti hija din.
Let me imorru quddiem u tip dwar dictionary.php, u t-talba li jien
se jmorru 'l quddiem u jimplimenta mill-ġdid problema stabbiliti sitt hawn.
>> Mela ejja tipproponi ewwel li f'dan il- fajl, li ser jiġi implimentat
PHP, so let me tiftaħ tags tiegħi bħal dik.
Ħalli nagħtikom myself globali varjabbli, $ daqs gets żero.
U jien ser jagħti myself tabella hash.
I ser tuża tabella hash għal dan il-ħaġa.
Kif nista 'niddikjara tabella hash fil-PHP?
Magħmul.
OK.
>> Bracket hekk miftuħa parentesi magħluqa jirrappreżenta dak fil-PHP, kif aħna stajt tidher?
Firxa, iżda firxa li jistgħu jkun firxa assoċjattiva.
Firxa assoċjattiva hija struttura data li
jassoċja keys b'valuri.
>> Issa fl-aktar sempliċi numerikament indiċjati array, dawk ċwievet huma dak?
Żero, wieħed, tnejn, tlieta, id-dritt?
Iskola antika Jittieħed lura minn C. Iżda tista ' wkoll tkun kordi bħal foo, u bar,
jew Maxwell, jew kwalunkwe string tali.
So I tista 'lieva li fi ftit mument.
>> Let me imorru quddiem u jiddikjaraw funzjoni simili -
ejja do tagħbija () l-ewwel.
Allura tagħbija funzjoni ().
U PHP huwa xi ftit differenti f'dik inti litteralment tip funzjoni, imma int
ma tip għal tip ta 'ritorn.
Jien ser imorru quddiem u jgħidu li l- tagħbija () funzjoni għandha tieħu fil
argument dizzjunarju $, just bħal verżjoni C għamlet.
Jien tagħmel dan mill-memorja.
>> U nipproponi li jien se tagħmel dan.
Jien sempliċiment se jagħmlu foreach.
Jien ser sejħa funzjoni msejħa fajl (), li jgħaddi fl-isem ta 'dik
fajl, li hija l-varjabbli $ Dizzjunarju bħala $ kelma.
U mbagħad ġewwa ta 'tiegħi għal loop hawn, jien se jmorru quddiem u jaħżen fil tiegħi
$ Tabella li $ kelma gets veru.
Magħmul.
Oh, stenna.
Magħmul.
OK.
>> Li hija t-tagħbija () funzjoni jiġifieri fil PHP.
Issa, għaliex ma li jaħdmu?
U jien tip ta 'qerq hawn.
>> Għalhekk, wieħed, foreach rajna qosor aħħar darba.
Dan ifisser biss li inti tista 'jtenni fuq firxa mingħajr bothering ma 'i
u n u plus plus, u kollha ta 'dak.
Dizzjunarju huwa naturalment l-isem fajl, xi ħaġa simili kbar jew żgħar, it-tnejn
dizzjunarji aħna użati aħħar darba.
File hija funzjoni li jiftaħ test file, jaqraha fid linja b'linja, u
idejn inti back firxa enormi, kull wieħed mill-elementi li hija
linja minn dan il-fajl.
Allura dak hu l-kombinazzjoni ta 'fopen, u fread, u filwaqt li loop, u fclose,
u kollha ta 'dak.
Finalment, kif kelma ifisser biss dak l- varjabbli jien ser ikollhom aċċess għal
fuq kull iterazzjoni f'dan loop.
>> Għalhekk fil-qosor, dan liner waħda hawnhekk tfisser tiftaħ il-fajl li ismu huwa
dizzjunarju, il-varjabbli, iterazzjoni fuq huwa linja b'linja, u kull darba ikollok
linja, aħżen fi varjabbli imsejjaħ kelma, u mbagħad tagħmel xi ħaġa ma kelma.
What do I trid tagħmel?
I tixtieq li tqiegħed kelma fis tabella hash tiegħi.
>> Well, I tista 'tpoġġi xi ħaġa fil tiegħi hash tabella bħal fil C
jużaw parentesi kwadri.
Dan huwa l-isem għall-mejda hash tiegħi.
Jien ser indiċi f'dak hash tabella li tinsab fil dan il-post.
Allura mhux parentesi żero, ma parentesi wieħed.
Quote Bracket xi ħaġa unquote, tkun xi tkun din il-kelma hija.
U bħad jista 'jkollok tiegħek trie xogħol tabella hash, inti biss taħżen
effettivament Boolean, impliċitament jew espliċitament.
Magħmul.
Jien ħażna tal-valur veru.
>> Issa hemm koppja ta 'affarijiet Jien qtugħ kantunieri hawn fuq.
Teknikament, hemm għaddej li jkun linja l-ġdida annoying, / n, fl-aħħar ta '
kull wieħed minn dawn il-kliem.
So I għandhom probabbilment sejħa funzjoni PHP imsejħa CHOP (), li se
pjuttost litteralment CHOP li off.
And I attwalment ħtieġa li jagħmlu ħaġa waħda oħra.
I għandhom probabbilment inkrement daqs fuq kull iterazzjoni, hekk jien iżżomm rekord
globalment ta 'dak li hu.
U franchement, u dan huwa wieħed mill- aspetti stupider ta 'PHP, jekk int
użu ta 'varjabbli globali, għandek bżonn jiġifieri b'mod espliċitu li int.
Hekk jien ser fil-fatt it-tip fil globali $ Daqs, $ tabella globali, u issa
funzjoni tiegħi hija kompluta.
>> Allura mhux daqshekk sempliċi bħal qabel, iżda probabbilment ħa inqas ħin mill-C
verżjoni, forsi?
OK.
>> Allura issa ejja tagħmel il-verifika () funzjoni.
Ejja naraw jekk dan l-inqas ħa l- siegħa fuq il-għan li hija ħadet us C. So
let me imorru quddiem u jiddikjaraw check bħala funzjoni.
Jieħu fil argument kelma, li hija ser jiġu minn speller.
U jien biss se tivverifika jekk il- isset varjabbli li ġej, tabella
strtolower bracket tal-kelma -
ejja bilanċ kollha ta 'parentesi tiegħi -
mbagħad jirritornaw veru.
Else -
li kien verament l-hard parti ta 'dan il-programm.
Else, ritorn foloz.
Magħmul.
C'est verifika ().
>> Issa, għaliex ma dan ix-xogħol?
Well, waħda I għadda fil-kelma, li hija sekwenza.
Tnejn, jien iċċekkjar ġewwa tal-hash tabella, li sejjaħ $ tabella.
Jien tisfurzah biex zghar billi ċċempel funzjoni pjuttost simili tolower () fil-
C, iżda din ma l-kelma sħiħa, mhux karattru wieħed.
U jekk dan huwa stabbilit, fi kliem ieħor hemm hija valur stabbilit, fi kliem ieħor,
jekk huwa minnu, allura iva, din hija kelma.
Minħabba I poġġih hemmhekk b'tagħbija ().
U jekk le, jien ser jirritorna falza.
>> Issa l-oħrajn huma faċli.
Daqs funzjoni (), kif nista 'nagħmlu dan?
I essenzjalment tagħmel ritorn $ daqs.
Imma I teknikament bżonn tagħmel dan ħaġa annoying.
U fil-fatt up tisma, I kien qtugħ kantuniera wieħed wisq.
I really bżonn tagħmel $ tabella globali.
>> Imma dak li qal, jħottu).
Jħottu () hija aqwa.
Jħottu funzjoni ().
Kif nista jridu jimplimentaw jħottu ()?
Magħmul.
OK.
>> Allura jħottu (), il-ġestjoni tal-memorja huwa kompletament tittieħed kura ta 'għalik fil-
xi ħaġa bħal PHP u ħafna ta 'lingwi ta' livell ogħla.
Allura dan huwa aqwa.
Bħall għaliex l-infern ma moħli-passat tmien ġimgħat flimkien dwar il-kitba C
apparentement verament bil-mod, tassew ħin problemi jikkunsmaw bil għexieren ta 'sigħat
xogħol taħt ċinturini tagħna?
>> Ukoll, għal ħaġa waħda, dan jista 'xogħol multa għall-programmi żgħar.
Huwa ċertament titħaffef tiegħi iżvilupp ta 'żmien.
Imma ejja naraw x'jiġri fid-dinja reali.
>> Let me jmorru fis dan id-direttorju fil-tieqa terminal.
Hemm speller.
U tinnota bħala twarrib, u inti tista ' ltaqgħu ma 'dan il-problema stabbiliti
sitta jew problema stabbiliti seba.
Inti ma jkunux strettament għandekx jispiċċaw fajls PHP ma. PHP.
Jekk inti tpoġġi linja bħal dik l-ewwel wieħed fuq nett, li l-linja speċjali
ta 'sintassi li essenzjalment ifisser jsibu il-programm imsejjaħ PHP u jużaha biex
jinterpretaw dan il-fajl.
Allura issa l-ebda waħda verament jaf li Niġri programm PHP.
I tista 'taħdem biss daqslikieku kienu xi ħaġa kkumpilati C.
>> Iżda hawn l-ħaġa.
Attwalment, ejja tagħmel dan mill-ġdid.
Dropbox/pset6 /.
Hemm speller.
OK, 0.44 sekondi.
Hija marret aktar mgħaġġla f'dan il-ħin.
>> Issa ejja jmorru fil-verżjoni PHP.
Touch sbieħ.
Iżda biss jaħsbu kif ħafna ħin I ffrankati fuq ħinijiet tal-uffiċċju.
OK.
>> Allura 3.59 sekondi, li attwalment ma ħoss preċiża jew.
Iżda dan għaliex storja twila fil-qosor, meta int stampar ammont kbir
ta 'għalf għall-iskrin, li innifsu inaqqas affarijiet isfel.
Dak li verament ħa l-CPU fil- appliance kien 3.59 sekondi, b'mod
B'kuntrast ma 'C, li ħa 0.44 sekondi aktar reċentement.
Li verament ordni ta ' kobor differenti.
>> Għalhekk, fejn huwa dak il-prezz li ġejjin minn?
Għaliex huwa tant kajman?
Għaliex ma PHP twettaq tant fqir?
Danielle?
>> UDJENZA: Inti ma verament jużaw tabella hash.
>> DAVID Malan: I ma verament jużaw tabella hash.
So I tip ta 'ma.
Allura huwa firxa assoċjattiva.
Ħafna probabbli jekk il-poplu fil PHP huma verament smart, huma użati minn taħt il-
hood tabella hash attwali implimentata fil xi ħaġa bħal C jew C + +.
Imma.
Yeah.
>> UDJENZA: [inaudible].
>> DAVID Malan: Yeah.
Allura kull wieħed mill-funzjonijiet I kiteb issa - attwalment, tista 'tgħid li għal darba oħra
ftit louder?
>> UDJENZA: Kull wieħed mill-funzjonijiet li Inkludejt għandha ħafna aktar sħiħa
kapaċità minn -
>> DAVID Malan: Allura li ħafna minnu.
Hemm ħafna aktar overhead li aħna qed mhux verament jaraw billi tiffoka biss fuq
dictionary.php, li I biss kiteb.
B'kuntrast, hemm interpretu kollu għaddejjin fl-isfond.
Tabilħaqq, meta I dam dan il-programm, huwa ma kien għaddej żerijiet kkumpilata u dawk
maħsuba għall-CPU Intel tiegħi.
Pjuttost, huwa kien għaddej linja b'linja Kodiċi PHP li jistenna eżattament
simili aħna ittajpjat.
U hekk meta tuża lingwa interpretat, inti
fatt iħallsu dan il-prezz.
Huwa ser tieħu ftit ħin biex taqra fajl tiegħek top għal isfel, xellug għal
dritt, u mbagħad tesegwixxi kull line u għal darb'oħra.
>> Issa fir-realtà, speċjalment fuq il-web, inti tista 'attwalment iħaffu dan il-proċess
billi caching-riżultati tal- Kodiċi PHP tkun interpretata.
U li jagħmel sens fuq il-web, għaliex jekk inti ma jkunux utent wieħed bħal
me hawn, iżda 1,000 jew 10,000 utenti, allura forsi l-ewwel darba li l-fajl huwa
aċċessata huwa bil-mod, iżda wara huwa ħafna aktar mgħaġġla.
>> Iżda dan ukoll, għal darb'oħra, huwa off kummerċ.
U għal xi ħaġa bħal dejta tar-riċerka stabbiliti, jew saħansitra xi ħaġa kbira bħal
dan, l-utenti tiegħek eventwalment se tibda tħossok li tnaqqis.
>> Għalhekk fil-qosor, interpretat il-lingwi huma ħafna fil Vogue, popolari ħafna, u
franchement huma probabbilment l-lingwi li għandhom jilħqu għal meta jissolvew problemi
sussegwenti CS50.
Imma tirrealizza kemm int verament tieħu għall mogħtija taħt il-barnuża
verament dawk li għaddew diversi ġimgħat hash imwejjed, u siġar, u tentattivi,
li jintużaw finalment li attwalment jimplimentaw affarijiet simili parentesi miftuħa,
parentesi kwadri, li nistgħu issa gratefully jieħdu għal mogħtija.
>> Mela ejja tagħti ħarsa issa f'dan il-kuntest web.
U semmejt aħħar darba li hemm mazz ta 'superglobals fil-PHP li
ma humiex verament rilevanti fil-linja tal-kmand.
Huma qed aktar rilevanti fil-kuntest ta 'użu PHP f'kuntest web.
Allura running PHP fuq server web sabiex biex jiġġeneraw għalf bħal HTML.
>> U aħna glanced fil $ _GET u $ _POST, u li fejn awtomatikament utenti "
input jispiċċa sempliċiment jekk inti tissottometti jiffurmaw għal fajl li jispiċċa fil. PHP fuq web
server bħall-appliance.
Imma ejja nħarsu ftit lejn $ _COOKIE U $ _SESSION.
>> F'termini layman, dak li huwa cookie bħala inti tifhem li fil-kuntest ta '
jużaw il-web?
>> UDJENZA: File fuq il-kompjuter.
>> DAVID Malan: Yeah.
Huwa fajl fuq il-kompjuter l-utent mħawla bi kwalunkwe website
inti jiġri li jżuru.
Allura meta inti tmur għall Facebook, meta tmur li bankofamerica.com, meta tmur
li google.com, meta inti tmur għal kważi kull websajt fid-dinja f'dawn il-jiem,
inkluż cs50.net, cookie hija mħawla fuq il-kompjuter tiegħek, li huwa
jew valur maħżuna fil RAM fil tiegħek kompjuter fil-memorja tal-browser tiegħek, jew
kultant tabilħaqq maħżuna fajl fuq hard drive tiegħek.
>> U x'hemm tipikament maħżuna f'dak il-fajl mhuwiex isem l-utent tiegħek, mhux tiegħek
password, tipikament mhux xi ħaġa sensittivi ħlief jekk il-websajt ma tkunx hekk
tajba mas-sigurtà tagħhom, iżda pjuttost huwa identifikatur uniku big fost
affarijiet oħra.
Huwa numru bl-addoċċ big mħawla fuq tiegħek kompjuter iżda inti tista 'taħseb kif
tip ta 'timbru virtwali idejn simili minn klabb jew xi park tad-divertiment li
jippermetti l-persunal, is-sidien ta 'dak servizz, li tiftakar min int.
Allura jekk in-numru bl-addoċċ kbira hija simili 12345678, għalkemm dan huwa ovvjament
mhux wisq każwali, think ta 'dak il- timbru idejn li meta inti żżur
facebook.com għall-ewwel darba, huma timbru dak in-numru fuq naħa tiegħek.
U allura għaliex inti titkellem HTTP, inti tkun browser, u minħabba Facebook
ovvjament jitkellem l-istess bħala web server, il-protokoll HTTP jgħid li
ghaċ sussegwentement żżur facebook.com, kemm jekk huwa t-tieni
aktar tard, siegħa wara, anke l-jum li jmiss, sakemm int ma espliċitament
logged out, li effettivament huwa simili taħsel idejk.
HTTP jgħid inti għandek tippreżenta tiegħek timbru idejn kull darba li inti
ritorn lejn dak website.
>> What Facebook allura ma huma huma tħares lejn dak timbru idejn u
jgħidu, oh, 123456789.
I do not know-ewwel daqqa t'għajn li dan huwa David Malan fil Cambridge,
Massachusetts, iżda huma jistgħu jikkontrollaw tagħhom database u jgħidu, oh, il-persuna
li fuq il-kompjuter aħna mħawla 123456789 huwa David Malan minn Cambridge,
Massachusetts.
Ejja juru li l-utent mbagħad profil tiegħu paġna jew Feed News tiegħu.
>> Imma hemm problema hawn jekk dan hija kif il-web tabilħaqq xogħlijiet.
Ejja tagħti ħarsa lejn eżempju malajr.
Ejja fatt imorru jgħidu facebook.com.
Iżda qabel ma nistgħu jmorru hemm, let me imorru quddiem u tiftaħ Chrome
Spettur stabbiliti hawn.
Let me ħarsa lejn il-tab netwerk.
U issa ejja imorru quddiem u tip fil https://facebook.com.
U jien tagħmel dan hekk li aħna ma tara kollha ta 'dawk redirects u skart
żmien tfittex permezz dawk.
Let me hit jidħol.
>> Kull dritt.
Naraw mazz sħiħ ta 'talbiet.
Hemm jaqa Facebook.
Hemm mazz sħiħ ta 'fajls.
U hawn, per aċċenn tiegħi ta ' aħħar darba latency, li
ħafna ta 'talbiet HTTP.
Iżda l-ewwel wieħed huwa probabbilment l-aktar interessanti.
>> Mela ejja iscroll down hawn, u I ser zoom fit-tieni.
Dan se jkun it-tip ta ' mess, imma ejja ara.
Facebook huwa tibgħatilna mazz sħiħ ta 'għalf.
>> Iżda Whoa, interessanti.
Huma qed tħawwil mhux wieħed, iżda erba ' timbri idejn għal fuq naħa tiegħi hawnhekk.
Set-cookie, Set-cookie, set-cookie, set cookie.
U hemm ftit karatteristiċi hawn.
Kollha kemm huma jsemmu xi tip ta 'skadenza.
U jidher qisu Facebook qed jittama tiftakar lili sal-2015.
Allura dak preżumibbilment sa meta I trid login jew dawn ser biss
awtomatikament jassumu jien mhux ġejjin lura.
Allura li attwalment deċenti ammont ta 'ħin.
>> U hemm xi oħra affarijiet għaddejjin hawn.
Dan cookie jidher li bil-forza imħassra billi qal li skada fl-1970
qabel kienu jeżistu cookies.
Allura l-browser huwa biss se li wieħed jassumi OK, dan huwa simili
ħasil tal-idejn timbru.
>> Imma issa meta browser tiegħi jagħmel talba sussegwenti -
let me imorru quddiem u tagħmel dan ġdid u rikarigu.
Issa let me iscroll lura lill- talba fuq u jinżlu
hawn, titlob headers.
Avviż dan.
Allura issa jien taħt mhux headers rispons, iżda tinnota li jgħid talba headers.
U tinnota li browser tiegħi bħala parti mill- talba tagħha wara laqtu rikarigu għandha
mibgħut mill-inqas dan li ġej informazzjoni.
Mhux stabbiliti-cookie, iżda cookie.
Allura dan huwa l-linja, l-header HTTP hekk biex jitkellmu, fejn browser tiegħi huwa tip
mingħajr ma jkunu jafu tiegħi jippreżentaw naħa tiegħi għall-ispezzjoni Facebook.
>> Allura dawn il-cookies jistgħu jkunu użata imbagħad għal liema?
Li tiftakar min int, jew tiftakar kif ħafna drabi inti ħadthom kien hemm, jew
verament xejn.
>> Allura hawnhekk huwa counter.php.
U let me zoom fl fuq il-font.
U kull darba I rikarigu din il-paġna, l-avviż huwa ftakar kif ħafna drabi
Stajt ilhom hemm.
Ukoll, li mhux kollha li impressjonanti.
Ejja biss tagħlaq dik tab, u issa ejja mmorru lura għall
http://localhost/counter.php.
>> Oh, li interessanti.
Hija xorta mfakkar, anki għalkemm I għalqet il-tab.
U franchement, jekk I qrib il-browser, jekk ikun implimentat bl-aħjar mod, I
xorta tista 'ftakar li dan l-utent huwa li hu jew hi kien l-ewwel darba, u
darba biss mmur menu Chrome, li hawn fuq hija hawnhekk, u mur
Istorja, u kklikkja Clear Browsing Data, kif xi wħud minnkom jista 'jkollhom fil-
passat, biss mbagħad cookies tiegħek attwalment jitħassru matul web
iżvilupp.
>> Għalhekk, jekk immorru -
ejja tagħlaq gedit here.
U jekk immorru issa li dan il-fajl.
Let me jmorru fil tagħna vhosts / localhost / pubbliku, u let me do
counter.php.
Avviż li dan huwa pretty programm sempliċi.
Huwa website pjuttost sempliċi.
>> Allura l-quċċata tal-fajl huwa biss kummenti.
Imma hawn xi linja ġdida li inti tista ' raw diġà fis-p sett sebgħa,
session_start ().
Din hija linja tal-kodiċi PHP li essenzjalment jirrakkonta l-web server, jagħmlu
żgur li timbru idejn u jagħmlu żgur li tivverifika timbri idejn.
Li kollox dik il-linja ma, u ma kollha ta 'dak il-proċess għalina.
Imbagħad avviż Stajt biss ltqajna żewġ fergħat hawn.
Jekk il-kjavi counter ġewwa ta 'dan varjabbli globali speċjali msejħa
$ _SESSION Huwa stabbilit - fi kliem ieħor, jekk hemm xi valur hemmhekk -
ejja nikseb dan u jaħżnu lokali varjabbli imsejħa $ counter.
Else, ejja tassenja $ counter il-valur ta 'default ta '0.
>> Issa hawn aspett wieħed ta 'PHP li l- kemm barka u curse.
PHP huwa ftit sloppy.
Allura billi fis-C, dak li l- ambitu tal-counter kienu
jew hawn jew hawn?
>> Kienet tkun limitata għal dawk braces kaboċċi.
Raden liema?
Fil PHP, dan jeżisti anke barra minn dawk braces kaboċċi, hawn, u hawn,
u hawn, u hawn, u anke down hawn taħt.
So I ngħid dan huwa barka fis-sens li inti ma għandekx biex jaħsbu bħala
hard kif għamilna ġimgħat ilu.
Imma hija wkoll daqsxejn ta 'curse f'dak ebda kwistjoni fejn inti tuża varjabbli
PHP, għall-inqas fi programm bħal dan, huwa globalment aċċessibbli għall-
aħjar jew għall-agħar.
Allura inti għandek iżomm f'moħħu issa li varjabbli tiegħek ma jistgħux jiġu undefined.
Inti jista 'jkollok definiti minnhom x'imkien ieħor.
>> Imma dak li jien ser tagħmel finalment?
Jien ser jaħżnu ġewwa ta 'dik globali varjabbli bħala valur tal-
counter ewlieni r-riżultat ta ' tagħmel counter plus 1.
Allura dan huwa biss l-aritmetika li ma l-
incrementation 'dak counter.
U l-fatt li jien ħażna li valur lura fil hawn ifisser huwa li
essenzjalment taġġorna d-database għall- ftakar li 123456789 utent ilu
hawn darbtejn.
U meta I jagħmlu mill-ġdid il-ħin li jmiss I rikarigu-paġna, li għaddej biex jiċċekkjaw
timbru naħa tiegħi u jgħidu, oh, 123456789 utent għandu issa
kien hawn tliet darbiet.
>> U iva, liema lingwi PHP u simili qed jagħmlu għalina hija li huma jidhru
kif u fejn u għal kemm żmien li żżomm il-valuri f'din speċjali
superglobal.
U dan superglobal-ħin li jmiss I żur il-paġna huwa tip ta magically
pre-popolati, mimlija bil-valuri li kien hemm l-aħħar darba li tkun żaret,
jekk dan kien it-tieni ilu, ġimgħa ilu, jew fl-2013 u aħna qed issa jitkellem
dwar 2015.
PHP u l-web server jieħdu ħsieb kollha ta 'dan għalik.
>> UDJENZA: [inaudible].
>> DAVID Malan: elementi varjabbli fil PHP huma essenzjalment dejjem globali sakemm inti
jiddikjaraw lilhom ġewwa ta 'funzjoni, u allura dawn huma lokali biex
il-funzjoni biss.
Imma għaliex stajt jkunux miktuba xi funzjonijiet, huma issa effettivament
globali matul fajl sħiħ tiegħi hawn.
>> UDJENZA: Hemm mod jagħmluhom lokali?
>> DAVID Malan: Hemm xi mod biex jagħmluhom lokali?
Huwa biss billi tgeżwir minnhom fil-funzjonijiet.
Li fl-aħħar verżjoni tad- PHP, inti tista 'tagħmel dan ma'
funzjoni anonimu.
Iżda aktar fuq li fil- kuntest ta 'JavaScript.
Iżda l-risposta qasira hija le.
A tweġiba hija iva itwal.
Nizza.
Mistoqsija tajba kwizz.
Kull dritt.
>> Allura fl-aħħarnett, il-paġna nnifisha hija attwalment pjuttost sempliċi.
Avviż li ladarba I ħruġ modalità PHP, recall li dan kollu Jittieħed isfel
hawn taħt huwa biss se tikseb bżiq out prima għall-browser.
Liema hija multa, minħabba I do jridu jibagħtu l-utent xi HTML, imma jien ma jridux
li dinamikament jaġġornaw dik HTML.
U mod wieħed I tista 'tagħmel dan huwa li sort ta 'malajr ħafna jinżel lura fis PHP
modalità, jużaw open kwistjoni mark bracket sinjal ugwali, u mbagħad output l-valur
ta counter.
>> Jew jekk dan jistenna ftit cryptic, dan sinjal ugwali huwa attwalment biss ftit
zokkor sintattika għal dan printf ($ counter).
Iżda franchement, li jinsab biss ftit ikrah u ftit annoying għat-tip.
Allura PHP ħafna nicely toffri din il-karatteristika fejn inti tista 'biss jgħidu li aktar
qosor fl-istess mod.
>> Allura x'inhu għaddej taħt il-barnuża?
Ejja malajr nħarsu lejn in-netwerk tab hawn għal counter.php.
U let me imorru quddiem u l-ewwel ejja ċar cookies tiegħek.
Data browsing ċari Ejja peress il-bidu ta 'żmien.
Issa ejja mmorru lura minn hawn.
Issa ejja rikarigu-paġna.
U jien lura għal żero.
Minħabba timbru naħa tiegħi kien maħsul, I issa jiksbu cookie ġdid.
>> Tabilħaqq jekk I tħares lejn il-tab netwerk u tħares lejn headers rispons, avviż
li l-appliance hija li jibgħat me cookie li ismu huwa kemmxejn
arbitrarju, iżda tip ta ' raġonevolment, PHPSESSID.
U huwa jibghatni dan verament numru bl-addoċċ big.
Mhuwiex pjuttost numru.
Huwa pjuttost mhux hexadecimal.
Huwa xi tip ta 'spag alfanumeriku, iżda preżumibbilment huwa każwali.
U li huwa l-timbru idejn hekk biex jitkellmu li jien jirreferu għall.
>> Sadanittant jekk I ikklikkja rikarigu u mbagħad ħarsa lejn din it-tieni linja għat-tieni tiegħi
talba, avviż issa li t-talba tiegħi headers jinkludu PHPSESSID ugwali dan,
ma set-cookie, iżda biss cookie.
U li l-preżentazzjoni browser tiegħi ta 'timbru naħa tiegħi.
>> Allura issa bħala teaser, u aħna ser nitkellmu aktar dwar dan fil-ġimgħa jew hekk, imma
b'liema mod il dan tagħmel inti vulnerabbli, kont tiegħek Facebook
vulnerabbli, u oħrajn bħal kontijiet vulnerabbli?
>> UDJENZA: Jekk xi ħadd ikollu cookie tiegħek.
>> DAVID Malan: Yeah, jekk xi ħadd għandha cookie tiegħek.
I mean tassew, simili ħafna xi wħud minnkom tista ippruvaw fil bħal klabb jew
park ta 'divertiment, jekk inti tipprova xi ħaġa bħal dan li kopja tal-boll, għalkemm
lura fuq naħa ta 'persuna oħra, u allura hu jew hi tippreżenta bħala
tagħhom stess, jekk fil-fatt ma tfittex identiċi, 123456789, allura l-web
server li apparentament huwa biss se fiduċja li dak l-utent huwa inti.
>> U dan huwa tabilħaqq fundamentali theddida kwalunkwe ħin li inti tuża cookies
għaliex jekk xi ħadd biss spoofs hekk li jitkellmu cookie tiegħek, figuri barra dak li
hija, jew billi verament ikkupjar billi tħares lejn il-kompjuter tiegħek
u li jkunu simili, OK.
Cookie David huwa JJ3JIK u oħrajn, u mbagħad dawn qed intelliġenti biżżejjed biex tkun taf
kif issolvi manwalment jibgħat dik cookie minn browser jew minn
programm huma jiktbu, dawn jistgħu totalment log fis websajt kif inti.
Mhuwiex li diffiċli li jippretendu li jkunu xi ħadd ieħor sakemm aħna tirrevedi p-set
tnejn, li introduċiet liema?
>> UDJENZA: Kriptografika.
>> DAVID Malan: A ftit daqsxejn ta 'kriptografija.
Kriptografija sempliċi, inqas fil- standard edizzjoni, iżda kripto
xorta.
inqas.
Għalhekk jirriżulta li jekk inti kriptaġġ kollha dawn headers jużaw xi ħaġa li inti
issa tista 'tkun taf aktar familjari bħala SSL, socket layer, jew URLs https:/,
allura kollha ta 'dawn affarijiet aħna kont qed glancing fil huma attwalment encrypted,
li jfisser li huwa simili inti ma tistax taqra l timbru idejn.
Biss facebook.com jista ', jew google.com, jew f'dan il-każ, l-appliance jista '
taqra li timbru idejn.
>> Traġikament għalkemm, u għal darb'oħra, dan huwa kollha wisq xierqa mal-għalf NSA
l-aħħar, anki SSL huwa breakable.
U huwa attwalment mhux li diffiċli biex saħansitra xquq li encryption.
Mhux tant mill-ikkrekkjar ta 'l-encryption, iżda mill tricking l-
browser fis decrypting id-dejta qabel iż-żmien.
Iżda għal darb'oħra, aħna ser inti tease ma 'dik qabel twil.
Għal issa, biss ikunu jibżgħu.
Huwa traġikament tip ta 'veru.
>> Kull dritt.
Għalhekk, fejn ma dan issa leave us?
Well, ejja tagħmel dan.
Ejja jimxi 'l quddiem u tieħu quick teaser qabel we jieħu pawża.
U naħseb aħna ser linger ftit itwal illum, imma aħna qed tmur biex adsa fis
marka xi ħaġa ġdida u sexy, li se iqabbduk l-aptit tiegħek għal saħansitra aktar.
Allura dak hu l-teaser.
>> Allura SQL, bdejna nitkellmu dwar dejjem hekk qosor aħħar darba.
Int ser verament tikseb idejk maħmuġin ma 'xi ta' dan fil-p sett sebgħa.
U f'termini laymans, dak ma SQL -
S-Q-L -
jagħmel għalik?
X'inhu dan?
Yeah.
>> UDJENZA: Ejja inti aċċess għad-data.
>> DAVID Malan: Yeah.
Hija ejja inti aċċess għad-data fid-database.
Strutturat Mistoqsija Lingwa.
U dan huwa essenzjalment lingwa ta 'programmar.
Hemm karatteristiċi ta 'dan li aħna mhux se anki tuża fil-klassi.
Imma int tista 'effettivament jiddefinixxu l-funzjonijiet.
Huma qed jissejjaħ maħżuna proċeduri fl SQL.
Iżda aħna ser jżommha pjuttost sempliċi u biss użu minnha għal xi operazzjonijiet bażiċi
bħall-għażla tad-data, li jdaħħal data, aġġornament tad-data, u t-tħassir tad-data.
>> U inti tista 'verament think ta' database, bħal database SQL, biss bħala
qed Microsoft Excel.
Minħabba SQL tirreferi għal relazzjonali database, fejn
rigward ifisser biss tabelli.
Ringieli u kolonni.
Allura xi ħaġa li tista tpoġġi fil-spreadsheet bħal dan jew Google Docs,
inti tista 'tpoġġi fis-database SQL billi jiddikjara tabella.
>> Issa, kif taħseb li attwalment aċċess dik l-informazzjoni?
Ukoll, jikkmanda jew mistoqsijiet bħal dan.
TAGĦŻEL, DAĦĦAL, AĠĠORNAMENT, u ħassar.
U għall-parti l-kbira, dawn huma l- erba uniċi ingredjenti li ghandek bzonn biex
tagħmel xi ħaġa pjuttost qawwi fil-problema stabbiliti seba.
>> Issa lura fil-ġurnata, inti fil-fatt jinteraġixxu ma 'database fil-
tieqa terminal iswed u abjad fil- pront Teptip bħal dan.
U d-database aħna qed taħdem fuq l- apparat huwa msejjaħ MySQL, li hija
magna database liberu u open source.
Jekk inti Google u aqra l-Wikipedija artikolu, inti ser tkun taf li l-isem huwa
daqsxejn ta 'transizzjoni għal xi verżjonijiet ta 'Linux.
Database Maria huwa attwalment furketta biex ngħidu hekk ta 'MySQL.
>> Qasir Long storja, Oracle mixtrija MySQL.
Oracle huwa kumpanija kbira.
Nies ġew inkwetat li dan iwassal m'għadhomx jibqgħu sors pjuttost miftuħ,
għalhekk dan huwa biss kopja ta 'MySQL li l- xorta b'xejn, għadu sors miftuħ, u
installati fil Fedora Linux kontumaċja.
>> Iżda din hija tip ta 'uġigħ fl- għonq li jiffamiljarizzaw ma '
database b'dan il-mod.
Allura aħna jinkludu fl-appliance CS50 għodda sors miftuħ libera msejħa
phpMyAdmin.
Biss koinċidenza li Huwa bil-miktub fil-PHP.
M'hemm l-ebda fundamentali bżonn għall PHP hawn.
Iżda din hija biss għodda fuq l-internet li aħna titniżżel b'xejn, installat fil-
l-apparat, li jippermetti li jkollhom grafika user interface li magħhom
biex tesplora l-p sett seba database ma li biex joħolqu databases ġodda,
ngħid għal proġett finali tiegħek jekk youd simili, u finalment joħolqu
websajts dinamika bħal CS50 Finanzi li jippermettu li inti mistoqsija data u
jaġġornaw data dinamiku.
>> Int mhux se jkollhom jużaw biss fajl test sempliċi jew CSV.
Inti tista 'attwalment jużaw database smart programm sabiex inti tista 'twettaq b'mod aktar
mistoqsijiet sofistikati milli sempliċiment qari permezz kollox lineari.
>> Allura per eżempju, dan huwa dak li aħna nagħtu inti out tal-kaxxa għall-p sett sebgħa.
Dan huwa tabella bi apparentament inqas tliet kolonni, waħda minnhom hija
username, li waħda minnhom hija hash, u l-ieħor tagħhom huwa ID.
>> Imma l-ħaġa interessanti, u biss biex tease ħsieb wieħed hawn, username
x'aktarx li huwa diġà unika, right?
I mean, aktar xi website, jekk għandek username, hemm
ma jistax ikun f'żewġ Caesars.
Ma jistax ikun hemm żewġ malans.
Ma jistax ikun hemm żewġ jharvards.
Unika tagħha.
Inkella, dawn ma jkunux jafu liema jharvard fatt hu.
Allura x'jista 'jkun l-motivazzjoni għall wkoll jkollhom tielet kolonna fuq ix-xellug
hemm imsejħa ID, li qisu numru li huwa simili unique?
Iħoss żejda ftit lili ewwel daqqa t'għajn.
Għaliex jista 'jkun konvinċenti li jkollhom mhux biss usernames uniku,
iżda wkoll numri uniċi?
>> UDJENZA: Huma jista 'jkollhom l-istess password.
>> DAVID Malan: Nies jista 'jkollhom l-istess password, żgur.
Dan jista 'assolutament jiġri.
Iżda jekk dawn ikollhom din username uniku, I jargumentaw li dan ma verament
kwistjoni, għaliex jekk dawn it-tip fl tagħhom username, I biss bżonn li jiċċekkja tagħhom
password, hash tagħhom tiegħu.
Għaliex inkella?
>> UDJENZA: Faster tiftix.
>> DAVID Malan: Faster tiftix.
Għaliex?
>> UDJENZA: ID hija waħda biss.
>> DAVID Malan: ID huwa biss karattru wieħed, jew biex ikunu aktar preċiżi, huwa numru,
dan huwa probabbilment 32 bits jew xi ħaġa bħal dik.
Billi l-username, apparentement Jason Hirschhorn sad hemm tip ta '
ridiculously twil, u li għaddej biex jieħdu me ħafna aktar ħin biex string
iqabblu H-I-R-S-C-H-H-O-R-N, u forsi a / 0 jew xi ħaġa bħal dik, sabiex
tfittex up Jason, għall-kuntrarju biss qal tagħti me numru utent tnejn.
C'est 32 bits.
Huwa INT waħda li għandek biex titqabbel.
U fil-fatt, dan huwa eżattament għaliex databases tendenza li tassenja IDs uniċi li
ringieli fihom.
>> Issa liema tipi oħra tad-data hemm minbarra INT u apparentement
kordi bħal dan?
Well, biex ikunu aktar xierqa, Databases SQL, bħall-
MySQL, għandhom kampijiet Char.
U CHAR ftit misleadingly mhuwiex CHAR wieħed.
A qasam CHAR f 'database MySQL huwa karattri wieħed jew aktar, imma hija
numru fiss ta 'karattri.
>> Għalhekk per eżempju, jekk I jmorru fuq biex phpMyAdmin kif inti tista 'diġà, jew
dalwaqt se problema stabbiliti seba ', u mmur għad-database tiegħi, u biss għall-gost,
ejja tinħoloq tabella ġdida msejħa test bil biss żewġ kolonni.
I ser mbagħad ikklikkja Mur.
U dan se jsir pjuttost familjari, speċjalment kif inti tinker
madwar fuq tiegħek.
Hawnhekk I tista 'tip ID joħolqu tabella ġdida ta INT tip.
Imma hawn I jista tip username li jirrikreaw dik it-tabella preċedenti.
U l-avviż I jkollhom mazz sħiħ ta 'tipi li jagħżlu minn.
>> U dan ukoll huwa għaliex phpMyAdmin huwa tip ta 'sbieħ.
Huwa tip ta 'awto-tagħlim fl-li inti tista 'sempliċement tip ta' punt u kklikkja, u
tħares lejn menus dropdown, u jiddeduċi minn li dak poteri SQL jagħtik.
>> U fil-fatt, jekk I jagħżlu CHAR, I imbagħad għandek tispeċifika t-tul, jew kif
Valuri ħafna, kemm Chars.
Valuri hekk komuni ħafna huma affarijiet simili 255, iżda li ftit twil.
Komunement huwa tmienja għal username.
Imma dak li ftit żgħar dawn il-jiem.
Allura din hija deċiżjoni disinn.
Huwa 8 karattri max, 32, 255, 1,000?
Huwa verament sa inti.
Iżda qasam CHAR huwa numru fiss.
Hekk jagħżlu ftit wisq u int tip ta ' invitat jekk inti tixtieq a username itwal.
Agħżel wisq u x'hemm l-isfel?
>> UDJENZA: [inaudible].
>> DAVID Malan: Huwa ħela.
Eżatt bħal fil C, jekk għandek akbar blokki ta 'memorja milli għandek bżonn, int
biss ħela ta 'ħin u ħela ispazju.
Allura bħala alternattiva, teżisti Varchar, li jsolvi din il-problema billi
trattament tul mhux bħala tul fiss, iżda bħala tul massimu, u billi jintuża
numru varjabbli ta 'Chars, li mbagħad tendenza li jużaw biss bħala ħafna kif inti Chars
attwalment ħtieġa.
Ħsejjes li perfetta.
>> Għaliex ma we jeħles mill- Data CHAR tip allura?
Liema jista 'jkun l-tnaqqis ta' użu VARCHARs, li ħsejjes
bħal din hija rebħa sbieħ?
Yeah?
>> UDJENZA: [inaudible].
>> DAVID Malan: OK, tajba.
Mela jekk kollha tad-data tiegħek huwa l-istess tul, x'inhu l-interess?
>> UDJENZA: Minħabba int wasting data billi tgħidilhom kollha.
>> DAVID Malan: Mela jekk kollha tad-data tiegħek huwa l-istess tul, għalkemm, nixtieq jargumentaw
li tispeċifika t-tul massimu fuq varchar mhi xejn differenti minn
tispeċifika tul fiss fuq CHAR jekk inti taf li hemm numru bil-quddiem.
Iżda hemm tabilħaqq, u jien ser sort ta ' estratt mill din ir-risposta l-realtà
li għad hemm max, li jista ' jkun annoying, speċjalment jekk inti
jiltaqgħu isem ta 'persuna li l- eċċezzjonalment twil li inti ma
tantiċipa.
U huwa wkoll ftit inqas effiċjenti li attwalment tfittex fuq VARCHARs bħala
kuntrarju Chars tiftix, speċjalment għat-tabelli twil li jkunu lottijiet u
lottijiet ta 'data.
Allura hawnhekk ukoll, tematiku huwa għal darb'oħra ebda għażla ovvja.
>> Hekk biss li jtik sens ta 'l-oħra tipi ta 'data li jistgħu jkunu ta' interess
jew għal p-sett seba 'jew fil- il-futur, hemm INT.
Hemm BIGINT, li huwa simili twil twil.
Hemm tendenza li jkun 64 bits.
Hemm deċimali, li tkun taf tara fil il-problema sett, li huwa ferm
cleaner tweġiba għall-problemi li għandna ltaqgħu mal float u galleġġjanti
punt impreċiżjoni.
U allura hemm DateTime.
Hemm litteralment a tip ta 'data li għandha lill-dehra sena, xahar, jum,
u siegħa, minuta, u t-tieni.
>> Iżda databases SQL għandhom ukoll affarijiet aħna ser sejħa indiċijiet.
U indiċi hija xi ħaġa li inti jispeċifika meta jinħoloq il-mejda li
jagħmlu tfittxijiet u operazzjonijiet oħra aktar effiċjenti.
Speċifikament, hemm xi ħaġa imsejħa l-indiċi PRIMARY li inti tista '
tiddikjara kif ġej.
>> Għamilna dan għalik ma 'l- utenti tabella aħna nagħtuk.
Imma avviż jekk jien kienu manwalment jerġgħu jinħolqu -tabella hawn utenti tagħti
dan l-isem ta 'l-utenti.
I diġà speċifikat ID.
I speċifikat INT.
I speċifikat username ma massimu 32 karattru.
Imma jekk inżommu scrolling f'dan pjuttost tieqa wiesgħa, avviż hemm
mazz ta 'affarijiet oħra I jistgħu jispeċifikaw.
>> Waħda, I tista 'tispeċifika l-attributi simili, inti taf liema, dan
INT għandhom ikunu iffirmati.
Ma rridx numri negattivi, hekk ejja jagħmluha mhux iffirmat.
Null mhijiex rilevanti hawnhekk għaliex I do jridu kull utent li
jkollha numru uniku.
Ma rridx li din tkun nulla.
>> Iżda dan huwa interessanti.
I tista 'tispeċifika li ID huwa jew il- kodiċi primarju ta 'din id-database, jew huwa
uniku, jew huwa indiċjati, jew full test.
Allura għal skopijiet tal-lum, l-istorja twila , mezzi PRIMARJI qosra li dan għandu
jkun kemm kunċettwalment kif ukoll teknikament il-qasam li nużaw biex unikament
jidentifikaw l-utenti.
>> Allura meta nħarsu up utenti, dan huwa tip ta 'wegħda li tfittex lilhom aktar minn
li identifikatur uniku.
U d-database se tiżgura li jekk inti jkollhom numru user 3, inti ma tistax
fiżikament daħħal utent ieħor bl-istess numru 3.
Id-database se biss tirrifjuta biex isalva bidliet tiegħek.
Liema hija ħaġa tajba, għaliex inti tista ' tipproteġi ruħek mill yourself. awto
>> Alternattivament, għal username.
Allura l-tieni ringiela, recall, huwa l-qasam username.
Allura l-tieni ringiela hawnhekk huwa username, kif għamilna fuq ix-xellug hemm.
>> Allura x'iktar jista nixtieq li tispeċifika?
Jien mhux permess, skond SQL, li tispeċifika żewġ ċwievet primarja.
inti tista 'tispeċifika ewlieni konġunta fejn inti tħares lejn żewġ oqsma, iżda dawn ma jistgħux
individwalment jkun ċwievet primarja.
Allura dak hu barra mill-kwistjoni.
So li jista nixtieq li jagħżlu?
>> Well, UNIĊI huwa simili fl-ispirtu għal kodiċi primarju fejn inti tispeċifika dan
kamp għandha tkun unika, imma hija mhux se jkun il-wieħed
I użu l-ħin kollu.
U aħna qed mhux se jużaw dan wieħed kull il-ħin għal liema raġuni mill-ġdid?
Huwa bil-mod potenzjalment jekk huwa username twil.
Huwa biss ħela ta 'ħin.
>> INDIĊI, sadanittant, tispeċifika li huwa mhux se tkun unika, imma nixtieq
li taħdem magic tiegħek taħt il- barnuża sabiex ikun aktar mgħaġġel għalija li
tfittxija fuq il-qasam.
Allura dan probabbilment mhuwiex rilevanti hawnhekk.
Għal username, I d jargumentaw li UNIQUE hija risposta tajba.
Imma ejja ngħidu li għamilna utenti aktar interessanti minn sempliċiment usernames,
hashes, u numri tal-ID.
X'jiġri jekk aħna taw nies ismijiet sħaħ?
X'jiġri jekk aħna taw lilhom indirizzi u data oħra dwar minnhom?
>> Ukoll, jekk inti tispeċifika li kolonna a database hija indiċjata, dan ifisser li
MySQL, jew Oracle, jew kwalunkwe database inti qed tuża, għandhom jaħdmu magic tagħha
u l-użu xi tip ta 'data fancy struttura bħal siġra, jew trie, jew
tabella hash, jew xi ħaġa li jiggarantixxu li meta inti tfittex għal data bl-użu
jagħżlu fuq dak il-qasam partikolari -
bħal urini kulħadd li ħajjiet fuq Oxford Street.
A mistoqsija bħal dik.
Jekk għandek speċifikati minn qabel li inti tixtieq indiċi fuq il-qasam, l-
tfittxijiet se jkun ħafna, ħafna aktar mgħaġġla.
>> Jekk inti ma jispeċifikawx indiċi, l-aħjar inti tista 'tagħmel huwa tfittxija lineari jekk
mhuwiex magħżula.
Imma jekk inti tispeċifika INDIĊI, il-smart persuni li għamlu l-database -
nies bħalek li issa jafu siġar u tipprova u tabelli hash -
awtomatikament se jibni data bħal istruttura RAM biex tiżgura li
dawk tfittxijiet huma ħafna aktar mgħaġġla.
>> Fulltext sadanittant huwa simili fl-ispirtu, iżda tippermetti li tagħmel wildcard
tfittxijiet, bħal urini kulħadd li jgħix fil-toroq li jibdew bil-
ittra O għal kwalunkwe raġuni.
Tista 'tagħmel tfittxijiet wildcard bħal dik.
Or, affarijiet aktar konvinċenti simili juru me kulħadd li għandu l-kelma -
urini kulħadd li isimha jibda ma 'ittra partikolari.
Tista 'tfittex għal keywords b'dan il-mod.
Kull dritt.
>> Allura, l-opportunitajiet ta 'disinn hemm potenzjalment.
Hemm oħrajn li jien ser mewġa idejn tiegħi fuq.
Jirriżulta li inti jista 'jkollhom magni ta 'ħażna differenti.
U dan huwa aktar arcane minn għandna bżonn ċertament għal problema stabbiliti seba.
Permezz ta 'default, inti guys qed jużaw xi ħaġa imsejħa InnoDB.
Int ser ikollok tara referenza ta 'din x'imkien interface phpMyAdmin-aktar probabbli.
Imma jafu li hemm disinn oħra deċiżjonijiet li huma ta 'potenzjal
interess jidħlu proġetti finali jekk inti tagħmel fuq l-internet xi ħaġa.
>> Imma ejja tagħmel dan.
Ejja jimxi 'l quddiem u jdaħħlu dan fuq il- screen bħala teaser għal storja
jinvolvi inti, roommate, u ħġieġ tal-ħalib.
Ejja tagħti żewġ minuti jew hekk break hawn.
U jekk inti tista 'twaħħal madwar, ejja come lura, tfittex ftit aktar fil SQL, u
allura daqsxejn ta 'JavaScript ma -p stabbiliti tmienja fil-moħħ.
>> Kull dritt.
Allura, ejja nikseb inti taħseb dwar każ kantuniera li jistgħu faċilment jinqalgħu
fil-kuntest ta 'użu ta' database, jew franchement, anki bl-użu l-affarijiet dinjija reali
bħal ATMs sabiex jiksbu flus.
Allura hawnhekk friġġ.
Ejja ngħidu li inti stajt ltqajna waħda wisq dorm tiegħek jew dar tiegħek.
U inti stajt ltqajna roommate waħda, u tnejn int verament tixtieq ħalib per eżempju.
>> Allura inti ġejjin dar mill-klassi jum wieħed.
Hu jew hi għadu mhux lura.
Inti tiftaħ il-fridge.
Int verament tixtieq ħġieġ kbir ta 'ħalib.
M'hemm l-ebda ħalib.
Allura dak do you do?
Inti qrib il-fridge.
Inti grab ċwievet tiegħek.
Inti tmur għall-kwadru.
U ikollok fil-linja fil CVS lejn dawk affarijiet checkout awto, li dejjem
tieħu aktar milli fil-fatt jkollhom kaxxiera.
Xorta.
>> Mela allura, sadanittant, dot dot dot, tiegħek roommate jiġi dar u hu jew hi
bl-istess mod għandha hankering għal xi ħalib.
Hekk hu jew hi tiftaħ il-fridge, jistenna ġewwa, u oh, kkritikat.
Nru ħalib.
Hekk hu jew hi irjus, jiġri li jmorru għall-CVS oħra, li kien biss
blokk bogħod għal xi raġuni, u hu jew hi gets fil-linja li jixtru xi ħalib.
>> Sadanittant, inti ġejjin dar, hu jew hi jiġi dar, u liema do
inti finalment ikollhom?
Ħalib darbtejn daqs.
Imma inti ma verament simili ħalib li ħafna.
Allura issa għandek ħalib tant li issa wieħed minnhom huwa biss se jmorru qarsa
eventwalment.
Allura din hija problema tassew ħżiena.
Dritt?
>> Allura dak li ġara?
Allura fundamentalment, dan huwa tip ta 'eżempju redikoli.
Iżda taħt il-barnuża, dak li aħna kellna jiġri hawnhekk huwa tnejn inti ċċekkjati
l-istat ta 'xi biċċa ta' memorja, il-friġġ.
Tnejn inti ċċekkjati l-istat ta 'xi varjabbli.
Inti kemm ġibdet konklużjoni li inti mbagħad aġixxa fuq.
Iżda sfortunatament, filwaqt li roommate tiegħek kien fil-maħżen, l-istat ta 'dik
varjabbli nbidlu, hu jew hi daħlet lura u issa irid jibdel l-istat, iżda
huwa diġà ġie mibdul fuq lilu jew lilha.
U ovvjament, hu jew hi ma jkollhom marret għall-maħżen jekk dawn kienu jafu
li inti kienu diġà en route.
>> Allura fid-dinja reali, kif tista 'inti jevitaw din il-problema, jekk wieħed jassumi għandek
fridge, għandek roommate, u inti fil-fatt tixtieq ħalib?
>> UDJENZA: Nikkomunikaw.
>> DAVID Malan: Nikkomunikaw.
OK.
Imma kif tista 'inti tikkomunika?
>> UDJENZA: Ħalli nota.
>> DAVID Malan: Ħalli nota, right?
Dejjem iħallu nota, għall- fannijiet ta 'l-ispettaklu.
Kull dritt, hekk dejjem iħallu nota, jew tpoġġi verament bħal katnazz jew xi ħaġa
fuq il-friġġ li jżomm tiegħek roommate milli jispezzjonaw l-istat ta '
dak il-varjabbli.
>> Issa, għaliex jista 'dan jiġi germane biex problema stabbiliti seba ', jew biex ATMs.
Well, timmaġina dinja fi ATM fejn inti tista 'tkun kapaċi li jmorru sa ATM
magna hawnhekk, u ATM ieħor hawnhekk.
U dan jiġri spiss.
U jissoponi kellek żewġ karti ATM, li huwa possibbli li tinkiseb.
U inti log fis-żewġ magni effettivemnt simultanjament, nisperaw
filwaqt li qed ifittxu l-ebda waħda.
U allura inti tip PIN tiegħek bejn wieħed u ieħor fl-istess ħin.
U mbagħad inti tagħmel mistoqsija bilanċ biex tara kemm flus ikollok.
U ejja ngħidu li għandek $ 100 jitħalla fil-kont tiegħek.
Allura essenzjalment simultanjament, inti jgħidu wieħed, żero, żero, jidħol.
U inti nisperaw tikseb lura xi flus.
>> Imma kemm flus tista 'tikseb lura?
Issa kompjuters fl-aħħar tal-ġurnata, speċjalment jekk dawn qed nitkellmu
servers, mhux bilfors tagħmel affarijiet fl-ordni li mistenni.
>> Allura jissoponi x'jiġri, minħabba kwalunkwe netwerk kwistjonijiet veloċità hemmhekk
huma, jew kwistjonijiet CPU hemm, jew xi ħaġa bħal dik, jissoponi li l-
ewwel ATM kontrolli bilanċ u tiegħek jara, oh, din il-persuna għandha $ 100.
Iżda mbagħad gets distratt għaliex forsi backup qed jiġri u għalhekk huwa
tmajna.
Jew forsi waqt verifika, in-netwerk konnessjoni ltqajna ftit aktar bil-mod minħabba
dan jiġri biss.
Huma qed mezzi fiżiċi.
Allura sadanittant, it-tieni ATM huwa tistaqsi l-istess kwistjoni.
Kemm flus ma David jkollhom? $ 100 huwa l-risposta.
Iżda minħabba l-ewwel ATM għadha ma bagħat il-messaġġ naqqas $ 100, kemm
ATMs kienu spezzjonati kaxxa-forti tal-bank, jaraw hemm $ 100 hemm, u issa
kemm magni potenzjalment huma se bżiq risposta.
>> Issa, dan huwa kbir għalik f'xi sens jekk dak il-bank ma finalment
qed jibdlu l-ammont għal nieqes 100 minn iffissar tal-varjabbli daqs tiegħek
Kont tal-Bank ugwali għal 0, kuntrarju biex tagħmel minus 100.
Issa fl-agħar każ għall-bank -
jew fl-aħjar għall-bank, sadanittant, dawn jagħtu inti $ 200, u
kont bankarju tiegħek issa turi negattiv $ 100, li verament ma
jibbenefikaw inti fil-livelli kollha.
Imma l-punt hu li din ir-razza kundizzjoni għal żewġ roommates jkollna
ħalib, jew għal żewġ ATMs jippruvaw jiksbu l-flus u jibdlu l-istat tal-kaxxa-forti
fl-istess ħin teżisti ebda darba li inti għandek database.
>> Issa fil-problema stabbiliti seba ', din il-kwistjoni tqum fis-sens li jekk tixtri
sehem ta 'Facebook istokk, u mbagħad għal eżempju inti tixtri tieni sehem ta '
Facebook istokk, inti għandek bżonn tagħmel deċiżjoni bħala l-programmer.
Sabiex tiddeċiedi kif biex jaġġornaw il- database, odds huma inti qed tmur għall-
jkollhom ringiela waħda għal dak l-istokk, u dan huwa mod wieħed biex jimplimentawha.
U int se jkollhom sehem wieħed ta ' FB, li hija simbolu ticker istokk tagħhom
għal dan username, jew dan l-utent ID, l-identifikatur uniku.
>> Iżda l-istess storja jista 'jiġri hawn.
Jekk inti tagħmel TAGĦŻEL fil SQL, kif tkun taf tara fil-problema sett seba meta tara,
oh, David għandu sehem wieħed ta 'Facebook istokk.
Let me issa tbiddel dan li hemm żewġ ishma, minħabba li huwa jixtieq jixtri
tieni sehem.
Iżda jissoponi David attwalment kellu żewġ twieqi browser miftuħa, jew jissoponi li
huwa kont konġunt ma 'żewġ konjuġi, u tnejn minnhom qed jippruvaw biex iwettqu
l-istess operazzjoni, hemm, wisq, il- jeżisti potenzjal għal deċiżjoni biex tkun
imsejsa fuq il-preċedenti istat tad-dinja -
il-kont għandu sehem wieħed -
u kemm nies, jew it-tnejn servers, issa jippruvaw jgħidu inkrement li żewġ ishma.
Iżda f'dan il-każ, inti jista 'jkollok mitluba me flus kemm għall-ishma, iżda
jiżdied biss dak iż-żmien wieħed.
>> Għalhekk fil-qosor, il-problema fundamentali hawnhekk, kif ma 'l-Joke dwar jħallu
jinnota, jew it-tqegħid katnazz fuqha, huwa jekk żewġ persuni, jew żewġ ħjut -
Think lura għall-bidu -
tista 'tispezzjona l-istat ta' xi varjabbli u mbagħad jipprova jbiddel dak il-varjabbli,
iżda dawn iż-żewġ affarijiet ma jiġri fil- istess ħin, iżda jistgħu jiksbu interrotta
minn affarijiet oħra jiġri, data tista ' jsibu rwieħhom stat ħafna stramb.
U inti tista 'tibbenefika jew inti jista' jbati fis-sens ta 'l-eżempju flus.
>> Għalhekk fl problema stabbiliti seba ', aħna nagħtuk din il-linja waħda tal-kodiċi, li fit-
storja qasira, issolvi din problema MySQL.
Din l-istruzzjoni twil ħafna li ma anki tajbin fuq linja waħda fuq l-
iskrin hawn jiżgura li operazzjoni tiegħek huwa dak li sejjaħ atomika.
Dan kollu jiġri f'daqqa, jew ma jiġri fil-livelli kollha.
Din il-frażi twil ħafna ma tistax nikseb interrott parzjalment.
>> U dak li ma huwa litteralment dak li jgħid.
Daħħal fis xi tabella li ġej tliet oqsma dawk il-valuri speċifiċi,
iżda fuq duplikat ewlenin, ma tagħmel daħħal.
Do aġġornament.
Allura dan huwa simili tagħmel TAGĦŻEL u DAĦĦAL biex ngħidu hekk fl-istess ħin.
U dak huwa l-muftieħ li probabbilment tkun riferita hawn?
>> Jirriżulta, u tkun taf tara dan fil- problema stabbiliti spec Seba, għaliex
konna dikjarat li jkun hemm ċavetta unika fuq din it-tabella partikolari b'mod li
ma jistax ikollok ringieli multipli għall-istess utent ma 'l-
istess Penny istokk simbolu -
f'dan l-eżempju hawn, DVN.V hija stokk Penny iblah li aħna
jirreferu fit-spec.
Għaliex aħna ħadthom ddikjarat li hu uniku, dak li dan ifisser huwa li jekk inti
jippruvaw daħħal ringiela duplikat, int minflok ser taġġorna mingħajr
ħaddieħor jkollhom iċ-ċans għall-bidla l-istat tad-dinja jew.
Għalhekk fil-qosor, dan jiżgura affarijiet huma atomika.
>> B'mod aktar ġenerali għalkemm, databases bħal MySQL -
u inti m'għandekx bżonn din il-karatteristika għall- p-sett seba ', iżda żżomm f'moħħha għal
il-futur -
appoġġ liema huma msejħa tranżazzjonijiet, fejn inti tista 'tgħid
START transazzjoni litteralment.
Tista 'mbagħad tesegwixxi żewġ dikjarazzjonijiet SQL.
U dikjarazzjoni SQL, kif tkun taf tara fil-p stabbiliti seba ', jistenna ftit
xi ħaġa bħal din.
Taġġorna imsejħa kont tabella.
Issettja l-kolonna bilanċ ugwali għal dak kollu li il-kolonna bilanċ bħalissa
huwa nieqes 1,000 fejn l-għadd, il- numru tal-kont, bħall-user ID,
ugwali 2, u mbagħad taġġorna kont dot dot dot.
>> Allura f'termini laymans, liema do dawn iż-żewġ mistoqsijiet jidhru li huma jagħmlu fil-
sens dinja reali tal-banek?
>> UDJENZA: trasferiment għal iffrankar.
>> DAVID Malan: Eżattament.
Trasferiment ta 'fondi minn kont għall-ieħor.
U dan huwa eżempju ieħor fejn int verament irridu dawn iż-żewġ affarijiet li jiġri
jew le jiġri.
Inti ma tridx xi ħaġa li jiksbu fil- nofs minnhom u potenzjalment mess up
l-matematika, jew mess up kemm flus għandek, jew kemm
flus il-bank ikollu.
Allura x'hemm verament sbieħ dwar transazzjonijiet fil MySQL hija li, u
databases b'mod aktar ġenerali, huwa li dawn u nies intelliġenti li ħadthom implimentati
dawn il-karatteristiċi figura kif jagħmlu żgur li kemm ta 'dawk l-affarijiet jiġri
jew xejn.
>> U jekk int verament jaspiraw li jagħmlu websajt li użaw minn nies fuq
kampus, nies fid-dinja reali, tagħmel xi ħaġa fis-sens istartjar,
dawn huma t-tipi ta ' deċiżjonijiet tad-disinn li
isiru dejjem hekk importanti.
Inkella, inti jibdew jitilfu data, jitilfu utenti, jew fl-agħar każ bħala
Rajna hawn, potenzjalment jitilfu l-flus.
Għalhekk għal darb'oħra, aktar fuq li fil-problema stabbiliti seba ', kif ukoll forsi għal xi wħud
inti fil-proġetti finali.
>> Mela ejja bidla li stampa kellna mument ilu biss f'waħda aktar mod.
So let me attwalment tara jekk I jistgħu -
Nope, li marret.
Hemm hu.
>> Allura dan huwa fejn aħna jitħalla aħħar darba.
U jirriżulta aħna qed tmur biex toss ħaġ'oħra fis-taħlita hawn -
lingwa imsejħa JavaScript.
Allura JavaScript fatt jaqbilx effettivament fil din il-biċċa -
u jien ma pjuttost jħallu spazju biżżejjed, għalhekk dan mhux issa li l-iskala.
OK, dan huwa verament pathetic.
OK, b'tali mod li JavaScript.
Kull dritt.
Ninsab verament tagħmel dan disservice.
Kull dritt.
>> Allura JavaScript huwa programmar ieħor lingwa, u l-aħħar tagħna, Jekk dan jgħin
jassigurhom li hemm Ma tantx aktar mill-idranti tan-nirien hawn.
Allura JavaScript huwa wkoll interpretat lingwa, li jfisser li inti ma
josservawha fis żerijiet u dawk.
Inti biss run.
Imma x'hemm fundamentalment differenti ma JavaScript normalment huwa li inti
ma run fuq web server tiegħek.
Hija ma jiksbu run fil- appliance per se.
Pjuttost, jiġrilha jitniżżel minn utent permezz HTTP fil-browser tagħhom -
Chrome, Safari, Internet Explorer, Firefox, ikun x'ikun -
u huwa l-browser li tesegwixxi dan partikolari lingwa ta 'programmar.
>> Allura biex tkun ċara, PHP s'issa kien esegwiti jew fil-linja tal-kmand fl
iswed u abjad tieqa tagħna, fuq server bħall-appliance, kompjuter
bħall-appliance, jew huwa kien eżegwiti minn web server
taħdem fuq il-kompjuter.
Iżda l-tema hawnhekk hija li PHP s'issa tkun ġiet eżegwita server-ġenb, hekk
l-utent u browser l-utent qatt ma jara linja tal-kodiċi PHP.
>> Fil-fatt, jekk inti qatt tiftaħ browser għall- website tiegħek jew ieħor u int
attwalment ara kodiċi PHP fil tieqa tiegħek, xi ħadd invitat up.
Għaliex mhuwiex maħsub li jkun mibgħuta lil browser direttament.
Huwa suppost li jiġi eżegwit u mdawwar fis xi ħaġa bħal HTML.
>> Iżda JavaScript huwa essenzjalment l-oppost.
Huwa maħsub biex jitmexxew tipikament ġewwa tal-browser window ta 'utent.
U liema tipi ta 'websajts użu JavaScript allura dawn il-jiem?
>> Bħal litteralment kull website popolari.
Kull websajt li inti guys probabbilment użu ta 'kuljum jużaw JavaScript għall-
sempliċi u anke l- karatteristiċi sexiest.
>> Allura xi ħaġa bħal Facebook Chat jekk tuża dan.
Kif ma li attwalment jaħdmu?
Well s'issa, kollha ta 'l-għalf konna isir bl HTML u PHP jassumi li
inti pull up a URL, u inti hit Ikteb, u tara xi kontenut HTML.
U inti ikklikkja l-link, li tbiddel il- URL, bidliet il-paġna, u rikarigi
xi kontenut ġdid.
Ikklikkja URL ieħor jew jissottomettu formola, inti nikseb whisked għal paġna oħra u
tara xi kontenut ġdid.
>> Iżda bl-użu xi ħaġa bħal Facebook Chat, jew Gchat, jew Google Maps, rarament
ma l-paġna kollha jġedded tali li inti tara l-iskrin abjad mumentarjament u
imbagħad kontenut ġdid.
Pjuttost, paġni tal-web llum huma dinamikament jkollna aġġornati mill-ġdid u
ġdid u għal darb'oħra kull tip tal wara l-kwinti.
U jirriżulta li meta inti tagħmel tmur xi ħaġa bħal Facebook, jew Gchat,
jew Gmail, u l-aġġornamenti paġna awtomatikament mingħajr tagħbija mill-ġdid il-
iskrin kollu, dak li ġara huwa li browser tiegħek għamel tip ta segretament
talbiet addizzjonali HTTP -
mhux għall-paġni web kollu, imma biss għall- biċċiet ftit ta 'data, bħall-
messaġġ instant li l-ħabib tiegħek biss bagħtitlek, jew l-istatus aġġornament li
xi ħadd biss bagħtitlek, jew l-tweet li xi ħadd biss mibgħuta.
Huwa biss tagħmel talbiet ftit għal data, u mbagħad jużaw JavaScript, dan
programmazzjoni lingwa, li jibdlu dak il-paġna web qisu mingħajr il-
server tgħin, mingħajr il-server tiġġenera dak HTML.
>> Għalhekk fil-qosor, JavaScript jistgħu jintużaw mbagħad li mhux biss jġibu data ġodda minn
l-server mingħajr tagħbija mill-ġdid kollu kemm hu paġna jew sottomissjoni ta 'formola.
Hija tista 'tintuża wkoll għall-bidla l-hekk imsejħa DOM -
mudell tad-dokument oġġett -
li huwa biss il-mod fancy għall qal il-siġra tal-HTML
li rajna aħħar darba.
>> Allura biex iserraħ ras, JavaScript huwa sintattikament daqshekk simili li C kif ukoll.
M'hemm l-ebda funzjoni prinċipali.
Inti biss tibda bil-miktub il-kodiċi u se jiksbu eżegwit, jew
interpretat b'mod aktar xieraq.
Kondizzjonijiet se teżamina bħal dan.
Differenti minn C jew PHP għal dik il-kwistjoni.
Espressjonijiet Boolean jew 'ed flimkien se teżamina bħal dan.
Anded flimkien teżamina bħal dan.
>> Swiċċijiet se teżamina bħal dan.
Għal loops se teżamina bħal dan.
Filwaqt loops se teżamina bħal dan.
Tagħmel filwaqt loops se teżamina bħal dan.
>> Dan huwa ġdid.
Allura JavaScript ma jkollux foreach tibni per se, iżda dan jinbena
għall i varjabbli array, ui f'dan każ isir valur indiċi.
Allura huwa xi ftit differenti minn dik foreach, għalkemm verżjonijiet ġodda ta '
JavaScript huma joħorġu l-ħin kollu, hekk anke dawn lingwa karatteristiċi
qed jevolvu.
>> U Bħala twarrib, JavaScript dawn il-jiem jista 'jintuża wkoll fuq server bħad
PHP billi jużaw qafas imsejjaħ Node.js.
Waħda mill-TFS CS50, il Kevin, wassal a seminar fuq Node.js li ikunu disponibbli fuq
cs50.net/seminars.
Mela jekk int kurjuż, taf li inti jistgħu jużaw dan fuq in-naħa server bħala
ukoll, iżda li l-xejra pjuttost reċenti, iżda waħda qawwija f'dak.
>> Dan huwa xi ftit differenti.
Dan huwa firxa fl JavaScript.
U dak strajkijiet inti bħala differenti versus C jew PHP?
Hemm stejjer malajr ftit nistgħu tell hawn.
X'hemm nieqes versus PHP?
>> UDJENZA: [inaudible].
>> DAVID Malan: Iva?
Jiddispjacini, ngħid?
>> UDJENZA: Mhux tiddikjara it-tip ta 'varjabbli.
>> DAVID Malan: Aħna ma tiddikjara it-tip ta 'varjabbli.
Allura fil-fatt pjuttost simili PHP, aħna mhux qed tispeċifika t-tipi ta 'dan il-varjabbli.
Pjuttost, aħna qed aktar ġeneriku qal var għall varjabbli.
Aħna ma jkollhom inkonvenjent PHP tal- sinjal dollaru, li filwaqt li tedious biex
tip, ma tagħmel aktar ċara li xi ħaġa l-varjabbli.
Billi hawnhekk, aħna qed tip ta 'lura għall- Approċċ C billi sempliċiment ssejjaħ
varjabbli bl-isem irridu biex jagħtuh, bħal numri.
U wkoll bħal PHP, għandna parentesi kwadri għall-
Valuri ġewwa li array.
>> Allura varjabbli fil JavaScript wkoll tista 'tidher bħal dan.
Avviż hawn dan huwa string imsejħa s, iżda bl-istess mod li aħna mhux speċifikat
li huwa string.
Hawnhekk għalkemm hija karatteristika li ma jeżistu eżattament fl-istess mod fil-PHP,
iżda ftit simili.
Dan huwa oġġett fil JavaScript.
U l-oġġetti huma tip ta 'l-Armata Svizzera Sikkina ta 'struttura data li inti
tista 'tużahom għal kull numru ta' affarijiet.
>> Hawnhekk, per eżempju, aħna qed tiddikjara kwotazzjoni varjabbli imsejħa.
It-tip ta 'dak il-varjabbli huwa oġġett.
Inti tista 'taħseb dan bħala Struct C li għandha keys u l-valuri.
Simbolu huwa ċentrali.
FB hija valur, apparentement simbolu istokk.
Virgola.
Prezz ieħor huwa importanti, u l-valur tagħha huwa apparentement punt floating, jew
numru iktar ġenerali fir- JavaScript, ta '$ 49.26.
>> Allura PHP ma jkollhom -
ma rajniex fil PHP oġġetti pjuttost bħal dan, imma aħna ma tara Analog,
li kien dak?
>> UDJENZA: [inaudible].
>> DAVID Malan: arrays assoċjattiva.
Allura billi PHP arrays assoċjattiva li sintassi hija qatt ftit hekk
differenti -
rajna il-parentesi kwadri.
Rajna l-simboli vleġeġ stramb.
JavaScript għandha oġġetti, iżda dan huwa aktar differenza semantika u
sinonimu differenti għal issa.
Madankollu, bħala twarrib, PHP għandha wkoll oġġetti b'mod li Java u oħrajn
lingwi jkollhom oġġetti fl ipprogrammar oġġett orjentati lejn.
Iżda aħna ser tuża dawn biss għal tipi ta 'data għal issa.
Oġġetti u matriċi assoċjattiva.
>> Dan wieħed jista 'jagħmilha ftit aktar ċara.
Hawn għaliex l-oġġett huwa utli.
Meta inti tixtieq li tiddikjara student, bħal Zamyla, nistgħu attwalment
jirrappreżentaw biex ngħidu hekk ġewwa ta 'dan oġġett li jużaw parentesi kaboċċi bħad
qabel mazz sħiħ ta 'ċwievet u valuri fil hawn.
Għandna ID, dar, u l-isem għall- Zamyla, segwit b'waqfa u virgola bħala
soltu fl-aħħar.
>> Down hawnhekk ukoll, dan huwa kemmxejn differenti, iżda wkoll qawwija ħafna
dawn il-jiem.
Hawn firxa, u naf li minħabba hemm bracket up kwadru
top u bracket kwadru fil-qiegħ.
U dan huwa firxa ta 'dak data tip apparentament JavaScript?
Dan huwa firxa ta 'jidher bħal tliet oġġetti.
U naf huwa oġġett biss minħabba l-ċingi kaboċċi.
U avviż hemm Brace kaboċċi miftuħa, xi għalf, Brace kaboċċi qrib, comma,
mbagħad ftit aktar, comma, u mbagħad ftit aktar.
Allura dak tliet argumenti separati minn żewġ virgoli.
>> Allura dan huwa firxa ta 'tliet oġġetti.
U kull wieħed minn dawk l-oġġetti tidher li membru student jew persunal ta 'xi
sort, kull ma 'ID, house, u l-isem.
Imma stajt sejjaħ din xi ħaġa imsejħa JSON -
JavaScript Għan Notazzjoni.
U dan huwa format data li attwalment huwa tant popolari ħafna u
Vogue dawn il-jiem li jekk inti tikteb applikazzjoni li juża l-Facebook
API, l-API Twitter, verament kważi kwalunkwe API hemmhekk f'dawn il-jiem,
inklużi xi wħud CS50 stess, il- data ikollok lura ma jkunx
qodma format CSV iskola.
>> Minħabba jfakkru li CSV huwa sempliċi super.
Huwa biss kolonni separati b'virgoli.
JSON data jagħtik aktar metadata.
Hija assoċjati buttuna ma 'kull valur hekk dawn ma jkollhom biss wieħed jassumi li
il-kolonna 0 hija valur wieħed, kolonna waħda hija ieħor, kolonna tnejn huwa ieħor.
Kollox fil oġġett JSON hawnhekk huwa tip ta 'awto-deskrizzjoni, għaliex kull
wieħed mill-ismijiet fil dan il-fajl għandu litteralment isem fil-quddiem ta 'dan bħala
string ikkwotat.
>> Mela ejja tagħti ħarsa lejn ftit eżempji hawn.
Let me jmorru fil-appliance.
U let me go fis vhost tagħna direttorju fis pubbliku.
U let me jmorru fil- JavaScript direttorju.
U ejja imorru quddiem u tiftaħ dom-0.html, fejn DOM ifisser biss
mudell tad-dokument oġġett.
Hu l-għalf siġra li I imsemmi qabel.
>> U let me nipproponi dan li ġej.
Hawn paġna web li korp huwa pjuttost sempliċi.
Allura stabbiliti hawn fil-qiegħ, Avviż I jkollhom forma.
Rajna dawk ta 'qabel.
Din għandha żewġ inputs, li waħda minnhom għandha ID tal-isem, li waħda minnhom għandha tip ta '
jissottomettu, u l-ewwel tip wieħed huwa test.
Allura dan fil-fatt ħsejjes pretty sempliċi.
>> Ejja mur hawn.
Ejja ħa mmorru lura għall din il-paġna hawn.
Ejja jmorru fil localhost, u jmorru fil direttorju JavaScript tagħna, u mur
dom-0, u hawnhekk għandna din il-formola.
Allura dak apparentement kollha din il-paġna ma.
Hija għandha kamp isem ma a Issottometti buttuna.
Imma jien mhux ser tuża PHP hawn.
Jien ser tagħmel naħa tal-klijent kollox biex ngħidu hekk fil JavaScript kif ġej.
>> Avviż li stajt tabilħaqq jingħata l-isem qasam ta 'dan il-kontribut uniku
identifier, li fil-fatt se ħlief lili xi żmien fil-mument.
U avviż stajt introdotti tag ieħor fir-ras tal-paġna web tiegħi, l-
tag.
>> Allura huwa f'dan is-sens li JavaScript huwa lingwa ta 'programmar client-side.
F'dan il-każ, bħal CSS, stajt jitqiegħdu hija dritta ġewwa ta HTML tiegħi.
Imma avviż stajt ddikjarat funzjoni li jistenna ftit bħal PHP
sintattiku, iżda dan huwa attwalment JavaScript, għaliex għal darb'oħra, huwa
client-side fil-browser.
U tieħu raden dak li din se tagħmel, anki jekk uħud mill-sintassi
hawnhekk huwa ġdid.
>> UDJENZA: Say bonjour min.
>> DAVID Malan: Huwa ser jgħidu bonjour lil min żjarat din il-paġna.
Iva, kif?
>> Għalhekk avviż, jirriżulta fl JavaScript hemm twissija () funzjoni.
Dan huwa tip ħafna ta 'funzjoni diqa li verament ftit tendenza li idejqu utenti.
Mhuwiex waħda għandek verament użu tipikament, imma hija malajr u maħmuġin
mod ta 'tip ta' stampar xi ħaġa lil utent grafika
interface, bħal browser.
Avviż hawnhekk li stajt ltqajna string fil kwotazzjonijiet uniku.
Jirriżulta li b'differenza C, JavaScript jista 'effettivament tuża wieħed
kwotazzjonijiet, u franchement huwa biss tip tal-konvenzjoni stilistiċi fost
Programmaturi JavaScript għall-użu kwotazzjonijiet uniku.
PHP, dawn għandhom attwalment ftit tifsira differenti.
Iżda għal issa, biss jafu li dak l-uniku raġuni.
Il-konvenzjoni fl JavaScript huwa spiss biex jużaw kwotazzjonijiet uniku, imma aħna jistgħu jużaw
kwotazzjonijiet doppja fiż-żewġ postijiet ukoll.
>> Allura dan huwa interessanti.
Ifakkar aħħar darba li kellna li istampa fuq l-iskrin li ġibdet siġra
fejn kellek l-HTML node, u l- node ras, u l-node ġisem,
u mbagħad xi test.
Imma kien hemm node wieħed speċjali fil- top ħafna li I imsejħa id-dokument.
Ukoll, jirriżulta b'mod JavaScript, kull ħin tikteb programm JavaScript
fil-browser, ikollok aċċess għal varjabbli globali speċjali.
Simili fl-ispirtu li superglobals PHP, dan wieħed huwa msejjaħ fl
kollha dokument zghar.
>> Huwa simili Struct, iżda dan Struct għandha wkoll funzjonijiet ġewwa ta 'dan.
Allura Struct C biss għandu data tipikament.
Iżda oġġett JavaScript kif dan teknikament huwa wkoll il-funzjonijiet,
inkella magħruf bħala metodi, ġewwa ta 'dan.
U inti tista 'sejħa funzjoni ġewwa ta' dan l-oġġett pjuttost litteralment tagħmel tagħha
isem, dot, u allura l-isem ta ' il-funzjoni, jew għal darb'oħra metodu.
Huwa biss sinonimu, verament.
>> U dak ma din il-funzjoni do?
Tista 'tip ta' raden mill-isem tagħha.
Get element mill ID.
Allura dan se tfittex il-paġna web, tfittxija li siġra, tfittex
kwalunkwe node, element AKA, għandha ID unika ta 'isem unquote kwotazzjoni.
U allura dak li jien se jagħmlu?
Jien ser tikseb l-valur ġewwa ta ' li node fil-siġra, u jien ser
li b'xi mod jgħidu bonjour dak l-isem.
>> Allura tieħu raden, anke jekk aħna ħadthom ma rajt dan għadu, liema jagħmlu l-plus
simboli jfissirx hawn u hawn probabbilment?
>> UDJENZA: concatenate.
>> DAVID Malan: concatenate.
Dritt, u dawn huma biss tip ta 'disinn deċiżjonijiet
nies għamlu snin ilu.
Fil PHP, inti concatenate affarijiet ma tikek.
Fl C, inti jaqbżu permezz ta 'diversi ċrieki u sejħa funzjonijiet simili strcopy () jew
strcat () jew funzjonijiet oħra bħal dawn.
Iżda fl JavaScript, tuża pluses.
Allura dan huwa biss concatenating tliet kordi -
hello, isem, u mbagħad punt exclamation.
>> Allura meta u għaliex din il-funzjoni imsejħa għalkemm?
Well, tieħu raden mill- HTML fil-qiegħ.
Għaliex huwa insellem () imsejħa, jew meta?
>> Apparentement, bħala l-aħjar I tista 'tgħid, fuq iressaq, meta tiġi ppreżentata din il-formola,
Jien ser nagħmel kull ma huwa ġewwa ta 'dawn il-kwotazzjonijiet.
U speċifikament, jien ser sejħa insellem () u mbagħad jirritornaw falza.
>> Well, ejja ara dak ix-xibka effett hawnhekk huwa l-ewwel.
So let me jimxi 'l quddiem u t-tip fi, ngħidu aħna, Loren, Submit.
Hello Loren.
Ejja ara jekk forsi dan kien biss implimentazzjoni xxurtjati.
Nope.
Allura huwa ittajpjar kwalunkwe isem I attwalment stabbiliti hemmhekk.
>> Imma avviż dak li ma nbidilx.
Il-URL għadu dom-0.html.
M'hemm l-ebda register.php.
M'hemm l-ebda tieni fajl.
M'hemm l-ebda attribut azzjoni.
Allura x'inhi din falz ritorn preżumibbilment tagħmel?
Why am I ssejjaħ insellem () u mbagħad jirritornaw falza probabbilment?
Liema normalment jiġri meta tikklikkja Issottometti fuq formola li anke għandna
raw fil-passat ġimgħa?
>> UDJENZA: [inaudible].
>> DAVID Malan: Hija tmur x'imkien, right?
Hija tmur għal xi URL destinazzjoni.
Imma ma rridx li jiġri hawn.
Irrid paġna web tiegħi li tkun kompletament dinamika bħal Gmail, fejn darba int
hemm, inti toqgħod hemm.
Il-URL ma jinbidilx b'mod li jindika l-paġna kollha hija tagħbija mill-ġdid.
Pjuttost, I biss trid tibdel xi ħaġa bħal stampar ħaġa
hawn fuq l-iskrin.
>> Well let me jitnaddfu dan up ftit.
Let me jiftħu mhux dom-0, iżda let me jiftħu dom-2.
Just sabiex inti stajt tidher xi sintassi hawn.
>> Jirriżulta li dak li aħna biss ma qed tuża JavaScript prima.
Allura dan huwa verament il-lingwa JavaScript.
Xi wħud inti tista 'taf librerija imsejjaħ jQuery.
>> Allura jQuery mhijiex l-istess Ħaġa bħala JavaScript.
Huwa biss librerija li verament smart Guy kiteb u popularized bħal
li kważi kulħadd fid-dinja issa użi jQuery meta jużaw JavaScript.
U fl-ewwel daqqa t'għajn, onestament, huwa jistenna ftit aktar cryptic.
Imma inti ser issib, speċjalment jekk inti tmur hemm għall-proġett finali tiegħek ma 'web
żvilupp, inti ser issib li dan cleans affarijiet up u jiffranka pjuttost
ftit linji tal-kodiċi.
>> Mela ejja biss t'għajn lejn kif din il-forma qed taħdem.
Avviż dak li għamlet I neħħi apparentement minn HTML tiegħi?
M'hemm l-ebda fuq jissottometti handler biex ngħidu hekk.
M'hemm l-ebda attribut.
Għaliex inti taf, liema I ma verament simili?
Ħassejtni qisni konna jaqgħu fis drawwiet qodma hemmhekk.
Biss bhalu kienet tibda jħossu sloppy intermingle kemm CSS ma
HTML, għax int tip ta 'jitfg lingwi differenti kollha fuq il-
post, bl-istess mod ma din tibda tħossok bħal triq ħażina li jonqsu fejn
Jien tqegħid kodiċi JavaScript ġewwa tal tiegħi HTML minflok factoring out.
>> Allura dak hu l-lezzjoni hawn.
Fil dom-2.html, jien factoring out.
U jien tagħmel affarijiet ftit differenti.
Għal issa, jien ser mewġa idejn tiegħi lejn dak li dan verament ma
taħt il-barnuża.
Iżda biss għal issa jassumi li l-ewwel linja tal-kodiċi fil din il-librerija
imsejħa jQuery ifisser biss meta l- dokument huwa lest, jagħmel dan li ġej.
>> Minħabba paġni tal-web tista 'tieħu xi żmien biex tagħbija.
Inti tista 'tkun fuq l-internet bil-mod konnessjoni, u jista 'jiġi għażil
u għażil, u finalment huwa mgħobbija.
Dan l-kodiċi biss jgħid stenna sakemm il-paġna kollha hija lesta, id-dokument
hija lesta, qabel ma teżegwixxi dan il-kodiċi.
>> U issa avviż, dan huwa probabbilment l-aktar utli ewwel
jieħdu l bogħod mill jQuery.
Din il-linja hawnhekk huwa simili ħafna fl-ispirtu għal din il-linja ħafna itwal hawn.
Billi fil-kodiċi JavaScript prima, hemm jeżisti dokument oġġett globali li
għandha funzjoni msejħa getElementById (), l-persuni li kiteb
jQuery simplifikata li biss jgħidu sinjal dollaru, u mbagħad ġewwa ta '
parentesi tpoġġi żewġ kwotazzjonijiet, u mbagħad tpoġġi simbolu hash segwita mill-
ID unika inti tixtieq li grab.
Allura dan huwa ekwivalenti għal document.getElementById.
>> Sadanittant,. Tissottometti ifisser biss fuq sottomissjoni ta 'kwalunkwe forma int
jirreferu għall fuq ix-xellug, mur quddiem u tesegwixxi dan.
Imma issa dan huwa l-kurżità wisq.
X'hemm stramb dwar dak Stajt enfasizzat hawn?
Mhux biss huwa tip ta 'sintattiku ġdid, hemm ukoll xi ħaġa nieqsa.
>> UDJENZA: Huwa biss imsejħa funzjoni?
Mhuwiex sejjaħ allert?
>> DAVID Malan: Yeah.
Ukoll, sabiex twissija () huwa jistabbilixxi hawn, li tkun ġusta.
Imma m'hemm l-ebda referenza ta ' isem, bħal inti taf, foo jew
xi ħaġa up here.
U fil-fatt, din hija waħda mill-karatteristiċi ta 'JavaScript li pjuttost
qawwija, iżda wkoll pjuttost ġdida.
U PHP attwalment għandha dan ukoll.
>> Let me imorru quddiem u tagħmel ħaġa reali malajr.
Let me imorru quddiem u jdaħħlu dan hawn.
Let me jagħmlu dan.
Funzjoni.
Ejja sejħa dan handler ().
A funzjoni handler biex ngħidu hekk.
Xi ħaġa li mankijiet xi operazzjoni.
Let me tnaddaf indentazzjoni tiegħi.
U jdaħħlu dan hawn.
U mqiegħda dak hawn.
Yep.
OK.
>> Allura issa I jkollhom funzjoni msejħa handler () li jien ma verament jafu
x'tagħmel s'issa.
Hija biss għad għandha li Jittieħed.
Whoops.
Ħa wisq.
Ejja nagħmlu dan.
Kull dritt.
Jiddispjacini.
Kull dritt.
Let me jagħmlu dan.
OK.
Li jistenna sbieħ u straight jgħaddi issa.
Let me jagħmlu dan.
Jagħmlu dan.
U OK.
Allura issa, ejja tpoġġi dan hawn fuq.
Nru aktar ipprogrammar fuq il-fly.
OK.
>> Allura issa, ejja mur lura għall- fejn l-istorja bdiet.
Preċedentement, I qal li din il-linja hawn ifisser li meta d-dokument huwa lest, mur
quddiem u tagħmel dan.
What do I trid tagħmel?
Well speċifikament, Irrid immur quddiem u tagħmel dan li ġej.
Jesegwixxi din il-linja tal-kodiċi, u mbagħad dak li nixtieq li inti tagħmel huwa sejħa dan
tiffunzjonax meta tiġi ppreżentata l-formola.
>> Issa dan huwa dak interessanti.
Din mhix fiha nnifisha funzjoni.
Avviż I am not tqegħid parentesi hawn fil-mod normali.
Jien litteralment jgħaddi funzjoni msejħa handler () funzjoni oħra
imsejħa jissottomettu () bħala argument bħala għalkemm huwa simili varjabbli.
U dan huwa wieħed mill-karatteristiċi ta ' JavaScript, hija funzjonijiet infushom
huma verament ftit oġġetti.
Fil-fatt, dawn qed verament ftit varjabbli ta 'xi tip.
U jekk l-isem tal-funzjoni hija handler (), m'hemm l-ebda raġuni ma nistax
jgħaddi bi bħala argument hawn.
U dan ifisser li meta l-formola bl-ID tal demo huwa
sottomessa, sejħa din il-funzjoni.
>> Imma issa jekk I jneħħu kollha ta 'dan, għaliex imbagħad ma I forsi do
dan mument ilu?
Ukoll, din hija funzjoni anonimu.
Minħabba franchement, I realizzati għaliex jien bothering iskart ħin tiddikjara
funzjoni msejħa handler () biss sabiex jikkonfutaw fil-wieħed u biss f'post wieħed?
Jekk I m'għandhomx bżonn l-isem, u jien ma jeħtieġ li hija sejħa f'aktar minn post wieħed,
ejja biss jimplimenta l-funzjoni dritt fejn I bżonnha.
U hekk JavaScript u PHP appoġġ liema huma msejħa funzjonijiet anonimi li
ippermettuli biex tagħmel eżattament dan hawnhekk.
>> Iżda aħna qed biss grif tal-wiċċ.
Ejja tease biss bi ftit eżempji finali hawn.
>> Jekk immur fis quote.php.
Avviż li dan huwa attwalment PHP funzjoni, programm PHP, li I kiteb
li jistenna parametru HTTP imsejħa simbolu, u I jistgħu jgħaddu fil-
valur bħal FB.
U jekk aħna verament tħares lejn is-sors kodiċi, dan huwa juri dubji free website
imsejħa Yahoo Finanzi, bħal p-set seba ', u huwa jirritorna għall me
xi ħaġa fil apparentement l- format magħruf huwa JSON -
JavaScript Notazzjoni Għan.
Huwa biss oġġett.
Avviż tal-braces kaboċċi, l-kwotazzjonijiet, -kolon, u l-virgoli.
>> Issa sadanittant, dan huwa pretty jibred.
Minħabba I tista 'probabbilment tuża programmar lingwa li jiġġeneraw URLs
li look like dan dinamiku, dritt?
I jistgħu jbiddlu dan Google u terġa 'lura Google
prezz tat-titoli ta '$ 1,017.55.
Mela ejja ara jekk aħna ma tistax tuża dan issa.
>> Let me go għal ajax-0 hawn, li qisu li ġej.
Huwa biss website li tkun forma ma 'buttuna.
Let me here jimxi 'l quddiem u tip YHOO għall-istokk simbolu Yahoo, ikklikkja Get
Quote, u issa avviż stajt gotten twissija ma 32.86.
>> Let me fatt imorru għal verżjoni fancier ta 'din il-paġna, verżjoni tnejn, u
tip fil ejja ngħidu Microsoft, MSFT.
Get Quote.
U issa avviż, l-ebda twissija.
Avviż fejn jgħid prezz li għandu jiġi stabbilit?
Hemm l-aktar sempliċi ta 'eżempji li ħjiel fuq dak Gchat, u Facebook
Chat, u Gmail, u oħrajn bħal websites qed jagħmlu mill-fatt
jinbidlu l-web page.
>> Avviż dan.
Let me rikarigu-paġna.
Let me tiftaħ Ispettur Chrome.
Let me mur l-elementi tab stabbiliti hawn.
Issa avviż jekk I zoom isfel hawn u jinfetaħ dan up, avviż li dan huwa tiegħi
HTML DOM - dokument mudell oġġett tiegħi.
Dan huwa HTML tiegħi.
Imma issa avviż, anki jekk li għaddej li jkun ftit diffiċli biex tara kemm
postijiet f'daqqa, jekk I tip fil FB up hawn, tara l-qiegħ
ta 'l-iskrin biss.
>> Huwa fil-fatt jinbidlu HTML tiegħi fuq il-fly.
U huwa jagħmel dan sempliċement billi tagħmel xi ħaġa bħal din.
Jekk I jiftħu ajax-2, avviż implimentazzjoni xi ħaġa sexy bħala
li, għalkemm huwa pjuttost ikrah, iżda bħala sofistikata hekk kif dak
funzjonalment, għandha xi HTML fil-qiegħ.
Imma avviż I użati biex tag.
Imxejna ma użawx din qabel, iżda dan huwa bħal, iżda ma seħħ
kollox fuq linja ġdida.
Hija biss jagħmel reġjun rettangolari fuq l-istess linja essenzjalment.
>> Avviż li I tatu ID ta 'prezz.
U jirriżulta billi tuża l-istess JavaScript librerija, I għandhom funzjoni
imsejħa kwotazzjoni () li sejjaħ kull meta il-formola tiġi sottomessa.
U dak li qed nagħmel huwa dan.
Jien tiddikjara varjabbli JavaScript imsejħa url, iffrankar l-valur
quote.php? simbolu =.
Fi kliem ieħor, I myself am bidu jħejju talba HTTP, u mbagħad
Jien concatenating fuq li bil-plus ikun x'ikun l-element bl-ID
ta 'simbolu huwa, li l-avviż huwa li qasam tat-test dritt isfel hawn.
Allura bħad kellna forom fil-passat.
>> U mbagħad jirriżulta fil jQuery, jekk inti sejħa. val (), li s-sejħiet ta 'val
funzjoni, funzjoni valur, li gets x'ikun l-utent ikun ittajpjat pulzieri
U mbagħad kollha ta 'l-netwerk tat-traffiku li jiġri huwa dan.
$. GetJSON.
>> U bħala twarrib, sinjal dollaru huwa biss notazzjoni shorthand.
Huwa tassew jQuery.getJSON.
Get lili biex JSON minn dan il-URL, u meta it-talba taqa 'lura, sejħa dan
funzjoni u jgħaddu l-argument kwalunkwe daħlu lura mill-server.
>> Allura fi kliem ieħor, jekk immur lura għall- browser, u mmur lura għall quote.php,
dak browser tiegħi qed tagħmel huwa jkollna din blokki ta 'data.
U meta mmur din il-paġna web hawn, avviż jekk aħna minflok tmur għall-network
tab u ċar, u mbagħad it-tip fil- xi ħaġa bħal GOOG għall-Google u Get
Quote, avviż il-paġna ma nbidilx.
Iżda talba HTTP saret, u liema daħal lura hawn jekk inħarsu lejn il-
rispons huwa mazz sħiħ ta 'JSON li aħna aċċessati finalment ma
din il-linja sempliċi hawn.
>> Data huwa dak li kien gotten mis-server.
Prezz huwa l-isem tal- ewlieni I jimpurtahom.
Allura data.price tagħti me dak.
>> Issa sadanittant, u dan hija l-aħħar eżempju.
Tista 'tagħmel iżda aktar bil-paġna.
Wieħed fatt, ukoll tnejn.
Aħna jista 'jġib lura l- tag, jekk tiftakar dan.
Li JavaScript.
Nistgħu nagħmlu dan.
Ferm eċċitanti.
Aħna ser tħalli li bħala cliffhanger.
>> Iżda aktar excitingly, inti tista ' tagħmel affarijiet bħal dan.
Jekk immur għall-ġeolokalizzazzjoni-1, jirriżulta li Chrome jaf li aħna fil
lonġitudni latitudni 42.37. -71.10.
Allura hemm saħansitra aktar hemm għad-dispożizzjoni tiegħek.
Iżda aktar fuq dik il-ġimgħa d-dieħla.
Ara inti Tnejn.