[Powered by Google Translate] [Ġimgħa 9]
[David J. Malan - Università ta 'Harvard]
[Dan huwa CS50. - CS50.TV]
Kull dritt. Merħba lura. Dan huwa CS50, u dan huwa l-bidu tal-ġimgħa 9.
Illum aħna niffukaw b'mod partikolari fuq id-disinn, m'għadhiex fil-kuntest ta 'C
iżda fil-kuntest ta 'PHP u daqsxejn ta' SQL u daqsxejn ta 'JavaScript,
partikolarment lejn l-aħħar ta 'kemm pset 7 u wkoll proġett finali tiegħek.
Fil-fatt, jekk inti f'dak il-proġett finali tiegħek
fejn preżumibbilment bħala ta 'siegħa jew hekk ilu inti inqas bdew jaħsbu ftit
għall-proġett finali tiegħek u inti qed jaħsbu li inti tixtieq li jikkollaboraw ma '1 jew 2 klassi,
jekk int trouble wara konnessjoni ma qal klassi,
tħossok liberu li timla l-formola fil-cs50.net/partners/form.
Hija biss tistaqsi lilek min int, liema tip ta 'proġett inti qed jaħsbu dwar,
fejn inti tgħix biss għal raġunijiet loġistiċi.
U mbagħad jekk inti tixtieq li żżomm għajnejk fuq matul il-ġimgħa d-dieħla jew hekk il-URL spreadsheet hemm,
inti tista 'mbagħad tara verżjoni jinqraw-biss tal-dok Google
li aħna qed jiġbru dik l-informazzjoni.
Mela jekk inti tixtieq taħdem ma 'xi ħadd, bil-mezzi kollha li tħossok liberu li jilħqu lin-nies
permezz ta 'dak il-mekkaniżmu.
Iżda l-maġġoranza ta 'folks jagħmlu solo xogħol. Dak totalment multa.
Allura ma jħossu li dan huwa f'kull mod obbligatorju.
Nhar il-Ġimgħa kien biss lili u ftit mill-tim fil hawn,
teatru vojta għall-aktar parti.
Kien hemm 3 turisti seduta up hemm, b'tali mod li kien ftit skomdi.
Dak li aħna tkellem dwar kien databases u tkellimna dwar pset 7 ftit.
U jekk inti ma jiġri li jaqbdu li fuq video għadha biss, li l-multa.
I ser jipprova jiddefinixxi xi termini li aħna kieku jieħdu għal mogħtija
ibbażata fuq lecture nhar il-Ġimgħa.
>> Imma llum aħna qed tmur biex nipprova nikseb inti l-punt
ta 'mhux biss tkun tista' tagħmel xi ħaġa simili pset 7
imma verament jifhmu x'inhu għaddej taħt il-barnuża,
partikolarment uħud mill-estrazzjoni li aħna stabbiliti fil-fajl functions.php
biex jagħmlu l-ħajja tiegħek daqsxejn aktar faċli iżda sabiex inti finalment jifhmu
b'tali mod li meta l-roti ta 'taħriġ jiġu off fi ftit ġimgħat inti xorta tista' jgħix
fid-dinja reali u jagħmlu dan il-għalf mingħajr ebda qafas CS50 taħt inti.
Dan _SESSION $, għal dawk minnkom li huma familjari
jew li diġà qabad il-video fuq il-Ġimgħa, dak ma SESSJONI ejjew nagħmlu
f'applikazzjoni tal-web PHP bbażati?
Din hija varjabbli superglobal, li jfisser li huwa simili fl-ispirtu li IKOLLOK u POST
u fi ftit oħrajn, imma dak li hu dan ħaġa utli għall?
>> X'inhu SESSJONI jintuża? Yeah. [Student] Logging pulzieri
Jiddispjacini? [Student] Logging pulzieri Logging pulzieri Tabilħaqq.
Fl pset 7 aħna qed jużaw dan superglobal SESSJONI biex jiffaċilitaw qtugħ pulzieri
U x'hemm sbieħ dwar dan superglobal hija li huwa firxa assoċjattiva.
Firxa assoċjattiv, recall, huwa biss firxa iżda li l-indiċi m'għadx għandek tkun in-numri
bħall 012. Huma jistgħu jkunu numri jew jistgħu jkunu anki kordi.
U hekk jekk inti stajt dived fis pset 7 għadhom, inti tista 'recall li aħna qed jaħżnu ID ewlieni imsejjaħ
ġewwa ta 'din il-firxa assoċjattiva li l-valur hija xi ħaġa simili 123 -
tkun xi tkun il bħalissa illoggjat ID utent huwa.
Il-motivazzjoni għal dan hija li anki wara l-utent ikun żar localhost
jew website tiegħi aktar ġenerali u allura dawn ħadthom illoggjat,
anke jekk ma jkunx ikklikkja rabta jew jirritornaw għall-website tiegħi għal 5 minuti
jew saħansitra siegħa jew anki ġurnata iżda dawn iħallu tieqa browser tagħhom miftuħa,
permezz ta 'dan superglobal nista tiftakar li huma logged pulzieri
>> Fi kliem ieħor, hija tippermetti lili biex jaħżnu xi ftit twil xejn tul nixtieq madwar utent.
U inti tista 'taħseb li verament bħala l-Inkarnazzjoni ta' shopping cart.
Postijiet bħal Amazon ovvjament let inti tpoġġi l-affarijiet fis-shopping cart,
iżda HTTP, il-protokoll li s-setgħat tal-Web, huwa mingħajr stat
fis-sens li meta inti żżur il-websajt,
għall-parti l-aktar inti ma għandekx xi konnessjoni tan-netwerk kostanti
bejn browser tiegħek u s-server.
Hekk kif inti ħadthom jitniżżel l-HTML u l-JPEGs u l GIFs u dak kollu li,
il-konnessjoni tmur bogħod u inti biss għandek kopja tal-HTML u whatnot mis-server.
Iżda jekk il-server trid tiftakar xi ħaġa dwarek,
il-piż huwa fuq il-server li attwalment jirreġistra dik l-informazzjoni.
U għalhekk inti l-programmer li jkollhom kontroll fuq is-server
tista 'tpoġġi xejn aktar li trid ġewwa ta' din il-firxa assoċjattiva superglobal
u se jkun hemm il-ħin li jmiss l-utent jiġi lura,
jekk huwa minuta jew saħansitra ijiem wara, sakemm ma jagħlqu tieqa browser tagħhom,
f'liema SESSJONI punt tisparixxi.
Allura huwa ħażna effimeru, huwa mhux persistenti, u huwa maħsub li jmorru lil hinn
hekk kif l-utent tagħlaq browser tagħhom - mhux biss li tab, ħafna drabi l-browser kollu,
b'hekk effettivament qtugħ l-utent barra.
Allura kif dan huwa ħaġa fil-fatt implimentati?
Ejja tagħti ħarsa lejn eżempju sempliċi ħarisna lejn il-Ġimgħa.
Għal dawk familjari, kien sempliċi kemm dan.
Din hija paġna web li l-uniku skop fil-ħajja huwa li tell me
kif ħafna drabi I żaru din il-paġna.
Dan huwa l-ewwel darba hawnhekk nhar it-Tnejn li I miżjura dan, hekk jgħid 0 darbiet.
>> Imma jekk jien tibda tagħbija mill-ġdid din il-paġna, jgħid 1 ħin, 2, 3, 4, 5,
u dan eventwalment se biss iżommu fuq jingħaddu up, up, up, up, up
għal kull darba I attwalment ikklikkja Reload fuqha.
Allura kif dan huwa xogħol? Let me go ġewwa tal dan il-fajl imsejħa counter.php.
Il-parti ta 'fuq ta' dan huwa kummenti kollha blu, imma l-parti interessanti huwa hawnhekk.
Fuq il-linja 13 nitolbu dan session_start funzjoni,
u li hija litteralment kull ma għandek bżonn tagħmel jekk inti tixtieq li jkollok aċċess
għal dan superglobal speċjali msejħa $ _SESSION.
Li jagħmilha possibbli, u aħna ser tara fil-mument kif dan kollu possibbli.
Fil-linja 16 avviż dak li qed nagħmel.
Jekk il-kjavi, imsejħa kontro - fi kliem ieħor, il-valur indiċi - "counter"
jeżisti ġewwa ta 'din il-firxa imsejħa SESSJONI, allura dak am I tagħmel miegħu fil-linja hawn taħt?
X'inhu linja 18 tagħmel?
>> [Rispons istudent inaudible] X'hemm li? [Student] Kif taħżen il-valur. Tajba.
Huwa ħażna l-valur li fil SESSJONI dritt issa fil-varjabbli ġdid temporanju lokali,
$ Counter kollha zghar.
Avviż li PHP huwa diġà jkunu ftit għażżien hawn.
Avviż aħna ma jkollhomx ebda referenza ta 'int jew float jew spag jew xi ħaġa bħal dik
għaliex PHP huwa dgħajjef ittajpjat, fejn inti ma għandekx biex tispeċifika t-tip ta 'varjabbli,
u f'dan il-każ hawnhekk stajt lanqas iddikjarat encore.
Jien tiddikjarah ġewwa ta 'dawn ċineg kaboċċi u b'differenza C, dan huwa attwalment okay.
Ma jimpurtax kemm profondament nested dikjarazzjoni tal-varjabbli huwa fil-PHP -
ġewwa ta 'Brace kaboċċi, ġewwa ta' Brace kaboċċi u simili -
se f'dak il-mument fil-ħin jeżistu għall-bqija tal-programm,
għall-aħjar jew għall-agħar.
Allura immedjatament isir globali hekk kif inti definizzjoni għalih kif aħna qed tagħmel hawn.
>> Inkella, jekk ma nsibx li hemm xi ħaġa fil-superglobal SESSJONI,
Jien apparentement initializing din il-kontro-varjabbli għal 0,
b'hekk biss jekk wieħed jassumi l-utent qatt ma kien hawn qabel.
U allura dan il-kors huwa inkrementazzjoni il-bank kif?
Jien aġġornament tal-valur li l-ġewwa ta 'din il-firxa assoċjattiva
billi dan ikun iffissat ugwali għal kwalunkwe kontro bħalissa huwa + 1.
Jekk I iscroll hawn biex l-HTML tal-paġna, huwa attwalment pjuttost sempliċi.
All I jkollhom fil-korp ta 'din il-paġna hija, "Inti żaru dan is-sit ħinijiet hekk u hekk."
U dan huwa tibni PHP.
Jekk inti tagħmel <? =, Dan huwa ekwivalenti effettiv għal dak il-funzjoni?
Huwa tassew ekwivalenti għal xi ħaġa bħal printf, li Rajna ħafna drabi fis-C,
għalkemm kif inti tista 'taf diġà mill-spec fil pset 7,
istampar hija wkoll funzjoni li biss prints xi ħaġa, ma attwalment jużaw kodiċijiet format,
u inti tista 'attwalment tgħid eku ukoll.
Huma qed kollha dejjem hekk ftit differenti anki jekk l-effett nett huwa finalment l-istess.
Allura dan l-użu tas-sinjal ugwali huwa biss tip ta 'mod eleganti ta' kif isir dan
aktar qosor milli suppost kieku tkun kapaċi.
Allura li kollox dan is-sit ma. Hija prints l-valur tal-counter.
Kif huwa dan kollu verament jiġri?
Inti tista 'tfakkar fil-ġimgħa jew hekk ilu bdejna tħares taħt il-barnuża
lejn kif web page taħdem billi jużaw dan tab Spettur.
>> Chrome għandu dan kemm fil-verżjoni Mac, il-verżjoni tal-Windows, u anki l-verżjoni Linux,
u Firefox u IE għandhom mekkaniżmi simili fejn għandek dan debugger built-in
ġewwa tal-browser.
Ejja tagħti ħarsa lejn dan li ġej.
Imxejna ltqajna mazz sħiħ ta 'tabs hawn, u tfakkar li l-waħda leftmost hija Elementi,
u l-ebda kwistjoni kif godawful-HTML u JavaScript huwa fil-paġna,
ifakkar li l-tab Elementi inti tista 'attwalment jinnavigaw l-HTML ġerarkikament
u sbieħ u pulit.
Mela jekk inti qed tipprova jitgħallmu minn websajt bħall-Google jew Facebook
jew verament xi website, tirrealizza li int probabilment aħjar off
tħares lejn il-kodiċi sors b'dan il-mod għall-kuntrarju viewing-sors prima,
li jista 'jkun mess, kif aħna stajt tidher speċjalment fuq is-sit tal-Google.
Mela jekk jien minflok ikklikkja fuq il-tab Netwerk hawn,
ejja ara x'inhu għaddej meta I żjara din il-paġna.
Ewwel let me ċar cache tiegħi.
Jien se jmorru fil Settings fil Chrome u mbagħad mur Istorja
u mbagħad Ċara data kollha browsing.
Inti jista 'jintuża biex tagħmel dan għal skopijiet oħrajn, [daħk]
iżda meta niġu għall-websajts li qed jiżviluppaw, huwa attwalment utli -
jekk int laughing inti taf. [Daħk]
Huwa fil-fatt verament utli meta jiżviluppaw websajts għaliex ir-realtà hija
affarijiet simili cookies u affarijiet simili fajls HTML, fajls Cached Cached JavaScript
jistgħu attwalment issir ras kbir, għax jekk għal kwalunkwe raġuni
il-browser jiddeċiedi li cache xi fajl u għadhom inti stajt għamel bidliet fil dan il-fajl fuq is-server
iżda l-browser ma verament induna li l-fajl nbidlet
u għalhekk ma attwalment terġa 'tniżżel dan anki meta inti ikklikkja l-buttuna Reload,
wieħed mill-modi l-aktar surefire li biss tiżgura l-tort mhux bil-kodiċi tiegħek,
huwa ma 'l-imġiba tal-browser, huwa li jmorru fil hawn fil-browser tiegħek
u biss ċar l-istorja kollha sabiex ma jkun hemm l-ebda konfużjoni.
>> U mbagħad jekk int verament tixtieq li tkun paranojde, nieqaf il-browser, jerġa,
u mbagħad jagħmel żgur kulħadd qed taħdem kif mistenni.
Allura fil-qosor, cache ikklerjar huwa tajjeb meta jkun qed jagħmel l-iżvilupp.
Allura hawnhekk għandna l-tab Network.
I qabel kien żar is-sit 9 darbiet, iżda let me imorru quddiem issa u kklikkja Reload.
U jien lura għal 0.
Ejja attwalment ara kemm huwa li dan superglobal SESSJONI qed tiġi implimentata.
Jien ser ikklikkja fuq it-talba HTTP 1 li kien sar,
u dan il-tieqa debugging tikri me tfittex ġewwa ta 'dan.
Hawnhekk nara biss ir-rispons mis-server, li mhuwiex interessanti.
Stajt rajt dan fi kwalunkwe numru ta 'modi.
Imma x'hemm teknikament interessanti huma l-headers.
Jekk I iscroll hawn u tiffoka fuq l-headers talba u kklikkja sors fehma,
dak li jien ser tara hija litteralment it-talba HTTP
li biss marru mill-browser tiegħi għall-server,
IKOLLOK huwa l-kelma operattiva u mbagħad / counter.php huma l-isem fajl,
HTTP/1.1 sempliċement il-verżjoni ta HTTP li browser tiegħi qed tuża.
Din il-linja hawnhekk hija tifkira ftit mill-browser għall-server dak l-isem tas-server huwa
li trid biex jitkellem.
U allura l-bqija ta 'dan huwa kultant interessanti imma mhux rilevanti dritt issa.
>> Dan huwa biss it-tip ta 'kurżità.
Cryptic għalkemm din is-sekwenza huwa, f'kull ħin browser tiegħek żjarat website
huwa jinforma lill-server dak browser inti qed tuża
u liema sistema operattiva inti qed tuża u liema verżjoni tiegħu.
Mela jekk inti stajt qatt staqsiet kif websajts bħal CNN u whatnot
taf x'inhuma l-persentaġġi huma ta 'utenti Mac fuq l-utenti tal-Web PC,,
Utenti IE, l-utenti Chrome u simili, huwa minħabba kollha ta 'browsers tagħna
huma javżak kull sit elettroniku uniku hemmhekk dak li aħna.
Dan ma jfissirx neċessarjament jinkludu informazzjoni personalment identifikabbli,
iżda ma tgħid il-server liema indirizz IP tiegħek u għalxiex browser u OS qed tuża.
Allura dak fejn din l-informazzjoni.
Imma x'hemm aktar interessanti issa meta niġu għal dawn is-sessjonijiet hija l-header rispons.
Let me ikklikkja ħsieb għajn jmiss rispons.
X'hemm interessanti hawnhekk huwa ftit affarijiet.
1, sirna lura kodiċi istat ta '200.
Aħna qatt ma tara dan il-kodiċi istat minħabba li tfisser kollox huwa tajjeb.
Dan ifisser litteralment okay b'kuntrast ma 'xi ħaġa oħra.
X'hemm numru aħna kultant tara li l-ħażina? [Student] 404.
, 404 fajl ma nstabx, 403 inti tista 'tkun ostaklu fuq diġà,
li huwa pprojbit, li jfisser li inti nesa xi ħaġa chmod, l-aktar probabbli.
U hemm mazz ta 'oħrajn.
>> Down hawn, dan huwa xi ftit crazy.
I really biss kiteb dan il-fajl ftit minuti ilu mill pasta fis gedit.
Għaliex ma din il-paġna tiskadi fl-1981 qabel ma jkun hemm verament kien Web?
X'qed jiġri hemmhekk?
>> [Inaudible student rispons] It-timbru ħin. Iżda għaliex?
Huwa kemmxejn arbitrarja, iżda huwa attwalment utli.
X'inhu dan huwa qal lill-browser tiegħi huwa dan il-fajl PHP inti stajt biss mitlub ikun diġà skada.
Fil-fatt, skada 30 sena ilu.
Imma dak li verament ma jfisser?
Dan ifisser biss l-ħin li jmiss l-utent żjarat din il-paġna,
kemm permezz tagħbija mill-ġdid jew jiġu ttajpjati l-URL fl-address bar,
aċċerta ruħek li tmur u jġibu kopja ġdida ta 'dan.
Din hija tip ta 'eżempju ta' fqigħ cache,
kelma stupid li sempliċiment ifisser tipprova li jiskoraġġixxu browsers
mill-fatt HTML caching li kien mibgħut minn server
sabiex inti ma aċċidentalment hit rikarigu u mbagħad tara l-istess verżjoni tal-fajl.
Inti fil-fatt tixtieq l-server li tibgħat kopja ġdida.
Allura l-fatt li huwa 1981 ifisser biss li dak hu l-appliance hija għażla
bħala d-data arbitrarju fl-imgħoddi.
Iżda l-linja mmerraq reali issa huwa dan wieħed.
Anki qabel 50 int probabilment vagament familjari ma cookies.
Bħala dritt issa, speċjalment fost dawk inqas komdi jew fl bejn,
dak li huwa cookie fil-fehma tiegħek dritt issa
anke jekk aħna qed madwar biex jagħmlu komprensjoni tiegħek aktar tekniku?
X'hemm cookie? Yeah.
[Student] Informazzjoni dwar l-utent, bħal jekk dawn ħadthom miktub utent isem tagħhom jew xi ħaġa.
>> Tajba. Hu l-informazzjoni dwar l-utent, jekk dawn ħadthom ittajpjat fl-isem l-utent tagħhom diġà.
Cookies huma mod li bih servers tista tiftakar xi ħaġa dwar l-utent.
U dak cookie verament huwa fajl huwa test jew xi sekwenza ta 'bytes
li l-mħawla mill-server ġewwa tal-browser tiegħek,
u ġewwa ta 'dan il-fajl jew fost dawk bytes huwa xi tip ta' identifikatur.
Forsi huwa litteralment isem l-utent tiegħek, iżda aktar spiss huwa xi ħaġa aktar cryptic li tħares
bħal dan ħaġa hawn - bo8dal3ct u oħrajn - dan sekwenza alfanumerika verament kbar
thats verament ftit maħsub li jkun identifikatur uniku għalik.
Jew inti tista 'taħseb bħala tip ta' timbru idejn virtwali.
Jekk inti tmur għal xi klabb jew park ta 'divertiment, li tiftakar li inti stajt attwalment imħallsa
u marret fi, li jqiegħdu stiker aħmar ftit fuq naħa tiegħek ta 'xi tip,
u li jfakkar lill-poplu fuq il-counter li inti stajt diġà mħallsa
u inti tista jiġu u jmorru kif jekk jogħġbok.
Cookies huma ftit simili fl-ispirtu għal dan.
L-ewwel darba I miżjura din il-websajt, kif I biss ma wara l-ikklerjar cache tiegħi,
il-web server, l-apparat f'dan il-każ, jitqiegħed timbru fuq naħa tiegħi
li ismu huwa PHPSESSID, sessjoni ID,
li l-valur huwa dan sekwenza alfanumerika verament twila.
>> Allura dak issa tip ta 'emblazoned fuq naħa tiegħi hekk li l-ħin li jmiss I hit rikarigu
jew manwalment żjara dan il-URL fil-browser,
browser tiegħi b'definizzjoni ta HTTP se tippreżenta it-timbru naħa
ġdid u għal darb'oħra u għal darb'oħra.
Għalhekk anki jekk il-server ma jkunx neċessarjament jaf min jien,
huma inqas jafu li jien l-istess utent jew għall-inqas, b'mod aktar speċifiku, il-browser istess.
U hekk dan huwa finalment kif l-superglobal SESSJONI tiġi implimentata.
Il-server m'għandha l-ebda idea min int meta inti tirrevedi websajt għat-tieni jew it-tielet darba
sakemm inti tippreżenta dan it-timbru idejn.
U hekk kif inti tippreżenta dan timbru idejn,
il-web server essenzjalment tmur ġo database ftit tagħha stess
u kontrolli, okay, I għadek raw it-timbru naħa ta bo8dal3ct utent u ibqa 'sejjer hekk.
Let me tara liema informazzjoni l-programmer ikun maħżun
ġewwa tal-superglobal dwar dan l-utent,
u mbagħad let me jagħmlu ċert li d-data hija għal darb'oħra ġewwa tal-SESSJONI superglobal
sabiex il-programmer tista 'terġa' aċċess li d-data
anki jekk dan kien stipulat ftit minuti jew sigħat ilu.
Kliem Għalhekk fl ieħor, cookies, li ltqajna a bad rap għal xi żmien
minħabba insikurezzi fir browsers u tassew ikunu jistgħu jiksru l-privatezza tagħna u dan kollu,
dawn għandhom attwalment utilità kbira għaliex mingħajrhom
inti tkun kontinwament tkun tidħol fl-kull paġna Facebook inti żjara
jew kull email Gmail inti taqra jekk il-browser ma kellhomx xi mod ta 'ftakar
li inti stajt diġà awtentikati.
>> Allura f'dan il-mod cookies jintbagħtu quddiem u lura madwar l-wajer.
Ieħor kurżità dwar il-cookies, speċjalment hawnhekk, huwa li dan huwa kompletament fl cleartext.
M'hemm l-ebda encryption jiġri hawn tkun xi tkun,
u tabilħaqq jien jużaw HTTP fil-mument.
Waħda mill-mumenti favoriti tagħna fid CS50, li issa 2 snin ilu,
kien madwar il-ħin għodda msejħa Firesheep ħareġ.
Din kienet biċċa ħieles ta 'softwer li saret minn riċerkatur sigurtà
bħala sejħa riattivazzjoni-up għall-komunità li jgħidu kemm atrociously implimentati
ċerti mekkaniżmi ta 'awtentikazzjoni fuq il-Web kienu.
Allura għal xi żmien, Facebook kienet kważi kompletament fuq HTTP, HTTPS ebda.
U anki jekk ma jkollok ebda idea kif il-kripto xogħlijiet, S hija sigura
għalhekk dan ifisser li hemm mill-inqas xi encryption involuti.
Facebook ma użata għall-kriptaġġ utent ismijiet u passwords,
iżda hekk kif inti ħares lejn tiegħek pokes jew messaġġi tiegħek jew l-għalf aħbarijiet tiegħek,
kollha ta 'li kien unencrypted.
Hekk kien Gmail sakemm biss sena jew 2 ilu.
Kwalunkwe ħin li inti illoggjat, iva, huma użati encryption sigura,
iżda wara dawn ma kinux. U għaliex jista 'jkun?
Għaliex mhux biss l-użu kriptografija l-ħin kollu fil-każijiet ta 'użu bħal dan?
X'hemm li? I think I smajt xi ħaġa. [Student] Veloċità.
Veloċità, id-dritt? Hemm modi madwar dan.
Imma jekk inti biss tip ta 'jaħsbu dwar dan loġikament, jekk inti kriptaġġ xi ħaġa,
għandek tagħmel inqas xogħol ftit aktar.
Fil pset 2 meta inti implimentata Caesar jew Vigenere jew saħansitra jixxaqqaq,
biss istampar string huwa relattivament faċli.
Encrypting u mbagħad istampar string minimament teħtieġ xogħol ftit aktar.
>> Għall-websajts popolari super bħall-Google u Facebook,
jekk għandek tagħmel aktar xogħol għal kull utent għal kull paġna web wieħed huma żjara,
li biss jieħu ż-żmien CPU aktar.
U jekk ikollok bżonn żmien CPU aktar, jista 'jkollok bżonn servers aktar,
li jfisser li inti jista 'jkollok bżonn aktar flus.
U hekk għal ħafna snin dan biss verament ma kienx l-aħjar prattika.
In-nies se jużaw SSL encryption biss meta meħtieġa.
Iżda rriżulta, u kif dan sħabi ma Firesheep magħmula super ċar,
meta inti guys li bħalissa huma fuq Facebook dritt issa -
Minn ta 'kurżità, ejja ara jekk inti ser fess up.
Jekk int fuq Facebook dritt issa b'xi tab, anki jekk mhuwiex foregrounded,
huwa URL HTTP tiegħek jew HTTPS?
[Studenti multipli] S. S? [Daħk]
Okay. Kull HTTP? Just 1? Okay.
Allura lkoll jistgħu Hack li Guy-kont Facebook dritt issa.
Għall-parti l-kbira dan sar mixgħula fil-kontumaċja, għallinqas xi websites.
U l-istorja twila fil-qosor, jekk it-traffiku web tiegħek ma tkunx encrypted,
mhux biss ma 'l-HTML imorru quddiem u lura madwar l-WiFis unencrypted,
sabiex ma affarijiet simili cookies imorru quddiem u lura madwar l-arja
mingħajr l-ebda forma ta 'encryption.
Mela jekk għandek biss daqsxejn ta 'sofistikati programmazzjoni jew daqsxejn ta Googling ħiliet
biex isibu softwer b'xejn li ma dan, kull ma għandek tagħmel huwa ipoġġu fil Starbucks
jew ipoġġu fl-ajruport fejn ikun hemm s ġeneralment unencrypted WiFi
u biss watch għall keywords bħal Set-cookie: jew PHPSESSID
għaliex jekk inti għandek l-sofistikati tekniċi għal ftit tara l-WiFi
għall kollha tal-bits li fluss madwar l-arja għal dan il-mudell,
inti tista 'mbagħad tgħid li PHPSESSID Guy jiġri li jkun bo8dal u oħrajn.
U mbagħad għal darb'oħra jekk int biżżejjed teknikament sofistikati jew ikollhom l-għodda dritt,
inti tista 'mbagħad biss jikkonfiguraw mill-browser tiegħek biex tibda tippreżenta dak timbru idejn
għall Facebook.com, u Facebook huwa biss se jassumi li inti li Guy
minħabba kollha jafu mhuwiex min int imma li għandek dan identifikatur uniku.
Mela jekk inti steal dan identifikatur uniku u tippreżentah lill-web server kif tiegħek,
huma biss ser jurik għalf aħbarijiet dik il-persuna
jew messaġġi li persuna jew pokes.
>> U nixtieq Google issa kif jattiva HTTPS għall Facebook forsi.
Imma huwa verament sempliċi bħal dik.
U hekk Facebook u Google u simili gotten verament tajba għal dan,
iżda żżomm għajnejk out kollha l-aktar għal xi websajts li żżur li ma jużawx HTTP
u għandhom xi tip ta 'informazzjoni sensittiva fuqhom,
jekk huwa finanzjarju jew personali jew simili.
Jekk dawn mhux qed jużaw dan, pjuttost possibilment jista cookies bħal din tkun faċilment misruqa
u mbagħad falsifikati, u dan huwa eżattament dak Firesheep għamlet.
Inti ma għandekx tkun programmer.
Kull ma kellu jagħmel kienet li konnessjoni Internet, download din l-għodda b'xejn,
u dak li se tagħmel huwa inti login u allura turi li inti l-ismijiet Facebook
ta 'kulħadd Sanders, f'dan dimostrazzjoni partikolari, ta' madwarek
u kull ma kellu jagħmel kienet ikklikkja fuq l-isem tagħhom u l-software awtomatizzat il-proċess
ta 'xamm dak il-cookie, jippreżentah għall Facebook bħala tiegħek,
u, voila, int logged pulzieri
Allura dan huwa wieħed ieħor ta 'dawk "ma tagħmel dan" uffiċjalment.
Jekk għandek network tiegħek dar stess u inti tixtieq li tinker, bil-mezzi kollha,
imma tirrealizza dan ma jaqsmu l-linja dwar ambjent università.
>> Iżda l-għan hawnhekk huwa verament li jiġi enfasizzat li ma kif tagħmel dan
imma kif tiddefendi kontra dawn it-tipi ta 'affarijiet.
U s-soluzzjoni trivjali hawn, anki jekk hija stess huwa difettuż,
huwa li verament inaqqsu l-użu ta 'kwalunkwe siti li huma ma jużawx HTTPS kontinwament.
Allura siti bħal Facebook u Google dejjem ikollhom checkboxes
fejn inti tista 'tagħżel fl għal dan it-tip ta' ħaġa,
u l-banek kellhom dan għal snin għal raġunijiet simili.
Hekk biss ftit ta 'fattur ta' biża jekk nistgħu. Imma dak li huwa fil-qosor.
Din hija kif server jiftakar min int.
U hekk kif dawn jistgħu tiftakar min int, huma jistgħu jiftakru xejn dwarek
li l-programmer ikun maħżun ġewwa ta 'dan superglobal speċjali msejħa $ _SESSION.
U għall pset 7 aħna qed tużaha trivially biss biex tiftakar xi int,
jiġifieri l-ID uniku tal-utent li jkun illoggjat,
sabiex inkunu nafu li ħadthom kien hemm qabel.
Kwalunkwe mistoqsijiet imbagħad fuq sessjonijiet jew cookies jew simili?
Firesheep ma taħdimx kif ukoll aktar,
u inti għandek tpoġġi kompjuter tiegħek fil-modalità promiscuous speċjali
hekk int attwalment jisimgħu għat-traffiku minbarra yourselves.
Mela jekk int attwalment tniżżil Firesheep, tirrealizza mhuwiex daqshekk faċli
kif darba kien juru.
Kull dritt. U ma tagħmel dan fil Sanders. Jagħmlu dan fid-dar.
Databases.
Waħda mill-affarijiet għamilna fil pset 7 very deliberatament
kienet aħna nagħtuk tabella database kampjun għall-utenti li għandha xi IDs utent,
xi ismijiet utent, u xi passwords encrypted hemmhekk.
U kif tkun taf tara, jekk inti ma jkunux diġà, int se jkollhom jibdlu l-tabella ftit.
Int ser ikollok żżid xi cache għal kull wieħed mill-utenti f'dik it-tabella,
u int ser ikollhom iżidu ieħor tabella istorja, tabella portafolli,
jew forsi sejħa hija xi ħaġa oħra.
Iżda f'termini ta 'ħsieb dwar kif għandek tagħmel dan, ejja tiftaħ din l-għodda
li aħna użati fuq il-Ġimgħa, imma jekk familjari, l-appliance tiġi flimkien ma 'għodda
imsejħa phpMyAdmin li inzerta miktub fil-PHP,
iżda l-għan tagħha fil-ħajja, wara I log fil hawn bħala jharvard ma krimżi,
huwa li jagħti lili mod faċli għall-utent tal-wiri u l-bdil database tiegħi.
>> Id-database li niġri fuq l-appliance huwa msejjaħ MySQL.
Dan huwa popolari ħafna, u huwa b'xejn open source database li l wonderfully faċli biex jintużaw,
speċjalment ma 'quddiem truf bħal dan.
X'inhu din l-għodda tippermetti lili biex jagħmlu, per eżempju, huwa poke madwar tabelli.
Let me imorru quddiem u jagħmlu dan.
Nhar il-Ġimgħa ħloqna tabella msejħa istudenti li kien sempliċi super.
Hija kellha 3 kolonni - id, isem, u l-email - u I manwalment daħħal ftit ringieli
bħal David u Mike f'dan l-eżempju partikolari.
Ejja tieħu din id-daqsxejn aktar, u ejja nassumu li aħna rridu li tiftakar aktar
minn sempliċiment l-isem u l-email dwar l-utent.
Let me ikklikkja Struttura up hawn fil-quċċata.
U għal darb'oħra, il-pset mixjiet inti permezz tal-passi meħtieġa hawn,
sabiex ma joqogħdu jinkwetaw jekk xi wħud dan huwa daqsxejn ta 'malajr.
Imbagħad jien ser ikklikkja fuq hawn.
Jien ser żżid xi numru ta 'kolonni wara email
għaliex nixtieq li żżid xi ħaġa bħal dar.
I nesa li jirreġistra d-dar ta 'student.
Let me ikklikkja Mur, u issa għandna din il-formola li sfortunatament huwa xi ftit wiesgħa mix-xellug għal-lemin,
imma jien ser sejħa-isem ta 'din id-dar il-qasam,
u mbagħad it-tip I issa jkollhom jagħżlu.
Mela ejja jkollhom chat qosor dwar it-tipi varji fil MySQL
għaliex billi PHP hija dgħajfa ittajpjat u tip ta 'tilgħab veloċi u maħlula ma' tipi,
fid-database speċjalment huwa importanti super biex attwalment jużaw ittajpjar għall-vantaġġ tiegħek
għaliex wieħed mill-MySQL affarijiet u magni database oħra jista 'jagħmel għalik
huwa jiżgura li inti ma tpoġġi data taparsi fis-database tiegħek.
Din hija tip ta 'żball ħielsa verifika disponibbli lilek.
>> Għal dar aħna ovvjament ma tridx li din tkun int, li huwa valur 32-bit fl MySQL.
Aħna ma jitkellmu fil-qosor dwar il-Ġimgħa dwar varchar, li stands għal tul varjabbli char.
X'inhu dan? Dan jippermettilek li tispeċifika li inti tixtieq li dan ikun sensiela ta 'xi tip.
Inti ma verament jafu minn qabel kemm żmien huwa,
hekk aħna ser arbitrarjament ngħidu isem dar jista 'jkun 255 karattri,
imma int tista 'tmur ma' 32, 64 - kull numru verament.
Iżda l-vantaġġ li jużaw varchar fuq qasam imsejjaħ char huwa dak?
Just intuwittivament jekk I iscroll stabbiliti hawn, l-avviż li hemm char u hemm varchar.
Varchar huwa tul varjabbli char; char huwa ta 'tul fiss char.
Allura bbażati biss fuq din id-definizzjoni, x'inhu l-vantaġġ jew żvantaġġ ta 'kull wieħed minn dawn?
Fi kliem ieħor, quién dwar id-distinzjoni, jew għaliex għandek kura?
>> Yeah. [Student] varchar ikollu iktar flessibbiltà iżda jieħu memorja aktar.
Tajba. Varchar jieħu aktar - Ejja naraw. M'inix ċert jekk I smajt dak id-dritt.
Tista 'tgħid li darba aktar?
[Student] għidt varchar probabbilment ikollu iktar flessibbiltà iżda tieħu up memorja aktar.
Interessanti. Okay. Varchar probabbilment jagħtik aktar flessibilità, iżda jieħu memorja aktar.
L-aħħar mhuwiex neċessarjament minnu.
Hija tiddependi fuq il-kuntest, imma ejja terġa 'lura għal dan.
>> [Inaudible student rispons] Eżattament.
Huwa fil-fatt il-każ li char se tipikament jużaw memorja aktar
għaliex char, bħal fis-C, huwa bħal string, huwa firxa ta 'karattri.
Mela jekk inti tgħidli qasam char ta 'tul 255,
id-database huwa litteralment ser jagħtuk 255 karattri.
U jekk id-dar jispiċċa jkun karattri Mather u 6 totali,
int ħela aktar minn 200 karattru.
>> Allura varchar effettivament biss l-użi bħala karattri kemm ikun meħtieġ
sa ammont massimu.
Iżda l-prezz li inti tħallas huwa attwalment prestazzjoni, potenzjalment.
Jekk inti taf minn qabel li kollha ta 'kordi tiegħek ser ikunu 8 karattri -
per eżempju, ejja ngħidu li għandek bżonn passwords ta 'tul 8 -
il-rasu ta 'użu ta' qasam char fuq okkażjoni, għalkemm mhux ta 'spiss,
huwa li jispeċifika tul fiss għal xi ħaġa bħal password
minħabba li issa d-database jista 'jkun saħansitra aktar intelliġenti.
Jekk taf li kull qasam char, kull sekwenza fil-kolonna hija l-istess tul,
ikollok lura l-karatteristika ta 'aċċess bl-addoċċ.
Tista jaqbżu madwar fost l-oqsma char varji fit-tabella database tiegħek
minħabba think ta 'database bħala ringieli u kolonni.
Mela jekk kull wieħed mill-kordi huwa l-istess tul,
inti taf li l-ewwel waħda hija fil byte 0, il-wieħed li jmiss huwa fil byte 8
u mbagħad 16 u mbagħad 24 u ibqa 'sejjer hekk.
Allura jekk il-kordi huma ta 'l-istess tul, inti tista' tiżdied madwar ħafna aktar effiċjenti.
Allura li tista 'tkun ta' benefiċċju f'termini ta 'prestazzjoni,
imma tipikament inti ma għandekx il-lussu li wieħed ikun jaf minn qabel,
hekk varchar huwa l-mod biex imorru.
Hawn ieħor dettall li anke Facebook dam fis eventwalment.
Ints huma kbar, u aħna tip ta 'jużawhom fil-kontumaċja kwalunkwe ħin irridu numru,
imma hija biss 32 bits.
>> U anki jekk Facebook ma pjuttost jkollhom 4 biljun utenti issa,
hemm definittivament xi nies hemmhekk ma 'kontijiet multipli
jew kontijiet li jkunu nfetħu u mbagħad jingħalqu,
u għalhekk Facebook nnifisha nemmen ftit snin ilu kellhom tranżizzjoni minn int
li, kif huwa aptly imsejjaħ, bigint, li huwa biss 64 bits minflok.
Allura dan ukoll hija deċiżjoni disinn.
Inti tkun amazingly xortik tajba jekk il-proġett finali tiegħek dawriet istartjar,
tkun 4 biljuni u 1-utenti, jagħtu jew jieħu,
f'liema każ bl-użu ta ints jista 'jkun ftit shortsighted.
Iżda fir-realtà, l-utenti mejda tiegħek huwa probabbilment multa ma ints.
Iżda għal xi ħaġa bħal pset 7, bħal mejda istorja tiegħek,
inti jista 'jkollhom eluf, miljuni ta' utenti jekk inti jevolvu fis etrade.com.
Allura filwaqt li inti tista 'ma jkollhom aktar minn 4 biljun utenti,
dawk l-utenti inti ma jkollhom jista 'jkollok aktar minn 4 biljun transazzjoni matul iż-żmien -
tixtri u tbiegħ u affarijiet fl-istorja tagħhom.
Mela jekk inti tagħmel jantiċipaw - għal darb'oħra, dawn huma problemi tajba li jkollhom jekk għandek din id-data ħafna -
jekk inti tagħmel jantiċipaw data li jaqbżu d-daqs ta 'int,
jmorru ma 'xi ħaġa bħal bigint huwa f'direzzjoni li ma' spiss biżżejjed adottati mill-disinjaturi
għaliex in-nies figura li mhux se tkun problema,
iżda huwa dan faċli li jagħżlu xi ħaġa akbar minn dak.
Deċimali aħna qed jużaw fil pset 7, li tispeċifika preċiżjoni fiss
sabiex inti tista 'tevita l-kwistjonijiet li jinvolvu flowts u jirdoppja u reals u simili.
>> U allura hemm xi oqsma oħra hawn. Aħna ser mewġa idejn tagħna fuq minnhom sa ċertu punt.
Iżda dati, ħinijiet kollha jkollu l-format preskritt fir MySQL,
u l-vantaġġ ta 'dati ħażna ta' dati u mhux varchars
ifisser li d-database tista 'attwalment reformat tagħhom fiċ-formati differenti,
jekk format Istati Uniti jew format Ewropew jew affarijiet simili - madankollu inti tixtieq li -
aktar effiċjenti milli kieku kien biss ftit varchar ġeneriku.
U allura hemm xi binarju ieħor, varbinary, blobs.
Dawn huma oġġetti kbar binarji, u tista 'wkoll jaħżnu data binarja
kif ukoll data ġeometriċi fid-database.
Iżda għalina aħna ser tipikament jimpurtahom ints u varchars u simili.
Ejja jispiċċaw dan l-eżempju ma 'dar.
Kamra jien se ngħid se jkun arbitrarjament 255 Chars.
Imbagħad valur awtomatiċi stajna nagħmlu dan.
Aħna jista 'awtomatikament tpoġġi lil kulħadd fil Mather House, per eżempju.
Thats kif nistgħu tispeċifika li d-database
għandhom jiżguraw li xi ħadd dejjem għandha valur. Imma jien ser jitlaq minn dak tkun.
Fil-fatt, għall-persuni li jgħixu barra mill-kampus u mhux fil-dar,
forsi I attwalment jridu jispeċifikaw li l-valur awtomatiku għall-dar huwa NULL,
u mbagħad I bżonn li jiċċekkja din il-kaxxa u għid l-database huwa okay jekk dar l-utent huwa NULL.
>> Għal darb'oħra, dan huwa pass ieħor mekkaniżmu ta 'difiża inti tista' tpoġġi fis-seħħ
sabiex inti ma jkollhomx biex tqiegħed fil-kodiċi PHP tiegħek bilfors.
Id-database se tiżgura li l-affarijiet huma jew mhumiex NULL.
U mbagħad fl-aħħar, Attributi.
Xejn minn dawn huma verament rilevanti.
Binarju, mhux iffirmat - ebda waħda minn dawn huma rilevanti għal varchar.
Indiċi.
Hawn xi ħadd jaf jew tiftakar jew ikollhom raden dwar liema indiċi huwa
għal xi ħaġa bħal dar?
Dan ukoll huwa attwalment deċiżjoni disinn importanti u relattivament faċli.
Għal dawk li għadhom ma bbenefikawx, nhar il-Ġimgħa tkellimna fil-qosor dwar iċ-ċwievet primarja.
Fit-tabella database, kodiċi primarju huwa l-qasam jew kolonna
li jidentifika b'mod uniku ringieli fit-tabella.
Allura fit-tabella attwali li għandna IDs, għandna ismijiet u emails.
Liema minn dawn huwa l-aħjar kandidat li jkun kodiċi primarju,
rwol tiegħu huwa li jidentifika unikament ringieli?
. ID Probabbilment
Wieħed jista 'jargumenta, nistgħu wkoll jużaw dak għalkemm?
Forsi inti tista 'tuża email għaliex fit-teorija dan huwa uniku
sakemm in-nies huma qsim kontijiet email.
Iżda r-realtà hija li jekk inti qed tuża ID numeriku bħall 1234,
dan huwa biss 32 bits, filwaqt email address jista 'jkun dan bytes ħafna jew dan bytes ħafna.
Allura f'termini ta 'effiċjenza għal identifikaturi uniċi,
li għandha tendenza li tkun prattika tajba biss biex jużaw int
anke jekk ikollok xi kandidat string li inti tista 'forsi tuża.
>> Għal xi ħaġa bħal dar, dan m'għandux ikun kodiċi primarju
għaliex imbagħad biss 1 persuna tista 'tgħix fil Mather u persuna 1 Currier u simili.
Bl-istess mod, dan m'għandux ikun uniku.
Id-differenza bejn primarja u uniku hija li fil-każ ta 'tabella attwali tagħna,
ID ikun primarju imma email mhuwiex primarja għar-raġuni aħna biss imsemmija -
prestazzjoni - iżda xorta għandha tkun unika.
Allura inti xorta tista tinforza uniċità mingħajr ma jagħmel it-talba
li huwa qasam super primarju importanti.
Iżda dan huwa wieħed pjuttost utli: Indiċi.
Jekk inti taf minn qabel għall-proġett finali tiegħek, per pset 7, jew b'mod ġenerali,
li din id-dar il-qasam se jkun xi ħaġa li għandek tfittex fuq lott
tuża l-keyword tagħżel jew xi ħaġa oħra,
allura inti tista 'tgħid preemptively-database biex jaħdmu magic tagħha
u kun żgur li hija toħloq fil-memorja xi strutturi tad-data fancy meħtieġ
biex iħaffu tfittxijiet bbażati fuq dar.
Forsi se jużaw tabella hash, forsi se juża lista marbuta.
Fir-realtà, għandha t-tendenza li jużaw siġra, spiss struttura tissejjaħ B-siġra -
mhux siġra binarju iżda B-siġra - li hija siġra wiesgħa ħafna
li inti tista 'tara fi klassi bħall CS124, il-klassi l-istrutturi tad-data.
Iżda fil-qosor, inti ma għandekx għalfejn tinkwieta dwar dan meta jużaw softwer tad-database intelliġenti.
Inti tista 'sempliċement tgħid li, "Indiċi f'dan il-qasam so I tista' tfittex fuqha b'mod aktar effiċjenti."
>> Jekk inti tħalli dan off u inti tipprova tfittxija għal kulħadd fid-database li jgħix fil Mather,
se jaqgħu fis-tfittxija lineari.
U jekk inti stajt ltqajna 6000 undergrads kollha li jgħixu f'xi dar,
int ser tfittex il-mejda kollu biex isibu l-Matherites,
billi jekk inti tgħidli Indiċi, wieħed jittama li se jkun xi ħaġa qrib għal tfittxija logaritmika
biex isibu dawk it-tipi ta 'l-istudenti.
Dan huwa biss fattur ħielsa li jduru fuq,
anki jekk ma jaqgħu fil-prezz ta 'xi ammont ta' spazju.
Fl-aħħar nett, auto-inkrement, f'dan il-qasam AI,
li sempliċiment ifisser jekk huwa ta 'int u inti ma tridx li kura li inkrement it yourself
kull darba li hemm utent ġdid, iċċekkja li,
u kull utent li gets miżjud awtomatikament se tikseb ID ġdida.
Ejja ikklikkja Save, u issa ejja ssib tort ma 'dan id-disinn.
Jekk mmur fis Fittex, avviż li kemm Mike u d-dar tiegħi huwa NULL.
I jistgħu jużaw phpMyAdmin biex jeditjaw dan manwalment.
I tista 'tmur fil hawn u t-tip fil Mather u mbagħad hit Ikteb,
u issa avviż-tabella hija differenti.
Imma Avviż I jistgħu jagħmlu xi ħaġa oħra ukoll.
ID David huwa 1, sabiex phpMyAdmin darb'oħra huwa biss għodda amministrattiva;
din mhix xi ħaġa utenti tiegħek huma qatt ser tara.
Mela jekk jien minflok ikklikkja l-tab SQL up top -
u għal darb'oħra, pset 7 se jintroduċu inti aktar ta 'dawn il-mistoqsijiet -
I jistgħu manwalment tesegwixxi l-kmand SQL strutturat lingwa query
Utenti AĠĠORNAMENT SET house = "Pfoho" FEJN id = 1.
Dawn huma mistoqsijiet SQL, nicely biżżejjed, pretty tinqara mix-xellug għal-lemin.
Aġġorna l-tabella utenti, jistabbilixxu l-qasam msejħa dar biex Pfoho
fejn ID tal-utent huwa 1.
Jew I jistgħu anki jagħmlu meta email = "malan@harvard.edu".
Sakemm li jidentifika b'mod uniku lili, li tkun taħdem ukoll.
Iżda ID tendenza li jkun prestazzjoni ogħla, so ejja tagħmel dan.
Ejja ikklikkja Mur. Okay, lecture.users ma teżistix. X'hemm żball tiegħi?
X'hemm-tabella attwalment imsejħa hawn?
Huwa sejjaħ lill-istudenti biss għaliex dan huwa dak li għamilna sa hawn fuq quċċata xellug.
Huwa sejjaħ istudenti, u mhux l-utenti. Allura ikklikkja Mur issa.
1 ringiela affettwati. Mistoqsija ħa 0.01 sekondi.
Jekk I ikklikkja Browse issa, issa jgħix Malan fil Pfoho.
Allura li l-ieħor togħma ta 'SQL, iżda l-pset se jimxu miegħek permezz daqsxejn aktar ta' dak.
>> Hemm deċiżjoni stupid stajt diġà saru hawn.
Jidhirli li dan id-disinn database huwa ineffiċjenti
minħabba li l-aktar nies I żid għall-tabella istudenti,
l-aktar minna I tibda żżid, l-aktar mill-TFS I tibda żżid,
aħna qed tmur biex tibda biex tara dak sensji f'din it-tabella?
>> Yeah. [Student] Jaraw li huwa fl-istudenti, aħna qed jużaw l-istess [inaudible]
L-istess - Dritt, eżattament.
Mela jekk 400 persuna jgħixu Mather, jagħtu jew jieħu,
eventwalment din it-tabella huwa se jkollu 400 ringieli li jgħidu "Mather," "Mather,"
"Mather," "Mather," "Mather."
Aħna ħela kollha ta 'dawn bytes, u hemm koppja ta' takeaways hemmhekk.
1, hemm il-każ kantuniera crazy fejn jekk xi ħadd iħallas ħafna flus
u isem ġdid Mather, issa għandna għall-bidla mejda tagħna database kollu.
Li ma jiġri spiss, għalkemm Pfoho darba kienet imsejħa North House 15-il sena ilu,
hekk dan jiġri. Imma dak li mhux kollha li konvinċenti.
Aktar konvinċenti minn każ kantuniera bħal dik ta 'bżonn li jaġġornaw l-informazzjoni fil-massa
għal database hija għaliex inti jaħżnu MATHER ġdid u għal darb'oħra u għal darb'oħra u għal darb'oħra?
Li l-lott ta 'Chars, 6 Chars.
Ma tistax nagħmlu anke aħjar minn dik, speċjalment għall Pforzheimer?
Żgur li nistgħu nagħmlu aħjar minn dik karattri ħafna.
Għaliex mhux biss jassoċjaw identifikatur uniku ma 'kull dar
u jaħżnu li għal kull utent? Mela ejja jippruvaw dan.
Pjuttost milli sempliċiment uża t-tabella istudenti, let me go sa database taħdita tiegħi sa hawn fuq quċċata xellug.
Avviż hawnhekk jgħid Oħloq tabella.
Let me tinħoloq tabella ġdida msejħa djar.
In-numru ta 'kolonni se tkun 2. Ikteb.
Issa għandi 2 oqsma.
Jien ser sejħa dan l-isem, u li għaddej biex tkun varchar ta 'tul 255,
>> imma li pjuttost arbitrarja. Let me tpoġġi dan l isfel hawn minn konvenzjoni.
Allura tpoġġi ID up here. Ejjew nagħtu kull dar identifikatur uniku.
Ejjew nagħtu kull dar isem.
Ejja jispeċifikaw li l-identifikatur se jkun mhux iffirmat biss bi ftehim taċitu li jużaw biss numri pożittivi.
Ejja jimxi 'l quddiem u jagħtu dan l-auto-inkrement qasam għal issa.
U għandna bżonn xi ħaġa oħra?
Ejja jimxi 'l quddiem u kklikkja Save.
Issa I jkollhom tabella 2.
Avviż bħala twarrib li dan huwa l-kmand SQL ftit cryptic
li inti kien ikollha tip manwalment jekk mhux permezz ta 'għodda amministrattiva bħal phpMyAdmin.
Allura raġuni oħra nużawha.
Huwa tip wonderfully utli ta pedagoġikament għaliex inti tista 'ikklikkja madwar
u figura kif jaħdmu l-affarijiet bi ftit ikkupjar u pasta għamlet phpMyAdmin dak.
Iżda l-kmand tabella Oħloq huwa dak kien biss eżegwit, u hawn huwa mejda tiegħi.
Let me imorru quddiem issa u l-użu SQL prima minflok oversimplify billi tikklikkja l-tab Daħħal.
Let me do DAĦĦAL FIS djar,
u jien ser ngħid l-isem tad-dar se jkollhom valur ta '"Mather".
Li minnu. Dan sintassi hija ftit aktar cryptic.
Dan huwa l-isem ta 'l-oqsma li rridu daħħal.
Dawn huma l-valuri irridu li ddaħħal fil dawk l-oqsma. Let me ikklikkja Mur.
1 ringiela tiddaħħal ħa 0.02 sekondi. Let me ikklikkja Browse issa.
>> Avviż jekk I ikklikkja Browse, hemm Mather, li ID huwa billi awtomazzjoni-numru 1.
Let me do ieħor. Let me jmorru fil-tab SQL.
DAĦĦAL FIS djar. L-isem tad-dar huwa se jkollu valur ta 'Pfoho u oħrajn.
Mur. U nista 'tkompli tagħmel dan mill-ġdid u għal darb'oħra u għal darb'oħra.
Jew jekk ikollok bored tuża phpMyAdmin, inti tista 'biss tuża l-tab Daħħal
u li ma jkollhom tip-SQL prima.
Tista 'biss bang out aktar malajr billi jittajpja, per eżempju, Currier, Daħħal,
u issa jekk aħna ikklikkja Browse, hemm Currier ma 'ID ta' 3.
Allura dan huwa dak li jfisser mill-awto-inkrement.
Imma issa għandna biex jiffissaw xi ħaġa istudenti.
Fil istudenti x'għandu it-tip tad-data tal-qasam dar issa jkun?
Għandu jkun int, right?
Allura l-għan hawnhekk huwa li fattur out, inkella magħruf bħala jinnormalizzaw, it-tabelli
hekk li aħna ma taħżen l-informazzjoni bla bżonn fi kwalunkwe tabelli tiegħi.
U għal darb'oħra, il-passaġġ konna hawn fuq se ngħid Mather, Mather,
Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, li huwa ħafna żejda
f'termini tal-ħela ta 'l-Chars.
So let me go quddiem u tbiddel dan billi tikklikkja Struttura,
u let me imorru quddiem u jiċċekkjaw barra l-qasam dar, ikklikkja Bidla,
u issa jien se jibdlu din hi int.
255 m'għadux rilevanti.
Let me imorru quddiem u jgħidu li l-multa jekk huwa għadu NULL. Save.
Issa istudenti tabella nbidlet b'suċċess,
u avviż għal darb'oħra dar huwa int.
Bħala twarrib, jinjora n-numru fil-parentesi meta niġu għall-ints.
>> Dan huwa għal raġunijiet wirt.
Lura fil-ġurnata meta inti ma kellhiex GUIs, inti minflok kellhom linja ambjentali kmand,
l-10 u 11 rispettivament speċifikati kemm karattri inti għandek turi
fit-tieqa terminal li attwalment juru oqsma.
Hija għandha x'taqsam xejn mat-tul ftit ta 'l-medda attwali, hekk aħna ser biss jinjora li għal issa.
Issa għandi biex tmur fil din it-tabella.
U jekk David jgħix Mather, dar m'għandhomx ikunu 0,
li hija valur int default eqreb null.
Hu għandu jgħixu fid-dar 1.
Ejja ngħidu li b'mod arbitrarju Mike jgħix fil Pfoho, sabiex in-numru house 2.
Issa mejda tiegħi jistenna ftit aktar cryptic.
Iżda jikkunsidraw l-effiċjenza.
Jien issa jużaw biss 32 bits biex tidentifika l-dar,
li jfisser li hemm biss 1 definizzjoni canonical ta 'dar Mather tiegħi u Pfoho
u li fit-tabella djar.
Mela jekk jien tixtieq li jaderixxi mill-ġdid issa dawn it-tabelli, think ta 'dan il-mod.
Hawn irrid niċċara istudenti mejda tiegħi, u fuq in-naħa tal-lemin hemm dawn in-numri, 1 u 2.
1 huwa Mather, 2 huwa Pfoho.
Għandna dawk istess numri f'din it-tabella l-oħra, li huwa sejjaħ djar,
1 u 2 u 3 għal dawk il-djar 3.
Dak li aħna issa trid tagħmel hu li jkollhom l-abbiltà fil-kodiċi, PHP u SQL,
sort ta jaderixxi mill-ġdid dawn it-tabelli, fejn jekk dawn huma l-istudenti u dawn huma l-djar,
irridu li b'xi mod tgħaqqadhom b'tali mod li 1-linji bi 1,
2 linji up ma '2, u sabiex inkunu nistgħu insemmu fejn David
u fejn Mike u fejn kulħadd jgħix.
Biex tagħmel dan nistgħu tesegwixxi mistoqsija SQL bħal dawn li ġejjin.
TAGĦŻEL * MINN istudenti Jissieħbu DWAR djar -
U issa dak l-oqsma irridu li jissieħbu fuq?
Allura students.house = houses.id.
>> A cryptic ftit, imma din il-parti ifisser litteralment joħolqu tabella temporanja ġdida
dak l-riżultat li jingħaqdu l-istudenti u djar.
U kif taħseb li tixtieq li jgħaqqdu l-truf tas-swaba tiegħi hawn?
Issettja l-istudenti house qasam ugwali għall-djar "qasam ID.
U jekk I issa ikklikkja Mur, niġi lura eżattament dak I ttamat li.
David huwa Mather, Mike huwa Pfoho, u I wkoll tara l-identifikaturi uniċi.
Iżda l-punt huwa issa I jkollhom tabella sħiħa.
U għalhekk l-takeaway hawn għal pset 7 jew verament għall-proġett finali:
Jekk issib li int ħażna kwalunkwe biċċa informazzjoni bla bżonn,
jekk huwa dar, forsi huwa l-belt, statali, u ZIP
fejn ZIP normalment jistgħu iżda mhux dejjem jintużaw bħala identifikatur uniku,
do jgħaddu l-eżerċizzju mentalment u mbagħad ma 'xi ħaġa bħal phpMyAdmin
ta 'fatturar barra dik id-data komuni għax speċjalment fir-website tiegħek gets aktar tajjeb użat
u aktar popolari, dan huwa kif inti tagħmel ċert li kollox huwa super fast,
billi d-database kif ideat kemm lill uniċità kemm jista 'jkun.
Dan kien ħafna.
Kwalunkwe mistoqsijiet? Kull dritt. Ejja jieħu pawża 5-minuta hemm u rraggruppati mill-ġdid.
Kull dritt.
Dan li ġej huwa eżempju li ġie użat xi snin ilu meta I ħa CS161,
li hija l-klassi sistemi li joperaw fil-kulleġġ
li huwa magħruf għall qed aqwa imma ammont crazy ta 'xogħol,
u jiffoka verament fuq xi wħud mill-problemi ta 'livell baxx li jinqalgħu fis-sistemi operattivi
u wkoll anki fid-dinja ta 'databases.
>> L-istorja li kien qal minn professur tiegħi, Margo Seltzer, dik is-sena kienet kif ġej.
Ejja ngħidu li għandek fridge dorm ftit għalik u roommate tiegħek
u tnejn inti verament simili ħalib.
Allura inti ġejjin dar minn klassi waħda kuljum, roommate tiegħek għadu mhux hemmhekk,
inti tiftaħ il-fridge, u inti tirrealizza, "Oh kkritikat, aħna qed barra ta 'ħalib."
Allura inti qrib il-fridge, inti timxi madwar il-triq biex CVS
u jiksbu fil-linji dejjem aktar twal biex jixtru xi ħalib fil CVS.
Sadanittant, roommate tiegħek jiġi dar minn tiegħu jew klassi tagħha,
jidħol fil-kamra, jiftaħ il-fridge verament jixtiequ xi ħalib,
tiftaħ il-fridge u, "indanna, l-ebda ħalib."
Hekk hu jew hi jagħlaq il-fridge, mixjiet l-bieb, u tmur għall-ABP
jew x'imkien ieħor għajr CVS fejn int mhux ser bump fis xulxin
li jmorru nikseb xi ħalib.
Of course ftit minuti wara, tnejn inti tikseb lura d-dar
u issa għandek ħalib doppju ta 'kemm inti fil-fatt riedu.
U li ħalib, issa li għaddej biex tmur ħażin għaliex inti tixtieq ħalib
imma inti ma verament bħall-ħalib, hekk issa inti għandek ħalib wisq, hekk li għaddej biex qarsa.
Din hija orribbli, sitwazzjoni orribbli.
Liema jista solvejna din predicament jekk inti kienu l-dar roommate ewwel? Iva.
[Student] Għandek ħallew nota. [Daħk]
Tajba. Għandek ħallew nota.
Għandek poġġew nota Post-it jew bħalhom qal, "Għaddew għall-ħalib,"
u mbagħad roommate tiegħek kunċettwalment kienu imsakkar minn fatt jagħmlu dan.
Jew inti tista 'tmur 1 pass ulterjuri.
Inti tista 'litteralment lock-friġġ ma' xi tip ta 'katnazz,
u issa roommate tiegħek se litteralment jkun maqful barra mill-friġġ.
Jekk aħna tiġġeneralizza lura għall-ipprogrammar,
inti tista 'kważi think ta' l-fridge bħala xi tip ta varjabbli jew Struct,
xi tip ta 'kontenitur għall-informazzjoni.
Il-problema hawn hija li fundamentalment tnejn inti kienu permessi biex jispezzjonaw
jew aqra l-istat ta 'din l-istruttura tad-data,
imma int meqjusa li fi żminijiet differenti u għadhom tnejn inti għamlu deċiżjoni
ibbażata fuq l-istat tad-dinja lejn dawk il-mumenti differenti fil-ħin.
Allura kellha inti msakkra-friġġ, inti jkollok inqas evitati roommate tiegħek
minn wara li ġew kapaċi li jispezzjonaw l-istat tad-dinja,
hekk hu jew hi ma setgħux għamlu istess deċiżjoni.
Allura databases, kif jirriżulta, din il-problema dejjem.
>> Ejja naraw jekk nistgħu tibni xenarju.
Ejja ngħidu li int it-tip ta 'Guy ħażina u inti tmur Bank of America
jew wieħed mill-postijiet l-oħra fil-pjazza li għandhom ġenb koppja ATMs ma 'ġenb,
u b'xi mod inti dehret kif duplikat karta ATM - mhux kollha li diffiċli.
Huwa biss strixxa manjetika.
U għalhekk dak li inti trid tipprova tagħmel hu jilagħbu din il-logħba
fejn inti tpoġġi 1 karta fis-1-magna, karta oħra fil-magna l-oħra,
u inti essenzjalment tixtieq tipprova tiġbed il-flus fl-istess ħin,
minħabba jimmaġina li l-istorja tmur kif ġej.
Il-magna fuq ix-xellug tieħu karta tiegħek u l-PIN tiegħek,
u allura inti tgħidli, "Give me $ 100."
Il-ATM huwa pprogrammat li l-ewwel jagħmlu tagħżel fid-database tagħha jew l-ekwivalenti -
kwalunkwe database huwa bl-użu - biex tara ma dan l-utent ikollhom mill-inqas $ 100 fl kont tiegħu jew tagħha?
Jekk iva, allura bżiq l-$ 100 u naqqas $ 100 mill-bilanċ tagħhom.
Iżda naturalment jekk ikun hemm magni multipli hawn jew modi multipli ta 'spezzjoni
l-istat ta 'dik dinjija, l-kaxxa-forti bank, biex tara kemm għandek flus,
jissoponi li biss b'kumbinazzjoni-magna fuq ix-xellug u d-dritt
kemm jistaqsu din il-kwistjoni fil-mument madwar istess ħin.
>> U dan jista 'ċertament iseħħ. ATMs huma kompjuters dawn il-jiem.
Allura jekk il-magna fuq ix-xellug jgħid, "Iva, inti għandek inqas $ 100,"
sadanittant il-magna fuq il-lemin jgħid, "Iva, inti għandek inqas $ 100,"
imbagħad tnejn minnhom jipproċedi biex jintemm l-programmi tagħhom u fil-fatt bżiq il-$ 100
u jgħidu, "Preċedentement kellek $ 200."
"Let me taġġorna l-varjabbli li issa jkun $ 100 jitħalla fil-kont."
Iżda jekk tnejn minnhom jkunu kkontrollaw il-bilanċ tal-kont tiegħek u sab li huwa $ 200
u tnejn minnhom imbagħad jagħmlu l-matematika u jgħidu 200-100,
il-magni jkunu potenzjalment bżiq out żewġ kontijiet $ 100 fl kull magna,
iżda li ħadthom biss aġġornata bilanċ tiegħek kont somma li jkun $ 100.
Fi kliem ieħor, inti ħadt out $ 200, imma għax huma spezzjonati l-istat tad-dinja
simultanjament u mbagħad għamel deċiżjoni bbażata fuq dak il-valur,
huma jistgħu ma jagħmlu l-matematika fl-aħħar b'mod korrett.
Allura f'sitwazzjoni bank wisq int verament tixtieq li jkollok xi tip ta 'lockout
b'tali mod li hekk kif inti stajt ċċekkjati l-istat ta 'xi varjabbli
li tassew importanti, bħall-bilanċ tal-kont tiegħek,
ma let xi ħadd ieħor jagħmlu deċiżjonijiet ibbażati fuq li sakemm inti qed isir tagħmel ħaġa tiegħek,
fejn f'dan il-każ inti l-ATM fuq ix-xellug.
Lock kulħadd out.
Inti tista 'attwalment tikseb dan l-effett fi ftit ta' modi differenti.
>> L-eħfef mod fil MySQL hija linja ta 'SQL li aħna ħadt
fl-ispeċifikazzjoni sett problema li jidher eżattament bħal dan.
Daħħal fit-tabella - kwalunkwe huwa msejjaħ - l-id, simbolu, u sehem, numru ta 'ishma,
il-valuri li ġejjin, per eżempju.
Jekk int ma taqra l-spec għadhom, dan huwa eżempju li tinvolvi kif do you go dwar
jixtru 10 ishma ta 'dan l-istokk Penny għall-President Skroob,
user li jiġri li jkun in-numru 7?
Dan jgħid DAĦĦAL FIS-mejda tal-id li ġejja, simbolu, u n-numru ta 'ishma
tas-7, "DVN.V", u 10.
Iżda - iżda, iżda, iżda - it-tieni linja hija dik importanti.
ON ishma Duplikat AĠĠORNAMENT EWLENIN = ishma + VALURI (ishma).
Allura totalment cryptic li tħares ewwel daqqa t'għajn.
Imma l-fatt li din il-mistoqsija SQL, anki jekk garżi fuq 2 linji,
huwa 1 mistoqsija twil, dan ifisser li huwa atomika
fis-sens li din il-mistoqsija jew se jiġu esegwiti kollha flimkien jew xejn affattu.
U billi definizzjoni ta 'MySQL, li l-mod kif dawn implimentaw din il-mistoqsija.
Huwa b'definizzjoni fil-manwal garantit li teżegwixxi kollu f'daqqa jew xejn affattu.
Il-motivazzjoni għal din hija kif ġej.
Jekk f'dan il-każ inti qed jippruvaw jixtru 10 ishma ta 'stock,
huwa tip ta 'l-istorja istess bħall-ħalib, huwa tip ta' l-istorja istess ATM.
>> Jekk inti tagħmel l-iżball ta 'ma jużawx din sintassi
iżda minflok tagħżel mid-database biex tara kemm ishma ta 'dan l-istokk Penny
ma President Skroob jkollhom, u jissoponi huwa għandu 10-ishma,
u mbagħad ftit qasma tat-tieni wara li inti mbagħad tagħmel dikjarazzjoni AĠĠORNAMENT,
li hija ieħor dikjarazzjoni SQL li tgħid jimxi 'l quddiem u żid 10 ishma aktar
sa 10 attwali tiegħu b'tali mod li idealment il-totali huwa 20,
l-problema hija minħabba fis-sistemi tad-database tal-lum u minħabba fil-kompjuters tal-lum
għandek proċessuri multipli, qlub multipli -
fi kliem ieħor, il-kompjuters jistgħu litteralment tkun qiegħda tagħmel l-affarijiet multipli fuq darba -
hemm ebda garanzija li SELECT tiegħek u UPDATE tiegħek f'dan il-każ
huma jiġri lura lura.
Allura xenarju ħażina tkun inti tagħmel l TAGĦŻEL
biex tara kemm ishma ta 'dan l-istokk Penny ma Skroob jkollhom,
u mbagħad biss b'kumbinazzjoni ieħor mistoqsija database hija esegwita -
forsi Skroob tagħha fi tieqa browser jippruvaw jixtru 10-ishma
ieħor tieqa għal kollox, ħafna bħall-ATM -
u jissoponi li ieħor mistoqsija gets bejn TAGĦŻEL u l AĠĠORNAMENT.
Jista 'jkun il-każ li Skroob issa jitlef xi numru ta' ishma
minħabba li ieħor il-proċess huwa li jispezzjona l-istat tad-dinja tiegħu,
jew hu gets ishma aktar milli huwa għandu jkollu.
Aħna mhux se tidħol fis-dettalji ta 'eżattament dak li dawk il-linji istorja partikolari tkun,
imma l-punt huwa jekk inti għandek tiċċekkja valur varjabbli u mbagħad jagħmlu deċiżjoni,
jekk ikun hemm riskju ta 'xi ħadd ieħor jagħmel xi ħaġa fl bejn dawn id-dikjarazzjonijiet 2,
kif jista 'jiġri f'sistemi multiproċessuri, fil multipolari sistemi,
kompjuters bil-kapaċità li tagħmel affarijiet multipli fuq darba, affarijiet ħżiena jista 'jiġri
kontijiet bankarji bħal li qed debitati ħażin, ix-xiri tal-ħalib darbtejn daqs,
jew f'dan il-każ in-numru ħażin ta 'ishma.
Imma hemm mod aktar faċli biex jaħsbu dwar dan.
>> Jirriżulta li SQL jappoġġja wkoll, jekk inti kkonfigurat mejda tiegħek b'mod korrett,
xi ħaġa imsejħa operazzjonijiet, li nixtieq jargumentaw huwa attwalment saħansitra aktar faċli biex jinftiehem
minn dan, imma mhuwiex ta '1-inforra, dan huwa attwalment ftit aktar involuti.
Hemm litteralment dikjarazzjoni fil SQL imsejħa tranżazzjoni START.
Eżatt bħal hemm TAGĦŻEL, AĠĠORNAMENT, DAĦĦAL, Ħassar, u Jissieħbu u mazz ta 'oħrajn,
hemm keywords bħal tranżazzjoni START.
U dak li inti mbagħad tagħmel fil-kuntest ta 'pset 7 -
inti ma għandek tagħmel dan għall pset 7; huwa espliċitament disclaimed bħala mhux meħtieġ,
iżda għall-proġetti finali jista 'jkun utli -
jekk inti sejħa mistoqsija ta 'transazzjoni START u mbagħad ieħor query
u mbagħad ieħor mistoqsija u mbagħad ieħor, ieħor, u ieħor,
dawk id-domandi mhux ser fil-fatt jiġu esegwiti sakemm inti sejħa-dikjarazzjoni SQL COMMIT,
f'liema punt, kemm jekk huwa 2 dikjarazzjonijiet jew 20 dikjarazzjonijiet, dawn se jkunu kollha jiġu esegwiti f'daqqa,
li jfisser l-ebda wieħed inkella jista 'aċċidentalment jixtru l-ħalib wisq jew debitu wisq flus
jew jixtru ishma wisq minħabba kollha ta 'mistoqsijiet tiegħek se tesegwixxi
lura lura lura lura.
U dan huwa super importanti, speċjalment meta int tagħmel xi ħaġa bħal din.
Dan huwa eżempju arbitrarja li tgħid ejja taġġorna l-kont tal-bank
billi hemm bilanċ ugwali għal bilanċ - $ 1000 fejn il-numru tal-kont huwa 2.
U allura-tieni dikjarazzjoni hija issa ejja jiddepożita dak $ 1000
fis xi ħadd ieħor kont bankarju f'isimha numru huwa 1.
>> Fi kliem ieħor, dan huwa eżempju perfett ta 'fejn inti tixtieq li tagħmel ċert
li dawn iż-żewġ dikjarazzjonijiet jiġri jew xejn affattu
għax inkella l-klijent ikun se tikseb invitat
u int ser jieħdu l-flus tagħhom u ma jiddepożitaw xi mkien ieħor,
jew il-bank se tikseb invitat fejn int ser biex jiddepożita l-flus
iżda mhux attwalment naqqas mill-kont tal-utent.
Allura inti tixtieq tnejn minnhom li jwettqu flimkien.
Għalhekk jidħol fis-transazzjonijiet dinja.
Allura li xi ħaġa li jżomm fil-dahar ta 'moħħok,
mhux tant għall-finijiet ta 'ftit proġett finali,
imma jekk inti tixtieq li tieħu proġett finali tiegħek x'imkien,
jekk inti tixtieq li jibdew xi kumpanija madwaru,
jekk inti tixtieq li issolvi l-problema xi grupp istudent fuq il-kampus
u fil-fatt ikollhom ħajjin, websajt attiva, dawn huma t-tip ta 'bugs sottili li jistgħu jinqalgħu
jekk inti ma pjuttost jaħsbu permezz ta 'dak li jista' jiġri jekk 2 persuni
qed jippruvaw aċċess website tiegħek fil-mument litteralment istess ħin,
fejn mistoqsijiet tagħhom inkella jistgħu jiksbu minsuġa.
>> Ready għal xi JavaScript, teaser tiegħu?
Dan huwa lingwa aħħar tagħna għall-semestru. Kull dritt.
B'xorti tajba, JavaScript jistenna ħafna, ħafna, simili ħafna għall-lingwi 2, C u PHP,
aħna ghamilt s'issa.
M'hemm l-ebda JavaScript fil pset 7, iżda huwa għodda oerhört utli
meta niġu biex tagħmel fuq l-internet proġetti finali jew verament ftit programmazzjoni web aktar ġenerali.
Allura ħarsa ta 'malajr ta' xi ħaġa imsejħa DOM.
Hawnhekk huwa super sempliċi web page li verament biss jgħid hello, dinja
kemm fit-titolu u fil-ġisem.
Peress li l-indentazzjoni ġie jissuġġerixxu għal xi żmien,
hemm tassew ġerarkija għall-paġni web.
I jista 'jiġbed dan snippet istess HTML bħala siġra,
ħsieb lura għal diskussjonijiet tagħna ta 'strutturi tad-data fis-C, kif ġej.
Għandi xi node għerq speċjali msejħa l-node dokument,
u aħna ser tara l-Analog ta 'dan fl JavaScript fi ftit mument.
L-ewwel tarbija u tifel biss ta 'li f'dan il-każ huwa l-tikketta HTML.
M'hemm l-ebda immappjar diretta tal-DOCTYPE.
Li l-ħaġa speċjali, hekk aħna għandhom biss jinjoraha meta niġu għal dan DOM,
dan id-Dokument Għan Mudell siġra.
Avviż li l-tikketta HTML, li stajt jidhru arbitrarjament bħala rettangolu,
tkun 2 itfal: ras u l-ġisem.
>> Dawk huma simili mfassla bħala rettangoli.
Huwa sinifikanti pictorially li ras hija lejn ix-xellug tal-ġisem.
L-implikazzjoni hija li l-kap jiġi l-ewwel fil-siġra.
Allura hemm attwalment tordna lill siġra meta inti tiġbed bħal dan,
minkejja li l-forom u whatnot huma arbitrarji.
Kap sadanittant għandha wild wieħed imsejjaħ titolu,
u t-titolu fil-fatt għandha tifel tagħha stess, li huwa "bonjour, dinja",
li jiena deliberatament ġibdet bħala ovali hawn biex jagħmilha kemmxejn differenti mill-rettangolu.
Dawn rettangoli huma elementi, filwaqt hello, dinja huwa verament node test.
Allura huwa node fil-siġra, imma hija tip differenti ta 'node
so I ġibdet dan arbitrarjament differenti.
Bl-istess mod ma ġisem jkollhom tfal imsejjaħ hello, dinja, kif ukoll,
node tant differenti anke jekk dawn qed inzerta l-istess test,
imma stajt mfassla billi tuża l-istess forma. Allura quién?
Ukoll, x'hemm sbieħ dwar HTML hija li jkollhom din in-natura ġerarkika.
U x'hemm sbieħ dwar JavaScript u partikolarment libreriji li huma disponibbli liberament
u popolari bħal jQuery, inti tista 'tinnaviga l-struttura ta' siġra hekk amazingly faċli.
Kwalunkwe ta 'l-għalf għamilna fis-C ma' pointers u siġar traversat u recursing fuq lymph
tfal xellug għat-tarbija dritt, kollha f'daqqa nistgħu sort ta 'tieħu għall mogħtija
bħala amazingly illuminanti jekk mhux ftit frustranti
iżda mhux kważi mod effiċjenti biex imorru dwar l-ipprogrammar.
U hekk ma 'dawn il-lingwi ta' livell ogħla bħall JavaScript
aħna ser tkun kapaċi tinnaviga din is-siġra ħafna aktar intuwittivament.
>> U fil-fatt l-sintassi se tkun pjuttost familjari.
Jekk inti stajt qatt dehru JavaScript qabel, din hija referenza tassew sbieħ
mill-folks Mozilla, il-persuni li jagħmlu Firefox,
hekk li tħossok liberu li jibbrawżjaw li fil-konvenjenza tiegħek.
Dak li inti ser issib - u dawn slides huma identiċi għal dak li aħna użati l-oħra jum -
bl-istess mod, prinċipali hija marret.
Allura meta inti tikteb programm JavaScript, m'hemm l-ebda funzjoni prinċipali.
Inti biss tibda bil-miktub kodiċi.
Iżda distinzjoni ewlenija bejn JavaScript u C u PHP
hija li filwaqt C u PHP s'issa jkunu ġew eżegwiti server sekondarji
mill-apparat f'dan il-każ jew b'mod iktar ġenerali minn server,
JavaScript mid-disinn huwa normalment eżegwit permezz ta 'browser.
Fi kliem ieħor, inti tista 'jikteb il-kodiċi JavaScript, kif aħna qed waslu biex,
fuq server fl-appliance, imma inti jinkludu fost HTML tiegħek, fost CSS tiegħek,
fost GIFs tiegħek u PNGs tiegħek u JPEGs tiegħek
b'tali mod li meta l-utent żjarat web page tiegħek, jekk inti qed tuża JavaScript,
dan il-kodiċi JavaScript ġej minn server għall-browser,
u huwa l-browser li attwalment tesegwixxi dan.
Allura dan għandu implikazzjonijiet sinifikanti għall-proprjetà intellettwali anke.
Huwa tip ta 'iblah li anke taħseb dwar il-protezzjoni IP tiegħek meta niġu għall-JavaScript kodiċi
minħabba fin-natura tal-lingwa jiġrilha eżegwit normalment ġenb browser.
>> Tista 'obfuscate dan, li jfisser li inti tista' tagħmel ħarsa crazy u ikrah
bl-ebda whitespace, ismijiet varjabbli horrible, biex jagħmluha aktar diffiċli għall-persuni li steal IP tiegħek,
iżda l-importanti hu li tkun imwettqa ġenb browser.
Anki jekk bħala server sekondarji aside JavaScript jistgħu jintużaw,
il-każ aktar użu komuni dritt issa għadu fuq il-browser.
U hawn hu dak li jidher qisu. Hawn hu jekk-ieħor jekk-ieħor tibni bħad C, bħad PHP.
Hawnhekk huwa espressjoni Boolean meta int "jew" 2 affarijiet flimkien.
Hawnhekk huwa meta inti "u" 2 affarijiet flimkien.
Hawnhekk hija dikjarazzjoni swiċċ, li huwa simili għall PHP
li inti tista 'taqleb fuq tipi differenti ta' valuri.
Loops simili jkollhom għal-linji hawnhekk, li huma strutturati b'mod identiku għal dak li konna rajna qabel.
Filwaqt loops; konna ltqajna tagħmel waqt loops.
Varjabbli, dejjem hekk ftit differenti.
Inti ma tiddikjara varjabbli simili tagħmel fil-PHP u Ċ,
iżda bl-istess mod huwa JavaScript dgħajjef ittajpjat.
Inti ma tispeċifika int jew float jew spag jew xi ħaġa bħal dik li normalment.
Tista 'tispeċifika var.
Inti ma għandekx li jiġu speċifikati var, iżda għandha implikazzjonijiet jekk inti ma.
Normalment jekk inti tonqos var, inti aċċidentalment toħloq varjabbli globali minflok lokali.
So let me nipproponi li inti kważi dejjem biss jgħidu var u allura l-isem tal-varjabbli.
Mhuwiex tip, huwa biss var għall varjabbli.
Dan ikun ta 'eżempju, jekk huwa 123 jew "hello, dinja".
Arrays huma preżenti u sintattiku simili għall PHP.
I ser ngħid numri var u mbagħad I jużaw parentesi kwadri għal darb'oħra biex tiddikjara varjabbli
li tip hija array li għandu dawn in-numri partikolari fiha separati mill-virgoli.
U mbagħad fl-aħħar, dan huwa l-unika waħda li verament jistenna differenti.
Ifakkar li fil-PHP aħna għandna implimentati firxa assoċjattiva għal student
bħal Zamyla li tista 'tidher bħal dan, fejn il-varjabbli huwa msejjaħ student.
Il-parentesi kwadri jfissru hawnhekk jidħol firxa.
>> Il-fatt li jien ma jużaw indiċi numeriċi iżda kordi - id-dar, u l-isem -
tfisser li dan huwa firxa assoċjattiva,
u dawn vleġeġ mal-daqs sinjal u l-kategorija angolata
tfisser li l-importanti hu "id", il-valur huwa 1;
l-importanti hu "house", il-valur huwa Winthrop Kamra;
il-muftieħ huwa "isem", il-valur huwa Zamyla Chan.
Allura hemm 3 ċwievet ġewwa ta 'dan array assoċjazzjoni, li kull wieħed minnhom għandu valur tagħha stess.
Imxejna dehru li fil pset 7, jew inti hekk se, fil JavaScript istess idea,
iżda li għaddej biex teżamina bħal dan.
Student Allura var - l-ebda sinjal dollaru u l-ebda referenza ta 'tip għadhom iżda var -
daqs u mbagħad iftaħ ċineg kaboċċi għaliex JavaScript meta jkollok pari valur ewlenin,
inti attwalment jużaw xi ħaġa imsejħa oġġett.
U dawk fostkom li ma tieħu APCs jew simili tista 'recall oġġetti minn Java
jew lingwi simili.
JavaScript mhix Java, l-ewwel nett.
Kien snin intenzjonat deċiżjoni tad-disinn ilu li knock off xi ħaġa oħra li kienet popolari,
isem tagħha, anki jekk għandha l-ebda relazzjoni fundamentali li JAVA innifsu.
JavaScript għandha oġġetti, u inti toħloq lilhom permezz ta 'l-notazzjoni Brace kaboċċi.
Oġġetti fl JavaScript huma pjuttost ħafna ekwivalenti għal arrays assoċjazzjoni fil-PHP
meta niġu għall-ħażna tad-data ġewwa minnhom.
>> Iżda anke aktar qawwi fl JavaScript tista tassoċja faċilment funzjonijiet
ġewwa ta 'oġġett, u għalkemm inti tista' tagħmel dan fil-lingwi l-oħra,
huwa pjuttost paradigma komuni, kif Ser naraw.
Fil-qosor, dan l-oġġett jirrappreżenta student, li huwa partikolarment Zamyla,
u huwa simili kunċettwalment, biss sintattiku differenti minn dan.
Ejja attwalment jużaw JavaScript fil-fajl.
Jirriżulta hemm tag iskrittura.
Imxejna dehru tag stil u Rajna HTML tags oħra.
Il-lametta iskrittura fil-fatt se jkun fih xi kodiċi JavaScript.
Let me jmorru fil-appliance fejn għandna xi kodiċi tas-sors minn qabel magħmula.
I ma jkunux stazzjonati encore fuq il-websajt, imma jien ser tagħmel dan wara klassi.
Ejja tiftaħ dan wieħed, blink.html.
Lura fl-1990, kien hemm litteralment tag HTML imsejjaħ il-lametta blink,
u din kienet waħda mill-tags aktar wonderfully Overused fuq l-Internet
fejn youd żżur xi snin 1990 paġna web stil u tibda tara test jteptep inti bħal dan,
ir-riżultati tal-lametta Marquis, li kienet it-test ser bħal dan.
Wieħed mill-ftit drabi meta d-dinja tkun attwalment qablu fuq standard web,
kulħadd madwar l-bord maqtula l-tikketta blink xi snin ilu.
Iżda nistgħu resurrect ma JavaScript bħala turija ta 'l-enerġija li għandek
meta inti tista 'tikteb programm ġewwa ta' paġna web.
Ewwel ejja skip fuq il-għalf ġdid u jiffoka biss fuq il-qodma.
>> Hawn hu l-għalf qodma f'dan l-eżempju.
I jkollhom tikketta HTML, tag ras, u tag titolu.
Imbagħad I jkollhom tikketta tal-ġisem hawn ma 'div, li recall huwa biss diviżjoni rettangolari tal-paġna
li stajt mogħtija ID unika arbitrarju ta '"greeting" biex,
biss hekk I jkollhom mod ta 'unikament jirreferi għaliha, li għandha xi test sempliċi ħafna:
bonjour. dinja,
Issa let me iscroll sal-quċċata ta 'dan il-fajl u tara x'hemm ġdid.
L-ewwel ħaġa li l-quċċata up ġdida hija l-tikketta iskrittura,
u ġewwa ta 'l-avviż tag iskrittura Stajt ddikjarat funzjoni.
Biex tiddikjara funzjoni JavaScript, pjuttost simili għall PHP,
inti litteralment jiktbu funzjoni allura l-isem tal-funzjoni, parentesi,
u forsi xi argumenti jekk tieħu xi.
Imbagħad stajt ltqajna Brace kaboċċi tiegħi bħas-soltu, u issa għandna xi kodiċi kemmxejn ġdida,
imma ejja ara dak dan ifisser.
Allura div var, dan ifisser biss jagħtu me div imsejħa varjabbli.
I jistgħu qalu li din foo, imma jien ridt li jiġu msejħa div
għal raġunijiet li se jkunu ċari fit-tieni.
Imbagħad jirriżulta fl JavaScript - u dan huwa kodiċi JavaScript inkorporat fil-paġna web tiegħi -
hemm varjabbli globali speċjali ta 'tipi imsejħa dokument.
JavaScript huwa fil-fatt lingwa oġġett orjentati lejn.
Aħna mhux se tidħol fis-dettal fil-50 dwar dak li tfisser,
iżda għal issa jkunu jafu li l-oġġett huwa pjuttost ħafna bħal Struct.
Bħal rajna mod lura meta f'wieħed mill-problema kmieni settijiet
fejn aħna jagħmlu ħafna ta 'informazzjoni fil-Struct,
bl-istess mod huwa dokument ta 'Struct speċjali li jiġi ma' l browser,
jiġi ma 'kwalunkwe web page. Mhuwiex xi ħaġa I maħluqa.
Ġewwa ta 'din l-istruttura dokument, għalkemm, inti għandek mhux biss data
imma inti ukoll għandek l-funzjonijiet.
>> U kull darba li inti għandek funzjoni ġewwa ta 'struttura, ġewwa ta' oġġett,
huwa msejjaħ metodu. Imma hija l-istess ħaġa.
Metodu hija funzjoni li biss hekk jiġri li jkun ġewwa ta 'xi ħaġa oħra.
Allura dan ifisser li din il-varjabbli globali speċjali msejħa dokument
għandha funzjoni msejħa getElementById li litteralment ma dan.
Dan inti jkollok element mill-DOM, siġra Dokument Object Model,
li ID huwa f'dan il-każ greeting.
Fi kliem ieħor, dak kollu li ħin moħli fuq strutturi tad-data tidħol fis-play hawn.
Dan stampa ta 'DOM li kellna mument ilu,
anki jekk il-paġna huwa xi ftit differenti, jekk kelli div fil din l-istampa,
dak document.getElementById se jerġa 'lura lili effettivament tkun pointer
ir-rettangolu fil-siġra, referenza għall-rettangolu fil-siġra.
Allura dak hu li jfisser li attwalment sejħa waħda minn dawk il-funzjonijiet.
F'dan il-każ mill-ġdid huwa div. Mhuwiex korp jew titolu.
Mela ejja ara dak I imbagħad tagħmel ma 'dan div issa li għandi hija ġewwa ta' dan div varjabbli imsejħa.
Jirriżulta mal JavaScript għandek il-ħila biex tweak-CSS tal-paġna tiegħek dinamiku.
Sa issa, kollha ta 'l-CSS aħna ghamilt, għalkemm limitat, huwa fil-attributi stil,
jew fejn inkella jkunu npoġġux CSS?
I tip ta 'maħmuġ li wieħed. Fl-tikketta istil fil-quċċata tal-fajl.
Jew tielet post kien fil-?
>> Fajl esterna, xi ħaġa. Css.
Għalhekk dawn huma l-postijiet 3 we ghamilt CSS s'issa,
iżda l-qabda tkun konna iebes kodifikati dan kollu.
Inti iddeċidejt li inti dove fis pset 7, aħna deċiż qabel taħdita dak CSS tagħna tkun.
Iżda jekk inti tixtieq li tibdel CSS tiegħek, inti tista 'tagħmel dan
ladarba inti għandek lingwa ta 'programmar attwali.
CSS, HTML - lingwi mhux ipprogrammar. JavaScript huwa.
Għalhekk jirriżulta li hekk kif ikollok wieħed minn dawk rettangoli mill-siġra
imsejjaħ il-DOM, hija stess tkun xi data ġewwa ta 'dan.
Allura l-div li jien biss grabbed mill-siġra għandu dak li aħna ser sejħa proprjetà ġewwa ta 'dan
imsejħa l-istil, u l-proprjetà l-istil stess proprjetà msejħa viżibilità.
Nixtieq jafu dan biss billi tħares up manwali utent CSS s.
Jirriżulta hemm proprjetà viżibilità CSS li ma dak li jgħid.
Jagħmel xi ħaġa viżibbli jew le, viżibbli jew le.
U kif inti tagħmel dan hija din.
Jien tistaqsi programmatically jekk il-viżibbiltà ta 'dan div hija moħbija,
dak li għandi bidla li? Viżibbli.
Inkella, jekk il-viżibbiltà ta 'din il-paġna ma tkunx moħbija, loġikament I do jagħmilha moħbija.
Għandi l-ebda idea għaliex huwa viżibbli u moħbija u mhux viżibbli u inviżibbli.
Din kienet deċiżjoni disinn fqir tul it-triq.
Iżda dawn huma tassew opposti fl CSS: viżibbli u moħbija.
Dan kollu ma huwa dan ifisser jibdlu l-CSS tal-fajl tiegħi fuq u barra, fuq u barra
għal dak div partikolari.
Iżda għal darb'oħra, dan huwa funzjoni msejħa blink. Meta huwa l-funzjoni blink imsejħa?
Jirriżulta li hemm ieħor globali speċjali tieqa varjabbli msejħa,
simili fl-ispirtu għal dokument, iżda billi d-dokument jirreferi għall-paġna web tiegħek,
bħall-siġra DOM, l-HTML inti mibgħut mis-server,
tieqa tirreferi għall-chrome madwaru, il-address bar, il-bar titolu,
u kollha ta 'li Jittieħed madwar il-paġna web tiegħek.
>> U jirriżulta li l-għan tieqa għandha ġewwa funzjoni speċjali ta 'dan msejħa setInterval
li ma dak li jgħid.
Hija se tagħti intervall - f'dan il-każ kull millisekonda 500 -
u, tieħu raden, dak li huwa għaddej biex tagħmel kull 500 millisekondi?
Huwa ser tesegwixxi dik blink funzjoni.
U x'hemm sbieħ hawnhekk hija li nistgħu għamlu dan fis-C anke jekk aħna qatt għamlet.
C ma jkollhom xi ħaġa imsejħa pointers funzjoni fejn inti tista 'tgħaddi l-funzjonijiet madwar
bħala argumenti.
Bl-istess mod fil-JavaScript tista tgħaddi l-isem ta 'funzjoni fil-funzjoni oħra.
U Avviż dak li qed nagħmel. Jien ma tagħmel dan.
Jekk nressaq parentesi wara t-blink, dan ikun ifisser sejħa tal-funzjoni blink.
Jekk I jħalli barra minnhom, li tfisser hawnhekk hija l-funzjoni blink
sabiex setInterval tista 'sejħa hija kull millisekondi 500.
Allura l-riżultat aħħari, atroċi għalkemm huwa, li jekk immur fis localhost u mur blink.html,
I issa għandhom dan jiġri mill-ġdid u għal darb'oħra.
U jekk I attwalment Spezzjona Element, ejja ara jekk nistgħu naraw dan.
Let me Spezzjona Element, let me iscroll biss ftit,
let me jagħżlu Elementi minn hawn, u l-avviż il-ġewwa DOM ta ispettur Chrome.
Huwa litteralment qed jinbidlu u lura kull millisekondi 500.
Jekk immorru ħabib tagħna Nate,
jekk inti qatt ħsibt kif dan qed jaħdem, idea simili b'intervall,
imma Nate huwa attwalment tagħmel użu effettiv ħafna ta 'kulur f'dan il-każ partikolari hawnhekk.
Allura dak li aktar jista we attwalment tagħmel ma 'dan?
Ejja jiftħu eżempju ieħor u tipprova xi ħaġa
li l-programmatically saħansitra aktar utli milli jagħmlu affarijiet blink.
Let me go fis direttorju forom tagħna llum u jmorru fil form0.
Dan kien il-formola ugliest possibbli li I tista 'toħroġ bi,
u let me biss jurik dak li jidher qisu fil-browser.
>> Let me go fis localhost / forom, u dan huwa form0.
Din hija forma super HTML ikrah li għandha l-oqsma ftit għall-email, għal password,
password, u mbagħad Checkbox ftit li jaqblu li xi termini u kundizzjonijiet.
Il-qabda hija jekk I żjara din il-formola u jien ma jridu jagħtuk indirizz email tiegħi,
Ma rridx li taqbel mat-termini u l-kondizzjonijiet forsi, I jistgħu ikklikkja Reġistru
u hija tikri me permezz xorta waħda.
Dan jiġri li jissottomettu lill-fajl PHP stupid imsejħa dump.php.
Kull ma huwa jistampa l-kontenut ta '$ _GET biss għal skopijiet dijanjostiċi.
Dan kien dak li kien sottomess mill-utent biss issa.
Imma ejja ngħidu aħna fil-fatt tixtieq li jivvalida sottomissjoni forma l-utent.
Let me go fis verżjoni 1.
Dan huwa form1.html. Huwa jistenna estetikament daqstant ħażin, imma avviż kif fancy huwa.
Jekk I ikklikkja Reġistru mingħajr ma kkooperat, niġi għajjat ​​fil.
"Int trid tipprovdi l-indirizz email tiegħek."
Kull dritt. So let me jippruvaw dan. Allura malan@harvard.edu. I m'għandhomx bżonn password.
Reġistru. "Int trid tipprovdi password." Kull dritt.
So I se tipprovdi password ta krimżi. Reġistru.
"Passwords ma jaqblux." Għandi li issa tip fil hawn krimżi.
I aċċidentalment ivverifikat li. Reġistru.
"Int trid taqbel mat-termini u kundizzjonijiet." Kull dritt. Jaqblu hemmhekk. Reġistru.
U issa dan juri lili l-output dijanjostiku hemmhekk.
>> Allura dak li ġara biss?
Aħna kellna din il-ħila biex jivvalidaw sottomissjonijiet formola.
Fil-fatt, jekk inti ma adsa fis pset 7, hemm xi funzjoni ruhna
li jagħmilha pjuttost faċli li Yell fil-utent ma 'messaġġ fuq l-iskrin.
Jien jużaw mekkaniżmu kemmxejn differenti, il-funzjoni ta 'twissija,
li mhix funzjoni li l-tbissem fuq peress li jagħmilha messaġġi utent ħafna ikrah.
Imma ejja ara dak li qed nagħmel hawn.
Dan huwa form1.html, u avviż li għandi xi sintassi pretty familjari:
tag ġisem, lametta forma, attribut azzjoni, attribut metodu.
Imma avviż stajt mogħtija forma tiegħi ID unika għall-konvenjenza.
Imbagħad Stajt ltqajna qasam email li tip huwa test,
qasam password li tip huwa, password konferma qasam li tip huwa password,
u mbagħad Checkbox li ismu huwa ftehim hawn fuq, it-tip huwa Checkbox.
U mbagħad stajt ltqajna buttuna issottometti.
Iżda l-avviż fil-quċċata liema aktar għandi.
L-ewwelnett, hemm użu ieħor tal-lametta iskrittura.
Jekk għandek xi kodiċi JavaScript fil fajl ieħor, bħal ma CSS inti tista 'tinkludi dan.
U inti tagħmel dan ma 'sors iskrittura, u mbagħad tinduna jien konnessjoni apparentement
li googleapis.com għal triq twila ħafna, iżda isem ta 'fajl li jispiċċa fid jquery.min
għal minimu. JS.
jQuery hija librerija popolari super għall JavaScript li biss jagħmel JavaScript
l-aktar faċli għall-utent għall-użu.
Huwa effettivament jsiru standard de facto.
Allura anke jekk dak li int ser tara mhuwiex pur JavaScript per se,
huwa librerija fuq quċċata ta 'JavaScript ħafna bħall-librerija CS50 huwa saff
fuq quċċata tal-kodiċi C ta 'livell baxx; ir-realtà hija kważi kulħadd fuq l-Internet jużaw dan.
Allura dawn mhumiex roti tat-taħriġ. Dan huwa biss l-aħjar prattika dawn il-jiem.
Issa avviż hawn taħt li huwa tag tiegħi iskrittura stess, u l-avviż dak li jien ghamilt hawn.
Jirriżulta li jQuery ma xi ħaġa fancy ftit.
JavaScript għandha sinjali dollaru, iżda huma bla sens.
>> Huma bħall-ittra A jew B jew Ċ
jQuery sempliċement adottat il-konvenzjoni jew tip ta 'talba jitpoġġa għall-fatt
li $ se jkun simbolu speċjali tagħhom.
Allura hekk kif inti tagħbija dan il-fajl JavaScript globali up here bil-tikketta iskrittura,
ikollok aċċess għal varjabbli globali speċjali li sejjaħ $.
Huwa aktar xieraq imsejjaħ jQuery, iżda li ma tfittex kważi bħala sexy kif $.
Imma $ m'għandha l-ebda tifsira speċjali. Fil PHP hija kellha tifsira speċjali.
Kellek biex dan quddiem ta 'varjabbli.
Dan huwa biss ħaġa sexy li jkunu ħadu fuq.
Dak li qed jiġri hawn?
Avviż jien tgħaddi għall-funzjoni jQuery dokument varjabbli tiegħi globali
u mbagħad jien sejħa. lest.
Liema jQuery essenzjalment ma huwa jippermetti li tieħu xi affarijiet JavaScript vanilla
bħall-oġġett dokument, l-oġġett tieqa,
u jekk inti tgħaddi fil-funzjoni jQuery -
u għal darb'oħra, li jkun ċar, dan huwa funzjoni msejħa jQuery -
dak li ma hu dan jirritorna lilek verżjoni speċjali ta 'dokument
li għandha funzjonalità aktar assoċjati magħha.
Għalhekk fl JavaScript prima m'hemm l-ebda funzjoni lesta,
imma jekk inti tgħaddi dokument għall-funzjoni jQuery ewwel,
dan jirritorna lilek verżjoni speċjali tal-oġġett dokument
li għandu karatteristiċi iżjed fancy.
U hu għalhekk li n-nies bhalu. Hija biss jagħmel l-affarijiet aktar faċli li tagħmel, kif aħna qed madwar biex tara.
Allura dak li ma din il-linja tal-kodiċi jfisser?
Din il-linja tal-kodiċi hawnhekk tfisser meta d-dokument ikun lest -
fi kliem ieħor, ladarba l-browser isir qari dan top fajl għal isfel -
imorru quddiem u tesegwixxi l-funzjoni li ġejjin.
X'hemm verament interessanti fil JavaScript - u PHP dan ukoll -
huwa funzjonijiet anonimi.
Fil JavaScript inti tista 'tiddikjara l-funzjonijiet li jkollhom l-ebda isem, iżda dawn ma jkollhom korp.
Avviż dak li qed jiġri hawn.
>> Din hija funzjoni msejħa lesta, u dan ifisser biss tagħmel dan li ġej
meta l-paġna web kollu hija lesta, meta dan kollu kien li jinqara mill-server.
Xi trid tagħmel? Irrid li tesegwixxi blokki ta 'kodiċi.
Avviż li aħna ma rridux li teżegwixxi dan il-kodiċi id-dritt bogħod.
Jekk I titħalla barra dan, dan ikun ifisser immedjatament tibda esekuzzjoni ta 'dawn il-linji ta' kodiċi.
Imma l-fatt li jien tgħid no, no, no, wrap dan funzjoni anonima bħal dan
mezzi ma esegwit għadu; sejħa hija eventwalment.
Rajna dan mument ilu fl-eżempju tagħna forma preċedenti.
Dak il-funzjoni ma nitolbu eventwalment, 500 millisekondi aktar tard? Blink.
Allura l-idea istess.
Għal darb'oħra, anke jekk dan jistenna ftit stramb, ħu għal issa fuq il-fidi
li tiddikjara funzjoni anonimu li sejjaħ eventwalment,
inti sempliċiment tikteb funzjoni () {
Allura dak il-kodiċi huma aħna se tesegwixxi eventwalment? Dawn li ġejjin.
Dan ukoll jistenna ġdid ftit, iżda dan ifisser hawn l-funzjoni jQuery,
u dan issa huwa shortcut.
Dan snippet ta HTML fil-qiegħ tal-iskrin ta 'kors għandu xi rappreżentazzjoni siġra.
Mhuwiex dan. Din il-paġna huwa aktar interessanti minn dan l-eżempju dinja bonjour,.
Iżda hemm xi siġra li jikkorrispondi għal din il HTML.
Ikun uġigħ fl-għonq li jkollha biex timplimenta xi tip ta 'funzjoni jirrikorri
li tibda fil-node għerq u mbagħad isibu l-node li huwa ID reġistrazzjoni.
Allura dak li jagħmel jQuery super faċli għalina hija litteralment dan.
Jimxi 'l quddiem u jiksbu me xi div jew forma tkun xi tkun, tkun xi tkun l-element HTML
għandha ID tar-reġistrazzjoni.
Dan huwa ekwivalenti għal document.getElementById ("ir-reġistrazzjoni").
>> Għaliex in-nies bħal jQuery?
Għaliex dan huwa iqsar għat-tip. Imma li kollox huwa. Hu l-istess idea.
Niżżel me l-tikketta li huwa ID reġistrazzjoni.
U meta dik tikketta, li jiġri li jkun forma, tiġi ppreżentata,
jimxi 'l quddiem u tesegwixxi dan il-kodiċi.
Mela ejja tagħti ħarsa 1 issa lejn kif aħna qed tagħmel validazzjoni formola.
Is-sintassi hija ċertament cryptic fl-ewwel, imma x'inhu għaddej?
Jekk din il-linja tal-kodiċi huwa veru, jien ser Yell fil-utent biex jipprovdi tiegħu jew tagħha l-indirizz email.
Allura x'inhi din il-linja tal-kodiċi?
$ Ifisser jQuery. Issa Avviż dan.
Dan huwa tip ta 'bħal CSS.
Jekk inti ħadthom dived fis CSS għadhom, inti ser tkun taf li dan ifisser l-element li huwa ID reġistrazzjoni.
L-ispazju ifisser isibu tifel jew dixxendent ta 'reġistrazzjoni li ismu huwa input.
U allura dan ħaġa fil pjazza parentesi huwa filtru ftit.
U anki jekk dan jistenna cryptic, dan ifisser biss imorru għall-formola li hija ID reġistrazzjoni,
mur ġewwa element input ta 'dak li ismu huwa email,
u mbagħad jiksbu l-valur tiegħu, ikun x'ikun il-valur tiegħu jiġri li jkun -
asdf jekk li kollox I ittajpjat jew malan@harvard.edu jekk dan huwa dak I ittajpjat.
Allura jekk il-valur ta 'kamp email-formola tal == xejn, Yell fil-utent.
Inkella jekk il-valur tal-qasam password == xejn, Yell fil-utent.
>> Inkella jekk il-valur tal-qasam password ma daqs il-valur tal-qasam konferma,
li kienet l-element forma oħra, Yell fil-utent.
U mbagħad fl-aħħar - u dan wieħed wisq għandha wħud sintassi ġdida ta 'tiegħu stess,
iżda li ladarba inti stajt tidher dan, huwa mill-inqas ftit aktar raġonevoli -
inkella jekk il-formola li hija ID reġistrazzjoni għandu element input li ismu huwa ftehim
u huwa kkontrollat, imorru quddiem u Yell fuq l-utent.
So I totalment nammetti li dan huwa kompletament kbira ewwel daqqa t'għajn.
Huwa ħafna ta 'sintassi ġdid. Iżda kollha ta 'jQuery ġej dawn it-tipi ta' mudelli.
U onestament, I lanqas biss jafu dan jeżisti sakemm ftit minuti ilu.
I Googled, "Kif inti tiċċekkja jekk Checkbox hija vverifikata fl jQuery?"
u dan huwa l-sintassi, għaliex hemm modi differenti ta 'kif isir dan
bl attwali kodiċi JavaScript prima.
Hekk kif il-paġna ewwel ta 'Set Problem 7 jenfasizza,
pset 7 huwa ferm eżerċizzju fil bootstrapping yourself
fejn konna pprovduti, wieħed jittama, qafas kunċettwali li biex tindirizza l-pset.
>> Imma kif huwa spiss il-każ ma 'disinn web, huwa sa inti verament li poke madwar,
jinkorpora siltiet tal-kodiċi u eżempji mill-Web sakemm inti jużawhom
Skond il-termini dwar l-ewwel folja,
u jirrealizzaw li t-tagħlim HTML, CSS, JavaScript u anki SQL
huwa verament maħsub li jkun dan l-eżerċizzju fil-dar kif aħna jibdew jieħdu dawn ir-roti ta 'taħriġ off.
U jirrealizzaw wisq hemm ħafna affarijiet aktar inti tista 'tagħmel ma' browser.
Ġewwa ta 'ħafna minn dawn l-elementi hemm affarijiet oħra msejħa handlers avveniment.
U anki jekk aħna biss ħares lejn dawk imsejħa onsubmit u onready,
inti tista 'tagħmel affarijiet simili onkeydown, onkeyup,
bħal meta l-utent tmiss ewlieni, inti tista 'tisma għal dan u l ċavetta.
Gmail għandha shortcuts tal-keyboard.
Kif ma Google jimplimentaw shortcuts tal-keyboard bħal C għal compose?
Huma jisimgħu għal avvenimenti, kif dawn qed jissejjaħ, bħall onkeypress jew onkeyup u onkeydown.
Jekk inti stajt qatt hovered maws fuq xi għażla menu
u kollha f'daqqa, voila, a menu jidher jew jibdel il-kulur grafiċi,
kif huma jagħmlu dan?
Pjuttost milli jisimgħu għal onready jew onsubmit, inti tisma għall onmouseover jew onmouseout.
>> Allura fil-qosor, dawn il-punti bażiċi sempliċi ħafna li konna beda tobrox il-wiċċ tal-lum
u aħna ser adsa wara nhar l-Erbgħa, għandek, dejjem aktar,
setgħa li jimplimentaw il-tip ta 'affarijiet li int diġà familjari magħhom.
Mela ejja jieqafx hemm, u aħna ser tkompli dan l-Erbgħa.
>> [CS50.TV]