>> DAVID Malan: Nu labi.
Tas ir CS50, un tas ir nedēļas beigās deviņi.
Tas ir bijis viesulis vairāk pēdējo dienu laikā.
Un problēmu noteikti septiņi, ja jūs esat celis dziļi tajā, saprast, ka ir diezgan
bit kas jauns, kas ir tur.
Bet pieņemsim redzēt, ja mēs nevaram gabals viss kopā šeit īsumā
Pirms tam pagrieziens off vēl citā virzienā un redzēt
Kur vēl mēs varam aiziet.
>> Tātad līdz šim, mēs esam runājuši par HTML.
Mēs esam runājuši par CSS.
Mēs esam runājuši par PHP.
Jūs esat sākuši izjust SQL.
Šodien mēs runājam mazliet par JavaScript.
Bet kā visus šos atšķirīgi valodas fit kopā?
>> Tāpēc mēs runājām pagājušajā nedēļā par jēdziens ar serveri.
Tāpēc pieņemsim tikai zīmēt šo taisnstūri kā tīmekļa serveris šeit.
Un web serveri kalpo protams failus.
Un daži no šiem failiem var būt HTML failus.
Tātad viena no lietām, ka tīmekļa serveris var izspļaut varētu būt failu, kas
mēs vienkārši izdarīt, piemēram, šis satur kādu HTML.
Tāpēc lajs izteiksmē, ko tas HTML ļauj jums darīt?
>> Mērķauditorija: Page izskatās jauki.
>> DAVID Malan: OK, padara lapas izskatās jauki, lai gan es domāju, ka es esmu pierādījis
kas citādi.
Tāpēc HTML tas ļauj noteikt lapas out strukturāli, un tas ļauj
veida estētiski uzcenojums lapu, uzcenojums statisku saturu, lai jūs
tad var apskatīt to ar interneta pārlūku.
>> Bet tas ir galvenais.
Tas ir statisks saturu.
Jūs rakstāt, jūs to saglabāt, un tad kuģis to.
Un web serveri, tad kalpo to uz augšu, lai jūsu apmeklētājiem.
>> Bet mēs Stylize lietas, izmantojot atšķirīgas valodu vispār.
Mēs sākām izmantot stila atribūtu par dažiem tagiem.
Un stila atribūts ļaujiet mums noteikt lietas, piemēram, fonta lielumu un krāsu.
Un jūs, iespējams, sāka atklāt, vai arī jums drīz par galīgo
projekti potenciāli, vēl citi īpašības, ka jūs varat izmantot CSS.
Un tā lajs izteiksmē, ko tiešām tad tas CSS darīt?
Tie ir to tikai piemēri.
Kas tas ļauj jums darīt, ka HTML Nešķiet, ka no tā, ko
mēs esam redzējuši līdz šim?
>> Mērķauditorija: Definēt stilus pats.
>> DAVID Malan: Definēt stilus pats.
Tāpēc noteikt lietas, piemēram, klasēs, kā jums var būt radušās, vai unikāli
identificē mezglu dokumentā tā ka jūs varat Stylize viņiem.
Bet precīzāk, es teiktu, ka CSS tiešām ļauj veikt lietas
pēdējās jūdzes un ļauj norādīt daudz precīzāk estētika,
tā kā HTML lielākā daļa ļauj jūs struktūra jūsu lapas.
>> Un, lai gan ir daži nepildīšanu, kā mēs redzējām frāzi
pozīcijā tag, kas rupji runājot guvusi lietas liels un drosmīgs.
Tas ir diezgan vispārēju definīciju no tag - plašs un vērienīgs.
Kas fonta izmērs ir tas, ka?
Kādā krāsā tas ir?
Cik drosmīgs ir tas, ka?
Un CSS ļauj jums vairāk smalki melodija lietas, piemēram, ka.
Kā arī izkārtojumu, kā daži no jums ir redzējis.
>> Un godīgi sakot, CSS ir nedaudz no netīrs valodā.
Tas ir ļoti spēcīgs, ka jūs varat veikt burtiski jebkuru mājas lapu, kas jūs esat
tīmeklī redzams šodien ar to, bet tas ir sava veida sāpes kaklā.
Un daži no jums sasitu galvu pret sienu jau tikai darīt
kaut ko stulbu, piemēram, centra izvēlni Problēma noteikti septiņi, ja esat iepazinuši
šis punkts jau ir.
>> Bet saprast, šīs lietas saņemt vieglāk laikā.
Jūs sākat pamanīt modeļiem.
Un atkal, Google būs jūsu draugs par dažādiem veidiem, kā jūs varat
atrisināt šīs problēmas veida.
>> Un es uzdrošinos teikt ar CSS un HTML vairāk vispār, jūs varat atrisināt problēmas
daudz vairāk veidi, kas visi varētu ļoti labi būt pareizs, nekā jūs varētu
kaut kā C, pat Tagad PHP vai JavaScript.
Tur ir tikai daudz dažādu veidi, kā noteikt lietas.
>> Bet tas sāka iegūt netīrs, mēs teicām.
Tikko veida sajaukšanos savu HTML un jūsu CSS ar stila atribūtu bija
nedaudz apliets.
Un tā mēs tā vietā teica veida abstrakti runājot, ka jums vajadzētu
vismaz sākt faktors kādas ir jūsu CSS iespējams.
Nav jūsu stils atribūti, bet vismaz izmantot stilu tagu iekšā to, ko
daļa no mājas lapā?
>> Mērķauditorija: Head.
>> DAVID Malan: galvā.
Līdz šim mums bija tikai titulu augšu tur, bet jūs varat arī pievienot stilu
tag, un jūs varat nodot savu CSS rupji runājot pret lapas augšpusē.
Bet tad mēs ņēmām lietas vienu soli tālāk un mēs ņemt, ka vairāk
atsevišķā failā.
>> Un tāpēc šie divi faili bija kaut kā tagad ir saistīti.
Un tas patiešām bija tagu, kas to izdarīja.
Un kāda bija viens no ilgtspējīgas attīstības mērķa motivācija faktoringa mūsu CSS
viss vairāk?
>> Mērķauditorija: otrreizēja izmantošana.
>> DAVID Malan: otrreizēja izmantošana.
Tiesības?
Jums varētu būt redzējis p-set septiņas jau ka daudz lapām,
pērk lapas, pārdošanas lapas, portfolio lapa, iespējams, ir
strukturēta nedaudz līdzīgi.
Tur CS50 finanšu logo augšpusē ja esat nolēmis mainīt.
Tur kājenes pie apakšā lapas.
Un CSS ļauj tam faktors to ārā to atsevišķā failā tā, ka tad, ja
Jūs vēlaties kaut ko mainīt pasaulē pāri jūsu visu vietā, jūs tiešām var
vienkārši mainīt to vienā vietā.
>> Bet ir cena, ko maksāt, iespējams, pēc tam ņemt ārā
CSS no mana HTML faila atsevišķu failu atsauču to ar
tag, ko mēs redzējām pirmdien.
Kas varētu negatīvie ir tas?
Atceroties pirms nedēļas, kad mēs esam runājot par HTTP un TCP / IP, un, kā
internets darbojas.
Kaut kas vairāk nekā šeit?
>> Mērķauditorija: Tas aizņem vairāk laika.
>> DAVID Malan: Tas aizņem vairāk laika.
Kāpēc?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Jā.
Tāpēc tas varbūt aizņem mazliet vairāk laika.
Jo viens, CSS ir acīmredzami neatrodas vienā failā.
Tātad, tagad jums ir, lai ne viens, bet divi lūgumi.
Un katrs no šiem lūgumiem, kā mēs redzējām Chrome tā saukto inspektors,
un mēs paskatījās tab tīklu, katrs no šiem failiem ir nepieciešama viena HTTP
Pieprasījumu, ko mēs redzējām notiek daži daudz laika.
Tagad, varbūt tas nav daudz.
Varbūt tas ir tikai 20 milisekundes.
Varbūt tas ir 200 milisekundes.
>> Bet domāju par lapu, piemēram, Facebook, vai CNN vai Google, kas ir daudz
lielāks nekā piemēriem mēs esam paskatījās līdz šim.
Šīs lapas varētu būt desmitiem failu, no kuriem katrs var būt nepieciešama
lejupielādēt no failu.
Tātad lietas var potenciāli sāk palēnināties.
>> Un jo īpaši šajās dienās, kad mēs visi ir mobilie tālruņi mūsu kabatās un
lēnāku interneta pieslēgumu, ņemot pagaidiet vēl pāris milisekundes, maz
vairāk milisekundes par papildu failus faktiski var būt lēna.
Latentuma ir vārds, kas apraksta veida gaida, ka jums ir, ka jūs
pieredzi, kad gaida daži gabals informāciju.
>> Bet ir otrādi.
Tāpēc tas vēl nav viss veida -
tas tiešām ir mazliet rampa šeit.
Negatīviem tagad, bet to, kas pārlūki var darīt ja tie ir smart, lai izvairītos no
kam lūgt to pašu styles.css failu atkal var darīt?
>> Cache to.
Tā caching -
C-A-C-H-E -
parasti ir šeit tikai, lai saglabātu failu jums lūdza pirmo reizi, un
Pēc tam pārbaudiet savu kešatmiņu par to.
Pārbaudiet, vai esat veida uzglabāšanas konteiners, un, ja jums jau ir
kopiju styles.css, pat tad, ja kāds cits lapa p-komplekts, vai jebkurā mājas lapā,
pieprasa to vēlreiz, tikai, lai dotu lietotājs, kas pats saglabātā kopija.
Nelietojiet apnikt, kas to pieprasa.
>> Negatīviem tur, lai gan, kā daži no jums ir paklupu pār p-komplektu.
Ja jūs veicat izmaiņas uz servera, un doties atpakaļ uz pārlūku, un jūs
pārlādēt, dažreiz pārlūks jums labu, un nav apnikt
atkārtoti lejupielādējot savu styles.css fails tāpēc, come on, kādas ir izredzes
ka šie stili, Facebook izmanto gatavojas mainīt katru stundu vai
dienas līdz dienai?
Tas ir diezgan zems.
Tie laika gaitā var mainīties, bet ne ar minūtē vai stundu.
>> Tātad triks, tikai FYI, veicot mājas attīstība, bieži turiet
taustiņu Shift piemēram, un pēc tam noklikšķiniet pārlādēt jūsu pārlūkprogrammā, un tas būs
parasti pateikt pārlūka pārlādēt viss, pat ja jums jau ir
tas kešatmiņā.
Tātad vēlreiz, upsides un downsides, bet visi no tiem
galu galā dizains lēmumus.
>> Tāpēc tagad, mēs neesam tikai beigtu stāsts šeit.
Ja es tagad iet atpakaļ un atpakaļ un atpakaļ un atpakaļ, mēs sākām ieviest ne tikai
HTML, bet PHP.
Tāpēc lajs izteiksmē, ko tas PHP darīsim?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Kas tas ir?
>> Mērķauditorija: Ieviest loģiku uz kodu.
>> DAVID Malan: Jā, iepazīstināt loģika jūsu kodu.
Tātad, tas ir taisnība, programmēšanas valodu ar cilpas, un mainīgie, un
funkcijas, un nosacījumus, kā arī visus lietas, ko mēs esam, izmantojot ceļu atpakaļ
ja kopš nulles.
Un PHP, mēs esam redzējuši, var izmantot nu komandrindas - tas
nav nekāda sakara ar internetu, pat ja tas ir
tiešām tās izcelsmi un to, ko tā ir tendence būt labi un veicina -
bet jūs varat izmantot PHP vienkārši pēc būtības par to, ka tā ir print ()
funkcija, un printf () funkciju, vai echo () funkciju.
Ir ķekarus no veidiem, kā jūs var drukāt tekstu ar PHP.
>> Tāpēc, jūs varat izmantot šo programmu, valoda, lai produkciju tieši
ko mēs runājām par agrāk.
Jūs varat dinamiski ģenerēt jūsu HTML.
Varbūt ne visi no tā.
Varbūt jums grūti kods lietām, piemēram, galvenes un kājenes, un logotipu,
un jūsu stilu lapas, un tas viss.
Bet kaut kā p-noteikti septiņi, kur jūs manipulējot krājumus un
parādot lietotāja portfeli, kas ir būs dinamiski mainīt, jūs varētu
droši izmantot PHP un loģiku tas dod jūs kā programmēšanas valodas
izeja dinamiski apakšgrupās lapas.
>> Tātad, ja jūs runājat par dinamisku tīmekļa vietnes, vai web programmēšana, kas ir
ko jūs īsti runājam.
Izmantojot valodu, piemēram, PHP, vai lietas sauc par Python vai Ruby, vai Java, vai
vēl citas valodas, lai vaicājumu datu bāzi bieži vai citu serveri, un
Tad dinamiski izspļaut HTML.
>> Tagad gala rezultāts, jo malā, ir ka HTML lielākā daļa tīmekļa vietņu,
ieskaitot jūsu p iestatīt septiņus, ir iespējams būs milzīgs haoss, ja
paskatās avota kods pārlūkprogrammā.
Tas nav liels darījumu.
Šajā brīdī, kad mēs rūpējamies par stils, mēs rūpējamies par
stuff, ka jums rakstīt.
Mums nebūs rūp sīkumi ka tas, ko jūsu kods izejas.
Tāpēc nav jāuztraucas par to ieloka šeit, ja tas ir PHP, kas ir
faktiski outputting sīkumi.
Galu galā, pārlūkprogramma vienalga, un cilvēku nebūs meklē
pie avota anyway.
Mēs darbinieki, piemēram, būtu meklē jūsu PHP.
>> Tātad, ļaujiet man sniegt īsu piemēru tagad kāpēc cits tas varētu būt noderīgi.
Tāpēc godīgi sakot, es nevaru atcerēties pēdējo reizi reizi, kad es izmantoti C, lai atrisinātu problēmu
reālo pasauli.
Tas bija iespējams, absolvents skolā, kad Man vajadzēja izmantot valodu, kas
bija diezgan zemā līmenī, un deva man iespēja darīt kaut ko ļoti augstu
veic, lai patiešām ietaupīt tik daudz CPU cikli, kā es varētu, lielā mērā
jo man bija, izmantojot milzīgs datu kopas, un katru CPU ciklu skaitītas.
Un godīgi sakot, pat lietas, piemēram, telefoniem šajās dienās, un citas ierīces
ja jums nav gluži tik daudz atmiņu un jums nav gluži tik
daudz CPU, izmantojot ātrāku valodas joprojām ir pievilcīgi.
>> Bet reālajā pasaulē, ja jūs vienkārši gribu mest kādu programmu kopā
analizēt dažus datus, vai arī jūs esat savākti viss ķekars reģistrāciju par
dažas studentu grupas, un jūs vēlaties, lai ļoti ātri automatizēt sūtīt e-pastus
pa vienam ar katru no tiem reģistrētājiem, jūs gatavojas sasniegt
augstāka līmeņa valoda nekā C tā runāt.
Kaut kas līdzīgs PHP vai Python vai Ruby, vai puse duci citi, kas pastāv
šajās dienās.
Bet tie trīs ir iespējams visvairāk moderns tieši tagad.
>> Un ko tas nozīmē, ka jūs varat atvērt up teksta redaktoru, piemēram, gedit vai
vairums kaut kas cits, un tad sāciet rakstot kodu, neraizējoties
par apkopojot, bez tiešām jāuztraucas par atmiņas vadību,
paturot prātā arī, ka nedaudz sloppiness galu galā nāk atpakaļ
kodums jums, ja datu kopa izpaužas lielāki vai problēma kļūst liels.
Bet ko tas nozīmē mums ir šāds.
>> Ļaujiet man iet uz priekšu un palaist Speller No problēma noteikti seši.
Tātad šis ir mans trie bāzes ieviešana ka es izmantoti lielā
board kur es veikts ne tik labi.
Mēs būsim atpakaļ nedēļas laikā un pārskatīt tiem, kuri galu galā atop
Liels board mūsu pēdējā lekcijā.
Bet tagad, ļaujiet man iet uz priekšu un vienkārši palaist savu risinājumu tekstu, un mēs darīsim
King James Bible, un šeit mēs iet.
>> Tātad tie ir visi it nepareizi uzrakstītus vārdus no
King James Bible.
Un mans īstenošana notika pussekundi kopumā.
Tāpēc ne pārāk slikti par šo īpaši datoru.
Bet domā par to, cik daudz kods man bija rakstīt.
Domāju, cik daudz kodu, jums bija rakstīt.
Domāju, cik stundas jūs pavadīts D-zālē vai jūsu kopmītnes vai kur
faktiski kodēšanas up šo risinājumu.
>> Nu, ja man tiešām ir augstāks valodas, piemēram, PHP, ņem vērā
ko es varu darīt šeit.
Pirmkārt, pieņemsim, ka tas ir vietā Jūsu izplatīšanas kodu.
Šis ir fails ar nosaukumu Pareizrakstības.
Tā ir pieejama kā daļa no šodienas sadales kodu.
Un es esmu gatavojas vilnis savu roku pie visvairāk detaļas, bet tas ir faktiski
Interesants piemērs tam, kā Jūs varētu port valodu
piemēram, C salīdzinājumā ar PHP.
Es burtiski atvēra divas teksta logus, viens ar manu C versiju speller.c,
un es tikko sāku tulkojot to my dodies uz PHP, un ierakstot to, izmantojot
vislīdzvērtīgākajām funkcijas.
>> Tātad, daži no šiem lietām ir atšķirīgi.
Mēs redzējām pēdējo reizi, ka PHP neizmanto ietver diezgan pašā veidā.
Tas izmanto prasa parasti, lai gan ietver eksistē.
Definēt ir nedaudz atšķiras no # Define C, bet tas ir
kā mēs ar konstanti.
$ Argc izrādās pastāv PHP, tāpēc mēs esam redzējuši, ka pirms tam.
Šie ir tikai mainīgie, visi kas sākas ar dolāra zīmes.
Atgādināt tie ir tikai ķekars ar peldošo punktu.
>> Tik garš stāsts īss, jūs esat laipni aicināti uzsist pa šo, ja interese, tas ir
gandrīz line-for-line pārveidošana C versija speller.c uz PHP.
Un jūs varētu darīt to vēlreiz pusducis citās valodās.
>> Bet kas ir interesanti tas ir.
Vai to, kas ir atklāti neizcēlās tas ir.
Ļaujiet man iet uz priekšu un rakstīt par dictionary.php, un apgalvo, ka es esmu
gatavojas iet uz priekšu, un atkārtoti ieviest Problēma noteikti seši šeit.
>> Tāpēc pieņemsim iesaku vispirms šajā fails, kas tiks īstenoti
PHP, tāpēc ļaujiet man atvērt savus tagus, piemēram, ka.
Ļaujiet man sniegt sevi globālā mainīgais, $ size kļūst nulle.
Un es esmu gatavojas sniegt pats hash tabulu.
Es izmantot hash tabulu šī lieta.
Kā es varu paziņot, hash tabulu PHP?
Darīts.
OK.
>> Tik atvērta kronšteins tuvu konsole ir ko PHP, kā mēs esam redzējuši?
Masīvs, bet masīvs, kas varētu ir asociatīvā masīva.
Asociatīvā masīva ir datu struktūra, kas
saista atslēgas ar vērtībām.
>> Tagad vienkāršākais skaitliski indeksētas masīvs, šie taustiņi ir tas, ko?
Nulle, viens, divi, trīs, labi?
Old school sīkumi atpakaļ no C, bet to var arī virknes, piemēram, foo un bāru,
vai Maxwell, vai jebkura šāda virkne.
Lai es varētu piesaistīt, ka tikai brīdi.
>> Ļaujiet man iet uz priekšu un atzīt funkcija, piemēram, -
Darīsim slodzi () pirmās.
Tā funkcija slodze ().
Un PHP ir nedaudz atšķiras ar to, ka Jūs burtiski tipa funkciju, bet
nerakstiet atgriešanās veidu.
Es iešu uz priekšu un saka, ka slodze () funkcija ir veikt
argumentu $ vārdnīca, tikai tāpat kā C versijā darīja.
Es esmu darot to no atmiņas.
>> Un es ierosinu, ka es esmu gatavojas to darīt.
Es esmu tikai gatavojas darīt foreach.
Es esmu gatavojas, lai izsauktu funkciju sauc failu (), kas iet ar nosaukumu, kas
fails, kas ir mainīgs $ Vārdnīca kā $ vārdu.
Un tad iekšā manā cilpa šeit, es esmu gatavojas iet uz priekšu un uzglabāt manā
$ Tabula, $ vārds izpaužas taisnība.
Darīts.
Ak, pagaidiet.
Darīts.
Labi.
>> Tas ir slodze () funkcija saka PHP.
Tagad, kāpēc šo darbu?
Un es esmu veida krāpšanos šeit.
>> Tātad, viens, foreach mēs redzējām īsi pēdējo reizi.
Tas tikai nozīmē, ka jūs varat atkārtot vairāk masīvs bez apgrūtinošas ar i
un n un plus plus, un visi no ka.
Vārdnīca ir, protams, faila nosaukumu, kaut kas līdzīgs liels vai mazs, divas
vārdnīcas mēs izmantojām pēdējo reizi.
Fails ir funkcija, kas paver tekstu failu, nolasa to pozīcijai, un
rokas jums atpakaļ milzīgs masīvs, katrs no kuras elementi ir
līnija no šī faila.
Tātad tas ir kombinācija fopen, un fread, un kamēr cilpa, un fclose,
un tas viss.
Visbeidzot, kā vārds nozīmē tikai to, ka tas mainīgo Es esmu nāksies piekļūt
par katru atkārtojuma šīs cilpas.
>> Tātad, īsi sakot, šis viens laineris šeit nozīmē atvērt failu, kura nosaukums ir
vārdnīca, mainīgs, atkārtot vairāk tā pozīcijai, un katru reizi, kad jūs saņemsiet
līnija, veikalā mainīgo sauc vārdu, un tad kaut ko darīt ar vārdu.
Ko es gribu darīt?
Es gribu, lai vārdu manā hash tabulu.
>> Nu, es varu kaut ko manā hash tabulu tāpat kā C
Izmantojot kvadrātiekavas.
Tas ir nosaukums mana hash tabulu.
Es esmu gatavojas indekss par ka hash tabula šajā vietā.
Tātad nav kronšteins nulle, nevis kronšteins vienu.
Bracket quote likt pēdiņas beigās kaut ko, kāds tas vārds ir.
Un, tāpat kā jūs varētu būt jūsu hash tabulu darbu Trie, jūs vienkārši glabāt
efektīvi Būla, netieši vai skaidri.
Darīts.
Es esmu uzglabātu vērtību taisnība.
>> Tagad tur ir pāris lietas Es esmu griešana stūriem šeit.
Tehniski, tur būs kaitinošas jauns līnija, / n, beigās
katrs no šiem vārdiem.
Tāpēc es būtu iespējams zvanīt PHP funkciju sauc karbonāde (), kas
gluži burtiski karbonāde, ka off.
Un man tiešām ir nepieciešams, lai darīt vienu citu lietu.
Es būtu iespējams pieauguma lielums par katru atkārtojuma, tāpēc es esmu, lai sekotu
visā pasaulē par to, kas tas ir.
Un atklāti, un tas ir viens no stulbākai aspektiem PHP, ja jūs esat
izmantojot globālo mainīgo, jums ir nepieciešams skaidri teikt, ka jūs esat.
Tāpēc es esmu gatavojas, lai faktiski rakstīt pasaules $ Size, pasaules $ galda, un tagad
mana funkcija ir pabeigta.
>> Tā nav tik vienkārši, kā iepriekš, bet , iespējams, bija mazāk laika nekā C
versija, varbūt?
Labi.
>> Tātad tagad darīsim pārbaudi () funkciju.
Let 's redzēt, ja tas vismaz bija stundas beigās, ka tā ir ņēmusi mūs C. Tātad
ļaujiet man iet uz priekšu un paziņot pārbaudīt, kā funkcija.
Stājas argumetnu vārdu, kas ir nāks no Speller.
Un es esmu tikai gatavojas, lai pārbaudītu, vai pēc mainīgu isset, galda
kronšteins strtolower no vārda -
pieņemsim līdzsvaru visiem maniem iekavās -
tad atgriezties true.
Pārējais -
tas bija tiešām grūti daļa no šīs programmas.
Else, atgriezties viltus.
Darīts.
Tas ir pārbaude ().
>> Tagad, kāpēc šo darbu?
Nu, es pieņemts vārdu, kas ir virkne.
Divi, es esmu pārbaudīt iekšpusē hash galds, kurš sauc $ tabulu.
Es esmu liekot to uz mazajiem burtiem, zvanot funkcija diezgan līdzīgs tolower () in
C, bet tas visu vārdu, ne vienu rakstzīmi.
Un, ja tas ir noteikts, citiem vārdiem sakot, ir vērtība, kas, citiem vārdiem sakot,
ja tā ir taisnība, tad jā, tas ir vārds.
Jo man likt to tur ar slodzi ().
Un, ja ne, es esmu gatavojas atgriezties viltus.
>> Tagad citi ir viegli.
Funkcija izmērs (), kā es varu darīt?
Es būtībā darīt atgriezties $ lielumu.
Bet man ir tehniski nepieciešams darīt šo kaitinošas lieta.
Un faktiski up dzirdēt, man bija griešana vienā stūrī pārāk daudz.
Es tiešām ir nepieciešams darīt globālo $ tabulu.
>> Bet ka to teica, izkraut).
Izkraut () ir pārsteidzošs.
Funkcija izkraut ().
Kā es gribu, lai īstenotu izkraut ()?
Darīts.
Labi.
>> Tātad izkraut (), atmiņas vadība ir pilnīgi rūpēsies par jums
piemēram, PHP kaut ko, un daudz uz augstāka līmeņa valodām.
Tātad, tas ir pārsteidzošs.
Tāpat kā, kāpēc ellē mēs pavadījām pagātnē astoņas plus nedēļas C rakstiski
acīmredzot ļoti lēni, tiešām laiks patērē problēmas ar desmitiem stundu
no darba saskaņā ar mūsu drošības jostas?
>> Nu, viena lieta, tas var strādāt sods par mazām programmām.
Tas, protams, paātrinājusies manu izstrādes laiku.
Bet pieņemsim redzēt, kas notiek reālajā pasaulē.
>> Ļaujiet man iedziļināties šajā direktorijā termināļa logā.
Tur Pareizrakstības.
Un paziņojums, kā malā, un jūs varētu ir saskārušās ar šo problemātisko komplektu
sešiem vai problēma noteikti septiņi.
Jums nav obligāti jābūt uz galu PHP failus. php.
Ja jūs nodot līniju, piemēram, ka pirmā vietā pašā augšā, kas ir īpaša līnija
sintakses, kas būtībā nozīmē atrast programmu, ko sauc PHP, un izmantot to, lai
interpretēt šo failu.
Tāpēc tagad neviens īsti nezina, kas Es skrienu PHP programmu.
Es varu palaist to tāpat, it kā tas bija kaut kas apkopoti C.
>> Bet šeit ir lieta.
Patiesībā, pieņemsim darīt atkal.
Dropbox/pset6 /.
Tur Pareizrakstības.
Labi, 0.44 sekundes.
Tas ieguva ātrāk šo laiku.
>> Tagad iesim uz PHP versiju.
Nice touch.
Bet tikai domāju, cik daudz laika Es saglabāts darba laika.
Labi.
>> Tātad 3.59 sekundēm, kas faktiski neizklausās precīzs, vai nu.
Bet tas ir tāpēc, ka garš stāsts īss, kad jūs izdrukāt milzīgu
stuff uz ekrāna, ka pati palēnina lietas leju.
Ko tas īsti ieņēma CPU Ierīce bija 3.59 sekundes, kas
pretstatā C, kas notika 0.44 sekundes pavisam nesen.
Tas ir patiesi kārtība lielumu atšķirīgs.
>> Tātad, ja ir tā, ka cena, kas nāk no?
Kāpēc tas ir tik daudz lēnāk?
Kāpēc PHP veikt tik slikti?
Danielle?
>> Mērķauditorija: Tu īsti izmantot hash tabulu.
>> DAVID Malan: man nav īsti izmantot hash tabulu.
Tāpēc es veida darīju.
Tātad, tas ir asociatīvā masīva.
Visticamāk, ja cilvēki PHP ir tiešām gudri, viņi izmanto zem
hood faktiskais hash tabulu īstenoti kaut kā C vai C + +.
Bet.
Jā.
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Jā.
Tāpēc katra no funkcijām es uzrakstīju tagad - patiesībā, jūs varat teikt, ka vēlreiz
mazliet skaļāk?
>> Mērķauditorija: Katrs no funkcijām, kas Jums iekļauts ir daudz vairāk pilnīgu
jauda nekā -
>> DAVID Malan: Tātad, tas ir ļoti patiess.
Tur ir daudz vairāk virs galvas, ka mēs esam nav īsti redzēt, koncentrējoties tikai uz
dictionary.php, ko es tikko rakstīja.
Turpretī, tur ir vesela tulks iet fonā.
Patiesi, kad es ilga šo programmu, Tika nedarbojas apkopoti nullēm un tiem
paredzēti manu Intel CPU.
Drīzāk, tas darbojas pozīcijai PHP kodu, kas izskatās tieši
kā mēs drukāti tā.
Un tā, ja jūs izmantojat interpretē valodas, jūs
tiešām maksāt šo cenu.
Tas ir gatavojas veikt kādu laiku, lai lasītu Jūsu fails augšas uz leju, pa kreisi, lai
pa labi, un pēc tam izpildīt katru līnijas atkal un atkal.
>> Tagad patiesībā, jo īpaši internetā, Jūs faktiski var paātrināt šo procesu
ar caching ar rezultātiem PHP kods tiek interpretēts.
Un tas ir jēga tīmeklī, jo Ja jums nav viens lietotājs, piemēram,
man šeit, bet 1000 vai 10000 lietotāju, tad varbūt pirmo reizi fails
apskatīta tas ir lēns, bet pēc tam tas ir daudz ātrāks.
>> Bet tas arī, atkal, ir tirdzniecības off.
Un kaut ko līdzīgu pētījumu datiem noteikt, vai pat kaut ko lielu, piemēram,
Tas, lietotāji tiks galā sāk justies, ka palēnināšanos.
>> Tātad īsumā, interpretē valodas ļoti modē, ir ļoti populāri, un
godīgi sakot, iespējams, valodas, vajadzētu sasniegt, risinot problēmas
pēc CS50.
Bet saprast, cik daudz jūs tiešām ņemot par pašsaprotamu zem pārsega
tiešām šie pēdējo vairākas nedēļas hash tabulas, kā arī koki, un cenšas,
, kas tiek izmantoti, galu galā, lai faktiski īstenot lietas, piemēram, atklātā grupā,
kvadrātiekavas, ko mēs varam tagad pateicību par pašsaprotamu.
>> Tātad, pieņemsim to apskatīt tagad šajā tīmekļa kontekstā.
Un es teicu pēdējo reizi, ka tur ir ķekars superglobālajiem masīviem PHP, kas
nav īsti būtiski pie komandrindas.
Viņi vairāk attiecas kontekstā Izmantot PHP web kontekstā.
Tā darbojas PHP web serveri, lai lai radītu lietas, piemēram, HTML.
>> Un mēs paskatījās $ _GET un $ _POST, un tas ir, ja automātiski lietotāju
ievades nonāks vienkārši, ja jūs iesniedzat veido uz failu beidzas. php uz web
servera, piemēram, iekārtas.
Bet pieņemsim skatīties īsumā $ _COOKIE Un $ _SESSION.
>> Lajs izteiksmē, kas ir cookie, jo jūs saprotat to kontekstā
izmantojot interneta?
>> Mērķauditorija: failu datorā.
>> DAVID Malan: Jā.
Tā ir failu uz lietotāja datora apstādīta ar kādu citu vietni
jūs notikt apmeklēt.
Tātad, kad jūs iet uz Facebook, ja jūs iet līdz bankofamerica.com, kad jūs iet
uz google.com, kad jūs iet uz gandrīz jebkuru mājas pasaulē šajās dienās,
ieskaitot cs50.net, cookie tiek stādīti datorā, kas ir
nu vērtību uzglabā RAM jūsu dators jūsu pārlūka atmiņā vai
dažreiz tiešām fails glabājas uz jūsu cietā diska.
>> Un to, kas parasti glabājas šajā failā nav jūsu lietotāja vārds, kas nav jūsu
parole, parasti nav kaut kas jutīga, ja mājas lapā nav tik
labi ar savu drošību, bet gan tas ir liels unikāls identifikators vidū
citas lietas.
Tas ir liels izlases numuru stādīti uz jūsu datoru, bet jūs varat iedomāties, kā
veida virtuālo roku zīmogs, kā no klubu vai kādu atrakciju parks, kas
pieļauj darbinieki, īpašnieki, kas serviss, atcerēties, kas jūs esat.
Tātad, ja liels izlases skaits ir līdzīgs 12345678, lai gan tas, protams,
ne pārāk nejauši, domāju, ka rokas zīmogu, ka tad, kad jūs apmeklējat
facebook.com pirmo reizi, tie zīmogs šo numuru no jūsu puses.
Un tad tāpēc, ka tu runā HTTP, jūs ir pārlūku, un tāpēc, ka Facebook
protams, runā pats par web serveris, protokols HTTP saka, ka
jebkurā laikā pēc tam apmeklēt facebook.com, vai tas ir otrais
vēlāk, stundu vēlāk, pat nākamajā dienā, tik ilgi, kamēr jums nav skaidri
atteicies, kas efektīvi ir, piemēram, mazgājot rokas.
HTTP saka, jums vajadzētu iesniegt savu rokas zīmogs katru reizi, kad
atgriezties šajā mājas lapā.
>> Kas Facebook, tad tas ir viņi apskatīt šo rokas zīmogu un
viņi saka, oh, 123456789.
Es nezinu, no pirmā acu uzmetiena, ka šis ir David Malan Cambridge,
Massachusetts, bet viņi var pārbaudīt savu datu bāzes un teikt, ak, persona
kuras datora mēs apstādīta 123456789 ir David Malan no Cambridge,
Massachusetts.
Parādīsim, ka lietotājs, tad viņa profilu lapa vai viņa News Feed.
>> Bet tur ir problēma, ja tas ir kā web patiešām darbojas.
Pieņemsim apskatīt ātri piemērs.
Let 's tiešām iet teikt facebook.com.
Taču, pirms mēs varētu iet tur, lai man iet uz priekšu un atvērt Chrome
Inspektors leju šeit.
Ļaujiet man apskatīt tab tīkla.
Un tagad iesim uz priekšu un ierakstiet in https://facebook.com.
Un es daru, ka tā, ka mēs neredzam visus šos redirects un atkritumu
laiku meklē caur tiem.
Ļaujiet man hit ienākt.
>> Labi.
Mēs redzam visu ķekars pieprasījumu.
Tur nāk Facebook.
Tur viss ķekars failus.
Un šeit, uz manu pieminēt latentuma pēdējo reizi, tas ir,
daudz HTTP pieprasījumus.
Bet pirmais ir iespējams Visbiežāk interesanti.
>> Tāpēc pieņemsim ritiniet uz leju šeit, un Es tuvinātu sekundē.
Tas būs sava veida haoss, bet paskatīsimies.
Facebook sūta mums Visa ķekars stuff.
>> Bet paga, interesanti.
Viņi stādīšanas nevis vienu, bet četras rokas zīmogi uz manu roku šeit.
Set-cookie, Set-cookie, set-cookie, set-cookie.
Un tur ir dažas iezīmes šeit.
Visi no tiem minēt dažus veida termiņa beigām.
Un izskatās, ka Facebook cer atcerēties mani līdz 2015.
Tātad, tas ir iespējams, laiku, līdz kuram Man ir iziet vai tie būs vienkārši
automātiski pieņemt, es esmu nav nāk atpakaļ.
Tātad, tas ir tiešām pienācīgas laika sprīdī.
>> Un tur ir daži citi lietas notiek šeit.
Šis cookie, šķiet, ir piespiedu kārtā svītrots, sakot, tas beidzās 1970
Pirms cookies pastāvēja.
Tāpēc pārlūks ir tikai gatavojas pieņemt OK, tas ir tāpat kā
Mazgājot rokas zīmogu.
>> Bet tagad, kad mana pārlūkprogramma veic turpmākais pieprasījums -
ļaujiet man iet uz priekšu un darīt to atkal un pārlādētu.
Tagad ļaujiet man ritināt atpakaļ top pieprasījumu un iet uz leju
Šeit var pieprasīt galvenes.
Paziņojums šo.
Tāpēc tagad es esmu ar ne atbildes galvenes, bet paziņojums tā saka pieprasījuma galvenes.
Un paziņojums, ka mana pārlūkprogramma ir daļa no tā lūgums pēc hitting pārlādēt ir
nosūta vismaz šādu informāciju.
Nav noteikts, cookie, bet cookie.
Tāpēc tas ir līnija, HTTP galvenes, lai runāt, kur mans pārlūks ir sava
un bez manas nezinot to iesniedzot mana roka Facebook pārbaudi.
>> Tāpēc šie cepumi var būt izmantots, tad par ko?
Atcerēties, kas jūs esat, un atceros, kā daudzas reizes esat bijis tur, vai
tiešām kaut kas.
>> Tātad, šeit ir counter.php.
Un ļaujiet man tuvinātu fontu.
Un katru reizi, kad es pārlādēt šo lapu, paziņojumu tas ir atcerēties, cik reizes
Es esmu bijis tur.
Nu, tas nav tik iespaidīgs.
Pieņemsim tikai aizvērt šo cilni, un tagad iesim atpakaļ uz
http://localhost/counter.php.
>> Ak, tas ir interesanti.
Tas joprojām atceras, pat lai gan es slēgts cilni.
Un, godīgi sakot, ja es aizvērtu pārlūku, ja īsteno pareizi, es
varētu vēl atceras, ka šim lietotājam kas viņš vai viņa bija pirmā reize, un
tikai tad, kad es iet uz Chrome izvēlnē, kas nekā šeit ir šeit, un dodieties uz
Vēsturi, un noklikšķiniet uz Notīrīt pārlūkošanas datus, kā daži no jums var būt
pagātnes, tikai tad jūsu cookies faktiski svītro tīmeklī laikā
attīstība.
>> Tātad, ja mēs ejam -
pieņemsim slēgt gedit šeit.
Un, ja mēs tagad iet uz šo failu.
Ļaujiet man iet uz mūsu vhosts / localhost / valsts, un ļaujiet man darīt
counter.php.
Ievērojiet, ka tas ir diezgan vienkāršu programmu.
Tas ir diezgan vienkārša mājas lapa.
>> Tāpēc top faila ir tikai komentāri.
Bet šeit ir jauna līnija, ko var esmu redzējis jau p-komplekts septiņi,
session_start ().
Tas ir līnija PHP kodu, būtībā stāsta web serveri, padara
Noteikti zīmogs rokas un padarīt Pārliecinieties, lai pārbaudītu roku zīmogiem.
Tas ir viss, ka līnijas nav, un tas dara visu šo procesu mums.
Tad ievērosiet, es tikko saņēmu divas filiāles šeit.
Ja skaitītājs galvenais iekšpusē šo īpašu globālo mainīgo sauc
$ _SESSION Ir noteikts - citiem vārdiem sakot, ja tur ir dažas vērtība, kas tur -
pieņemsim iegūt un uzglabāt to vietējās mainīgais sauc $ skaitītājs.
Else, pieņemsim piešķirt $ skaitītājs noklusējuma vērtība ir 0.
>> Tagad šeit ir viens aspekts, PHP, kas ir gan svētība un lāsts.
PHP ir nedaudz apliets.
Tādējādi, kaut arī C, kāda būtu joma letes ir
nu šeit vai šeit?
>> Tas būtu bijis tikai šiem cirtaini lencēm.
Guess what?
PHP, tā pastāv arī ārpus tiem, cirtaini bikšturi, šeit un šeit,
un šeit, un šeit, un pat zemāk.
Tāpēc es saku, tas ir svētība nozīmē ka jums nav jādomā par
grūti, kā mēs to darījām pirms nedēļas.
Bet tas ir arī mazliet par lāstu, kas vienalga, kur jūs izmantojat mainīgais
PHP, vismaz programmā, piemēram, tas, tas ir pasaulē pieejamu
labāk vai sliktāk.
Tātad jums ir jāpatur prātā, ka šobrīd Jūsu mainīgie nedrīkst undefined.
Jūs, iespējams, ir definējušas tos citur.
>> Bet to, ko es esmu gatavojas darīt, galu galā?
Es esmu gatavojas glabāt iekšpusē, ka globālā mainīgais kā vērtību
counter ievadīt rezultātu darot skaitītāju plus 1.
Tāpēc tas ir tikai aritmētisks kas dara
incrementation šīs letes.
Un fakts, ka es esmu uzglabājot, ka vērtība atpakaļ šeit ir nozīmē
būtiski atjaunināt datu bāzi, lai atcerieties, ka lietotājs 123456789 ir
šeit divas reizes.
Un, kad es to darīt atkal, kad nākamreiz es pārlādēt lapu, tas notiek, lai pārbaudītu
mana roka zīmogu un teikt, ak, lietotājs 123456789 tagad ir
Šeit ir trīs reizes.
>> Un tā kādus PHP un tamlīdzīgi valodā dara, lai mums ir, tie ir doti
, kā un kur un cik ilgi uzglabāt vērtības šo īpašo
superglobal.
Un tas superglobal nākamreiz es apmeklējiet lapa ir sava veida maģiski
pirms apdzīvota, piepildīta ar vērtībām, kas tur bija pēdējo reizi esat apmeklējis,
vai kas bija otrais atpakaļ, nedēļa pirms, vai 2013.gadā, un mēs tagad runājam
par 2015.
PHP un web serveri rūpēties par visu, kas jums.
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Mainīgie PHP ir būtībā vienmēr ir globāla, ja vien jūs
deklarēt tos iekšpusē funkciju, un tad viņi ir vietējā
funkcija tikai.
Bet tāpēc, ka es esmu nav rakstīts kādu funkcijas, tagad tie ir efektīvi
Pasaules visā manā visiem lietas materiāliem šeit.
>> Mērķauditorija: Vai ir veids, kā lai padarītu tos vietējiem?
>> DAVID Malan: Vai ir kāds veids, kā padarīt tos vietējiem?
Tikai ietīšana tos funkcijām.
Kas jaunāko versiju PHP, jūs varat darīt to ar
anonīma funkcija.
Bet vairāk par ka konteksts JavaScript.
Bet īsā atbilde ir nē.
Ilgāk atbilde ir jā.
Nice.
Laba viktorīna jautājums.
Labi.
>> Tātad visbeidzot, lapa pati par sevi ir faktiski ir diezgan vienkārši.
Ievērojiet, ka tad, kad es izeju PHP režīma, atgādināt ka visu šo stuff leju
Turpmāk ir tikai gatavojas saņemt iespļaut veic izejvielas uz pārlūku.
Kas ir labi, jo es vēlos, lai nosūtītu lietotājs dažas HTML, bet es vēlos
lai dinamiski atjauninātu šo HTML.
Un viens veids, kā es varu darīt, ir, lai sakārtotu ļoti ātri piliens atpakaļ uz PHP
režīmā, izmanto atvērtā Bracket jautājuma zīme vienādības zīme, un pēc tam izejas vērtība
no letes.
>> Vai, ja tas izskatās mazliet noslēpumains, tas vienādības zīmi faktiski ir tikai daži
sintaktisko cukura šim printf ($ skaitītājs).
Bet atklāti sakot, tas ir tikai nedaudz neglīts un mazliet kaitinošas rakstīt.
Tātad PHP ļoti labi piedāvā šo funkciju kur jūs varat vienkārši pateikt to vairāk
īsi tādā pašā veidā.
>> Tātad, kas notiek zem kapuci?
Pieņemsim ātri apskatīt tīkla tab šeit counter.php.
Un ļaujiet man iet uz priekšu, un pirmais pieņemsim, izdzēsiet savas sīkdatnes.
Let 's skaidrs pārlūkošanas datus kopš sākuma laiku.
Tagad iesim atpakaļ vairāk nekā šeit.
Tagad pārlādēt lapu.
Un es esmu atpakaļ pie nulles.
Tāpēc, ka mana roka zīmogs ir mazgāti, Man tagad saņemt jaunu cookie.
>> Patiešām, ja es paskatos uz cilnes Tīkli un apskatīt atbildes galvenes, paziņojums
ka ierīce sūta mani cookie, kura vārds ir nedaudz
patvaļīgi, bet gan sava veida saprātīgi, PHPSESSID.
Un tas ir nosūtījis man tas ir patiešām liels izlases numuru.
Tas nav gluži numuru.
Tas nav gluži heksadecimālo.
Tas ir sava veida burtu un ciparu virknes, bet, iespējams, tas ir nejauši.
Un tas ir roku zīmogu tā, lai runā, ka es esmu, kas attiecas uz.
>> Tajā pašā laikā, ja es noklikšķiniet uz papildināšanas un pēc tam apskatīt šajā otrajā rindā, lai mans otrais
lūgums, paziņojums, tagad, ka mans lūgums galvenes ietver PHPSESSID vienāds ar to,
nav set-cookie, bet tikai cookie.
Un tas ir mana pārlūkprogrammas prezentācija no manas rokas zīmogu.
>> Tātad tagad kā teaser, un mēs runājam vairāk par šo nedēļu, vai arī tā, bet
kādā veidā tas padara tevi neaizsargāti, jūsu Facebook kontā
neaizsargāti, un citas šādas konti neaizsargāti?
>> Mērķauditorija: Ja kāds ir jūsu cookie.
>> DAVID Malan: Jā, ja kāds ir jūsu cookie.
Es domāju tiešām, daudz, piemēram, daži no jums iespējams, ir mēģinājuši pie kā klubā vai
atrakciju parks, ja jūs mēģināt kaut ko piemēram, tas, lai kopētu zīmogu, lai gan
atpakaļ uz citas personas puses, un tad viņš vai viņa pasniedz kā
to pašu, ja tie patiešām izskatās identisks, 123456789, tad web
serveris acīmredzot tikai gatavojas ticu, ka lietotājs ir jums.
>> Un tas ir patiesi būtisks draudi jebkurā laikā jūs izmantojat sīkdatnes
jo, ja kāds vienkārši Spoofs tāpēc, lai runā savu cookie, skaitļus, ko tā
ir vai nu patiesi kopējot skatoties pie datora
un ir, piemēram, OK.
Dāvida cookie ir JJ3JIK un tā tālāk, un tad viņi pietiekami gudrs, lai zināt
kā kārtot manuāli sūtīt kas cookie no pārlūka vai no
Programma viņi raksta, tie varētu pilnībā ieiet mājas lapā, kā jūs.
Tas nav tik grūti izlikties par kāds cits, ja mēs pārskatīt p-komplekts
divi, kas ieviesa to, ko?
>> Mērķauditorija: Kriptogrāfija.
>> DAVID Malan: maz mazliet kriptogrāfiju.
Vienkāršs kriptogrāfijas, vismaz standarta izdevums, bet Kripto
tomēr.
mazāk.
Tātad izrādās, ja jūs šifrēt visus šīs galvenes, izmantojot kaut ko, kas jums
šobrīd varētu zināt vairāk familiarly, SSL, Secure Socket Layer vai https:// URL,
tad visas šīs lietas, mēs esam bijuši glancing patiesībā ir šifrēta,
kas nozīmē, ka tas ir tāpat kā jūs nevar nolasīt rokas zīmogu.
Tikai facebook.com var, vai google.com, vai šajā gadījumā, ierīce var
izlasīju, ka rokas zīmogu.
>> Traģiski, lai gan, un atkal, tas ir pārāk piemērots ar VDI sīkumi
par vēlu, pat SSL ir trausli.
Un tas tiešām nav tik grūti pat kreka šo šifrēšanu.
Ne tik daudz plaisas šifrēšanu, bet tricking
pārlūku uz atkodēšanu dati priekšlaicīgi.
Bet atkal, mēs ķircināt jums ar to pirms ilgi.
Tagad, vienkārši bail.
Tas ir traģiski sava veida taisnība.
>> Labi.
Tātad, ja tas tagad atstāj mūs?
Nu, pieņemsim to izdarītu.
Iesim uz priekšu un veikt ātri teaser pirms mēs ņemt pārtraukumu.
Un es domāju, ka mēs uzkavēties nedaudz ilgāk šodien, bet mēs ejam, lai nodoties
kaut ko pavisam jaunu un seksīga, kas būs apetītes rosināšanai, lai vēl vairāk.
Tātad, tas ir teaser.
>> Tātad SQL, mēs sākām runāt par kādreiz tik īsi pēdējo reizi.
Jūs tiešām saņemt rokas netīras ar dažiem to septiņu p-komplektu.
Un lajs izteiksmē, ko tas SQL -
S-Q-L -
darīt jūsu labā?
Kas tas ir?
Jā.
>> Mērķauditorija: Pieņemsim jūs varat piekļūt datiem.
>> DAVID Malan: Jā.
Tā pieņemsim jūs piekļūt datiem datu bāzē.
Strukturēts Query Language.
Un tas ir būtībā programmēšanas valodu.
Ir pazīmes tam, ka mums nebūs pat izmantot klasē.
Bet jūs varat efektīvi definētu funkciju.
Viņi aicināja glabāt procedūras SQL.
Bet mēs turpinām to diezgan vienkāršs un vienkārši izmantot dažas pamatdarbības
piemēram, izvēloties datus, ievietojot datus, atjauninot datus un dzēst datus.
>> Un jūs tiešām domājat, ka datu bāzes, piemēram, SQL datu bāzi, kā tikko
ir Microsoft Excel.
Tāpēc, ka SQL attiecas uz relāciju datu bāze, kur
saistība nozīmē tikai tabulas.
Rindas un kolonnas.
Lai kaut ko jūs varat īstenot izklājlapu piemēram, tas, vai Google Docs,
jūs varētu ievietot SQL datu bāzē atzīstot tabulu.
>> Tagad, kā jūs faktiski var piekļūt šī informācija?
Nu, ar komandu vai vaicājumi, kā šis.
SELECT, INSERT, UPDATE un DELETE.
Un lielākā daļa, tie ir četras vienīgās sastāvdaļas jums ir nepieciešams, lai
darīt kaut ko diezgan spēcīgi jo problēma noteikti septiņi.
>> Tagad atpakaļ dienā, jūs faktiski mijiedarbojas ar datu bāzes
melnā un baltā termināla logu uz mirgo ātri, kā šis.
Un datu bāzē, mēs esam darbojas Ierīce sauc par MySQL, kas ir
bezmaksas un atvērtā koda datu bāzes dzinēju.
Ja jūs Google un lasīt Wikipedia rakstu, jūs zināt, ka nosaukums ir
mazliet pāreju uz dažām Linux versijas.
Maria datu bāze ir faktiski dakša tāpēc runāt par MySQL.
>> Long stāsts īss, Oracle nopirka MySQL.
Oracle ir liels uzņēmums.
Cilvēki ir noraizējies, ka tas būtu vairs paliek gluži kā atvērtā pirmkoda,
tāpēc tas ir tikai kopija, MySQL, kas ir joprojām ir bezmaksas, tomēr open source, un
uzstādītas Ubuntu Linux pēc noklusējuma.
>> Bet tas ir sava veida sāpes kakla, lai iepazītos ar
datubāzē šādā veidā.
Tāpēc mēs iekļaut CS50 ierīces bezmaksas atvērtā koda rīku, ko sauc
phpMyAdmin.
Tikai sagadīšanās, ka tas ir uzrakstīts PHP.
Nav būtiski nepieciešams PHP šeit.
Bet tas ir tikai tīmekļa rīks, kas mēs lejupielādēt par brīvu, uzstādīti
ierīce, kas ļauj mums būt grafiskā lietotāja saskarne, ar kuru
izpētīt p uzstādīto septiņi datu bāzi, ar kas, lai izveidotu jaunas datu bāzes,
teikt savu galīgo projektu, ja jūs gribētu patīk, un galu galā radītu
dinamiskas mājas lapas, piemēram CS50 Finance kas ļauj jums vaicāt datus un
atjaunināt datus dinamiski.
>> Jūs neesat nāksies izmantot tikai vienkāršu teksta failu vai CSV.
Jūs faktiski var izmantot gudru datu bāzi programma, lai jūs varētu izpildīt vairāk
sarežģītas vaicājumus nekā tikai lasījumā caur visu lineāri.
>> Tātad, piemēram, tas ir tas, ko mēs dodam jūs no kastē par septiņu p-komplektu.
Tas ir galds ar acīmredzot vismaz trīs kolonnas, viens no kuriem ir
Lietotājs, viens no kuriem ir hash, un no kurām otra ir ID.
>> Bet interesanta lieta, un tikai ķircināt, viena doma šeit, lietotājvārds
droši vien jau ir unikāls, labi?
Es domāju, lielākā daļa jebkuru mājas lapā, ja jums ir lietotājvārds, tur
nevar būt divi Caesars.
Tur nevar būt divas Malans.
Tur nevar būt divas jharvards.
Tās unikāls.
Pretējā gadījumā viņi nezina, kas jharvard tas patiesībā ir.
Tātad, kādi varētu būt motivācija arī ar trešo kolonnu pa kreisi
tur sauc ID, kas izskatās numurs, kas ir līdzīgi unikāls?
Tā jūtas mazliet lieks man pēc pirmā acu uzmetiena.
Kāpēc tas varētu būt pārliecinoši, lai būtu ne tikai unikālās lietotājvārdi,
bet arī unikāls numurs?
>> Mērķauditorija: Tie varētu būt pašu paroli.
>> DAVID Malan: Cilvēki varētu būt pati parole, protams.
Tas varētu absolūti notikt.
Bet, ja tie ir šo unikālo lietotājvārdu, es gribētu apgalvot, ka tas nav īsti
jautājums, jo, ja tie ierakstiet to lietotājvārdu, man ir nepieciešama tikai, lai pārbaudītu to
paroli, to hash to.
Kāpēc vēl?
>> Mērķauditorija: Ātrāka meklēšana.
>> DAVID Malan: Ātrāka meklēšana.
Kāpēc?
>> Mērķauditorija: ID ir tikai viens.
>> DAVID Malan: ID ir tikai viens raksturu, vai precīzāk, tas ir skaitlis,
tāpēc tas ir iespējams, 32 bitu vai kaut kas tamlīdzīgs.
Tā kā lietotājvārdu, acīmredzot Jason Hirschhorn tur augšā ir sava veida
smieklīgi garš, un tas notiek ņem mani daudz vairāk laika, lai string
salīdzināt H-I-R-S-C-H-H-O-R-N, un varbūt / 0 vai kaut kā tā, lai
meklēt Džeisonu, nevis tikai sakot, man lietotāja numuru divi.
Tas ir 32 biti.
Tas ir viens INT, ka jums ir salīdzināt.
Un tiešām, tas ir tieši tāpēc datu bāzes mēdz piešķirt unikālu ID, lai
rindas tiem.
>> Tagad Kādas citas datu tipi ir tur turklāt INT un acīmredzot
stīgas, kā šis?
Nu, ir vairāk pareizi, SQL datu bāzēm, piemēram,
MySQL, ir Char laukus.
Un char nedaudz maldinoši nav viens char.
CHAR lauks MySQL datu bāzē vienu vai vairākas rakstzīmes, bet tas ir
fiksēta rakstzīmju skaitu.
>> Tātad, piemēram, ja es iet pār phpMyAdmin, jo jums var būt jau, vai
drīz būs problēma noteikti septiņi, un es iet manu datu bāzi, un tikai jautri,
pieņemsim izveidot jaunu tabulu, ko sauc par pārbaudīt tikai ar diviem kolonnām.
Es pēc tam noklikšķiniet uz Aiziet.
Un tas kļūs diezgan pazīstami, jo, kā jūs lāpīt
ap savu.
Šeit es varētu rakstīt ID, lai radītu jauna tabula tipa INT.
Bet šeit es varētu ierakstīt lietotājvārdu atjaunotu minēto agrāko tabulu.
Un paziņojums man ir visai ķekars veidu, no kuriem izvēlēties.
>> Un tas arī ir iemesls, kāpēc phpMyAdmin ir sava veida jauki.
Tas ir sava veida sevis mācīšanas, ka jūs var vienkārši sava veida punkts un noklikšķiniet, un
apskatīt nolaižamās izvēlnes, un secināt no ka tas, ko pilnvaras SQL dod jums.
>> Un tiešām, ja es izvēlos CHAR, es pēc tam ir jānorāda garumu, vai kā
daudz vērtības, cik daudzi simboli.
Tāpēc ļoti bieži vērtības ir lietas, piemēram, 255, bet tas ir diezgan garš.
Parasti ir astoņām lietotājvārdu.
Bet tas ir pārāk mazs šajās dienās.
Tātad šis ir dizaina lēmums.
Vai tas ir 8 rakstzīmes max, 32, 255, 1000?
Tas tiešām atkarīgs no jums.
Bet CHAR lauks ir noteikts skaits.
Tāpēc izvēlēties pārāk maz, un jūs esat veida ieskrūvē, ja jūs vēlaties garāku lietotājvārdu.
Izvēlēties pārāk daudz, un to, kas ir negatīvie?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: tas ir izšķērdīgs.
Tāpat kā C, ja jums ir lielāks rieciens atmiņas, nekā jums nepieciešams, jūs esat
tikai izšķērdēt laiku un izšķērdēt telpā.
Tā kā alternatīvu, pastāv VARCHAR, kas atrisina šo problēmu,
apstrādājot garumu nevis kā fiksētu garumu, bet kā maksimālo garumu un izmantojot
maināmu skaitu simboliem, kas pēc tam mēdz izmantot tikai tik daudz simboli, kā jūs
tiešām ir nepieciešams.
Tas izklausās perfekta.
>> Kāpēc nav mēs atbrīvoties no CHAR datu tipu, tad?
Kas varētu būt negatīvie izmantojot VARCHARs, kas izklausās
kā tas ir jauki win?
Yeah?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Labi, labi.
Tātad, ja visi dati ir tāds pats garumu, kas ir problēma?
>> Mērķauditorija: Tāpēc, ka jūs izšķērdēt dati pēc darot tos visus.
>> DAVID Malan: Tātad, ja visi jūsu dati ir vienāda garuma, lai gan, es teiktu
, kas norāda maksimālo garumu gada VARCHAR neatšķiras no
nosakot fiksētu garumu par CHAR ja Jūs zināt, ka vairāki iepriekš.
Bet tur ir tiešām, un es ņemšu veida izraksts no šo atbildi realitāti
ka tur ir vēl max, kas varētu kaitinošas, jo īpaši, ja jūs
sastopas personas vārdu, kas ir neparasti ilgi, ka jums nav
paredzēt.
Un tas ir arī nedaudz mazāk efektīva faktiski meklēt VARCHARs kā
nevis meklē simboli, it īpaši gariem galdiem, kas ir daudz, un
daudz datu.
Tātad arī šeit, tematiskā atkal nav acīmredzama izvēle.
>> Tik vienkārši, lai dotu jums sajūtu citi datu tipi, kas varētu interesēt
nu p-noteikti septiņi vai nākotne, tur ir INT.
Ir BIGINT, kas ir kā ilgi ilgi.
Tas mēdz būt 64 bitiem.
Ir Decimal, ko jūs redzēsiet problēma komplekts, kas ir daudz
tīrītājs atbilde uz problēmām, kas mums saskārās ar pludiņu un peldošo
punktu neprecizitātes.
Un tad tur ir DATETIME.
Tur ir burtiski datu tips, kas ir izskatās gadu, mēnesi, dienu,
un stunda, minūte un sekunde.
>> Bet SQL datu bāzēm ir arī lietas, ko mēs sauksim indeksu.
Un indekss ir kaut kas jums norādiet veidojot tabulu
veikt meklēšanu un citas darbības efektīvāku.
Proti, tur ir kaut kas ko sauc PRIMARY indeksu, kas jums varētu
deklarē šādi.
>> Mēs to darījām, lai jūs ar lietotāju tabula mēs dodam jums.
Bet paziņojums, ja es būtu manuāli atjaunošanās lietotāju tabula šeit sniedzot
tā nosaukums lietotājiem.
Es jau norādīts ID.
Esmu norādījis INT.
Esmu norādījis lietotājvārdu ar maksimāli 32 rakstzīmes.
Bet, ja mēs pastāvīgi ritināšanu šajā samērā plats logs, paziņojums tur
ķekars citas lietas, es varu paredzēt.
>> Viens, es varu norādīt atribūtus piemēram, jūs zināt, ko tas
INT būtu parakstīts.
Es negribu negatīvi skaitļi, tāpēc pieņemsim, būtu parakstīts.
Null nav nozīmes šeit, jo Es vēlos ikvienam lietotājam
ir unikāls numurs.
Es nevēlos, lai to null.
>> Bet tas ir interesanti.
Es varu norādīt, ka ID ir vai nu primārā atslēga Šīs datu bāzes, vai arī tas ir
unikālu, vai arī tas ir indeksēti vai pilnu tekstu.
Tātad šodienas vajadzībām, garš stāsts Īsi sakot, galvenais veids, ka tas
būt gan konceptuāli un tehniski lauks, ko mēs izmantojam, lai unikāli
identificētu lietotājus.
>> Tātad, kad mēs skatāmies uz augšu lietotājiem, tas ir sava veida ar solījumu meklēt tos galvenokārt
kas unikāls identifikators.
Un datu bāze nodrošina to, ka, ja jums ir lietotāja numuru 3, jūs nevarat
fiziski ievietot citu lietotāju ar to pašu numuru 3.
Datubāzē būs tikai atkritumu , lai saglabātu izmaiņas.
Kas ir laba lieta, jo jūs varat pasargāt sevi no sevis. pats
>> Alternatīvi, lietotājvārdu.
Tātad otrajā rindā, atgādināt, ir lietotājvārds jomā.
Tātad otrajā rindā šeit ir lietotājvārds, kā mēs to darījām uz tālu pa kreisi tur.
>> Tātad, ko vēl varētu es vēlos norādīt?
Es neesmu atļauts, saskaņā ar SQL, norādīt divas primārās atslēgas.
Jūs varat norādīt kopīgu atslēgu, kur jūs apskatīt gan laukos, bet tās nevar
individuāli ir primārās atslēgas.
Tātad tas ir ārpus jautājuma.
Tātad, ko es varētu vēlēties, lai izvēlētos?
>> Nu, UNIQUE ir līdzīgs garā primārā atslēga, ja jūs norādāt šo
lauks ir unikāls, bet tas ir nebūs viens
Es izmantoju visu laiku.
Un mēs neesam gatavojas izmantot šo vienu visu laiks kāda iemesla dēļ atkal?
Tas ir lēnāks, iespējams, ja tas ir garš lietotājvārds.
Tas ir tikai laika izšķiešana.
>> INDEX, tikmēr, ir precizēts, ka tā ir nebūs unikāls, bet es gribētu
strādāt savu burvju zem kapuce, lai padarītu to ātrāku man
meklēt šajā jomā.
Tāpēc tas, iespējams, nav būtisks.
Lietotājvārdu, es gribētu apgalvot, ka UNIQUE ir laba atbilde.
Bet pieņemsim, ka mēs, kas lietotājiem vairāk interesanti nekā tikai lietotājvārdus,
hashes, un identifikācijas numuri.
Ko darīt, ja mēs deva cilvēkiem pilnu vārdu?
Ko darīt, ja mēs viņiem deva adreses un citi dati par viņiem?
>> Nu, ja jūs norādāt, ka kolonna datu bāze ir indeksēti, tas nozīmē, ka
MySQL vai Oracle, vai kāds datu bāzes jūs izmantojat, vajadzētu strādāt tās burvju
un izmantot kādu no iedomātā datu struktūra, piemēram, koka, vai Trie, vai arī
hash tabulu, vai kaut ko, lai garantētu ka tad, kad jūs meklēt informāciju, izmantojot
izvēlēties šajā konkrētajā jomā -
tāpat kā man parādīt visiem, ka dzīvo uz Oxford Street.
Vaicājumu, piemēram, ka.
Ja esat norādījis iepriekš, ka Jūs vēlaties indeksu šajā jomā,
meklējumi būs daudz, daudz ātrāk.
>> Ja jums nav jānorāda indeksu, labākais jūs varat darīt, ir lineāra meklēšanu, ja
tas nav sakārtots.
Bet, ja jūs norādāt indeksu, smart cilvēki, kuri izgatavoti datubāzi -
cilvēki kā jūs, kas tagad zina kokus un cenšas un hash galdi -
automātiski izveidot šādu datu struktūra RAM, lai pārliecinātos, ka
šie meklējumi ir daudz ātrāk.
>> Fulltext tikmēr ir līdzīga pēc būtības, bet ļauj jums darīt zvaigznīti
meklējumi, piemēram, parādiet man visiem, ka dzīvo uz ielas, kas sākas ar
burtu O kāda iemesla dēļ.
Jūs varat darīt aizstājējzīmes meklēšanu piemēram, ka.
Vai vairāk pārliecinoši lietām, piemēram, liecina, man visi, kas ir vārds -
parādiet man ikvienu, kura vārds sākas ar konkrētu burtu.
Jūs varat meklēt atslēgvārdus šādā veidā.
Labi.
>> Tātad, dizaina iespējas tur iespējams.
Ir citi, kas es ņemšu vilnis savu roku pie.
Izrādās, ka jūs varat būt dažādi glabāšanas dzinējiem.
Un tas ir vairāk mistisks, nekā mums vajag protams, par problēmu noteikti septiņi.
Pēc noklusējuma, jūs guys izmantojat kaut ko sauc InnoDB.
Jūs redzēsiet nepieminēja šo kaut kur phpMyAdmin saskarne visticamāk.
Bet zinu, ka ir arī citi dizains lēmumi, kas ir potenciāls
procenti nāk galīgo projektu, ja jūs kaut ko darīt tīmekļa.
>> Bet pieņemsim to izdarītu.
Iesim uz priekšu un nodot to tālāk ekrāns kā teaser par stāstu
iesaistot jums, kaimiņiem, un glāzi piena.
Paņemsim divas minūti vai arī tā pauze šeit.
Un, ja jūs varat stick apkārt, pieņemsim nāk atpakaļ, izskatās nedaudz vairāk par SQL, un
tad mazliet JavaScript ar p-noteikti astoņi prātā.
>> Labi.
Tātad, pieņemsim nokļūt jūs domājat par stūra gadījums, kas var ļoti viegli rasties
kontekstā, izmantojot datu bāzi, vai godīgi sakot, pat izmantojot reālās pasaules lietas
piemēram, bankomātu, lai saņemtu naudu.
Tātad, šeit ir ledusskapis.
Pieņemsim, ka jūs esat ieguvuši vienu pārāk Jūsu kopmītnes vai jūsu māja.
Un tev viens kaimiņiem, un abi Jums tiešām patīk pienu piemēram.
>> Tātad jūs nākt mājās no klases vienu dienu.
Viņš vai viņa vēl nav atpakaļ.
Atverot ledusskapi.
Jūs tiešām vēlaties lielu glāzi piena.
Nav pienu.
Tātad, ko jūs darīt?
Aizverot ledusskapis.
Jūs greifers atslēgas.
Jūs iet laukumā.
Un jums rindā pie CVS tiem, pašapkalpošanās kases lietas, kas vienmēr
nepieciešams ilgāks laiks, nekā patiesībā ar kasieri.
Tik un tā.
>> Tātad, tikmēr, dot dot dot, savu kaimiņiem nāk mājās, un viņš vai viņa
līdzīgi ir ilgas kādu pienu.
Lai viņš vai viņa atver ledusskapi, izskatās iekšā, un oh, damn.
Nē pienu.
Lai viņš vai viņa galvu, kas, notiek, lai iet pārējām CVS, kas ir tikai
bloķēt prom kādu iemeslu dēļ, un viņš vai viņa izpaužas rindā, lai nopirktu pienu.
>> Tajā pašā laikā, jūs nākt mājās, viņš vai viņa nāk mājās, un kādi darīt
Jūs galu galā ir?
Divreiz tik daudz piena.
Bet jums nav patiešām patīk pienu, ka daudz.
Tātad, tagad jums ir tik daudz piena, ka tagad viens no tiem ir tikai gatavojas iet skābs
galu galā.
Tāpēc tas ir ļoti slikti problēma.
Tiesības?
>> Tātad, kas ir noticis?
Tātad būtībā, tas ir sava veida par smieklīgu piemēru.
Bet zem motora pārsega, ko mēs esam bija notiek šeit ir jums abiem pārbaudīts
stāvokli kādu gabals atmiņa, ledusskapis.
Jums abiem pārbauda valsts dažu mainīgo.
Jūs abi izdarīja secinājumu ka jūs pēc tam darbojās.
Bet, diemžēl, kamēr jūsu kaimiņiem bija veikalā, valsts, kas
mainīgais mainījies, viņš atgriezās un tagad grib, lai mainītu valsts, bet
tas jau ir mainīts par viņa vai viņas.
Un, protams, viņš vai viņa nebūtu devusies uz veikalu, ja viņi zināja
ka jums jau bija ceļā.
>> Tātad reālajā pasaulē, kā jūs varētu izvairītos no šīs problēmas, pieņemot, ka jums ir
ledusskapis, jums ir kaimiņiem, un jūs tiešām vēlaties pienu?
>> Mērķauditorija: Komunikācija.
>> DAVID Malan: Komunikācija.
Labi.
Bet kā jūs varētu sazināties?
>> Mērķauditorija: Atstājiet piezīmi.
>> DAVID Malan: Atstājiet piezīmi, labi?
Vienmēr atstājiet piezīmi, lai faniem parādīt.
Labi, tāpēc vienmēr atstāt piezīmi, vai likts patiešām patīk piekaramo atslēgu vai kaut ko
uz ledusskapja, kas saglabā jūsu kaimiņiem no pārbaudīt stāvokli
ka mainīgais.
>> Tagad, kāpēc, iespējams, tas ir piederīgs Problēma noteikti septiņi, vai uz bankomātiem.
Nu, iedomājieties pasauli bankomāta, kur Jūs varētu aiziet līdz ATM
mašīna šeit, un vēl ATM šeit.
Un tas notiek diezgan bieži.
Un pieņemsim, ka jums bija divas ATM kartes, kas ir iespējams iegūt.
Un jūs piesakāties gan mašīnas efektīvi vienlaicīgi, cerams
bet neviens meklē.
Un tad jūs ierakstiet PIN aptuveni vienlaicīgi.
Un tad jūs līdzsvaru vaicājumu redzēt, cik daudz naudas jums ir.
Un pieņemsim, ka jums ir 100 $ palicis jūsu kontā.
Tātad būtībā vienlaicīgi, jūs saka viens, nulle, nulle, ievadiet.
Un jūs, cerams, saņemt atpakaļ naudu.
>> Bet cik daudz naudas jūs varētu saņemt atpakaļ?
Tagad datori beigās dienā, it īpaši, ja viņi runā ar
serveri, ne vienmēr darīt lietas tādā kārtībā, kas ir sagaidāms.
>> Tātad, pieņemsim, ka tas, kas notiek, jo neatkarīgi no tīkla ātruma jautājumiem tur
ir vai CPU jautājumiem ir, vai kaut kas līdzīgs, ka, pieņemsim, ka
Pirmais ATM pārbauda līdzsvaru un redz, ak, šī persona ir $ 100.
Bet tad kļūst apjucis, jo varbūt backup notiek, un tāpēc ir
palēninot.
Vai varbūt vienlaikus pārbaudot, tīklu savienojums ieguva nedaudz lēnāk, jo
tas vienkārši notiek.
Viņi fiziskās ierīces.
Tātad tikmēr, otrais ATM ir lūdzot to pašu jautājumu.
Cik daudz naudas tas Dāvids ir? 100 $ ir atbilde.
Bet tāpēc, ka pirmais bankomāts vēl nav nosūtīts ziņojums atņemt 100 $, gan
Bankomāti ir pārbaudīti bankas glabātuves redzot tur ir $ 100 tur, un tagad
abas mašīnas potenciāli ir būs izspļaut atbildi.
>> Tagad tas ir liels jums kaut kādā ziņā ja tas, ko bankas dara, galu galā
ir mainīt summu līdz mīnus 100 līdz Nosakot mainīgais ir vienāds ar savu
bankas konts, kas vienāds ar 0, pretstatā darīt mīnus 100.
Tagad sliktākajā gadījumā par banku -
vai labāko banku, tikmēr, viņi jums $ 200, un
jūsu bankas kontā tagad rāda negatīvu $ 100, kas patiešām nav
labumu jums vispār.
Bet ir tas, ka šis skrējiens nosacījums divas roommates kļūst
piens vai diviem bankomātiem cenšas iegūt naudu un mainīt stāvokli velvēt
vienlaicīgi pastāv jebkuru reizi, jums ir datu bāze.
>> Tagad problēma noteikti septiņi, šis jautājums rodas tādā nozīmē, ka, ja jūs pērkat
daļa Facebook krājumu, un tad Piemēram, jūs iegādāties otru daļu
Facebook akciju, jums ir nepieciešams veikt lēmums, kā programmētājs.
Lai izlemtu, kā atjaunināt datu bāzes, izredzes ir jūs gatavojas
ir viena rinda šo krājumu, un tas ir viens veids, kā to īstenot.
Un jūs gatavojas, lai būtu viena daļa FB, kas ir to akciju biržas simbols
Šim lietotājvārdu vai lietotāju ID, unikāls identifikators.
>> Bet pats stāsts var notikt šeit.
Ja jūs izvēlaties SQL, kā jūs redzēsiet jo problēma noteikti septiņi, kad jūs redzat,
ak, Deivids ir viena daļa no Facebook noliktavā.
Ļaujiet man tagad mainīt, ir divas daļas, jo viņš vēlas pirkt
Otrā daļa.
Bet pieņemsim, ka Dāvids faktiski bija divi pārlūkprogrammas logus atvērt, vai pieņemsim, ka
tas ir kopīgs konts ar abu laulāto, un viņi abi mēģina veikt
pati darbība, tur, too, pastāv potenciāls lēmumam būtu
veic, pamatojoties uz iepriekšējā valsts pasaulē -
kontā ir viena daļa -
un abi cilvēki, vai abiem serveriem, tagad mēģināt teikt pieauguma to divās daļās.
Bet šajā gadījumā, iespējams, ir jāmaksā man nauda gan akcijām, bet
pieaudzis tikai šo vienu reizi.
>> Tātad īsumā, pamatproblēma Šeit, tāpat kā joks par aizbraukšanu
ņemiet vērā, vai liekot atslēga uz to, ir ja divi cilvēki, vai divas tēmas -
domāju, ka atpakaļ uz nulles -
var pārbaudīt stāvokli dažu mainīgo un tad mēģināt mainīt šo mainīgo,
bet šīs divas lietas nav notikt Tajā pašā laikā, bet var iegūt pārtraukta
citas lietas notiek, dati var nokļūt ļoti dīvaini stāvoklī.
Un jūs varat izmantot, vai jūs varat ciest izpratnē naudas piemērs.
>> Tātad problēma noteikti septiņi, mēs jums šo vienu rindiņu kodu, kas ilgs
stāsts īss, atrisina šo problēma MySQL.
Tas ir ļoti garš norādījums, ka nav pat ietilptu vienā rindā uz
screen šeit nodrošina, ka jūsu darbība ir tas, ko sauc par atomu.
Tas viss notiek uzreiz, vai tā nenotiek vispār.
Šis ļoti ilgi frāze nevar get pārtraukta daļēji.
>> Un ko tā dara, ir burtiski ko tā saka.
Ievietot kādu tabulā pēc trīs lauki šīs īpašās vērtības,
bet dublikātu atslēgas, nedariet ieliktni.
Do atjauninājumu.
Tātad tas ir, piemēram, darot SELECT un INSERT tā sakot, tajā pašā laikā.
Un kas ir galvenais, tas ir iespējams, tiek minēts šeit?
>> Izrādās, un jūs redzēsiet to Problēma noteikti SEVEN ir spec, jo
mēs esam deklarēti, lai būtu unikāla atslēga par šo konkrēto galda tā, ka
Jūs nevarat būt vairākas rindas tajā pašā lietotājs ar
pats penss krājumu simbols -
šajā piemērā šeit, DVN.V ir dumjš penss krājumu, ka mēs
attiecas uz spec.
Jo mēs esam atzinusi, ka tā ir unikāls, ko tas nozīmē, ka, ja jūs
mēģināt ievietot dublikātu rindu, tu esi vietā, gatavojas atjaunināt bez
kāds cits, kam ir iespēja mainīt valsts pasaulē, vai nu.
Tātad īsi sakot, tas nodrošina lietas ir atomu.
>> Plašākā nozīmē, lai gan, datu bāzes piemēram, MySQL -
un jums nav nepieciešams šo funkciju p-noteikti septiņi, bet paturēt to prātā
nākotne -
atbalstīt to, ko sauc par darījumiem, kur jūs varat teikt
START DARĪJUMS burtiski.
Tad jūs varat izpildīt divas SQL.
Un SQL, kā jūs redzēsiet P-komplekts septiņi, izskatās nedaudz
kaut kas līdzīgs šim.
Atjaunināt tabulas sauc kontu.
Uzstādīt līdzsvaru kolonnu vienāds neatkarīgi bilance kolonna pašlaik
ir mīnus 1000, ja skaitlis, konta numurs, piemēram, lietotāja ID,
ir vienāds ar 2, un pēc tam atjaunināt konts dot dot dot.
>> Tāpēc lajs izteiksmē, ko darīt, šie divi jautājumus, šķiet, ir dara
reālās pasaules izjūta banku?
>> Mērķauditorija: Došanās ietaupījumus.
>> DAVID Malan: Tieši tā.
Pārceļot līdzekļus no viena konta uz otru.
Un tas ir vēl viens piemērs, kur jūs patiešām vēlamies šīs divas lietas, kas notiek
vai nenotiek.
Jūs nevēlaties kaut ko saņemt no tām vidū un, iespējams, izjaukt
math, vai izjaukt, cik daudz naudas jums ir, vai cik daudz
nauda banka.
Tātad, kas ir patiešām jauka par darījumiem MySQL ir tas, ka, un
datubāzes plašākā nozīmē, ka viņi un gudri cilvēki, kas esmu īstenoti
šie līdzekļi izdomāt, kā padarīt pārliecinieties, ka abas šīs lietas notiek
vai nav vispār.
>> Un, ja jūs patiešām cenšas darīt mājas lapu, kas ir izmantots, ko cilvēki par
Campus, cilvēki reālajā pasaulē, darot kaut starta nozīmē,
šīs ir veidi dizains lēmumus, kas
kļuvis kādreiz tik svarīgi.
Pretējā gadījumā jūs sākat zaudēt datus, zaudē lietotājiem, vai sliktākajā gadījumā, kā
mēs esam redzējuši šeit, iespējams, zaudēt naudu.
Tātad vēlreiz, vairāk par to problēmu noteikts seven, kā arī, iespējams, dažiem no
jums gala projektu.
>> Tā ļauj mainīt šo priekšstatu, mums bija pirms brīža tikai vēl viens veids.
Tāpēc ļaujiet man patiešām redzēt, ja es varu -
Nē, tas ir pagājis.
Tur tas ir.
>> Tātad, tas ir, ja mēs atstājām pēdējo reizi.
Un izrādās, mēs ejam mētāt vēl viena lieta, uz sajauc šeit -
valoda sauc JavaScript.
Tāpēc JavaScript faktiski der šajā gabalā -
un man nebija gluži atstāt pietiekami daudz vietas, tāpēc tas nav tagad mērogā.
OK, tas ir patiešām nožēlojami.
Labi, tā ka ir JavaScript.
Labi.
Es esmu patiešām dara to lāča.
Labi.
>> Tāpēc JavaScript ir cita programmēšanas valodu, un mūsu pēdējā, ja tas palīdz
pārliecināt, ka tur nav daudz vairāk no ugunsdzēsības hidrantu šeit.
Tāpēc JavaScript ir interpretējams valoda, kas nozīmē, jums nav
sastādīt to nuļļu un vieninieku.
Jūs vienkārši palaist to.
Bet kas ir būtiski atšķiras ar JavaScript parasti ir tā, ka jums
nav palaist to uz jūsu tīmekļa servera.
Tā nesaņem palaist ierīce per se.
Drīzāk, tas izpaužas lejupielādēt lietotājs izmantojot HTTP savā pārlūkprogrammā -
Chrome, Safari, Internet Explorer, Firefox, vienalga -
un tas ir pārlūks, kas izpilda šo īpaši programmēšanas valodu.
>> Tātad, lai būtu skaidrs, PHP līdz šim ir bijis izpildīts vai nu komandrindas
Mūsu melnā un baltā krāsā logu, uz servera piemēram, iekārtas, datoru
patīk ierīci, vai tas ir bijis izpildīts ar tīmekļa serveri
darbojas uz datora.
Bet tēma ir tāda, ka PHP līdz šim ir izpildīts servera pusē, tāpēc
lietotāja un lietotāja pārlūks nekad redz līnijas PHP kodu.
>> Patiesībā, ja jūs kādreiz atvērt pārlūkprogrammu jūsu mājas lapā vai citu, un jūs
faktiski redzēt PHP kodu savā logā, kāds ir ieskrūvē augšu.
Tāpēc, ka tas nav domāts, lai būtu nosūtīts uz pārlūku tieši.
Tas ir jāpilda, un pagriezās par kaut ko, piemēram, HTML.
>> Bet JavaScript būtībā pretējo.
Tas ir domāts, lai būtu palaist parasti iekšpusē no lietotāja pārlūka logā.
Un kāda veida tīmekļa vietnes izmanto JavaScript tad šajās dienās?
>> Tāpat kā burtiski katras tautas mājas lapā.
Katru mājas lapā, ka jūs guys, iespējams, izmantot ikdienā izmantot JavaScript
Vienkāršākais un pat sexiest funkcijas.
>> Tātad, kaut kas līdzīgs Facebook Chat, ja jūs izmantojat to.
Kā tas, kas faktiski strādā?
Nu līdz šim, visi sīkumi mēs esam darīts ar HTML un PHP pieņem, ka
Jūs uzvilkt URL, un jūs hit Enter, un jūs redzat kādu HTML saturu.
Un jūs noklikšķiniet uz saites, kas maina URL, maina lapu un pildījumiem
kādu jaunu saturu.
Noklikšķiniet uz citu URL, vai iesniegt veidlapu, get whisked uz citu lapu un
jūs redzat kādu jaunu saturu.
>> Bet, izmantojot kaut ko līdzīgu Facebook Chat, vai Gchat, vai Google Maps, reti
tas visu lapu atsvaidzināt tāds, ka redzat balts ekrāns uz brīdi un
Pēc tam jaunu saturu.
Drīzāk, mājas lapas šodien ir dinamiski kļūst atjaunināts atkal un
atkal un atkal visu veida no aizkulisēs.
Un izrādās, ka tad, kad jūs iet uz kaut ko, piemēram, Facebook, vai Gchat,
vai Gmail, un lapas atjauninājumus automātiski, bez pārkraušanas
viss ekrāns, kas ir noticis, ir tas, ka Jūsu pārlūkprogrammā ir izgatavots veida slepeni
papildu HTTP pieprasījumus -
nevis uz visām mājas lapas, bet tikai maz gabalos datu, piemēram,
tērzēšanas ziņu, ka jūsu draugs tikko Tevi, vai statusa atjauninājumu, kas
kāds tikko nosūtīju jums, vai čivināt ka kāds tikko nosūtīju.
Tas ir tikai padarot maz pieprasījumus dati, un tad, izmantojot JavaScript, šis
programmēšanas valodu, lai mainītu to, ko mājas lapa izskatās bez
serveris palīdzot, bez servera radot šo HTML.
>> Tātad īsumā, JavaScript var tikt izmantotas, tad ne tikai ielādēt jaunus datus no
servera bez pārkraušanas visu lapā vai iesniedzot veidlapu.
To var arī izmantot, lai mainītu ts DOM -
dokumenta objekta modelis -
kas ir tikai iedomātā veids sakot koku HTML
ka mēs redzējām pēdējo reizi.
>> Tātad, lai nomierinātu JavaScript ir sintaktiski tik līdzīgs C, kā arī.
Nav galvenā funkcija.
Jūs vienkārši sākt rakstīt kodu un tas saņems izpildīts, vai
interpretē pareizi.
Nosacījumi izskatīsies šādi.
Nav atšķirīga no C vai PHP par šo jautājumu.
Būla izteiksmes vai-ed kopā izskatās šādi.
Anded kopā izskatās šādi.
>> Slēdži izskatīsies šādi.
Par cilpas izskatīsies šādi.
Kaut arī cilpas izskatīsies šādi.
Darīt, kamēr cilpas izskatīsies šādi.
>> Tas ir jauns.
Tātad JavaScript ir nevis foreach būvēt per se, bet būvēt
par mainīgo i ar masīva, un es šajā lieta kļūst indeksa vērtība.
Tātad, tas ir nedaudz atšķiras no foreach, gan jaunas versijas
JavaScript nāk no visu laiku, tāpēc pat tie valoda funkcijas
attīstās.
>> Un kā malā, JavaScript šajās dienās var izmantot arī uz serveri, tāpat kā
PHP, izmantojot sistēmu, ko sauc Node.js.
Viens no CS50 ir TFS, Kevin, ir izraisījusi seminārs par Node.js, kas ir pieejami
cs50.net/seminars.
Tātad, ja jūs esat ieinteresēti, zinu, ka tu var izmantot šo uz servera pusē, kā
labi, bet tas ir diezgan nesena tendence, bet jaudīgu tajā.
>> Tas ir nedaudz atšķirīgs.
Tas ir masīvs JavaScript.
Un ko streiki jūs kā atšķiras pret C vai PHP?
Ir daži ātri stāsti mēs varam pateikt šeit.
Kas trūkst pret PHP?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Jā?
Atvainojiet, vēlreiz saku?
>> Mērķauditorija: Nav deklarējot tipa mainīgais.
>> DAVID Malan: Mēs nedeklarējot tipa mainīgais.
Tātad faktiski ir diezgan piemēram, PHP, mēs neesam norādot veidus šim mainīgajam.
Drīzāk, mēs esam vairāk vispārīgi sakot VaR mainīgo.
Mums nav PHP radītos traucējumus dolāra zīmi, kas savukārt nogurdinošs
veids, tas padara vairāk skaidrs, ka kaut kas ir mainīgs.
Tā kā šeit, mēs esam sava veida atpakaļ C pieeju, tikai zvanot
mainīgo ar nosaukumu mēs vēlamies uz to, tāpat numuriem.
Un arī, piemēram, PHP, mēs esam kvadrātveida kronšteini
vērtībām iekšā šajā masīvā.
>> Tātad mainīgie JavaScript arī varētu izskatīties šādi.
Paziņojums te ir virkne sauc s, bet tāpat mēs esam nav norādīts
ka tas ir virkne.
Te gan ir līdzeklis, kas nav pastāv tieši tādā pašā veidā, PHP,
bet mazliet līdzīgi.
Tas ir objekts JavaScript.
Un objekti ir sava veida Šveices armijas Nazis datu struktūras, kas jums
tos var izmantot, lai jebkādu skaitu lietas.
>> Lūk, piemēram, mēs esam paziņojot mainīgo sauc cenas.
Veids šim mainīgajam ir objekts.
Jūs varat domāt par to kā C struct kas ir atslēgas un vērtības.
Simbols ir galvenais.
FB ir vērtība, acīmredzot akciju simbolu.
Komats.
Cena ir vēl viens svarīgs, un tā vērtība ir acīmredzot peldošā punktu, vai
numurs, plašāk JavaScript, no 49.26 $.
>> Tātad, PHP nav -
mēs neesam redzējuši PHP objektos diezgan kā šis, bet mēs redzam analogo,
, kas bija kas?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Asociatīvās bloki.
Tātad, tā kā PHP ir asociatīvas bloki kura sintakse ir kādreiz nedaudz, lai
dažādi -
mēs redzējām kvadrātiekavas.
Mēs redzējām dīvaini bultiņām simboliem.
JavaScript ir objektus, bet tas ir galvenokārt semantiskā atšķirība, un
atšķirīgs sinonīms tagad.
Tomēr, kā malā, PHP arī ir objektu tādā veidā, ka Java un citu
valodām ir objekti objektorientētā programmēšana.
Bet mēs izmantosim šos vienkārši datu tipu, lai tagad.
Objekti un asociatīvas bloki.
>> Tas varētu darīt to nedaudz vairāk skaidrs.
Lūk, kāpēc objekts ir noderīga.
Ja vēlaties, lai paziņot students, piemēram Zamyla, mēs faktiski var
rezumēju tāpēc runāt iekšpusi, ka objektu, izmantojot cirtaini iekavās tāpat kā
Pirms visu ķekars atslēgu un vērtības šeit.
Mums ir ID, māja, un nosaukumu, lai Zamyla, kam seko semikolu kā
parasti beigās.
>> Down šeit, tas ir nedaudz atšķirīgs, bet arī ļoti spēcīga
šajās dienās.
Šeit ir masīvs, un es zinu, ka, jo tur kvadrātiekavas augšu
top un kvadrātiekavas apakšā.
Un tas ir masīvs, kādi dati ierakstiet acīmredzot JavaScript?
Tas ir masīvs izskatās piemēram, trīs objekti.
Un es zinu, tas ir tikai objekts jo cirtaini lencēm.
Un paziņojums tur ir atvērts cirtaini lencēm, daži sīkumi, netālu cirtaini lencēm, komats,
tad dažas vairāk, komats, un tad dažas vairāk.
Tātad tas ir trīs argumenti atdalīti ar divām komatiem.
>> Tātad tas ir masīvs no trim objektiem.
Un katrs no tiem objektiem šķiet students vai darbinieks dažu
veida, katra ar ID, māju, un nosaukumu.
Bet es esmu sauc šo kaut sauc JSON -
JavaScript Object notāciju.
Un tas ir datu formāts, kas faktiski ir tik ļoti populārs, un
modē šajās dienās, ka, ja jūs rakstīt programma, kas izmanto Facebook
API, Twitter API, tiešām gandrīz kāds API tur šajās dienās,
tostarp dažas CS50 pašas, Datu jūs saņemsiet atpakaļ nav
vecās skolas CSV formātā.
>> Jo atsaukšanu ka CSV ir super vienkārši.
Tas ir tikai kolonnas atdalītas ar komatiem.
JSON datus sniedz jums vairāk metadatus.
Tā saista atslēgu ar katru vērtību, lai tie nav tikai pieņemt, ka
0. kolonna ir viena vērtība, kolonna viens ir vēl viena, divu kolonnu ir cits.
Viss ir JSON objekts šeit ir sava self-apraksta, jo katrs
viens no nosaukumiem, šajā failā ir burtiski nosaukt tā priekšā, kā
citēts virkne.
>> Tātad, pieņemsim to apskatīt Pāris piemēru šeit.
Ļaujiet man iet uz ierīces.
Un ļaujiet man iedziļināties mūsu vhost direktoriju uz sabiedrību.
Un ļaujiet man iedziļināties JavaScript katalogs.
Un iesim uz priekšu un atvērt dom-0.html, kur DOM tikai nozīmē,
dokumenta objekta modelis.
Tas ir koks sīkumi, uz kuru Es minēju iepriekš.
>> Un ļaujiet man piedāvāt sekojošo.
Šeit ir mājas lapa, kura ķermenis ir diezgan vienkāršs.
Tātad, noteikti šeit apakšā, paziņojums Man ir forma.
Mēs esam redzējuši, kas pirms tam.
Tas ir divas ieejas, no kuriem viens ir ID nosaukuma, no kuriem viens ir veida
pakļauties, un pirmais viens ir veids ir teksts.
Tāpēc tas patiesībā izklausās diezgan vienkārši.
>> Iesim šeit.
Iesim atpakaļ uz šo lapu šeit.
Iesim uz localhost, un iedziļināties Mūsu JavaScript direktoriju, un doties uz
dom-0, un šeit mēs esam šo veidlapu.
Tātad, tas ir acīmredzami visas šīs lapas nav.
Tā ir nosaukuma lauku ar Iesniegt pogu.
Bet es neesmu gatavojas izmantot PHP šeit.
Es darīšu visu klienta pusē tā sakot JavaScript šādi.
>> Ievērojiet, ka es patiešām esmu devis nosaukumu jomā, šo ieguldījumu unikāla
identifikatoru, kas faktiski ietaupīt man kādu laiku pēc brīža.
Un paziņojums, es esmu ieviesta vēl tag galvā manu mājas lapā,
tag.
>> Tāpēc tas ir šajā ziņā, ka JavaScript ir klienta puses programmēšanas valoda.
Šajā gadījumā, tāpat kā CSS, es esmu likts tas taisni iekšā mana HTML.
Bet paziņojums es esmu pasludinājis funkciju kas izskatās mazliet kā PHP
sintaktiski, bet tas ir faktiski JavaScript, jo atkal, tas ir
klienta puses pārlūkprogrammā.
Un veikt uzminēt, ko tas gatavojas darīt, lai gan daži no sintakses
šeit ir jauns.
>> Mērķauditorija: Say hello to kādam citam.
>> DAVID Malan: Tas būs teikt sveiki lai kurš apmeklē šo lapu.
Tad kā?
>> Tātad paziņojums, izrādās JavaScript tur ir alert () funkciju.
Tas ir ļoti veida skumji funkcija, kas tiešām tikai mēdz traucēt lietotājiem.
Tas nav viens no jums patiešām vajadzētu izmantot parasti, bet tas ir ātri un netīrās
veids veida poligrāfijas kaut uz grafisko lietotāja
saskarne, kā pārlūkprogrammā.
Ievērojiet, ka es esam ieguvuši string vienu pēdiņām.
Izrādās, ka atšķirībā no C, JavaScript patiesībā var būt jums izmantot vienotā
citātus, un godīgi sakot tas ir tikai veids no stilistiskās konvencijas starp
JavaScript programmētāji izmantot vienu pēdiņām.
PHP, viņi patiesībā ir nedaudz dažādas nozīmes.
Bet tagad, tikai zinu, ka tas ir vienīgais iemesls.
JavaScript konvencija ir bieži apostrofus, bet mēs varētu izmantot
pēdiņas abās vietās, kā arī.
>> Tāpēc tas ir interesanti.
Atgādināt, pēdējo reizi, ka mums bija, ka attēlu uz ekrāna, kas vērsa koku
kur bija HTML mezglā, un galvas mezglā, un ķermeņa mezglā,
un pēc tam daži tekstu.
Bet tur bija viens īpašs mezgls pie pašā augšā, ka es sauc par dokumentu.
Nu, izrādās JavaScript, jebkura reizi, kad jūs uzrakstīt programmu JavaScript
pārlūkprogrammā, jums ir piekļuve īpašu globālo mainīgo.
Līdzīgs garā PHP ir superglobālajiem masīviem, tas viens sauc
visi mazie dokuments.
>> Tas ir kā struktūrai, bet tas struktūrai ir arī funkcijas iekšpusē no tā.
Tāpēc C struktūrai vienkārši ir dati parasti.
Bet JavaScript objekts, jo tas tehniski ir arī funkcijas,
citādi zināma kā metodes, iekšpusē no tā.
Un jūs varat zvanīt funkciju iekšpusē šis objekts burtiski dara savu
nosaukums, punkts, un tad nosaukumu funkciju, vai atkal metodi.
Tas ir tikai sinonīms, tiešām.
>> Un ko šī funkcija dara?
Jūs varat veida uzminēt no tās nosaukuma.
Get elementu pēc ID.
Tāpēc tas ir gatavojas meklēt mājas lapā, meklēt šo koku, meklējot
neatkarīgi mezglā, AKA elements ir unikālais ID citējot likt pēdiņas beigās vārda.
Un tad ko es darīšu?
Es esmu gatavojas, lai iegūtu vērtību iekšpusē ka mezglu koka, un es esmu gatavojas
kaut kā sasveicināties ar šo nosaukumu.
>> Lai ņemtu uzminēt, pat ja mēs esam nav redzējuši šo vēl, ko darīt, kā arī
simboli nozīmē, šeit un šeit iespējams?
>> Mērķauditorija: Saķēdēt.
>> DAVID Malan: Saķēdēt.
Labi, un tie ir tikai veida dizains lēmumus
cilvēki, kas gadiem.
PHP, jums saķēdēt lietas ar punktiem.
C, jūs lēkt caur vairākām stīpām un zvanu funkcijas, piemēram, strcopy () vai
strcat () vai citas šādas funkcijas.
Bet JavaScript, jūs izmantojat plusi.
Tāpēc tas ir tikai konkatenācijas trīs stīgas -
sveiki, vārdu, un pēc tam izsaukuma zīme.
>> Tātad, kad un kāpēc tas ir funkcija sauc, lai gan?
Nu, ņem uzminēt no HTML apakšā.
Kāpēc sveicināt () sauc, vai kad?
>> Acīmredzot, cik labi es varu pateikt, uz iesniedz, kad tiek iesniegta šī veidlapa,
Es esmu gatavojas darīt visu, iekšpusē šīm pēdiņām.
Un konkrēti, es esmu dodas uz zvanu sveicināt () un pēc tam atgriezties viltus.
>> Nu, pieņemsim redzēt, kas neto ietekme šeit ir pirmajā vietā.
Tātad, ļaujiet man iet uz priekšu un ierakstiet , teiksim, Lorēna, Iesniegt.
Sveiki Loren.
Redzēsim, vai varbūt tas bija tikai laimīgs īstenošanu.
Nē.
Tāpēc tas ir rakstīt veic neatkarīgi nosaukt es tiešām likts tur.
>> Bet paziņojums par to, kas nemainās.
URL joprojām dom-0.html.
Nav register.php.
Nav otro failu.
Nav rīcības atribūts.
Tātad, kas ir šī atgriešanās nepatiesa iespējams, dara?
Kāpēc man zvana sveicu () un pēc tam atgriezties viltus iespējams?
Kas parasti notiek, kad jūs noklikšķiniet Iesniedz uz veidlapas, ka pat mēs esam
redzams pagājušajā nedēļā?
>> Mērķauditorija: [nedzirdama].
>> DAVID Malan: Pats kaut kur, vai ne?
Tā iet uz kādu galamērķa URL.
Bet es negribu, ka varētu notikt šeit.
Es vēlos, lai mana mājas lapa ir pilnīgi dinamiskā piemēram, Gmail, kur reiz tu esi
tur, jums palikt tur.
URL nemaina tādā veidā, ka norāda visa lapa ir pārkraušanu.
Drīzāk, es tikai vēlos, lai kaut ko mainīt piemēram, izdrukāšana kaut
šeit uz ekrāna.
>> Nu ļaujiet man tīrīt to uz augšu mazliet.
Ļaujiet man atvērt ne Dom-0, bet ļaujiet man atvērt Dom-2.
Vienkārši, lai jūs esat redzējuši kādu sintaksi šeit.
>> Izrādās, ka tas, ko mēs tikko tomēr izmanto izejvielas JavaScript.
Tāpēc tas ir patiesi valoda JavaScript.
Daži no jums varētu zināt bibliotēka sauc jQuery.
>> Tātad jQuery nav tāds pats lieta, JavaScript.
Tas ir tikai bibliotēka, kas patiešām gudrs puisis rakstīja un popularizēts, piemēram
ka gandrīz ikviens visā pasaulē tagad izmanto jQuery, izmantojot JavaScript.
Un pēc pirmā acu uzmetiena, godīgi, tas izskatās nedaudz vairāk mistisks.
Bet jūs atradīsiet, it īpaši, ja jums iet tur jūsu gala projektu ar web
attīstība, jūs atradīsiet, ka šī attīra lietas uz augšu un ļaus ietaupīt diezgan
dažas rindiņas kodu.
>> Tāpēc pieņemsim tikai skatienu, kā šī veidlapa strādā.
Paziņojums Ko es noņemt acīmredzot no mana HTML?
Nav apstiprināšanas apdarinātājs tā runāt.
Nav atribūts.
Jo jūs zināt, ko Man nav tiešām patīk?
Es jutos kā mēs, kas uz vecajiem paradumiem tur.
Tāpat kā tas bija sāk justies apliets to sajaukt gan CSS ar
HTML, jo jūs esat veida throwing dažādās valodās visā
vietu, tāpat tas varēja sākt justies kā slikts ceļa, lai iet uz leju, ja
Es esmu liekot JavaScript kodu iekšpusē manu HTML nevis faktoringa to ārā.
>> Tā ka ir mācība šeit.
DOM-2.html, es esmu faktoringa to ārā.
Un es daru lietas nedaudz savādāk.
Tagad es esmu gatavojas vilnis manas rokas par ko tas īsti dara
zem motora pārsega.
Bet tikai tagad pieņemt, ka šis pirmais līnija koda šajā bibliotēkā
sauc jQuery nozīmē tikai tad, kad Dokuments ir sagatavots, rīkojieties šādi.
>> Jo mājas lapas var veikt kādu laiku, lai slodze.
Jums varētu būt par lēnu internetu savienojumu, un tas varētu būt vērpšanai
un vērpšanas un beidzot tas ir piekrauts.
Ka koda rindu vienkārši saka gaidīt, kamēr visa lapa ir gatava, dokuments
ir gatava, pirms izpildes šo kodu.
>> Un tagad paziņojums, tas ir iespējams, visnoderīgākā pirmais
atņemt jQuery.
Šī līnija šeit ir ļoti līdzīgs garā šim daudz ilgāku līnijā šeit.
Tā kā neapstrādātu JavaScript kodu, tur pastāv dokumentu globālu objektu,
ir funkciju sauc getElementById () cilvēki, kuri rakstīja
jQuery vienkāršota, ka tikai pateikt dolāra zīmi, un tad iekšpusē
iekavas izvirzīti divi citātus, un pēc tam likts hash simbolu, kam seko
unikāls ID, jūs vēlaties, lai greifers.
Tāpēc tas ir ekvivalents document.getElementById.
>> Tikmēr. Iesniegt tikai nozīmē par iesniegšana jebkādā formā tu esi
atsaucoties uz pa kreisi, dodieties priekšu un izpildīt to.
Bet tagad tas ir zinātkāre too.
Kas ir dīvaini par to, Esmu izcelti šeit?
Tas ir ne tikai sava veida sintaktiski jauna, tur ir arī kaut kas trūkst.
>> Mērķauditorija: Tas ir tikai sauc funkciju?
Tas nav sauc brīdinājumu?
>> DAVID Malan: Jā.
Nu, tāpēc alert () ir uz leju šeit, lai būtu godīgi.
Bet nav pieminēts nosaukums, tāpat kā jūs zināt, foo vai
kaut ko šeit.
Un tiešām, tas ir viens no iezīmēm JavaScript, kas ir diezgan
spēcīgs, bet arī pavisam jauni.
Un PHP patiesībā ir tas, kā labi.
>> Ļaujiet man iet uz priekšu un darīt kaut kas ļoti ātri.
Ļaujiet man iet uz priekšu un nodot to šeit.
Ļaujiet man izdarīt.
Funkcija.
Sauksim šo apdarinātājs ().
Kopējs funkciju, lai runāt.
Kaut kas apstrādā kādu darbību.
Ļaujiet man sakopt manu atkāpi.
Un nodot šo šeit.
Un nodot, ka šeit.
Yep.
Labi.
>> Tāpēc tagad man ir tā saucamā funkcija apdarinātājs (), ka man nav tiešām zināt
ko tā dara vēl.
Tas tikai vēl, ka stuff.
Whoops.
Aizņēma pārāk daudz.
Darīsim to.
Labi.
Žēl.
Labi.
Ļaujiet man darīt.
Labi.
Tas izskatās jauki un taisni uz priekšu tagad.
Ļaujiet man darīt.
Dariet to.
Un Labi.
Tāpēc tagad, pieņemsim nodot šo vairāk nekā šeit.
Ne vairāk programmēšanas par lidot.
Labi.
>> Tāpēc tagad, iesim atpakaļ uz kur stāsts sākās.
Iepriekš man teica, ka šī līnija šeit nozīmē, ja dokuments ir gatavs, iet
uz priekšu un darīt to.
Ko es gribu darīt?
Nu konkrēti, es gribu iet uz priekšu un darīt šādi.
Izpildīt šo līniju kodu, un pēc tam to, ko es gribu, lai jūs darīt, ir zvanīt tas
darboties, kad veidlapa tiek iesniegta.
>> Tagad tas ir tas, kas ir interesanti.
Tas pats par sevi nav funkcija.
Paziņojums Es neesmu liekot iekavas šeit normālā veidā.
Es esmu burtiski iet, ko sauc par funkciju kopējs () uz citu funkciju
sauc iesniedz () kā argumentu kā lai gan tas ir kā mainīgs.
Un šī ir viena no iezīmēm JavaScript ir funkcijas paši
Ir tiešām tikai objekti.
Patiesībā, viņi tiešām vienkārši mainīgie dažu šķirot.
Un, ja pie funkcijas nosaukums ir apdarinātājs (), nav iemesla es nevaru
nodot to kā argumentu šeit.
Un tas nozīmē, kad veidlapa ar no demo ID ir
iesniegts, nosaukt šo funkciju.
>> Bet tagad, ja es atsaukt to visu, kāpēc tad gan es, iespējams darīt
tas pirms brīža?
Nu, tas ir anonīma funkcija.
Jo godīgi sakot, es sapratu, kāpēc es esmu apgrūtinošas tērēt laiku atzīta
funkciju sauc kopējs () tikai zvanīt tā vienā un tikai vienā vietā?
Ja man nevajag vārdu, un es nedomāju, ir nepieciešams, lai izsauktu to vairāk nekā viena vieta,
pieņemsim tikai īstenot funkciju labi, ja man to vajag.
Un tā JavaScript un PHP atbalsts, ko sauc anonīms funkcijas, kas
ļaujiet man darīt tieši to šeit.
>> Bet mēs esam tikai nesaskrāpē virsmas.
Let 's ķircināt tikai ar pāris gala piemēri šeit.
>> Ja es iedziļināties quote.php.
Ievērojiet, ka tas ir faktiski PHP funkcija, PHP programmas, ka es uzrakstīju
kas sagaida HTTP sauc parametrs simbols, un es varu pāriet
vērtību, piemēram, FB.
Un, ja mēs faktiski apskatīt avota kodu, tas ir vaicājumiem bezmaksas tīmekļa vietni
sauc par Yahoo Finance, tāpat kā p-komplekts septiņi, un tas ir atgriešanās pie manis
kaut kas acīmredzot pazīstams formāts ir JSON -
JavaScript Object notāciju.
Tas ir tikai objekts.
Paziņojums par cirtaini bikšturi, pēdiņām, resnās zarnas, un komatus.
>> Tagad tikmēr, tas ir diezgan atdzist.
Jo es varu droši izmantot programmēšana valoda, lai radītu URL
ka izskatās šis dinamiski, labi?
Es varu mainīt, lai Google un saņemt atpakaļ Google
akciju cena 1,017.55 $.
Tātad, pieņemsim redzēt, ja mēs nevaram izmantot šo tagad.
>> Ļaujiet man iet uz Ajax 0 šeit, kas izskatās šādi.
Tas ir tikai mājas lapu, kas ir veidlapa ar pogu.
Ļaujiet man šeit iet uz priekšu un ierakstiet YHOO par Yahoo akciju simbolu, noklikšķiniet uz Saņemt
Citēju, un tagad paziņojums es esmu gotten brīdinājumu ar 32.86.
>> Ļaujiet man tiešām iet uz mīļotājs versiju Šīs lapas, versiju divi, un
tipa teiksim Microsoft, MSFT.
Get Citēt.
Un tagad paziņojums, nekādu brīdinājumu.
Paziņojums kur ir teikts cena ir jānosaka?
Ir piemēri, ka vienkāršākais norāda uz to, kas Gchat, un Facebook
Tērzēt, un Gmail, un citas šādas mājas lapas darām, ko faktiski
mainot mājas lapā.
>> Paziņojums to.
Ļaujiet man pārlādēt lapu.
Ļaujiet man atvērt Chrome inspektors.
Ļaujiet man iet uz elementiem tab uz leju šeit.
Tagad paziņojums, ja man ir uz leju šeit tālummaiņa un atvērt šo up, ievērosiet, ka tas ir mans
HTML DOM - mana dokumenta objekta modelis.
Šis ir mans HTML.
Bet tagad paziņojums, pat ja tas notiek būt nedaudz grūti, lai redzētu to gan
vietas uzreiz, ja es rakstīt FB šeit, skatīties dibenu
no ekrāna tikai.
>> Tas ir patiešām notiek, mans HTML par lidot.
Un tas dara to gluži vienkārši darot kaut kas līdzīgs šim.
Ja es atvērtu ajax-2, ievērosiet, īstenojot kaut ko tik seksīgs kā
ka, lai gan tas ir diezgan neglīts, bet tik sarežģīta, kā tas
funkcionāli, tas ir daži HTML apakšā.
, Bet paziņojums, es izmantoti, lai atzīmēt.
Mēs esam neizmanto šo pirms, bet tas ir piemēram, bet tas nav spēkā
viss uz jaunu līniju.
Tas tikai padara taisnstūra reģionu uz vienas līnijas būtībā.
>> Ievērojiet, ka es deva tai ID cenu.
Un izrādās, izmantojot pašu JavaScript bibliotēka, man ir funkcija
sauc citātu (), kas sauc, kad veidlapas iesniegšanas.
Un ko es daru tas ir.
Es esmu atzīst mainīgais Javascript sauc url, saglabājot vērtību
quote.php simbols =?.
Citiem vārdiem sakot, es pats esmu sāk lai sagatavotu HTTP pieprasījumu, un pēc tam
Es esmu concatenating uz, ka ar plus kāds elements ar ID
gada simbols ir, kas paziņojums ir tāds, ka Teksta lauks tiesības uz leju šeit.
Tātad, tāpat kā mums bija formas pagātnē.
>> Un tad izrādās jQuery, ja jūs zvanu. val (), kas aicina par val
funkciju, vērtību, funkcija, kas izpaužas kāds lietotājs ir drukāti collas
Un pēc tam visi no tīkla satiksmes kas notiek, ir tas.
$. GetJSON.
>> Un kā malā, dolāra zīmi ir tikai saīsināts apzīmējums.
Tas ir patiešām jQuery.getJSON.
Nokļūt mani JSON šo URL, un, kad lūgums nāk atpakaļ, to sauc par
funkciju un iet tik argumentu kāds atgriezās no servera.
>> Tātad, citiem vārdiem sakot, ja es dodos atpakaļ pārlūku, un es dodos atpakaļ uz quote.php,
kāds ir mans pārlūks dara, ir panākt, šis gabals datus.
Un, kad es iet uz šo mājas lapā šeit, paziņojums, ja mēs tā vietā doties uz tīklu
tab un skaidri to, un tad ierakstiet kaut kas līdzīgs GOOG par Google un saņemt
Citāts, ievērosiet lapa nemainījās.
Bet HTTP pieprasījums tika iesniegts, un kādi atgriezos šeit, ja mēs skatāmies
atbilde ir visai ķekars JSON ka mēs piekļūt beidzot ar
Šī vienkāršā līnija šeit.
>> Dati, kas bija gotten no servera.
Cena ir nosaukums Galvenais man rūp.
Tāpēc data.price dod man to.
>> Tagad tikmēr, un tas ir pēdējais piemērs.
Jūs varat darīt vēl vairāk ar lapu.
Viens faktiski, labi divi.
Mēs varam atvest tag, ja jūs atceraties to.
Tas ir JavaScript.
Mēs varam darīt.
Ļoti aizraujoša.
Mēs ņemšu atvaļinājumu, ka cliffhanger.
>> Bet vairāk aizraujoši, jūs varat darīt lietas, kā šis.
Ja es eju uz ģeogrāfiskās vietas-1, izrādās ka Chrome zina, ka mēs esam
platuma 42.37. -71,10.
Tātad tur ir vēl tur Jūsu rīcībā.
Bet vairāk par šo nākamnedēļ.
See you pirmdien.