[Powered by Google Translate] [Nedēļa 9]
[David J. Malan - Hārvarda]
[Tas ir CS50. - CS50.TV]
Labi. Laipni lūdzam atpakaļ. Tas ir CS50, un tas ir sākums 9 nedēļas.
Šodien mēs īpaši vērsta uz projektēšanas, vairs kontekstā C
bet PHP kontekstā un SQL bitu un JavaScript mazliet,
īpaši uz beigām gan 7 PSET un arī jūsu gala projektu.
Patiesībā, ja jums ir, ka tajā brīdī savā pēdējā projektā
kur iespējams no stundu vai tik pirms jums vismaz sāka pārdomāt
uz savu galīgo projektu un jūs domājat jūs vēlētos sadarboties ar 1 vai 2 klasesbiedriem,
ja jums ir problēmas savieno ar sacīja klasesbiedriem,
justies brīvi, lai aizpildītu veidlapu cs50.net/partners/form.
Tas tikai prasa jums, kas jūs esat, kāda veida projektu, jūs domājat par to,
kur tu dzīvo tikai loģistikas iemeslu dēļ.
Un tad, ja jūs vēlaties, lai saglabātu acu par nākamo nedēļu, vai arī tā izklājlapas URL tur,
Jūs varat redzēt tikai lasāmu versiju Google doc
kurā mēs esam šīs informācijas vākšanai.
Tātad, ja jūs vēlaties strādāt ar kādu, ar visiem līdzekļiem justies brīvi, lai panākt, lai cilvēki
izmantojot šo mehānismu.
Bet par ļaudīm vairākums darīt darbu solo. Tas ir pilnīgi naudas sodu.
Tāpēc nejūtos, ka tas ir kaut kādā veidā obligāta.
Piektdien tas bija tikai man un no komandas maz šeit,
tukšs teātris par lielāko daļu.
Tur bija 3 tūristi sēdēja tur, tā ka bija mazliet neveikli.
Ko mēs runājām par to bija datubāzes un mēs runājām par PSET 7 mazliet.
Un, ja jums nav gadās noķert ka uz video tikai vēl, tas ir jauki.
Es mēģināšu definēt visus noteikumus, kas mēs citādi pieņemt par pašsaprotamu
pamatojoties uz piektdienas lekciju.
>> Bet šodien mēs esam gatavojas izmēģināt, lai saņemtu jums līdz punktam
ne tikai ar to var kaut ko darīt, piemēram, 7 PSET
bet tiešām saprast, kas notiek zem pārsega,
īpaši dažas no abstrakcijām, ka mēs ieviestas ar functions.php failā
lai padarītu jūsu dzīvi mazliet vieglāk, bet tā, ka jūs galu galā saprast
lai tad, kad mācību riteņi iztrūkt pēc pāris nedēļām jūs joprojām varat izdzīvot
reālajā pasaulē un šo stuff bez CS50 ietvaros zem jums.
Šis $ _SESSION, tiem no jums, kuri ir pazīstami
vai kas jau nozvejotas video piektdien, kādi sesija ļaujiet mums darīt
ar PHP balstītas tīmekļa lietojumprogrammu?
Tas ir superglobal mainīgs, kas nozīmē, tas ir līdzīgs garā GET un POST
un daži citi, bet kāda ir šī lieta noderīga?
>> Kas ir sesija lieto? Yeah. [Students] pieslēdzoties
Žēl? [Students] pieslēdzoties pieslēdzoties Tiešām.
7 PSET mēs izmantojam šīs sesijas superglobal lai atvieglotu pieslēdzoties
Un, kas ir jauka par šo superglobal ka tas ir asociatīvā masīva.
Asociatīvā masīva, atsaukšana, ir tikai masīvs, bet kuru indeksi vairs jābūt skaitļi
piemēram 012. Tie var būt skaitļi vai tie var būt pat stīgas.
Un tāpēc, ja esat ienira 7 PSET vēl, jūs varat atcerēties, ka mēs glabājusi atslēgu sauc ID
iekšpuses šo asociatīvā masīva, kura vērtība ir kaut kas līdzīgs 123 -
neatkarīgi pašlaik pieteicies lietotāja ID ir.
Tam par motivācija ir tas, ka pat pēc lietotājs ir apmeklējis localhost
vai manu mājas lapā vispār, un tad viņi pieteicies,
pat ja tie nav noklikšķiniet uz saites vai atgriezties uz manu mājas lapā par 5 minūtēm
vai pat stundu vai pat dienu, bet viņi atstāj savu pārlūka logu atvērt,
izmantojot šo superglobal es varu atcerēties, ka tie ir pieteicies collas
>> Citiem vārdiem sakot, tas man ļauj saglabāt nedaudz ilgtermiņa kaut ko es gribu par lietotāju.
Un jūs varat domāt par to tiešām kā iemiesojums iepirkumu grozā.
Vietās, piemēram, Amazon, protams ļauj jums nodot lietas par iepirkšanās grozs,
bet HTTP protokols, kas pilnvaras internetā, ir bezvalstnieks
tādā ziņā, ka tad, kad jūs apmeklējat tīmekļa vietni,
par lielāko daļu jums nav zināma pastāvīgu tīkla savienojums
starp jūsu pārlūkprogrammu un serveri.
Tiklīdz esat lejupielādējis HTML un JPEG un GIF un visu, kas,
savienojums iet prom, un jums vienkārši ir kopija HTML un plauktiņš no servera.
Bet ja serveris vēlas atcerēties kaut ko par jums,
slogs ir uz servera, lai faktiski ierakstīt šo informāciju.
Un tāpēc jums programmētājs, kurš ir kontrole pār serveri
var likt visvairāk kaut ko vēlaties iekšpuses šo superglobal asociatīvā masīva
un tas būs tur nākamajā reizē lietotājs nāk atpakaļ,
vai tas ir minūtes vai pat dienas vēlāk, ja vien tie slēgt savu pārlūka logu
kurā brīdī sesija pazūd.
Tātad, tas ir īslaicīgi uzglabāšanu, tas ir nestabils, un tas ir domāts, lai iet prom
tiklīdz lietotājs aizver savu pārlūkprogrammu - ne tikai to, ka cilne, nereti visu pārlūku,
tādējādi efektīvi mežizstrādes lietotājam ārā.
Tātad, kā tas lieta faktiski īstenoti?
Pieņemsim veikt ātri apskatīt vienkāršs piemērs mēs paskatījās piektdien.
Tiem svešs, tas bija tik vienkārši, kā šis.
Tas ir mājas lapa, kuras vienīgais mērķis dzīvē ir pateikt
cik reizes esmu apmeklējis šo lapu.
Šī ir pirmā reize šeit pirmdien, ka es apmeklēju to, tāpēc tā saka 0 reizes.
>> Bet, ja es sāktu pārkraušanas šo lapu, tā saka 1 reizi, 2, 3, 4, 5,
un tas galu galā vienkārši turēt uz skaitīšanas augšu, uz augšu, uz augšu, uz augšu, uz augšu
katru reizi es tiešām noklikšķiniet Pārlādēt par to.
Tātad, kā tas darbojas? Ļaujiet man iet iekšā šo failu sauc counter.php.
Augšējā daļa no tā ir visiem Blue komentārus, bet interesanti daļa ir šeit.
13 līnijā mēs saucam funkciju session_start,
un tas ir burtiski viss, kas jums jādara, ja jūs vēlaties, lai būtu pieejami
uz šo īpašo superglobal sauc $ _SESSION.
Tas padara to visu iespējams, un mēs redzēsim brīdi, kā tas viss ir iespējams.
Rindā 16 paziņojumā, ko es daru.
Ja galvenais, ko sauc skaitītājs - citiem vārdiem sakot, indeksa vērtība - "skaitītājs"
pastāv iekšpusē šī masīva sauc sesija, tad ko es daru ar to līniju zemāk?
Kas ir līnija 18 dara?
>> [Dzirdams studentu reaģēšanas] Kas tas ir? [Students] glabāšana vērtību. Labi.
Tas glabāšanai vērtību, kas ir sesija tieši tagad jaunā vietējā pagaidu mainīgo,
$ Skaitītājs visiem mazajiem.
Ievērojiet, ka PHP jau ir mazliet slinks šeit.
Pamanīt mums nav nekādas atsauces uz int vai peldēt vai auklu vai kaut kas tamlīdzīgs
jo PHP ir vāji drukāti, kurā jums nav jānorāda veidu mainīgo,
un šajā gadījumā šeit es esmu pat deklarēta to vēl.
Es esmu paziņojot to iekšpusē šo cirtaini lencēm un atšķirībā C, tas ir faktiski labi.
Nav svarīgi, cik dziļi ligzdotu mainīgs deklarāciju ir PHP -
iekšpusē cirtaini lencēm, iekšpusē cirtaini lencēm un līdzīgu -
tas būs tajā brīdī laikā pastāv uz atlikušo programmas,
lai labāk vai sliktāk.
Tātad, tas uzreiz kļūst globāla, tiklīdz jūs to definēt kā mēs darām šeit.
>> Pretējā gadījumā, ja es neuzskatu, ka tur ir kaut kas SESSION superglobal,
Es esmu acīmredzot inicializēšana šo mainīgo counter līdz 0,
tādējādi tikai pieņemot lietotājs nekad nav bijis šeit pirms.
Un tad tas, protams, ir palielināšanai skaitītājs kā?
Es esmu atjaunināšanu vērtību, kas ir iekšā šo asociatīvā masīva
nosakot to vienāda neatkarīgi skaitītājs šobrīd ir + 1.
Ja es ritiniet uz leju šeit HTML lapas, patiesībā tas ir diezgan vienkārši.
Viss, kas man ir organismā šīs lapas ir "Tu esi apmeklējis šo vietni tik-un-tā reizes."
Un tas ir PHP būvēt.
Ja jūs <? =, Tas ir līdzvērtīgs efektīvi kāda funkcija?
Tas tiešām atbilst kaut ko līdzīgu printf, ko mēs esam redzējuši daudzas reizes C,
kaut kā jūs zināt jau no spec Direktīvas 7 PSET,
drukāt ir arī funkcija, kas tikko izdrukas kaut kas, tas nav reāli izmantot formātu kodus,
un jūs faktiski var teikt atbalsi, kā arī.
Viņi visi kādreiz tik nedaudz atšķiras pat ja neto ietekme ir galu galā pats.
Tāpēc šo izmantošana vienlīdzības zīmi ir tikai sava veida elegants veids, kā darīt to
kodolīgāk nekā jūs citādi varētu būt spējīgs.
Tā ka viss šajā vietā dara. Tā izdrukā vērtību letes.
Kā tas viss patiesībā notiek?
Jūs varat atgādināt nedēļā vai tā atpakaļ mēs sākām meklēt zem pārsega
, kā mājas lapa darbojas, izmantojot šo inspektors cilni.
>> Chrome ir tas gan Mac versiju, Windows versiju, un pat Linux versija,
un Firefox un IE ir līdzīgas mehānismus, turklāt jums ir šī iebūvēts atkļūdotājs
iekšpusē pārlūku.
Pieņemsim to apskatīt šo.
Mēs esam ieguvuši visu ķekars cilnēm šeit, un atcerēties, ka kreisās malas viens ir elementi,
un nav svarīgi, cik godawful HTML un JavaScript ir lapā,
atceros, ka ar Elements cilnē jūs faktiski var pārvietoties HTML hierarhiski
un jauki un glīti.
Tātad, ja jūs mēģināt mācīties no mājas, piemēram, Google vai Facebook
vai tiešām jebkurā mājas lapā, saprotam, ka jūs, iespējams, labāk
Aplūkojot pirmkoda šo ceļu, nevis meklē neapstrādātu avotu,
kas var būt haoss, jo mēs esam redzējuši, jo īpaši uz Google vietnē.
Tātad, ja es tā vietā noklikšķiniet uz Network cilnē šeit,
pieņemsim redzēt, kas notiek, kad es apmeklēju šo lapu.
Pirmais ļaujiet man skaidri manu kešatmiņu.
Es iešu uz Settings Chrome un pēc tam doties uz vēstures
un notīriet visu pārlūkošanas datus.
Jūs varētu izmantot, lai darot citiem mērķiem, [smiekli]
bet, kad runa ir par jaunattīstības mājas lapas, tas ir tiešām noderīgi -
ja jūs smieties jūs zināt. [Smiekli]
Tas ir tiešām ļoti noderīga, izstrādājot mājas lapas, jo realitāte ir
lietām, piemēram, cepumi un lietām, piemēram kešatmiņā HTML failus, kešatmiņā JavaScript failus
faktiski var kļūt lielas galvassāpes, jo, ja kaut kāda iemesla dēļ
pārlūkprogramma nolemj cache kādu failu, un vēl esat veicis izmaiņas šajā failā uz servera
bet pārlūks nav īsti sapratuši, ka fails ir mainīts
un tāpēc nav faktiski atkārtoti lejupielādēt to, pat ja jūs noklikšķiniet Pārlādēt pogas,
viens no visvairāk pareizs veidus, lai tikai pārliecinātos vaina nav ar savu kodu,
tas ir ar uzvedību pārlūku, ir doties šeit savā pārlūkprogrammā
un vienkārši notīrīt visu vēsturi, lai tur nav neskaidrību.
>> Un tad, ja jūs patiešām vēlaties būt paranoiķis, atmest pārlūku, restartējiet to,
un tad pārliecinieties, ka visi strādā, kā gaidīts.
Tātad īsumā, kešatmiņas ir labi, ja dara attīstību.
Tāpēc šeit mēs esam uz cilnes Tīkls.
Man agrāk bija apmeklējis šo vietni 9 reizes, bet ļaujiet man iet uz priekšu tagad un noklikšķiniet pārlādē.
Un es esmu atpakaļ uz leju līdz 0.
Pieņemsim faktiski redzēt, kā tas ir, ka šī sesija superglobal tiek īstenota.
Es esmu gatavojas klikšķiniet uz 1 HTTP pieprasījumu, kas tika veikts,
un tas atkļūdošana logs ļauj man skatīties iekšpusē no tā.
Šeit es redzu tikai atbildi no servera, kas nav interesanti.
Es esmu redzējis šo jebkurā vairākos veidos.
Bet kas ir tehniski interesanti ir galvenes.
Ja es ritiniet uz leju šeit un koncentrēties uz pieprasījumu galvenēs un noklikšķiniet aplūkot kodu,
ko es esmu gatavojas, lai redzētu, ir burtiski HTTP pieprasījums
kas tikai gāja no manas pārlūkprogrammas uz serveri,
GET ir noteicošā vārdu un tad / counter.php esot faila nosaukumu,
HTTP/1.1 vienkārši ir versija HTTP, ka mana pārlūkprogramma izmanto.
Šī līnija šeit ir nedaudz atgādinājums no pārlūku uz serveri, ko no servera nosaukums ir
ka tā vēlas runāt.
Un tad šīs pārējais ir reizēm interesanti, bet nav būtiska tieši tagad.
>> Tas ir tikai sava veida zinātkāre.
Mistisks gan tas virkne ir, jebkurā laikā pārlūkprogramma apmeklē mājas lapu
tas ir informēt kādu pārlūkprogrammu jūs izmantojat serveri
un ko operētājsistēmu jūs izmantojat un ko variantu.
Tātad, ja jūs esat kādreiz domājuši, kā tīmekļa vietnes, piemēram, CNN un plauktiņš
zināt, kādi procenti ir Mac lietotājiem tīmeklī, PC lietotājiem,
IE lietotājiem, Chrome lietotāji un tamlīdzīgi, tas ir tāpēc, ka visi mūsu pārlūkiem
stāsta katru mājas lapā, tur kādi mēs esam.
Tas ne vienmēr ir personiski identificējamu informāciju,
bet tas pateikt serveri, ko jūsu IP adrese ir un ko pārlūku un OS jūs izmantojat.
Tā ka, ja šī informācija ir.
Bet kas ir interesanti tagad, kad runa ir par šiem kursiem ir atbilde galvenes.
Ļaujiet man klikšķi apskatīt avotu blakus reakcijas.
Kas ir interesanti šeit ir dažas lietas.
1, mēs saņēmām atpakaļ statusa kodu 200.
Mēs nekad redzēt šo statusa kodu, jo tas nozīmē, ka viss ir labi.
Tas nozīmē, burtiski labi atšķirībā kaut kas cits.
Kas ir skaitlis, mēs dažreiz redzam, ka ir slikti? [Students] 404.
404, fails nav atrasts, 403 jums varētu būt klupšanas uz jau,
kas ir aizliegts, kas nozīmē, ka jūs aizmirsāt chmod kaut ko, visticamāk.
Un tur ir citu ķekars.
>> Šeit lejā, tas ir mazliet traks.
Es tiešām tikko rakstīja par šo failu pirms dažām minūtēm, ielīmējot to gedit.
Kāpēc šo lapu beidzas 1981.gadā, pirms tur tiešām bija Web?
Kas notiek tur?
>> [Dzirdams studentu reaģēšanas] laika zīmogs. Bet kāpēc?
Tas ir nedaudz patvaļīga, bet patiesībā tas ir noderīgi.
Ko tas saka mans pārlūks ir tas PHP failu esat tikko pieprasīta jau ir beidzies.
Faktiski, tas beidzies pirms 30 gadiem.
Bet ko tas īsti nozīmē?
Tas tikai nozīmē, nākamo reizi lietotājs apmeklē šo lapu,
vai pēc pārkraušanas vai ierakstot URL adrešu joslā,
pārliecinieties, ka jums iet un atnest jaunu kopiju.
Tas ir sava veida piemērs cache izvirzījušies
stulba vārds, kas nozīmē tikai mēģina atturēt pārlūkiem
no faktiski caching HTML, kas ir bijis nosūtīts no servera
tāpēc, ka jums nav nejauši hit papildināšanas un tad redzēt to pašu faila versiju.
Jūs tiešām vēlaties serveri, lai nosūtītu jaunu kopiju.
Tātad fakts, ka tas ir 1981 tikai nozīmē, ka tas, ko ierīce ir izvēlēties
kā patvaļīgu datumu pagātnē.
Bet reālā sulīgs līnija tagad ir tas viens.
Pat pirms 50 jūs, iespējams neskaidri iepazinušies ar cepumiem.
Kā tagad, it īpaši starp tiem ir mazāk apmierināti vai starp,
kāda ir jūsu izpratni cepums tieši tagad
pat ja mēs esam par to, lai jūsu izpratne vairāk tehniska?
Kas cepums? Yeah.
[Students] Informācija par lietotāju, piemēram, ja viņi raksta savu lietotāja vārdu vai kaut ko.
>> Labi. Tā ir informācija par lietotāju, vai tie esam drukāti savā lietotāja vārdu jau.
Cepumi ir veids, kurā serveri var atcerēties kaut ko par lietotāju.
Un ko cepums tiešām ir ir teksta fails vai kādu baitu secība
kas ir apstādīta ar serveri iekšpusē jūsu pārlūkprogrammā,
un iekšpusē šo failu vai starp tiem baitu ir sava veida identifikatoru.
Varbūt tas ir burtiski jūsu lietotāja vārds, bet biežāk tā ir kaut kas vairāk mistisks vērstu
tāpat šī lieta šeit - bo8dal3ct un tā tālāk - tas tiešām liels burtciparu stīgu
kas ir tiešām tikai domāts, lai būtu unikāls identifikators jums.
Vai jūs varat domāt par to kā sava veida virtuālo rokas zīmogu.
Ja jūs doties uz kādu klubu vai atrakciju parks, atcerēties, ka jūs esat faktiski samaksāts
un aizgāja, tie likts nedaudz sarkanu uzlīmi uz jūsu rokas kādu,
un kas atgādina cilvēkus pie letes, ka esat jau samaksāto
un jūs varat nākt un iet, kā jūs.
Cepumi ir nedaudz līdzīga garā uz to.
Pirmo reizi es apmeklēju šo mājas lapu, jo es vienkārši darīju pēc klīringa savu kešatmiņu,
web serveri, ierīce šajā gadījumā likt zīmogu uz manas rokas
kura vārds ir PHPSESSID, sesijas ID,
kuras vērtība ir patiešām garš burtciparu virkne.
>> Tātad tas ir tagad sava veida emblazoned par manu roku tā, ka nākamreiz es hit pārlādētu
vai manuāli apmeklēt šo URL pārlūkprogrammā,
mans pārlūks pēc definīcijas HTTP gatavojas iesniegt rokas zīmogu
atkal un atkal un atkal.
Tātad, pat ja serveris nav obligāti zināt, kas es esmu,
viņi vismaz zina, ka es esmu tāds pats lietotājs vai vismaz, precīzāk, to pašu pārlūku.
Un tā tas ir galu galā, kā sesija superglobal tiek īstenots.
Serveris ir ne jausmas, kas jūs esat, kad jūs atkārtoti ir par otro mājas lapā vai trešo reizi
ja vien jūs iepazīstināt ar šo roku zīmogu.
Un tiklīdz jūs iepazīstināt ar šo roku zīmogu,
web serveris būtībā nonāk maz datu bāzē savu
un pārbaudes, labi, es tikko redzējām rokas zīmogu lietotāja bo8dal3ct un tā tālāk.
Ļaujiet man redzēt, kāda informācija programmētājs ir saglabāta
iekšpusē superglobal par lietotāju,
un tad ļaujiet man pārliecināties, ka dati ir atkal iekšpusē SĒDE superglobal
lai programmētājs varētu atkārtoti piekļūt šiem datiem
pat ja tas ir noteikts dažas minūtes vai stundas atpakaļ.
Tātad citiem vārdiem, cepumi, kas ieguvuši sliktu rap kādu laiku
jo nedrošība pārlūkprogrammās, un viņi tiešām var pārkāpt mūsu privātumu un tas viss,
viņi tiešām ir ļoti noderīgas, jo bez tiem
Jūs pastāvīgi tiks piesakoties uz katru Facebook lapā jūs apmeklējat
vai katru Gmail e-pasta jūs lasīt, ja pārlūkprogramma nebija kaut kādā veidā atcerēties
ka esat jau autentiskumu.
>> Tātad šādā veidā sīkfaili tiek nosūtīti atpakaļ un atpakaļ pa vadu.
Vēl viens par sīkdatnēm zinātkāre, jo šeit ir tas, ka tas ir pilnīgi cleartext.
Tur nav šifrēšana notiek šeit nekāda,
un tiešām es esmu, izmantojot HTTP brīdī.
Viens no mūsu favorītiem brīžiem CS50, kas tagad 2 gadus atpakaļ,
bija ap to laiku rīks sauc Firesheep iznāca.
Tas bija brīva gabals programmatūra, kas tika veikts ar drošības pētnieks
kā trauksmes zvans par kopienu pateikt, cik atrociously īstenots
daži autentifikācijas mehānismus tīmeklī bija.
Tātad kādu laiku, Facebook ir gandrīz pilnībā HTTP, HTTPS nav.
Un pat tad, ja jums nav ne jausmas, kā Kripto darbi, S ir droša
tāpēc tas nozīmē, ka ir vismaz daži šifrēšanas iesaistīti.
Facebook bija izmantots, lai šifrētu lietotājvārdus un paroles,
bet tiklīdz jūs paskatījās jūsu pokes vai jūsu ziņas vai jūsu ziņas barības,
visi, kas bija nešifrētā.
Tāpēc bija Gmail kamēr tikai gadu vai 2 atpakaļ.
Katru reizi, kad pieteicies, jā, viņi izmanto drošu šifrēšanu,
bet pēc tam tās nav. Un kāpēc varētu būt?
Kāpēc ne tikai izmantot kriptogrāfiju visu laiku izmantošanas gadījumu kā šis?
Ko tas nozīmē? Es domāju, ka es dzirdēju kaut ko. [Students] Ātrums.
Ātrums, labi? Ir veidi, ap to.
Bet, ja jūs vienkārši veida domāt par to loģiski, ja jūs šifrēt kaut ko,
Jums ir jādara vismaz nedaudz vairāk darba.
2 PSET kad īsteno Cēzaru vai Vigenere vai pat Crack,
vienkārši izdrukāt virkni ir samērā viegli.
Šifrējot un tad izdrukāt virkni minimāli nepieciešama mazliet vairāk darba.
>> Super populārās interneta vietnēs, piemēram, Google un Facebook,
ja jums ir jādara vairāk, katram lietotājam par katru mājas lapā viņi apmeklē,
kas tikai aizņem vairāk CPU laika.
Un, ja jums ir nepieciešams vairāk CPU laiku, jums var būt nepieciešams vairāk serveru,
kas nozīmē, jums var būt nepieciešams vairāk naudas.
Un tik daudzus gadus tas vienkārši tiešām nebija labākā prakse.
Cilvēki varētu izmantot SSL šifrēšanas tikai tad, kad tie nepieciešami, lai.
Bet izrādījās, un kā šis puisis ar Firesheep veikts super skaidrs,
ja jūs puiši, kuri šobrīd Facebook tieši tagad -
No ziņkārības, pieņemsim redzēt, ja jūs fess augšu.
Ja jūs par Facebook tagad dažās tab, pat ja tas nav foregrounded,
ir jūsu URL HTTP vai HTTPS?
[Vairāki studenti] S. S? [Smiekli]
Labi. Jebkurš HTTP? Tikai 1? Labi.
Tāpēc visi no mums var kapāt, ka puisis ir Facebook kontu tieši tagad.
Par lielāko daļu tas ir kļuvis ieslēgts pēc noklusējuma, vismaz dažās vietnēs.
Un garš stāsts īss, ja jūsu interneta satiksmes nav šifrēta,
ne tikai HTML iet uz priekšu un atpakaļ pāri WiFis nešifrētā,
tāpēc lietas, piemēram, cepumi iet uz priekšu un atpakaļ visā gaisā
bez jebkādas šifrēšanas.
Tātad, ja jums ir tikai programmēšanas savvy bitu vai vairākas Googling prasmes mazliet
atrast bezmaksas programmatūru, kas to dara, viss, kas jums jādara, ir sēdēt Starbucks
vai sēdēt lidostā, kur tur vispār nešifrētā WiFi
un tikai skatīties uz atslēgvārdiem, piemēram Set-Cookie: vai PHPSESSID
jo, ja jums ir tehniskas gudriem, lai tikai skatīties WiFi
visiem bitiem ka plūsmas visā gaisu šajā modelī,
Jūs varat teikt, ka puisis PHPSESSID notiek, bo8dal un tā tālāk.
Un tad atkal, ja tu esi pietiekami tehniski gudriem vai ir īstais instruments,
Jūs varat vienkārši pārveidot savu pārlūku, lai sāktu iepazīstināt ka roku zīmogu
līdz Facebook.com, un Facebook ir tikai gatavojas pieņemt, ka jūs esat, ka puisis
jo visi viņi zina, nav, kas jums ir, bet, kad esat šo unikālo identifikatoru.
Tātad, ja jūs nozagt, ka unikālu identifikatoru, un iesniegt to uz web serveri kā savu,
tie ir tikai gatavojas parādīs šīs personas ziņu plūsmu
vai šīs personas ziņas vai pokes.
>> Un es Google tagad kā aktivizēt HTTPS par Facebook varbūt.
Bet tas tiešām ir tik vienkārši.
Un tā Facebook un Google un līdzīgi ir gotten patiešām labi pie tā,
bet pastāvīgi acu, kas visu vēl par jebkuru mājas lapas jūs apmeklējat, kas neizmanto HTTP
un ir sava veida sensitīvu informāciju par tiem,
vai tas ir finanšu vai personiskās vai tamlīdzīgi.
Ja viņi neizmanto šo, ļoti iespējams, var cepumi, piemēram, tas būtu ļoti viegli nozagts
un tad kalti, un tas ir tieši tas, ko Firesheep izdarīja.
Jums nav jābūt programmētājs.
Viss, kas jums bija darīt bija, ir interneta pieslēgums, lejupielādēt šo bezmaksas rīks,
un ko tā varētu darīt, ir jums pieteikties un tad tas parādīs Facebook nosaukumus
gada ikviens Sanders, jo šajā demonstrācijā, jums apkārt
un viss, kas jums bija darīt bija klikšķiniet uz savu nosaukumu un programmatūras automatizēts process
gada sniffing ka cookie, un iepazīstināja ar Facebook kā savu,
un, voila, jūs esat pieteicies collas
Tātad šis ir vēl viens no tiem "nav darīt" oficiāli.
Ja jums ir sava mājas tīklu un jūs vēlaties, lai lāpīt, ar visiem līdzekļiem,
bet saprotu, tas nav šķērsot līniju universitātes vidē.
>> Bet mērķis šeit ir tiešām uzsvērt ne kā to izdarīt
bet kā lai aizstāvētos pret šīm lietām.
Un niecīgs risinājums šeit, lai gan tas pats par sevi ir kļūdains,
ir tiešām samazināt izmantošanu visās vietnēs, kas neizmanto HTTPS pastāvīgi.
Tātad vietās, piemēram, Facebook un Google ir arvien rūtiņas
kur jūs varat pieteikties uz šāda veida lieta,
un bankām bija šo gadiem līdzīgu iemeslu dēļ.
Tik vienkārši mazliet par bailēm faktors, ja mēs varam. Bet tas ir tas īsumā.
Tas ir kā serveris atceras, kas jūs esat.
Un, tiklīdz tie var atcerēties, kas jums ir, viņi var atcerēties kaut ko par jums
ka programmētājs ir saglabāta iekšā šī īpašā superglobal sauc $ _SESSION.
Un 7 PSET mēs to izmanto trivially tikai atcerēties int,
proti unikālais ID lietotājam, kurš ir pieteicies,
lai mēs zinām, tie esam bijuši tur pirms tam.
Visus jautājumus, tad par sesijas vai cepumi vai līdzīgu?
Firesheep nedarbojas arī vairs,
un jums ir, lai jūsu datoru par īpašu juceklīgs režīmā
tāpēc jūs faktiski klausoties satiksmei turklāt paši.
Tātad, ja jūs pašlaik lejupielādējot Firesheep, saprotu, ka tas nav gluži tik vienkārši
kā tas bija kādreiz, lai pierādītu.
Labi. Un nav darīt to Sanders. Darīt to mājās.
Datubāzēm.
Viena no lietām, ko mēs darīja 7 PSET ļoti apzināti
Tika mēs jums paraugu datu bāzi tabulu lietotājiem, kas ir dažas lietotāju ID,
daži lietotāju vārdus, un daži šifrētu paroles tajos.
Un, kā jūs redzēsiet, ja jums vēl nav, jums nāksies mainīt tabula mazliet.
Jūs esat nāksies pievienot dažas cache katram no šīs tabulas lietotājiem,
un jūs nāksies pievienot citu vēstures tabulu, portfeļi galds,
vai varbūt to sauc kaut kas cits.
Bet attiecībā uz domājot par to, kā to izdarīt, pieņemsim atvērt šo rīku
ko mēs izmantojām piektdien, bet, ja svešs, ierīce nāk ar rīku
sauc phpMyAdmin kas nejauši uzrakstīts PHP,
bet tā mērķis dzīvē, kad es pieteiktos šeit jharvard ar Crimson,
ir dot man lietotājam draudzīgu pārvietošanās veidu apskatei un mainīt manu datu bāzi.
>> Datu bāze, ka es skrienu uz ierīces sauc MySQL.
Tas ir ļoti populārs, un tas ir bezmaksas atvērtā koda datu bāze, kas ir lieliski viegli izmantot,
īpaši ar priekšējo beigām, kā šis.
Ko šis rīks ļauj man darīt, piemēram, ir kule ap galdiem.
Ļaujiet man iet uz priekšu un darīt to.
Piektdien mēs izveidojām tabulu sauc studenti, kas bija super vienkārši.
Tas bija 3 kolonnas - ID, vārdu un e-pasta - un es manuāli ievieto pāris rindas
kā David un Maiks šajā konkrētajā piemērā.
Pieņemsim šo mazliet tālāk, un pieņemsim, ka mēs vēlamies atcerēties vairāk
nekā tikai vārdu un e-pastu par lietotāju.
Ļaujiet man klikšķiniet struktūra šeit augšā.
Un atkal, PSET pastaigas Jūs, izmantojot vajadzīgos pasākumus šeit,
tāpēc nav jāuztraucas, ja daži no tā ir mazliet ātri.
Tad es esmu gatavojas klikšķiniet šeit.
Es esmu gatavojas pievienot kolonnu skaitu pēc e-pasta
jo es gribu, lai pievienotu kaut ko līdzīgu mājai.
Es aizmirsu ierakstīt studenta mājā.
Ļaujiet man uz Doties, un tagad mums ir šī forma, kas diemžēl ir nedaudz plašs no kreisās uz labo,
bet es esmu, lai izsauktu nosaukumu šim lauka māju,
un tad tipa man tagad ir jāizvēlas.
Tāpēc pieņemsim ir īss sarunu par dažādiem veidiem MySQL
jo tā PHP ir vāji drukāti un tā veida spēlē ātri un zaudēt ar veidiem,
datubāzē īpaši tas ir super svarīgi, lai faktiski izmantot rakstīt savā labā
jo viens no lietām, MySQL un citām datu bāzes dzinējiem var darīt Jums
ir nodrošināt, ka jums nav likts fiktīvus datus savā datu bāzē.
Tas ir sava veida bezmaksas kļūdu labošanas pieejams jums.
>> Par mājā mēs, protams, nevēlaties, lai to int, kas ir 32-bitu vērtību MySQL.
Mēs to darījām runājam īsi piektdien ap varchar, kas apzīmē dažāda garuma char.
Kas tas ir? Tas ļauj norādīt, ka jūs vēlaties, lai tas būtu virkne kaut kāda.
Jums nav īsti iepriekš zināt, cik ilgi tas ir,
tāpēc mēs patvaļīgi teikt māju nosaukums var būt 255 rakstzīmes,
bet jūs varētu iet ar 32, 64 - jebkādu skaitu tiešām.
Bet ir iespēja izmantot varchar pa lauka sauc CHAR priekšrocība ir tas, ko?
Tikai intuitīvi ja es ritiniet uz leju šeit, ievērosiet tur palija un tur varchar.
Varchar ir mainīga garuma char; char ir fiksēta garuma char.
Tātad, pamatojoties tikai uz šo definīciju, kāda ir priekšrocība vai trūkums katru no šiem?
Citiem vārdiem sakot, kas rūpējas par atšķirību, vai kāpēc jums būtu aprūpi?
>> Yeah. [Students] varchar elastīgāk bet aizņem vairāk atmiņas.
Labi. Varchar aizņem vairāk - Paskatīsimies. Es neesmu pārliecināts, vai es dzirdēju, ka labi.
Vai varat teikt, ka vēl vienu reizi?
[Students] Es teicu varchar, iespējams, ir lielāka elastība, bet tas aizņem vairāk atmiņas.
Interesanti. Labi. Varchar iespējams dod jums lielāku elastību, bet aizņem vairāk atmiņas.
Pēdējais ir ne vienmēr ir taisnība.
Tas ir atkarīgs no konteksta, bet pieņemsim atgriezties pie tā.
>> [Dzirdams studentu reaģēšanas] Tieši tā.
Tas patiesībā lieta, ka apkopēja parasti izmanto vairāk atmiņas
jo palija, tāpat kā C, ir kā virkne, tas ir masīvs rakstzīmes.
Tātad, ja jūs sakāt char lauku 255 garuma,
datubāze ir burtiski gatavojas sniegt jums 255 rakstzīmes.
Un, ja māja beidzas ar to Mather un 6 rakstzīmēm,
jūs izšķērdēt vairāk nekā 200 rakstzīmes.
>> Tātad VARCHAR faktiski izmanto tikai tik daudz rakstzīmes, kas nepieciešama
līdz maksimālajai summai.
Bet cena, ko maksāt, ir faktiski sniegumu, iespējami.
Ja jūs iepriekš zināt, ka visas jūsu stīgas ir būs 8 rakstzīmes -
Piemēram, pieņemsim, ka jums ir nepieciešama paroles no 8 garums -
otrādi, izmantojot char lauku reizēm, lai gan ne bieži,
ir noteikt fiksētu garumu kaut kā parole
jo tagad bāze var būt vēl gudrāku.
Ja tā zina, ka katrs char lauku, katrs kolonnā virkne ir vienāda garuma,
Jūs saņemsiet atpakaļ iezīme izlases piekļuvi.
Jūs varat lēkt apkārt starp dažādām char laukus datubāzē tabulā
jo domā par datubāzes rindās un kolonnās.
Tātad, ja katrs no virknes viens ir vienāda garuma,
Jūs zināt, ka pirmais ir 0 baitu, nākamais ir 8 baitu
un tad 16 un tad 24 un tā tālāk.
Tātad, ja visi virknes ir vienāda garuma, jūs varat lēkt apkārt daudz efektīvāk.
Tā ka var būt labums sniegumu,
bet parasti jums nav greznība, zinot iepriekš,
tāpēc VARCHAR ir veids, kā iet.
Lūk, vēl detaļa, ka pat Facebook uzbrauca beidzot.
Ints ir liels, un mēs veida tos izmantot pēc noklusējuma jebkurā laikā mēs vēlamies numuru,
bet tas ir tikai 32 biti.
>> Un pat ja Fotogrāfija nav gluži ir 4000000000 lietotājus tagad,
tur noteikti daži cilvēki, kas tur ar vairākiem kontiem
vai kontos, kas ir atvērti un tad slēgti,
un tāpēc Facebook pats es uzskatu pirms dažiem gadiem bija pāreja no int
līdz, jo ir trāpīgi sauc, BIGINT, kas ir tikai 64 bitu vietā.
Tātad tas arī ir dizaina lēmums.
Jums būtu pārsteidzoši laimīgs, ja jūsu gala projekts kļūst starta,
ir 4 miljardi 1 lietotāji, sniegt vai pieņemt,
tādā gadījumā izmantojot Ints varētu būt nedaudz tuvredzīgs.
Bet patiesībā, jūsu lietotāji galda ir iespējams, naudas sodu ar Ints.
Bet kaut kā 7 PSET, piemēram, jūsu vēstures galda,
Jums varētu būt tūkstošiem, miljoniem lietotāju, ja jūs pārvērsties etrade.com.
Tātad tā jums varētu būt vairāk nekā 4 miljardus lietotājiem,
tiem lietotājiem jums ir varētu būt vairāk nekā 4 miljardus darījumus laika gaitā -
pērk un pārdod, un lietas savā vēsturē.
Tātad, ja jūs prognozēt - atkal, tie ir labi problēmas ir, ja jums ir šī daudz datu -
ja jūs prognozēt datus pārsniedz lielumu int,
iet ar kaut ko līdzīgu BIGINT ir virziens nav pietiekami bieži pieņēmusi dizaineri
jo cilvēki skaitlis nav gatavojas būt problēma,
bet tas ir tas viegli izvēlēties kaut ko lielāku nekā.
Decimālā mēs esam izmantojot 7 PSET, kas nosaka fiksētu precizitāti
lai jūs varētu izvairīties no jautājumiem, iesaistot pludiņus un dubultspēlēs un Reals un tamlīdzīgi.
>> Un tad tur ir dažas citas jomas šeit. Mēs vilnis mūsu rokās pie viņiem zināmā mērā.
Bet datumi, laiki visiem ir noteikta formāta MySQL,
un priekšrocība uzglabāšanas datumiem kā datumi un ne varchars
nozīmē, ka datubāzes var reāli pārformatēt tos dažādos formātos,
vai ASV formātā vai Eiropas formāts vai līdzīgi - tomēr vēlaties to -
daudz efektīvāk nekā tad, ja tas bija tikai daži vispārējs varchar.
Un tad tur ir kāda cita binārā, varbinary, burbuļus.
Tie ir bināro lieli objekti, un jūs varat arī saglabāt bināro datu
kā arī ģeometrisko datu bāzē.
Bet mums mēs parasti rūp Ints un varchars un līdzīgu.
Pieņemsim pabeigt līdz šo piemēru ar māju.
Māja es esmu gatavojas patvaļīgi teikt būs 255 simboli.
Tad noklusējuma vērtību mēs varētu darīt.
Mēs varētu pēc noklusējuma likt ikvienam Mather namā, piemēram.
Tas ir, kā mēs varētu norādīt, ka datubāze
jānodrošina, ka kāds vienmēr ir vērtība. Bet es ņemšu atvaļinājumu, ka būs.
Faktiski, lai cilvēki, kuri dzīvo pie universitātes, nevis mājā,
varbūt es tiešām gribu norādīt, ka noklusējuma vērtība māja ir NULL,
un tad man ir nepieciešams, lai pārbaudītu šo lodziņu un pateikt bāzi, tas ir labi, ja lietotāja māja ir NULL.
>> Atkal, šis ir vēl viens aizsardzības mehānisms var ieviest
tāpēc jums nav pat ir nodot to savā PHP kodu obligāti.
Datu bāze nodrošina, ka lietas ir vai nav NULL.
Un tad visbeidzot, īpašības.
Neviens no šiem ir tiešām svarīgs.
Binārā, neparakstīts - neviens no tiem ir būtiska, lai varchar.
Indekss.
Vai kāds zina, vai atcerēties, vai ir minējums par to, ko indekss
kaut ko līdzīgu māju?
Arī tas ir patiesībā svarīgs un samērā viegli dizaina lēmums.
Tiem, kas vēl nav redzējuši, piektdien mēs runājām īsi par primārās atslēgas.
Jo datubāzē tabulā, primārā atslēga ir lauks vai kolonna
kas unikāli identificē rindas tabulā.
Tātad pašreizējā tabulā mums ir ID, mums ir vārdi un e-pastiem.
Kura no tām ir labākais kandidāts būs primārā atslēga,
kuru uzdevums ir unikāli identificē rindas?
Droši ID.
Varbūt mēs varētu arī izmantot to, ko gan?
Varbūt jūs varētu izmantot e-pastu, jo teorētiski tas ir unikāls
ja cilvēki lieto e-pasta kontiem.
Bet realitāte ir tāda, ka, ja jūs izmantojat ciparu ID, piemēram 1234,
tas ir tikai 32 biti, bet e-pasta adresi, varētu būt šī daudz baitu vai tas daudz baitu.
Tātad efektivitātes ziņā uz unikālo identifikatoru,
tas mēdz būt laba prakse tikai izmantot int
pat ja jums ir kāda stīgu kandidātu, ka jūs varētu varbūt izmantot.
>> Par kaut ko līdzīgu māju, tas nedrīkst būt primārā atslēga
jo tad tikai 1 cilvēks varētu dzīvot Mather un 1 persona Currier un līdzīgu.
Tāpat, tas nedrīkst būt unikāls.
Starp sākumskolu un unikāls atšķirība ir tā, ka gadījumā, ja mūsu pašreizējās tabulas,
ID būtu jābūt primārai, bet e-pasts nav primārais par iemeslu mēs tikko minēts -
sniegumu - bet tas tomēr ir unikāls.
Tātad jūs varat izpildīt unikalitāti neveicot prasību
ka tas ir super svarīgi primārais lauks.
Bet tas viens ir diezgan noderīga: rādītājs.
Ja jūs zināt jau iepriekš par savu galīgo projektu, par 7 PSET, vai vispār,
ka šis lauks māja būs kaut kas jums meklēt partiju
izmantojot izvēlieties atslēgvārdu vai kaut kas cits,
tad jūs varat preemptively pateikt bāzi strādāt tās burvju
un pārliecinieties, ka tas rada atmiņā neviena iedomātā datu struktūras nepieciešams
paātrinātu meklēšanu, pamatojoties uz māju.
Varbūt tas būs izmantot hash tabulu, varbūt tas būs izmantot saistīto sarakstu.
Patiesībā, tas ir tendence izmantot koku, bieži struktūru sauc par B-koks -
nav binārs koks, bet B-koks - kas ir ļoti plašs koks
ka jūs varētu redzēt klasē piemēram CS124, datu struktūras klasē.
Bet īsi sakot, jums nav jāuztraucas par to, kad, izmantojot smart datu bāzes programmatūru.
Jūs varat vienkārši pateikt to, "indekss šo lauku, lai es varētu meklēt to efektīvāk."
>> Ja jūs atstāt šo off, un jūs mēģināt meklēt ikvienam datubāzē, kas dzīvo Mather,
tas pāriet uz lineāru meklēšanu.
Un, ja jūs esat ieguvuši 6000 undergrads visu dzīvo kādā mājā,
jūs gatavojas meklēt visu tabulu, lai atrastu Matherites,
tā kā, ja jūs sakāt indekss, cerams, tas būs kaut tuvu logaritmiskā meklēšanu
lai atrastu šāda veida studentiem.
Tas ir tikai bezmaksas funkcija, lai ieslēgtu,
pat ja tas nāk par cenu kādu daudzumu telpā.
Visbeidzot, auto-pieaugumu, tas AI lauks,
kas nozīmē tikai tad, ja tas ir int un jūs nevēlaties, lai rūpētos, lai pieauguma pats
Katru reizi, tur jauns lietotājs, pārbauda,
un katram lietotājam, kas izpaužas ievietots automātiski saņemt jaunu ID.
Pieņemsim uz Saglabāt, un tagad pieņemsim atrast vainu ar šo dizainu.
Ja es dodos uz Pārlūkot, paziņojums, ka gan Maiks un mana māja ir NULL.
Es varu izmantot phpMyAdmin, lai rediģētu šo manuāli.
Es varu iet šeit un ierakstiet Mather un pēc tam hit Enter,
un tagad paziņojums tabula ir atšķirīga.
Bet pamanīt es varētu darīt kaut ko citu, kā arī.
Dāvida ID ir 1, tāpēc phpMyAdmin atkal ir tikai administratīva līdzeklis;
tas nav kaut kas jūsu lietotāji arvien dodas uz redzēt.
Tātad, ja es tā vietā uz SQL cilni uz augšu augšas -
un atkal, 7 PSET būs jūs iepazīstināt ar vairāk šo jautājumu -
Es var manuāli izpildīt SQL strukturēta vaicājumu valoda komandu
UPDATE lietotāju SET māja = 'Pfoho' WHERE id = 1.
Šie SQL vaicājumi ir, labi pietiekami, diezgan lasāma no kreisās uz labo pusi.
Atjauninātu lietotāju tabula, kas lauku sauc māju Pfoho
ja lietotāja ID ir 1.
Vai es pat varētu darīt, ja e-pastu = 'malan@harvard.edu ".
Tik ilgi, kamēr, kas unikāli identificē mani, kas varētu arī strādāt.
Bet ID mēdz būt augstākas veiktspējas, tāpēc pieņemsim darīt.
Pieņemsim noklikšķiniet Go. Labi, lecture.users neeksistē. Kas ir mana kļūda?
Kas tabulā faktiski aicināja šeit?
To sauc studenti tikai tāpēc, ka mēs to izdarījām šeit augšējā kreisajā stūrī.
To sauc studenti, ne lietotāji. Tātad uz Doties tagad.
1 rinda ietekmē. Vaicājums took 0.01 sekundes.
Ja es noklikšķiniet Pārlūkot tagad, tagad Malan dzīvību Pfoho.
Tātad tas ir vēl viens no SQL garšu, bet PSET būs staigāt jums caur mazliet vairāk par to.
>> Tur muļķīgs lēmums Esmu jau šeit.
Es gribētu apgalvot, ka šī datubāze dizains ir neefektīva
jo vairāk cilvēku es pievienot studentus galda,
vairāk no mums sākt piebilstot, vairāk par TFS es sāku piebilstot,
mēs esam gatavojas sākt, lai redzētu darbinieku atlaišanu šajā tabulā?
>> Yeah. [Students] Redzot, ka tas ir skolēniem, mēs esam izmantojot pašu [dzirdams]
Pats - Tiesības, tieši tā.
Tātad, ja 400 cilvēku dzīvo Mather, sniegt vai pieņemt,
beidzot šī tabula būs ir 400 rindas, kas saka "Mather", "Mather,"
"Mather", "Mather", "Mather."
Mēs cienām visus šos baitu, un tur no takeaways pāris tur.
1, tur traks stūra gadījumā, kad, ja kāds maksā daudz naudas
un pārdēvē Mather, mums tagad ir jāmaina visa mūsu datubāzē tabulas.
Tas nav gatavojas notikt bieži, lai gan Pfoho reiz tika saukta North House pirms 15 gadiem,
tā tas notiek. Bet tas vēl nav viss, kas pārliecinoši.
Vairāk pārliecinoša par stūra lietas, piemēram, ka nepieciešams atjaunināt datus, kas nav fasēti
par datubāzes kāpēc jūs uzglabātu Mather atkal un atkal un atkal un atkal?
Tas ir par simboliem, 6 simboli daudz.
Mēs nevaram darīt vēl labāk nekā tas, īpaši Pforzheimer?
Protams, mēs varam darīt labāk, nekā, ka daudzi rakstzīmes.
Kāpēc ne tikai saista ar unikālu identifikatoru, ar katru māju
un veikals, kas katram lietotājam? Tāpēc pieņemsim mēģināt šo.
Nevis tikai izmantot studenti tabulu, ļaujiet man iet uz augšu uz manu lekciju datubāzē šeit augšējā kreisajā stūrī.
Pamanīt šeit tā saka Izveidot tabulu.
Ļaujiet man izveidot jaunu tabulu sauc māju.
Sleju skaits būs 2. Enter.
Tagad man ir 2 laukus.
Es esmu gatavojas nosaukt šo vārdu, un tas būs varchar 255 garuma,
>> bet tas ir diezgan patvaļīgi. Ļaujiet man nodot šo noteikti šeit pēc vienošanās.
Tātad nodot ID šeit. Dosim Katrai mājai unikālu identifikatoru.
Dosim katras mājas nosaukumu.
Pieņemsim norādīt, ka identifikators būs neparakstīts tikai pēc vienošanās izmantot tikai pozitīvus skaitļus.
Iesim uz priekšu un dot šo automātiskās pieauguma apstākļus tagad.
Un vai mums vajag kaut ko citu?
Iesim uz priekšu un noklikšķiniet uz Saglabāt.
Tagad man ir otrais tabulu.
Pamanīt, jo malā tas ir nedaudz mistisks SQL komandu
kas jums būtu bijis rakstīt manuāli, ja ne izmantojot administratīvu rīku, piemēram, phpMyAdmin.
Tātad vēl viens iemesls, mēs to izmantojam.
Tas ir lieliski noderīgs veida pedagoģiski jo jūs varat noklikšķināt apkārt
un izdomāt, kā lietas strādā, tikai kopējot un ielīmējot ko phpMyAdmin izdarīja.
Bet Izveidot tabulu komanda ir tas, ko bija tikai izpildīts, un šeit ir mana galda.
Ļaujiet man iet uz priekšu tagad izmanto neapstrādātu SQL nevis oversimplify, noklikšķinot uz cilnes Ievietošana.
Ļaujiet man darīt INSERT INTO māju,
un es esmu gatavojas teikt no mājas nosaukums ir nāksies vērtība "Mather".
Viss. Tas sintakse ir nedaudz vairāk mistisks.
Tas ir vārds no jomām, mēs vēlamies, lai ievietotu.
Tās ir vērtības, mēs vēlamies ievietot šajās jomās. Ļaujiet man uz Doties.
1 ievietota rinda bija 0,02 sekundes. Ļaujiet man noklikšķiniet uz Pārlūkot tagad.
>> Pamanīt, ja es noklikšķiniet uz Pārlūkot, tur Mather, kuras ID ir ar automatizācijas numurs 1.
Ļaujiet man darīt citu. Ļaujiet man aiziet uz SQL tab.
INSERT INTO mājām. No mājas nosaukums ir nāksies vērtību Pfoho un tā tālāk.
Iet. Un es varētu turpināt darīt to atkal un atkal un atkal.
Vai, ja jūs garlaikoties izmantojot phpMyAdmin, jūs varat vienkārši izmantot cilni Ievietot
un nav rakstīt neapstrādātu SQL.
Jūs varat vienkārši bang out ātrāk, uzrakstot, piemēram, Currier, Enter,
un tagad, ja mēs noklikšķiniet uz Pārlūkot, tur Currier ar ID gada 3.
Tātad tas ir tas, ko mēs saprotam ar auto-pieaugumu.
Bet tagad mums ir noteikt kaut kas studentiem.
Jo studenti kādi būtu datu mājas veida lauka tagad būt?
Tas būtu int, vai ne?
Tātad mērķis šeit ir faktors, kas, citādi zināma kā normalizēt, tabulās
tāpēc, ka mums nav uzglabāt informāciju lieki kāds no maniem galdiem.
Un atkal, ceļš mums bija šeit gatavojas teikt Mather, Mather,
Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, kas ir ļoti lieks
runājot par wastefulness par chars.
Tāpēc ļaujiet man iet uz priekšu un mainīt, noklikšķinot struktūra,
un ļaujiet man iet uz priekšu un pārbaudīt off mājas laukā, noklikšķiniet uz Mainīt
un tagad es esmu gatavojas mainīt to par int.
255 ir vairs nav nozīmes.
Ļaujiet man iet uz priekšu un saka, ka ir jauki, ja tas joprojām ir NULL. Saglabāt.
Tagad galda studenti ir mainīts veiksmīgi,
un pamanīt atkal māja ir int.
Kā malā, ignorēt numuru iekavās, kad runa ir Ints.
>> Tas ir mantojums iemesli.
Atpakaļ dienā, kad jums nav GUIs, jūs tā vietā bija komandrindas vidē,
uz 10 un 11 attiecīgi norādīts, cik daudz rakstzīmes jums vajadzētu parādīt
termināla logā, lai reāli parādītu laukus.
Tam nav nekāda sakara ar bitu garumu faktiskās jomā, tāpēc mēs vienkārši ignorēt to, ka tagad.
Tagad man ir jāiet šajā tabulā.
Un, ja Dāvids dzīvo Mather, māja nav jābūt 0,
kas ir noklusējuma int vērtība vistuvāk NULL.
Viņam vajadzētu dzīvot 1 mājā.
Pieņemsim patvaļīgi teikt, ka Mike dzīvo Pfoho, tāpēc māja numurs 2.
Tagad mana galda izskatās nedaudz vairāk mistisks.
Bet uzskatu efektivitāti.
Es esmu tagad, izmantojot tikai 32 bitiem, lai noteiktu māju,
kas nozīmē, ka ir tikai 1 kanonisko definīcija manas mājas Mather un Pfoho
un tas, kas mājas tabulā.
Tātad, ja es vēlos, lai tagad atkal šīs tabulas, domāt par to šādā veidā.
Šeit man ir mana studenti galda, un uz labajā pusē tur šie skaitļi, 1 un 2.
1 ir Mather, 2 ir Pfoho.
Mums ir šie paši numuri šajā citā tabulā, ko sauc mājas,
1 un 2 un 3 par šiem 3 mājām.
Ko mēs tagad vēlamies darīt, ir jābūt iespējai ar kodu, PHP un SQL,
lai sakārtotu no atgriezties šīs tabulas, kur, ja tie ir studenti, un tie ir mājas,
Mēs vēlamies, lai kaut kā apvienot tos tā, ka 1 līnijas ar 1,
2 rindas klajā ar 2, un lai mēs varētu izdomāt, kur David
un kur Maiks un kur ikviens cits dzīvo.
Lai to paveiktu, mēs varam izpildīt SQL vaicājumu, piemēram, šādi.
SELECT * FROM studenti PIEVIENOJIES namu -
Un tagad kādās jomās mēs gribam pievienoties uz?
Tātad students.house = houses.id.
>> Mazliet noslēpumains, bet šī daļa ir burtiski izveidot jaunu pagaidu tabulu
tas rezultāts savieno studentiem un mājas.
Un kā jūs vēlaties apvienot padomus par manu pirkstiem šeit?
Uzstādīt studentu māja lauku vienāds nami "ID jomā.
Un, ja es tagad uz Doties, man tieši to, ko es cerēju.
Deivids ir Mather, Maiks ir Pfoho, un es arī redzēt unikālu identifikatoru.
Bet jautājums ir tagad man ir visa tabula.
Un tā takeaway šeit ir par 7 PSET vai tiešām par galīgo projektu:
Ja konstatējat, ka esat uzglabātu ikvienu informāciju lieki,
vai tas ir nams, varbūt tā ir pilsēta, valsts, un ZIP
kur ZIP parasti var, bet ne vienmēr var izmantot kā unikālu identifikatoru,
iet cauri pildot garīgi un tad ar kaut ko līdzīgu phpMyAdmin
Faktoringa, ka kopīgiem datiem, jo ​​īpaši, kā jūsu mājas lapā izpaužas vairāk labi izmanto
un vairāk populārs, tas ir, kā jūs pārliecināties, ka viss ir super ātri,
dodot datubāzi tik daudz mājieni par to unikalitāti, cik iespējams.
Tas bija daudz.
Kādi jautājumi? Labi. Paņemsim 5 minūšu pārtraukumu tur un pārgrupēt.
Labi.
Turpmāk ir piemērs, kas tika izmantota pirms dažiem gadiem, kad man bija CS161,
kas ir operētājsistēmas klasē koledžā
kas ir zināms par to, pārsteidzošs, bet traks darba apjoms,
un tas koncentrējas tiešām par dažiem zema līmeņa problēmas, kas rodas operētājsistēmās
un arī pat pasaules datubāzēm.
>> Stāsts, kas bija teicis mans profesors, Margo zelteris, šajā gadā bija šāds.
Pieņemsim, ka jums ir maz kopmītnes ledusskapis par jums un jūsu kaimiņiem
un jūs abi patiešām patīk pienu.
Tātad jūs nākt mājās no klases vienas dienas, jūsu kaimiņiem vēl nav tur,
atverot ledusskapi, un tu saproti, "Ak nopelt, mēs esam no piena."
Tātad jūs aizvērt ledusskapi, jūs staigāt pāri ielai uz CVS
un saņemt aizvien garās rindās, lai nopirktu kādu pienu CVS.
Tikmēr jūsu kaimiņiem nāk mājās no viņa vai viņas klasē,
nonāk telpā, atver ledusskapi patiešām vēlas kādu pienu,
atver ledusskapi un, "Sasodīts, nē piens."
Lai viņš vai viņa aizver ledusskapi, pastaigas ārā pa durvīm, un iet uz DBP
vai kaut kas nav CVS kur jūs neesat gatavojas kliegt uz otru
iet saņemt pienu.
Protams dažas minūtes vēlāk, jums abiem nokļūt atpakaļ mājās
un tagad jums ir divreiz tik daudz piena, kā jūs faktiski gribēja.
Un ir piens, tagad tas notiek, lai iet slikti, jo jums patīk pienu
bet jums nav īsti kā piens, tāpēc tagad jums ir pārāk daudz piena, tāpēc tas būs skābs.
Tas ir šausmīgi, šausmīgi situācija.
Kas varētu būt atrisināt šo nekonsekvenci, ja Jums bija pirmais istabas mājās? Jā.
[Students] Jums ir atstājuši piezīmi. [Smiekli]
Labi. Jums vajadzētu būt atstājis zīmīti.
Jums vajadzētu būt nodot Post-it piezīmi vai, piemēram, sakot, "Gone piena,"
un tad jūsu kaimiņiem konceptuāli būtu izslēgta no faktiski darām.
Vai jūs varētu iet 1 solis tālāk.
Jūs varētu burtiski bloķētu ledusskapi ar kādu atslēga,
un tagad jūsu kaimiņiem būs burtiski izslēgt no ledusskapja.
Ja mēs vispārināt atpakaļ uz plānošanu,
Jūs varat gandrīz iedomāties ledusskapja, jo daži no mainīgo veida vai struct,
sava veida konteinera informācijai.
Problēma būtībā ir tā, ka jums abiem bija atļauts apskatīt
vai lasīt stāvokli šajā datu struktūru,
bet tu skatījies to dažādos laikos un vēl jums abiem pieņēma lēmumu
pamatojoties uz stāvokli pasaulē šajās dažādos brīžos laikā.
Tātad bija jums bloķēta ledusskapi, tu būtu vismaz izvairīties jūsu kaimiņiem
No tā ir varējusi pārbaudīt stāvokli pasaulē,
lai viņš vai viņa nevarēja veikt to pašu lēmumu.
Tā datubāzēm, kā izrādās, ir šī problēma pastāvīgi.
>> Redzēsim, vai mēs varam veidot scenāriju.
Pieņemsim, ka tu esi sava veida slikts puisis, un doties uz Bank of America
vai viens no citām vietām laukumā ir pāris bankomāti blakus,
un kaut jūs sapratu, kā dublēt ATM karti - nav tik grūti.
Tas ir tikai magnētiskās lentes.
Un tā, ko jūs vēlaties, lai mēģinātu darīt, ir spēlēt šo spēli
kurā jūs likts 1 karti 1 mašīna, citu karti uz citu mašīnu,
un jūs būtībā vēlaties izmēģināt, lai izņemtu naudu vienlaicīgi,
jo iedomājieties, ka stāsts iet šādi.
Kreisajā pusē mašīna ņem savu karti un PIN,
un tad jūs sakāt: "Dod man $ 100."
ATM ir ieprogrammēts, lai vispirms darīt izvēlieties savā datubāzē vai līdzvērtīgā -
neatkarīgi datubāze tas izmanto - lai redzētu vai tas lietotājam ir vismaz $ 100 viņa konta?
Ja tā, tad izspļaut $ 100 un atņem $ 100 no savas bilances.
Bet, protams, ja tur ir vairākas mašīnas vietas vai vairāki veidi inspekcijas
stāvokli šajā pasaulē, banka velvēt, lai redzētu, cik daudz naudas jums ir,
pieņemsim, ka tikai nejauši mašīnā pa kreisi un pa labi
gan uzdot šo jautājumu aptuveni tajā pašā brīdī.
>> Un tas noteikti var notikt. Bankomāti ir datori šajās dienās.
Tātad, ja pa kreisi mašīna saka: "Jā, jums ir vismaz $ 100,"
Tikmēr par tiesībām mašīna saka: "Jā, jums ir vismaz $ 100,"
tad gan no tiem doties, lai pabeigtu savas programmas un faktiski izspļaut $ 100
un saka: "Agrāk jums bija $ 200."
"Ļaujiet man atjaunināt mainīgo tagad būt $ 100 palicis kontā."
Bet, ja viņi abi ir jāpārbauda sava konta atlikumu, un konstatēja, ka tā ir 200 $
un abi no tiem, tad darīt to math un teikt 200-100,
mašīnas ir potenciāli izspļaut divi $ 100 rēķinus katrā mašīnā,
bet tie esam tikai atjauninājis savu summa konta bilanci būt 100 ASV dolāru.
Citiem vārdiem sakot, jūs esat izņemts $ 200, bet tāpēc, ka viņi pārbauda stāvokli pasaulē
vienlaicīgi un tad pieņēma lēmumu, pamatojoties uz šo vērtību,
viņi varētu darīt to math visbeidzot pareizi.
Tātad bankas situācijā pārāk jūs patiešām vēlaties, lai būtu sava veida lokauts
tā, ka, tiklīdz jūs esat pārbaudījis stāvokli kādu mainīgā
tas ir patiešām svarīgi, piemēram, jūsu konta atlikumu,
neļaujiet kāds cits pieņemt lēmumus, pamatojoties uz to, līdz esat beidzis darāt jūsu lieta,
kur šajā gadījumā jums ir ATM pa kreisi.
Lock ikvienam citam out.
Jūs faktiski var sasniegt šo efektu pāris dažādos veidos.
>> Vienkāršākais veids, MySQL ir līnija SQL ka mēs deva jums
kādiem problēmas noteiktajā specifikācijā, kas izskatās tieši tāpat kā šis.
Ievietot tabulā - neatkarīgi no tā sauc - ID, simbols, un prēmijās, akciju skaits,
šādas vērtības, piemēram.
Ja jums nav lasīt spec vēl, šis ir piemērs, iesaistot kā jūs iet par
pērk 10 Akcijas šo penss krājumu prezidentam Skroob,
kuru lietotāja ID notiek, numurs 7?
Šis saka INSERT INTO tabulas šādas personas, simbols, un akciju skaitu
gada 7, "DVN.V", 10 un.
Bet - bet, bet, bet - otrā līnija ir svarīgs.
PAR DUBLIKĀTS atslēgas atjaunināšanas akcijas = akcijas + VALUES (akcijas).
Tik pilnīgi mistisks-meklē pēc pirmā acu uzmetiena.
Bet fakts, ka šī SQL vaicājumu, lai gan tas wraps uz 2 līnijas,
ir 1 garš vaicājumu, tas nozīmē, ka ir atomu
tādā ziņā, ka šis vaicājums nu tiks izpildīts kopā vai nemaz.
Un pēc definīcijas MySQL, tas, kā tās īsteno šo vaicājumu.
Tas pēc definīcijas ir rokasgrāmatā garantēta izpildīt visus uzreiz vai nav vispār.
Šim motivācija ir šāda.
Ja šajā gadījumā jūs mēģināt iegādāties 10 akcijas,,
tas ir sava veida pašu stāstu, kā piens, tas ir sava veida pašu stāstu par ATM.
>> Ja jūs veicat kļūda nav izmantojot šo sintaksi
bet tā vietā izvēloties no datubāzes, lai redzētu, cik daudz akcijas šo penss krājumu
pozīciju prezidents Skroob ir, un pieņemsim, viņam ir 10 akcijas,
un tad dažas sekundes daļu vēlāk jūs tad do UPDATE,
kas ir vēl viens paziņojums SQL ka saka iet uz priekšu un pievienot vēl 10 akcijas
viņa pašreizējā 10 tā, ka ideālā variantā kopējā summa ir 20,
Problēma ir, jo mūsdienu datu bāzu sistēmu un jo šodienas datoriem
Jums ir vairākus procesorus, vairākiem kodoliem -
citiem vārdiem sakot, datori var burtiski darīt vairākas lietas uzreiz -
nav garantijas, ka jūsu IZVĒLĒTIES un jūsu UPDATE šajā gadījumā
gatavojas notikt atpakaļ atpakaļ.
Tik slikti scenārijs būtu jūs SELECT
lai redzētu, cik daudz akcijas šā penss krājumu nav Skroob ir,
un tad tikai nejauši cits datubāzes vaicājums tiek izpildīts -
varbūt tā Skroob citā pārlūkprogrammas logā mēģinot iegādāties 10 akcijas
citā logā pavisam, līdzīgi kā ATM -
un pieņemsim, ka cits jautājums iekļuvis starp SELECT un atjauninājumā.
Tas varētu būt gadījums, ka Skroob tagad zaudē dažas akciju skaits
jo cits process ir pārbaudīt stāvokli viņa pasaulē,
vai viņš saņem vairāk akciju nekā viņš būtu.
Mēs ne iedziļināties, ko tieši šie konkrētie sižetā būtu ziņām,
bet jautājums ir, ja jums ir pārbaudīt mainīgie vērtību un tad pieņemt lēmumu,
ja tur ir kāds cits kaut ko dara, starp šīm 2 paziņojumiem risks,
kā var notikt DAUDZPROCESORU sistēmās, jo kodolu sistēmām,
datori ar spēju darīt vairākas lietas vienlaicīgi, sliktas lietas var notikt
kā bankas konti tiek debetēts nepareizi, pērkot divreiz tik daudz piena,
vai šajā gadījumā nepareizi akciju skaits.
Bet tur ir vieglāk veids, kā domāt par to.
>> Izrādās, ka SQL atbalsta arī, ja jums konfigurēt jūsu galda pareizi,
kaut ko sauc darījumi, ko es gribētu apgalvot, ir faktiski pat vieglāk saprast
par šo, bet tas nav 1-čaulas, tāpēc tas tiešām mazliet vairāk iesaistīties.
Ir burtiski jo SQL sauc START darījums.
Tāpat tur ir SELECT, UPDATE, INSERT, DELETE, un pievienoties un citu ķekars,
ir atslēgvārdi, piemēram START darījumu.
Un ko tu tad darīt kontekstā 7 PSET -
jums nav to darīt ir par 7 PSET, tas ir nepārprotami disclaimed kā nav vajadzīgs,
bet gala projektiem tas var būt noderīgs -
ja jūs zvanu no sākuma DARĪJUMA vaicājumu un tad vēl vaicājumu
un tad vēl vaicājumu un tad vēl, vēl, un vēl,
šie vaicājumi faktiski nav izpildīts, līdz jūs zvanīt SQL izdarīt,
kurā brīdī, vai tas ir 2 paziņojumus vai 20 paziņojumi, tie visi tiks izpildīts uzreiz,
kas nozīmē, neviens cits nevar nejauši nopirkt pārāk daudz piena vai debeta pārāk daudz naudas
vai pirkt pārāk daudz akcijas, jo visas jūsu jautājumiem veiks
atpakaļ atpakaļ atpakaļ atpakaļ.
Un tas ir super svarīgi, jo īpaši, ja jūs darāt kaut kas līdzīgs šim.
Šis ir patvaļīgs piemērs, kas saka pieņemsim atjaunināt bankas kontu
nosakot līdzsvaru vienāds ar bilanci - $ 1000 kur konta numurs ir 2.
Un tad otrais paziņojums ir tagad pieņemsim noguldīt ka ​​1000 $
vērā kāds cits bankas kontā, kura konta numurs ir 1.
>> Citiem vārdiem sakot, šis ir perfekts piemērs, kur jūs vēlaties, lai pārliecinātos
ka abi no šiem apgalvojumiem notikt vai nemaz
jo pretējā gadījumā klients ir gatavojas saņemt ieskrūvē
un jūs gatavojas veikt savu naudu un nevis noguldīt citur,
vai banka ir gatavojas saņemt ieskrūvē kur jūs gatavojas noguldīt naudu
bet faktiski atņem to no lietotāja konta.
Tātad jūs vēlaties, gan no tiem, kas darbojas kopā.
Līdz stāsies pasaules darījumiem.
Tāpēc, ka ir kaut kas, lai saglabātu atpakaļ jūsu prātā,
ne tik daudz par to tikai pēdējā projekta mērķiem,
bet, ja jūs vēlaties, lai jūsu galīgo projektu kaut kur,
ja jūs vēlaties, lai uzsāktu kādu uzņēmumu ap to,
ja jūs vēlaties, lai atrisinātu Daži students grupas problēmu par Campus
un faktiski ir dzīvot, aktīvā mājas lapā, tie ir sava veida smalks bugs, kas var rasties
ja jums nav gluži domāt ar ko var notikt, ja 2 cilvēki
mēģināt piekļūt jūsu mājas lapā burtiski pašā brīdī,
kurā savus jautājumus citādi varētu saņemt caurausta.
>> Gatavs kādu JavaScript, teaser tā?
Šī ir mūsu pēdējā valoda par pusgadu. Labi.
Par laimi, JavaScript izskatās ļoti, ļoti, ļoti līdzīga 2 valodās, C un PHP,
mēs esam darījuši līdz šim.
Nav 7 PSET aktivizētam, bet tas ir neticami noderīgs instruments
kad runa ir darīt tīmekļa galīgos projektus vai tiešām tikai interneta programmēšanas vispār.
Tik ātrs pārskats par kaut ko sauc DOM.
Te ir super vienkārši mājas lapa, kas patiešām ir tikai saka sveiki, pasaule
gan virsrakstā un organismā.
Kā atkāpes ir liecina par kādu laiku,
ir patiešām hierarhija uz interneta lapām.
Es varētu izdarīt šo pašu HTML fragmentu kā koks,
domāju atpakaļ uz mūsu diskusiju par datu struktūru C, šādi.
Man ir dažas īpašas saknes mezgla sauc dokumentu mezglā,
un mēs redzēt analogs tas Javascript tikai brīdi.
Pirmais bērns un vienīgais bērns, kas šajā gadījumā ir HTML tagu.
Nav tiešas kartējot DOCTYPE.
Tas ir īpašs lieta, tāpēc mums vajadzētu vienkārši ignorēt to, kad runa ir par šo DOM,
Šis dokuments Object Model koku.
Ievērojiet, ka HTML tags, ko es esmu attēlota patvaļīgi kā taisnstūri,
ir 2 bērni: galvas un ķermeņa.
>> Tie ir līdzīgi kā izstrādāt taisnstūri.
Tas ir jēga piktogrammām, ka galva ir pa kreisi no ķermeņa.
Ietekme ir tāda, ka galva ir pirmajā kokā.
Tāpēc tur tiešām pasūtīšanas ar koku, kad jūs izdarīt to, kā šis,
lai gan formas un plauktiņš ir patvaļīgi.
Galva tikmēr ir viens bērns sauc nosaukums,
un nosaukums patiesībā ir savs bērns, kas ir "Hello, World",
ko es apzināti vērsa kā ovālā šeit, lai padarītu to nedaudz atšķiras no taisnstūra.
Šie četrstūri ir elementi, bet sveiki, pasaule ir patiešām teksta mezglā.
Tāpēc tas mezglu no koka, bet tas ir atšķirīgs veids mezgla
tāpēc es vērsa to patvaļīgi savādāk.
Tāpat nav ķermeņa ir bērns sauc sveiki, pasaule, kā arī,
tik dažādi mezglu pat ja viņi nejauši pats teksts,
bet es esmu sastādīts to, izmantojot to pašu formu. Tā, kas rūpējas?
Nu, kas ir jauka par HTML ir, ka tas ir šī hierarhijas raksturs.
Un, kas ir jauka par JavaScript un īpaši bibliotēkām, kas ir brīvi pieejami
un populārs kā jQuery, jūs varat pārvietoties koka struktūru tik pārsteidzoši viegli.
Jebkuru no stuff mums bija C ar norādes un šķērsojot koki un recursing uz mezgliem
kreisās bērns uz labo bērnam, visi pēkšņi, mēs varam sakārtot gada pieņemt par pašsaprotamu
kā pārsteidzoši pamācošs, ja ne mazliet nomākta
bet ne gandrīz efektīvs veids, kā iet par programmēšanu.
Un tāpēc ar šīm augstāka līmeņa valodas, piemēram, JavaScript
mēs spētu orientēties šo koku daudz vairāk intuitīvi.
>> Un tiešām sintakse būs diezgan pazīstams.
Ja jūs nekad neesmu redzējis JavaScript pirms, tas ir tiešām jauks atsauce
no Mozilla ļaudīm, cilvēki, kas dara Firefox,
tāpēc justies brīvi, lai pārlūkotu, ka jūsu ērtībai.
Ko jūs atradīsiet - un šie slaidi ir identisks tam, ko mēs izmantojām citu dienu -
Tāpat, galvenais ir pagājis.
Tātad, ja jūs uzrakstīt programmu JavaScript, nav galvenā funkcija.
Tu sāc rakstīt kodu.
Bet galvenais atšķirība starp JavaScript un C un PHP
ir tas, ka tā C un PHP līdz šim ir veikti servera pusē
ko ierīces šajā gadījumā vai vispār ar serveri,
JavaScript pēc konstrukcijas ir parasti veic ar pārlūku.
Citiem vārdiem sakot, jūs varētu rakstīt JavaScript kodu, jo mēs esam par to,
uz servera iekārtas, bet jūs to iekļaut starp jūsu HTML, starp jūsu CSS,
starp jūsu GIF un jūsu PNGs un jūsu JPEG
tā, ka tad, kad lietotājs apmeklē jūsu mājas lapā, ja jūs izmantojat JavaScript,
ka JavaScript kods nāk no servera uz pārlūku,
un tas ir pārlūks, kas faktiski izpilda to.
Tāpēc šī ir jēgpilnas ietekmē pat intelektuālo īpašumu.
Tas ir sava veida dumjš pat domāt par aizsargāt savu IP, kad runa ir par JavaScript kodu
jo pēc būtības par valodu tas izpaužas izpildīts parasti pārlūka pusē.
>> Jūs varat aptumšot to, kas nozīmē, ka jūs varat padarīt to izskatās traki un neglīts
bez tukšumiem, briesmīgs mainīgo nosaukumi, lai būtu grūtāk, lai cilvēki varētu zagt jūsu IP,
bet galvenais ir tas, ka tiek izpildīts pārlūka pusē.
Kaut gan, kā malā JavaScript var izmantot servera pusē,
Visbiežāk izmanto gadījumu šobrīd joprojām ir uz pārlūku.
Un lūk, ko tas izskatās. Šeit ir ja-cits ja-cits būvēt tāpat kā C, tāpat kā PHP.
Šeit ir Būla izteiksme, kad tu "vai" 2 lietas kopā.
Šeit ir, kad tu "un" 2 lietas kopā.
Šeit ir slēdzis apgalvojums, kas ir līdzīgs PHP
jo jūs varat pārslēgties uz dažāda veida vērtību.
Cilpas līdzīgi ir uz cilpas šeit, kas ir strukturēts identiski tam, ko mēs esam redzējuši iepriekš.
Kamēr cilpas, mēs esam ieguvuši darīt, kamēr cilpas.
Mainīgie, kādreiz tik nedaudz atšķiras.
Jums deklarēt mainīgos kā jūs darīt PHP un C,
bet līdzīgi ir JavaScript vāji drukāti.
Jums nav jānorāda int vai peldēt vai string vai kaut kas parasti neko.
Jūs varat norādīt var.
Jums nav jānorāda Var, bet tas ir sekas, ja jums nav.
Parasti, ja jūs izlaist var, tu nejauši radīt globālu mainīgo nevis vietējie.
Tāpēc ļaujiet man ieteikt, ka jūs gandrīz vienmēr tikai teikt var un tad mainīgā nosaukums.
Tas nav veids, tas ir tikai var piemērot mainīgo.
Tas būtu piemērs, vai tas ir 123 vai "Hello, World".
Masīvi ir klāt un sintaktiski līdzīga PHP.
Es saku VAR skaitļus un tad es izmantot kvadrātiekavas atkal deklarēt mainīgo
kuru tips ir masīvs, kas ir šīs konkrētās tajā skaitļus atdalīti ar komatiem.
Un tad visbeidzot, tas ir tikai viens, kas tiešām izskatās citādi.
Atgādināt, ka PHP mēs esam ieviesuši asociatīvas masīvs, lai students
piemēram Zamyla kas varētu izskatīties šādi, kur mainīgais sauc students.
Kvadrātiekavās domāju šeit nāk masīvs.
>> Fakts, ka es neesmu, izmantojot ciparu indeksus, bet stringus - id, māja, un nosaukums -
nozīmē, ka šis ir asociatīvā masīva,
un bultām ar vienlīdzības zīmi un leņķveida kronšteina
nozīmē, ka galvenais ir "id", vērtība ir 1;
galvenais ir "māja", vērtība ir Winthrop nams;
galvenais ir "vārds", vērtība ir Zamyla Chan.
Tātad tur ir 3 atslēgas iekšā šī asociatīvā masīva, no kurām katrai ir sava vērtība.
Mēs esam redzējuši, ka 7 PSET, vai jūs drīz būs, jo JavaScript pašu ideju,
bet tas notiek, lai izskatās šādi.
Tā var students - ne dolāra zīmi un neviena veida pieminēt vēl, bet var -
vienāds un tad atveriet cirtaini bikšturi, jo JavaScript kad jums ir galvenie vērtību pārus,
Jūs faktiski var izmantot kaut ko sauc objekts.
Un tiem no jums, kas tik tiešām APCS vai līdzīgi varētu atgādināt objektus no Java
vai līdzīgas valodas.
JavaScript nav Java, pirmkārt.
Tas bija apzināts dizaina lēmums gadus atpakaļ, lai pieklauvēt off kaut kas cits, kas bija populārs,
tās nosaukums, pat ja tai nav būtiskas saistības ar Java sevi.
JavaScript ir objektus, un veidojot tās kā no cirtaini lencēm papildinājumiem.
Objekti JavaScript ir diezgan daudz līdzvērtīgi apvienību masīvi PHP
kad runa ir par datu glabāšanai iekšpusē no tiem.
>> Bet vēl pārliecinošā JavaScript jūs varat saistīt ļoti viegli funkcijas
iekšpusē objektu, un, lai gan jūs varat izdarīt arī citās valodās,
tas ir diezgan izplatīta paradigma, kā mēs redzēsim.
Īsāk sakot, šis objekts ir students, kurš ir īpaši Zamyla,
un tas ir līdzīgs konceptuāli, tikai sintaktiski atšķiras no tā.
Pieņemsim faktiski izmantot JavaScript failā.
Izrādās tur skriptu tag.
Mēs esam redzējuši stila tagu, un mēs esam redzējuši citiem HTML tagus.
Skripts tag tiešām būs daži JavaScript kodu.
Ļaujiet man aiziet uz ierīces, kur mums ir dažas pirmkods iepriekš sagatavotas.
Man nav ievietojis to vēl uz mājas lapā, bet es darīšu, ka pēc klasi.
Pieņemsim atvērt šo vienu, blink.html.
Atpakaļ 1990, tur bija burtiski HTML tagu sauc mirgot tagu,
un tas bija viens no visvairāk brīnišķīgi overused tagus internetā
kuru jūs apmeklējat kādu 1990.gadu stila mājas lapā un sākt redzēt tekstu mirgot jums patīk tas,
tad marķīzs tagu rezultātus, kas bija teksts iet kā šis.
Viena no retajām reizēm, kad pasaule ir faktiski vienojušās tīmekļa standartu,
ikvienam visur nogalināja mirkšķināšanas tagu pirms dažiem gadiem.
Bet mēs varam atjaunot to ar JavaScript kā demonstrējot varu jums
ja jūs varat uzrakstīt programmu iekšpusē mājas lapā.
Vispirms pieņemsim izlaist jauno stuff un koncentrēties tikai uz veco.
>> Šeit ir vecā sīkumi šajā piemērā.
Man ir HTML tagu, galvas tag, un nosaukums tag.
Tad man ir ķermeņa tag šeit ar div, kas atsaukšana ir tikai taisnstūra sadalīšanu lapas
ka es esmu devis unikālu ID patvaļīgi par "sveicienu", lai,
vienkārši tāpēc man ir veids, kā unikāli atsaucoties uz to, ka ir dažas ļoti vienkāršas teksta:
sveiki, pasaule.
Tagad ļaujiet man ritiniet uz augšu uz augšu šo failu, un redzēt, kas jauns.
Pirmā lieta, kas jauns augšu top ir skripts tag,
un iekšpusē skriptu tag paziņojumā es esmu atzīts funkciju.
Deklarēt funkciju Javascript, diezgan līdzīgs PHP,
Jūs burtiski rakstīt funkcija, tad vārdu funkcijas, iekavas
un varbūt daži argumenti, ja tas aizņem kādu.
Tad man mana cirtaini lencēm, kā parasti, un tagad mums ir dažas nedaudz jaunu kodu,
bet pieņemsim redzēt, ko tas nozīmē.
Tātad VAR div, tas tikai nozīmē, dod man mainīgo sauc div.
Es varētu būt to sauca foo, bet es gribēju, lai to sauc div
iemeslu dēļ, kas būs skaidrs sekundē.
Tad izrādās JavaScript - un tas ir JavaScript kods iestrādāta manā mājas lapā -
ir īpašs globālo mainīgo par veidu sauc dokuments.
JavaScript ir faktiski objektorientēta valoda.
Mēs ne iedziļināties sīkāk 50, kā to, ko tas nozīmē,
bet tagad zinu, ka objekts ir diezgan daudz, piemēram, struct.
Tāpat kā mēs redzējām ceļu atpakaļ, kad viens no ātrāk problēmas komplekti
kur mēs uzdodam daudz informācijas struct,
Tāpat ir jādokumentē īpašu struct kas nāk ar pārlūku,
nāk ar jebkuru mājas lapā. Tas nav kaut es radīju.
Iekšpusē šo dokumentu struktūru, lai gan, jums ir ne tikai datus
bet jums ir arī funkcijas.
>> Un jebkurā laikā jums ir funkcija iekšpusē struktūru, iekšpusē objektu,
to sauc metodi. Bet tas pats.
Metode ir funkcija, kas tikai tā notiek, ir iekšā kaut kas cits.
Tas nozīmē, ka šī īpašā globālo mainīgo sauc dokumentu
ir funkcija sauc getElementById ka burtiski dara to.
Tas kļūs jums elements no DOM, dokumenta objekta modelis koks,
kura ID ir šajā gadījumā sveicienu.
Citiem vārdiem sakot, visu šo laiku mēs pavadījām uz datu struktūras sāk spēlēt šeit.
Šī aina DOM ka mums bija pirms brīža,
pat ja lapa ir nedaudz atšķirīgs, ja man bija div šajā attēlā,
ko document.getElementById varētu atgriezties pie manis būtu vairāk rādītājs
līdz taisnstūrī koku, atsauci uz taisnstūrī koku.
Tātad tas, ko tas nozīmē, lai faktiski zvaniet vienu no šīm funkcijām.
Šajā gadījumā atkal tas div. Tas nav iestāde vai nosaukums.
Tātad, pieņemsim redzēt, ko es pēc tam darīt ar šo div tagad, ka man ir tā iekšpusē šo mainīgo sauc div.
Izrādās ar JavaScript Jums ir iespēja kniebiens CSS jūsu lapas dinamiski.
Līdz šim, visas CSS, mēs esam darījuši, lai gan ierobežoti, ir stila atribūtiem,
vai ja cits ir mēs ieliekam CSS?
Es veida sabojāt šo vienu. Šajā stilā tag augšpusē faila.
Vai trešā vieta ir bijusi?
>> Ārējā faila, kaut. Css.
Tātad tie ir 3 vietas, mēs esam darījuši CSS līdz šim,
bet nozveja ir mēs esam grūti kodē to visu.
Esat nolēmis, kā jūs balodis 7 PSET, mēs nolēmām pirms lekciju, ko mūsu CSS būtu.
Bet, ja jūs vēlaties mainīt savu CSS, jūs faktiski var darīt
ja jums ir faktiskā programmēšanas valodu.
CSS, HTML - ne programmēšanas valodas. JavaScript ir.
Tātad izrādās, ka, tiklīdz esat viens no tiem taisnstūri no koka
sauc DOM, tā pati ir daži dati iekšpusē no tā.
Tā div ka es tikai satvert no koka, ir tas, ko mēs saucam par īpašumu iekšpusē no tā
sauc stilu, un stilu iestādē ir sev īpašums sauc redzamība.
Es zinu, tas tikai, apskatot pat CSS lietotāja rokasgrāmatu.
Izrādās tur redzamība CSS īpašums, kas dara to, ko tā saka.
Tas padara kaut redzamu vai ne, redzams vai ne.
Un kā jūs to, ka tas ir.
Es esmu jautā programmatiski ja šī div redzamība ir paslēpta,
Ko es varu mainīt to? Redzamas.
Cits ja šīs lapas redzamība nav paslēpts, loģiski man darīt to slēpta.
Man nav ne jausmas, kāpēc tas ir redzams un slēptās un nav redzams un neredzams.
Tas bija slikts dizains lēmumu gar ceļu.
Bet tie ir patiešām pretstati CSS: redzams un slēpta.
Viss tas ir tas nozīmē mainīt CSS manu failu un izslēgt, un izslēgt
par konkrēto div.
Bet atkal, tas ir funkcija sauc mirgot. Kad ir mirgot funkciju sauc?
Izrādās, ka tur ir cita īpaša globālo mainīgo sauc logu,
līdzīgi garā uz dokumentu, bet tā kā dokuments attiecas uz jūsu mājas lapā,
tāpat DOM koks, HTML jums nosūtīts no servera,
logu attiecas uz hromu ap to, adrešu joslā, virsrakstjoslas,
un visu, kas stuff ap jūsu mājas lapā.
>> Un izrādās, ka logs objekts ir īpaša funkcija to iekšā sauc setInterval
ka tas, ko tā saka.
Tas būs noteikt intervālu - šajā gadījumā ik 500 milisekundes -
un, ņem uzminēt, kāda ir tā gatavojas darīt ik pēc 500 milisekundēm?
Tas notiek, lai izpildītu šo funkciju mirgot.
Un, kas ir jauki ir tas, ka mēs varētu darīt to C, pat ja mēs nekad nebija.
C tiešām ir kaut kas ko sauc funkcionālo norādes, kur var nodot funkcijas apkārt
kā argumentus.
Līdzīgi JavaScript jūs varat iet nosaukumu funkcija citā funkciju.
Un paziņojums, ko es esmu dara. Es to nedaru.
Ja man iekavas pēc mirgot, tas nozīmētu zvanu mirkšķināšanas funkciju.
Ja es tos izlaist, tas nozīmē, ka šeit ir mirgot funkcija
lai setInterval varat zvanīt tā ik 500 milisekundes.
Tāpēc gala rezultāts, zvērīgās gan tas ir, ka, ja es dodos uz localhost un iet uz blink.html,
Man tagad ir šo notiek atkal un atkal.
Un, ja es tiešām Pārbaudiet Element, pieņemsim redzēt, ja mēs varam redzēt.
Ļaujiet man Pārbaudiet Element, ļaujiet man ritiniet tikai mazliet,
ļaujiet man izvēlēties Elements nekā šeit, un paziņojums DOM iekšpusē Chrome inspektors.
Tas burtiski mainās un atpakaļ ik pēc 500 milisekundēm.
Ja mēs ejam uz mūsu draugs Nate,
ja jums kādreiz prātoju, kā tas strādā, līdzīgu ideju ar intervālu,
bet Nate ir faktiski padarot ļoti efektīvu krāsu izmantošanu šajā konkrētajā gadījumā šeit.
Tātad, ko vēl mēs varam reāli darīt ar šo?
Pieņemsim atvērt citu piemēru un izmēģināt kaut ko
tas programmiski vēl noderīgāku nekā padarot lietas mirgot.
Ļaujiet man iet mūsu formu direktorijā šodien un iedziļināties form0.
Tas bija ugliest iespējamā forma ka es varētu nākt klajā ar,
un ļaujiet man tikai parādīs, ko tas izskatās pārlūkprogrammā.
>> Ļaujiet man iet localhost / Veidlapas, un tas ir form0.
Tas ir super neglīts HTML forma, kas ir dažus laukus uz e-pastu, par paroli,
parole, un pēc tam nedaudz rūtiņu piekrist dažiem nosacījumiem.
Nozvejas ir, ja es apmeklēt šo veidlapu, un es nevēlos, lai dotu jums savu e-pasta adresi,
Es nevēlos piekrist noteikumiem un nosacījumiem varbūt, es varētu noklikšķināt Reģistrēties
un tas ļauj man cauri vienalga.
Tas notiek iesniegt stulbu PHP failu ar nosaukumu dump.php.
Visiem tas ir izdrukāt saturu tikai diagnostikas nolūkos _GET $.
Tas bija tas, ko iesniedza lietotājs tikai tagad.
Bet pieņemsim, ka mēs vēlamies, lai apstiprinātu lietotāja veidlapu iesniegšanas.
Ļaujiet man iet versijas 1.
Tas ir form1.html. Tas izskatās estētiski tikpat slikti, bet paziņojums, kā iedomātā tas ir.
Ja es noklikšķiniet reģistrs nesadarbojoties, man kliedza pie.
"Jums ir sniegt savu e-pasta adresi."
Labi. Tāpēc ļaujiet man mēģināt to. Tā malan@harvard.edu. Man nav nepieciešama parole.
Reģistrēties. "Jums ir jānorāda parole." Labi.
Tāpēc es sniegs paroli Crimson. Reģistrēties.
"Paroles nesakrīt." Man ir tagad rakstīt sārtināt šeit.
Es nejauši pārbauda to. Reģistrēties.
"Jums jāpiekrīt noteikumiem un nosacījumiem." Labi. Piekrītu tur. Reģistrēties.
Un tagad tā rāda man diagnostikas produkciju tur.
>> Tātad, ko tikko notika?
Mēs esam bija šī spēja, lai apstiprinātu veidlapu iesniegumus.
Patiesībā, ja jūs pikējošais 7 PSET, tur atvainoties funkcija
kas padara to diezgan viegli bļaut lietotājs ar ziņu uz ekrāna.
Es esmu, izmantojot nedaudz atšķirīgu mehānismu, brīdinājuma funkciju,
kas nav funkcija, kas ir pasmaidīja pēc, jo tas padara ļoti neglīts lietotāja ziņas.
Bet pieņemsim redzēt, ko es daru šeit.
Tas ir form1.html, un ievēroju, ka man ir daži diezgan pazīstams sintaksi:
ķermeņa tag, forma tag, darbība atribūts, metode atribūts.
Bet pamanīt es esmu devis manu veido unikālu ID ērtības.
Tad man e-pasta lauks, kura tips ir teksts,
paroles lauks, kura tips ir parole, apstiprinājums joma, kuras tips ir parole,
un tad rūtiņu, kura vārds ir vienošanās nekā šeit, veids ir rūtiņu.
Un tad es esam ieguvuši iesniegt pogu.
Bet paziņojums augšpusē, ko vēl man ir.
Pirmkārt, tur ir vēl viens no skriptu tag izmantošanu.
Ja jums ir daži JavaScript kodu citu failu, tāpat kā ar CSS jūs varat iekļaut to.
Un jūs, ka ar skriptu avotu, un tad pamanīsiet es esmu savieno šķietami
līdz googleapis.com uz ļoti ilgu ceļu, bet faila nosaukums beidzas jquery.min
par minimumu JS..
jQuery ir super populāra bibliotēka JavaScript, kas tikai padara JavaScript
visi vairāk lietotājam draudzīgs, lai izmantotu.
Tas ir faktiski kļūst de facto standartu.
Tātad, pat ja tas, ko jūs gatavojaties redzēt nav tīrs JavaScript per se,
tas ir uz augšu JavaScript līdzīgi kā CS50 bibliotēka bibliotēka ir slānis
virsū zema līmeņa C kodu, realitāte ir gandrīz ikvienam internetā to izmanto.
Tātad tie nav mācību riteņiem. Tas ir tikai labāko praksi šajās dienās.
Tagad paziņojums zemāk, ka ir mana skriptu tag, un paziņojums, ko es esmu darījusi šeit.
Izrādās, ka jQuery dara kaut nedaudz iedomātā.
JavaScript ir dolāra zīmes, bet tie ir bezjēdzīga.
>> Tie ir, piemēram, vēstules vai B vai C.
jQuery ir vienkārši pieņēma Konvenciju vai kārtot kas apgalvo, ka to
ka $ būs viņu īpašs simbols.
Tā tiklīdz jūs ielādēt šo globālo JavaScript failu šeit ar skriptu tag,
jums ir piekļuve īpašu globālā mainīgā ka sauc $.
Tas ir vairāk pareizi sauc jQuery, bet tas neizskatās gandrīz tikpat seksīgs kā $.
Bet $ nav īpaša nozīme. PHP tā bija īpaša nozīme.
Jums bija, lai to priekšā mainīgo.
Tas ir tikai seksīgs lieta, ka viņi ieguva.
Kas šeit notiek?
Paziņojums Es esmu iet uz jQuery funkcijai manu globālo mainīgo dokumentu
un tad es esmu aicinot. gatavs.
Ko jQuery būtībā tas ir tas ļauj jums veikt dažas vaniļas JavaScript lietas
tāpat dokumenta objektu, logu objekts,
un, ja jūs iet to uz jQuery funkcija -
un atkal, lai būtu skaidrs, tas ir funkcija sauc jQuery -
ko tas ir tas atgriežas pie jums īpašu versiju dokumenta
kas ir vairāk funkciju saistīti ar to.
Tātad neapstrādātā JavaScript nav gatava funkcija,
bet, ja jums iet dokumentu uz jQuery funkcija, pirmkārt,
tas atgriežas pie jums īpašu dokumenta versiju objekta
kas ir vairāk iedomātā iezīmes.
Un tas ir iemesls, kāpēc cilvēki patīk. Tas tikai padara lietas vieglāk darīt, jo mēs esam par to redzēt.
Tātad, ko tas no koda līnijas nozīmē?
Šī koda līnija šeit ir, ja dokuments ir gatavs -
citiem vārdiem sakot, tiklīdz pārlūkprogramma tiek darīts lasot šo failu augšas uz leju -
iet uz priekšu un izpildīt šādu funkciju.
Kas īsti interesanti JavaScript - un PHP ir tas, kā arī -
ir anonīma funkcijas.
Javascript jūs varat paziņot funkcijas, kurām nav nosaukuma, bet tie ir ķermenis.
Pamanīt to, kas notiek šeit.
>> Tas ir funkcija sauc gatavs, un tas nozīmē tikai to šādi
kad viss mājas lapa ir gatava, kad tas viss tika lasa no servera.
Ko jūs vēlaties darīt? Es gribu izpildīt rieciens kodu.
Ievērojiet, ka mēs nevēlamies izpildīt šo kodu uzreiz.
Ja es izlaist šo, tas nozīmētu uzreiz sākt izpildot šos rindas kodu.
Bet fakts, ka es saku nē, nē, nē, ietiniet to anonīmi funkcija, kā šis
līdzeklis nav izpildīt to vēl, to sauc beidzot.
Mēs redzējām šo brīdi pirms mūsu iepriekšējās formas piemērs.
Ko funkcija vai mēs saucam beidzot, 500 milisekunžu vēlāk? Mirgot.
Tāpēc pati ideja.
Atkal, pat ja tas izskatās mazliet dīvaini, lietojiet tikai tagad uz ticību
ka deklarēt anonīmu funkciju, kas sauc beidzot,
Jūs vienkārši rakstīt funkcija () {
Tātad, ko kods mēs gatavojamies izpildīt beidzot? Šādi.
Arī tas izskatās nedaudz jauns, bet tas nozīmē, šeit ir jQuery funkcija,
un tagad tas ir īsceļu.
Šis HTML fragmentu apakšā ekrāna, protams, ir daži koku pārstāvību.
Tas nav tas. Šī lapa ir daudz interesantāk nekā šī sveiki, pasaules piemērs.
Bet tur ir dažas koks, kas atbilst šo HTML.
Tas būtu sāpes kaklā, ir jāīsteno sava veida rekursīvas funkcijas
lai sāktu pie saknes mezgla un pēc tam atrast mezglu, kura ID ir reģistrācija.
Tātad, ko jQuery padara super viegli mums ir burtiski šo.
Iet uz priekšu un iegūt mani neatkarīgi div vai jebkurā formā, neatkarīgi HTML elements
ir ID reģistrācijas.
Tas ir līdzvērtīgi document.getElementById ("reģistrācija").
>> Kāpēc cilvēkiem patīk jQuery?
Jo tas ir īsāks rakstīt. Bet tas viss tā ir. Tā ir pati ideja.
Atnesiet man tag kura ID ir reģistrācija.
Un, kad tas tagu, kas notiek, ir forma, ir iesniegts,
iet uz priekšu un izpildīt šo kodu.
Tāpēc pieņemsim viens apskatīt tagad, kā mēs darām formu apstiprināšanu.
Sintakse Jāatzīst noslēpumains sākumā, bet kas notiek?
Ja šī koda līnija ir taisnība, es esmu gatavojas kliegt lai lietotājs varētu nodrošināt savu e-pasta adresi.
Kas tad ir šī koda līnijas?
$ Nozīmē jQuery. Tagad nepamanīt.
Tas ir veids kā CSS.
Ja esat ienira CSS vēl, jūs zināt, ka tas nozīmē elements, kura ID ir reģistrācija.
Telpa ir atrast bērnu vai reģistrācijas pēcnācējs, kura nosaukums ir ieejas.
Un tad tas kvadrātiekavās lieta ir mazliet filtrs.
Un pat ja tas izskatās noslēpumains, tas tikai nozīmē, dodieties uz veidlapas, kuras ID ir reģistrācija,
dodieties uz ieejas elementu iekšpusē, kas, kura vārds ir e-pastu,
un pēc tam saņemt savu vērtību, neatkarīgi no tā vērtības notiek, ir -
asdf ja tas ir viss, es drukāti vai malan@harvard.edu ja tas, ko es drukāti.
Tātad, ja veidlapas pasta jomā == nekas vērtība, bļaut pie lietotāja.
Cits ja no paroles lauka vērtība == nekas, bļaut uz lietotāju.
>> Cits ja paroles laukā vērtība nav vienāda vērtība apstiprinājuma jomā,
kas bija cits elements, bļaut uz lietotāju.
Un tad visbeidzot - un tas viens arī ir dažas jaunas sintaksi savu,
bet tad, kad jūs esat redzējuši, tas ir vismaz nedaudz saprātīgāks -
cits ja forma, kuras ID ir reģistrācija ir ieejas elements, kura nosaukums ir līgums
un tas tiek pārbaudīts, iet uz priekšu un kliegt pie lietotāja.
Tāpēc es pilnīgi atzīstu, tas ir pilnīgi milzīgs pie pirmā acu uzmetiena.
Tas ir daudz jaunu sintaksi. Bet visi jQuery šādi šāda veida modeļiem.
Un godīgi, es pat nezināju, tas pastāvēja līdz pāris minūtēm.
Es googled, "Kā jūs pārbaudīt, ja izvēles rūtiņa ir pārbaudīta jQuery?"
un tas ir sintakse, jo tur ir dažādi veidi, kā to dara
ar faktisko neapstrādātas JavaScript kodu.
Tā kā ļoti pirmajā lapā Problem komplekts 7 uzsver,
7 PSET ir ļoti daudz vingrinājumu bootstrapping sevi
kur mēs esam ja, cerams, konceptuālo pamatu, ar kuru risināt PSET.
>> Bet kā tas bieži notiek ar web dizainu, tas ir atkarīgs no jums tiešām kule apkārt,
iekļaut fragmentus no koda un piemērus no Web tik ilgi, cik jūs citēt tos
vienu par šo pirmās lapas noteikumiem,
un saprast, ka mācīšanās HTML, CSS, JavaScript un pat SQL
ir tiešām domāts, lai būtu šo pie-mājās izmantot kā mēs sākt veikt šos mācību riteņiem off.
Un realizēt arī tur ir tik daudz vairāk lietas jūs varat darīt ar pārlūkprogrammu.
Iekšpusē lielākā daļa no šiem elementiem ir citas lietas, ko sauc notikumu apstrādes.
Un, pat ja mēs vienkārši paskatījās tiem sauc onsubmit un onready,
Jūs varat darīt lietas, piemēram onkeydown, onkeyup,
piemēram, kad lietotājs pieskaras taustiņu, jūs varat klausīties par to un taustiņu uz augšu.
Gmail ir īsinājumtaustiņus.
Kā Google īstenot īsinājumtaustiņi kā C sacerēt?
Klausīdamies tos notikumus, jo viņi sauc, piemēram onkeypress vai onkeyup un onkeydown.
Ja esat kādreiz hovered peles kursoru kādu izvēlnes opciju
un pēkšņi, voila, izvēlne vai grafika maina krāsu,
kā viņi dara?
Nevis klausīties onready vai onsubmit, jūs klausīties onMouseOver vai onMouseOut.
>> Tātad īsumā, ar šiem ļoti vienkāršiem pamati, ka mēs esam sākuši saskrāpēt virsmu šodien
un mēs nirt tālāk trešdien, jums ir, arvien vairāk,
jauda īstenot veidu lietas, kas jūs jau esat iepazinušies ar.
Tāpēc pieņemsim beigas tur, un mēs turpināsim šo trešdien.
>> [CS50.TV]