>> Id-dritt.
Allura, JavaScript.
Kważi kulħadd f'din il-kamra probabbilment għandha xi grad
ta 'kumdità miegħu jekk kien mod lura meta SC50
jew huwa kien personali proġetti web jew saħansitra
jekk inti ma daqsxejn ta 'dan ma dan il-proġett passat bażi PHP,
iżda għall-aktar parti, ħafna minnkom,
anke jekk ikollok xi kumdità
ma JavaScript forsi ma jkunux ittieħdu
għall mogħtija kif il- xogħlijiet tal-lingwa u dak li tmur
fuq taħt il-barnuża u dak li aħna qed tmur biex tipprova
tagħmel illum huwa qoxra lura xi wħud mill-saffi tekniċi
ta 'dak JavaScript huwa, kif din hija differenti minn lingwa
bħal PHP, kif jista 'jkun jintuża mhux biss naħa tal-klijent
iżda wkoll server sekondarji u mbagħad tiffoka ħafna speċifikament
fuq dan il-qafas, avviż ebda JS li huwa essenzjalment ħin run,
programm li magħhom inti tista 'tesegwixxi kodiċi JavaScript,
server sekondarji u huwa isir sort dejjem aktar popolari
tal-istess statura dan ġranet ta 'probabbilment Ruby u PHP
u Python u tkun taf tara
li għandha xi pretty karatteristiċi qawwija permezz ta 'xi
tal-lingwa built-in constructs.
Iżda l-ewwel, xi wħud mill-faċli Jittieħed biss infakkarkom
ta 'kif din il-lingwa xogħlijiet u jekk għandek problemi tara xi
ta 'dan, biss shout out u aħna se jaġġustaw.
Għalhekk, wieħed bħal fil PHP hemm ebda kunċett ta 'funzjoni ewlenija tiegħu,
inti biss tibda bil-miktub kodiċi
u inti tista għalihom jinterpretawha fuq għal isfel.
Fil-kuntest ta 'browser
jew fil-ġenb server xi ħaġa Ser naraw xi eżempji
fil-daqsxejn.
Kondizzjonijiet, sintattikament ekwivalenti għal PHP kif ukoll C,
C + + u xi lingwi oħra hekk biss biex jagħtik sens
ta 'kif nistgħu istruttura li,
hemm biss canonical kundizzjoni.
Espressjonijiet Boolean, l-istess eżatt sintattikament kif inti stajt tidher
f'dawk istess oħra lingwi, kemm għall oring
u biex tintemm affarijiet flimkien.
JavaScript għandha swiċċijiet, ferm simili PHP u l-oħra do
u int ma limitati, bħall- fl C sa primitives integrali
bħal Chars u ints jistgħu attwalment jagħmlu tipi oħra ta 'valuri.
Loops. Għalhekk, din hija eżattament l-istess
u lingwi probabbilment tużżana, filwaqt loops, tagħmel waqt loops
u allura dan trick hawnhekk.
Għalhekk, din hija tip ta ' magħrufa bħala enumerazzjoni fast
u huwa mod ħafna għaqlija ta eżatt bħal fil-PHP tagħmel
għal kull FU bħala bar inti tista 'b'mod simili,
f'oġġett JavaScript, fejn oġġett huwa l-isem
tal-varjabbli hawnhekk, jiġifieri, i var fil-għan u fuq kull iterazzjoni
ta 'dan loop, i huwa se tkun waħda
mill-ċwievet minn dak l-oġġett.
Allura, jekk għandek oġġett għal student, u student ikollu ID
u l-isem u dar, iteratively i se tieħu
tal-valur tal-ID u l-isem u house u inti tista għalihom indiċi
fis oġġett bħallikieku huwa firxa użu parentesi kwadri
notazzjoni li jiksbu l-valur tal-ID ċavetta jew isem
jew dar u oħrajn.
U kuntrarju għall-komuni suppożizzjoni, JavaScript oġġetti,
proprjetajiet mhumiex neċessarjament garantit li jkun
fl-istess ordni, dan huwa wkoll vera għall PHP hekk ma jassumu
li l-affarijiet se jibqgħu fl-istess ordni
li inti tpoġġi dawk ewlenin pari fi oġġett ta 'valur.
Kif dwar arrays?
Hemm ftit ta 'modi li tikteb sintattikament
iżda dan huwa probabbilment l-aktar komuni issa biss jużaw kwadri
notazzjoni bracket.
Għalhekk, din hija varjabbli li jsejħu numri fihom array
ta 'sitt numri interi hemmhekk, Heres string sempliċi
u avviż x'hemm nieqes minn dawn l-eżempji,
dak li huwa JavaScript apparentement nieqsa.
Yeah. Allura, hemm ebda idea ta 'typing, ċertament mhux
f'dan il-kuntest hawn, iżda dan huwa tabilħaqq string.
Għalhekk, JavaScript għandha tipi u dan kien tassew firxa
li hija fiha nnifisha tip u kull wieħed mill-elementi
f'dak il-firxa kienu ta 'tip numru bħal JavaScript jitlob minnhom.
Għalhekk, huwa laxk ittajpjat lingwa u Ser naraw
li JavaScript bħal PHP għandha operatur identità
u mekkaniżmi oħra għall- attwalment iċċekkjar dak it-tip
ta 'xi varjabbli kemm għall-kontroll ta 'żball
u għal applikazzjonijiet oħra.
U hawnhekk oġġett kampjun fih biss ID u l-isem.
U issa, avviż li aħna qed użu notazzjoni bracket kaboċċi,
l-indentazzjoni u l-abjad ispazju huwa tip ta 'bla sens
u din tiddikjara varjabbli li ismu huwa Rob
u li l-ID huwa 1 u l- tip data huwa hawn numru tagħna
u string rispettivament.
U allura dan hu xi ħaġa ftit differenti
jekk inti stajt qatt sar xejn ma 'Ajax dawn il-jiem?
You probabbilment tintuża oġġett bħal dan
imma dak ta 'min jinnota hawnhekk?
X'inhu sintattiku li qatt tant differenti, biss ftit
affarijiet bejn dan l-eżempju li huwa ċertament iżgħar
u dan l-eżempju akbar.
Għalhekk, l-ewwel layman tul, dak li huwa dan?
X'inhu t-tip ta ' staff would you say?
OK, huwa firxa, huwa firxa ta 'xiex?
>> Oġġetti.
>> OK, huwa firxa ta 'oġġetti.
U issa, tiffoka fuq wieħed biss - kwalunkwe wieħed minn dawn l-oġġetti,
x'hemm differenti bejn dan u dan?
>> L-imfietaħ huma kordi.
>> Yeah. Għalhekk, il- ċwievet huma kordi,
u l-ċwievet huma attwalment kordi fiż-żewġ każijiet
u dan huwa tip ta 'idiotic
fl-opinjoni tiegħi disinn storiku deċiżjoni meta inti qed tuża
JSON, JavaScript Notazzjoni oġġett,
li huwa essenzjalment format trasport
għall tintbagħat data tipikament madwar in-netwerk
bejn klijent u server, għandek bżonn biex tiftakar
li din ma tkunx attwalment JSON valida u dan huwa wieħed
ta 'dawn FYIs sakemm inti qatt bang ras tiegħek kontra l-ħajt
għal diversi minuti għal ebda tajba raġuni, mhuwiex validu JSON
minħabba li l-ċwievet huma mhux attwalment ikkwotat.
JSON idiotically teħtieġ li il-keys jiġu kkwotati mhux biss,
iżda li dawn ikunu doppjament ikkwotat, kwotazzjonijiet uniku mhumiex biżżejjed.
Allura, ħaġa li ftit stupid u aktar ta 'fatt gost
għall-finijiet tal-lum, iżda dan wisq tkun valida JavaScript
huwa biss mhux - il- maqlub mhux veru.
Kull dritt.
Allura, aħna ser tara ħafna aktar ta 'dak.
Kull dritt.
Allura, dak JavaScript sintattikament probabbilment pretty
familjari, kwalunkwe inti li jkollhom qatt jintużaw JavaScript qabel
mhuwiex qabża enormi mill PHP jew aktar kwalunkwe lingwa proċedurali
li jista 'jkollok użati.
Għalhekk, illum aħna ser tiffoka fuq l-aspetti interessanti
tal JavaScript partikolarment fil-kuntest ta 'ebda JS
iżda mhux esklussivament minħabba sa issa inti ħadthom probabbilment,
jekk inti użati Javascript, użati ġewwa ta 'browser.
Għalhekk, l-ebda JS huwa ambjent imbagħad ftit huwa għaddej
biex inessu aċċess JavaScript kodiċi klijent -
server sekondarji imma l-ewwel, ejja tagħti ħarsa
fuq xi ħaġa li a ftit aktar naħa tal-klijent.
Allura, stajt marret u dan huwa marbuta fuq il-websajt korsijiet,
jekk inti tixtieq li jilagħbu flimkien, hemm żewġ subdirectories
fl Zip lum ta msejjaħ studs sors zip fuq il-websajt
u dawn huma biss Xi eżempji reminiscing
affarijiet li inti tista raw qabel u I sort tal mibnija minnhom
sa minn sempliċi li ftit aktar ikkumplikat biex tease
xi wħud mill-karatteristiċi ta 'JavaScript.
Allura, ejja imorru quddiem u tieħu ħarsa per eżempju fuq dan.
Għalhekk, sfortunatament l-tag blink kien maqtula barra bosta snin ilu
bħala l-mod ltqajna prettier u prettier
u l-tag blink kien litteralment bracket open blink parentesi magħluqa
u tip ta 'l-ebda itwal magħna.
Iżda, aħna xorta jistgħu resurrect din l-idea ta 'tag mir biss tip
ta 'ħsieb dwar dan loġikament, kif taħseb li tmur
dwar teħid xi ħaġa bħal dan blink intuwittivament?
Jekk nassumu li inti taf ftit daqsxejn ta 'JavaScript u CSS jew
f'dan il-punt, huwa OK jekk inti ma.
>> Set żmien out u jistaħbew imbagħad wara I ser tag dan
jitwettaq u juru mill-ġdid.
>> Yeah, perfetta.
Dan huwa tip ta 'programmazzjoni 101,
kif tista 'tikseb effett viżwali bħal din?
Ukoll, inti b'xi għandhom juru xi ħaġa
u mbagħad jaħbu xi ħaġa, juru ħaġa, jinħbew xi ħaġa
u bħala Jonathan tipproponi jużaw xi tip ta 'żmien barra,
xi tip ta 'skeda li tista' tagħmel dan ripetutament mingħajr il-bżonn
li jużaw loop jew xi ħaġa bħal dik.
Allura, let me go fis blink-0.html
u let me tiċkien il-font ftit
sabiex aktar ta 'din tinkwadra.
U ejja tagħti ħarsa lejn dak li jiġri hawn fuq.
Għalhekk, l-ewwel nett, avviż li l-korp
ta 'din il-paġna huwa super sempliċi, ġewwa tal-ġisem
tal-paġna huwa biss div.
Stajt arbitrarju mogħti ID ta greeting
u li jista 'jvarja sakemm huwa uniku
u mbagħad I biss jkollhom xi test sempliċi, bonjour dinja.
Għalhekk, jekk I issa iscroll, Avviż xi grafika fluffy.
So, I say, qawwi greeting, li kif tafu
fl CSS ifisser biss unikament tidentifika l-element
bl-idea ta 'greeting,
daqs tat-tipa huwa għaddej arbitrarjament jkun dan, marġni u jallinjaw it-test.
Allura, uninteresting Dettalji estetiċi
għal madwar center-test.
Għalhekk, il-parti interessanti huwa fl-iskrittura tag up here
li I jiġri li jitqiegħdu ġewwa tal-kap tal-paġna.
Allura, we'll - inti tista 'tagħmel dan fi kwalunkwe numru ta 'modi
u aħna ser tara ftit iterazzjonijiet ta 'dan l-istess programm
imma ejja nibdew mill-quċċata.
Allura, stajt iddikjarat funzjoni msejħa blink
u apparentement hija tuża din mibnija fil-metodu DOM imsejħa
getElementById li forsi wieħed mill-metodi aktar qawwija
li ikollok barra mill-kaxxa ma JavaScript tfittex
"Greeting" ma għandhom jkun kwotazzjonijiet doppja bhalu kien
HTML huwa jew huwa multa sakemm
kif int stylistically konsistenti f'dawn il-jiem I DARE ngħid
ħafna nies jużaw Java, kwotazzjonijiet uniku fil-JavaScript,
kwotazzjonijiet doppja fil HTML iżda ma verament jimpurtax
sakemm int konsistenti.
Allura, hawn jekk int ma jkunux familjari, inti tista 'attwalment aċċess
ma JavaScript CSS proprjetajiet fuq elementi.
Allura, avviż li stajt iddikjarat varjabbli imsejjaħ div
u maħżuna ġewwa ta 'dak il-varjabbli,
referenza għal kwalunkwe li element DOM huwa.
Għalhekk, jekk inti taħseb lura għall CS50 jew kull klassi li fiha int ħsibt
dwar l-istrutturi tas-siġar u DOM, Mudell Għan Dokument,
din hija biss referenza għal node fil-siġra,
li jirrappreżenta din il-paġna
u jekk div.style.visibility proprjetà ugwali, ugwali, ugwali,
moħbija, imbagħad I biss tixtieq toggle dan
kif Jonathan propost inkella nixtieq
toggle dan matul moħbija.
Issa, bħal fil-ġenb, għaliex il-triple ugwali hemmhekk?
Jew dak li huwa li versus ugwali doppja?
>> Ekwivalenti stretta.
>> Jiddispjacini.
>> Ekwivalenti stretta.
Għalhekk, huwa l-operaturi ta 'identità
fejn minn int verifika ma biss il-valur tal-varjabbli
bħala ugwali, sens ugwali iżda wkoll it-tip ta 'dan.
Għalhekk, anke jekk aħna ma jkunux speċifikat s'hawn kwalunkwe data
tipi għal kwalunkwe varjabbli fil dan jew xi tad-dijapożitivi,
hemm tip assoċjati ma 'dak string moħbija
ma 'dak il-valur, moħbija u li hija ta 'sekwenza kors.
Għalhekk, f'dan il-każ, ma verament kwistjoni
għaliex hemm ebda mod li aħna qed tmur biex conflate string
ta '"moħbija" ma xi valur ta '
iżda dan huwa spiss tajba vizzju Jien ngħid li tikseb
fis-użu l ugwali, ugwali,
sinjal ugwali huwa ġeneralment ħaġa tajba.
Hija se tagħmel kodiċi tiegħek aktar robusti kemm fil-PHP imma
u fl JavaScript għaliex inti ser tmexxi
fis kultant każijiet kantuniera fejn il-valur jista 'jkun żero
li int iċċekkjar għall-u żero jista 'jiġi conflated ma falza
jew ma setgħux ikunu u kif fil-PHP,
Javascript wisq jista 'jkollhom multipli Valuri falz fejn minn żero
u foloz u null u mhux definit kollha jistgħu jsolvu b'mod impliċitu
biex falza.
Imma jekk int verament jixtiequ sabiex jikkontrolla għal valur partikolari
bħall żero, in-numru, jew falza l Boolean imbagħad inti għandek
biex jużaw dan l-operatur identità.
Għalhekk, jista 'jiġri li tikseb fis xorta waħda anki jekk hawn,
huwa tip ta 'bla sens għaliex nafu aħna qed iċċekkjar
għal valur string u huwa mhux se jkun xi ħaġa oħra.
Allura, hawn l-magic imbagħad, jekk I iscroll biex din il-linja hawn,
apparentement, mibnija fis-oġġett tieqa
u din hija karatteristika ta ' a browser inti tista 'aċċess
għal dan super globali oġġett imsejħa Tieqa,
ġewwa ta 'dan huwa xi funzjonalità,
jekk biċċa li huwa stabbilit intervall
u li tieħu apparentement liema tipi ta 'argumenti?
Yeah.
>> Sejħa Funzjoni u ħin.
>> Tajba. Allura, funzjoni sejħa u żmien
u għalhekk partikolarment referenza għal xi funzjoni,
pointer għal funzjoni f'sens
u li l-funzjoni li għaddej
biex tikseb esegwiti kull numru ta ' millisekondi u f'dan il-każ,
huwa kull 500 millisekondi.
Għalhekk, huwa mod li jipperswadi effettiv u loop infinita
mingħajr l-użu iterazzjoni iżda minflok javżak JavaScript
għall-magna ġewwa tal-browser
tagħmel dan kull 500 millisekondi jew huwa qrib
500 millisekondi kif jista,
jirriżulta li taħt il-barnuża,
hemm dak li sejjaħ avveniment loop u aħna ser terġa 'lura għal dan
fil-kuntest tal-node JS li biss kontinwament tip
tas-seduta hemmhekk, għażil, stennija għal xogħol li jsir
u hekk kif realizzata,
500 millisekondi għaddew blink se tikseb imsejħa mill-ġdid
u għal darb'oħra u għal darb'oħra huwa flimkien ma 'kwalunkwe xogħol ieħor
li teħtieġ li tikseb jsir.
Allura, dak li nistgħu jtejbu hawn?
Well, let me miftuħa up blink-1.html
u turi l-blink-1.html
bħala estetikament perfettament identiċi.
Allura, dak li nistgħu jtejbu hawn?
Ukoll, avviż li huwa kien tip ta 'inutli
li tiddefinixxi funzjoni msejħa Blink għaliex kemm
F'kemm postijiet għamlet I sejħa tal-blink funzjoni?
>> Just darba.
>> Allura, wieħed.
Għalhekk, ma kienx ħażin, fil- fatt huwa probabbilment pretty
dritta 'l quddiem.
I iddefinixxa blink funzjoni, I sejħa ta 'blink funzjoni permezz
ta 'dan il-parametru, iżda teknikament,
ma kienx hemm raġuni għal dan u paradigma komuni
fl JavaScript huwa li attwalment jagħmlu użu ta 'funzjonijiet lambda
kif inti tista 'recall minn 51 jew funzjonijiet anonimi
fejn jekk inti m'għandekx bżonn isem għal funzjoni,
jekk int biss ssejjaħ dan ċertament f'post wieħed,
għaliex jolqot cluttering kodiċi tiegħek, cluttering-moħħ programmaturi
u l-isem tiegħek ispazju verament b'simboli
li inti ma verament bżonn għall-kura dwar.
U għalhekk, f'dan il-verżjoni hawn,
avviż li jien ssejjaħ window.SetInterval direttament
fuq nett tal tiegħi tag iskrittura allura jien tgħaddi
fil-funzjoni nameless li jieħu ebda argumenti
u li perfettament multa u allura l-korp
ta 'dik il-funzjoni jidher huwa identiku għal dak li kien qabel
u l-unika sintattika differenza issa huwa
stabbiliti hawn jmiss għall-500.
Jien għeluq tal-ġisem tal-funzjoni
u mbagħad jien qal tesegwixxi dan il-kodiċi ta 'qabel,
kull 500 millisekondi.
Bidla hekk, marġinali ħafna
iżda pass lejn x'hemm probabbilment aktar eleganti
implimentazzjoni ta 'din.
Allura, ejja tagħti dan wieħed pass ulterjuri jekk I issa jmorru
fis blink tnejn, inti ser tara librerija komuni,
l-effett li se
li tkun kompletament ineffettiva estetikament imma jekk immorru
fil-verżjoni tnejn hawn, l-avviż li fil-quċċata tar-ras tiegħi,
Stajt inklużi l- aħħar verżjoni ta 'JQuery.
U mbagħad, stabbiliti hawn, I biss mnaddfa
il-kodiċi ftit, huwa mhux se jkun operatur ta 'gost
jkomplu jużaw funzjonijiet DOM indiġeni
u tip ta 'JavaScript prima.
Fil-fatt, JQuery kif inti tista ' taf tant sar popolari
li ħafna nies biss kunflitt jQuery ma JavaScript
imma verament ftit supper librerija utli bil-miktub
minn sħabi jismu John Riżenja u peress oħrajn
li jkollhom biss jagħmel ħafna affarijiet tedious
fl JavaScript eħfef u aktar imqassra.
Għalhekk, f'dan il-każ hawn x'inhu għaddej?
So, I jkollhom din dehra ta ' sinjal dollaru, aktar fuq li
fi ftit mument, allura dan huwa selettur CSS.
Għalhekk, huwa simili ħafna fl- ispirtu għal dak li għamilt qabel,
iżda din id-darba, jien litteralment bl-użu tag hash
biex jindikaw unika identifikatur imsejħa greeting
u mbagħad apparentement . Css huwa metodu mibnija
in to kwalunkwe oġġett hija li I biss maħluqa
u jien iċċekkjar il-valur taċ-ċavetta viżibilità.
U jekk il-valur ta 'dak prinċipali ugwali, ugwali, ugwali, moħbija,
allura jien ser toggle dan u Jien ser toggle dan f'dan il-ħin
billi tuża l-istess metodu li apparentement hija mgħobbija żżejjed
fis-sens li hija għandha żewġ firem differenti,
wieħed ma 'argument wieħed u wieħed ma 'żewġ argumenti,
it-tieni li huwa l-istipulant,
l-ewwel minnhom hija a getter biex ngħidu hekk.
U jekk kurjuż u jekk youd fatt qatt ma ħares lejn dan,
jekk immorru jquery.css nisperaw il-hit quċċata hija fil-fatt dan
u tista 'tara aktar spjegazzjoni formali
li aħna biss jużaw dan, . Css bl-isem proprjetà
u allura l-istipulant huwa dot CSS
ma 'isem il-proprjetà u valur.
Allura, marġinalment aktar nodfa, iżda avviż-tip ta 'mudell hawn
ma 'kull iterazzjoni ta 'dan il-kodiċi,
aħna qed tip ta 'jagħmilha aktar stretti u aktar stretti u aktar stretti
u hemm jgħidu disinji aħjar
peress li aħna qed jużaw ħadd elses kodiċi li s eliminati
xi wħud mill-kumplessità.
Allura, issa ejja jagħmlu dan saħansitra aktar sempliċi.
U fil-fatt, jekk I tneħħi l- kwotazzjonijiet tkun taf tara biss l-
jikkummentaw tkun taf tara kif sempliċi dan gotten.
Id-differenza waħda hawnhekk naturalment hija
li jien jużaw toggle metodu li tiġi wkoll mibni
in to jQuery u li jinsab biss
għaliex xi ħadd ieħor kiteb il-kodiċi
li attwalment toggles l-iffissar viżibilità
ta 'kull element DOM li inti tibgħat dan.
Allura, aħjar u aħjar.
U għalhekk, dan huwa mudell,
anke jekk din hija supper Eżempju sempliċi u sort
ta 'effett nett stupid li hija biċċa Teptip ta 'test,
huwa dak it-tip ta 'ħsieb proċess li għandek taħseb -
tkun ħsieb dwar li ma neċessarjament l-ewwel ħafna
miktub passiv xi ħaġa għall-proġett li jmiss
iżda ċertament kif inti jtenni ma 'konsulent tiegħek jew miegħi
u laqgħat tim tiegħek jew inti biss tirrevedi kodiċi teammates tiegħek
dwar issikkar affarijiet up, right?
Wara kollox, dawn qed inqas -
a inqas linji ta 'kodiċi inti finalment ikollhom
fit-teorija l-inqas bugs inti x'aktarx ikunu tistieden
għaliex hemm sempliċement inqas kodiċi li mess up ma.
Kull dritt.
Allura, ftit takeaways.
Funzjonijiet Lambda, funzjonijiet anonimi,
ħafna minnhom inti raw qabel
u allura wkoll biss issikkar affarijiet bi librerija
bħal jQuery f'dan każ partikolari.
Kull dritt.
Kwalunkwe mistoqsijiet?
Ejja nagħmlu ieħor client aspett ġenb hawn,
fil-forma żero għandna dan l-effett nett.
Super forma sempliċi u apparentement jekk nipprova ikklikkja jirreġistraw hawn,
inizjalment jgħidlek me int reġistrat, ukoll, mhux verament.
Well, għaliex huwa li?
Well, hawn formola 0.html ftit kodiċi,
ebda JavaScript tkun xi tkun u huwa kompletament tip foloz
tal-forma minħabba l-azzjoni valur huwa registered.html
li jfisser x'ikun I tip fis din il-formola,
fejn huwa se jintbagħtu fuq is-server?
Yeah. Allura, biex registered.html li hija b'mod ċar file HTML
li għalhekk statiku fajl li jkollu ebda mezzi
ta 'teħid input utent wieħed jassumi hemm l-ebda kodiċi JavaScript
inkorporat fiha li l- tfittex fil-URL
għalhekk dan huwa kompletament NOOP u li xejn se jiġri
ma 'data ppreżentata, iżda tista 'tara l-istruttura
ta 'formola HTML5 pjuttost sempliċi
li għandha password ftit, input tipi ftit.
Allura, ejja fil-fatt issa żid ftit żball iċċekkjar
u tara kif nistgħu ittejjeb din.
Allura, hawn huwa tip ta 'foqra mod raġel ta 'implimentazzjoni ta' dan
u huwa tip ta ' blokki diżgustanti tal-kodiċi.
Għalhekk, l-ewwel ejja scroll sal-qiegħ
biex tara x'inhu l-istess u x'hemm differenti.
L-unika ħaġa differenti issa bejn din
u l-verżjoni preċedenti li stajt mogħtija l-forma u l-ID
ta '"reġistrazzjoni" jista' ikollhom kien xejn nixtieq
iżda tagħha maħsub li jkun unikament identifikabbli anki li mhux
strettament meħtieġ għaliex jekk paġna għandha biss forma waħda żgur I
setax isib ma 'wieħed metodi selettur jQuery'S.
Iżda dan il-mod biss jagħmel aktar deterministic.
Allura, jekk immur sa issa biex iskrittura tiegħi tag, avviż li ġej,
ugwali window.onload funzjoni anonima.
Allura, dak li huwa dan isir?
Allura, inti tista 'tfakkar li fil- programmazzjoni client-side -
JavaScript paġni HTML minflok jkunu avvenimenti varji assoċjati
ma 'elementi, tikklikkja u sottomissjoni u l-iffukar
u ċajpir u oħrajn bħal avvenimenti li jista 'jiġri
bħala utent tipikament jinteraġixxi mal-paġna,
window.onload ma dak li jgħid.
Min-twieqi tat-tagħbija sħiħa
hekk darba immaġini kollha kienu jitniżżel darba fajls kollha jkunu
tniżżlu u ladarba il-paġna ġiet mgħobbija,
jagħmlu l-kodiċi li ġej, u avviż jekk I jaqilbu għall-qiegħ
ta 'dan il-metodu, avviż li m'hemm l-ebda parentesi
wara l-Brace kaboċċi li huwa li jgħidu
li jien ma esekuzzjoni din il-funzjoni up here issa,
il-browser se tesegwixxi għalija meta tiddetermina
li l-paġna mgħobbija.
Allura, ejja ara dak li aħna ghamilt,
document.getElementById reġistrazzjoni
hekk li biss tagħti me referenza għall-node
fil-siġra li l-ta 'jkollu ID tar-reġistrazzjoni.
U issa, jien ser jirreġistraw handler avveniment ieħor
billi tagħmel form.onsubmit gets din il-funzjoni anonima
li jfisser li ġejjin kodiċi għandu jesegwixxi kull meta
dik il-formola tiġi sottomessa.
Issa, l-aktar ta 'dan huwa biss tip ta 'boring loġika.
Għalhekk, jekk il-valur tal- kamp email fil-formola hija
"Xejn" imbagħad inti għandek jipprovdi l-indirizz email tiegħek,
inti Yell fil-utent ma ' twissija u mbagħad jirritornaw falza.
U mbagħad I jkollhom mazz ta 'kontrolli oħra,
il-kontrolli għall-password,
il-kontrolli jekk il- passwords huma l-istess,
il-kontrolli jekk il-ftehim check kaxxa hi ċċekkjata jew le
u I biss Yell fil l-utent jekk ikun hemm
ta 'dawk it-testijiet attwalment jonqsu.
U għalhekk, hawnhekk huwa eżempju anke għalkemm huwa ftit artifiċjali
hawnhekk l-fatt li jien jużaw ugwali, ugwali, ugwali,
ifisser li l-utent ma tistax tipprova trick me
billi tittajpja liema valur.
Jew pjuttost jien verament verifika għall-preżenza
tas-sekwenza vojta, l-utent ma ittajpjat xejn s'issa.
Jekk l-utent ittajpjat fil litteralment żero,
"Żero" potenzjalment jista 'jkun konfuż mal-string vojt.
U jien ngħid huwa tip ta 'sinjifikat hawnhekk
għaliex ovvjament saħansitra zero mhuwiex indirizz email.
Iżda jekk dan kien aktar qasam ġeneriku bħal qasam tat-test
jew isem jew deskrizzjoni jew xi ħaġa li trid valur għall-
u mhuwiex neċessarjament sintattikament jkollhom
jkun indirizz email, l-utent tista tip xi ħaġa bħal zero
u għal darb'oħra każ kantuniera iżda li għaliex tipikament iċċekkjar tipi hija
ħaġa utli.
Int verament iċċekkjar għall- l-utent ikun ittajpjat xejn
f'dak il-qasam.
Allura, dak li jiġri jekk l-ebda ta 'dawk it-testijiet jonqsu, ukoll,
jirritornaw veru ġewwa ta 'avveniment handler
bħal onsubmit ifisser biss let l-imġiba oriġinali attwalment
propagate u għalhekk il- forma se tikseb sottomessa.
U hu għalhekk li meta I finalment għafast tissottometti qabel I ltqajna
permezz ta register.html u jekk jien tagħmel dan issa, avviż,
I nikseb għajjat ​​fil jekk I ma jipprovdi l-indirizz email
u I tista 'tip malan@harvard.edu,
[fonetiku] krimżi, krimżi, iċċekkjar tal-kaxxa,
u issa jirreġistraw u dan jgħidlekx me, għal darb'oħra,
inti rreġistrat jew mhux verament.
Kull dritt.
Allura, ejja tnaddaf dan up biss ftit u mbagħad tranżizzjoni
l-aktar ġodda ġdida Jittieħed server sekondarji.
Allura, jekk immur f'forma-2.html, avviż ftit affarijiet.
Għalhekk, wieħed, I miġjuba jQuery lura fis-taħlita
sabiex ikun hemm darb'oħra huwa dan is-sinjal dollaru
u issa jien jużaw xi metodi jQuery.
Għalhekk, l-ewwel, dak li huwa madwar is-sinjal dollaru li l-
hekk speċjali hawn?
X'inhu l-sinjal dollaru maqfula matul parti kbira kwalunkwe kodiċi jQuery?
Yeah.
[Rimarka inaudible]
OK. Għalhekk, is-sinjal dollaru funzjoni tmur permezz tal-DOM tfittex
għal xi ħaġa ma 'dan partikolari selettur CSS.
Allura, vera imma kważi wisq preċiż.
Dan huwa dak li jiġri meta inti tgħaddi fil string
bħal f'dan il-każ, imma inti ma dejjem ikollhom jgħaddu fi string.
Fil-fatt, il-każ fil-punt, il-ħafna ewwel linja hawnhekk hija din mhix
Selettur CSS, jien tgħaddi fil-funzjoni Lambda.
Għalhekk, b'mod iktar ġenerali - hekk, tweġiba tajba imma wisq preċiż.
B'mod aktar ġenerali, dak li huwa sinjal dollaru jirrappreżentaw?
>> Just jQuery.
>> Yeah. Għalhekk, biss jQuery jew huwa biss funzjoni
li xi snin ilu Guy kiteb u nies oħra jkollhom
peress msaħħa li litteralment b'mankanza tissejjaħ -
oops, huwa msejjaħ jQuery.
Huwa biss - jirriżulta out b'differenza ħafna
ta 'sinjal lingwi dollaru huwa simbolu perfettament valida għall-użu
fl-isem varjabbli li billi
fl sinjal dollaru PHP ovvjament għandu tifsira speċjali
iżda JavaScript bħal fil xi lingwi, sinjal dollaru
u tenfasizza u oħrajn bħal karattri speċjali totalment leġittimu
għall-użu fil simbolu tiegħek ismijiet għal varjabbli.
Allura, xi ħadd biss iddeċieda dan, inti taf liema?
Huwa ser tkun pretty tedious
jagħmlu d-dinja kollha tip jQuery-ħin kollu,
let me tip ta 'pjanti sehem fl-art u jgħidu,
"Din il-librerija se jużaw sinjal dollaru. "
U fil-fatt, dan ma jgħolli r-riskju
li xi ħadd ieħor presumptuously hija ser tuża s-sinjal dollaru
għall-librerija tiegħu jew tagħha imma hemm modi biex tip ta tassigura
li meta tuża l-dollaru tiffirmah mapep li jQuery
għaliex inti tista 'test jekk huwa diġà assenjat
għal xi ħaġa oħra essenzjalment.
Kull dritt.
Allura, li kollox li hija, hemm ebda magic.
Huwa biss sexy tfittex biċċa ta 'sintassi li huwa sabiħ
u malajr u faċli għat-tip.
Allura, dak li jiġri meta inti tip sinjal dollaru paren miftuħa
u mbagħad funzjoni anonimu.
Well, jirriżulta li dan huwa notazzjoni attwalment shorthand
għal dokument dot paren miftuħa lest.
Allura, kif Cynthia ndunat qabel aħna diġà sabet waħda
każ kantuniera.
Jekk inti biss jgħaddu il-funzjoni lambda,
l-effett tad-dollaru sinjal huwa xi ftit differenti.
Fil-fatt, dak li verament jiġri hija li huwa ekwivalenti għal dan,
tgħaddi fil referenza għal id-dokument oġġett globali
li hija globali bħad l-oġġett tieqa hija
li jagħtik xi funzjonalità speċjali
li taffettwa l-paġna kollha jew browser u jirriżulta
li dokument meta inti wrap ma jQuery,
jQuery essenzjalment jirrealizza, oh, din hija referenza
dak id-dokument oġġett speċjali,
let me issa tirreġistra handler avveniment imsejjaħ lest
li mhix indiġena JavaScript jew DOM relatati.
Ready huwa jQuery ħaġa li tgħid
meta l-paġna mgħobbija l-elementi kollha HTML
iżda mhux neċessarjament mgħobbija, kollha ta 'l-CSS u stampi
u fajls JavaScript u flash fajls u ħwejjeġ bħal dawn.
Għalhekk, huwa pass qabel fuq it-tagħbija imbagħad imorru quddiem
u tesegwixxi li ġej.
U l-rasu ta 'użu fuq lest ifisser huwa li inti tista ', inti taf,
li l-elementi kollha fil DOM tiegħek,
kollha ta 'l identifikata b'mod uniku affarijiet ma IDs, dawn jeżistu anki
jekk il-paġna, il-kontenut tiegħu għadhom tagħbija u t-tagħbija
u ikollok xi ikoni imkisser għal mument
jew paġna abjad fl-isfond.
Yeah.
>> X'jiġri jekk [inaudible]?
>> Eżempju Perfect, mistoqsija perfetta.
Allura, ejja ara jekk nistgħu jissimulaw dan id-dritt issa.
Allura, let me imorru quddiem u ħassar dan żewġ linji up hawn u mbagħad
mingħajr bothering biex jiffissaw il- indentazzjoni, let me imorru quddiem
u ħassar dan down hawn - oops, dan wieħed isfel hawn.
U issa, let me jmorru fuq il- paġna, mur formola 2.html u t-tip
Reġistru, xejn deher li jiġri, ejja ngħidu, għaliex kienet li,
ejja imorru quddiem u tiftaħ up ispettur Chrome,
tiftaħ il-Console biss biex tara jekk xejn jiġri hawn, issa,
jirreġistraw, xorta xejn.
Għalhekk, il-kodiċi hija sintattikament multa
hekk jien ma tara ebda messaġġi ta 'żball aħmar,
imma dak ċar m'huwiex qiegħed jiġri?
Xejn minn kodiċi tiegħi huwa dritt, huwa ma tkunx qed taħdem hekk xejn
ta 'kodiċijiet tiegħi jidher li jkun eżekuzzjoni, hekk għaliex hija din?
Well, JavaScript u browsers b'mod aktar ġenerali tesegwixxi l-
kontenut ta 'paġna web, top għal isfel, xellug għal-lemin.
U l-problema hija li minħabba l-quċċata
ta 'din il-paġna HTML mbagħad ras imbagħad iskrittura imbagħad iskrittura ieħor,
dan se tikseb esegwiti qabel dak li huwa saħansitra lest,
jew anki jeżisti fil-siġra rappreżentazzjoni tal-paġna.
Il-forma nnifisha, lanqas il- korp jeżisti f'dan il-punt.
Għalhekk, jQuery huwa intelliġenti biżżejjed ma 'żball iċċekkjar huwa l-
li jekk ma jkunx hemm element ma l-ID uniku ta 'reġistrazzjoni,
mhuwiex ser bail out fuqek
u biss jikkawżaw xi console żball u kisser il-paġna kollha,
li għaddej biex skiet jinjoraw inti, iżda r-raġuni li l-ebda
ta 'dan il-kodiċi qatt tesegwixxi hi
għaliex meta jkollok reġistrati din tissottometti handler,
ma kien hemm ebda element biex iwaħħalha man.
Għalhekk, huwa tip ta 'ebda op hemmhekk.
Għalhekk, billi tispeċifika minflok, stenna sa l-età tkun mgħobbija
jekk aħna ma l-window.onload ħaġa li huwa tip
mill-mod iskola antika ta 'kif isir jew il-mod jQuery sexier
bħal dan, nistgħu għid stenna sakemm kollox
ta 'dawk tags HTML jkollhom hekk ġie parsed li anke
jekk l-immaġini ma jkunux mgħobbija, fi inqas li node huwa fil-siġra,
imbagħad JQuery jistgħu jiżguraw li kollox huwa hemm.
Yeah.
[Rimarka inaudible]
Iva, tajjeb, iva assolutament.
Allura, is-soluzzjoni l-oħra li dan, jekk inti ma tuża din
jew ma tiftakar li din teżisti,
inti tista 'assolutament timxi kollha ta 'dan il-qiegħ
tal-paġna web, ġewwieni tal- bodi għandha xorta waħda iżda taħt il-forma
u li kieku wkoll issolvi din il-problema.
Huwa biss tipikament kkunsidrati prattika ħażina.
Huwa messy ftit u sloppy apposta
jekk inti żżomm disturbazzjoni kollox għall-qiegħ tal-paġna,
speċjalment meta jien żamma affarijiet sempliċi billi kulħadd
tal-kodiċi tiegħi ġewwa tal-paġna HTML
meta naturalment inti tista ' ċertament tikseb fis-drawwa
ta 'factoring out għal fajl separat
f'liema punt huwa biss sbieħ
li tiċċentralizza l- fajls fil-ras.
Ħlief hemm prezz li inti tħallas
billi JavaScript assi oħra bħall-fajls CSS
fir-ras tal-paġna, x'hemm riskju li inti tmexxi?
>> Tagħbija paġna kajman.
>> Page tagħbija bil-mod, għaliex?
>> Għaliex aħna qed tipprova tagħbija l-libreriji
qabel [inaudible].
>> Eżattament għaliex browsers aqra l-kodiċi fuq għal isfel,
xellug għal-lemin jekk Google analytics huma bil-mod
jew il-CDN jQuery hija bil-mod jew l-API Facebook huwa bil-mod
u dan il-fajl biss prekarja potenzjalment jiddependi
dwar kif għandek mgħobbija dan il-fajl, il- paġna kollu jista 'jidher li hang.
U jekk inti tara dan ħafna franchement
fuq il-websajts li għandhom ħafna reklami kwalità tad baxxa
fuqhom, aħna qed biss wieħed bil-mod jew website downed jista hang paġna
għal xi indefinit Numru ta 'sekondi
sakemm finalment il-browser nisperaw darbiet minn fuq dik
u mbagħad jurik il-bqija tal-paġna.
Għalhekk, jekk inti stajt qatt jintużaw bħal l Facebook, bħal buttuna,
fil-paġna web tiegħek, let me ara jekk I tista 'ssib dan
mingħajr ma jkollhom għalfejn log fil hawn.
Għalhekk, jekk inti tmur għall- Buttuna bħal Facebook
u kklikkja kodiċi get, kkritikat dan,
tikri ara jekk nistgħu isibu l-eżempju,
żgur xi ħadd kien stazzjonati dan.
[Pause]
I ser jagħtuk up fi ftit sekondi jekk aħna ma tara dan.
Asynch Facebook - OK.
Għalhekk, din hija l-kodiċi u sakemm li ħadthom mibdula din reċentement
li Facebook attwalment jirrakkomanda li tuża
tagħbija librerija tagħhom u fil-fatt tipproponi
li inti tpoġġi dan fil- l-korp tal-paġna tiegħek.
Allura, Facebook jagħtik parir joħolqu tip ta 'stupid DIV
li biss għandha ID unika bħal dan, allura jkollhom tag iskrittura
u kollha ta 'din il-kumplessità essenzjalment ma dan li ġej
u dawn ma tuża kwalunkwe JQuery għaliex ma jridux
li tassumi kwalunkwe dipendenzi,
let me jimxu dan fuq biss daqsxejn.
Għalhekk, avviż huma għandhom funzjoni anonima hawn,
aktar fuq li fi ftit mument,
huma mbagħad jużaw document.createElement,
dawn qed joħolqu element DOM, dan huwa simili malloc biex ngħidu hekk
fejn l-tikketta hija ta 'tip iskript, huwa imbagħad tispeċifika
li l-attribut Async ta 'dik tag va
biex ikunu vera allura inti tmur quddiem u ċifra barra dak l-URL
ta 'Facebook JavaScript għandu jkun
u dan huwa biss il-mod fancy
ta 'verifika għandha ikun HGP jew HDPS.
U mbagħad finalment, inti liema avviż Facebook ma,
huma jiksbu l-node DOM li għandha ID tal għerq Facebook
li huwa dak li qal inti tpoġġi fil-paġna
u allura dawn tehmeż l-minuri sabiex l-effett ta 'dan kollu huwa
għal tip ta 'dinamikament tinjetta a tag b'kitba ġdid fil-paġna tiegħek
bħala wild ta 'l DIV li inti jiddaħħlu hemmhekk hekk li l-bqija
tat-tagħbijiet paġna heureusement
u mbagħad dan il-kodiċi fil-fatt gets mgħobbija asynchronously.
Għalhekk, essenzjalment wara l- fatt u I differita aċċenn
tal-funzjoni anonima,
x'hemm dan funky sintassi jirreferu għall hawn
meta I jkollhom mhux biss il-funzjoni miftuħa paren, paren qrib
u mbagħad braces kaboċċi, għaliex il-paren miftuħa hawn
u mbagħad l-għeluq miftuħa, qrib paren hemm, x'hemm li tagħmel?
>> [Inaudible] tiddefinixxi u mbagħad eżekuzzjoni?
>> Eżattament, huwa li jiddefinixxi funzjoni li huwa anonimu
iżda sempliċement tiddefinixxi funzjoni,
naturalment ma jeżegwixxix funzjoni sakemm inti sejħa hija
bl-isem, imma naturalment dan hija funzjoni anonimu
sabiex inti ma tistax sejħa hija isem iżda inti tista '
fl JavaScript tesegwixxi funzjoni anonima biss
mill siġillar il-ħaġa sħiħa fil-parentesi kif aħna ghamilt
ma 'dan paren u dan paren hawn u mbagħad iffissar
sa l-aħħar tal-funzjoni paren miftuħa, paren qrib,
jekk inti ma tridx li jgħaddu kwalunkwe argument.
Iżda dan jidher tip ta 'stupid,
bħal għaliex dan addizzjonali kumplessità sintattika
li ħafna nies ma jidhirx li jirrikonoxxu, x'inhu l-valur
ta 'tgeżwir dawk tliet linji ta 'kodiċi
fil funzjoni anonima b'dan il-mod.
Yeah.
>> Biex jiġi evitat kitba fuq a valur fil-[inaudible].
>> Eżattament, biex jevitaw kitba fuq varjabbli
fil-paġna eżistenti, id-dritt?
Facebook huwa kemmxejn presumptuously deċiż,
dawn qed tmur biex jużaw l- varjabbli E, huwa pjuttost probabbli
li inti jew xi ħadd li jużaw l Facebook bħal buttuna
jew kwalunkwe plug soċjali oħra
fl ikollu varjabbli x'imkien imsejħa E. Allura,
billi siġillar kollha tal-kodiċi tagħhom ġewwa
ta 'din il-funzjoni anonima, huma essenzjalment għandhom l-iskop tagħhom
li ma tirriskjax clobbering kwalunkwe varjabbli eżistenti.
Għalhekk, dan ukoll huwa attwalment paradigma komuni ħafna,
speċjalment meta tikteb kodiċi librerija
jew meta inti stess ma tixtieq li eki mhux mixtieqa l-ispazju isem tiegħek
ma 'varjabbli oħra li jridu li l-valur li jgħixu
u jmutu ladarba inti ħruġ li blokk ta 'kodiċi,
din hija teknika sbieħ fl JavaScript.
Kull dritt.
Allura, ewwel lejn dan l-eżempju hawnhekk, kollox aħna ghamilt fl-aħħar
ma 'dan l-eżempju huwa biss mnaddfa-kodiċi.
Għalhekk, huwa għadu ltqajna kollu mazz ta 'swiċċijiet, mazz sħiħ
ta 'kondizzjonijiet hawn, iżda avviż daqsxejn ta 'sintassi,
dan aċċessi l-node DOM ma ir-reġistrazzjoni ID unika,
il-mezzi ispazju tfittex issa għal dixxendent ta 'dik node,
jsibuha jekk huwa tat-tip input u mbagħad anke
jekk inti ma bbenefikawx dan qabel, inti tista 'taf
li dan ifisser biss isibu ma 'l-tag input,
l-elementi ta 'input li għandha attribut ta isem b'valur
ta 'email, u mbagħad ħalli me mewġa naħa tiegħi f'xi
tal-bqija mhuwiex dak kollu li jistimula
imma verament ftit jQuery sintassi għall-istess operazzjonijiet.
Kull dritt.
Imma dak li mhux daqshekk importanti hawnhekk hija l-għalf ġenb browser
iżda pjuttost il-fatt li aħna kellhom modi aktar nodfa u aktar nodfa
ta 'attwallment tagħmel dak ix-xogħol kodiċi.
Kull dritt.
Kwalunkwe mistoqsijiet?
[Rimarka inaudible]
OK. Issa l-parti gost.
Allura, node.js Għaliex?
Who cares?
X'taf ta 'llum?
Node.js, għaliex?
Henry [preżunt ortografija].
[Rimarka inaudible]
Battery reset?
Dak - dan huwa segmentazzjonijiet irdum perfetta
għall-aħħar nofs tal-lum.
Għaliex ma we go u tieħu waqfa 5 minuti hawn,
hemm nofs candy magna hemm jekk inti
bħal xi kandju mingħajr tqegħid kwart pulzieri