>> R.J. AQUINO: Pojdiva šele začel.
Torej, to je Quiz 1.
Tukaj je nekaj informacij na visoki ravni.
O strani za kviz je na to URL, ni več CS50.net, čeprav
bo še vedno deloval.
To je CS50.harvard.edu/quizzes/2013/1.
To je velik O strani ti kje in kdaj, in sicer prihodnjo sredo
v kup sob.
In ga naslednjo sredo, sem pomeni dva dni zdaj.
Vsi ti podatki so tam.
Ampak to je kumulativni.
>> Torej je vse od prve polovice leta Letos je potencialno na kvizu,
ker si ne morem narediti napredno stvari v C brez, če pogoji, in
za zanke in podobno.
Vendar pa bo poudarek na Material, saj so Kviz 0,
začenši z konstruktov in datoteke I / O. To je ponavadi bolj
zahtevna kot Kviz 0.
Povprečna ocena je običajno nižja.
Pridno.
>> Medtem ko ste študira, se prepričajte, da uporabljate CS50/discuss, da objavite na vaša vprašanja
preberite vprašanja drugih ljudi.
Torej, če ne boste imeli kakršnakoli vprašanja, prijavite in berejo
Vprašanja vaši prijatelji.
Oni so verjetno dobra vprašanja.
In sprejme prakso kvizi.
Smo bili kar kvizi za zdaj sedem ali osem let.
Oni so vsi na spletu.
Prihodnje vprašanja so podobni za stare probleme.
To je, kako jih naredimo.
>> Kviz še ne obstaja.
Nobeden od nas ni videl.
Vendar bo izgledal prejšnja kvizi.
Na tej seji pregledu, to ni izčrpen seznam tem.
Ne moreš kar udeležijo tega in potem biti popolnoma pripravljeni na kviz.
V nasprotnem primeru, ne bi bilo da je veliko kviza.
In to tudi ni nujno vse, kar morate vedeti o kateri koli
glede na temo.
To je pomenilo, da vam izpostavljanje stvari smo pokriti, vas spomnim, kaj smo
pokrita, in način, na ki ga pokriva.
Vendar boste morali iti še dlje in globlje, ko si študiral, da še enkrat preveri
da veste vse o posamezni tema in da ste izpolnili
vse vogale, ki so bile zajeti v predavanju.
>> Kviz ugotavlja, vam povem, da gredo na Scribe ugotavlja, pazi predavanje videi.
To je dober način, da poskrbite, da ste pokrila vse svoje baze.
Torej, kako začeti, ko sem ti tobogani, sem poskušal postaviti, kjer sem našel
informacije.
Torej za Datoteka I / O, na primer, 7 teden, Ponedeljek predavanje in objavljene
Oddelek 6 in Problem Set imajo vsi Informacije o datoteki I / O. Naredil sem
to za vsako temo.
Torej tisti naslov diapozitivi lahko koristno za vas.
>> Torej, tukaj imamo sliki I / O. Ne pozabite, v Problem Set 5, smo uporabili fopen, fclose,
fwrite, fread in fseek.
Potem ko opomogla 30ish JPEG in ko velikost in pokvaril
bitne slike, morate biti precej pozna s temi funkcijami
in kako delujejo.
Če ste več ne pozna, jih zagotovo pregledati.
In poskrbite, da boste razumeli, kaj različni argumenti,
ko so navajeni.
>> Vendar skupna povezanih datotek bugs boste morda vprašali -
No, če ste pozabili, da preverite, če fopen dejansko delal, preden greš v
spremenite datoteko.
To bi lahko bilo slabo.
Če ste pozabili, da fclose datoteko da ste fopened, ki je podoben
pomnilnika.
To je zelo slabo.
In pozablja, da preverite, če ste dosegel konec datoteke pred vami
začnete pisati nanj.
>> Torej, če ste rekli, hej, jaz sem na Konec datoteke.
Daj mi 5 več zlogov.
No, to se verjetno ne bo izšlo tako, kot ste pričakovali.
To je res za datoteko I / O, ker smo storili veliko od tega
z nastavljena problem.
Torej, če ste razumeli, kaj se dogaja Problem pri Set 5, spomnite bitmats
in JPEG, potem ste verjetno vsi nastavljena za datoteko I / O. Če je to nekoliko
fuzzy, vsekakor pregleda to problem nastavite in povezano gradivo.
>> Konstruktov bila tema, ki so bili na Meja med 0 in Quiz Quiz 1.
Ni čisto narediti rez za kviz 0.
Tako da bomo zagotovo na Quiz 1, 7. teden, v ponedeljek.
Kaj je struct?
Tukaj smo pokazati zgradimo.
To je kot novo vrsto.
To je kot posoda Za več polj.
>> V tem primeru smo razglasila zgradimo Študent, ki ima dve polji -
niz, ki smo kliče ime in int, ki jih kličeš starost.
Torej, ko sem mimo okoli študenti ali I spremenite študente, bom lahko
dostop do svoje ime in svojo starost.
Oglejmo si nekaj kode za to.
Tukaj smo videli, da sem se razglasi Študent s, tako kot
Izjavljam nobene spremenljivke -
int x, int y, et cetera.
>> Tukaj je študent s.
On se začne z nič na svojih področjih.
Tako da je iz njih.
Nastavite polja na struct s piko.
Zato sem tukaj, je dejal, da s.name = RJ.
In M.star = 21.
Prav tako lahko posodobite polja enak način, ki ste jo posodobili
vrednost spremenljivke.
Torej, želim, da spremenite svoje ime RJ z Ni obdobja do R.J. pira
pravilen način.
To bi s.name = RJ, enaka kot smo ga prvotno dejal.
In potem si lahko dostopajo do njih.
>> Zato smo jih nastaviti.
Smo jih posodobiti.
Lahko pa tudi dostop do njih in sicer na enak način.
Torej, tukaj, jaz tiskanje R.J. Je star 21 let.
In jaz sem dostop do teh vrednot z s.name in M.star.
Tako da je dostop do struktur struct z dot zapisu.
Ja, vprašanje?
>> PUBLIKA: Ali obstaja razlog za Predhodna slide, da nisi dal
študent na vrhu, kot typedef struct študent, nato pa
Študent na koncu?
>> R.J. AQUINO: Torej, vprašanje je bilo, na to slide, smo običajno pojavi
typedef struct vozlišče in potem Področja struct in
potem beseda vozlišče.
In kako to, da tukaj nisem rekel, typedef struct študent, nato pa
Področja struct in nato študent?
Razlog za to je, da mi ni treba nje dostopate znotraj struct.
Torej, to je v redu, da ga pustijo brez imena.
Lahko pustite kot anonimni struct.
>> Razlog, da to storite, povezanih seznamov in Stvari je zato, ker notri, kar potrebujete
referenco struct vozlišč zvezda.
Torej struct mora imeti ime, tako da lahko dostopate do njega kasneje.
To je manjše podrobnosti.
Vendar boste običajno vidite typedef zgradimo zaviti oklepaji, če jih ne potrebujete
Ime in typedef struct nekaj ime sledi zavitimi oklepaji, če boste
Potrebujem ime.
Torej, to je dobro vprašanje.
>> In na tej točki, smo nagnjeni k spremeniti konstruktov in podaj naokoli struktur struct, ki jih
reference, ne po vrednosti.
Torej bova mimo okoli napotke za konstruktov, namesto da poteka okoli
sami konstruktov.
Torej ste se zelo pogosto dogaja, da se pri čemer se v tem primeru študent * ali
struct node * ali vozlišče * namesto out študenti ali vozlišč.
Torej, tukaj sem rekel, OK, spremenljivka PTR se bo naslov s.
To se dogaja, da se kazalec študentu R.J.
>> Tako bomo lahko dobite na teh področjih Enako, kot smo dobili ničesar.
Prvič, ID reference kazalec da bi dobili zgradimo.
To je * ptr in nato pika, nato pa starost.
Tako za dostop do polja, in sem posodobljeno je zdaj 22., ker dajmo
recimo, da je moj rojstni dan.
Tam je bližnjica skladnja z uporabo puščico tukaj.
Torej ptr arrow starost je le enako kot * ptr.age.
No, to je nekaj, kar boste morali zapomniti in se spomnite.
>> Včasih si to veliko v pset6, speller pset.
Ampak to je pravzaprav tisto, kar se dogaja na pod pokrovom.
To je Dereferenciranje kazalec in nato dostop do njih.
Vprašanje?
>> PUBLIKA: [neslišno].
>> R.J. AQUINO: Torej, zakaj smo s pomočjo kazalci so konstruktov namesto
sami konstruktov?
Razlog bi bilo, če vrtaš struct do funkcije, ki jih verjetno
želijo prenesti okoli samo 4 ali tako bajtov, ki predstavljajo kazalec, kot
v nasprotju z 30. ali potencialno 40 bajtov, ki so struct.
Torej gre nekaj na funkcijo je lažje, če stvar
je manjši v kratkem.
Vprašanje?
>> PUBLIKA: Morda ste to omenili v začetku, vendar je tam
druge drsi na [neslišno]?
>> R.J. AQUINO: Ti diapozitivi bo navzgor po seji pregledu.
Mi jih bomo objavili na spletni strani.
Torej se gibljejo naprej in se gibljejo na nekoliko hitreje, bomo govorili o podatkih
struktur.
Obstaja veliko.
Pokrita smo kup njih.
Tukaj je tisto, kar morate razumeti, o strukturi podatkov.
>> Res bi se morali razumeti na visoki raven, kar vsaka struktura.
Ali lahko razložite v angleščini, da vaš Prijatelj, ki še ni sprejela CS50 kako
smo organizirati svoje podatke in zakaj bi uporabljali nekaj, na ta način?
To je stvar ena.
Stvar dveh, razumeti izvajanje.
Torej razumem, kako uporabljati te stvari v C. In bomo šli čez to.
>> In potem stvar trije bi vedeli teči čas in omejitve
različne strukture, ki jo uporabljate.
Torej razumem, zakaj bi uporabili hash tabelo namesto matrike.
Razumeti, kako hitro se v povprečju dostopu do razpršene tabele je.
Razumeti, kaj se operacije so hitro na povezani seznam, vendar počasi na nizi in
obratno.
Torej, da bi razumeli, da boste morali razumeti Big-O zapis samo vedeti
kako govoriti o teh mogoče stvari.
In se bova pogovorila o tem.
>> Torej prva stvar, ki je povezana seznamov.
Tukaj je slika na visoki ravni v povezanem seznamu.
Pokazali smo to v razredu.
Mi ponavadi imajo 10 ljudi stoji na odru.
Vendar imamo niza vozlov, kjer vsak vozlišče ima neko vrednost in kazalec
na naslednjo vrednost.
Torej, da bi dobili od enega vozlišča na naslednji korak, samo reči, da mi naslednje vozlišče.
Imate to vozlišče.
Daj mi naslednje vozlišče.
Imate to vozlišče.
Daj mi naslednje vozlišče in tako naprej dokler ni vozel levo.
>> Torej še naprej govoriti o je na visoki ravni.
To je zelo enostavno postaviti stvari v povezanem seznamu.
Če vam ni mar za red, lahko samo spusti
takoj na začetku.
To je stalen čas.
Ampak to je težko najti vrednost.
Če ste poskušali vprašati, je sedem na mojem seznamu?
Moraš iti skozi vsak vrednost.
Je to sedem?
Znova in znova.
In to je O (n).
Torej, ko študira za kviz, Primerjajte to z nizi.
>> Je to v redu?
Luči so dim.
OK.
Ko je povezan seznam bolje?
Ko je matrika bolje?
Zato si oglejmo nekaj kode.
Tukaj je potencial vozlišča.
To je struct.
Ima int n, ki bo naša vrednota.
In ima struct vozlišče * naslednji, ki Naša kazalec na naslednje vozlišče.
Torej, tukaj smo lahko videli, da se je zgodilo da je dal int v našem vozlišče.
Ampak, če bi bilo to povezano seznam char zvezde ali povezan seznam plovci, smo
Popolnoma lahko to storite tudi.
>> Ne pozabite na pset6, ste verjetno imeli povezani seznam značil zvezd ali pa samo
statični char nizi.
Oglejmo si tukaj na operacijo.
Zato želimo vstaviti novo n v našem povezanem seznamu.
Smo začeli z glavo kazalec, ki je kazalec na to, da ima vozlišče
vrednost n in dostavo od kazalca, da opozarja na tem vozlišču je vrednost
n in dostavo iz vezi, ker to je zadnji vozel.
Tako v interesu časa, bom Vso kodo na ekranu.
In mi se bomo sprehodili skozi njo nekaj vrstic hkrati.
>> Torej, tukaj je koda.
Upam, da je berljivo.
Prva stvar, ki mi je smo malloc novo vozlišče.
Torej je kazalec na novo vozlišče, ki ne čisto še kaj nastaviti
v njem še ni.
Mi preverite, da novo vozlišče ni nič.
V nasprotnem primeru bomo morali odreči.
Tako je preverila, da smo zdaj nastavite vrednosti v vozlišču.
Zato smo pripravili nov n v naše n področju.
In smo postavili naslednjo kazalec, da kaže na prvotna glavo, tako da bomo lahko
Zdaj so to vstavi vozlišča v našem seznamu.
>> Končno smo globalno glavo točko našo novo vozlišče, tako da če bi
začetek v glavi, bi morali biti na to Novi prvo vozlišče namesto
stari prvo vozlišče.
In ko je ta funkcija tiskalnika, spremenljivka novo vozlišče ne obstaja več,
ker je bila lokalno na funkcijo.
To je torej stanje v svetu.
Naš globalni vodja opozarja, da naša nova Prvo vozlišče, kar kaže na našo
Prvotni prvi vozel, ki točk na vozlišče za tem.
>> To je bilo vstavljanje.
Upam, da je bil relativno enostavno slediti.
Če ste v dvomih, narisati sliko.
Zato se mi zdi, da govorimo o povezani seznami in gledaš
koda je zelo ne pomaga.
Ker je videti na sliki povezan Seznam mi omogoča, da mislim, oh, tako
Imam to vozlišče tukaj.
Ampak, če sem posodobiti, da kazalec, se konča izključen.
In sem pozabil, kjer vozlišče gre.
In šifra tiskalnika.
In imate več vozlišč da se odklopi.
In ne boste na koncu z Seznam, ki ga želite.
>> Torej, če ste narisati sliko in jo narediti korak za korakom, upam, da boste videli
pravilen vrstni red stvari, v smislu posodabljanje kazalcev se prepričajte
da seznam pride skupaj.
Vložek je razmeroma enostavna.
Bolj zapleteno bi vstavljanje v razvrščeni seznamu.
Bolj zapletena naloga je izbrisati in ugotovite, da je videti skozi seznama
vidim, če je nekaj tam.
Morda ste to naredili v pset6 ko dobil v svoj razpršene tabele in si rekel,
dobro, je beseda jabolko v mojem povezanem seznamu?
>> Torej, ste morda že to storil.
Ampak definitivno, osvežim spomin in poskusite reimplement najdbo in
reimplement izbrisati za povezanem seznamu.
Zabavna stran note, pa tudi dvojno povezani- seznami, kjer imate
kazalci, ki kažejo tako naprej in nazaj, tako da lahko greš na
naslednje vozlišče in s predhodnim vozliščem.
In tam je bilo vprašanje, na lanskoletno Kviz te vrste, ki govori
približno dvakrat povezane sezname.
>> No, to je struktura, ki ste razmeroma pozna, saj je večina
vas verjetno jih uporabljajo na pset6.
Tukaj je ena, ki je malo manj znan.
Kot opomba, mislim, da je Quiz 1 predvsem težje kot kviz 0, ker
stvari delaš, si niso storili toliko.
Da bi dal, da na drug način, na kvizu 0, ti je napisal veliko C. In smo
vas vprašal o C.
>> Za Quiz 1, bomo vas vprašati o PHP in JavaScript, ki ga
niso napisana toliko.
Bomo vas vprašati o C-kode, ki nisi napisal toliko,
Ta napredni C stvari.
Torej vsekakor, vaditi stvari, ki jih govorili v predavanju, ki ga
ni nujno narediti na problemu nastaviti.
>> Ko že govorimo, nisi napisal dimnik na problem nastaviti.
Ampak to je v predavanju.
Tukaj je slika na visoki ravni nizov, ki jih vsako leto pokažejo.
To je skladovnica pladnjev v Mather jedilnica.
Na visoki ravni, nizov so last noter, prvi ven struktura podatkov.
To pomeni, da boste postaviti stvari -
1, 3, 7, 12, 14, negativni 0.
Ena stvar, ki sem ne bi mogla je dejal - negativna 3, 0.
Si dal vse te stvari noter
In zadnja si dal v, je prva tisti, ki se dogaja, da pridejo ven.
>> Torej imate dve operaciji -
potiskanje in pop.
Vse dajanje s tem, da sem bil kretnjam, kot je ta, so pritisk.
In potem, ko sem dosegel v zagrabiti ali nekaj dosegli na vrhu, da zgrabite
Nekaj, da je pop.
Torej bomo za izvajanje nizov.
In mi jih je pokazala v predavanju uporabljate nize.
Vendar bi jih lahko storite uporabo povezanih seznamov.
Sveženj je konceptualno podatki konstrukcije, ki ni všeč
en izvajanje specifičnih.
>> Torej, kaj bi bilo to videti?
To bi bilo videti nekako takole.
Raje imajo velikost celo število.
In želite imeti niz vrednot, ki smo kličeš pladnje, saj je to
kakšna slika je bila za us - int pladnji -
in še nekaj največjo zmogljivost.
Torej, kaj bi potisnite izgledal?
No, če imamo žetonov s, nato pa potisnite nekaj na s, bi dobili
velikost s.
In da bo naslednji odprta točka našega array.
Torej, če imamo tri stvari v našem dimnika, potem bi pladnji 3 bodo naslednja
odprto mesto, ker 0, 1, in 2 že napolnjena.
>> Zato smo se vrednost v s.trays [s.size], tretje mesto.
In potem smo prirastek s.size reči, hej, smo imeli tri stvari prej.
Zdaj imamo štiri.
Torej, naslednjič, ko boste pritisnili, si bo dal nekaj v 4.
Ali pa naslednjič, ko pop, si bom pogled na 3 namesto 4 ali karkoli.
In potem se bomo vrnili zvesti recimo, hej, nam je uspelo.
To je delal.
Kot pravilo palca, če je funkcija, ki je naj vrne true ali
false vedno vrne true, si lahko so naredili nekaj narobe.
Tako to deluje?
>> No, deluje v redu za 1, in 2 in 3 in 4, in pet.
Ampak recimo, da sem dosegel svojo kapaciteto.
Sem pa naletel na problem, saj če je velikost enaka kot zmogljivostjo, sem
zdaj poskuša dati nekaj v matrika, kjer nimam prostora.
Tako kratek pregled popraviti to.
Če s.size == ZMOGLJIVOSTI, vrne false.
Sicer pojdite in to, kar smo storili.
Torej, kaj še lahko vprašamo o za kupe?
Kaj bi še morali študirati?
Kaj bi še morali vaditi?
>> No, izvajanje pop.
Smo že naredili potiskanje.
Jaz bom popraviti.
Izvajanje non-matrika, kadar uporabljate povezani seznam, morda.
Izvajanje non-int.
Tukaj sva Ints.
Vendar pa bi bilo boje.
Lahko bi bil strune.
To bi lahko bila značil zvezde.
Poglej preteklih kvizov za vrste Vprašanja, ki smo jih spraševali nizov.
>> Jaz bom rekel, da smo pokrili okoli nizov Enako kot smo jih pokriva
let preteklosti.
Torej kviz vprašanja smeli biti dober znak.
Napreduje še hitreje, čakalnih vrst.
Oni so kot kupe.
Ampak oni so prvi noter, prvi ven.
Če ste British, beseda čakalne vrste Verjetno je veliko smisla za vas.
V nasprotnem primeru boste morda morali slišal zanjo, kot črte.
Delajo tako kot črto v trgovini Apple.
Prva oseba, da pokažejo ob 03:00 zjutraj je prva
oseba kupil iPad.
>> Torej imamo dve operaciji -
enqueue in dequeue.
Enqueue postavlja nekoga na liniji.
Dequeue potegne prvi Oseba z linije.
Again, lahko izvajamo to s paleto.
Torej, kaj je struct smo je pokazala na predavanju?
Bilo je to ena.
Again, številke.
Again, velikost in ta nova stvar spredaj.
Zakaj je tam nekaj, kar ti spredaj?
To je indeks Naslednja element dequeue.
To je samo interno sledenja Prvi tip, da pokažejo, da bomo
Lahko jo potegnil ven, ko smo morali.
>> Definitivno poglej skripta in poskusite izvajati enqueue in dequeue
pri študiju za kviz.
Pomembne stvari, da misliti.
Ovije okoli če prednja plus velikost konča večje od zmogljivosti.
Še enkrat, če vaš struktura je polna, boste imeli težave.
Hash tabele, ki ste jih videl.
Večina vas verjetno izvajali ti na pset6.
To je struktura, ki si prizadeva za O (1) konstantna čas vstavitve in O (1)
konstantna čas za iskanje.
>> V CS50, to smo izvajali Niz povezanih seznamov.
Ključni element za razpršene tabele je razpršilna funkcija.
Tako da pretvori vaš prispevek, recimo, slovar besedo, v številu,
ki se bo naš indeks.
In bomo uporabili ta indeks v naši matriki.
Torej, tukaj je srčkano slika od study.50.net.
Vržemo vse besede v naša hash funkcija.
In hash funkcija nam pove, kje postaviti te besede.
>> To je vse super, v deželi, kjer obstaja samo ena beseda za vsako režo.
Toda, ko se spomnite iz pset6 obstaja več besed kot slotov.
Torej, kaj se zgodi, ko dobili trčenje?
Namesto skladiščenje enega vrednosti, recimo, razpršene tabele 3, ki jih
shranite povezani seznam.
In tako namesto da melone tu bi imeli povezani seznam,
kjer je prvo vozlišče melona.
In naslednje vozlišče je mačka.
In tretje vozlišče je trčenje, dajmo pravijo, ker vse te besede začetek
z C.
>> Torej, večina od vas to storil za pset6.
Če nisi naredil razpršene tabele na pset6 in boste poskušali nekaj podobnega
Trie, vsekakor pregledati hash tabel.
Če si to naredil na pset6, definitivno pregleda hash tabel.
In če ste to storili na pset6 in to ni izšlo čisto v redu in vam
je imela veliko težav z njo, definitivno pregleda hash tabel.
Torej lekcija res je definitivno pregleda hash tabel.
>> Velika manjšina od vas poskušal out poskuša na pset6.
Slika na visoki ravni.
To je nekaj takega, kjer je vsak vozlišče ima vrsto otrok, kjer je vsak
Otrok ustreza pismu.
In vsako vozlišče tudi pravi, hej, jaz sem besedo.
Torej, v tem primeru beseda Maxwell, če boste sledili M A do
X-W-E-L-L in ga nato sledi še ena.
In si dobil ta simbol, Delta, ki smo pomenilo, da pomeni to je beseda.
Torej Maxwell je beseda.
Te Delte so po vsej označevalne katere stvari so besede in ki
stvari niso.
>> Torej, v pset6, podatke bomo shranjeni ob kateri koli od naših vozlišč je bil: "Jaz sem
beseda. "In kul stvar o poskusih se dokažejo vstavljanje in
poizvedbo v O (dolžina besede).
Torej, samo da bi dobili skozi Maxwell, to je M-A-X-W-E-L-L. Torej, sedem ali osem -
Ne morem računati -
korakov, da do konca in preverite stvari.
Tako hitro izvajanje tukaj.
Rob je šel skozi povezane navede v svoji obdukcije.
Zato preverite to.
Žal mi je.
Šla skozi Trsta v svoji obdukcije.
Zato preverite to.
>> Ampak, ste v bistvu morali vsako vozlišče ima 27 kazalci na naslednjih vozlišč in enega
Boolean za sem besedo.
Odjaviti Rob je po smrti, kako to dejansko izvaja.
Naš končni struktura, naši drevesa in binarna iskalna drevesa.
Torej gledamo na to, ali so bili zajeti nedavno 8. teden, v ponedeljek.
Drevo je podoben Trsta, razen tebe ni nujno, 27 vozlišč na
vsaka točka.
In ne boste imeli te podatke na vsaki korak, ki pomeni bodisi -
Pot ni važno.
Ker Trie, pot od vrha do dno, Maxwell, je bilo za nas pomembno.
>> Ampak vsako vozlišče ima multiple otroci, mogoče.
Imamo nekaj več besedišča.
Koren drevesa je na vrhu.
In smo rekli, da je zelo: Spodnja vozlišča, ki nimajo
otroci so listi.
Tako kot Trsta, drevo struktura vozlišč.
Pogosta vrsta drevesa, da bomo govoriti o tem je binarno drevo, kjer
vsako vozlišče ima otrok ali en otrok ali dva otroka.
Torej ta slika tu ni dvojiško drevo, ker
vozlišče 3 ima tri otroke.
>> Ampak, če smo bili ignorirati tiste, ostalo od tega je binarno drevo, saj
dokazuje lastnost, da vsako vozlišče je nič, ena ali dva otroka.
Torej, kako bi lahko izrazili to kodo?
Lahko bi imeli vozlišče, kjer ima vsako vozlišče celo v njem, kot tudi
kot kazalec na drevo na levi in kazalec na drevesa
prav tako dva otroka.
Kako je to koristno?
No, če bomo pravila o tem, kje smo dal vozlišč, lahko naredimo iskanje hitrejše.
>> Tako da je koncept binarnega iskanja drevo, kjer je vsa vozlišča na
levo poddrevo imajo manjšo vrednost kot vozlišče gledava.
In vsa vozlišča na desno poddrevo imajo večjo vrednost
od korenskega vozlišča.
Zdaj, da je videti kot veliko besed.
Bom dal notri dvojnega citati in prikazal sliko.
Torej, tukaj je primer binarno iskalno drevo.
Glej, da začnemo z 10.
Vse na levi strani 10 je manjši od njega.
In vse na desni je večji od njega.
>> Ampak bolj kot to, vsako vozlišče v drevo izraža to lastnost.
Torej vozlišče 7 ima 3 do levo in 9 v desno.
Torej vse, manjših od 10.
Ampak gledaš samo tiste, 7 ima 3. da njena leva in 9, da njena pravica.
In podobno kot na desni, 15 je 14 na njegovo levo in 50 njene pravice.
Torej tri vozlišča tam, 15, 14, in 50, so tudi veljavna dvojiško drevo
ali veljavno binarno iskalno drevo.
In oni so vsi večji od 10.
Tako da jim je dovoljeno, da se od tam.
Ali obstaja vprašanje?
>> PUBLIKA: Kako ravnati, ko imate dve sedmice?
>> R.J. AQUINO: Ja.
Kako se soočate z dvema vrednostma da so isti?
Nekateri dvojiška iskalna drevesa, pravijo, da vam prezreti dvojnikov, saj je cilj
Samo povem, sem videl te stvari tako daleč.
Nekateri dvojiška iskalna drevesa, bi lahko rekli, daje število notranji strani vozlišča.
Drugi bi rekli, da vse, kar je Levi je manjša ali enaka.
In vse na desni večja od.
>> Je samo odvisno od tega, kaj Problem je, da ste reševanje.
Torej v slovarju, na primer, si ne bi bilo mar dvojnikov.
Ti bi jih vrgel ven.
Toda nekateri drugi problem, boste morda vseeno.
>> PUBLIKA: Ali je mogoče, da imajo 1 na levi strani 15, ki
je manj kot 10?
>> R.J. AQUINO: Ne
Če bi bila 1. 14. tu, bi to ni bilo veljavno binarno iskalno drevo,
ker je vse na desni strani 10 mora biti večji od njega.
In bomo videli, zakaj.
Če v deželi iskanja moj cilj je, da bi našli 14, začnem pri korenu.
Torej gledam.
OK.
Bomo začeli pri korenu.
Poglej 10.
>> No, 14, naš cilj, je večji od 10.
Zato mora biti na desni strani.
To je zelo podoben celotno telefonu Knjiga, kar smo naredili, binarno
iskati tam.
Toda namesto binarnega iskanja v matriki, smo binarno
iskati v tem drevesu.
Torej smo še vedno iščejo 14.
No, 14 je manjši od 15.
Torej, če je to v našem drevesu, mora biti v tem področju tukaj.
Zato mora biti na desni 10 in na levi strani 15.
>> In tako smo preverite to vozlišče.
In Bravo, smo ugotovili 14.
Ne grem na sprehod skozi to.
Ampak tukaj je koda.
To je pravzaprav relativno enostavna,
ker je to rekurzivna.
Kaj bi vas prosimo, da storite na kvizu?
Lahko bi vas prosil, da napišete to kodo.
Mi lahko prosim, da pogled na to oznako in spremenite to kodo in pojasni, kaj
to počne.
Ja.
Vprašanje?
>> PUBLIKA: Ali so ti diapozitivi bo na voljo, saj so bili zadnji čas?
>> R.J. AQUINO: Da.
Tako da ti diapozitivi bo zagotovo biti objavljeni.
>> PUBLIKA: Oni so dejansko knjižene zdaj na spletni strani.
David pravkar naredila.
>> R.J. AQUINO: Stekelca so zdaj na spletni strani.
Verjetno bom zakrpal par so tipkarske napake sem ugotovil in jih popraviti.
Ampak tam je tok različica na mestu.
Druge stvari, ki vam lahko zaprosijo storiti -
napišite vložek.
Napišite iterativno verzijo rekurzivna funkcija mi samo pokazali,
ali govoriti o teh stvareh, kot v odstavki, v besedah, v stavkih.
Če primerjamo čas teči in pojasnjujejo tisto, kar bi si želeli uporabiti binarno
Iskanje drevo namesto hash tabelo, na primer.
>> Torej, razumem te strukture na zelo globokem nivoju.
Razumeti, kako da jih boste zapisali, kako jih uporabljajo, kako govoriti o njih.
In boste pripravljeni.
Vprašanje?
>> PUBLIKA: Ko pišete binarno iskalno drevo, kako vam
določiti, katere vrednost to, da kot root?
>> R.J. AQUINO: Torej, vprašanje je bilo, kaj Vrednost naj vam bo kot koren?
Odvisno od vaše kode, imajo lahko globalno korenine.
Torej ste lahko verjetno imel v pset6 globalno razpršene tabele.
Ali lahko podaš koren v kot argument.
Torej to iskanje funkcija tukaj Traja argument vozlišča *.
In tako ne glede na vozlišče se zgodi, da gledaš, je ena ste zdravljenje
kot root, ko jo prenese noter
In jaz sem vse nastavljeno.
To so moji diapozitivi.
Naslednja oseba, ki lahko pridejo swap v laptop in mikrofonom.
>> ROB Bowden: Mislim, da bi morali razlagati na to vprašanje drugače.
Ampak sem ga razlagati tako, če imate številke 1, 2 in 3, kako delamo
vem, da bo 2 korena v nasprotju z 1 ali 3?
Če naredimo 2 korena, potem je lepo 1 in 3 za levo in desno.
Ampak, če 1 je koren, potem je od 1 do top, 2 desno, 3 na desni.
Torej je privzeto, da ne veš kaj naj bi korenino.
In za kateri koli algoritma smo pričakovali, da ti dam, samo da si prva stvar
Vložek bi bil koren.
Ali pa, da vam ponudimo binarno drevo, ki že obstaja, da ima korenine.
Ampak drugi algoritmi taka, da Koren bo posodobil, tako da če vam
končajo v položaju, kjer je 1, 2, 3, bi se samodejno posodobi, da
Znamka 2 nove korenine, tako da je še vedno lepo uravnoteženo.
>> ANGELA LI: Cool.
Hej, fantje.
Jaz sem Angela.
In bom pokončal našo C nato pa gre v nekaterih naši spletni
tehnologije -
HTTP, HTML, CSS in.
Torej, prva stvar je buffer prelivnih napadi.
Tako da je lahko pogled na to oznako.
To je zelo preprosta.
Tam je funkcija foo.
In to ne vrne ničesar.
Vendar je potrebno v kazalec v niz imenovano bar.
>> In to se dogaja, to prijaviti pufer, ki je znak
matrika, ki ima 12 slotov.
In jo uporablja memcpy, ki je le Funkcija, ki kopira iz enega naslova
v drugo.
Torej, to poskuša kopirati v naša buffer iz katerega koli
bar kaže, da.
Torej kakšno idejo, kaj je narobe s to kodo?
>> PUBLIKA: Če vrstica je daljša od C, bodo prepisali.
>> ANGELA LI: Ja, točno.
Nimamo nobenega jamstva, da bar se bo manj kot 12 let.
Pravkar smo naredili nekaj poljubno število 12.
In bili smo kot Upajmo, da se Naš uporabnikov vnos je manj kot
Dolga 12 znakov.
Torej, v idealnem svetu, če je naš vložek je vedno kot je bilo pričakovano, potem bomo dobili
nekaj podobnega, zdravo.
To je manj kot 12 znakov.
Prebere se v char c.
In potem smo nekaj storiti z njim.
To sploh ni pomembno.
>> Vendar pa bi zlonamerna oseba stori nekaj več, kot je ta, v kateri so
nam je dala vse, kar vrstica kaže, da, to se dogaja, da kaže na to širokim naborom
da samo je.
In to je smer več kot 12.
Tako se dogaja, da gredo do konca tukaj, kjer donos
Naslov nekoč.
Torej, recimo, to funkcijo se imenuje foo.
Mogoče je foo poklical nekatere druge Funkcija, ki je bil imenovan z glavno.
Torej, ko foo teče, potrebuje vedeti, kje se vrnete.
>> Če je bila imenovana foo nekatere funkcije z imenom Baz, mora vedeti, da je
Moram iti nazaj na Baz.
In to je to povratni naslov tukaj nam govori.
Ampak, če smo ga prepisati z nekaterimi drugimi naslov, v tem primeru pa je to
zastopanje na naslovu samem začetku te pufra, nato
kaj se dejansko dogaja, da se zgodi, je, da namesto da se vračajo nazaj na Baz,
ki se imenuje našo funkcijo, to je samo šli na fronto te kode.
>> In če je to tam, ker zlonamerni heker dude prišel in
injicira to, potem pa ta znesek o je pravzaprav ni je.
In to je pravzaprav le kodo, ki se prelomi računalnik ali kaj podobnega.
Tako, da bo obrambni o tovrstni stvar, boste morali nikoli domnevati, da
uporabniški vhod je določena Znesek znakov.
Na primer, ko ste delali speller so vam povedali, da so bile besede
samo bo 40 znakov Dokler največja.
In to je bilo dobro.
>> Če pa ne, potem bi morali poskrbite, da se glasi le v 45
znakov hkrati.
V nasprotnem primeru boste morda prepisali vaš buffer.
Kakršna koli vprašanja o tem.
Ja.
>> PUBLIKA: Ali lahko samo govoriva malo več o tem?
>> ANGELA LI: Žal mi je.
Da.
>> PUBLIKA: mic je samo za video.
Bom poskusil in projektov.
Zdravo, fantje.
Nadzornik?
Torej, gremo čez nekaj stvari v CS50 knjižnica, ki ste bili z uporabo
Vse semester, predvsem priti uporabnik vložek.
Kot veste, ti vključujejo CS50 Knjižnica, ki jih samo delaš CS50.h, ki
vsebuje vse prototipe funkcije, ki jih lahko uporabite, kot
GetString in GetInt, in GetFloat, et cetera.
In tam je ena vrstica v CS50 Knjižnica, ki opredeljuje niz, ki
vi vsi vemo do zdaj je le char *.
>> Vendar pa si oglejte na kako GetString deluje.
To je zelo skrajšano verzijo.
Lahko potegnite navzgor datoteke CS50 knjižnice iz, mislim, manuals.CS50.net.
In si lahko preberete dejanska funkcija.
Ampak to velja za nekatere pomembne dele.
Zato smo ustvarili nekaj buffer pri nekaterih zmogljivosti.
In kaj počnemo se bomo dobili en znak v času od standardne n.
To je, kjer so vhodi uporabnikov besedilo v konzoli.
>> In tako bomo prebrali v lik tako dolgo, dokler to ni nova
linijo in to ni konec datoteke, ki je konec standardnega vhoda.
In za vsak znak, da beremo v, če je to znak konča dodajanje
na število znakov smo prebrali leta in da je več kot naše sposobnosti,
potem, kaj moramo storiti, je pravkar spremenite velikost naše pufer, tako da je dvakrat toliko časa.
Še enkrat, to zaščito proti pufru overflow napadi, ker ste prebrali v
znak naenkrat.
In če se na kateri koli točki ste prebrali tudi v mnogi, ki ste jo pravkar razširiti svoj buffer.
Lahko ga pomnožite z dve.
In potem boste imeli več prostora.
>> V nasprotnem primeru, ki ste jo pravkar dodali znak za omilitev.
In potem, ko ste prebrali v vseh znakov, bo krčila serum
nazaj na normalne velikosti, dodajte null terminator, in se nato vrne.
Zdaj pa si oglejmo GetInt.
Lahko vidva brati?
Lahko povečate bit.
Ne vem, kako računalniki delujejo.
Never mind.
Ne morem povečate pravilno.
>> To je res težko.
Žal mi je.
Reciva, poglej to.
Torej, kaj GetInt pa je najprej prebere v nizu od GetString, ki
smo prej izvajati.
In pomemben del, ki sem seznanjen če se bo ta delitev, ki se konča
branje je kot dejansko ni vrvici, Nato smo pravkar vrnili INT_MAX za
predstavlja neuspeh.
Zakaj, namesto da se vrnete INT_MAX negativnega 1 ali 1?
Vse ideje?
>> PUBLIKA: [neslišno] Negativni 1 na ena.
>> ANGELA LI: Ja, točno.
Torej ste veliko bolj verjetno, da hočejo na vhod 1 ali negativnem 1, ko pozove
za n in ne glede na n-to maxes.
To je ogromen.
Ti si verjetno ne bo uporabljala.
Torej, to je kot odločitev o projektiranju, poskrbite, da ne boste po nesreči
vrne napako ali pa ne vrnejo 1, ki se lahko razčleniti
kot pravilen odgovor.
Torej, če linija ne obstaja, vrnemo INT-MAX.
V nasprotnem primeru bomo uporabili sscanf, , ki je kot scanf.
Ampak to bere iz niza.
>> In imamo to oblikovano Niz, ki je% i% c.
In poskušamo in se ujemajo, da se z kar nam je dal uporabnik.
Želimo število ujema stvari da je 1, kar pomeni, da le
res želim, da se ujemajo celo obdan z Mogoče bela
prostora, morda pa tudi ne.
V tem primeru, če si dal v nekaj kot so bar, bar ne ujema sploh,
ker je treba celo na začetku.
Torej sscan nikoli obrnil 0.
Tako da ne boste vrnili, da.
>> Druga možnost je, če si dal v nekaj kot 1, 2, 3, A, B, C, ki se ujema
tako celo število, ampak tudi karakter po njej.
Torej sscanf bo vrnil 2, ki prav tako ni idealno.
Vi ne želite, 1, 2, 3,, B, C, da je veljavna int.
Tako da tudi ne deluje.
Ampak pravijo, si dal nekaj podobnega 50.
, Ki bo ustrezal% i, kar pomeni, bo dobil preberete v n.
In zdaj bo n vsebovati številko 50.
In potem se lahko vrne.
>> V nasprotnem primeru ste zadeli Ponovi.
In potem to gre znova, dokler boste dobili ustreznega vnosa od uporabnika.
Kakršna koli vprašanja o tem?
>> PUBLIKA: Torej, če ste bili, da natisnete vrednost GetInt na [neslišno]
bi bilo le število in max?
>> ANGELA LI: Ja.
Torej, če boste uporabili GetInt, bi morali prevzeti da ne želite, n-max da
biti veljaven vhod, saj boste domnevati, da je to slabo.
>> PUBLIKA: Če ne bi imeli char c in nekdo dal 1, 2, 3, Sam, bi bilo
še vedno dela za 1, 2, 3?
>> ANGELA LI: Mislim, da bi delovalo.
Vendar ne želite, da 123Sam je veljavna vhod uporabnik.
To ni res int.
Torej se ne zdi pošteno da ga razčleniti kot notr.
OK.
V tem primeru, pojdimo na internetu.
Torej HTTP ni jezik.
HTTP je samo niz standardov za kako boste poslali stvari od strank,
to si ti, da strežnikov.
To je drugi ljudje na spletu.
>> Torej HTTP je kratica za Hypertext Transfer Protocol.
To je srce in duša celotnega spleta.
Hipertekst del le se nanaša na HTML.
Prenos strank, kot boste poslali prijave za
strežnikov, ki dajejo odzive.
In protokol je le, kako ste pričakovali strežnik, da se obnašajo?
In kako se moraš obnašati tako da lahko to racionalizacijo
komunikacijski proces?
>> Tako zahteva HTTP videti veliko, kot je ta.
GET je vrsta zahteve.
Vi ste videli zahteve GET in zahteve POST.
Druga stvar, ki obstaja, / me, da je samo URI ali URL, kjer ste
bi rad šel v gostitelja.
Zato je zahteva, ki prosi za stran, kot www.facebook.com / zame.
In to zahtevo GET.
In potem je to HTTP/1.1, da je samo Različica HTTP, ki ga uporabljate.
To je skoraj vedno 1.1.
>> In potem je tu še kup drugih stvari preveč.
Lahko dejansko videli te, če odprejo svojo konzolo, ko ste
brskanjem po spletu.
Odzivi izgledal nekako bolj kot to.
Zgornji del je spet tip HTTP, ki ga uporabljate
sledi statusno kodo.
Torej 200 OK je vse izšlo.
Tukaj je vaša vsebina.
Vaša vsebina bo sledil.
In potem vam bo povedal, kakšne vsebin in drugih stvari preveč.
>> Šifre stanja, obstaja nekaj pomembni tisti, ki bi morali vedeti.
200 V redu je, kot zlata Vse je pripravljeno.
Vse deluje.
403 Forbidden.
To ste verjetno opazili, če ste pozabili Za pravilno chmod nekaj.
To pomeni, da nimate pravico do dovoljenja
dostop, ki na strežniku.
To je podobno, ne, ne moreš videti.
404 pomeni, da stvar ne obstaja.
Ni mogoče najti.
Verjetno ste že opazili, da je veliko.
>> 500 Notranja napaka strežnika je ponavadi kot nekaj, kar je šlo narobe na strani
strežnika.
Torej, ko ste bili izvajanju pset7, če si imel PHP napake, bi lahko
dejansko šel na stran in si oglejte Cel kup PHP napake stvari.
Ampak to običajno ne zgodi, saj se spletne strani ne res želite
vam povem, zakaj je njihova stran razdeljena.
Ti bom verjetno samo vrnitev 500 Notranja napaka strežnika.
>> In potem je tu še 418 sem čajnik.
Tam je cela zgodba o Zato je to stvar.
Vendar pa si lahko preberete o tem na svoj čas.
Obstaja cel kup druge kode preveč status.
Ampak to so tisti, morate vedeti.
Torej, kaj je govoril o HTML.
HTML, se spomnite, ni programski jezik.
To je označevalni jezik.
To pomeni, da opisuje vsebino.
To vam pove, kaj je dokument HTML zgleda všeč ali ne, tako kot zgleda
ampak kako je strukturirana.
>> Tako da določa strukturo in semantika spletnih straneh.
To je kot, da je to točka.
To je urejen seznam.
To je kot odseku moji strani.
Tukaj je naslov.
To počne stvari, kot je ta.
Ne slog koli od tega, ker To je tisto, kar ste storili v CSS.
In je videti kot niz ugnezdenih oznak.
Tako da uporabite primer res osnovna HTML stran, imate DOCTYPE
Izjava tam.
>> To DOCTYPE izjava rekel, da smo z uporabo HTML5.
Potem imate veliko oznako HTML.
Vsebuje glave in telesa.
V glavi, imaš naslov.
To je tisto, kar gre v naslovu bar v vašem brskalniku.
Imamo link tag, ki povezuje v zunanji slog stanja.
In potem imamo scenarij, ki potegne iz zunanjega JavaScriptom tudi.
>> In nato v notranjosti našega telesa je dejansko kdo bo prikazano na strani.
Dobili smo točko, nato pa Podoba znotraj tega odstavka.
Tole je slika muckov.
Opazimo, da je slika tag se zapre.
Torej, namesto odpiranja s sliko in potem delaš drugo / slike, ki jih
samo še to malo poševnica tu, ki ga zapre.
In slika tag ima tudi ta ključ Vrednost atributa imenovan alt.
To je nadomestno besedilo, ki se zgodi, ko hover nad njim.
>> Večina HTML elementi imajo nekaj ključnih vrednosti stvari, ki jo lahko dajo, razne
customization.
Ja.
>> PUBLIKA: [neslišno].
>> ANGELA LI: No, tako da je atribut tag.
Torej, če ste bili z uporabo jQuery, bi lahko narediti izberite image.getAttribute.
In potem si lahko poiščete dobili alt atribut.
In to vam bo dala mladiče.
Če se spomnite obrazcev v HTML, vhod Elementi bodo imeli atribute ime.
In to je tisto, PHP uporablja za pošiljanje zahteva ob predložitvi obrazca.
>> PUBLIKA: Si omenil nekaj o tem, kako, če uporabljate kittens.jpg ali
nekaj, kar je manjkajoča datoteko mape ali druge datoteke?
>> ANGELA LI: Da.
Torej je to, kar se imenuje relativna Pot, ker jaz ne daje
si celotna pot.
To je kot takrat, ko v C, če vam fopen nekatere datoteke, če si fopen hi.txt, da
hi.txt se pričakuje, da bo v isti imenik, razen če mu daš več
zapletena pot.
>> PUBLIKA: Torej, lahko določite ki Mapa [neslišno]?
>> ANGELA LI: Ja.
In si lahko pogledate, kako to storiti.
Ampak, če sem hotel priti ven kittens.jpg nadrejenega imenika, bi jaz
.. / Kittens.jpg.
Ja.
Žal mi je.
Ja.
Oh človek, sem pozabil na vprašanje.
Kaj je bilo vprašanje?
Oh, je bilo vprašanje je, kittens.jpg Pričakuje se, da je v istem imeniku?
In v tem primeru je.
Vendar pa lahko tudi to določeno pot tako, da ni nujno, da je.
Dobra?
>> CSS.
Torej, CSS, kot so HTML, ni programski jezik.
CSS je le niz pravil styling.
To je kratica za Cascading Style Sheets.
In jo uporabite v povezavi HTML za slog strani.
Torej obstajajo trije načini jo lahko vključite.
En način lahko to storite, je v glavi del kode HTML, lahko samo
odprite slog oznako in nato palico nekateri CSS pravila tam.
To je zelo v redu.
Ja.
>> PUBLIKA: Bi si dal tiste tags slog v med, dajmo
recimo, telo in / telo.
In potem bi bilo styling Samo v telesu.
>> ANGELA LI: Lahko bi.
To bo delovalo.
Vendar pa ne bi smeli, ker je styling vrste metapodatkov, da bi morala iti v
Glava dokumenta.
Organ bi moral res vsebuje samo kaj se dejansko dogaja, da
pokažejo na vaši strani.
>> PUBLIKA: Torej boš dal slog v tvoji glavi, da slog
Celotna spletna stran, kajne?
>> ANGELA LI: Ja.
Torej dajanje slog tukaj, ta pravila CSS bo veljala za celotno stran, ki temelji na
njihovi selektorji.
Torej boljši način za to je, namesto da bi ki imajo slog tag v glavi,
imate to povezavo z zunanjim slogu stanja kot sem ti pokazal v
Prejšnji primer.
Kaj to pa je, da poskuša in najde datoteko style.css in jo nato potegne
v in uporablja, da kot stilov za stran.
In tvoj style.css bi samo videti takole.
Treba bi bilo samo kup CSS.
>> In na koncu, obstaja še en način, kako lahko vključujejo CSS, ki je res
ne bi nikoli storil.
To je klic inline styling.
In zato je vsak HTML element lahko tudi vzeti slog atribut.
In potem v tem slogu atributa, lahko ji dati CSS pravila.
Torej, v tem primeru, ne glede div sem opredeljevanju tukaj, da se bo
imajo črno ozadje in barva bela besedila.
Vendar naj ne bi to naredili, ker tisto, kar To pa je, da ti postavi styling
v vašem HTML.
>> In vem, da smo govorili o HTML je struktura in CSS stil.
Če to storite, se pomeša ju povezuje.
In to ni zelo čist.
Torej, ne delaj tega.
Uporaba zgled CSS, tam smo šele izbrati telo HTML
dokumentarec.
In mi smo tako kot vse, kar je bo v Comic Sans.
Jaz tudi ne priporočam, da.
Vendar pa bi lahko naredil.
>> Drugo pravilo tukaj, da se dogaja izbrati element na
Stran z ID glavni.
Torej, ne glede HTML element, sem rekel ID = Glavni, bom dal, da je A
20-pixel marža in uskladiti vse, vse besedilo, na sredini.
Zadnja stvar, ki jo izbere CSS razred.
Torej vsak element na strani, ki sem dal Razred oddelek, grem, da bi bilo
Barva ozadja svetlo modre barve.
Jap.
To je vse, kar imam.
Vprašanje?
>> PUBLIKA: Kaj hashtag Pred glavno storiti?
>> ANGELA LI: Vprašanje je, kaj počne hashtag pred glavno opravilo?
V tem primeru hash v CSS pomeni Izbira po ID.
Torej, če sem imel nekaj element HTML, kot so divID = glavni, to CSS pravilo izbere
stvar z ID glavni.
In podobno, obdobje pred razdelek Izbira po CSS razred ali
izberite s HTML razred.
>> PUBLIKA: Zakaj je ima pred 6 v barvi ozadja?
>> ANGELA LI: Ja.
Torej, vprašanje je, zakaj je tam hash pred 6?
To je drugačna od tiste, hašiš.
To pomeni, da ste ga daje šestnajstiški barva.
Torej čarovnica barve, to samo predstavlja barvo.
In se spomniš RGB trojic, ko si forenziki pset?
To je podobno.
Prvi dve številki predstavljata koliko rdeča je v barvi.
Druga dva prikazujeta koliko zeleno.
In tretji predstavlja koliko modro.
In hash je to se dogaja da predstavlja barvo.
>> Torej, kaj od 0, 0, 0, 0, 0, 0 do F, F, F, F, F, F je veljavna.
To je nekaj velja barva, ki lahko se prikaže v vašem brskalniku.
Vprašanje?
>> PUBLIKA: Kakšna je razlika med uporabo po ID in razred?
>> ANGELA LI: Vprašanje je, kaj je Razlika med
uporabo po ID in razred?
Lahko ima samo en element v HTML dokument, ki ima določen ID.
Torej samo ena stvar na moji strani je dovoljeno imeti ID main.
Torej, če ga uporabljate za to je v glavi.
To je navigacija.
To je noga.
Razredi so različni, saj lahko Uporablja razrede za čim več elementov HTML
kakor hočeš.
>> Tako na primer, sem naredil oddelek razreda, zato, ker je verjetno več kot eno
odsek na moji strani.
Ti si samo dovoljeno imeti toliko Elementi na strani z enako
razred, ampak samo tisti z določeno ID.
>> PUBLIKA: Torej pika predstavlja razred?
>> ANGELA LI: Ja.
Pika predstavlja razred.
Cool.
To je vse, kar imam, fantje.
Hvala vam.
>> [APPLAUSE]
>> ZAMYLA CHAN: Živjo, vsi.
Jaz sem Zamyla.
Grem se pokriva PHP, MVC, in SQL danes.
Veliko materiala, da bom obloga se bo precej
Pravica iz pset7.
Vse je v redu.
Torej, kaj je PHP?
PHP je kratica za PHP Hypertext Preprocesor.
Tako je, samo po sebi, je rekurzivna ime, ki je precej kul.
PHP je skriptni jezik na strani strežnika, in zagotavlja backend
in logičnih temeljev naši spletni strani.
>> Torej Angela veliko govoril o HTML in CSS, ki bo strukturo
spletne strani.
Kaj pa, če želite spremeniti Vsebnost dinamično ali če se spreminja
glede na uporabnika ali določeni pogoji?
To je, če pride noter PHP
Zdaj, po navadi, lahko PHP traja nekaj manj linij za izvajanje isto stvar
v C. To je zato, ker PHP ročaji spomin upravljanje za programer,
v nasprotju z US pokazal malloc brezplačno, take stvari.
>> Ampak, ker PHP je interpretativne jezik, tipično, da bi izvršitev
nekoliko počasneje kot C, ki je zbrati jezik.
Ker se selimo programiranje jeziki, si oglejmo, kako
sintaksa, razlikujejo.
Bodimo zelo previdni, da ne zmeden s tem.
Torej z PHP sintakso, ali ste embedding vaš PHP znotraj HTML
datoteko ali znotraj. php datoteko sam, si morajo priložiti kodo na prostem
PHP in zaprte PHP oznake, kot so sledi, kot na zaslonu.
>> Spremenljivke v PHP.
Vsaka posamezna spremenljivka se bo začel s $ znak, ki mu sledi ime
vaša spremenljivka.
Zdaj pa se spremenljivke v PHP ohlapno vnesli, kar pomeni, da vam ni treba
da navede vrsto podatkov je, ko ste ga razglasi.
To pa ne pomeni, da nimajo nobene vrste na vse.
Torej, če Izjavljam, spremenljivko in samo iz je enaka 1, potem izjavljam,
druga spremenljivka, ga postavi na "1" in potem še eden 1.0, no,
odvisno od vrste enakosti Operaterji uporabljam, če želim primerjati
vseh vrst, nato bodo enaka.
Ampak, če želim, da poskrbite, da tipi so enaki, lahko PHP še vedno
da, čeprav se ne kažejo kakšne vrste je, ko smo
najprej datoteko.
>> Zdaj, v PHP, čeprav smo preklopu iz programiranja
jeziki, iz C, še vedno imamo zaupljiv, če pogoj, tako kot to.
Še vedno imamo, medtem ko zanke, samo kot je ta, kjer si dal v vašem
stanje in nato Telo zanke.
In potem smo tudi naš zanko, ki običajno izgleda takole.
Torej, če sem hotel ponoviti čez vse devet psets in predložiti in pokličite
Funkcija submitPset, potem pa lahko storim, da tu, kar vi vsi
storiti s to točko.
Čestitam, mimogrede.
>> Za kamero, ljudje je dejal, hvala.
Zdaj, če niste želeli le to uporabijo zanko, nato PHP dejansko tudi
je stvari, ki se imenuje foreach zanke.
Torej, če sem imel niz števil, 0 do 8, shranjene v array psets,
potem bi lahko imeli foreach zanke, ki ponovi več kot vsako številko v psets.
In potem bi jaz poklical enako delujejo osemkrat,
tako kot sem prej.
Torej je to za vsako zanko je lepo, ker vam ne bo treba, če ne veste,
Točna dolžina polja, ki ste so, nato pa z uporabo te foreach zanke
bo poskrbel za to za vas.
>> Torej sem naredil psets kot matriko.
Oglejmo si to.
Nizi v PHP so ponavadi isti kot tisti, ki smo jih imeli v C, kjer
lahko razglasi niz.
In tukaj, sem lahko razglasi prazen niz in nato zgraditi dinamično z uporabo
Indeksi so cela števila.
Torej indeksom 0, bom za shranjevanje število imenom 1.
V indeksu 1. mojega seznama, bom Shranjevanje vrednosti 2.
In na tretji indeksa, vendar Druga številka, bom
shranite številko 12.
>> Zdaj, to je v redu, da deluje dobro deluje.
Ampak pravijo, da je pomembno, da me kaj ima vsak indeks.
Za mene, indeks 0 pomeni, kako Veliko mačke imam.
In indeks 1 pomeni, kako Veliko sove imam.
In naslednjič pomeni, koliko psov.
No, potem je določiti, da namesto da si zapomnite 0 se nanaša na
mačke in 1 do sove, lahko uporabite asociativne nize, kar pomeni, da
namesto celih so moje indeksov, Jaz lahko dejansko uporabo nizov.
>> Torej je to zelo koristno.
In ste v bistvu samo zamenja cela števila s strunami.
In tam imaš asociativno paleto.
Ja.
>> PUBLIKA: Ali obstaja razlog, zakaj obstaja podčrtaj za sekundo
del, saj ima moj seznam array.
>> ZAMYLA CHAN: Vprašanje je bilo, je obstaja razlog, zakaj obstaja
podčrtaj med mojim in seznam?
Ne
To je samo, kako sem poimenoval moja spremenljivka.
>> PUBLIKA: Na prvi linije, to je ena beseda.
>> ZAMYLA CHAN: Se opravičujem.
Jaz bom popraviti.
Ja.
Ti bi morali biti enako ime spremenljivke.
Dober ulov.
OK.
Torej gremo na vrvico Zveza.
Če bi želel, da bi dve struni, Nato sem jih lahko združite
z operaterjem dot.
Torej, če imam Milo kot prvo ime in Banana kot priimek, nato
povezovanjem z operaterjem dot in nato pa damo prostor med
bo niz, ki vsebuje Milo Banana, ki sem jih lahko nato echo, ali
in ne izpiše.
>> Ko že govorimo o odmev, pogovoriva približno nekaj koristen -
oops.
Žal mi je.
Nekaj ​​uporabnih funkcij PHP.
Torej imamo -
tehnične težave.
Eno sekundo.
Poslal sem ga.
Težave PowerPoint.
In smo spet pri PHP funkcij.
>> Tako smo zahtevajo funkcijo, kjer če se boste peljali v datoteko, tukaj je samo
Primer datoteke, ki Mogoče bom mimo prijavite
Nato pa, da bo vključevala PHP kodo Iz te datoteke, da sem kažejo.
In bo ocenila, da je noter
Potem imamo tudi echo, ki je vzporedna printf.
Exit je vzporedno, da bi prekinil, ki pride iz bloka
kodo, ki ste noter
In potem je dal prazne pregledi spremenljivka je kot nična ali nič ali
vse, kar je enačiti s tem, da prazna.
Ja.
>> PUBLIKA: Za niz združevanje dot operater ena v PHP, je, da
Enako kot v JavaScript, če je to z uporabo dot za spoj pomeni plus?
Torej za polno ime, bi lahko imeli dolar podpiše prvo + + in potem traja?
>> ZAMYLA CHAN: Ja.
Torej, vprašanje je bilo, ali v PHP nas Lahko uporabite isto niz združevanje
kot v JavaScript z pluse.
Joseph bodo dobili kasneje.
Mislim, da ima slide o tem.
Pravzaprav, to je drugače.
Torej v JavaScript, morate uporabiti plus za združevanje nizov.
In v PHP, moraš uporabite operator pika.
Torej, oni so drugačni.
>> OK.
Torej sedaj, ko smo pokrili vse Ta PHP, če ga
res prišel prav?
No, da prihaja v priročno, ko smo Lahko pa ga kombinirate z našo HTML.
Torej nam bo naša PHP dala moč spremeni na stran HTML vsebine pred
njegovo nakladanje.
Torej temeljijo na različnih pogojih, Ponavadi določenega uporabnika, ki je
prijavljeni, lahko prikažete različne informacije.
Linda, ali imate vprašanje?
>> PUBLIKA: Lahko združite celo tudi?
>> ZAMYLA CHAN: Ja, lahko.
Torej, vprašanje je bilo, če lahko združevanje števil ali drugih
variable.s zdaj, gremo na MVC, ki je paradigma, ki smo ga uporabili v
pset7 in veliko spletnih oblikovalcev uporabiti za organiziranje kodo v datoteke
na njihovi spletni strani.
M stoji za modela.
In v bistvu, bo vzorčni datoteke ukvarjati odnosov z bazo podatkov.
Ogled datoteke, se nanašajo na estetika spletne strani.
In ročaji Controller zahteve uporabnikov, razčleni
Podatki, pa drugo logiko.
>> V pset7, smo združili model in krmilnik.
In mi pravkar klical jih kontrolorji in jih v javni imenik.
In ogled datotek, jih uporabite kot predloge v imeniku predloge.
Torej je tudi ta diagram tukaj da isto vrsto z delitvijo
model in krmilnik v vijolično Tukaj na levi in
Pogled na desno.
Torej je to shematično, da nekateri od vas lahko videli na govorilne ure ali
diagrami, da smo bili za risanje, kot ste smo ugotoviti vaš pset.
>> Torej tukaj, v danem krmilnik, Model krmilnik, imamo funkcije
ki se nanašajo na poizvedovanje SQL baze podatkov, izvajanje PHP logiko.
Mogoče bi si poglej gor fotografije v Yahoo!
Finance.
Ali pa bi si preverite videli, ali je uporabnik predložil
tvorijo že preden obiskal vašo stran.
In potem bi postal tvorijo tukaj.
Potem ko so trdili, da oblika s strani uporabnika, da je dejanje
konkretizirala v obliki HTML oznake bi pomenilo, da stran, ki jo
vrne, da so podatki na.
>> Torej, vse te informacije bi bilo poslati nazaj v svoj krmilnik.
Potem bi verjetno naredila malo več logika na to in morda izvesti nekaj
Več poizvedbe v zbirki podatkov SQL in potem končno prišli do lepo
pakirane nabor informacij, ki bi jo preide v na neki drugi predlogi
da se prikaže, da so informacije.
Zdaj, kako smo dejansko paket da so podatki gor?
No, imamo funkcijo imenovano omet da je bila v datoteki functions.php v
pset7, kjer se boste peljali v imenu datoteke, ime predloge.
>> In potem se tudi prenese v asociativno paleto.
In tako, da asociativno paleto predstavlja različne informacije
, ki ga želite prenesti noter
Zdaj, kaj se dogaja, da so stalnica v Ti primeri so, da so ključi ali,
bolje, ključi asociativnega nizi, to so, kaj se dogaja, da se
Pričakuje se, da je konstantna jih šablone zato, ker ve, da potrebuje
nekaj, kar se imenuje sporočilo ali imenuje ime.
In potem so se stvari na desni, dejanske vrednosti, tako da v tem primeru, ki je
dober fant in Milo, tiste gredo da so vrednosti, ki se spreminjajo
da upravljavec spremeni vsakič ali temeljijo na določeno stanje in
bo minilo, da prijavite
>> Torej, tukaj v predlogah, vidimo, da smo uporabljate HTML posebnih znakov,
ki samo v bistvu pomeni, da želimo da bi dobili medsebojni niz, ki
uporabnik dal noter
In želimo nadomestiti Sporočilo tam.
Torej potem, ko smo dejansko ogled datoteke, specifične
Podatki se prenesejo prijavite
Upoštevajte, da je ključnega pomena, kako postanejo del da so ključi asociativnega
nizi tistih spremenljivi Imena tukaj.
In tako se vrednosti tega ključa v asociativno paleto potem postane
vrednost spremenljivke.
>> Zdaj pa pojdite na SQL.
To pomeni strukturiran Jezik za poizvedbe.
In tako je to samo programsko jezik zasnovan
za upravljanje podatkovnih baz.
In je prišel v priročni za nas Naša spletna stran pset7 finance.
V bistvu, to je samo preprost način, da sledenje in upravljanje objektov in tabel
ter jih povezuje med seboj.
Zdaj pa pomislite na svojo zbirko podatkov SQL v bistvu kot Excelove datoteke, morda,
z več zavihki listov.
>> Tako bi imeli več tabel, Mogoče je povezana med seboj.
In podobno kot Excel, imamo veliko funkcionalnost, ki ga želimo.
Na primer, lahko izberemo nekatere vrstice.
Mi lahko vstavite podatke.
Mi lahko posodobite vrstice.
In smo lahko tudi izbrišete stvari.
>> SQL izberite deluje tako, da izberete vrstice ali vrsta določenih stolpcev iz
baze podatkov, ki se ujemajo nekatere Merila, ki jih navajajo.
Tako sem, ko vidim select * from čarovniki, kjer hiša = Ravenclaw, nato
Jaz izbiranje *, kar pomeni, da sem izberete vsak stolpec, da
vrstico iz tabele čarovnikov, vendar le, če hiša stolpec enaka Ravenclaw.
Zdaj, to je čista ali SQL.
Torej, če sem šel v phpMyAdmin, ki je poseben način, ki ga uporabljamo za upravljanje
naši SQL podatkovne baze, potem pa sem lahko vstavite da v spletno stran phpMyAdmin.
In da bi izvršitev.
>> Ampak dejansko želimo narediti da na PHP strani.
Torej, kako bomo to storili?
No, bomo uporabili funkcijo poizvedbe, ki v bistvu izvaja, da SQL poizvedb.
Uporabljate?
kot ogrado, se lahko prenese v nekaterih vrednote našega niza, ki smo
želite zamenjati.
Torej, morda sem shranjevanje drugačna Vrednosti v curr_house, ki
predstavlja trenutno hišo da grem skozi.
Tako da sem lahko prenese, da se kot ogrado z vprašajem.
In potem bom v bistvu izvršitev ista stvar kot sem prej, razen
Zdaj sem v PHP.
>> In bo poizvedba vrne asociativno paleto.
In jaz bom, da ga shranite v vrsticah.
Sedaj lahko poizvedbe vedno ne uspe.
Morda SQL poizvedb ni mogoče izvesti saj tabela ne obstaja.
Ali pa morda, stolpec ni obstajala.
Nekaj ​​je šlo narobe.
No, v tem primeru boste želeli, da bi prepričajte, da preverite, ali
poizvedba vrnila false.
In to s trojno enako operacijo tam.
>> In potem sem se opravičil, kar je še en Funkcija CS50, ki poteka v sporočilu.
In če pogledaš na opravičujem, vse to Res pa je postala apology.php.
Ja.
>> PUBLIKA: Ali lahko pojasnite, kaj je to zvezda počne med izberite in iz?
>> ZAMYLA CHAN: Ja, seveda.
Torej zvezda med izberite in od pomeni, da želim, da izberete celotno
celotno vrstico iz moje mize.
Lahko bi navedla, da izberete ime, leto, hišo.
In jaz bi se samo ti trije Stolpci v mojo mizo.
Ampak, če rečem, izberite *, nato pa bom dobili vse, kar je v tem stolpcu.
Potem bom vam gredo v prvi.
>> PUBLIKA: Torej, to je še vedno v SQL, kajne?
Je to vprašanje ali je to PHP?
>> ZAMYLA CHAN: Smo v poizvedbi.
Torej, to je v PHP.
Torej z uporabo PHP funkcijo poizvedbo, smo izvršitve SQL poizvedbo.
>> PUBLIKA: Je kaj v SQL malimi črkami, kot izberite
ali čarovniki ali hišo?
>> ZAMYLA CHAN: Je kaj v SQL velikimi in malimi črkami?
Prepričan sem, da ja.
Verjamem, da je SELECT in FROM In kje so velike in male črke.
Ne?
>> ROB Bowden: Torej, to je ravno nasprotno.
Imena stolpec in namizne sredstev, vse tiste velike in male črke.
Toda kateremkoli izmed ključnih besed MySQL, kot SELECT, FROM, in kje, da to niso
velikimi in malimi črkami.
OK.
Tako nasprotje tega, kar sem rekel.
Torej, vse MySQL ključnih besed -
izbrati, od, kjer - se niso velike in male črke.
Ampak vse ostalo je.
OK.
Ste v ospredju.
>> PUBLIKA: Če sem $ vrstice v smislu več kot ena vrstica, to je srednja
Pravkar postane asociativni niz?
>> ZAMYLA CHAN: Torej, vprašanje je bilo, če je vrstic ima več kot eno vrsto v njej, pa
postala asociativno paleto?
Torej je matrika asociativnega že nizi.
Torej, tudi če je samo ena vrstica vrnil, potem bi morali iti v
indeks 0 tega rezultata.
In potem bi morali to prvo vrstico.
Da, Belinda?
>> PUBLIKA: Ko uporabljate ===, To je samo primer?
Ali obstajajo drugi?
>> ZAMYLA CHAN: Torej, v tem primeru === je primerjava poda vrste.
Žal mi je. === Je primerjava da primerja vrste.
In potem == primerja vseh vrst.
>> PUBLIKA: Ali lahko pojasnite, kaj vrstic je v tej situaciji?
Je vrstica podatkov?
>> ZAMYLA CHAN: V naslednji diapozitiv, sem dogaja, da pojasni, kaj vrste je.
Torej, če vas ne moti gospodarstvo off na to.
In potem ste v hrbet?
>> PUBLIKA: Za funkcije, kot so poizvedbe, render in se opraviči [neslišno]?
>> ZAMYLA CHAN: Vprašanje je bilo, ali Te funkcije - poizvedbe, se opravičujem,
in postal -
pogoste so PHP.
To so tisti, ki CS50 napisal za pset7.
In Jay?
>> PUBLIKA: Ko je treba povedati, $ _SESSION, Je, da je samo za ID-je?
Ali bi si rekel, da je tukaj?
>> ZAMYLA CHAN: Torej, vprašanje je bilo, ko bomo uporabili $ _SESSION, da je bila posebna
globalna spremenljivka, ki smo ga uporabljate.
Tukaj je ta spremenljivka se dogaja, da po lokalnem za naše delovanje.
Tako da smo samo o razglasitvi nova spremenljivka.
>> PUBLIKA: Kako se opravičujemo izvajajo?
>> ZAMYLA CHAN: Vprašanje je bilo, kako se opravičujem se izvajajo?
In mislim, da je to pravzaprav precej dobra praksa za vama, da gredo v
oddelek functions.php in poglej Opravičujem se in videli, kako lahko imate
to storiti sami.
Tako da sem lahko pustite, da bi vas, ampak samo pravijo, da če pogledaš na opravičujem,
Nato je potrebno sporočilo, ki ga predložen opravičiti, potem pa
postane to sporočilo.
Še kakšno vprašanje?
Ljubim vprašanja.
Tako da jih prihaja.
>> PUBLIKA: [neslišno]
echo ali print tam?
>> ZAMYLA CHAN: Vprašanje je bilo, bi lahko ne le za moštvo
echo ali print tam.
Torej bi to naredil nekaj nekoliko drugačna.
Da bi tiskani poizvedbo ni v tem, da -
No, zdaj, mi smo dejansko v našem regulatorju.
Torej ne bomo dejansko HTML ustanovi tukaj.
Se opravičujem, ki onemogoča apologize.php dejansko vas preusmeri na apology.php.
OK.
>> Torej, zdaj, gremo na obravnavo Vprašanje od prej o tem, kaj
Res je vrstic.
No, bo poizvedba vrnila Niz vrstic.
In je vsaka vrsta zastopana z asociativni array.
Torej, če sem se izvrši neko poizvedbo SQL in Sem shranjeni rezultat v vrsticah, nato
s pomočjo foreach zanke, nato pa niz Ime je prva tam - vrstice.
In potem bom poklical vsaka vrstica v tam $ zapored.
>> Torej ponavljanjem nad tem, da lahko potem odprete dani vrstici je ime stolpca,
leto stolpec in hiša stolpec.
Upoštevajte, da jaz ne bi mogla To storite z vrsticami, ker indeks vrstic
ime ne obstaja.
Vrstice je le niz asociativne nize.
Torej imate dve ravni obstaja.
Ko ste niz vrstic, boste morali priti v to.
In potem lahko dostopate stolpce.
Ali, da bi bilo jasno?
Ja, spredaj?
>> PUBLIKA: [neslišno] odprto nosilci za [neslišno]?
>> ZAMYLA CHAN: Oprostite?
>> PUBLIKA: Odprte konzole.
>> ZAMYLA CHAN: ti tukaj?
To mi omogoča, da se vključi da spremenljiva.
Ja.
>> PUBLIKA: Ko tiskate, ste tiskanje na HTML kodo?
>> ZAMYLA CHAN: Da.
Ko sem natisniti, to je tu notri moj template zdaj, tako da
moj pogled MVC metode.
Torej sem tiskanju v HTML.
>> PUBLIKA: Torej, če smo šli v razvijalcu orodja po zagonu tega smo lahko
ki dejansko v kodo?
>> ZAMYLA CHAN: To je velika Vprašanje, ja.
Torej, če si šel v orodja za razvijalce v Firefox pomočjo Firebug ali
Krom, potem ja, bi lahko glej posebno HTML.
Tako naj ne bi prikazovalo $ vrstica ["Ime"].
Pokazalo bi, kar Ime je v tej vrstici.
>> PUBLIKA: Just splošno vprašanje, kaj se tr in td opredeljena kot?
Zakaj bi [neslišno]?
>> ZAMYLA CHAN: Tabela vrstica tr, miza nato td stolpec.
OK.
>> OBČINSTVO: Ja, to je podatkov v tabeli.
>> ZAMYLA CHAN: Podatke tabele.
Ja.
>> PUBLIKA: To je vrstica, v kateri vrstica obravnava kot koloni?
>> ZAMYLA CHAN: Žal mi je.
Lahko ponovite?
>> PUBLIKA: Kako bi vi vizualizirati vrstice?
>> ZAMYLA CHAN: Kako bi si vizualizirati Vrstice v kakšen način?
Ali govoriš o teh vrstice tukaj ali TR vrstice?
>> PUBLIKA: Vrstice.
>> ZAMYLA CHAN: Te vrstice tukaj?
Jaz bi to vizualizirati kot Izvršim svojo poizvedbo.
In pravi, OK, imam bodisi 0 do n Višina vrstic, ki ustrezajo merilom
, ki jo je zahtevan.
Tako da imam nekaj več vrstic.
Torej vrsticah, so $ vrstice, trgovin vsaka eden od teh vrstic v matriki.
Torej, tudi če je samo ena od njih, to je še niz vrstic, ki se ujemajo.
>> Torej, na primer, je to podobno ko nerealne
cache od uporabnikov.
In merila, tam, kjer je bila ID je enak ID seje.
Res je samo ena vrstica , da bi lahko tekmo to.
Ampak še vedno vrstice pravkar vrnil ena vrstica.
Torej, bi si moral iti v vrsticah, indeks 0, indeks predpomnilnik na
dejansko dobili na vaš predpomnilnika.
>> PUBLIKA: Je funkcija print V echo isto stvar?
>> ZAMYLA CHAN: Da.
Da.
Natisni odmev isto.
>> PUBLIKA: Je foreach zanke Edini način, da indeks v vrstice?
>> ZAMYLA CHAN: Je foreach zanke Edini način, da lahko
Ponovil skozi vrstice?
Ne
Lahko uporabite tudi za zanke, pod pogojem, da boste vedeli, koliko
v matriki vrstico, ki je.
>> PUBLIKA: Bi lahko dostopate uporabljate vrstico, kot je [neslišno]?
>> ZAMYLA CHAN: Torej ne morete dostopati ga samo z uporabo vrstice, če nimate
foreach zanke pod pogojem, da niste razglašena vrstico.
Da.
Ja, v beli barvi.
>> PUBLIKA: Torej, kaj tr in td storiti?
>> ZAMYLA CHAN: Torej TR in td so oznake HTML.
TR označuje začetek namiznega zapored.
In vsaka td označuje nova tabela, stolpec podatkov.
>> PUBLIKA: Za vizualno kaj vrstica je podobno, samo zamisliti SQL, kako
imajo zapored.
[Neslišno].
>> ZAMYLA CHAN: Ja.
To je velika točka.
Lahko vizualiziramo vrstice, kot je bilo pravkar kot v Excelovi tabeli, samo
Seznam vrstami.
OK.
Vse je v redu.
Torej sedaj, ko smo šli čez izberite, če ni vse več vprašanj, se bomo
pojdi na vložek.
Torej, če sem hotel vstaviti v nekaterih miza in vstavite določeno stolpec
vrednosti, lahko sem se vstavi v Ravenclaw v letu 7.
Ampak včasih bi lahko prišlo do podvojene vrednote, kot smo videli v pset7, ko smo
so posodabljanje našo portfelja.
>> Torej, v tem primeru želimo uporabiti ON DVOJNIK KEY UPDATE, tako da ne bomo
shranjevanje več vrstic z isto ceniti, ampak ga dopolni.
Potem imamo dejansko posodobitev, ki ni vložek.
To je samo update, kjer boste posodobili v določenem mizo z dana
Merila in potem, končno, brisanje, ki počne zelo podobno stvar.
>> PUBLIKA: Bi lahko na kratko iti čez dvojnik ključa?
>> ZAMYLA CHAN: Ja.
V bistvu tukaj, imam vstavite gringotts, je galleons, te vrednosti.
Ampak ID, verjetno, je edinstven ključ Vrednost ustanovljen v MySQL tabeli.
Torej, če sem že, da je ID ustanovi, potem ne morem vstaviti novo vrstico.
Torej, če še ne obstajajo, potem ga moram posodobiti.
V sredini v beli barvi.
>> PUBLIKA: Torej vstaviti, posodabljanje, brisanje, in izberite, so tisti, ki vse na voljo
lokalno [neslišno]?
>> ZAMYLA CHAN: Torej vstavite, posodobitev, brisanje in
Izberite vse SQL poizvedb.
Torej, ko ste z SQL, boste imeli so na voljo.
>> PUBLIKA: Nazaj v zadnjih kvizi -
je bilo vprašanje, ki obravnavajo če bi imeli mizo in je želel
vstavite rezultati testov v enem in vstavite vaše ime, tako da vas ne bo pustil
[Neslišno] test rezultat tvojega prijatelja.
Kako bi to naredil z vložkom?
>> ZAMYLA CHAN: Torej, vprašanje je bilo o tem Predhodna vmesno vprašanje.
Nisem seznanjen, od katerih ena je zdaj.
Mogoče kasneje, če želite, da prišel gor in mi pokaži, potem pa sem lahko
Vsekakor vam nasvete.
Ampak govorimo o vključimo stvari, kot so ob rezultat nekoga, ko
ne sme, kaj je govoril o Injection napadi SQL.
Torej SQL injection napad je v bistvu ko nekdo prevzame
Prednost nizke varnosti Tako, da jemljete v podatkih.
>> Torej, tukaj, tako kot na področju financ CS50, ko smo prijavljeni, lahko vstopijo v
uporabniško ime v prijavnem obrazcu, box prvo besedilo, in
vnesite v geslo.
Morda bi naša PHP koda pogledati kaj takega, kjer $ username
je uporabniško ime in geslo post-podatki je geslo post-podatkov.
In potem samo izvršitev našo poizvedbo, recimo, OK, no, naša poizvedba se bo
izberite eno od naših uporabnikov, pri katerih uporabniško ime
tisti, ki so predloženi.
In geslo je geslo, kar pomeni, da so gesla ujemajo.
>> Zdaj, kaj če bi namesto dejansko predložitev dejansko gesla, kot so
12345 in ugibanjem na Vile, ki pravi: geslo in poskuša vdreti njihovo
račun, kaj če bi namesto so ta predložena.
Prav tako lahko vnesete morda ugibati na geslo.
In potem bi jih končali quote nato vnesite ali 1 = 1.
Da bi štedil neposredno v SQL poizvedbo, da si kaj takega.
Izberite eno od uporabnikov, medtem ko ime = roglji in geslo
enaka lily ali 1 = 1.
>> Torej, ali ima geslo za pravilne ali 1 = 1,
ki je vedno velja.
Torej v tem primeru, v bistvu, lahko uporabnik izkoristi to in se prijavite
sami po sebi in kramp račun nekoga.
Tako da je, zakaj se želimo izogniti nekdo, ki ima za to.
Ampak na srečo, funkcija poizvedbe, ki jih , ki poteka v ogradah bo
skrb za to za vas.
Prav tako boste običajno ne želijo treba dejansko predložiti gesel
sami.
Zato smo zgoščen ali šifriranih jim v financah CS50.
>> PUBLIKA: mimo kviz govoril približno MySQL za izhod v strune.
Ali moramo skrbeti za to?
>> ZAMYLA CHAN: To je dobro vprašanje.
Evakuacijo strune MySQL je definitivno funkcija, ki je bila uporabljena v našem poizvedbe.
Ampak definitivno pogledati v to.
Jaz bi rekel, da je to pošteno igro vedeti da bi si morali poklicati, da
delujejo na vrvici.
Ja, Belinda?
>> PUBLIKA: Kako veš, kdaj je enojni narekovaji ali dvojne narekovaje?
In tudi, počutim se kot v predavanju ste omenil nekaj o nimajo
[neslišno] ali kaj podobnega, ali Drugi single quote na koncu.
Mislim, da je poudaril v predavanju, ki vi bi morali opuščaj 1
in potem ni opuščaj ali kaj podobnega.
>> PUBLIKA: [neslišno].
>> PUBLIKA: Stvar je zadnji single quote tam v tem drugem polju
ne bi smelo biti.
[Neslišno]
Ker, ko ste vzeli, da je zadnji single citiram ven in se ujemajo teh za vsebino
kjer je geslo, če imate to poizvedbe, tam je enojni narekovaj na
konec že.
Želite uporabiti to enojni narekovaj kot tisti, ki je obrnjena v eno
[Neslišno].
Torej, kaj je pravzaprav v tem besedilu box ne bi smeli privoščiti.
>> ZAMYLA CHAN: Jaz bom spremenila.
OK.
Če ne obstajajo kakršne koli vprašanja, potem bom jo mimo Jožefu govoriti
O JavaScript, et cetera.
>> [APPLAUSE]
>> JOSEPH Nevladna organizacija: Tako smo se izvajajo malo zadaj.
Torej, če moraš oditi, da je v redu.
Vendar vas prosimo, da boste obdržali vaše glave navzdol če ste v sredini, tako da
ne blokirajo fotoaparat in ga uporabljate izhod nazaj, če boste morali.
Jaz sem Joseph mimogrede.
Zdravo.
Test, test.
Dan, je to dobro?
Cool.
>> Tako da bo video bo objavljeno tudi na spletu za tiste, ki
moral oditi.
Nerodno.
OK.
Torej pregled kviz.
To je mačka.
Zdaj, JavaScript, ki je morda ne kot Aww za nekatere od vas.
OK.
Tako da je prvi, odpokličejo od Zamyla.
Ne pozabite, da je PHP teči na strežniku.
In veliko krat, vidva napisal zanke v PHP natisniti HTML, kajne?
Torej, ko bo ta koda izvede, da HTML izhod, ki ga natisnete
dobi pošlje uporabniku.
In ko se to zgodi, ne more več PHP je treba zagnati, razen če ste osvežite stran, od
Seveda, ki reexecutes PHP.
Ampak, ko natisnete to HTML, ne moreš nikamor.
>> Torej se da HTML poslali uporabniku, ki je brskalnik tukaj, kjer
Milo je z uporabo računalnika.
In tako dobro, obstaja več stvari, ko smo poslali HTML za uporabnika.
Včasih smo želeli narediti nekaj podobnega ko boste kliknili na nekaj, kar si želimo
opozarjanje škatle, da pop up, tiste vrste interakcije, kot so, ko pritisnete
Ključ, ko boste kliknili na nekaj stran, želim da se kaj zgodi.
No, ne moreš reexecute PHP Koda ko je to HTML nastavljena.
Torej, kako si to naredil?
>> Mi uvesti nov jezik, imenovan JavaScript, ki teče v brskalniku
, ki vam omogoča delati stvari v HTML, ko prejmete
jih iz strežnika.
In to je razlog, zakaj smo ga odjemalca pokličite programski jezik.
Deluje na vašem računalniku -
odjemalec.
Imate vprašanja, ki doslej?
Ta paradigma je smiselno, da ljudem?
OK.
Dobro.
Vse je v redu.
Torej prva stvar, upoštevajte je JavaScript ni PHP.
>> Imajo neko drugačno sintakso, ki bomo šli v.
In imajo zelo različne uporabe.
JavaScript, še enkrat, za vaš Brskalnik, za stranko.
Strežnik teče nekje na nekoga drugega Računalnik, ki pošilja informacije
za vas, kajne?
Torej, če vas prosimo, da napišete PHP kodo na vprašanje izpit, ne pisati
JavaScript in obratno.
Boste le izgubili točk, in to ne bo zgodilo.
>> Torej, kaj je dobil v nekaj sintaktične razlike -
JavaScript na levi in PHP na desni strani.
Prva stvar, ki jo boste opazili pri JavaScript izjavljamo spremenljivke z
var ključne besede -
V-A-R. PHP uporablja znak za dolar kot Zamyla razpravljali prej.
Če želite, da razglasi asociativno matrika, bomo videli podoben sintakso na
desna stran s PHP.
Na levi strani, namesto uporabljate zavite oklepaje.
In potem imaš ključe so na levi strani.
Potem imate debelo črevo.
In potem boste morali vrednosti , ki ga želite.
>> Torej, to je, kako bi si to naredil v PHP Na desni strani s tem sekundo
črto, ki se začne pri Mila.
In to je, kako bi si to naredil na levi strani v JavaScript, če želite
kar imenujemo objekt.
In predmeti v JavaScriptu so samo asociativne nize.
Torej, če želite dostopati do polja, v PHP uporabljate to konzolo sintakso.
In na ta način, lahko dodelite ta lastnik polja Lauren.
>> No, v JavaScript, če želite, da dostop polje in ga spremeniti, lahko
uporabite dot sintakso.
Lahko uporabite tudi nosilec sintakso.
Vendar ne morete uporabljati dot sintaksa v PHP.
To ne bo delovalo.
Deluje le v PHP.
In končno, za tiskanje stvari konzola, uporabite console.log, ki
vi uporabljate veliko v pset8.
Lahko console.log da.
>> Če želite natisniti niz v PHP, boste morali uporabiti tiskanja r.
In na desni strani, vidite i hash Niz spajanja tam.
Nekdo je vprašal prej.
Uporabljam plus v JavaScript.
Če želim, da združevanje nekaj v PHP, uporabljam piko.
To so različni.
Če pišete PHP kodo, Ne uporabljajte plus.
Če pišete JavaScript kode, ne pisati piko.
To bo narobe.
In boste žalostni.
>> Torej sintaktične razlike.
Poznate svoje sintakso, ker če boste morali napišite vprašanje in uporabite sintakso
iz napačnega jezika, to ne bo delovalo.
In to bo narobe.
Torej, kaj je govoril o neki nadzorom tok razlike, kako boste uporabili
zank v vsaki izmed njih.
Zamyla šel čez desni strani.
Stvari na desni strani morajo biti seznanjeni.
Oglejmo si na levi strani.
>> Ko uporabljate za n zanke v JavaScriptu, vaš zanke spremenljivka, var i tam,
Zanka ključe matrike.
Torej vidite ime, hiša, in vlogo.
Če sem console.log i, dobim Ime, hiša, in vloga.
Tisti, ki so ključi.
V JavaScript, foreach zanke gre nad vrednotami tem polju.
Torej, ste opazili, da sta oba i.
Ampak tukaj na PHP strani, se natisne out Milo, CS50 in Mascot.
To so vrednote v PHP.
>> To so torej, kako sta ti dve različni v različnih jezikih.
Torej, če ste z uporabo foreach zanke, ne domneva, da je
vam daje ključe.
In če boste uporabljali za n zanke, ne Predvidevam, da vam daje vrednosti.
Ali to smiselno doslej?
Naslednji diapozitiv se dogaja, da vam pokažem kako lahko dostopate nasprotno v
vsak od njih.
>> No, če imaš ključ v JavaScript in želite vrednost ven,
si indeks v matrika s tem.
Tako da bo Milo iz te dobim kaj hočeš - vrednote.
Tam je ta drugačna sintaksa v PHP.
Če res želite, da ga pozna, ne vem Mislim, da smo jo pokazali, da vas še ni.
Ampak, če ste zainteresirani, lahko uporabite ta dodatna sintaksa na desni strani
stran, ki bo dejansko kaj dobiš ključi v PHP, ko ga uporabljate
foreach zanke.
Torej samo malo malenkosti če vas zanima.
>> Tako, da je samo za dokazovanje razlike med tema dvema zank.
Jih ne pomešajo, ko ste programiranje vprašanje.
Vsa vprašanja o tem.
Cool.
Vse je v redu.
JavaScript predmeti.
Govoril sem o njih.
Oni so kot asociativne nize.
Ena stvar, rad bi vas opozoriti, tukaj je, da je vrednost v asociativno
Niz je lahko karkoli v JavaScript.
>> Lahko je tudi funkcija, kot tam.
Imam funkcijo, ki je vrednost ključa.
In če želim poklicati te funkcije Pravkar sem dostop lubje.
In potem sem dal oklepaje po tem.
In da deluje.
Torej, kakšna vprašanja?
Ne?
OK.
Dobro.
JavaScript, kot so PHP, je ohlapno vnesli.
Kaj to pomeni?
>> To pa ima vrste.
Toda, ko razglasi JavaScript spremenljivka, pravite var i.
Saj ne rečem.
To ni stvar.
Pravkar ste rekli, da je spremenljivka.
In potem bodo JavaScript ročaj Vrste pod pokrovom za vas.
Mi lahko prosto spremeniti med vrste zaradi tega.
Zato sem se začne kot številne v tem primeru.
In potem imam niz.
In dodam sem jo.
In sem ga prerazporedijo nazaj na i.
>> Torej, na tej prvi vrstici, i je število.
Na drugo črto, sem zdaj postane Niz ko sem naredil prerazporeditev.
In tu, jaz sem samo concatenating to število na vrvico.
Torej vidite, da čeprav sem bil celo v prvem delu, to je nekako
podobnega pa se pretvori niz in zatem dodamo
na tem hello nizu.
In tako da je tisto, kar mislim z ohlapno tipkanje.
To, da ste pretvorbo med Vrste zelo enostavno.
In to ne mečite opozorila ob želeli C počne.
>> Tako da sem zdaj vsebuje zdravo 123 do niza.
Naprej.
Prav tako lahko neovirano primerjajo med vrstami.
Torej, če ste jo pravkar uporabljate ==, zelo veliko kot so PHP, JavaScript
does podobno stvar.
Niz 123 je enako številu 123, ko uporabljate dvojne enaka.
Ko se uporablja triple enak, prav tako želi zagotoviti, da
Tip je enaka.
Zato, ker da je vrvica in da številko, čeprav sta oba
123, ko uporabljate triple enaka, boste dobili napačen.
V dvojni enako zadevo, dobiš res, ker dvojni Enako ne
mar tipa.
Trojni Enako ne skrbi vrste.
Vprašanja?
OK.
>> In še ena stvar je JavaScript Področje je nekako globalno, če ste
v funkciji.
In deluje enako Tako v PHP pravzaprav.
Torej gremo skozi ta primer.
Nastavite, da sem do 999.
In potem sem šel v to zanko.
Torej, če sem tiskanje i v to za zanka, pričakujem, 0, 1, 2, 3, 4.
Sem dobil, da i = 4.
To korakih Zdaj za 5 pri Konec za zanke.
Potem pa izbruhne zanke, ker ne izpolnjuje
pogojuje več.
>> Kaj menite, da je naslednja console.log natisne?
Tako da je tisto, kar bi naredil v C. V C ker če imate kot var i zunaj
in imate var I Inside zanke, kot so zanko, potem je to tako, da
to je zajeta da sta i je so različni.
V JavaScript, bo to šele obravnavati kot v enakem i.
Sem dobil 5, ker je bila vrednost ko je izstopilo iz zanke.
Torej tiste, ki sem ji so enaki i.
Ali to smiselno?
>> No, je smiselno od Stališče JavaScript.
Toda enako paradigmo ne prenesejo na C. Imajo
različna pravila določanje obsega ocenjevalnega poročila.
Da.
>> PUBLIKA: [neslišno]
izven funkcije [neslišno]?
>> JOSEPH Nevladna organizacija: Torej, zunaj katerega funkcija?
Torej bom tisti, ki v samo sekundo.
Zato pravimo foo (i).
Ta prehaja I na foo, prirastke jo, nato pa ga prijavi.
Tako je bilo 5.
Tako postane 6.
Ampak, kaj sem govoril o je da sem v tej funkciji.
Ker je parameter, to je zasnovan z mislijo na to funkcijo.
Torej, ko sem dejansko ven, da funkcijo, to je zdaj šel
nazaj na staro i.
To i je zajeta samo zato, ker to je v funkciji.
In imamo možnosti in funkcije.
Ampak nimamo možnosti zunaj funkcij v JavaScript.
Ali to smiselno?
Da.
Vprašanje.
>> PUBLIKA: Same [neslišno]?
>> JOSEPH Nevladna organizacija: Torej, ja.
V PHP, to je ista vrsta stvari.
Tam je rahlo subtilnost pravzaprav.
Lahko pa me vprašajo da je po pregledu.
Ne boste res potrebujejo vedeti da subtilnost za kviz.
Za vse namene, kot so spremenljivke, globalno in PHP, razen če
oni so v funkciji, enako stvar v JavaScript.
Da.
>> PUBLIKA: Zakaj je to dovoljeno v JavaScript in ne kje drugje?
>> JOSEPH Nevladna organizacija: Torej, zakaj je dovoljeno v JavaScript in ne v C?
To je samo, kdo je prišel gor s JavaScript je odločilo, da je to v redu, v
JavaScript.
Torej, to je tako kot v programskem jeziku Konvencija, kot bi rekli.
Da.
>> PUBLIKA: Torej, zakaj si gre 6-5?
>> JOSEPH Nevladna organizacija: Torej je šlo 6-5, ker ko sem sem opravil v foo, da
i znotraj foo je zdaj zajeta na foo, ker obstaja obseg funkcij v
JavaScript.
Ampak, ko pridem ven od tu, ker je je bil zasnovan z mislijo na funkcijo, sem samo
uporabljate redno sem, da je v notranjosti Preostanek nadzor pretoka.
Smisla?
Lahko grem naprej?
Vse je v redu.
Cool.
>> Sprejetje tega je predmetov so posredovani z referenco.
Saj veš, kako, ko se boste peljali matrika v C, da bi lahko
dejansko spremeniti niz?
To je ista stvar v JavaScript.
Če grem mimo predmet, v tem primeru, sem opravili Milo v tej funkciji catify.
Milo začne ven.
Njegovo ime je Milo Banana.
Sem mimo tega predmeta v funkciji ker je objekt, asociativna
matrika v JavaScript.
>> Ko sem izvesti operacijo v tej funkciji, pa bo
dejansko pretvorbo predmeta.
Tako da se bo to zgodilo le za objekte v JavaScript, tako kot se to zgodi
Za nizi znotraj imena C. Torej Milo bo dejansko postala mačka zdaj.
Ali to smiselno?
Torej, to deluje samo za predmete.
Predmeti so opravili s sklicevanjem.
Da.
>> PUBLIKA: Praviš, da v nasprotju s spremenljivo i.
>> JOSEPH Nevladna organizacija: Ja.
Spremenljivka, ki sem bil samo številko, kajne?
To je kot v C, ko se boste peljali celoštevilčnemu, da naredi kopijo.
In ko se boste peljali niz, dejansko spremembe dejansko matriko
C. Enako se zgodi z JavaScript v tem primeru.
Vse je v redu.
In naslednje, Milo je žalostna, ker on je zdaj mačka.
To je bilo pravzaprav Milo po nekateri izlet k veterinarju.
>> Torej, kako bomo uporabili JavaScript na spletni strani?
Jih bomo lahko vključili.
To je HTML kodo, s traku oznak.
Torej imam strip oznake tam.
In potem sem dal nekaj JavaScript Koda v scenariju oznake.
In potem se izvaja ta.
Ko sem to naredil tako, da je imenujemo inline JavaScript.
To je nekako grdo, saj JavaScript je pravzaprav v HTML.
>> Boljši način za to, veliko lepše, je, da napišete JavaScript v
zunanjo datoteko in nato zagotoviti script tag z virom.
In to bo šel do te datoteke JavaScript in preberite JavaScript kodo od
Namesto, da datoteko.
In na ta način ne boste imeli veliko JavaScript na začetku vašega
HTML datoteka, ki omogoča res grdo.
Pravkar ste jo dali kam drugam.
In potem bo to prebral od tam.
Ali je to smiselno?
>> Zadeve umestitev.
V tem konkretnem primeru Scenarij je pred telesom.
Torej, ko sem izvršiti, da obstaja nič v telesu še ni.
Mogoče bo to malo bolj občutek, ko sem mu pokazati to naslednji del.
V tem primeru, skript prihaja po div.
Tako dejansko zdi div na strani prvi.
Tukaj v tej mali rdeči krog, vidite prikaže besedilo.
In potem se pojavi opozorilo.
>> V prvem primeru, ker skript je bil pred div,
opozorilo pojavi prvi.
In potem div pojavi po opustite potrditveno polje.
Torej izvedba zadevah.
Tako da bomo to v mislih.
To bo pomembno v malo.
OK.
Tako dobro, kako si počakajte Celotna stran je naložen nato pred vami
izvršiti neko kodo?
Bomo dobili v to malo malce kasneje preveč.
Ampak šele obdržati to umestitev zadevah v mislih, ko smo za
prišel na drug diapozitiv.
>> Tako smo prišli do DOM zdaj.
In kaj je DOM?
Torej, če pogledaš na HTML kodo, to je samo kup besedila na zaslonu.
Torej, kako veš, da je JavaScript to je HTML element?
Torej moramo imeti nekaj pomnilnika predstavitev tega
struktura, ki jo imamo.
In vsakič, ko imamo to v spomin zastopanje v JavaScript, pravimo
ki DOM.
In to je samo način, da se ljudje odločili, da bi morali to pomenilo
HTML struktura.
>> In kaj to DOM izgledal?
No, v reprezentacije spomina, vzamemo to besedilo.
In smo ga spremenili v spomin zastopanje.
Torej je to HTML.
Tako smo prvič izvedeli, da je vsak DOM drevo ima dokument.
Videti je kot drevo.
In dokument vsebuje HTML tag, pravzaprav vse, kar je
Notranjost tem.
HTML tag ima dva otroka.
Ima glavo.
Da glava, če pogledaš na zarezo tam, kako je strukturirana
med tesnimi oznake, glava ima otroka.
Otrok je naslov.
Točno tako.
>> Zdaj imamo telo otroka.
In potem, da ima telo Otrok se imenuje družina.
In da družina ima tri otroke -
Najstarejši, srednji in najmlajši.
Torej bi morali vedeti, kako pripraviti diagram kot je ta, ko smo vas vprašali, kako
narisati diagram, ko smo dali ste HTML na levi strani.
Vedo, kako proizvajati DOM drevo.
In znotraj teh stvareh, pa je samo nekaj besedila, ki sem jih zastopa
kot majhne škatle.
>> Ali to DOM drevo struktura se smisel in kaj je DOM?
Torej, kaj p stati?
Tukaj, p tam s tem, da oznake predstavljajo
odstavek tag v HTML.
Tako da lahko pogledate.
Ampak to samo pomeni, da je nekaj prostor za nekaj besedila.
In to je nekaj privzeto CSS styling, ker je točka tag.
Ampak res ne skrbi, ta del preveč.
Samo vem, da je ograda nekaj besedila.
Da.
Vprašanje?
Da.
>> PUBLIKA: Pravkar ste omenili CSS.
Družina in hash hash vse to je v bistvu
predstavlja ID v CSS?
>> JOSEPH Nevladna organizacija: Ja, točno.
Jaz bom to, kar ti hash pomeni v sekundi.
Ko je Angela šel čez CSS, je govoril o CSS selektorje.
To so CSS selektorji, ki je govorila o tem.
Ja, Rob?
>> ROB Bowden: Jaz bi tudi komentar ki DOM znotraj tag naslov
je tudi besedilo vozlišče.
>> JOSEPH Nevladna organizacija: Right.
Tako znotraj naslovu tag, Imam nekaj besedila DOM.
Torej res, bi moral ta naziv imajo podobno Malo polje, ki prihajajo izven nje, kot dobro.
Vendar pa to ni važno preveč v tem primeru.
Mi res ne skrbi besedilnih vozlišč, kot jim pravimo, preveč.
OK, bomo naredili.
Očitno imamo.
In bom popraviti, da ko Spet sem jo naložite.
Ali to smiselno?
>> Torej, kako bomo delo s DOM?
Vsakič, ko se ukvarjajo z DOM v JavaScript, obstajata dva koraka.
Izberete DOM element.
In potem se stvari z njo.
Torej, v tem primeru, abstraktno, sem izbran srednji element.
In potem primer počne stvari z njim bi spremenili besedilo.
, Ki se uporablja, da bi Bob.
Zdaj, kaj sem naredil z njim sem spremenila Bob Milu v tem primeru.
>> Torej, kako bomo to dejansko storili?
Kako narediti selekcijo?
In kako naj počne stvari, stvar, ko smo ga sprejeli?
No, tako fantje so se ga naučili V tem razredu je s pomočjo nekaj, kar smo
imenovano jQuery.
Torej, kaj je jQuery?
jQuery je knjižnica, ki omogoča JavaScript lažje pisati.
Torej je nekdo vzel čas in napisal jQuery.
>> jQuery je dejansko napisal v JavaScript.
In potem, ker so to naredili, smo zdaj imajo cel kup funkcij, ki
lahko uporabimo, da bo naša Živi zelo enostavno.
Torej, kaj so nekateri stvari, kajne?
To omogoča, da izberete elemente lažje.
To omogoča spreminjanje HTML, dodajanje razrede lažje.
To omogoča Ajax lažje.
Bomo prišli do, da v sekundi.
>> In to je analogen knjižnice C.
Tako da vključujejo string.h, boste dobili strlen.
Dobiš strcpy, vse te stvari.
Ko boste vključili jQuery, dobiš lepo načinov, da izberete elemente sprememb
Stvari, et cetera.
Boste dobili dodatne funkcionalnosti, ki JavaScript ti ne daje.
Torej jQuery ni JavaScript.
jQuery je knjižnica, ki je napisana v JavaScript, ki omogoča JavaScript
lažje pisati.
>> Torej jQuery ni programiranje jezik.
Vendar JavaScript.
narediti.
Da boste dobili svojo terminologijo prav.
Vsa vprašanja?
Da.
Je to vprašanje?
Vse je v redu.
Torej, kako boste uporabili jQuery?
No, ko si pisal nekaj JavaScript kodo in ti vključujejo
jQuery na vrhu datoteke, kot je skript datoteko, uporabite znak za dolar
zdaj, da bi dobili dostop do jQuery.
In to je drugačen od znak za dolar v PHP.
>> To je ti isti simbol tip na tipkovnici.
Vendar pa pomeni zelo različne stvari.
Znak za dolar v PHP pomeni to je, kako Izjavljam spremenljivko.
V JavaScript, če ste vključeni jQuery, se zavzema za jQuery.
Tako da se vodijo v mislih.
Torej, kako bi lahko izberete DOM elemente?
No, ko si to naredil grd JavaScript Tako lahko dostopate
dokumentirati globalno spremenljivko.
In potem dobiš element s šifri družino.
To je res dolga in besedna in ni lepo.
>> Ali lahko dobite vse elemente da so p tag.
To deluje tudi v JavaScript.
Ampak mi nikoli ni zares pokazala, vam sintaksa preveč.
Kaj smo pokazali, da si jQuery.
Tako da celoten selektor tam, da Izražena je bila v JavaScript šele pride
kondenzira na to zelo lepo dolarja podpisati hashtag družino.
In $ p, točno tam, kjer je to všeč.
Če želite izbrati vse p oznake znotraj družine, smo dal prostor
med njima.
In zdaj smo dobili vse p tags znotraj družine.
>> In kaj znano?
No, Angela govoril o CSS selektorji.
Daj mi trenutek.
In tako, da izberete element, samo uporabite isto stvar kot ti
bi naredil s selektorjem CSS.
Če si dal hash spredaj za to, da izbere po ID.
Dot izbere po razredih.
Če imate le stvar brez hash ali pike, da izbere tiste oznake.
Vprašanja.
Ja?
>> PUBLIKA: Ko smo uporabili piko v naši HTML, je, da ni jQuery?
>> JOSEPH Nevladna organizacija: Dot v našem HTML je JavaScript stvar.
To ni jQuery stvar.
Tako vi ga naučili z jQuery je, da uporabite. html.
In potem si ga opravili kar HTML se bo.
Torej bom dobil na to v samo drugi dejansko.
Torej, kako naj naredimo stvari na elementu ko smo ga izbrali?
Tako da je primer izberete element.
Torej, zdaj smo želeli narediti stvari z njo.
>> Torej, v tem primeru, naj gredo nazaj na prejšnji diapozitiv.
, Preden je bil Bob.
In želim to spremeniti znotraj HTML Milu.
Zato sem poklical funkcijo HTML iz elementa.
Ta funkcija HTML je Uporaba elementa.
In potem sem dal to, kar Želim HTML biti.
In to samo nadomešča tisto, kar je znotraj da tag z vsem, kar sem dal to.
Da.
Vprašanje?
>> PUBLIKA: se uporablja hashtag samo jQuery.
[Neslišno]
ne bomo uporabili.
>> JOSEPH Nevladna organizacija: Ja, točno.
Ampak ne skrbite preveč o čisti JavaScript.
Želim vama, da se osredotoči na to, kako bi to naredil s jQuery, saj
da se dogaja, da se pomembne del na kvizu.
Prav.
Točno tako.
Torej vidite, da je hashtag, tako da ustreza izbiro elementa z
ID srednji zaradi tega hashtag.
Hashtag pomeni identifikacijo.
In ta element ima ID sredini.
Tako da je element smo izbrali.
>> PUBLIKA: [neslišno].
znak za dolar hashtag [neslišno]?
>> JOSEPH Nevladna organizacija: Torej, ne.
Vprašanje je, ali lahko uporabljate. Vrednost.
In. Vrednost deluje le na elementih da so vložki.
V jQuery, bi bilo . Val, ne. Vrednost.
Torej bom na majhen primer, da kaže vse to v kombinaciji
v sekundi.
Ampak mislim, da to služi malo košček Smiselno je, da ljudje tako daleč.
Želite spremeniti HTML, klic metode HTML.
Da.
>> PUBLIKA: Ali lahko pojasnite, Ponovno metoda?
>> JOSEPH Nevladna organizacija: Tako metoda je samo funkcijo, ki pripada enemu, v tem
primera, eden od teh elementov DOM, saj vidiš, da
Izbrali prvi element.
Pravzaprav, dovolite mi, uporabite miško.
Izbral sem element prvi.
In potem sem poklical to HTML delovanje, ki je imela.
In ker ta funkcija pripada ta stvar, pravimo, da metoda.
To je samo fancy ime za to.
Ponovi.
Torej, se spomnite, smo izbrali element sedaj.
In smo jo dali v notranjosti spremenljivi element.
Popraviti?
>> Torej, če želimo spremeniti HTML na notranjosti, saj je bil Bob prej,
želite spremeniti to besedilo Milu.
Zato pravimo HTML.
In mi je povedal, kaj HTML notranjosti ta element moral biti zdaj.
, In ga tako spremeni v Milo, ker sem dal to Milo.
>> PUBLIKA: Torej, oni skupaj.
[Neslišno]
>> JOSEPH Nevladna organizacija: Ja, ja.
Oni sodelujejo.
Tako je eden od njiju izbere prvi element.
, V drugem pa ne kaj z njo.
Da.
>> PUBLIKA: [neslišno].
Če ta način se razlikuje od HTML imate metodo enako dejansko.
>> JOSEPH Nevladna organizacija: Ja.
To je drugačen način.
In bomo lahko zajema, da v samo sekundo ko pridemo v primer.
Želim zagotoviti, da bomo pospešili ker nam zmanjkuje časa.
Ampak smo teči pot skozi čas zdaj.
OK.
Cool.
Torej, če želite dodati razred, tam tudi metodo add razred.
To je samo primer, kaj lahko to storite s jQuery.
To samo dodaja razred.
>> Če želite, da ga odstranite, lahko pokličete remove.
To je samo še ena stvar, ki jo lahko narediš.
Torej več primerov stvari, ki jih lahko storite.
Torej sem ga dal na top, kot je ta?
Najmlajši odstrani.
Če sem samo izvršitev te JavaScript v top moje datoteke, bo to delovalo?
Prav.
Ker pa srednji še ne obstaja.
Tako da to ne bo delovalo.
Izvrševanja naročil.
Jasno je, da na vrhu prve.
Kaj?
>> PUBLIKA: Najmlajši še ne obstaja?
>> JOSEPH Nevladna organizacija: Ja.
Najmlajša še ne obstaja.
Točno tako.
>> PUBLIKA: Rekli ste, srednji.
>> JOSEPH Nevladna organizacija: Žal mi je.
Najmlajša še ne obstaja.
In druga stvar, ki je nisem vključevala jQuery
datoteko vprašati scenarij src.
Tako, da to ne bo delovalo.
Pravzaprav nisem storil, da je v Naslednja slika, ki je
naj se določi, da bodisi.
Ampak način, kako to storiti, je JavaScript je ob dogodku.
Torej, kaj moramo storiti, je, ki jih uporabljamo dogodek Handler, da bi se to zgodilo.
In tako sem izberite dokument nastaviti prvi.
Sem rekel, v redu, če je dokument pripravljeni, mi zagnati funkcijo.
Tako, da je vse, kar sintaksa sredstva.
>> Izbral sem dokument.
Zdaj, ko je dokument pripravljena zagnati funkcijo.
In tako sem, ko je dokument pripravljeni, kar pomeni, da vse HTML je
obremenjeno, potem pa sem zagnati funkcijo da odstrani ta element.
In zdaj, ko sem teči to funkcijo da sem opravil v pripravljen sem
zagotovljeno, da so vsi HTML na Stran se bo najprej obstajati.
Da.
Vprašanje?
>> PUBLIKA: Kaj je dogodek ključno besedo v funkciji?
>> JOSEPH Nevladna organizacija: Tako, da dogodek ključna beseda v Funkcija je samo parameter, ki
gets opravili s funkcijo za vsak dogodek.
To je samo nekaj, kar dobite brezplačno.
Ko uporabljate ključne trener v pset8, bi lahko ta dogodek vam povem, za
Primer, ki ste pritisnili tipko za naprej.
V tem primeru se za pripravljeno primeru to je pravzaprav ni zelo koristno.
Toda za ključni dogodek navzdol, to je bolj koristna, saj boste spoznali, ki
Ključne ste pritisnili tipko z dostopom Koda off to dogodkovnega objekta.
Popraviti?
Ali to smiselno?
OK.
Da.
Vprašanje?
>> PUBLIKA: Torej lahko daš script tag nižje?
>> JOSEPH Nevladna organizacija: Torej, ja.
Lahko bi dal skript tag nižje.
Ampak potem to postane res grdo.
In mi je všeč, da centralizira vse naše kode na enem mestu.
In to nam bo omogočilo, da to storite.
Ne pozabite, prej sem rekel, da je lepše način, da se zagotovi, da so elementi
na strani, preden izvedete kodo?
In to je samo lep način , s katero bi dosegli to.
>> PUBLIKA: [neslišno].
>> JOSEPH Nevladna organizacija: Ja.
Ti bi še vedno morali, kajne?
Saj se spomnite, ste vključeni vloži na vrhu strani.
Tako se dogaja, da najprej izvesti pred prideš na dnu strani.
OK.
Torej si lahko dodate tudi drugačna tip obravnavo dogodkov.
Ta je pravkar obdeluje klikov.
Ko kliknem na najmlajše, nato se bo pop up z razpisom ukrepa.
To je le drugačen Vrsta dogodka.
V nasprotju z pripravljen dogodek, imate zdaj uporabite dogodek klik, ko prejmete
klikne na element.
>> In tako v tem primeru, ne pozabite, klika Vodnik je priloženo najmlajše.
Torej se to zgodi samo takrat, ko I kliknite na najmlajše.
In v drugem pa, pripravljenega dogodka je vezan na dokumentu.
Torej, ko čaka, da dokument da bo pripravljena.
Smisla?
Mislim, da lahko gremo naprej.
Da.
Vprašanje?
>> PUBLIKA: [neslišno].
V tem primeru boste uporabili [neslišno].
>> JOSEPH Nevladna organizacija: Oh, ja, saj v tem primer, sem moral čakati za najmlajše
element, ki se pojavijo na zaslonu najprej preden sem lahko pripnete klikom trener za
to, kar je razlog, zakaj sem ga dal notri za dokument pripravljen.
OK.
In dostavo, tako da je to velik primer kako bi se združujejo vse.
To je samo primer preverjanje veljavnosti obrazca ki ste jih videli v predavanju.
Torej, da se korak za korakom, kot je greš skozi to.
In to bo povsem v redu.
Samo brati od vrha do dna.
>> I imajo obliko na dnu.
Ko je dokument pripravljen, da priložite predloži trener v obliki, tako da
ko sem predložiti obrazec, dobim vrednosti znotraj vsakega od teh vložkov.
In sem preveriti, če je prazen.
Če je prazno, se bom vrnil false, ker Ne želim, da predloži obrazec,
ker oblika je narobe.
Če je geslo prazno ali je manj od osmih znakov, ne predloži
oblika, ker je to tudi narobe.
In vrne false le preprečuje Obrazec s prijavo in
bo na novo stran.
>> In upam, da je to smiselno.
Mislim, vi bi morali hoditi po ta koda korak za korakom na svoje.
In ko boste razumeli, kaj select elemente in narediti stvari z njo
dejansko pomeni, to bo veliko smisla za vas.
Ja?
>> PUBLIKA: Kaj počne name = ime pomeni?
>> JOSEPH Nevladna organizacija: Torej name = ime in ime = geslo pomeni le pogledati
atribut karkoli si izberete.
In potem, da se mora ujemati.
Torej gremo v registracijo.
In potem gledamo na vse vhode in registracija.
In potem smo izbrali tista, kjer ime atribut je enako uporabniško ime.
Tako da samo, da je prva izbirna izbere vhod ime.
In da drugi selektor izbere samo geslo eden, ker tisti imajo
Njihovo ime atributi določiti, kaj oni naj bi bili.
Vprašanje?
>> PUBLIKA: Na oddajo, kako deluje Spodnji del rešiti zgornji del?
>> JOSEPH Nevladna organizacija: Torej, to je zato, ker za obravnavo dogodkov.
Torej čakamo za predložitev dogodek da dobi odpustili iz obrazca.
In to je vse, kar je oddate.
Zakaj pravim predloži gor?
Pravi, da ko se predloži obrazec, Dobim predložiti dogodek.
Naj samo prestreči in da nato zaženete to kodo, namesto.
Ja?
>> PUBLIKA: Zakaj imaš da imajo funkcijo dogodek?
Zakaj ne moreš le [neslišno]?
>> JOSEPH Nevladna organizacija: Ker v JavaScript, ki jih morali razglasiti funkcije.
To je samo, kako deluje v JavaScript.
Moraš reči, da se dogaja zagnati funkcijo.
Torej ste to povedali, da ste Pričakujem funkcijo tukaj namesto
le zaviti oklepaji.
>> PUBLIKA: In funkcija je vse, kar sledi?
>> JOSEPH Nevladna organizacija: Ja.
Funkcija je vse, kar je notri Zaviti oklepaji po
da je funkcija ključna beseda.
Ja?
>> PUBLIKA: [neslišno].
>> JOSEPH Nevladna organizacija: Za predložiti?
>> PUBLIKA: No, za funkcijo brez dogodka.
>> JOSEPH Nevladna organizacija: Ja.
Torej brez primeru lahko imaš to.
Če vam ni treba dogodka, potem pa jo lahko izpustijo.
Ampak, če boste to storili, potem si Pravkar ga tam.
Da.
Hitro vprašanje?
>> PUBLIKA: [neslišno].
>> JOSEPH Nevladna organizacija: Ja.
Ker tisto, kar morate storiti, document.ready ravno pravi čakati vse
HTML na strani najprej naložiti.
In ponavadi, želite, da vaše elementi na mestu, preden zaženete kodo.
Vse je v redu.
Moramo priti do Ajax.
Nimamo veliko časa.
Tako prednosti in slabosti.
JavaScript je lažje poskus pisati s jQuery.
Vendar jQuery je nekako počasi.
>> To je, kot je PHP počasnejši od C, saj je razlaga.
In jQuery je nekoliko počasneje, kot JavaScript, saj ne veliko
Stvari pod pokrovom.
In tako, če ste z uporabo jQuery, da je samo malo počasneje, kot
JavaScript, čeprav vam lepo eleganco.
In končno, Ajax.
Do sedaj z Ajax, še niste videli Ajax v smislu pset7 še, ker
Ko boste to storili, boste predloži Obrazec za ponudbo.
To obilje novo stran.
Tako boste dobili veliko belo bliskavico na strani pa, da
Druga stran obremenitve, pravilna?
>> Bilo bi res lepo, če ti niso imeli ta trenutek.
Kot so Facebook, če si se pomaknite dno, dodaja nove vsebine
brez osvežujoč celotno stran.
Tako da bi kaj takega bilo lepo.
To je koda JavaScript na levi strani.
Boste dobili tisto, kar je znotraj tega vhoda.
Dobiš info stalež iz Yahoo!
In potem si lahko velik niz, ki pravi, OK, to je sporočilo, ki ga želim
prikazati na zaslonu.
In potem si dal to sporočilo v notranjosti nekega HTML elementa, ki dobi
prikaže na zaslonu.
>> Tako, da je vse, kar se dogaja tukaj.
Torej v bistvu, ker je to vse JavaScript in vam ni treba zagnati
več PHP, to bo poskrbel da se stran ne osveži.
Torej to je samo abstraktna ideja da govorim tukaj zdaj.
Abstraktna ideja je, da če vam je Vse v JavaScript, nimate
Stran osvežitev.
Ampak kako si zdaj to?
>> No, pravzaprav, kaj je govoril o Problem s tem prvi.
Problem je v JavaScript, izvedba je sinhroni.
Tako da boste morali čakati eno linija končati pred vami
izvesti naslednje vrstice.
In kaj, če bom čez Yahoo!, in njihovi strežniki so res počasen in
jim traja tri sekunde, da vrni mi, da info zaloge?
Ko sem udaril, da je cena linijo, če izvedba je sinhroni, saj je z
privzeto, kaj to je šele tekoč storiti, je Vaš brskalnik se bo na stojnici za
tri sekunde.
In ti ne bo uspelo narediti kaj pa se dobi te podatke.
To se dogaja, da se zamrznejo.
>> In to je slabo.
Vi ne želite, da uporabnik imajo zamrznjene spletno stran.
Popraviti?
To je samo slaba.
Vsakdo se strinja?
Če brskate Facebook in jo zamrzne in ne morete storiti ničesar, vas
dobijo res uničen.
Torej je raztopina naredimo nekaj asinhrona namesto tega.
Torej, vse to asinhrono, kar pravi se bom vprašati to
URL za nekatere podatke.
In potem grem naprej.
Jaz bom samo, da izvršilni karkoli oznaka, ki je po tem.
>> In potem, ko je, da so podatki pripravljeni, potem bom obdelala.
To je vse, kar je rekel.
>> PUBLIKA: Ajax samo naredi Koda asinhronski?
>> JOSEPH Nevladna organizacija: To je asinhrona Tako ljubek podatkov.
Torej prva stvar, Ajax je mi omogoča pridobiti podatke
iz zunanje spletne strani.
In druga stvar je, da poskrbi, da je moja stran ne zavlačevati, medtem ko sem
pridobivanju teh podatkov.
To je asinhrona del.
Ker gre nekam drugam, ker sem rekel, da sem šel naprej, medtem ko
to je ljubek, da so podatki, ki omogoča asinhronim.
Držim izvršitve.
>> Tako da se vodijo asinhroni ideja v mislih.
In ti bom pokazal, kaj Razlika je.
Sinhroni različica je na levi strani.
Asinhrona različica je na desni strani.
Pogled na številke za prikaz, ki koraki ustrezajo kar
izvaja na vsaki vrstici.
Tam, opozorilo se pojavi prvi.
Ker pridobivanje informacij stalež iz Yahoo!
traja tri sekunde, da stojnicah za tri sekunde.
In potem je opozorila na ceno Po teh treh sekundah.
>> Torej sedaj, da opozarjanje predstave do takrat -
tri sekunde palcev
In potem je opozorila, ki jih po tem.
Tako da gre samo korak za korakom.
To je kot, kaj si fantje bi sprejeli, pravilna?
Z asinhronim izvedbo, vas opozori prvi.
Potem greš dol na ta URL.
In pravite, da bom prosite za podatke.
In potem bom obdelala kasneje.
Tako da takoj izvrši Naslednja vrstica potem naredim, da
asinhrono zahtevo.
>> Torej 0,001 sekunde, boste videli opozorilno hi.
Izvršitev te funkcije, opozorilni bye.
In ker sem obljubil, da bom bi obdelujejo podatke kasneje, kaj
zgodi se, ko pride, da podatke nazaj tri sekund kasneje, potem sem teči, da
Funkcija, da imam tam.
Ja?
>> PUBLIKA: Ali lahko navedete, ali pojasniti, kaj pomeni Ajax?
>> JOSEPH Nevladna organizacija: Torej Ajax je tako, da če sem potrebujejo podatke, ko sem na spletni strani in sem
Ne želim, da osvežite stran, potem Jaz raba to tehnologijo, imenovano Ajax.
To v bistvu pomeni le, pojdi prinesi Podatki iz druge spletne strani.
In to na način, ki le ne stojnici mojo spletno stran.
>> PUBLIKA: Torej je to neločljivo povezano del JavaScript ali jQuery?
>> JOSEPH Nevladna organizacija: Torej nekdo napisal način za to JavaScript davno.
Na eni točki, to ne obstaja.
In tako je nekdo izumil to tehniko da se omogoči ljudem, da zahtevajo te podatke
na ta način.
In ti napisal nekaj stvari da to stori za vas.
In jQuery samo vam daje to zelo lep način, da to storite
s tem $. dobil funkcijo.
vprašanja?
Ne morem odgovoriti na vprašanja o Ajax kasneje preveč.
Jaz bom tukaj.
>> Zato pa nam prinesi podatkov brez osvežite stran.
In kaj je nam to v asinhroni način, da
ne zmrzne stran.
Predolgo, ni prebral, če je razlaga je bila predolga za vas.
Torej, na koncu, cross-site skriptni napadi.
To smo lahko videli z Zamyla.
Če je v moji baz nekdo to ime, ki je ta scenarij tag, in jaz
nekaj kodo na moji strani, da natisne iz imen ljudi v vrsti, ali imam
nekateri JavaScript kodo, ki vnaša to ime v stran,
kaj HTML gets proizvaja?
No, sem izpisal HTML tag.
Jaz izpisal vse te oznake.
>> Pridem do dela, kjer sem tiskanje ven s prijatelji.
Tiskam Lauren ven.
To natisnete Milo ven.
In potem moje ime v bazi podatkov je scenarij objave
Neprijatan Facebook stanje.
Ker sem ta vstavljena v stran ker zgleda JavaScript, če
ta stran dobi pošlje uporabniku, to gets izvajajo kot JavaScript.
In zato je to, kar imenujemo cross-site skriptno napad.
Nekdo postavlja zlonamerne informacije zbirke podatkov, da bi lahko ustrezajo
nekateri dodatni niz ali nekateri JavaScript niz.
>> In ko postane izpisal na stran na ta način, potem kaj
se zgodi, da postane slabo kodo usmrčen da nisem nameravam
za to, da se izvajajo.
In to je vse, cross-site skriptno napad.
In kako si dobil okoli to je, kot je rekel Zamyla.
Pravkar ste zaviti stvari HTML posebnih znakov.
In to HTML posebnih znakov je PHP Funkcija, ki bo preprečila tovrstne
stvari iz dogaja z vami če imate zlonamerne
Niz v zbirki podatkov.
To je samo uide, tako da se ne se razlaga kot HTML.
Nadomešča male nosilce s tem, kar imenujemo subjekte.
In smo šli čez to v predavanju preveč.
Zato mislim, da fantje bi morali imeti dobro razumevanje o tem.
Vprašanja?
Da.
>> PUBLIKA: Torej, kako bi [neslišno]?
>> JOSEPH Nevladna organizacija: Ponovi.
>> PUBLIKA: Kako bi monitor -
>> JOSEPH Nevladna organizacija: Right.
Torej imate nekaj, kar pravi, ko Jaz registrirati, tip v mojem imenu.
Pravkar sem tipa na tem področju, moje ime je stript objave Neprijatan Facebook
Status blizu script tag.
In to samo dobi dana v baze podatkov, ker ne morem reči, kdo
V svetu nima imena z levo puščico v njej ali
Beseda skript v njem.
To pa res ni smisla.
Tako da sem moral prepričati, da sem čistiti stvari, preden sem ga natisnete
ven na strani.
>> PUBLIKA: Torej posebne kartice HTML preprečuje skript oznake?
>> JOSEPH Nevladna organizacija: Ja.
Tako da ne preprečuje skript oznake.
To samo poskrbi, da script oznake ne dobijo
razlagati kot HTML ali -
ja.
To šele pride gor, kot tisto, je v resnici.
Vse je v redu.
Tako, da je bil pregled kviz.
Cool.
>> [APPLAUSE]