[Powered by Google Translate] [Semèn 9]
[David J. Malan - Inivèsite Harvard]
[Sa a se CS50. - CS50.TV]
Tout dwa. Byenveni tounen. Sa a se CS50, e sa se kòmansman an nan semèn 9.
Jodi a nou konsantre an patikilye sou konsepsyon, pa nan yon kontèks C
men nan yon kontèks PHP ak yon ti jan nan SQL ak yon ti jan nan JavaScript,
patikilyèman nan direksyon yon fen nan tou de pset 7 ak tou pwojè final ou a.
An reyalite, si ou se nan pwen sa a nan pwojè final ou a
kote prezimableman kòm nan yon èdtan oswa konsa Anons sa pibliye depi ou omwen te kòmanse bay kèk panse
final pwojè ou a ak w ap panse ou ta renmen kolabore ak 1 oswa 2 kamarad klas,
si w ap gen pwoblèm koneksyon avèk kamarad klas di,
santi yo lib yo ranpli fòm lan nan cs50.net/partners/form.
Li jis mande w ki moun ou ye, ki kalite pwojè w ap panse sou sa,
kote w ap viv jis pou rezon lojistik.
Lè sa a, si ou vle kenbe yon je sou sou pwochen semèn lan oswa konsa adrès URL la calcul a,
ou ka Lè sa a, wè yon vèsyon Read-Only nan Google doc la
nan ki n ap kolekte enfòmasyon sa a.
Se konsa, si ou vle travay avèk yon moun, pa tout vle di santi yo lib yo rive jwenn deyò moun
via ki mekanis.
Men, majorite nan jan fè solo travay. Sa a se totalman amann.
Se konsa, pa santi ke sa a se nan nenpòt fason obligatwa.
Nan Vandredi li te jis m 'ak kèk nan ekip la nan isit la,
vid teyat pou pati ki pi.
Te gen 3 touris chita 'kanpe, se konsa sa ki te yon ti kras gòch.
Ki sa nou te pale osijè de te baz done ak nou te pale de pset 7 yon ti jan.
Men, si nou pa t 'rive trape ki sou videyo jis ankò, sa se amann.
M ap eseye defini nenpòt tèm ke nou ta otreman pran pou yo akòde
ki baze sou konferans Vandredi a.
>> Men, jodi a nou pral pou yo eseye fè ou jwenn nan pwen an
nan pa sèlman yo te kapab fè yon bagay tankou pset 7
men vrèman konprann sa k ap pase sou anba kapo machin lan,
patikilyèman kèk nan Abstraksyon sa yo ke nou mete nan plas nan dosye a functions.php
fè lavi ou yon ti jan pi fasil, men se konsa ke ou finalman konprann
konsa, lè wou yo fòmasyon vin wete nan kèk semèn ou ka toujou siviv
nan mond reyèl la epi nou fè bagay sa a san okenn kad CS50 anba ou.
Sa a _SESSION $, pou moun nan nou ki yo abitye
oswa ki te deja pran videyo a nan Vandredi, ki sa ki SESYON kite nou fè
nan yon aplikasyon web PHP ki baze sou?
Sa a se yon varyab supèrglobal, ki vle di li nan menm jan an nan lespri yo ka resevwa ak POST
ak yon lòt moun kèk, men sa ki bagay sa a itil pou?
>> Ki sa ki SESYON itilize pou? Yeah. [Elèv] antre pous
Padon? [Elèv] antre pous antre pous Vreman vre.
Nan pset 7 n ap lè l sèvi avèk sa a supèrglobal SESYON fasilite antre pous
Ak sa ki nan bon sou sa a supèrglobal se ke li nan yon etalaj asosyatif.
Yon etalaj asosyatif, sonje, se jis yon etalaj, men pa gen okenn pi long ki gen endis yo dwe nimewo
tankou 012. Yo ka nimewo oswa yo ka menm strings.
Se konsa, si ou te plonje nan pset 7 ankò, ou ka sonje ke nou ap estoke yon kle ID rele
andedan sa a etalaj asosyatif ki gen valè se yon bagay tankou 123 -
kèlkeswa sa kounye a louvri sesyon an nan ID itilizatè a se.
Motivasyon an pou sa a se ke menm apre si itilizatè a te vizite lokalost
oswa sit entènèt mwen an plis jeneralman ak Lè sa a, yo te louvri sesyon an,
menm si yo pa klike sou yon lyen oswa retounen nan sit entènèt mwen an pandan 5 minit
oswa menm yon èdtan oswa menm yon jou, men yo kite fenèt navigatè yo ouvè,
via sa a supèrglobal mwen ka sonje ke yo louvri sesyon pous
>> Nan lòt mo, li pèmèt m 'nan magazen anyen yon ti kras tèm long mwen vle sou yon itilizatè.
Epi ou ka panse a li vrèman kòm enkarnasyon a nan yon kabwa fè acha.
Kote tankou Amazon evidamman kite ou mete bagay sa yo nan yon shopping cart,
men HTTP, pwotokòl la ki pouvwa entènèt la, se atach avèk okenn peyi
nan sans ke lè ou vizite yon sit entènèt,
pou pati ki pi ou pa gen kèk koneksyon rezo konstan
ant navigatè ou ak sèvè a.
Le pli vit ke ou te telechaje HTML ak JPEGs yo ak jif yo ak tout sa ki,
koneksyon an ale lwen ak ou jis gen yon kopi nan HTML ak etajèr soti nan sèvè an.
Men, si sèvè a vle sonje yon bagay sou ou,
chay la se sou sèvè a aktyèlman anrejistre enfòmasyon sa a.
Se konsa, nou pwogramè a ki gen kontwòl sou sèvè a
ka mete pi anyen ou vle andedan sa a etalaj supèrglobal asosyatif
epi li pral gen tan nan pwochen itilizatè a vini tounen,
si li nan minit oswa menm jou apre, sof si yo fèmen fenèt navigatè yo,
nan ki pwen SESYON disparèt.
Se konsa, li depo efemèr, li la ki pa ki pèsistan, ak li a te vle di l 'ale
le pli vit ke itilizatè a fèmen navigatè yo - se pa sèlman ki tab, souvan navigatè la an antye,
ensi efektivman antre itilizatè a deyò.
Se konsa, kouman sa a se bagay aktyèlman aplike?
Kite a pran yon gade rapid nan yon egzanp ki senp nou te etidye nan Vandredi.
Pou moun ki abitye, li te kòm senp tankou sa a.
Sa a se yon paj wèb ki sèl objektif nan lavi se fè m 'konnen
konbyen fwa mwen te vizite paj sa a.
Sa a se premye fwa a isit la sou Lendi a ke mwen te vizite li, konsa li di 0 fwa.
>> Men, si mwen kòmanse rupture paj sa a, li di 1 tan, 2, 3, 4, 5,
ak sa a pral evantyèlman jis kenbe sou konte leve, leve, leve, leve, moute
pou chak tan mwen aktyèlman klike sou Reload sou li.
Se konsa, kouman sa a ap travay? Kite m 'ale andedan sa a ranpli rele counter.php.
Pati a anwo nan li se tout kòmantè ble, men pati nan enteresan an se isit la.
Sou liy 13 nou rele sa a session_start fonksyon,
e ke se literalman tout sa ou bezwen fè si ou vle gen aksè
sa a supèrglobal espesyal ki rele $ _SESSION.
Ki fè li tout sa ki posib, epi nou pral wè nan yon moman ki jan ki nan tout sa posib.
Nan liy avi 16 sa m ap fè a.
Si kle a, yo rele kontwa - nan lòt mo, valè a endèks - "vann san preskripsyon"
egziste anndan sa a etalaj yo rele sesyon, Lè sa a, ki sa mwen ap fè avèk li nan liy ki anba a?
Ki sa ki se liy 18 ap fè?
>> [Fèbl repons elèv] Ki sa ki nan sa? [Elèv] Sere valè an. Bon.
Li nan estoke valè a ki nan nan sesyon dwa kounye a nan yon nouvo lokal varyab tanporè,
$ Kontwa nan tout miniskil.
Remake PHP se deja ke yo te yon ti kras parese isit la.
Avi nou pa gen nenpòt ki mansyone nan int oswa flote oswa fisèl oswa yon bagay tankou sa
paske PHP se chetif tape, annakò ak sa ou pa bezwen presize kalite a nan yon varyab,
ak nan ka sa a isit la, mwen pa te menm te deklare li ankò.
Mwen deklare li anndan nan sa yo aparèy òtopedik Curly ak kontrèman ak C, sa a se aktyèlman oke.
Pa gen pwoblèm ki jan pwofondman pare solèy deklarasyon yon varyab a se nan PHP -
andedan nan atèl Curly, andedan nan atèl Curly ak renmen an -
li pral nan moman sa nan tan ki egziste pou rès pwogram nan,
pou pi bon oswa pou vin pi mal.
Se konsa, li imedyatman vin mondyal osito ke ou defini li kòm n ap fè isit la.
>> Sinon, si mwen pa jwenn ke gen nan anything nan supèrglobal nan sesyon,
Mwen aparamman inisyalizin sa a vann san preskripsyon varyab a 0,
ensi jis asepte itilizatè a te janm gen isit la anvan.
Lè sa a, sa a nan kou se incrementing kontwa an ki jan?
Mwen mete ajou valè a ki sa ki andedan sa a etalaj asosyatif
pa mete li egal a kèlkeswa sa kontwa kounye a se + 1.
Si m 'desann isit la yo HTML ki nan paj la, li la aktyèlman trè senp.
Tout sa mwen gen nan kò a nan paj sa a se, "Ou te vizite sit sa a pou-ak-se konsa fwa."
Ak sa a se yon tise PHP.
Si ou fè sa <? =, Sa a se ekivalan efektivman nan sa fonksyon?
Li nan reyèlman ekivalan a yon bagay tankou printf, ki nou te wè anpil fwa nan C,
byenke menm jan ou ka konnen deja soti nan espèk a nan pset 7,
ekri ak lèt ​​detache a tou se yon fonksyon ki jis simagri yon bagay ki soti, li pa sèvi ak aktyèlman kòd fòma,
epi ou ka di reyèlman eko kòm byen.
Yo ap tout janm konsa yon ti kras diferan menm si efè a nèt se alafen menm bagay la.
Se konsa, sa a pou sèvi ak nan egal siy se jis sòt de yon fason elegant nan fè li
plis suksen pase ou ta ka otreman kapab.
Se konsa, ki nan tout sa sit sa a fè. Li simagri soti valè a nan vann san preskripsyon.
Kijan sa a se tout aktyèlman rive?
Ou ka sonje yon semenn oswa konsa Anons sa pibliye depi nou te kòmanse kap anba kapo a
nan ki jan yon paj wèb travay pa lè l sèvi avèk sa a tab Enspektè.
>> Chrome gen sa a tou de nan vèsyon an Mac, vèsyon an Windows, e menm vèsyon an Linux,
ak Firefox ak IE gen mekanis ki sanble kote ou gen sa a debugjeur bati-an
andedan nan navigatè a.
Se pou nou pran yon gade nan sa ki annapre yo.
Nou gen yon pakèt antye nan onglè isit la, ak sonje ke youn nan leftmost se eleman,
e pa gen pwoblèm ki jan godawful HTML ak JavaScript se nan yon paj,
sonje ke ak tab la Eleman ou ka aktyèlman navige HTML nan yerarchik
ak bèl e byen.
Se konsa, si w ap eseye aprann nan men yon sit entènèt tankou Google oswa Facebook
oswa reyèlman nenpòt ki sit entènèt, reyalize ke w ap pwobableman pi byen
gade nan kòd la sous nan fason sa a kòm opoze a gade sous la anvan tout koreksyon,
ki kapab yon dezòd, menm jan nou te wè espesyalman sou sit Google la.
Se konsa, si mwen olye klike sou tab la Rezo isit la,
kite a wè sa k ap pase sou lè m 'ale nan paj sa a.
Premye kite m 'klè kachèt m' yo.
Mwen pral antre nan Settings nan Chrome ak Lè sa a, ale nan Istwa
ak Lè sa a, Klè tout done navigation.
Ou ka itilize yo fè sa pou lòt rezon, [ri]
men lè li rive devlope sou sit entènèt, li la aktyèlman itil -
si w ap ri ou konnen. [Ri]
Li nan aktyèlman vrèman itil lè devlope sou sit entènèt paske reyalite a se
bagay sa yo tankou bonbon ak bagay sa yo tankou dosye kach HTML, kach JavaScript dosye
ka aktyèlman vin yon tèt fè mal gwo, paske si pou kèlkeswa rezon
navigatè a deside Cache kèk dosye e ankò ou te fè chanjman nan dosye ki sou sèvè a
men navigatè a pa t 'reyèlman reyalize ke te dosye a chanje
ak Se poutèt sa pa aktyèlman re-telechaje li menm lè ou klike sou bouton ki Reload,
youn nan fason yo jis asire ou ke fòt la se pa avèk kòd ou ki pi surefire,
li nan ak konpòtman an nan navigatè a, se ale nan isit la nan navigatè ou a
ak jis klè istwa a tout antye pou ke gen nan pa gen konfizyon.
>> Lè sa a, si ou reyèlman vle yo Paranoya, kite navigatè a, rekòmanse li,
ak Lè sa a, asire ou ke tout ap travay jan yo espere.
Se konsa, nan kout, netwaye kachèt se yon bon bagay lè nou ap fè devlòpman.
Se konsa, isit la nou gen tab la Network.
Mwen te deja te vin vizite sit la nan 9 fwa, men kite m 'ale pi devan koulye a, epi klike Reload.
Ak mwen tounen desann nan 0.
Se pou nou aktyèlman wè kouman li se ke sa a se supèrglobal SESYON te aplike.
Mwen pral klike sou 1 demann lan HTTP ki te fè a,
ak fenèt sa a debogaj pèmèt m 'gade anndan an sa.
Men mwen wè jis repons lan soti nan sèvè an, ki se pa enteresan.
Mwen te wè sa a nan nenpòt ki nimewo nan fason.
Men, sa ki nan teknikman enteresan yo Tèt yo.
Si m 'desann isit la epi konsantre sou Tèt yo demann, epi klike sous vi,
sa m ap pral wè se literalman demann lan HTTP
ki jis te ale nan navigatè mwen nan sèvè a,
JWENN yo te pawòl Bondye a fonksyonen ak Lè sa a, / counter.php yo te non an ranpli,
HTTP/1.1 jis ke yo te vèsyon an nan HTTP ki navigatè mwen an ap lè l sèvi avèk.
Liy sa a isit la se yon rapèl ti kras nan navigatè nan sèvè ki sa non an nan sèvè a se
ke li vle pou pale.
Lè sa a, rès la nan sa a se pafwa enteresan, men se pa ki enpòtan kounye a.
>> Sa a se jis kalite yon kiryozite.
Skre menm si sa a se fisèl, nenpòt ki lè navigatè ou a vizit yon sit entènèt
li se pou enfòme sèvè a ki sa navigatè w ap itilize
epi ki sa sistèm opere w ap itilize ak sa ki vèsyon ladan l '.
Se konsa, si ou te janm mande ki jan sit entènèt tankou CNN ak etajèr
konnen ki sa ki pousantaj yo se nan Mac itilizatè sou entènèt itilizatè yo, PC,
Itilizatè IE, itilizatè yo Chrome ak renmen an, li nan paske tout navigatè nou
ap di chak sit entènèt yon sèl soti la ki sa nou yo ye.
Li pa nesesèman gen enfòmasyon ki idantifye moun pèsonèlman,
men li fè sa di sèvè a ki sa adrès IP ou ye epi kisa navigatè ak OS w ap itilize.
Se konsa, ke se la li enfòmasyon sa a.
Men, sa ki nan plis enteresan kounye a lè li rive sesyon sa yo se header nan repons.
Kite m 'klike sou gade sous akote repons.
Ki sa ki nan enteresan isit la se yon bagay kèk.
1, nou te tounen yon kòd estati a 200.
Nou pa janm wè sa a kòd estati paske sa vle di tout bagay byen.
Sa vle di literalman oke nan kontra yon lòt bagay.
Ki sa ki nan yon nimewo nou pafwa wè sa a, se move? [Elèv] 404.
404, dosye pa jwenn, 403 ou ka baryè sou deja,
ki sa yo entèdi, ki vle di ou bliye yon bagay chmod, gen plis chans.
Ak gen nan yon pakèt moun sou lòt moun.
>> Desann isit la, sa a se yon ti kras fou.
Mwen vrèman jis te ekri sa a ranpli kèk minit de sa pa kole l 'nan jdi.
Poukisa paj sa a ekspire nan lane 1981 anvan te gen vrèman se te yon sit entènèt?
Ki sa ki ap pase la?
>> [Fèbl elèv repons] koupon pou la tan. Men, poukisa?
Li nan yon ti jan abitrè, men li la aktyèlman itil.
Ki sa sa se li di l navigatè mwen an se sa a ranpli PHP ou te jis mande te deja ekspire.
Anfèt, li ekspire 30 ane de sa.
Men, sa ki ki vrèman vle di?
Li jis vle di tan nan pwochen itilizatè a vizite paj sa a,
si pa rupture oswa tape adrès URL la nan ba a adrès,
asire w ke ou ale ak chache yon kopi nouvo nan li.
Sa a se sòt de yon egzanp sou rsu kachèt,
yon mo estipid ki jis vle di ap eseye dekouraje navigatè
soti nan aktyèlman HTML caching ki nan te voye soti nan yon sèvè
se konsa ke ou pa aksidantèlman frape rcharjeman ak Lè sa a, wè vèsyon an menm nan dosye a.
Ou aktyèlman vle sèvè a voye yon kopi nouvo.
Se konsa, reyalite a ke li nan 1981 jis vle di ke se sa ki aparèy la ap chwazi
kòm yon dat abitrè nan tan lontan an.
Men, liy la reyèl juicy se kounye a yon sèl sa a.
Menm anvan 50 w ap pwobableman abitye avèk vagman bonbon.
Kòm a kounye a, sitou pami sa yo ki mwens konfòtab oubyen nan ant,
sa ki se yon bonbon nan konpreyansyon ou an kounye a
menm si nou ap sou fè sa ou konprann plis teknik?
Ki sa ki nan yon bonbon? Yeah.
[Elèv] Enfòmasyon sou itilizatè a yo, renmen yo si yo te ekri non itilizatè yo oswa yon bagay.
>> Bon. Li nan enfòmasyon sou itilizatè a, si yo te tape nan non itilizatè yo deja.
Bonbon yo se yon fason kote serveurs ka sonje yon bagay sou yon itilizatè.
Ak sa ki yon bonbon vrèman se se yon dosye tèks oswa kèk sekans bytes
ki nan te plante pa sèvè a andedan nan navigatè ou a,
ak andedan nan ki dosye oswa nan mitan moun bytes se kèk kalite idantifyan.
Petèt li nan literalman non itilizatè ou, men ou pi souvan li nan yon bagay ki pi skre-ap chèche
tankou bagay sa a isit la - bo8dal3ct ak pou fè - sa a fisèl alfa reyèlman gwo
sa ki nan vrèman jis vle di ke yo gen yon idantifyan inik pou ou.
Oswa ou ka panse a li kòm yon sòt de koupon pou men vityèl.
Si ou ale nan kèk klib oswa yon pak amizman, sonje ke ou te aktyèlman peye
e yo ale nan yo, yo mete yon ti kras fich wouj sou men ou nan kèk sòt,
ak ki raple moun yo nan kontwa an ke ou te deja peye
epi ou ka vini e li ale menm jan ou tanpri.
Bonbon yo se yon ti kras menm jan an nan lespri ak sa yo ki.
A premye fwa mwen te vizite sit entènèt sa a, jan mwen jis te fè apre netwaye kachèt m 'yo,
sèvè a entènèt, aparèy la nan ka sa a, mete yon koupon pou achte sou men m '
ki gen non se PHPSESSID, sesyon ID,
ki gen valè sa a fisèl alfa reyèlman long.
>> Se konsa, sa a, se kounye a sòt de senbolize sou men m 'pou ke tan nan pwochen mwen frape Reload
oswa manyèlman vizite URL sa nan yon navigatè,
navigatè mwen an pa definisyon HTTP ki pral prezante koupon pou la men
ankò, li ankò epi ankò.
Se konsa, menm si sèvè a pa nesesèman konnen ki moun ki mwen menm,
yo omwen konnen ke mwen itilizatè a menm oswa omwen, plis espesyalman, navigatè a menm.
Se konsa, sa a se finalman ki jan se supèrglobal a SESYON aplike.
Sèvè a pa gen okenn lide ki moun ou ye lè ou revize yon sit entènèt pou dezyèm lan oswa twazyèm fwa a
sof si ou prezante sa a koupon pou men yo.
Ak le pli vit ke ou prezante ke koupon pou men,
sèvè wèb la esansyèlman ale nan yon baz done ti kras nan pwòp li yo
ak chèk, oke, mwen te jis wè koupon pou la men nan bo8dal3ct itilizatè ak pou fè.
Kite m 'wè sa ki enfòmasyon te pwogramè a ki estoke
andedan nan supèrglobal a sou sa a itilizatè,
ak Lè sa a, kite m 'asire w ke ke done se ankò andedan nan sesyon an supèrglobal
pou ke pwogramè a kapab re-jwenn aksè ki done
menm si li te mete kèk minit oswa èdtan Anons sa pibliye depi.
Se konsa, nan lòt mo, bonbon, ki te resevwa yon rap move pou kèk tan
paske nan ensekirite nan navigatè epi yo ka vrèman vyole vi prive nou yo ak tout sa a,
yo gen aktyèlman gwo sèvis piblik paske san yo pa yo
ou ta konstaman ap antre nan chak paj Facebook ou vizite
oswa chak imel Gmail ou li si navigatè a pa t 'gen kèk fason pou sonje
ke ou te deja otantifye.
>> Se konsa, nan fason sa a bonbon yo te voye yo retounen ak lide atravè fil yo.
Yon lòt kiryozite sou bonbon yo, espesyalman isit la, se ke sa a se konplètman nan klèr.
Gen nan pa gen chifreman ale sou isit la tou sa,
ak tout bon mwen sèvi ak HTTP nan moman an.
Youn nan favorites moman nou yo nan CS50, ki se kounye a 2 ane de sa,
te alantou tan an yon zouti ki rele Firesheep 'soti a.
Sa a te yon moso nan lojisyèl gratis ki te fèt pa yon chèchè sekirite
kòm yon apèl reveye-up pou kominote a vle di jis ki jan atrociously aplike
mekanism validation sèten sou entènèt la te ye.
Se konsa, pou kèk tan, Facebook te prèske antyèman sou HTTP, pa gen t.
Ak menm si ou pa gen okenn lide ki jan kriptografik a travay, S yo an sekirite
se konsa li vle di gen nan omwen kèk chifreman enplike nan sa.
Facebook t 'sèvi ak ankripte non itilizatè yo ak modpas,
men osito ke ou te gade ou pokes oswa mesaj ou a oswa manje nouvèl ou an,
nan tout sa te kode.
Se konsa, te Gmail jiskaske jis yon ane oswa 2 Anons sa pibliye depi.
Nenpòt ki lè w ouvri sesyon an, se wi, yo te konn itilize an sekirite chifreman,
men apre sa yo pa t '. Epi poukisa ta ka ke ta dwe ye?
Poukisa nou pa jis itilize chifreman tout tan an nan ka itilize tankou sa a?
Ki sa ki nan sa? Mwen panse ke m 'te tande yon bagay. [Elèv] Speed.
Speed, dwa? Gen fason alantou sa a.
Men, si ou jis kalite panse sou li lojikman, si ou ankripte yon bagay,
sa ou dwe fè omwen yon ti kras plis travay.
Nan pset 2 lè ou aplike Seza tande kòz oswa Vigenere oswa menm krak,
jis enprime yon kòd se relativman fasil.
Chifreman ak Lè sa a, enprime yon kòd minim mande travay yon ti jan plis.
>> Pou sit entènèt super popilè tankou Google ak Facebook,
si ou gen fè plis travay pou chak itilizatè pou chak paj entènèt sèl yo vizite,
ki jis pran plis tan CPU.
Men, si ou bezwen plis tan CPU, ou ta ka bezwen plis Sèvè yo,
ki vle di ou ta ka bezwen plis lajan.
Se konsa, pou anpil ane sa a jis reyèlman pa t 'pi bon pratik.
Moun ki ta sèvi ak SSL chifreman sèlman lè yo bezwen yo.
Men, li te tounen soti, ak tankou sa a Bondye ansanm avè Firesheep te fè super klè,
lè ou nèg ki gen kounye a sou Facebook kounye a -
Soti nan kiryozite, se pou yo wè si ou pral fess leve.
Si ou se sou Facebook kounye a nan kèk tab, menm si li pa foregrounded,
se HTTP URL ou a oswa t?
[Elèv yo miltip] S. S? [Ri]
Oke. Nenpòt HTTP? Jis 1? Oke.
Se konsa, tout moun nan nou ka Hack Facebook kont ke nèg la kounye a.
Pou pati ki pi sa a te vin devni vire sou pa default, omwen nan kèk sit entènèt.
Ak long istwa kout, si trafik entènèt ou an se pa chiffres,
pa sèlman HTML a ale retounen ak lide atravè WiFis yo kode,
Se konsa bagay sa yo tankou bonbon ale retounen ak lide nan tout syèl la
san nenpòt fòm chifreman.
Se konsa, si ou gen jis yon ti jan nan konprandr pwogram oswa yon ti jan nan Googling ladrès
jwenn gratis lojisyèl ki fè sa, tout sa ou dwe fè se chita nan Starbuck
oswa chita nan yon ayewopò, kote ki gen nan jeneralman kode fil
ak jis gade pou mo kle tankou bonbon Mete-: oswa PHPSESSID
paske si w gen konprandr nan teknik a jis gade fil la
pou tout moun nan Bits yo ki pase nan tout syèl la pou sa a modèl,
ou ka Lè sa a, di ke PHPSESSID nèg la k ap pase yo bo8dal ak pou fè.
Lè sa a, ankò si ou se ase teknikman konprandr oswa ki gen zouti nan dwa,
ou ka Lè sa a, jis rkonfigurasyon navigatè pwòp ou a kòmanse prezante ki koupon pou men
Facebook.com, ak Facebook se jis ale nan asime ke ou se ke nèg
paske tout sa yo konnen se pa ki moun ou ye, men ke ou gen sa a idantifyan inik.
Se konsa, si ou vòlè ki idantifyan inik ak prezante li nan sèvè sit entènèt la kòm pwòp ou a,
yo se jis pral montre w manje nouvèl moun sa a
oswa mesaj moun sa a oswa pokes.
>> Apre sa, mwen ta Google kounye a ki jan yo aktive t pou Facebook petèt.
Men, li vrèman se kòm senp tankou sa.
Se konsa, Facebook ak Google ak renmen an gen vinn reyèlman bon nan sa a,
men kenbe yon grenn je deyò tout plis an pou nenpòt ki sou sit entènèt ou vizite ki pa itilize HTTP
epi gen kèk kalite enfòmasyon sansib sou yo,
si li nan finansye oswa pèsonèl oswa renmen an.
Si yo pa ap sèvi ak sa a, byen petèt ka bonbon tankou sa a ap trè fasil yo vòlè li
ak Lè sa a, fòje, e ke se ekzakteman ki sa Firesheep te fè sa.
Ou pa t 'gen yo dwe yon pwogramè.
Tout sa ou te fè te gen yon koneksyon entènèt, download zouti sa a gratis,
epi ki sa li ta fè se ou ouvri sesyon an ak Lè sa a, li ta montre w non yo Facebook
tout moun ki nan Sanders, nan sa a demonstrasyon an patikilye, ki ozalantou ou
ak tout sa ou te fè te klike sou non yo ak lojisyèl an otomatik pwosesis la
nan rnifle ki bonbon, prezante l 'bay Facebook kòm pwòp ou a,
, epi, vwala, w ap louvri sesyon pous
Se konsa, sa a se yon lòt youn nan moun ki "pa fè sa" ofisyèlman.
Si ou gen rezo pwòp lakay ou, epi ou vle Tinker, pa tout vle di,
men mwen reyalize sa a fè travèse liy la sou yon anviwònman nan inivèsite a.
>> Men, objektif la isit la se vrèman mete aksan sou pa ki jan fè sa a
men ki jan defann kont sa yo kalite bagay sa yo.
Ak solisyon an trivial isit la, menm si li tèt li se defekte,
se vrèman redwi itilizasyon nan nenpòt ki sit ki pa gen lè l sèvi avèk t toujou ap.
Se konsa, sit tankou Facebook ak Google de pli zan pli gen kaz
kote ou ka patisipe nan sa a sòt de bagay sa,
ak bank yo te gen sa a pou ane pou rezon menm jan an.
Se konsa, jis yon ti kras nan yon faktè pè si nou kapab. Men sa a li nan yon Nutshell.
Sa a se ki jan yon sèvè sonje ki moun ou ye.
Ak le pli vit ke yo ka sonje ki moun ou ye, yo ka sonje anyen sou ou
ki te pwogramè a estoke andedan sa a supèrglobal espesyal ki rele $ _SESSION.
Ak pou pset 7 n ap sèvi ak li trivyalman jis sonje yon int,
savwa ID a inik nan itilizatè a ki te louvri sesyon an,
pou ke nou konnen yo te la lè sa a anvan.
Nenpòt kesyon Lè sa a, sou sesyon oswa bonbon oswa tankou an?
Firesheep pa travay kòm byen ankò,
epi ou gen yo mete òdinatè w lan nan yon mòd espesyal dezòd
se konsa w ap aktyèlman koute pou trafik san konte nou.
Se konsa, si w ap kounye a Téléchargez Firesheep, reyalize li nan pa byen kòm fasil
kòm li te yon fwa yo demontre.
Tout dwa. Epi nou pa fè l 'nan Sanders. Fè li nan kay la.
Baz done.
Youn nan bagay sa yo nou te fè nan pset 7 trè fè espre
te nou ba ou yon tab baz done modèl pou itilizatè yo ki gen kèk idantifikasyon itilizatè,
kèk itilizatè non, ak kèk modpas chiffres ladan l '.
Ak jan ou pral wè, si ou pa gen deja, w ap ale nan oblije chanje tab la yon ti jan.
W ap ale nan gen ajoute kèk kachèt nan chak nan itilizatè yo nan ki tab,
ak w ap ale nan gen ajoute yon lòt tab istwa, yon tab pòtfolyo,
oswa petèt rele li yon lòt bagay.
Men, an tèm de panse sou jan yo ka fè sa, kite la louvri moute zouti sa a
ki nou itilize sou Vandredi, men si abitye, aparèy la vini ak yon zouti
rele fpmyadmen ki se azar ekri nan PHP,
men objektif li yo nan lavi a, apre mwen fin ouvri sesyon an isit la kòm jharvard ak wouj,
se bay m 'yon fason user-zanmitay nan gade ak chanje baz done m' yo.
>> Se baz done a ke mwen kouri sou aparèy la te rele miskl.
Sa a se trè popilè, ak li nan yon baz done gratis louvri sous ki nan bèl fasil yo sèvi ak,
sitou ak devan fini tankou sa a.
Ki sa ki zouti sa a pèmèt m 'fè, pou egzanp, se Deploge alantou tab.
Kite m 'ale pi devan epi fè sa.
Nan vandredi nou te kreye yon tab rele elèv yo ki te super senp.
Li te gen 3 kolòn - id, non, ak imel - epi mwen manyèlman eleman yon koup la ranje
tankou David, ak Mike nan egzanp sa a an patikilye.
Kite a pran sa yon ti jan pi lwen, epi kite nan asime ke nou vle sonje pi plis
pase jis non ak imel sou yon itilizatè.
Kite m 'klike sou Estrikti moute isit la nan tèt la.
Epi ankò, pset nan mache ou swiv etap ou voulu isit la,
Se konsa, pa enkyete w si kèk nan sa a se yon ti jan rapid.
Lè sa a, mwen pral klike sou isit la.
Mwen pral ajoute kèk nimewo nan kolòn apre imel
paske mwen vle ajoute yon bagay tankou kay.
Mwen bliye nan dosye kay yon elèv.
Kite m 'klike sou Ale, epi kounye a nou gen fòm sa a ki malerezman se yon ti kras lajè de gòch a dwat,
men mwen pral rele non an nan kay sa a jaden,
ak Lè sa a, kalite la mwen kounye a gen yo chwazi.
Se konsa, kite a gen yon konvesasyon kout sou kalite sa yo divès kalite nan miskl
paske Lè nou konsidere ke PHP se chetif tape epi li sòt de jwe vit ak ki lage ak kalite,
nan yon baz done espesyalman li nan super enpòtan nan sèvi ak aktyèlman sezisman nan avantaj ou
paske youn nan miskl nan bagay sa yo ak motè baz done lòt kapab fè pou ou
se asire ke ou pa mete done fos nan baz done ou.
Sa a se sòt de erè gratis tcheke disponib nan ou.
>> Pou kay nou evidamman pa vle li nan dwe yon int, ki se yon valè 32-bit nan miskl.
Nou te fè pale yon ti tan nan Vandredi sou varchar, ki vle di pou longè varyab Char.
Ki sa ki sa a? Sa a pèmèt ou presize ke ou vle sa a yo dwe yon afè de kèk sòt.
Ou pa vrèman konnen davans konbyen tan li ye, se
se konsa nou pral abitrèman di yon non kay kapab 255 karaktè,
men ou ta ka ale ak 32 64, - nenpòt nimewo vrèman.
Men, avantaj nan lè l sèvi avèk yon varchar sou yon jaden rele Char se ki sa?
Jis entwitivman si mwen desann isit la, remake gen nan Char ak gen nan varchar.
Varchar se longè varyab Char; Char se yon longè fiks Char.
Se konsa, baze sèlman sou ki definisyon, sa ki nan avantaj la oswa dezavantaj ki genyen nan chak nan sa yo?
Nan lòt mo, ki moun ki gen sousi pou distenksyon an, oswa poukisa ou ta dwe pran swen?
>> Yeah. [Elèv] varchar gen fleksibilite plis men pran moute memwa plis.
Bon. Varchar pran moute pi plis - Annou wè. Mwen pa si si m 'te tande ki dwat.
Eske ou ka di ke yon fwa plis?
[Elèv] m 'te di varchar pwobableman gen fleksibilite plis men li pran moute memwa plis.
Enteresan. Oke. Varchar pwobableman ba ou fleksibilite plis men pran moute memwa plis.
Lèt la se pa nesesèman verite.
Sa depann de kontèks la, men kite a tounen vin jwenn sa.
>> [Fèbl elèv repons] Egzakteman.
Li nan aktyèlman ka a ki Char ap anjeneral itilize plis memwa
paske yon Char, tankou nan C, se tankou yon fisèl, li nan yon etalaj de karaktè.
Se konsa, si ou di yon jaden Char nan longè 255,
baz done a ap literalman pral ba ou 255 karaktè.
Men, si kay la fini moute yo te Mather ak 6 karaktè total,
w ap gaspiye plis pase 200 karaktè.
>> Se konsa, yon varchar efektivman sèlman itilize kòm karaktè anpil jan sa nesesè
jiska yon kantite lajan maksimòm nan.
Men, pri a ou peye se aktyèlman pèfòmans, potansyèlman.
Si ou konnen an avans ke tout strings ou yo pral fè 8 karaktè -
pou egzanp, ann sipoze ke ou mande pou modpas nan longè 8 -
tèt la nan lè l sèvi avèk yon jaden Char sou okazyon, men se pa souvan,
se ou presize yon longè fiks pou yon bagay tankou yon modpas
paske koulye a baz done a kapab menm pi entelijan.
Si li konnen ke chak jaden Char, chak fisèl nan yon kolòn se longè a menm,
ou jwenn tounen karakteristik la nan aksè o aza.
Ou ka sote alantou nan mitan jaden yo divès kalite Char nan tablo baz done ou
paske panse a yon baz done kòm ranje ak kolòn.
Se konsa, si chak youn nan strings yo genyen menm longè,
ou konnen ke youn nan premye se nan multiple 0, youn nan pwochen se nan multiple 8
ak Lè sa a, 16 ak Lè sa a, 24 ak pou fè.
Se konsa, si tout strings yo yo se nan longè a menm, ou ka sote alantou anpil pi plis efikasite.
Se konsa, ki ka yon benefis nan tèm de pèfòmans,
men anjeneral ou pa gen liksye a pou konnen davans,
konsa yon varchar se yon fason a ale.
Isit la nan yon lòt detay ke menm Facebook li pran kouri nan evantyèlman.
Antye yo se gwo, epi nou sòt de sèvi ak yo pa default nenpòt ki lè nou vle yon nonb,
men li la sèlman 32 miyèt moso.
>> E menm si Facebook pa byen gen 4 milya dola itilizatè yo kounye a,
gen nan definitivman gen kèk moun ki deyò a la, ak kont miltip
oswa kont ke yo te louvri, ak Lè sa a, fèmen,
e konsa Facebook tèt li mwen kwè kèk ane de sa te gen nan tranzisyon soti nan int
a, kòm se jistèman rele, bigen, ki se jis 64 Bits olye.
Se konsa, sa a twò se yon desizyon konsepsyon.
Ou ta dwe étonant chans si pwojè final ou vin demaraj,
te 4 milya de dola ak 1 itilizatè yo, bay oswa pran,
nan ka sa a lè l sèvi avèk antye ta kapab yon ti kras lwen.
Men, an reyalite, tab itilizatè ou an se pwobableman amann ak antye.
Men, pou yon bagay tankou pset 7, tankou tab istwa ou a,
ou ka gen dè milye, dè milyon de itilizatè yo si ou évoluer nan etrade.com.
Se konsa, Lè nou konsidere ke ou pa ta ka gen plis pase 4 milya dola itilizatè yo,
sa yo itilizatè ou fè gen ka gen plis pase 4 milya dola tranzaksyon sou tan -
achte epi li vann yo ak bagay nan istwa yo.
Se konsa, si ou fè antisipe - ankò, sa yo, se pwoblèm bon gen si ou gen sa a done anpil -
si ou fè antisipe done depase gwosè a nan yon int,
ale ak yon bagay tankou bigen se yon direksyon pa souvan ase adopte pa konsèpteur
paske moun figi ki pa a pral gen yon pwoblèm,
men li la sa a fasil yo chwazi yon bagay pi gwo pase sa.
Desimal nou ap lè l sèvi avèk nan, 7 pset ki espesifye presizyon fiks
pou ou kapab evite pwoblèm yo ki enplike flote ak double ak ril ak renmen an.
>> Lè sa a, gen nan kèk domèn lòt isit la. Nou pral balanse men nou an nan yo nan yon sèten mezi.
Men, dat, lè tout gen yon fòma preskri nan miskl,
ak avantaj nan dat estoke kòm dat ak pa varchars
vle di ke baz done a ka aktyèlman Fomatè yo nan fòma diferan,
si yon fòma ameriken oswa fòma Ewopeyen oswa tankou la - sepandan ou vle li -
pi plis efikasite pase si se te jis kèk varchar jenerik.
Lè sa a, gen nan kèk binè lòt, varbinary, tach.
Sa yo se binè objè gwo, epi ou ka tou sere done binè
kòm byen kòm done jewometrik nan yon baz done.
Men, pou nou, nou pwal tipikman swen sou antye ak varchars ak renmen an.
Se pou nou fini egzanp sa a ak kay la.
House mwen pral abitrèman di yo pral 255 charaktèr.
Lè sa a, valè default nou te ka fè sa.
Nou te ka pa default mete tout moun ki nan Mather House, pou egzanp.
Sa a se kijan nou te ka presize ki baz done a
yo ta dwe asire ke yon moun toujou te gen yon valè. Men, mwen pral kite ki dwe.
An reyalite, pou moun k ap viv nan lakou lekòl la, epi pa nan yon kay,
petèt mwen aktyèlman vle presize ke valè a default pou kay se nil,
ak Lè sa a, mwen bezwen yo tcheke ti kare sa a epi di baz done a li oke si kay itilizatè a se nil.
>> Yon fwa ankò, sa a se yon lòt mekanis defans ou ka mete an plas
pou w pa menm gen mete l 'nan kòd PHP ou nesesèman.
Baz done a pral asire ke bagay sa yo oswa yo pa nil.
Lè sa a, alafen, karakteristik.
Okenn nan sa yo yo se reyèlman enpòtan.
Binè, siye - pa youn nan sa yo gen rapò ak yon varchar.
Main Index.
nenpòt moun ki konnen oswa ou sonje oswa ou gen yon devine tankou sa ki yon endèks se
pou yon bagay tankou kay?
Sa a tou se aktyèlman yon desizyon konsepsyon enpòtan ak relativman fasil.
Pou moun ki pa gen ankò wè li, nan Vandredi nou te pale yon ti tan sou kle prensipal.
Nan yon tab baz done, yon kle prensipal se jaden an oswa kolòn
ki inikman idantifye ranje nan tablo a.
Se konsa, nan tablo a kounye a nou gen idantite, nou gen non ak anay.
Kilès nan sa yo se kandida ki pi bon yo gen yon kle prensipal,
wòl ki gen se inikman idantifye ranje?
Pwobableman ID.
Joui, nou te ka sèvi tou ak sa ki menm si?
Petèt ou ta ka itilize imel paske nan teyori li nan inik
sòf si moun yo yo pataje kont imel.
Men, reyalite a se ke si w ap itilize yon ID nimerik tankou 1234,
sa a, se sèlman 32 Bits, Lè nou konsidere ke yon adrès imel ta ka sa a bytes anpil oswa sa a bytes anpil.
Se konsa, an tèm de efikasite pou Idantifyan inik,
li gen tandans ka bon pratik jis yo sèvi ak yon int
menm si ou gen kèk kandida fisèl ke ou ta ka joui itilize.
>> Pou yon bagay tankou kay, sa pa ta dwe gen yon kle prensipal
paske lè sa a sèlman 1 moun ka ap viv nan Mather ak 1 moun sou Currier ak renmen an.
Menm jan tou, sa a pa ta dwe inik.
Diferans ki genyen ant prensipal ak inik se ke nan ka a nan tab aktyèl nou an,
ID ta dwe prensipal men imel se pa prensipal pou rezon ki fè yo nou jis mansyone -
pèfòmans - men li ta dwe toujou inik.
Se konsa, ou ka toujou aplike patikilarite san yo pa fè reklamasyon an
ke li nan yon Super jaden enpòtan prensipal.
Men, yon sèl sa a se byen itil: Index.
Si ou konnen an avans pou pwojè final ou a, pou pset 7, oswa an jeneral,
ki kay sa a jaden a pwal yon bagay ou rechèch sou yon anpil
lè l sèvi avèk mo kle a chwazi oswa yon lòt bagay,
Lè sa a, ou ka preemptively di baz done a nan travay majik li yo
ak asire w ke li kreye nan memwa nenpòt estrikti done anpenpan nesesè
nan akselere pwosesis rechèch ki baze sou kay la.
Petèt li pral sèvi ak yon tab regle, petèt li pral sèvi ak yon lis lye.
An reyalite, li gen tandans sèvi ak yon pye bwa, souvan yon estrikti ki rele yon B-pyebwa -
pa yon pye bwa binè men yon B pyebwa-- ki se yon pye bwa yon bon lajè pòt
ke ou ta ka wè nan yon klas tankou CS124, done estrikti klas la.
Men, nan kout, ou pa gen enkyete sou ke lè l sèvi avèk lojisyèl entelijan baz done.
Ou ka jis di li, "Index jaden sa a Se konsa, mwen kapab fè rechèch sou li pi plis efikasite."
>> Si ou kite sa a la ak ou eseye pou fè rechèch pou tout moun ki nan baz done a ki ap viv nan Mather,
li pral transfere nan rechèch lineyè.
Men, si ou te gen 6,000 undergrads tout k ap viv nan kèk kay,
w ap ale nan rechèch tab la tout antye jwenn Matherites yo,
Lè nou konsidere ke si ou di Index, èspere ke li pral yon bagay fèmen nan yon rechèch logaritmik
jwenn moun kalite elèv yo.
Sa a se jis yon karakteristik gratis yo vire sou li a,
menm si li vini nan yon pri nan kèk kantite lajan pou espas.
Anfen, oto-Kantite, jaden sa a lavil Ayi a,
ki jis vle di si li nan yon int ak ou pa vle pran swen kantite li tèt ou
chak fwa gen yon itilizatè nouvo, tcheke sa,
epi chak itilizatè ki vin antre pral otomatikman jwenn yon ID nouvo.
Se pou nou klike sou Save, ak kounye a kite a jwenn fòt ak sa a konsepsyon.
Si mwen ale nan browse, avi ke tou de Mike ak kay mwen an se nil.
Mwen kapab itilize fpmyadmen l korije sa a manuelman.
Mwen ka ale nan isit la ak kalite nan Mather ak Lè sa a, frape Antre,
e kounye a, remake tab la se diferan.
Men, remake mwen te kapab fè yon lòt bagay yo tou.
ID David la se 1, se konsa fpmyadmen ankò se jis yon zouti administratif;
sa a se pa yon bagay itilizatè ou yo janm ale nan wè.
Se konsa, si mwen olye klike sou tab la SQL moute tèt -
e ankò, pset 7, n ap entwodui ou nan plis nan sa yo queries -
Mwen ka manyèlman egzekite SQL yo lòd, ki estriktire lang rechèch
Itilizatè MIZAJOU SET kay = 'Pfoho' KI KOTE id = 1.
Sa yo queries SQL yo, joliman ase, trè lizib de gòch a dwat.
Mizajou tab la itilizatè yo, mete jaden an te rele kay an Pfoho
kote ID itilizatè a se 1.
Oswa mwen te kapab menm fè kote imel = 'malan@harvard.edu'.
Se konsa, lontan ke sa inikman idantifye m ', ki ta ka travay kòm byen.
Men, ID gen tandans ka pi wo pèfòmans, kidonk kite a fè sa.
Se pou nou klike sou Ale. Okay, lecture.users pa egziste. Ki sa ki nan erè mwen an?
Ki sa ki nan tab la aktyèlman rele isit la?
Yo rele li elèv yo jis paske se sa ki nou te fè sa moute isit la sou bò gòch tèt.
Yo rele li elèv yo, pa itilizatè. Se konsa, klike sou Ale kounye a.
1 ranje afekte. Rechèch te pran 0,01 segonn.
Si m 'klike sou Browse, koulye a, kounye a lavi Malan nan Pfoho.
Se konsa, sa a, se yon lòt gou nan SQL, men pset a pral mache ou atravè yon ti jan plis de sa.
>> Genyen nan yon desizyon estipid mwen te deja te fè isit la.
Mwen ta diskite ke sa a konsepsyon baz done se rezèvwa
paske moun yo ki pi plis mwen ajoute sou tab la elèv yo,
plis la nan nou mwen kòmanse ajoute, plis la nan TFs yo, mwen kòmanse ajoute,
nou pwal kòmanse yo wè sa ki rdondans nan tablo sa a?
>> Yeah. [Elèv] Wè ke li nan nan elèv yo, n ap sèvi ak menm bagay la tou [fèbl]
Menm bagay la tou - Dwa, egzakteman.
Se konsa, si 400 moun ki ap viv nan Mather, bay oswa pran,
evantyèlman tablo sa a ki pral gen 400 ranje ki di "Mather," "Mather,"
"Mather," "Mather," "Mather."
Nou ap gaspiye tout moun sa yo bytes, ak gen nan yon koup la takeaways la.
1, gen nan ka a kwen fou kote si yon moun ap peye yon anpil lajan
ak rnom Mather, nou genyen kounye a chanje tab antye baz done nou an.
Sa pa a pral rive souvan, menm si Pfoho te yon fwa yo rele North House 15 ane de sa,
se konsa li k ap pase. Men sa a pa tout sa ki irezistib.
Plis irezistib pase yon ka kwen tankou sa yo ki an ki bezwen mete ajou done ki nan esansyèl
pou yon baz done se poukisa w'ap estoke Mather ankò e ankò ak ankò e ankò?
Sa a se yon anpil nan charaktèr, 6 charaktèr.
Pa kapab nou fè menm pi bon pase sa, espesyalman pou Pforzheimer?
Se vre wi nou ka fè pi bon pase sa ki karaktè anpil.
Poukisa nou pa jis asosye yon idantifyan inik avèk chak kay
ak magazen ke pou chak itilizatè? Se konsa, kite a eseye sa a.
Olye ke sèlman itilize tab la elèv yo, kite m 'ale jiska baz done konferans m' kanpe isit la sou bò gòch tèt.
Avi isit la li di Kreye tab.
Kite m 'kreye yon tab nouvo rele kay.
Nimewo a nan kolòn a pwal 2. Antre.
Koulye a, mwen gen 2 jaden yo.
Mwen pral rele non sa a, epi li nan ale nan yon varchar longè 255,
>> men sa a trè abitrè. Kite m 'mete sa a desann isit la konvansyon.
Se konsa, mete yon ID moute isit la. Se pou nou bay chak kay yon idantifyan inik.
Se pou nou bay chak kay yon non.
Se pou nou presize ke idantifyan a pral siye jis pa konvansyon sèlman itilize nimewo ki pozitif.
Se pou nou ale pi devan epi bay sa a yon oto-Kantite jaden pou kounye a.
Epi fè nou bezwen lòt bagay lòt moun?
Se pou nou ale pi devan epi klike sou Save.
Koulye a, mwen gen yon dezyèm tab.
Avi kòm yon sou kote sa a se yon ti kras skre SQL yo lòd, ki
ke ou ta yo te oblije tape manuelman si se pa lè l sèvi avèk yon zouti administratif tankou fpmyadmen.
Se konsa, yon lòt rezon ki nou sèvi ak li.
Li nan sòt bèl bagay itil nan pedagojik paske ou ka klike sou alantou
ak imajine kijan bagay travay pa jis kopye ak kole sa ki fpmyadmen te fè sa.
Men, yo lòd, ki tablo kreye se sa ki te jis egzekite, ak isit la se tab avè m '.
Kite m 'ale pi devan koulye a, epi sèvi ak kri SQL olye ke Senplifye pa klike tab la Mete.
Kite m 'insert nan tout kay,
ak mwen pral di non an nan kay la ki pral gen yon valè de 'Mather'.
Sa a li. Sa a sentaks se yon ti kras pi plis skre.
Sa a se non an nan jaden yo nou vle insert.
Sa yo se valè yo nou vle insert nan sa yo jaden yo. Kite m 'klike sou Ale.
1 ranje eleman te pran 0.02 segond. Kite m 'klike sou Browse kounye a.
>> Avi si mwen klike sou Browse, gen nan Mather, ki gen ID se pa automatisation nimewo a 1.
Kite m 'fè yon lòt. Kite m 'ale nan tab la SQL.
Antre nan tout kay. Non an nan kay la ki pral gen yon valè de Pfoho ak pou fè.
Ale non. Apre sa, mwen ka kontinye ap fè sa ankò, li ankò epi ankò.
Oswa si w jwenn anwiye lè l sèvi avèk fpmyadmen, ou ka jis sèvi ak tab la Mete
epi yo pa gen kalite SQL an anvan tout koreksyon.
Ou ka jis Bang li soti pi vit lè ou tape, pou egzanp, Currier, Antre,
e kounye a, si nou klike sou Browse, gen nan Currier ak yon ID nan 3.
Se konsa, sa a se sa nou vle di pa kantite oto-.
Men koulye a, nou gen ranje yon bagay nan elèv yo.
Nan elèv yo sa ki ta dwe kalite a done nan jaden an kay kounye a ta dwe ye?
Li ta dwe yon int, dwa?
Se konsa, objektif la isit la se yo faktè soti, ki te rekonèt kòm nòmalize, tab yo
pou ke nou pa estoke enfòmasyon sou redundantly nan nenpòt nan tab mwen.
Epi ankò, chemen an nou tout nou te sou isit la se pral di Mather, Mather,
Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, ki se trè redondants
an tèm de gaspiyaj nan charaktèr yo.
Se konsa, kite m 'ale pi devan epi chanje sa a pa klike Estrikti,
ak kite m 'ale pi devan epi tcheke sou jaden an kay, klike sou Chanjman,
e kounye a, mwen pral chanje sa a yo dwe genyen yon int.
255 se pa enpòtan.
Kite m 'ale pi devan epi di ke gen pwoblèm si li la toujou nil. Sove.
Koulye a, elèv yo tab ki te chanje avèk siksè,
ak avi ankò kay la se yon int.
Kòm yon sou kote, inyore nimewo ki nan parantèz lè li rive antye.
>> Sa a se pou rezon eritaj.
Retounen nan jou a lè ou pa t 'gen GUIs, ou olye te gen yon anviwònman liy lòd,
10 ak 11 respektivman espesifye konbyen karaktè yo ou ta dwe montre
nan fennèt la tèminal aktyèlman montre jaden yo.
Li te gen anyen fè avèk longè a ti jan nan jaden an reyèl, se konsa nou pral jis inyore ki pou kounye a.
Koulye a, mwen gen yo ale nan tablo sa a.
Men, si David ap viv nan Mather, kay pa ta dwe 0,
ki se yon valè int default pi pre nil.
Li ta dwe ap viv nan kay 1.
Se pou nou abitrèman di ke Mike zan ki abite nan Pfoho, se konsa nimewo kay la 2.
Koulye a, tab avè m 'sanble yon ti kras plis skre.
Men, konsidere efikasite la.
Mwen kounye a lè l sèvi avèk sèlman 32 Bits yo idantifye kay la,
ki vle di gen nan sèlman 1 definisyon kanonyal nan kay Mather m 'ak Pfoho
ak sa a, se nan tablo a kay.
Se konsa, si mwen vle kounye a byen retounen sa yo tab, panse a li nan fason sa.
Men mwen gen tab elèv yo m 'yo, ak sou bò men dwat-ou gen nan nimewo sa yo, 1 ak 2.
1 se Mather, 2 se Pfoho.
Nou gen moun ki nimewo menm nan tablo sa a lòt, yo rele kay,
1 ak 2 ak 3 pou 3 moun ki kay.
Ki sa nou kounye a vle fè se gen kapasite la nan kòd, PHP ak SQL,
sòt nan byen retounen tab sa yo, kote si sa yo, se elèv yo ak sa yo, se kay yo,
nou vle yon jan kanmenm konbine yo yon jan pou 1 liy moute ak 1,
2 liy moute ak 2, ak pou nou kapab konnen ki kote David
ak ki kote Mike ak ki kote tout lòt moun ap viv.
Pou fè sa nou kapab egzekite yon sijè rechèch SQL tankou sa ki annapre yo.
CHWAZI * KI SOTI NAN elèv yo antre nan kay SOU -
Epi, koulye a sa ki jaden nou vle rantre nan sou?
Se konsa, students.house = houses.id.
>> Yon ti kras skre, men nan pati sa a vle di literalman kreye yon nouvo tab tanporè
sa a, se rezilta a nan rantre nan elèv yo ak kay.
Ak ki jan ou vle konbine konsèy yo nan dwèt mwen isit la?
Fikse 'jaden kay egal a kay yo' elèv yo jaden ID.
Men, si mwen kounye a klike sou Ale, mwen jwenn tounen ekzakteman ki sa mwen te espere.
David se nan Mather, Mike se nan Pfoho, epi tou mwen te wè Idantifyan yo inik.
Men, pwen an se kounye a mwen gen yon tab konplè.
Se konsa, Takeaway a isit la pou pset 7 oswa vrèman pou pwojè a final:
Si ou jwenn ke w ap estoke nenpòt moso nan enfòmasyon redundantly,
si li nan yon kay, petèt li nan yon vil, eta, ak ZIP
kote postal ka anjeneral, men se pa toujou ka itilize kòm yon idantifyan inik,
ale nan fè egzèsis la mantalman ak Lè sa a, avèk yon bagay tankou fpmyadmen
nan faktorizasyon soti ke done komen paske espesyalman kòm sit entènèt ou an ap vin pi plis ki byen te itilize
ak pi popilè, sa a se ki jan ou asire w ke tout bagay se vit Super,
pa bay baz done a kòm sijesyon anpil jan patikilarite ke posib.
Sa se te yon anpil.
Nenpòt kesyon? Tout dwa. Kite a pran yon ti repo-5 minit la epi argroup.
Tout dwa.
Sa ki anba la a se yon egzanp ki te itilize kèk ane de sa lè mwen te pran CS161,
ki se sistèm operasyon klas la nan kolèj la
ki se konnen pou yo etonan men yon kantite lajan fou nan travay ou,
epi li konsantre reyèlman sou kèk nan pwoblèm yo ki ba-nivo ki rive nan sistèm operasyon
epi tou li menm nan mond lan nan baz done.
>> Istwa a ki te di pa pwofesè m 'yo, Margo Seltzer, ki ane yo te jan sa a.
Sipoze ke ou gen yon frijidè dòtwa ti kras pou ou ak pou kolokasyon ou
ak tou de nan nou vrèman renmen lèt.
Se konsa, ou vin lakay nan jou klas yon sèl, kolokasyon ou a pa ankò a,
ou louvri frijidè a, epi ou reyalize, "O modi, nou ap soti nan lèt."
Se konsa, ou fèmen frijidè a, ou mache lòtbò lari a CVS
epi pou yo jwenn nan liy ki de pli zan pli long yo achte kèk lèt ​​nan CVS.
Pandan se tan, kolokasyon nou an ap vini nan kay la apre li oubyen nan klas li a,
vin antre nan sal la, ouvè frijidè a reyèlman vle kèk lèt,
ouvè frijidè a ak, "modi, pa gen okenn lèt."
Se konsa, li oswa li fèmen frijidè a, ap mache soti nan pòt la, epi ale nan ABP
oswa yon kote ki pase CVS kote ou pa ap ale nan frape nan chak lòt
ale jwenn kèk lèt.
Nan kou yon kèk minit pita, tou de nan nou jwenn tounen lakay
e kounye a, ou gen lèt de fwa tankou anpil jan ou aktyèlman te vle.
Epi yo te lèt, kounye a li pral ale move paske ou renmen lèt
men ou pa fè sa vrèman tankou lèt, se konsa kounye a ou gen lèt twòp, se konsa li a pral tounen.
Sa a se yon terib, sitiyasyon terib.
Kisa ki ta kapab fin fè solisyon sa a sitiyasyon si ou te nan kay la kolokasyon an premye? Wi.
[Elèv] Ou ta dwe te kite yon nòt. [Ri]
Bon. Ou ta dwe te kite yon nòt.
Ou ta dwe te mete yon nòt nan Post-li oswa tankou di, "Gone pou lèt,"
ak Lè sa a, kolokasyon ou concept ta yo te bloke sistèm nan pou aktyèlman fè sa.
Oswa ou kapab ale 1 etap pi lwen.
Ou te kapab literalman fèmen frijidè a ak kèk kalite kadna,
e kounye a, yo pral kolokasyon ou literalman ap bloke soti nan frijidè a.
Si nou jeneralizasyon tounen nan pwogramasyon,
ou kapab pwèske panse a frijidè a kòm kèk kalite varyab oswa struct yon,
kèk kalite veso pou jwenn enfòmasyon.
Pwoblèm nan fondamantalman isit la se ke tou de nan nou yo te pèmèt yo enspekte
oswa li eta a nan estrikti sa a done,
men ou wè li nan diferan moman e ankò tou de nan nou te pran yon desizyon
ki baze sou eta a nan mond lan nan moman sa a diferan nan tan.
Se konsa, te ou fèmen akle frijidè a, ou ta gen omwen evite kolokasyon ou
paske li te kapab enspekte eta a nan mond lan,
Se konsa li oswa li pa t 'kapab te fè desizyon sa a menm.
Se konsa, bazdone, kòm li vire soti yo, yo gen pwoblèm sa a toujou ap.
>> Ann gade pou wè si nou kapab konstwi yon senaryo.
Sipoze ke ou se sòt de yon nèg move ak ou ale nan Bank of America
oswa youn nan kote ki lòt nan kare a ki gen yon koup ATM kòt a kòt,
ak yon jan kanmenm ou kalkile konnen kouman ou kapab kopi yon kat ATM - pa tout sa ki difisil.
Se jis nan yon teren mayetik.
Se konsa, sa ou vle pou yo eseye fè se jwe jwèt sa a
kote ou mete 1 kat nan 1 machin, yon lòt kat nan machin nan lòt,
epi ou esansyèlman vle pou yo eseye retire lajan an menm tan,
paske imajine ke istwa ale jan sa a.
Machin nan sou bò gòch la pran kat ou epi ak PIN ou,
ak Lè sa a, ou di, "Ban m '$ 100."
Se ATM nan pwograme nan premye fè yon chwazi sou baz done li yo oswa ekivalan a -
kèlkeswa sa baz done li nan lè l sèvi avèk - yo wè sa a itilizatè gen omwen $ 100 nan li oswa kont li?
Si se konsa, Lè sa a, y'a krache soti $ a 100 ak soustraksyon $ 100 nan balans yo.
Men, nan kou si gen nan machin miltip isit la oswa fason miltip nan enspekte
eta a nan ki nan lemonn, vout la labank, yo wè konbyen lajan ou genyen,
sipoze ke jis pa chans machin nan sou bò gòch la ak dwa pou
tou de mande pou kesyon nan apeprè moman sa a menm nan tan.
>> Lè sa a kapab sètènman rive. ATM yo se òdinatè jou sa yo.
Se konsa, si machin nan sou bò gòch la di, "Wi, ou gen omwen $ 100,"
pandan se tan machin lan sou bò dwat la di, "Wi, ou gen omwen $ 100,"
Lè sa a, tou de peyi yo kontinye nan fini pwogram yo epi yo aktyèlman krache soti $ a 100
ak di, "Précédemment ou te gen $ 200."
-Kite m 'mete ajou varyab nan kounye a gen $ 100 ki rete nan kont lan. "
Men, si tou de peyi yo te tcheke balans kont ou epi li te jwenn ke li nan $ 200
ak tou de peyi yo Lè sa a, fè matematik la ak di 200 - 100,
machin yo te potansyèlman krache soti de $ 100 bòdwo nan chak machin,
men yo te sèlman mete ajou balans sòm kont ou yo dwe $ 100.
Nan lòt mo, ou te pran soti $ 200, men paske yo enspekte eta a nan mond lan
an menm tan ak Lè sa a, te pran yon desizyon ki baze sou ki valè,
yo pa ta ka fè matematik la finalman kòrèkteman.
Se konsa, nan yon sitiyasyon bank twò ou reyèlman vle gen kèk kalite blokaj
pou ke le pli vit ke ou te tcheke eta a nan kèk varyab
sa ki nan vrèman enpòtan, tankou balans kont ou,
Pa kite nenpòt ki lòt moun pran desizyon ki baze sou sa jouk lè w ap fè ap fè bagay ou a,
kote nan ka sa a ou se ATM la sou bò gòch la.
Fèmen pòt tout lòt moun deyò.
Ou ka aktyèlman reyalize sa a efè nan yon koup nan diferan fason.
>> Fason pi senp nan miskl se yon liy nan SQL ke nou te ba ou
nan spesifikasyon la ansanm pwoblèm ki sanble egzakteman tankou sa a.
Antre nan tab la - kèlkeswa sa yo rele - yon id, senbòl yon, ak pati nan yon, yon nimewo de aksyon,
valè sa yo, pou egzanp.
Si ou pa te li espèk a ankò, sa a se yon egzanp ki enplike kouman ou ale sou
achte 10 aksyon sa a stock peni pou Prezidan Skroob,
ID itilizatè ki gen k ap pase yo nimewo a 7 la?
Sa a di Antre NAN tab id sa a, senbòl, ak nimewo de aksyon
nan 7, 'DVN.V', ak 10.
Men, - men, men, men - liy nan dezyèm se youn nan enpòtan.
SOU pataje duplikata MIZAJOU LEJANN = pataje + VALÈ (pataje).
Se konsa, totalman skre-gade nan zye premye.
Men, lefèt ke sa a sijè rechèch SQL, menm si li vlope sou 2 liy,
se 1 sijè rechèch long, sa vle di li nan atomik
nan sans ke sa a pral sijè rechèch swa pou egzekite tout ansanm oswa ou pa nan tout.
Ak pa definisyon miskl, lè sa a jan yo aplike sa a sijè rechèch.
Li se pa definisyon nan gid la garanti yo egzekite nan tout yon fwa oswa ou pa nan tout.
Motivasyon an pou sa a se jan sa a.
Si nan ka sa a ou yo ap eseye achte 10 aksyon nan stock,
li nan kalite istwa a menm jan ak lèt ​​la, li nan kalite istwa a menm jan ak ATM lan.
>> Si ou fè erè nan pa lè l sèvi avèk sa a sentaks
men olye chwazi soti nan baz done a wè konbyen aksyon sa a stock peni
Prezidan Skroob genyen, epi sipoze li gen 10 aksyon,
ak Lè sa a, kèk dezyèm fann pita ou Lè sa a, fè yon deklarasyon MIZAJOU,
ki se yon lòt deklarasyon nan SQL ki di ale pi devan epi ajoute 10 plis aksyon
a 10 aktyèl l 'pou ke depreferans total la se 20,
pwoblèm nan se paske nan sistèm baz done a jodi a ak paske nan òdinatè jodi a
ou gen processeurs miltip, am miltip -
nan lòt mo, òdinatè kapab literalman dwe ap fè bagay sa yo miltip nan yon fwa -
gen nan pa gen garanti ke ou chwazi epi mete ajou ou nan ka sa a
yo pral rive tounen nan tounen.
Se konsa, yon senaryo move ta dwe ou fè chwazi a
yo wè konbyen aksyon sa a stock peni Skroob genyen,
ak Lè sa a, jis pa chans se yon lòt sijè rechèch baz done egzekite -
petèt Skroob li yo nan yon lòt fenèt navigatè ap eseye achte 10 aksyon
nan yon lòt fenèt nèt, anpil tankou ATM lan -
ak sipoze ke yon lòt sijè rechèch vin nan ant chwazi epi mete ajou nan.
Li ta ka ka a ki Skroob kounye a pèdi kèk nimewo de aksyon
paske yon lòt pwosesis yo enspekte eta a nan mond l 'yo,
oswa li vin pi plis pase sa li te pataje ta dwe gen.
Nou pa pral antre Nap yo nan ekzakteman ki sa sa yo liy istwa patikilye ta kapab,
men pwen an se si ou gen yo tcheke yon valè varyab ak Lè sa a, pran yon desizyon,
si gen nan yon risk pou yon lòt moun fè yon bagay nan ant 2 moun ki deklarasyon,
kòm ka rive nan multiproseseur sistèm, nan multicore sistèm,
òdinatè ak abilite a fè bagay sa yo miltip nan yon fwa, move bagay ka rive
ou tankou kont labank yo te debite mal, achte lèt de fwa tankou anpil,
oswa nan ka sa a nimewo a mal de aksyon.
Men, gen nan yon fason pi fasil yo panse sou sa a.
>> Li sanble ke SQL sipòte tou, si ou konfigirasyon tab ou yo kòrèkteman,
yon bagay yo rele tranzaksyon, ki mwen ta diskite se aktyèlman menm vin pi fasil yo konprann
pase sa a, men se pa yon 1-revètman, kidonk li a aktyèlman yon ti jan pi plis enplike nan sa.
Gen literalman yon deklarasyon nan SQL rele TRANZAKSYON kòmanse.
Jis tankou gen nan CHWAZI, MIZAJOU, insert, efase, ak rantre nan ak yon pakèt moun sou lòt moun,
gen mo kle tankou TRANZAKSYON kòmanse.
Ak sa ou Lè sa a, fè nan yon kontèks pset 7 -
ou pa bezwen fè sa pou pset 7; li nan fòmèlman disclaimed kòm pa nesesè,
men pou pwojè final li kapab itil -
si ou rele yon sijè rechèch nan TRANZAKSYON kòmanse epi Lè sa a, yon lòt sijè rechèch
ak Lè sa a, yon lòt sijè rechèch ak Lè sa a, yon lòt, yon lòt, ak yon lòt,
sa yo queries pa pral aktyèlman ka ekzekite jiskaske ou rele deklarasyon an SQL komèt,
nan ki pwen, si li nan 2 deklarasyon oswa 20 deklarasyon yo, yo tout pral egzekite nan yon fwa,
ki vle di pa gen yon lòt ka aksidantèlman achte lèt twòp oswa debi twòp lajan
oswa achte aksyon twò anpil paske tout queries ou yo ap egzekite
tounen nan fè bak nan do nan do.
Ak sa a se super enpòtan, espesyalman lè w ap fè yon bagay tankou sa a.
Sa se yon egzanp abitrè ki di nan kite l 'mete ajou kont lan bank
pa mete yon balans egal a balans - $ 1000 kote nimewo kont lan se 2.
Lè sa a, deklarasyon an dezyèm se kounye a kite a depoze ke $ 1000
nan yon lòt moun nan kont labank ki gen nimewo kont se 1.
>> Nan lòt mo, sa a se yon egzanp pafè nan kote ou vle asire
ke tou de nan deklarasyon sa yo rive oswa ou pa nan tout
paske otreman kliyan an ki pral jwenn vise
ak w ap ale nan pran lajan yo epi yo pa depoze li yon lòt kote,
, oubyen yon bank la ap pwal jwenn vise kote w ap ale nan depoze lajan an
men se pa aktyèlman fè soustraksyon li nan kont itilizatè a la.
Se konsa, ou vle tou de peyi yo al touye yo ansanm.
Se konsa, antre nan tranzaksyon yo nan lemonn.
Se konsa, sa a, se yon bagay kenbe nan do a nan lide ou,
pa tèlman pou bi sa yo nan jis pwojè yon desizyon final,
Men, si ou vle pran pwojè final ou a yon kote,
si ou vle kòmanse moute kèk konpayi bò kote l ',
si ou vle rezoud pwoblèm kèk gwoup elèv nan sou lakou lekòl la
ak gen aktyèlman yon vivan, aktif sit entènèt, sa yo, se sòt nan nan pinèz sibtil ki ka leve
si ou pa byen panse nan sa ki kapab rive si 2 moun
yo ap eseye gen aksè a sit entènèt ou a nan literalman moman sa a menm nan tan,
kote queries yo ka otreman jwenn reflete.
>> Prepare w pou kèk JavaScript, yon kol ladan l '?
Sa a se lang dènye nou an pou semès la. Tout dwa.
Erezman, JavaScript sanble trè, trè, trè menm jan ak lang yo 2, C ak PHP,
nou te fè konsa byen lwen.
Gen nan pa gen JavaScript nan pset 7, men li la yon zouti itil èkstrèmeman
lè li rive fè pwojè ki baze sou wèb final oswa vrèman jis wèb pwogramasyon plis jeneralman.
Se konsa, yon BECA rapid sou yon bagay yo rele Dom.
Isit la se yon paj super senp wèb ki vrèman jis di hello, mond
tou de nan tit la ak nan kò a.
Kòm dekoupaj an ki te sijere pou kèk tan,
gen se vre yon yerachi nan paj entènèt.
Mwen te kapab desine sa a brib menm nan HTML kòm yon pyebwa,
panse tounen nan diskisyon nou an estrikti done nan C, jan sa a.
Mwen gen kèk ne rasin espesyal ki rele ne la dokiman,
epi nou pral wè analòg sa a nan JavaScript nan jis moman yon.
Timoun nan premye ak sèlman pitit la ki nan ka sa a se tag nan HTML.
Gen nan pa gen kat dirèk nan doktip a.
Sa se yon bagay espesyal, konsa nou ta dwe jis inyore l lè li rive sa a Dom,
dokiman sa a Modèl objè pyebwa.
Remake HTML tag a, ki mwen te repwezante abitrèman kòm yon rektang,
gen 2 timoun: tèt ak kò l.
>> Moun sa yo ki ap menm jan trase kòm rektang.
Li se enpòtan pictorially tèt sa a se nan kite nan kò a.
Enplikasyon a se ke tèt vini an premye nan pyebwa sa a.
Se konsa, gen nan aktyèlman yon kòmann-nan nan yon pyebwa lè ou rale l 'tankou sa a,
menm si fòm yo ak etajèr yo se abitrè.
Head pandan se tan gen yon pitit yon sèl rele tit,
ak tit aktyèlman gen pwòp pitit li yo, ki se "hello, mond",
kote mwen fè espre te trase kòm yon oval isit la fè li yon ti kras diferan de rektang lan.
Sa yo rektang se eleman, Lè nou konsidere ke hello, lemonn yo se reyèlman yon ne tèks.
Se konsa, li nan yon ne nan pye bwa a, men li la yon lòt kalite ne
Se konsa, mwen te trase li abitrèman diferan.
Menm jan an kò gen yon pitit ki rele hello, mond kòm byen,
se konsa diferan ne menm si yo ap azar tèks la menm,
men mwen te trase li lè l sèvi avèk fòm la menm. Se konsa, ki renmen le ki?
Oke, sa ki nan bèl sou HTML se ke li gen sa a nati yerarchize.
Ak sa ki nan bèl sou JavaScript ak patikilyèman bibliyotèk ki se gratis tou ki disponib
ak popilè tankou jQuery, ou ka navige estrikti nan pyebwa konsa étonant fasil.
Nenpòt nan bagay la nou te fè sa nan C ak endikasyon ak pye bwa travès ak recursing sou nœuds
gòch pitit ak pitit dwat, tout nan yon toudenkou nou ka sòt de pran pou yo akòde
tankou se te étonant Enstriktif si se pa yon ti jan fwistre
men se pa prèske yon fason efikas yo ale sou pwogramasyon.
Se konsa, avèk lang sa yo pi wo nivo tankou JavaScript
nou pral kapab navige pye bwa sa a pi plis entwitivman.
>> Ak tout bon sentaks a pral yo dwe byen familye ak yo.
Si ou pat janm wè JavaScript anvan, sa a se yon referans reyèlman bon
soti nan jan yo Mozilla, moun ki fè Firefox,
Se konsa santi yo lib browse ki nan konvenyans ou.
Ki sa ki w ap jwenn - ak sa yo glisad yo ki idantik ak sa nou te itilize lòt jou a -
Menm jan an, prensipal la ale.
Se konsa, lè w ekri yon pwogram nan JavaScript, pa gen okenn fonksyon prensipal.
Ou jis kòmanse ekri kòd.
Men, yon distenksyon ant kle JavaScript ak C ak PHP
Lè nou konsidere ke se ke C ak PHP konsa byen lwen yo te egzekite bò sèvè
pa aparèy la nan ka sa a oswa pi plis jeneralman pa yon sèvè,
JavaScript nan konsepsyon se anjeneral egzekite pa yon navigatè.
Nan lòt mo, ou ta ka ekri JavaScript kòd, kòm nou ap sou yo,
sou yon sèvè nan aparèy la, men ou mete li nan mitan HTML ou a, nan mitan CSS ou a,
nan mitan jif ou ak PNGs ou ak JPEGs ou
konsa, lè itilizatè a vizite paj entènèt ou an, si w ap sèvi ak JavaScript,
ki kòd JavaScript soti nan sèvè navigatè,
ak li a navigatè a ki aktyèlman ègzekutra li.
Se konsa, sa a gen enplikasyon enpòtan pou pwopriyete menm entelektyèl.
Li nan kalite komik menm panse osijè de pwoteje IP ou an lè li rive JavaScript kòd
paske pa nati nan lang lan li vin egzekite anjeneral bò navigatè.
>> Ou ka déroute li, ki vle di ou kapab fè li gade fou ak lèd
ki pa gen okenn blan, terib non varyab, fè li pi difisil pou moun yo nan vole IP ou an,
men kle a se ke li se egzekite bò navigatè.
Menm si kòm yon bò sèvè sou kote JavaScript ka itilize,
ka a itilize ki pi komen kounye a se toujou sou navigatè a.
Ak isit la a ki sa li sanble. Isit la se yon si-lòt bagay si-lòt konstwi jis tankou C, jis tankou PHP.
Isit la se yon ekspresyon Boolean lè ou "oswa" 2 bagay sa yo ansanm.
Isit la se lè ou "ak" 2 bagay sa yo ansanm.
Isit la se yon deklarasyon switch, ki se menm jan ak PHP
nan ke ou ka chanje sou diferan kalite valè yo.
Pasan menm gen pou pasan isit la, ki fè yo estriktire idantik nan sa nou te wè anvan.
Pandan ke pasan; nou te gen fè pandan y ap pasan.
Varyab, tout tan se konsa yon ti kras diferan.
Ou deklare varyab tankou ou fè nan PHP ak C,
men menm jan an JavaScript chetif tape.
Ou pa presize int oswa flote oswa fisèl oswa yon bagay tankou sa anjeneral.
Ou ka presize var.
Ou pa oblije presize var, men li gen enplikasyon si ou pa fè sa.
Anjeneral, si ou retire okenn pati var, ou aksidantèlman kreye yon varyab mondyal olye pou yo lokal yo.
Se konsa, kite m 'pwopoze ke ou prèske toujou jis di var ak Lè sa a, non an nan varyab la.
Li pa yon kalite, li nan jis var pou varyab.
Sa a ta dwe yon egzanp, si li nan 123 oswa "alo mond,".
Matris yo prezan ak syntactically menm jan ak PHP.
Mwen pral di nimewo var ak Lè sa a, mwen sèvi ak parantèz kare ankò nan deklare yon varyab
ki gen kalite se etalaj ki gen nimewo sa yo an patikilye nan li separe pa vigil.
Lè sa a, alafen, sa a se youn nan sèlman ki vrèman parèt diferan.
Sonje byen, nan PHP nou ta te aplike yon etalaj asosyatif pou yon elèv
tankou Zamyla ki ta ka gade tankou sa a, ki kote varyab la rele elèv yo.
Parantèz yo kare vle di isit la vini yon etalaj.
>> Lefèt ke mwen pa lè l sèvi avèk endis nimerik men strings - id, kay, ak non -
vle di ke sa a se yon etalaj asosyatif,
ak sa yo flèch ak egal a siy ak bracket a Incline
vle di ke kle a se "id", valè a se 1;
kle a se "kay", valè a se Winthrop House;
kle a se "non", valè a se Zamyla Chan.
Se konsa, gen nan 3 kle andedan sa a etalaj asosyatif, chak nan ki te gen valè pwòp li yo.
Nou te wè ke nan, 7 pset oswa ou byento pral, nan JavaScript lide menm,
Men, li la pral gade tankou sa a.
Se konsa, var elèv - pa gen okenn siy dola e pa gen mansyone nan kalite toujou, men var -
egal ak Lè sa a, louvri aparèy òtopedik Curly paske nan JavaScript lè ou gen pè valè kle yo,
ou aktyèlman itilize yon bagay yo rele yon objè.
Ak moun nan nou ki t 'pran APCS oswa tankou an ta ka sonje objè soti nan Java
oswa kou lang menm jan an.
JavaScript se pa Java, premye nan tout.
Se te yon ane ekspre desizyon konsepsyon Anons sa pibliye depi frape nan yon lòt bagay ki te popilè,
non li, menm si li pa gen okenn relasyon fondamantal nan Java tèt li.
JavaScript gen objè, epi ou kreye yo pa fason pou notasyon a atèl Curly.
Objè ki nan JavaScript yo se bèl anpil ekivalan a ranje asosyatif nan PHP
lè li rive done estoke andedan nan yo.
>> Men, menm plis pwisan nan JavaScript ou ka asosye trè fasil fonksyon
andedan nan yon objè, epi menm si ou kapab fè sa a nan lòt lang yo,
li nan byen yon paradigm ki komen yo, jan nou pral wè.
Nan ti bout tan, sa a objè ki reprezante yon elèv, ki moun ki se patikilyèman Zamyla,
epi li sanble Concept, jis syntactically diferan de sa a.
Se pou nou sèvi ak aktyèlman JavaScript nan yon dosye.
Li vire soti gen nan yon tag script.
Nou te wè yon tag style ak nou te wè lòt balises HTML.
Tag an script aktyèlman a pral gen kèk kòd JavaScript.
Kite m 'ale nan aparèy la kote nou gen kèk kòd sous pre-fè fè yo.
Mwen pa janm afiche li ankò sou sit entènèt la, men mwen pral fè sa apre klas la.
Se pou nou louvri moute yon sèl sa a, blink.html.
Retounen nan ane 1990 yo, te gen literalman yon tag HTML rele tag a bat je l,
ak sa a se te youn nan etikèt yo ki pi bèl te fè twòp sou entènèt la
kote ou ta vizite kèk ane 1990 paj wèb style ak kòmanse wè tèks flache ou tankou sa a,
rezilta yo nan tag nan Marquis, ki te tèks pral tankou sa a.
Youn nan fwa yo kèk kote te mond lan aktyèlman yo te dakò sou yon estanda entènèt,
tout moun atravè Komisyon Konsèy la te touye tag a bat je kèk ane de sa.
Men, nou ka reziste l 'ak JavaScript kòm yon demonstrasyon de pouvwa a ou gen
lè ou ka ekri yon pwogram andedan nan yon paj entènèt.
Premye kite a sote sou bagay la nouvo epi konsantre sèlman sou fin vye granmoun lan.
>> Isit la se ansyen bagay yo nan sa a egzanp.
Mwen gen yon tag HTML, yon tag tèt, ak yon tag tit.
Lè sa a, mwen gen yon tag kò isit la ak yon div, ki rantre se jis yon divizyon rektangilè nan paj la
ke mwen te bay yon ID inik abitrèman nan "bonjou" nan,
jis pou mwen gen yon fason pou inikman refere li a li, ki gen kèk tèks trè senp:
hello, lemonn.
Koulye a, kite m 'woulo liv moute sou tèt sa a ranpli ak wè sa ki nouvo.
Premye bagay ki nan tèt nouvo moute se tag a script,
ak andedan nan avi a tag script Mwen te deklare yon fonksyon.
Deklare yon fonksyon nan JavaScript, trè sanblab yo PHP,
ou literalman ekri fonksyon Lè sa a, non an nan fonksyon an, parantèz,
e petèt kèk agiman si li pran nenpòt.
Lè sa a, mwen te gen atèl Curly mwen kòm dabitid, e kounye a, nou gen kèk kòd yon ti kras nouvo,
Men, kite a wè sa ki sa a vle di.
Se konsa, div var, sa a jis vle di, ban m 'yon varyab div rele.
Mwen te kapab rele l 'foo, men mwen te vle li yo dwe rele div
pou rezon ki pral klè nan yon dezyèm fwa.
Lè sa a, li vire soti nan JavaScript - ak sa a se JavaScript kòd entegre nan paj entènèt mwen an -
gen yon varyab espesyal mondyal nan kalite rele dokiman.
JavaScript se an reyalite yon lang objè-oryante.
Nou pa pral antre detay nan 50 moun yo sa sa vle di,
men pou kounye a konnen ke yon objè se bèl anpil tankou yon struct.
Tankou nou te wè fason tounen lè nan youn nan pwoblèm nan bonè kouche
kote nou mete yon anpil nan enfòmasyon ki nan yon struct,
Menm jan an se dokimante yon struct espesyal ki vini ak navigatè a,
vini ak nenpòt paj entènèt. Li pa yon bagay mwen te kreye.
Anndan nan estrikti sa a dokiman, menm si, ou gen pa sèlman done
men ou yo te genyen tou fonksyon.
>> Ak nenpòt ki lè ou gen yon fonksyon andedan yon estrikti, andedan nan yon objè,
sa yo rele yon metòd. Men, li la menm bagay la.
Yon metòd se yon fonksyon ki jis pou k ap pase yo andedan nan yon lòt bagay.
Se konsa, sa sa vle di ke sa a espesyal varyab mondyal rele dokiman
te yon fonksyon rele getElementById ki literalman fè sa.
Li pral fè ou jwenn yon eleman nan Dom a, pye bwa Dokiman Modèl objè,
ki gen ID a se nan sa a salitasyon ka.
Nan lòt mo, tout tan sa a nou te pase sou estrikti done vini nan jwe isit la.
Pòtre sa a nan yon Dom ke nou te gen yon moman de sa,
menm si paj la se yon ti kras diferan, si mwen te gen yon div nan foto sa a,
ki sa document.getElementById ta tounen vin jwenn mwen ta efektivman gen yon konsèy
rektang lan nan pye bwa a, yon referans a rektang lan nan pyebwa sa a.
Se konsa, sa a, se sa li vle di aktyèlman rele youn nan moun ki fonksyon.
Nan ka sa a ankò li nan yon DIV. Li pa yon kò oubyen tit yon.
Se konsa, kite a wè sa m 'Lè sa a, nou fè avèk sa div kounye a ke mwen genyen li andedan sa a div varyab rele.
Li sanble soti ak JavaScript ou gen kapasite nan ajistè CSS la nan paj ou a dynamique.
Up jouk koulye a, nan tout CSS la nou te fè, byen limite, se nan atribi style,
oswa kote lòt moun yo te nou mete CSS?
Mwen kalite yon sèl ki gate sa. Nan tag nan style nan tèt la nan dosye a.
Oswa yo te twazyèm plas te nan?
>> Yon dosye ekstèn, yon bagay. CSS.
Se konsa, sa yo yo se kote ki 3 nou te fè CSS konsa byen lwen,
men trape an se nou te difisil kode li tout.
Ou deside jan ou plonje nan pset 7, nou deside anvan konferans sa CSS nou ta dwe.
Men, si ou vle chanje CSS ou, ou ka aktyèlman fè sa
yon fwa ou gen yon lang programmation vrè.
CSS, HTML - pa pwogramasyon lang yo. JavaScript se.
Se konsa, li sanble ke le pli vit ke ou gen youn nan moun ki rektang soti nan pye bwa a
rele Dom a, li gen tèt li kèk done andedan nan li.
Se konsa, div a ke mwen jis te pwan fwi pyebwa a gen sa nou ap rele yon pwopriyete andedan nan li
rele style, ak pwopriyete a style a gen tèt li yon pwopriyete rele vizibilite.
Mwen ta konnen sa a sèlman pa leve je l 'manyèl yon itilizatè CSS la.
Li vire soti gen yon vizibilite CSS pwopriyete ki fè sa li di.
Li fè yon bagay ki vizib oswa ou pa, ki vizib oswa ou pa.
Ak fason ou fè sa se sa a.
Mwen mande programatik si se vizibilite sa a div kache,
ki sa mwen kapab chanje li nan? Vizib.
Lòt Bagay si vizibilite a nan paj sa a pa anyen ki kache, lojikman mwen fè l 'kache.
Mwen pa gen okenn lide poutèt sa li an vizib epi li kache epi yo pa vizib ak envizib.
Sa a se te yon desizyon konsepsyon pòv sou wout la.
Men, sa yo se tout bon opoze nan CSS: vizib ak kache.
Tout sa a se sa vle di li chanje CSS la nan dosye mwen sou yo ak sou, sou yo ak sou
pou sa div an patikilye.
Men, ankò, sa a se yon fonksyon ki rele bat je. Lè yo fonksyon an bat je l rele?
Li sanble ke gen nan yon lòt fenèt espesyal mondyal varyab rele,
menm jan an nan lespri nan dokiman yo, men Lè nou konsidere ke dokiman an refere a paj entènèt ou an,
tankou pye bwa a Dom, HTML a ou voye nan sèvè a,
fenèt refere a chrome la bò kote l ', ba a adrès, ba a tit,
ak nan tout sa bagay alantou paj entènèt ou an.
>> Epi li sanble ke objè a fenèt gen yon andedan fonksyon espesyal nan li rele setInterval
ki fè sa li di.
Li pral mete yon entèval - nan ka sa a chak milisgond 500 -
ak, pran yon devine, sa ki li pral fè chak 500 milisgond?
Li nan ale nan egzekite ki bat je l fonksyon.
Ak sa ki nan bèl isit la se ke nou te ka fè sa nan C menm si nou pa janm te fè.
C fè sa ki gen yon bagay yo rele bagèt fonksyon kote ou ka pase fonksyon alantou
kòm agiman.
Menm jan an nan JavaScript ou ka pase non an nan yon fonksyon nan yon lòt fonksyon.
Ak Avi sa m ap fè a. Mwen pa fè sa.
Si m 'mete parantèz apre bat je a, ki ta ka vle di rele fonksyon an bat je.
Si m 'retire okenn pati yo, sa vle di isit la se fonksyon an bat je l
pou ke setInterval ka rele li chak milisgond 500.
Se konsa, rezilta nan fen, atròs si li se, se ke si mwen ale nan lokalost epi ale nan blink.html,
Mwen kounye a gen sa a fèt ankò epi ankò.
Men, si mwen aktyèlman Enspekte Eleman, kite la wè si nou ka wè sa.
Kite m 'Enspekte Eleman, kite m' desann jis yon ti jan,
kite m 'chwazi Eleman sou isit la, ak avi andedan kay la Dom nan enspektè Chrome a.
Li nan literalman chanje retounen ak lide chak milisgond 500.
Si nou ale nan zanmi nou an Nate,
si ou janm mande ki jan sa ap travay, menm jan lide ak yon entèval,
men Nate se aktyèlman fè pou sèvi trè efikas nan koulè nan ka sa a an patikilye isit la.
Se konsa, sa plis nou ka aktyèlman fè ak sa a?
Se pou nou louvri moute yon lòt egzanp ak eseye yon bagay
ki nan programe menm plis itil pase fè bagay yo bat je.
Kite m 'ale nan anyè fòm nou yo jodi a ak antre nan form0.
Sa a te fòm nan ugliest posib ke mwen te kapab vini ak,
ak kite m 'jis montre w sa li sanble nan yon navigatè.
>> Kite m 'ale nan lokalost / fòm, e sa se form0.
Sa a se yon super fòm lèd HTML ki gen yon jaden kèk pou email, pou modpas,
modpas, ak Lè sa a, yon ti kras toulède kaz dakò ak ou pou kèk tèm ak kondisyon.
Trape an se, si mwen ale nan fòm sa a epi mwen pa vle ba ou adrès imel m 'yo,
Mwen pa vle dakò ak ou pou tèm ak kondisyon petèt, mwen ka klike sou Anrejistre
epi li pèmèt m 'nan de tout fason.
Sa rive pou soumèt a yon dosye estipid PHP rele dump.php.
Tout sa li fè se enprime soti sa ki nan $ _GET jis pou fè dyagnostik.
Se te sa ki te soumèt pa itilizatè a jis kounye a.
Men, si nou aktyèlman vle valide soumèt fòm itilizatè a la.
Kite m 'ale nan vèsyon 1.
Sa a se form1.html. Li sanble estetik menm jan move, men avi kouman anpenpan li ye.
Si m 'klike sou Anrejistre san kolaborasyon, mwen jwenn rele nan.
"Ou dwe bay adrès imel ou."
Tout dwa. Se konsa, kite m 'eseye sa. Se konsa, malan@harvard.edu. Mwen pa bezwen yon modpas.
Anrejistre. "Ou dwe bay yon modpas." Tout dwa.
Se konsa, mwen pral ba ou yon modpas nan wouj. Anrejistre.
"Modpas pa matche ak." Mwen dwe kounye a tape nan isit la wouj.
Mwen aksidantèlman tcheke sa. Anrejistre.
"Ou dwe dakò ak tèm ak kondisyon." Tout dwa. Dakò la. Anrejistre.
Epi, koulye a li montre m 'pwodiksyon an dyagnostik sou la.
>> Se konsa, sa jis ki te pase?
Nou te gen kapasite sa a valide soumèt fòm.
An reyalite, si ou te fè plonje nan pset 7, gen nan yon fonksyon padone
ki fè li trè fasil a rele nan itilizatè a ak yon mesaj sou ekran an.
Mwen sèvi ak yon mekanis yon ti kras diferan, fonksyon an alèt,
ki se pa yon fonksyon ki nan te souri sou depi li fè mesaj trè lèd itilizatè.
Men, kite a wè sa m ap fè isit la.
Sa a se form1.html, ak avi ke mwen gen kèk sentaks trè familye:
tag nan kò, tag fòm, atribi aksyon, atribi metòd.
Men, remake mwen te bay fòm mwen yon ID inik pou konvenyans.
Lè sa a, mwen te gen yon jaden imel ki gen kalite a se tèks,
yon jaden modpas ki gen kalite a se modpas, jaden konfimasyon ki gen kalite a se modpas,
ak Lè sa a, yon toulède kaz ki gen non se akò sou isit la, kalite se toulède kaz.
Lè sa a, mwen te gen yon bouton soumèt.
Men, remake nan tèt la sa ki plis mwen gen.
Premye a tout, gen nan yon lòt pou sèvi ak tag a script.
Si ou gen kèk kòd JavaScript nan yon lòt dosye, jis tankou ak CSS ou ka gen ladan yo li.
Epi ou fè sa ak sous script, ak Lè sa a, remake mwen konekte aparamman
googleapis.com nan yon chemen trè long men non dosye ki gen fini nan jquery.min
pou minimòm. js.
jQuery se yon bibliyotèk super popilè pou JavaScript ki jis fè JavaScript
tout plis nan user-zanmitay yo itilize.
Li nan efektivman vin yon estanda defakto.
Se konsa, menm si sa w ap sou yo wè se pa pi bon kalite JavaScript se pou chak,
li se yon bibliyotèk ki sou tèt yon JavaScript anpil tankou bibliyotèk la CS50 se yon kouch
sou tèt de ba-nivo kòd C; reyalite a se prèske tout moun sou entènèt la sèvi ak li.
Se konsa, sa yo, se pa wou fòmasyon. Sa a se jis pi bon pratike jou sa yo.
Koulye a, remake ki anba a ki se tag script pwòp mwen an, ak avi sa m 'te fè isit la.
Li sanble ke jQuery fè yon bagay yon anpenpan ti kras.
JavaScript gen siy dola, men yo san sans.
>> Yo tankou lèt la A oswa B oswa C.
jQuery te senpleman te adopte konvansyon an oswa sòt de reklamasyon mete nan reyalite a
ki $ pral senbòl espesyal yo.
Se konsa, osito ke ou chaje sa a mondyal JavaScript dosye moute isit la ak tag a script,
ou gen aksè nan yon varyab espesyal mondyal ki nan rele $.
Li nan plis byen rele jQuery, men sa pa gade prèske kòm sexy kòm $.
Men, pa gen okenn siyifikasyon $ espesyal. Nan PHP li te gen espesyal sans.
Ou te gen nan genyen li nan devan yon varyab.
Sa a se jis yon bagay sexy yo ke yo te pran sou.
Ki sa ki pwal sou isit la?
Avi mwen pase fonksyon an jQuery mondyal mwen varyab dokiman
ak Lè sa a, m ap rele. pare.
Ki sa ki jQuery esansyèlman se li pèmèt ou pran kèk bagay JavaScript vaniy
tankou objè a dokiman, objè a fenèt,
epi si ou pase l 'nan fonksyon an jQuery -
e ankò, yo dwe klè, sa a se yon fonksyon ki rele jQuery -
ki sa li fè se li retounen ba ou yon vèsyon espesyal nan dokiman
ki gen fonctionnalités plis asosye ak li.
Se konsa, nan JavaScript kri pa gen okenn fonksyon pare,
Men, si ou pase dokiman fonksyon an jQuery an premye,
li retounen ba ou yon vèsyon espesyal nan objè a dokiman
ki gen plis karakteristik anpenpan.
Epi sa a, poukisa moun renmen li. Li jis fè bagay sa yo pi fasil fè, menm jan nou ap sou yo wè.
Se konsa, sa liy sa a nan kòd vle di?
Liy sa a nan kòd isit la vle di lè dokiman an se pare -
nan lòt mo, yon fwa yo fin navigatè a fè lekti sa a tèt dosye jouk anba -
ale pi devan epi egzekite fonksyon ki anba la a.
Ki sa ki nan vrèman enteresan nan JavaScript - ak PHP gen sa a kòm byen -
se fonksyon anonim.
Nan JavaScript ou ka deklare fonksyon ki pa gen okenn non, men yo fè gen yon kò.
Avi sa k ap pase isit la.
>> Sa a se yon fonksyon ki rele pare, ak li jis vle di fè bagay sa yo
lè paj wèb la antye se pare, lè li nan tout te li nan soti nan sèvè an.
Ki sa ou vle? Mwen vle egzekite yon ti moso nan kòd.
Remake ke nou pa vle egzekite sa a kòd touswit.
Si m 'manke sa a, sa a ta vle di imedyatman kòmanse egzekite liy sa yo nan kòd.
Men, lefèt ke m ap di pa gen okenn, pa gen okenn, pa gen okenn, vlope sa a nan yon fonksyon anonim tankou sa a
vle di pa egzekite li ankò; rele li evantyèlman.
Nou te wè sa a yon ti moman Anons sa pibliye depi nan egzanp anvan fòm nou yo.
Ki sa ki fonksyon t 'nou rele evantyèlman, 500 milisgond pita? Bat je l.
Se konsa, lide a menm.
Yon fwa ankò, menm si sa a sanble yon ti kras etranj, jis pran pou kounye a sou lafwa
ki deklare yon fonksyon anonim ki yo rele evantyèlman,
ou tou senpleman ekri fonksyon () {
Se konsa, sa kòd nou pral egzekite evantyèlman? Sa ki anba la.
Sa a tou sanble yon nouvo ti kras, men sa vle di isit la nan fonksyon an jQuery,
ak sa a kounye a se yon chemen kout.
Sa a brib nan HTML nan fon an nan ekran an nan kou gen kèk reprezantasyon pyebwa.
Li pa sa a. Paj sa a se pi plis enteresan pase sa hello, egzanp nan lemonn.
Men, gen nan kèk pye bwa ki koresponn ak sa a HTML.
Li ta yon doulè nan kou a yo gen aplike kèk kalite fonksyon repetitif
yo kòmanse nan ne rasin lan e Lè sa a, jwenn ne la ki gen ID se enskripsyon an.
Se konsa, sa jQuery fè super fasil pou nou se literalman sa a.
Ale vè lavan epi pou yo jwenn m 'nenpòt sa div oswa fòm kèlkeswa sa, kèlkeswa sa HTML eleman
an gen yon ID fè enskripsyon an.
Sa a se ekivalan a document.getElementById ('enskripsyon').
>> Poukisa fè moun tankou jQuery?
Paske li nan pi kout kalite. Men, ki nan tout sa li ye. Li nan lide la menm.
Jwenn m 'tag la ki gen ID se enskripsyon an.
Men, lè se ke tag, ki k ap pase yo yon fòm, soumèt,
ale pi devan epi egzekite sa a kòd.
Se konsa, kite a pran yon sèl gade kounye a nan ki jan n ap fè validation fòm.
Sentaks la se Byensir skre an premye, men ki sa k ap pase?
Si liy sa a nan kòd la se laverite, mwen pral rele nan itilizatè a bay li oswa li adrès imel.
Se konsa, sa se liy sa a nan kòd?
$ Vle di jQuery. Koulye a, avi sa a.
Sa a se kalite tankou CSS.
Si ou te plonje nan CSS ankò, ou pral konnen ke sa a vle di eleman la ki gen ID se enskripsyon an.
Espas ki la vle di jwenn yon timoun oswa yon moun fanmi enskripsyon ki gen non se opinyon.
Lè sa a, bagay sa a nan kare parantèz se yon filtè ti kras.
E menm si sa a sanble skre, sa a jis vle di ale nan fòm la ki gen ID se enskripsyon yo,
ale nan andedan kay la eleman D 'de sa ki gen non se email,
ak Lè sa a, jwenn valè li yo, tou sa valè li k ap pase yo -
asdf si ki nan tout sa mwen tape oswa malan@harvard.edu si se sa mwen tape.
Se konsa, si valè ki te nan jaden imel fòm nan == pa gen anyen, rele nan itilizatè a.
Lòt Bagay si valè a nan jaden an modpas == pa gen anyen, rele nan itilizatè a.
>> Lòt Bagay si valè a nan jaden an modpas pa egal a valè a nan jaden an konfimasyon,
ki te eleman ki lòt fòm, rele nan itilizatè a.
Lè sa a, anfen - ak yon sèl sa a tou gen kèk sentaks nouvo nan pwòp li yo,
men yon fwa ou te wè li, li nan omwen yon ti kras plis rezonab -
lòt bagay si fòm lan ki gen ID se enskripsyon an gen yon eleman D 'ki gen non se akò
e li se tcheke wi, ale pi devan epi rele nan itilizatè a.
Se konsa, mwen totalman admèt sa a se konplètman akablan nan zye premye.
Li se yon anpil nan sentaks nouvo. Men, tout nan jQuery swiv sa yo kalite modèl.
E franchman, mwen pa t 'menm konnen sa a te egziste jiskaske yon kèk minit de sa.
Mwen Googled, "Ki jan ou fè tcheke si yon toulède kaz tcheke nan jQuery?"
ak sa a se sentaks a, paske gen nan diferan fason pou fè li
ak aktyèl kòd kri JavaScript.
Se konsa, kòm paj la trè premye nan Set Pwoblèm 7 mete aksan sou,
pset 7 se anpil yon egzèsis nan bootstrapping tèt ou
kote nou te bay, èspere ke, yon kad konseptyèl ekspresyon ak ki atake pset la.
>> Men, kòm se souvan ka a ak konsepsyon sit entènèt, li la jiska ou reyèlman pike alantou li,
enkòpore koupe de kòd ak egzanp nan sit entènèt la pou lontan ke ou site yo
pou chak tèm yo sou sa fèy an premye,
ak reyalize ke aprann HTML, CSS, JavaScript ak menm SQL
se vrèman vle di yo dwe sa a fè egzèsis nan kay kòm nou kòmanse pran sa yo wou fòmasyon an.
Ak reyalize twò gen nan anpil plis bagay ou ka fè ak yon navigatè.
Anndan nan pi fò nan eleman sa yo gen bagay lòt te rele pòtè evènman.
E menm si nou jis gade sa yo rele onsubmit ak onready,
ou ka fè bagay sa yo tankou onkeydown, onkeyup,
renmen lè itilizatè a manyen yon kle, ou ka koute pou sa ak moute kle.
Gmail gen rakoursi klavye.
Kouman fè Google aplike rakoursi klavye tankou C pou konpoze?
Yo koute pou evènman, menm jan yo ap rele, tankou onkeypress oswa onkeyup ak onkeydown.
Si ou janm plane sourit ou sou kèk opsyon meni
ak tout nan yon toudenkou vwala,, yon meni parèt oswa koulè a ​​grafik chanjman,
ki jan yo ap fè sa?
Olye de koute pou onready oswa onsubmit, ou koute pou onmouseover oswa onmouzawt.
>> Se konsa, nan kout, ak sa yo Basics trè senp ki nou te fèk kòmanse fè grate sifas la nan jounen jodi a
epi n ap plonje nan plis nan Mèkredi, ou gen, de pli zan pli,
pouvwa a aplike kalite ki nan bagay sa yo ke ou se deja abitye avèk yo.
Se konsa, kite a fini la, epi n ap kontinye sa a nan Mèkredi.
>> [CS50.TV]