ХАНА Блумберг: Здраво свима. Идемо да бисте започели само пар минута раније јер имамо пуно материјала да се пробије. Ја сам Хана. Ја сам ТФ. Марија ће се придружити нас за само неколико минута. Предаје одељак непосредно пре. Ја предајем секцију право после, тако да идемо да остане на сат и по. Дакле, као што ћете видети овде, ми имамо доста неколико тема морамо проћи кроз, па ћемо ићи мало брже. Али, ако у било ком тренутку да кажемо нешто пребрзо или ако не разумете, слободно да прекине са питањима. Желимо да будемо у стању да ово прегледати седницу као корисни за све вас moguće. Страва. Дакле, хајде да скочи право у са неке теме које ми заправо врло кратко покрива за квиз 0 у квизу 0 ревиев седници. Дакле, почевши са повезаним листама. Дакле, само проверите да ли имате неке основно знање о повезаним листама и да су удобне раде неки од основних операција. Дакле, само да размотри, повезан листе су боље од низова јер они могу динамички расте. Дакле, имамо ту огромну предност. Видели смо их користи у хеш табеле када смо не знам тачно колико ствари ћемо хтети да убаците у нашу структуру података. Нажалост, имамо комада повезаног листа широм меморије, тако да неће нужно бити у стању да уради стални приступ времену на било који елемент у повезаним листи. Да би се пронашао Посебно елеменат, ми треба да поновити све пут од почетка. Дакле, имајте на уму да је већина од Основне операције су омега 1. Дакле, уметак је само да узме 1. Делете ће узети Н пошто смо Морам да идем наћи га са листе. И претраживање могао да, у најгорем случају, бр. Не можемо учинити нешто слично бинарно претраживање на повезане листе Пошто не можемо само насумице скочити на средини. Кул. Страва. Мало гомиле. То, опет, дошао на квизу 0, па вас треба бити супер удобно са њим. Али за гомиле, молимо вас да памтите гомилу каблова. И то ће бити први у, трајати напоље. Тако смо стацк ствари у стек, а потом ако покушавамо да нешто медјувремену- коју зовемо појављују са стацк-- долазимо са врха. И ако желимо да ставим несто у стеку, зовемо га гура. Тако да је увек ће бити одрастања одоздо као пласту тацни. Страва. Видели смо стацк имплементиран са обе повезаних листи и низова. Ако имплементације са низовима, хоћеш да се уверите да пратиш како величина и капацитета. Дакле, величина ће бити актуелна број ствари у вашој стацк, а капацитет је укупан број ствари које можете похранити у вашем гомиле. Кул. Врло слично, имамо редове. У том случају, уместо да размишљају о гомила тацне, мислим на линију. Ово ће бити први у, први напоље. Дакле, ако сте стају у ред за нешто у продавници, надамо се да је особа прва у линија ће бити први помогао. Уместо да се каже пусх и поп као и ми за стек, ми само рећи енкуеуе и декуеуе. А опет, ако сте имплементацији са низом, морамо да пратимо не само величина и капацитет, али и глава, која ће бити испред нашег реда. Кул. Сва питања о било шта од тога? Страва. Веома добро напредује. У реду, хасх табеле. Ево где почиње да постају стварно занимљиве. Тако хасх сто је једна имплементација једног асоцијативног низа. Дакле, у основи оно што се догодило је имамо све ове улаз, и ми га дати у хасх функција која каже: ОК, ово је место где у хасх табела она припада. Дакле, најједноставнији хасх функција што смо видели је само кажем, У реду, претпоставимо да желите ставити жице у нашем хасх табели. И заиста једноставна идеја можда рећи, у реду, хајде да сортирају од стране Прво слово речи. Дакле, можете видети овде, узмемо банану, то ставимо кроз хеш функције, и каже, хеј, да треба да иде у индексу 1. Тако да у суштини могу да замислим хасх табела као гомилу различитих кашике. И сваки од тих канти иде да држи главу повезане листе. И у том повезане листе је место где можемо заправо пут различите делове података. Дакле, роњење мало више у хеш функције, ево пример сам описао где смо управо рекли, У реду, узми прво слово речи и ми смо ће се то ријешити у канте. Дакле, вероватно, неће бити 26 кашике, један за свако слово абецеде. Зашто ово није велики хасх функција? Оно што овај не-идеална? Да. ПУБЛИКА: Идете да има судара. ХАНА Блумберг: Да, управо тако. Ти ћеш имати судара. Дакле, то је једна ствар. И причаћемо о томе како можемо фик сударе у само секунду. Други проблем са овим Посебно хасх функција је да наш другачији кашике ће бити од прилично драстично различите величине. Знамо да има пуно више речи које почињу са Кс, него тако да ћемо имати веома небалансиран кашике у нашем хасх табели. Кул. Тако да, хајде да се вратимо на тачка судара. Шта да радимо ако постоји колизија? Имамо неколико различитих опција. Тако један, да је тако покушавамо ставити берри у нашу хасх табели. И видимо, о, желимо да га стави у индексу 1, али банане већ живи тамо. Šta ćemo da radimo? Имамо две главне опције. Број један је можемо рећи, у реду, нема места у индексу 1, али хајде да настави да гледаш кроз док не надјемо друго место отворено. Тако ћемо рећи, у реду, хајде да га ставите у месту 3. То је једна опција. То се зове линеарни прескок. И друга опција је рекао, у реду, добро, хајде да се сваки од ових канти бити шефови повезаних листи. И то је у реду ако има више од једне ствари у кофу. Ми ћемо да додајте га на фронту. Дакле, овде можете видети, у реду, кад убаци берри, ми Управо сам банану, врста гурнуо га преко мало и бацио малине тамо. И то је такође потпуно у реду. То се зове посебан уланчање. Можете мислити о томе као нека врста низ глава да повезаних листама. Има ли питања о хасх столови, хасх функција? Страва. Дрвеће и покушава. Дакле, дрво је било која врста оф тхе структуре података у којој постоји нека врста хијерархије или неке врсте рангирања у своје различите објекте. И ово ће постати Супер јасно кад видимо пример. И видели смо покушаја, заједно са хеш табеле, у псет5-- који, опет, потпуно фер игра за то куиз-- као још једна података структуре које можемо складиштити различите ствари. У случају речника, да чувају гомилу речи. Дакле, хајде да погледамо неке дрвећа. Дакле, ово је пример дрвета. Она има неку врсту структуре, да хијерархијској структури, где можете видети да овај 1 чвор на врху има неку врсту ранга изнад 2 и 3, које су изнад 4, 5, и 6 и 7, које су изнад 8 и 9. Дакле, то је све што подразумевамо под дрво, тако да некако од замислити у својој глави. Сада, имамо пар више специјализованих дрвеће. Дакле, један пример је бинарно стабло. И бинарно стабло је, опет, само ће бити структура података са неком врстом хијерархија, али сваки од чворова може имати највише двоје деце. Ту је реч бинарни долази. Дакле, ово је пример бинарног дрвета. Дакле, то је мања категорија дрвећа. Сада идемо још конкретнији и говоримо о бинарном треес-- бинарни потрази дрвеће, а. Дакле, овде је идеја не само сваки чвор има највише двоје деце, али све деце до лево ће бити мањи и све деце до Право ће бити већи. Тако приметити у само наша бинарно стабло, ту је нема веза између бројева. Али, у нашој бинарне претраге дрво, видимо, ОК, ево 44. И сваки број са леве стране је 44 мањи и све на десно је већа. И то има на сваком Ниво дрвета. Дакле овде је мањи од 22 и то је већа од 22. И то је бинарно стабло претраге. Зашто мислимо да се зове бинарна претрага дрво? Шта алгоритам то да вас подсетим? ПУБЛИКА: Бинарни претрага. ХАНА Блумберг: Бинарни претрага. Јер ако сте у потрази за Посебно број у овом дрвету, у сваком тренутку, можете само да куцаш са пола дрвета, што је одлично. И тако да ће нам дати нешто да личи бинарни потрази. Neko pitanje? У реду, кул. У реду, покушава. Свако је омиљена. Дакле, ово је пример који Видели смо гомилу у разреду. И опет, ово је само још један начин на који можемо да складишти податке. У случају речника, опет, ово је само ће бити жице. Дакле, хајде да видимо шта се то заправо изгледа као на нешто нижем нивоу. Дакле, хајде да погледамо на једном чвор у Трие. И видимо, у реду, не иде да буде Булова и чвор, показивач на чвор. И видимо да је Логички се зове ис_ворд. У суштини, то је да одговарају овим малим троуглова који каже, ако сте овде добили, сте пронашли комплетну реч. Знамо да је "туринг" преко Овде је комплетна реч, док је само Т-У-Р није реч јер не видимо ту малу делту. И та мала Делта, опет, одговара овом ис_ворд, ово Булова ис_ворд. И онда имамо низ деце. Дакле, на сваком нивоу, ви имају посебну чвор, и тај чвор указује на низ целог алфабета. Тако можете видети, опет, У овом ну слику сам Наставићу да скачу назад и фортх-- да је арраи на врху има гомилу другачији чворови који долазе од тога. Има 26 или 27 ако желиш да укључи додатни карактер. И то нам је даје начин да сачувате нашим подацима на начин који може да се посматра на које можете погледати супер брзо. Шта је време ИП адресу за Трие? ПУБЛИКА: [неразумљиво]. ХАНА Блумберг: Да. У теорији, то је константа време. То ће само бити величине реч коју желите да потражите. Чак и ако додамо зилион више речи нашег Трие, то неће нас одвести дуже да се утврди Ако је дата реч у Трие. Дакле, то је стварно лепо. ПУБЛИКА: Јеси ли ти управо инитиализе ту низ? Пропустио си поенту или два. Можете ли да разговарамо о да за тренутак? ХАНА Блумберг: Наравно, апсолутно. Dobro pitanje. Питање је, да имају низ који је ће морати чвор звезду као за разлику од само чвор, зар не? Кул. Ево шта говоримо је наш низ је само Биће показивачи на другим низовима. Тако да је то нека врста ессентиалли-- изгледа као повезане листе на овај начин где свака од ове деце само указују на следећи чвор. И начин на који смо заправо одређују, хеј, у реду, ми смо поновио кроз читаву Реч је ова реч у речнику, ми само да проверим ову ис_ворд. Велики питање. Да. ПУБЛИКА: У реду. Дакле, шта је извршни за Трие? ХАНА Блумберг: Наравно. Тако је рунтиме за Трие за ИП адресу ће бити константна времена. Дакле, то је само ће бити број слова у речи. Није зависи од величина речника или величина структуре података. Дакле, овде је мало једноставније пример. У том случају, можете видети да Реч палица је у речнику и имате зоом, али немају нешто слично зоолошком врту. Како би правимо зоолошки врт? Како да додамо на наш зоо рјечник, нашем Трие? Да. ПУБЛИКА: Маке ис_ворд важи за [неразумљиво]. ХАНА Блумберг: Добро. Тако бисмо рећи З-О-О, а онда бих желите да проверите са ту кутију као добро. Veliki. Хајде да укратко упоредите покушава у односу на хеш табеле. Покушава су стварно супер јер, као што смо рекли, они обезбеђују константан времену проналажење. Али огромна мана је да су огромни. Можете добити смисао, чак и гледајући у њу, да ће узети огромна количина меморије. Дакле, они ће бити много већи од хеш табела, али они ће дати нас много брже проналажење пута. Дакле, то је некако твој компромис, шта ти је стало, да ли је брзина и меморија. Сва питања о било шта од тога, све структуре Ц података. Lep. OK. Ми ћемо прећи на мало Мало веб развоја са Маријом. МАРИЈА Златкова: Дивно. OK. ХАНА Блумберг: Можете да користите свој лаптоп. МАРИЈА Златкова: Лепо. OK kul. Као што смо сада пређемо на веб развој, разговарали смо мало о промени дозволама фајлова и директоријума како би могли бити приступачни другима, у свету, па да видимо како у основи можемо да их пренесемо кад ми развијамо ствари као што су веб сајтова које смо углавном радили. Тако смо видели команду цхмод, што је промена режима, у основи. То је команда за Линук и мења приступне дозволе од система датотека предмета. И систем датотека објекат само директоријум, фајл, све што можете промените дозволе. Дакле, да видимо дозволе за датотеку, ми написите команду лс, лист, -Л. И кад смо типа да смо Обично видети неке дозволе да изгледају некако овако испред имена директоријума. Дакле, д, односи се директоријум. И онда имамо три Триадс да је у основи се односе на дозволе или корисник, група, или свет. Врсте дозвола да можемо имају за ове три групе људи су или Р за читање, В за писати, и к за извршавање. И можемо да имамо оне за група и света. Незгодна ствар је да понекад када откуцате команду цхмод, ми би неки тип број која се састојала од три бита. Тако да смо могли да урадимо као 777 и да је у основи односи на додату вредност сваког од ових тријадама јер би Р односе на 4 в бих односе на 2, и к би се односио на 1, тако да кад саберу, сваки од бројева доћи до кумулативног броја на кумулативна вредност између 0 и 7. Дакле, ми такође могу имати 0 за не дозволе на све. И то у суштини би нам дало дозволе за било корисника, група, или свет. Сва питања везано за ово до сада? ПУБЛИКА: Рекли сте да прочитате било је 4? МАРИЈА Златкова: Да. ПУБЛИКА: [неразумљиво]. ХАНА Блумберг: Да. ПУБЛИКА: А онда додавањем свих оних остали би указивало свој број. МАРИЈА Златкова: Да. Да. Ово су важна питања. Дивно. Даље, скочио ми у ХТМЛ и А мало више о веб развоју. Дакле, само значи ХТМЛ- Jezik za opis hiper-teksta. И то је означавање језик који је стандард да се користи за креирање веб странице. Зове се Маркуп Лангуаге јер није заправо саставио. Не каже како неки код треба извршити или било шта слично. Само оцртава и описује како веб страна треба подесити са сваком од његовим елементима и како треба да изгледају кориснику. Неки од ХТМЛ тагова које смо отишао су следећа. Сви наши ХТМЛ докумената почео са ДОЦТИПЕ хтмл. Онда смо увек имати ХТМЛ таг. Имамо главу и тело. И важно је да ХТМЛ има ова врста отишли ​​структуре јер је врло јасно. И онда постаје врло јасно када смо потребно је да отворите и заправо блиске ознаке. И увек треба затворити ознаке које смо отворили. И овде имамо неке врсте ствари које долазе да желимо да имамо. Тако имамо, на пример, наслов ЦС50. И онда смо стварно да повежете стила који дефинише како обликовати наш сајт. То је ЦСС. Ми ћемо ићи преко ње у Следећих неколико слајдова као добро. У телу, постављамо неке класе и документа. И као подсетник, опет, ИД-ови су јединствени и класе може се доделити више ставки. И то само значи да можемо користити класе и личне карте у оквиру друге струцтурес-- тако, за Пример, у ЦСС фајловима или стила схеетс-- да се односи на одређене елементе и углавном кажу да желимо да стил или неке елементе дизајна на неки посебан начин. И мислимо да им личне карте и класе. И можемо се односе на различите ствари по таговима, као, али личне карте и класе само нам неки свестраност и шта конкретно можемо Желим да се односи на. Дакле, само један пример. Можемо, опет, у оквиру ЦСС фајл где смо желите да дефинишете неке стиле-- тако боја, фонтова, и сличне ствари то-- можемо дефинисати стил за тело. Тако да би дефинисали за цело тело таг. Али онда можемо дефинисати стил за #титле. И опет, хештегом се односи на наше ИД и тачка односи се на наше класе. А онда за .инфо, ми такође може поставити неке атрибуте. И опет, кад се вратимо, имали смо класа зове инфо и наш ИД наслов. И видимо да мислимо да им #титле и .инфо. ПУБЛИКА: Да ли бисте рекли hašteg [? усвоји ме? ?] МАРИЈА Златкова: Молим? ПУБЛИКА: Да ли бисте рекли hašteg [? усвоји ме? ?] МАРИЈА Златкова: Хасхтаг значи ИД, тако #титле односи се на било којим елементима имају овај ИД који се зове наслов. А онда тачка се односи на класу. Дакле, .инфо се односи на овог елемента јер има информацију класе. Aha. ПУБЛИКА: Зашто и ти разликовати их у ХТМЛ? Зашто кажеш неке ствари Личне карте и неке ствари су класа? МАРИЈА Златкова: То је само до тебе-- ХАНА Блумберг: Поновите питање. МАРИЈА Златкова: Ох, извините. Зашто да разликујемо поједине елементе као личне карте и друге елементе као класе? То је само зато што је заиста често дизајн избор. То вам даје много свестраност у бити у стању да кажем да желим ову одређену ставку да се овај ИД зато што желе да уради многе ствари Уз то, и ја сам само желите да дефинишете стил, сигурно стил или у боји год за ту ставку. А начин да то урадите само му дају личну карту. И онда ако желим да имам неколико различитих ставки да да, уместо иде и постављање тхеир-- уместо да то раде по Таг јер је ознака би сет ћелију за целу таг сваки пут се користи да ознака, можете подесити класу на више ставки. И онда само приступити тој класи и реци Желим да стил овој класи на тај начин. И опет, класа може бити више различитих ставки и ИД мора бити јединствен. Греат питања. Има ли још питања? У реду, супер. Опет, ово је како ови селектори су наведени у ЦСС, са хасхтаг, са тачком, или без ичега за додељивање стил неке ознаке, као тело. И овде имамо опште синтакса како се то ради. Да поновим неке најбоље пракса за ХТМЛ и ЦСС, морамо поново, затворите све ХТМЛ ознаке које смо отварају. И оно што вам је препоручио уради за своје завршне пројекте, као и за ЦС50 финансија, је да сигуран да сву своју ХТМЛ потврђује. И то је урађено уз В3 Валидатор. И онда шта смо урадили и оно што препоручујемо радимо се одвајањем стил, тако ЦСС за означавање из ХТМЛ-а. Дакле, све што се односи на то како Ваша страница ће се визуелно изгледају и како ће то бити модификован треба да иде у ЦСС документу. А онда је ваш означавање говори како ствари су у односу једни другима у ХТМЛ, и да унутра од ваших ХТМЛ докумената. Neko pitanje? Мхм. ПУБЛИКА: Шта је тачно дешава на са валидацију паге када смо потврђују ХТМЛ који [неразумљиво] створио? МАРИЈА Златкова: Па шта-- мислите. Дакле, шта се дешава на страници са валидацију и зашто морамо да урадимо то? У суштини, ми треба да урадимо да јер много пута, ваш бровсер, ако не затворите таг ili nešto slično, Ваш претраживач ће и даље донесе страницу и можда још раде, али је најбоља пракса да се уверите да си, опет, затворио све своје ознаке, да сви ваши елементи начин на који би требало да буду, иу суштини то је то од стране конвенције које су присутне. То је, опет, само Оно што би требао учити да ради, насупрот имају неуреднији број и такве ствари. Да. Ох, извините. Мислио сам да подизање руку. ПУБЛИКА: Не, био сам [неразумљиво]. МАРИЈА Златкова: У реду. ПУБЛИКА: Хвала. МАРИЈА Златкова: Наравно, хвала. Дакле, опет, дешава у то како информације се преносе и комуникационих модела за пренос података. ТЦП / ИП. ТЦП само значи Трансмиссион Контрола Протокол и ИП се односи на Интернет протокола. И то само односи на начин на који подаци се испоручује. Ако имамо неке податке који треба да достављен тако тебе-- направите захтев за одређени сервер. На пример, када смо покушате да приступите цс50.нет, правимо захтев ЦС50 сервер и ми видим да желимо да се ова врста информација. И онда су засноване на овог протокола колико је ова информација достављена, сервер даје информације до нас, клијент. А онда смо могли да видите информације за страницу а затим га користити. Дакле Хипертект Трансфер Протоцол је само још један протокол или сет конвенција који дефинише како веб претраживач и веб сервер треба да комуницирају. И то све стављање заједно ХТТП, опет, само дефинише како је дефинисано ово хипертекст од ХТМЛ да смо га радили, како треба да се испоручује са вама и како се подаци који се испоручује са вама стигне до вас. И зато, ако ви се сетим из класе, имали смо пуно захтева и имали смо доста синтакси за ове захтеве које смо прећи преко одмах. Па опет, када смо послати захтев на сервер, морамо да дефинишемо неколико ствари. Зато морамо да пронађемо тип захтјева да смо постављање. И опет, имамо, на пример, ГЕТ је једна врста метода да имамо у нашем захтеву. А онда ХТТП / 1.1 је само Протокол који се користи за сада. Већину времена, то це протоколу који се користи. Дакле, ако имате питање тако на квизу. То су конвенције да имамо до сада. Обрнута коса црта се односи на Какву ствари ми тражи. Затим, домаћин је, на пример, у овом случај, покушавамо да идемо на гоогле.цом. Дакле, ово је вредност за домаћина. Ово је врста захтјева која би се могла послати. А онда врста одговора који би могао слати, поново, на основу овог протокола, је опет ХТТП / 1.1. Дакле, то је опет ХТТП верзија. 200 ОК је само код статуса. И то је у реду само фраза на основу тог статуса кода. А онда цонтент-типе се односи на тип који се вратио у вама да је за тај веб страници коју сте добили и да вашем претраживачу може донети накнадно. И то је тект / хтмл. ПУБЛИКА: Шта 1.1 значи? МАРИЈА Златкова: То је само Верзија од-- Ох, шта значи 1.1? То је само верзија, ХТТП верзија протокола који се користи. Велики питање. Остала питања? ПУБЛИКА: Можете ли сумирам Цонтент-Типе брзо? МАРИЈА Златкова: Тако да је оно сервер. тип информатион-- шта је Тип садржај је био питања. То је био тип информације које се вратис са сервера, тип подаци који бровсер може онда рендер да користите. ПУБЛИКА: Да ли је то то Протокол је ти да урадиш? МАРИЈА Златкова: Молим? ПУБЛИКА: Да ли је то оно што је протокол рекао? МАРИЈА Златкова Тхе протоцол-- ПУБЛИКА: --вхат Садржај-Типе је или шта-- МАРИЈА Златкова: Протокол се заснива ајде-- шта је протокол вам говорим? То је само начин да је ова информација уручен вас на о каквим протокола је ова информација има испоручен на вас. Има ли смисла врсту? ХАНА Блумберг: Ви могу да се сетим протокола као је-- Мислим професор Малан га је описао у класи као нека врста Као-- то је као еквивалент људског руковања. Рецимо, као, хеј, ја сам захтев и знају како да рукује ХТТП верзије 1.1. А онда сервер каже, Ох, ОК, ја и оба постоје. Такође знам како се носити с ХТТП / 1.1. И ја ћу дати можете подржати неки садржај. У овом случају, то ће да буду Типе тект /. Дакле, то је нека врста само начин од њих за цоммуницатинг-- МАРИЈА Златкова: То је само потврђујући да сте и после исти протокол и да су клијент и сервер-- тако Ваш претраживач и сервер-- некако знам шта си говорите и имају Конвенција за полагање у подацима. ПУБЛИКА: Дакле Цонтент-Типе парт-- садржаја-Типе тект / хтмл-- то посебан део исте поруке? Или је део рецимо, 200? Да 200 им рећи да или је-- МАРИЈА Златкова: 200 каже да све је у реду. И онда тип садржаја је нека врста Посебан део исте поруке, и рекао оно што сам Враћени има ову врсту тект / хтмл. То само даје више информација. Да ли нешто да додате? OK. Има ли још питања о овоме? Страва. Неки други ХТТП статуси да можемо да поред 200 ОК, оне које смо можда видели Вероватно много су 403 и 404. Дакле, 404, ако су покушавали да Приступ нешто што не постоји. Тако, на пример, у вашој ЦС50 Финанце псетс, ако је рендеринг куоте.хтмл а нисте имали тај фајл, већ сте имали куоте.пхп, да би довело до 404 нот фоунд јер датотека може не постоји. За 403 Форбидден, да односи се на дозволе. Дакле, ако неко датотека није читљив од стране свет, можда добијете 403 вратио. Неки други које сте можда добијам-- 301, преселио Трајно; 302, Фоунд; 304, Модифиед; 400, Бад Рекуест; а затим Интернал Сервер Еррор за 500 и 503, Услуга није доступна. Да. ПУБЛИКА: Хоће ли смо очекивали да запамти све те статусе? МАРИЈА Златкова: ја имам их на свој Цхеат Схеет. [СМЕХ] ПУБЛИКА: Да ли смо очекивали да знате шта изазива сваки од њих? МАРИЈА Златкова: Јесу ли? ХАНА Блумберг: За оне које смо рун инто-- тако да је питање је- МАРИЈА Златкова: Да ли су очекивали да Знаш шта сваком од ових статуса кодови могу бити покренуто? Дакле, за оне које смо користе и налетео на, рекао бих, да. Тако да дефинитивно смо видели 200 ОК и предавао га у псетс. Видели смо 403, 404. За оне друге? ХАНА Блумберг: Ја бих кажу 500 изгледа фер игру. МАРИЈА Златкова: 500, да. ХАНА Блумберг: Да. Само имају општи осећај шта их изазива. Такође само по њих имена, можете некако Као направи образовани ваљда као за шта их заправо изазвао. На пример, покрет стално, вјероватно фајл је трајно премештена. ПУБЛИКА: Али претходни испит, било је тзв како нас очекујете да одговорим на то? ХАНА Блумберг: То био вредан нула бодова. Питање о 418 о чајник је технички ХТТП статус, али вредело нула бодова. Очигледно, ниси Очекује се да ће их знати. ПУБЛИКА: Да ли је прави? ХАНА Блумберг: То је прави један, али то не значи ништа. То је само шала. Интернет људи су смешни. МАРИЈА Златкова: Греат питања, момци. Има ли још питања? ПУБЛИКА: Шта је Интернал Сервер Еррор? МАРИЈА Златкова: Интерна Само Сервер Еррор значи да сте били у стању да комуницирају са сервером за неког разлога. Дакле, то није нужно нешто што мора да уради са клијентом или тако нешто. Ја не знам ни за један конкретан пример да смо прешли да објасни, али да. ХАНА Блумберг: Наравно. Тако, на пример, као што хајдемо да сте радили на масхуп и Гоогле сервера је пао за неке Разлог, нестанка струје, рецимо. То би бити Интернал Сервер грешка или нека од-- лике иоу не би одговор назад. МАРИЈА Златкова: Да. То је само кад сте у стању да комуницирају са сервером за неког разлога, јер од иде доле или неки други разлог. Дакле, скакање у ПХП. ПХП разлику од ХТМЛ је програмски језик. И почели смо да га користите, јер је то веома корисно за веб развој. Први смо га користили у ЦС50 финансија. И то је у основи помаже нам да заједно ово добит, дизајн, и како смо заправо користе информације за приказ ствари на веб страници. Дакле, ПХП сам по себи значи ПХП Хипертект Препроцессор, тако да је рекурзивна бацкнорим по себи. И отварање ознаке за ПХП смо лева и десно стрелице са упитник и ПХП. Тако смо већ видели гомилу тога. Дакле, ми смо само прећи преко неке од основних ствари о њој. Дакле, са ПХП, варијабле имена почињу са знаком долара. Ми не прецизира, опет, променљиви типа више. Као што смо урадили са Ц, не морамо то да урадим. Можемо да урадимо гомилу другачији ствари са варијабли. Можемо их заједно их Надовезивањем са дот нотација, која нисмо могли да урадимо у Ц поново. Опет, имамо мало више свестраност са ПХП у смислу варијабли. Опет, ми немамо основну функцију. И ПХП тумачи за разлику од састављен, Дакле, колико нисмо чине Ц фајлова, не морате то да радите за ПХП. Али уместо тога, начин на који језика води само по себи, да се тумачи. А онда лабаво откуцан само значи да не морају да наведете променљиву Тип и променљиве врсте се разуме у току рада. ПУБЛИКА: Али шта зар не мислили дот сплету? МАРИЈА Златкова: Наравно. Када желимо да ставимо ствари заједно-- па ако смо имали неку променљиву да имао је вредност од 3 и имали смо још један променљива која је имала вредност низа, можемо ставити променљиве заједно стављањем тачку између њих и Надовезивањем их. Или можемо да створи променљива зове име и ставио га заједно Надовезивањем две жице. Дакле, ако смо имали низ у двокреветној цитати и ставимо тачку после њега, и онда смо имали још један низ, да би створило низ потпуно. ПУБЛИКА: У реду. МАРИЈА Летонија: Да ли је то јасно? ПУБЛИКА: Да. МАРИЈА Златкова: У реду. Да. ПУБЛИКА: Када кажете тумачити него саставио, прицас о вама не треба да буду што конкретније при је у питању ПХП односу на Ц? МАРИЈА Златкова: Кад кажемо тумачи насупрот састављен, шта мислимо? То значи да ми не треба извршне датотеке за покретање ПХП. То значи да ради као иде. Da li to ima smisla? Malo više. ХАНА Блумберг: Дакле, могу да се сетим неког преводиоца као још један програм који је одговоран за одлазак линију по линију кроз ПХП и заправо извршења, насупрот да изради све до бинарни. То не значи ништа у ствари о томе како специфичне морамо да будемо. Још увек морамо да будемо прецизни, и не заборавите зарез, и уверите се имате свој знак долара, и такве ствари. Dobro pitanje. МАРИЈА Златкова: Да. Дакле, ред по ред, као за разлику од с Ц фајловима, морамо да цео финале пре него што заправо могу да га покренете. То је главна разлика. Али опет, не можемо заиста бити мање специфичан. Дакле, низови у ПХП представљају уствари наредио карту. Дакле, низови сарадника вредности тастерима. Два начина да се прогласити Арраи, на основу овог синтаксе, можемо да будемо јаснији у рекавши имамо низ а имамо овај кеи1 да мапира у ово вредност1, кеи2 да мапира валуе2. Или можемо само да створи низ који садржи сама вредности а затим тастери су разумети неки начин. Има ли питања о овоме? Публика: шта би тастери бити у другом примеру? 0, 1, 2, 3? МАРИЈА Златкова: На пример, то је само кључеви у то нужно не napravi razliku. Само дефинисати како можете користе вредности у њему. Дакле, ако смо имали фореацх петља у ПХП који би дозвољавају нам да идемо кроз све вредности, можемо проћи кроз све вредности, чак и ако смо имали или нису дефинисане специфична кључна у оквиру сајта је претходна синтакса. Дакле, чак и са овом врстом од низа, још увек могли има петљу фореацх који иде кроз сваки од вредности у кључ у низу. Дакле, синтакса на фореацх петља, почнемо са низом. Ова $ Арр променљива је наш стварни низ које смо дефинисане у претходном слајду као вредност која буквално иде кроз сваки од вредности, bez obzira da li имали кључ или не. И онда можемо да урадимо нешто са вредност унутар фореацх петље. Па опет, ако смо имали низ овако овде цреатед-- тако да имамо кључ фоо и вредности Бар, кључ БАЗ и вредност кук-- можемо имати петљу да фореацх пролази кроз низ као кључног вредности а затим урадите нешто са кључем и / или вредности. Али ми не нужно увек морају да имају фореацх петље, које пролази кроз низ као кључног карте у вредности. Можемо ићи кроз фореацх петље низ као вредност. ХАНА Блумберг: И ја мислим да-- је било ваше питање, шта је имплицитно индекс? ПУБЛИКА: Некако. МАРИЈА Златкова: О. ХАНА Блумберг: Да, да. У основи, ако не наведете кључ, то ће бити 01. МАРИЈА Златкова: Да. Као и код Ц, то је нула индексиран ако не наведете кључ. ПУБЛИКА: Извињавам се. Можете ли покушајте да говорите мало гласније? Имам мало Проблем слуха све. МАРИЈА Златкова: Жао ми је. Da naravno. Дакле, хоћеш да ми да одем поново? Или је ово-- ПУБЛИКА: Дакле, у односу на претходни слиде-- ако само да се вратимо на тренутак. МАРИЈА Златкова: Наравно, жао ми је. ПУБЛИКА: Дакле, друго Арраи овде не Изгледа да имају вредност да укуцате, kao vrsta [? узрочност. ?] МАРИЈА Златкова: Добро, добро. ПУБЛИКА: Па како то функционише када кажете да је све или ништа. За мене, то изгледа као А [? Фоо?] већ. МАРИЈА Златкова: Да, да. Дакле, опет, ово је наредио карта у том смислу да постоје разумели, на пример, индекси Овде се могу схватити као 0, 1, 2, 3. Опет, то је да они индекси је наш еквивалент да имају кључеве мапиране на вредности. Дакле, ако наш кључни је 0-- жао. ХАНА Блумберг: Не, дошло је креде овде. Заправо је лепо. МАРИЈА Златкова: То је сјајно. OK. Дакле, опет, $ Арр 0 би било кључ за вредност 1. 0 би бити кључ за вредност 1. ПУБЛИКА: Жао ми је. То је невидљива. ХАНА Блумберг: У реду, нема везе. Креда била лоша идеја. Претпостављам да вратим. Можете мислити од кључева АС 0 мапе у вредности 1. МАРИЈА Златкова: Да. Дакле, ово је 0, то је 1, 2, 3. То може бити ваш кључеви. Као- Можете мислити о њима да. Дакле, уместо да експлицитне тастери, они су некако схватити као индекси са почетком у 0. Креда није помогло. Да. ПУБЛИКА: За фореацх петље, ако желимо да бисте приказали као вредност, то би само аутоматски индекса на 0? МАРИЈА Златкова: Да. Било ће ићи кроз сваки од вредности. ПУБЛИКА: [неразумљиво] као 0 или ће то учинити само 0? МАРИЈА Златкова: Ти би имати да кажем као знак долара и затим неки назив променљиве, вредност. ПУБЛИКА: [неразумљиво]. МАРИЈА Златкова: Молим? ПУБЛИКА: Извини, ја сам Само покушавам да се сетим. Како би ти да ако могу то да урадим аутоматски индексирање је само 0 од? МАРИЈА Златкова: Па како би то урадио ако нисте имали конкретне кључне имена? ПУБЛИКА: Да. МАРИЈА Златкова: Ти би само дефине-- само се рећи као нека имена. Дакле, по вашем псетс, момци мигхт запамтите фореацх $ ред као $ редова, Себи смо створили ову $ ред рекавши желимо да прођемо кроз ред од $ редова. Иако нисмо имали ово експлицитно $ редова дефинисан, бисмо могли отићи и кажу да може бити наш кључни, и само проћи кроз сваки од вредности. ПУБЛИКА: Тако је вредност нова променљива смо стварање да сачувате [неразумљиво]? МАРИЈА Златкова: Дакле, то није инхерентно нови променљива. То је променљива која се односи на унутар низата на сваки од њих. ХАНА Блумберг: То је нови назив променљиве. МАРИЈА Златкова: Да, то је нови назив променљиве, али то није инхерентли-- да. То је само нова променљива да можете то урадити. Дакле, само како да јесмо $ ред као $ редови, редови је ново име варијабле које смо може да створи у нашој фореацх петље. То не мора да преекист пре тога. ПУБЛИКА: Да ли идете кроз логика за сваки, користећи пример тамо? МАРИЈА Златкова: Мхм. Ох, извините. Ево примера. Наравно. Дакле, за сваки арраи-- тако то значи ићи на ову низа као кључ валуе-- да иде проћи кроз овај низ и први и да фоо је кључ Фоо и бар вредности. А онда на другом итерација фор петље, да ће проћи и да кључ Баз и вредност кук. А онда можете да урадите нешто са неко од њих или обоје. ПУБЛИКА: Дакле, идеја има кључну тачку на вредности, Шта си завршио приступа? МАРИЈА Златкова: Шта је идеја да имају кључ показује на вредност? То је само још један конвенција, други начин пролази кроз поља и бити у могућности да приступите било у кључ или вредност или обоје и користити их. ПУБЛИКА: Која је улога за наредити да се Еогеасп ради у? Дакле, ако смо да додамо елементи за низа касније, би то били први који позвао у низу фореацх, или ће то бити касније? МАРИЈА Златкова: Па шта је налог да Еогеасп петља пролази кроз низ у? То пролази кроз први елемент последњег елемента, до последњег додатој елемента. Ако додате елементе касније, они би се аццессед-- први елементи би се приступа као прва елементи низа, и онда бих кроз сваки од елементи као нека врста ордеред-- није наредио, али начин на који они су ставили у низу. ПУБЛИКА: Дакле, нови елементи додају се касније? Дакле, они аддед-- они ће бити последњи који у [? итерација. ?] МАРИЈА Златкова: Нови елементи Могу- у основи, када се додају нове елементи, су они додат на крају низа? ПУБЛИКА: Да. МАРИЈА Златкова: Верујем да је тако. Да. И онда са фореацх петље, након што сте додали нове елементе а ти проћи кроз њих, нови елементи би бити аццессед-- новог елемента, ако је додао прошле, да би се приступити прошле. ПУБЛИКА: Да ли можете да наведете пример нечега што би [неразумљиво] са нечим са вредношћу као [неразумљиво] или вредности, Свиђа ми се како би формату који? МАРИЈА Златкова: Наравно. Могу ли да дам један пример онога што ћемо урадити са вредношћу? Па шта ви можда упознат са је да смо прошли кроз низ и основи штампани сваки од елемената, на пример, као склопу наредио листа или нешто тако. Да ли то смисла или да желимо да-- ПУБЛИКА: Можемо штампати ове вредности напоље? МАРИЈА Златкова: Да, можемо штампати а затим у основи $ валуе јер је у да специфична вредност, били бисмо штампање вредност унутар њега. Дакле, ако смо у нашој првој итерацији о томе и штампани $ вредност, да би штампање бар. ПУБЛИКА: Да ли постоје за петље у ПХП или само фореацх петље? МАРИЈА Златкова: Нема и за петље у ПХП. И њихова логика је углавном исто као што сте навикли. ПУБЛИКА: Дакле, њена вредност је нулл. МАРИЈА Златкова: То је као исто. Да. ПУБЛИКА: Ја ћу да питам. Дакле, када сте прогласити низ, не треба да каже колика ће то бити, што значи да можете да додати и одузети елемената [неразумљиво]. МАРИЈА Златкова: Да. Aha. Baš tako. Када смо прогласити низ смо не треба да каже колика је, тако да можемо да додати елементе на то и касније. Још питања? Дакле, доносећи ПХП и ХТМЛ заједно, оно што смо добро сеен--, На пример, у овом примеру имамо ХТМЛ форма која има поље за унос. И поље за унос је само име и онда има дугме Субмит. А када притиснете Пошаљи дугме, у нашем хелло.пхп фајлу, јер је метод за форму је да, можемо приступити све што је у име овим се глобалну променљиву да је-- синтаксу јер је $ _ ГЕТ. А онда можемо приступити без обзира на корисник улаз унутар тог облика за име наводећи име тој области. Има ли још питања или било питања о овом конкретном примеру? ПУБЛИКА: Где је ПХП? МАРИЈА Златкова: Ево. Дакле, ово је наша отварање ознака за ПХП. ПУБЛИКА: Ох, у реду. МАРИЈА Златкова: Да. ХАНА Блумберг? О: = је скраћеница за то је ПХП и само ехо. ПУБЛИКА: О. МАРИЈА Златкова: Да, извини. Требало је да се то јасно. ХАНА Блумберг: Штампа. МАРИЈА Златкова: То је само функција који нам омогућава да одштампате нешто. Велики питање. Тако гоинг-- да. ПУБЛИКА: Да ли ће бити прилично мало руком кодирање ПХП и ХТМЛ на квизу 1? МАРИЈА Златкова: Може бити Сајам износ тумачења ПХП и ХТМЛ, а не нужно као велике количине кодирања, иако можда морате написати фореацх петље, иако, фор петљу. Било који од петљи које смо цовер овде је фер игра. И то је углавном то. ХАНА Блумберг: Ја бих био спреман. На исти начин на који смо вас замолио да написати гомилу Ц функција на квизу 0, Ја бих био спреман да уради иста у ПХП и ЈаваСцрипт. МАРИЈА Златкова: Да. ХАНА Блумберг: Ја бих рекао мало-- као да нисмо да би сте написали велики ХТМЛ- страна само зато што је мало досадан, али можда има делове. То је потпуно фер игра. Као мала ХТМЛ страницу, потпуно фер. ПУБЛИКА: У реду. Како у ЈаваСцрипт и? ХАНА Блумберг: Да. ЈаваСцрипт је фер игра. МАРИЈА Златкова: Да. То је потпуно фер игра. ХАНА Блумберг: Добићемо оној у као што је 10 минута. МАРИЈА Златкова СКЛ, опет, Струцтуред Куери Лангуаге. У основи нам омогућава да управљају податке у релационој управљање базама података систем. То само практично значи да смо негде има да сачувате неке податке које смо можда желети да користити у сајту или у некој другој форми. И онда имамо упите да добију информације у нашој бази, или да убаците информације у њима. Много заједничког онес-- УПДАТЕ, Уношење, избор, и ДЕЛЕТЕ. Дакле, за УПДАТЕ, ово је синтакса за ажурирање података у бази података. Ажурирање ову табелу која се зове сто рекавши СЕТ, можемо поставити неке вредности у свим редови на једнаку нешто друго. Дакле, можемо навести неке специфичне ставке које желимо да модификују и то може бити користећи ГДЕ. И можемо навести да смо само желе да измени неке редове где је кућа, ако смо имали сто ученика а сви ученици су имали кућу, тако да би само модификовати неке вредности где је кућа једнако Цурриер, na primer. За ИНСЕРТ, можемо убацити одређене вредности у табели. Тако ИНСЕРТ ИНТО табели, а затим су вредности, а затим у загради, навести смо које вредности које желите да унесете. Тако ИНСЕРТ ИНТО табеле, кол1 и цол2, вредност је ВАЛ1 и вал2. Дакле, ово убацује у основи нови ред у табела садржи вредности 1 и 2 у колонама 1 и 2. А онда ћемо да пређемо брзо пример како то изгледа као у наша база података мало. Али ово коначна упит да мислим да ћемо ићи преко, ИЗАБЕРИ, само нам омогућава да изабере податке из табеле да евентуално га користити касније. И начин на који ми то радимо је да само похранити у некој променљивој. И онда евентуално може да га користи поново. Дакле, ИЗАБЕРИ звездице значи изаберите све. То је само стенографија за одабир све. Из табеле где се, тражимо за неке специфичне услове, па где колона једнако нешто, на пример. Ако смо хтели да изаберите сви из табеле, ово само бира све колоне и све редове из табеле. А онда ДЕЛЕТЕ ФРОМ табела ГДЕ Цол једнако нешто, ово само брише неке ред од нашег стола где имамо неке специфичне услове. У овом случају, услови су колоне једнаки нешто. Дакле, само брзо пример за то. Ако имамо овај сто овде и ми убаците га у табелу, ове вредности, да убаците нови ред. И ако смо имали ауто-инцремент, ово би само повећавати нашу ИД од 0 до 1 до 2. Ако изабрани сви студенти га, само враћа сва поља и све редове. Где год је веће од или једнако до 2016., да би само вратити Хана и ја. И онда, ако смо изабрани године и ИД године од ученика где је кућа је Кабот Кућа, која би, опет, врати Ханнах и ја. Затим, ако се бришу из студенте где име је једнако Роб, да би обрисали целу ред. И онда ако подесите име, Упдате студенти СЕТ име износи Давен ГДЕ кућа је једнака Кабот Кућа, који ће ићи у ти редови, а затим ажурира име. А онда неколико типова СКЛ података су ЗНАК, ВАРЦХАР, ИНТ, и лебде. Ово су фер игра. Ја бих ишао поново и уверите се да знате и да их на Цхеат Схеет, оно што сваки од тих ликова су коришћени за, што да их користи на својим псетс, и уверите се да сте упознати и угодно да бира из различитих типова података у вашем псет. Да. ПУБЛИКА: Шта је чува тај сто? Да, где је ова табела чува? МАРИЈА Златкова: Па, сада, није сачувана. У сваком случају, где је ова табела чува? Али може се чувати у СКЛ бази података. ПУБЛИКА: А где је СКЛ база? У рачунару, на мрежи негде, сервер? МАРИЈА Златкова: То може бити број различитих ствари. ХАНА Блумберг: Ми смо повезати са СКЛ табеле углавном са пхпМиАдмин. Тако бисмо могли поставити сервер да их чувате за нас. Могли бисмо да их чувате на нашем рачунару. МАРИЈА Златкова: Само зависи како желите да то урадите за себе. Али смо складиштење их, као Хана поменуто, на пхпМиАдмин, који је на мрежи. А онда је начин на који користимо ПХП и СКЛ смо га чувате у неким променљиве оно што смо упита за. Дакле, ако смо изабрали све из историје где усер_ид једнака ИД сесије, да би изабрали све редове за одређену особу која је пријављен из историје сто и сортирати у редове. Кул ствар коју треба да знате је Та функција упита ЦС50 је штити од СКЛ Ињецтион тагова. То само значи да осигурава улаз који је ушао је у праву и да је особа која је улази у улаз не покушава да унесе неке злонамерно Код или да спустимо табеле или брисање све унутар нашој бази. Брз Преглед Модел Погледај контролер модел то је само начин организовања и размишљање о коду. Поново је, дизајн парадигма. То значи да смо можеш-- и то је добра пракса одвојити различите делове нашег кода и шта они контролише у ове три парадигме. Дакле, наш поглед је најчешће наша шаблони, наш распоред, начин да подесите колико наш код изгледа. То је углавном наши ЦСС фајлова и начин да смо дефинисали дизајн нашег кода, основи. Наш контролер је углавном оно смо радили са ПХП датотеке. Дакле, опет, ради са информације које имамо и дефинисање како је информације се користе, а затим пролази ту информацију или на поглед или моделу. И модел, начин на који смо је користите је био наш база података, па где нам информације складиштити тако да негде има у живи, и било које од код који се односи на начин да смо добили ту информацију или Начин на који смо ажурирали те информације. Дакле, у МВЦ модел ХТТП Захтеви се шаљу на веб сервер. Затим, контролер тумачи Захтев од корисника а затим потврђује унос од стране корисника. То је опција да имамо контролер комуницирају са моделом, тако нешто Као нашој бази или неког другог функционалности да преноси информације. И на крају, контролер пролази информације на приказу тако да може бити донета и да може постану видљиви на сваком лицу приступ веб страницу. Neko pitanje? Страва. Дакле, поново, модел, његова функција, опет, је упорни складиштење података, управљање и организовање података. И оно што смо видели тако сада је МиСКЛ база података и све датотеке са подацима који могу користити. Погледај, презентација информација корисник, УИ, односно кориснички интерфејс. А пример за ово је ХТМЛ. А онда смо можда има минималну ПХП. Дакле, за петљу да Примењује над подацима који се штампају је део мишљењу, за разлику од контролера. А онда је много наших ПХП фајлова спадају у категорију контролера. Само обрађује корисничке захтеве и добија информације од модела. Скакање у документу Објецт Модел, ово само односи се на начин ХТМЛ документи су организовани. И они организовани у дрво структура која има хијерархију. Дакле, ако имамо приступ [неразумљиво] представљање документа, можемо да радимо са документом, као и да манипулишу предметима основи. А да би ово мало јасније, када имамо доста наше различите ознаке одговорити на различитим путевима у нашој стаблу. А за овом примеру, ми имати почетни документ чвор. Имамо, дакле, наш ХТМЛ-чвор који дели у главу и тело. Шеф има наслов, а затим наслов садржи Хелло, ворлд. И наше тело само садржи Хелло, Ворлд као добро. Тако да било питања на било који од ствари које смо до сада покривене? А ако не, Хана ће преузму са ЈаваСцрипт. Страва. ХАНА Блумберг: У реду, кул. Ако нешто искрсне са ПХП или ХТМЛ, или било који од ствари Марија покрива, увек можемо паузирати. Радимо боље време опет, тако сјајно. И само да се вратим веома брзо томе, ако погледате сваки Протекла година је испит, ово долази до еитхер-- овде Неке ХТМЛ, чине овај дијаграм. Или ево овај дијаграм, да неке ХТМЛ тако дефинитивно вежбају то. И онда је то једно гарантовано Питање које можете добити праву. Кул. Дакле, хајде да причамо о ЈаваСцрипт и како је мало разликује од језика као што су ПХП и Ц, два језика смо раније видели. Дакле број један, то је лабаво откуцан. То је као ПХП, али за разлику од Ц. То је тумачити језика. Опет, то је као ПХП разлику од Ц. и ово ће нам омогућити да га Користи, ради јако лепо са веб страницама. То ће нам омогућити да манипулишу садржај и како то изгледа и шта ради. Идемо да видимо мало Ајакс. То нам омогућава да комуницирају асинхроно са различитим серверима и добити информације. И то је оно што заиста одваја ЈаваСцрипт од ПХП и Ц је да је на страни клијента. Оба ПХП и Ц су обично на страни сервера. У највећем делу и скоро у потпуности оно што Видели смо, барем у ова класа, ЈаваСкрипт делује на страни клијента, што значи да је прегледач је заправо одговорна за трчање. А то значи да ми не требају за интеракцију са сервером. Дакле, то значи да може бити много брже јер то је заправо само је Цхроме то је Сафари, Опера је, оно што вас користити заправо ради свој ЈаваСцрипт. ПУБЛИКА: Шта асинхрони значи? ХАНА Блумберг Ах, шта не асинхроно значи? Велики питање. Асинхроно меанс-- добро, садржај у коме ми користимо је, ОК, креирате веб страницу и морамо да добијем неке информације. Тако је и са примером Масхуп, неке информације које смо можда желети је звања Члан. Сада, могао-- смо једну опцију је да то синхроно а то значи Хајде да стоп, иди чланак, добити чланка леђа, а затим рендер, али то би било заиста споро. То би било лоше корисничко искуство зато што би само седети тамо чека нешто да одговори. Асинкроно ми значи ћемо наставимо о нашем пословању, доношења страну, и ми ћемо испратити захтев То је некако ће се дешавају у позадини. Мислим да користимо пример у предавање зове Роб и говорећи: Хеј, можеш ли да ово за мене и јави ми, за разлику од само мене чекајући на телефону. Дакле, асинхроно значи да се деси у позадини далеко од нас paralelno. Велики питање. Još nešto? Veliki. Ми ћемо јумп много више у асинхрони захтеви са Ајакс. ПУБЛИКА: Да ли ЈаваСцрипт-- где ради је пао са Модел-Виев-контролер? ХАНА Блумберг: Велики питање. Где се ЈаваСцрипт пад с Модел-Виев-контролер? Хм. Претпостављам да могу да фалл-- тако да не обично волим да мљацкати у то парадигма, али претпостављам да бих, ОК, дакле ЈаваСцрипт заправо ће дозволити да прикупљају податке, тумаче податке, уствари раде смислене ствари са подацима. На тај начин, то је веома контролне слично. Али то је такође ће нам омогућити приказати ствари и Принт ствари. На тај начин, то је веома поглед налик. Да. Дакле, то је нека врста ПХП у где је врста може бити обоје. Dobro pitanje. Još nešto? У реду, супер. Веома добро напредује. Па да видимо пример како можемо користити ЈаваСцрипт у једном од наших веб програма. Тако да ћемо размотрити ово индек.хтмл са гомилом ХТМЛ. А ствар Желим те фокусирати на ово писмо ознака. И то каже, у реду, желим да обавим неке ЈаваСцрипт и овде је место где живи. Она живи у хелло.јс. И веома налик ЦСС, можемо стави ЈаваСцрипт у ХТМЛ. Зашто би желимо да га одвоји од? Да. ПУБЛИКА: Лакше да преправим? ХАНА Блумберг: Да. То је лакши за коришћење преко различити веб странице. Одржава ствари чистији. То је само добра пракса. Страва. Dobar odgovor. Тако је добро, тако да ће да буде наш индек.хтмл. А онда овде је наша малени ЈаваСкрипт фајл. И све што пише је опрезан Здраво, свете. Дакле, шта се дешава када Ова страница рендерс-- па ако одете на било сајту ово је-- све што ће се догодити је да ће рећи, у реду, ја сам да водим ову ЈаваСцрипт кода. И ово ЈаваСцрипт код само каже Алерт Здраво, свете. Зато ћу добити ово пријатељски мали поп-уп. Цоол? То је као нашем првом Јавасцрипт програм наше Здраво, свете. Погледајмо мало више о томе шта синтакса ЈаваСцрипт изгледа. И посебно, хајде да га упореди са Ц и ПХП који смо раније видели. У ЈаваСцрипт ћемо имати вар, име променљиве, а затим њена стварна вредност. А ми не прецизира тип, само као у ПХП-у, али веома разлику од Ц. Тако на пример, ако желимо да сачувате вредност 50, у Ц, морали бисмо рећи, хеј, Ц, желим цео број, Ја ћу да га зовем и, и њена вредност је 50. У ПХП, то је мало лакше. Ми кажемо, хеј, желим променљиву Звао сам и њена вредност је 50. Врло слично, у ЈаваСцрипт, ми саи хеи, желим променљива сам назвао, њена вредност је 50. Сваки наредни пут да користим Ја, ја не морам да пишем вар. То је само сам од тог тренутка. На исти начин, у Ц, где је Једном ми кажемо инт и, само смо ја користим. Цоол? U redu. Прелазимо на петљи, срећом, то готово изгледају екацтли-- Мислим да су исто као шта петље ће изгледати у нешто као Ц, где ти је за петљу ће имати три партс-- иницијализацију, услов, а ажурирање. Неко време петља, изгледа потпуно исти. Управо смо му дати услов. И радити док петље, опет, исто. Ми се дају услов. Рецимо хтео сам да поновити овер-- Хтео сам да урадим нешто пет пута. У Ц, можемо писати за инит сам једнако 0. Ја је мање од 5, и ++. Једина разлика у ЈаваСцрипт, уместо да каже ИНТ И једнако 0, кажемо вар износи 0. Lep. То је једина разлика. Сва питања о било шта од тога? Да. ПУБЛИКА: Дакле, у ПХП-у, то је исти ствар, осим али као променљиве? Или је то био вар пример? ХАНА Блумберг: Да. Дакле, у ПХП-у, то ће да буде знак за долар. Тако да ће $ И једнакима 0, $ и је мања од 5, $ и ++. Велики питање. Сада ћемо да причамо о фунцтион декларације. У Ц, када смо проглашена функција, да смо му дали име и да смо му дали неке параметре. И на почетку, написали смо врсту. У ЈаваСцрипт, сви смо треба да урадите је да напише функција кључна реч која каже, хеј, ЈаваСцрипт Ја сам хтео да дефинишемо функцију. У овом случају, то је име суму. И то узима два аргумента, Кс и И. Приметите да нас није брига о врстама од Кс и И. И баш као Ц, имамо овај повратак кључна реч, тако да можемо да урадимо нешто као ретурн к и и. И сада када смо написали ово први пут функција, можемо користити суму нигде. И то је потпуно у реду. Једна стварно добра ствар у вези Јавасцрипт да је веома разлику од Ц да функције могу бити третирани као вредности. Дакле, можемо да урадимо нешто овде где Претпостављам да покрије ово их-- Покривен сам у вар збир парт-- и само рекао Функција КСИ једнако ретурн к плус и. То је оно што би се могло назвати анонимни функција. То је функција без имена. Док ово говори функција сума, бла, бла, бла, то би само реци функцију. Али сада, иако имам ово анонимно функција, та функција је заиста само вредност. Можемо га третирати као вредност. Дакле, можемо сачувати у променљивој, иста начин да чувате 50 у променљивој. Дакле, можемо рећи, у реду, Желим променљива, то се зове сума, и то је ова функција. Дакле, ове две ствари су заправо урадити исту ствар, али синтакса је мало другачији и нека врста забаве напомену. Да. ПУБЛИКА: Да би могао да назвати функција која је анонимно речима, сум заграде 2, 5? ХАНА Блумберг: Да. Можете назвати анонимно функција у исти начин. Ти би урадио суму (2, 5) ;. То би било потпуно у реду. Ако нисам урадио вар сума једнака функција, ако само избрисана ово-- Знам да је на мојој руци, али се претварам да бришу ово-- тада та функција је врста једноставно нестао. Ви никада не може поново користити, јер немате име за њега. Тешко да се односи на нешто не знам шта да зовем. Dobro pitanje. Да. ПУБЛИКА: Да ли ви спомињете суму у Остала са вредношћу к плус и? ХАНА Блумберг: Можете ли референтна сума на другим местима са вредношћу к плус и? Нисам сасвим сигуран на шта мислиш. ПУБЛИКА: Дакле, ваша прошлост полу-анонимни функција је сума једнака ово Функција анонимно, тако да збир је Сада променљива која сте можеш-- ХАНА Блумберг: У реду. Дакле, збир је променљива, али је стварно-- тако да збир је променљива чија вредност је функција. Дакле, то је функција, која је врста нека чудна ствар да оконча своју главу око јер смо се играо са Ц и не могу да урадим у Ц. Али сада можемо назвати суме Исто тако бисмо могли назвати суму овде. ПУБЛИКА: У реду. ХАНА Блумберг: Да. Dobro pitanje. Да. ПУБЛИКА: Дакле, ми не користимо прототипови у ПХП или ЈаваСцрипт? ХАНА Блумберг: Не, ми не морате да користите прототипова, посебно у ЈаваСцрипт. Дакле, једна лоша пракса ствар коју сам ће рећи да не би требало да је не морате да пишете вар и = 50. Могао би почети радити и = 50. И би само да сам глобална променљива. То је веома лоша пракса да невер саи експлицитно вар, али то је нешто што можете да урадите. Преводилац није ће викати на тебе. ЈаваСцрипт је прилично слично, можеш да радиш шта хоћеш. Ох, извините. Има два. У наранџастим панталонама. Hajde. ПУБЛИКА: Не, ти први. ПУБЛИКА: Не, само сам рекао Нисам имао своју руку. OK. Дакле, ако сте били да позовете да први пут, сада сумирам, ми то зовемо на исти начин, к, И, као и сваки пут? ХАНА Блумберг: Да. Дакле, ова два суштински раде исту ствар. ПУБЛИКА: А шта је предност користећи једно или друго? ХАНА Блумберг: Не предност употребе једно или друго. Само сам хтео да вам покажем два различити делови синтаксе. Много пута где анонимно Функције имају сврху је ли аргумент на други функција треба да да буде функција. А видећемо да је у само други са Ајакс. Дакле, ако то није имало никаквог смисла, ставите га у потиљак. То је место где анонимна Функција може бити корисно јер то није стварно вреди дајући јој име, јер ми смо само ће га користити једном. Да. ПУБЛИКА: ако Кс и И промена касније о, да сумирамо променити, као? ХАНА Блумберг: ако Кс и И промена касније ће сумирамо променити, као? Дакле, ово је заправо сам Мислим нешто што је, Опет, то је само осећа веома разликује од Ц. То није вредносно. То није 5. То је само по себи функција. Дакле, чим се дају параметара, онда заиста ћете израчунати вриједност. МАРИЈА Златкова: И онда можете позвати функцију и користити га да се мало вредности. ХАНА Блумберг: У реду. Baš tako. Да. ПУБЛИКА: Дакле, ако само ставите га у променљивој, Као вар к једнак збиру два валуес-- ХАНА Блумберг: Да. Дакле, можете само да урадите вар суму једнак збиру две вредности. Да. Има ли још питања? Да. ПУБЛИКА: Али да ли би то збуни суму и суму? Као ако позовете променљиву суму, да ли позвати функцију суму? ХАНА Блумберг: мм. Мм. Ако сте урадили нешто као, сума износи збир 2, 5? ПУБЛИКА: Да. ХАНА Блумберг: Верујем да би замени вредност суме. Дакле, још један интересантан ствар у вези ЈаваСцрипт је да једна променљива може да на гомилу различитих врста. Лоша пракса. Не треба нешто да уради Као што си рекао. Али у Ц, ако сам је постављена једнак један цео број, знамо да никада није постати стринг. Ово није случај у ЈаваСцрипт. Да, добро питање. Još nešto? U redu. Доинг све тачно на време. Кеепинг иде. U redu. Ако погледамо низ у ЈаваСцрипт, овде је брзо пример низа низова. И низови могу динамички расте. Они немам фиксне величине на исти начин да раде у Ц. Можемо приступити елементи са само средњим заградама. То личи ПХП и много као Ц, где можемо рећи, у овом случају, ако сам желео реч ЈаваСцрипт, ја бих до арр угласте заграде са 0, 1, 2. А онда, ако се сећате кад смо у Ц хтео да дужину низа, то је заиста нервира. Али у ЈаваСцрипт, супер лако. Све што радимо, .ленгтх. Даје јој дужине. To je to. ПУБЛИКА: То је једноставно. ХАНА Блумберг: Да, чини ваш живот много лакше. У реду, не објецт-- тамо. Објекти у ЈаваСцрипт осећај доста као Структуре у Ц и асоцијативна низови у ПХП. Дакле, оно што нисам видео Много је ЈСОН који се залаже за ЈаваСцрипт Објецт Нотатион. И то је у основи начин структурисања наше податке. Па да видимо пример, вероватно најлакши. Дакле, овде је пример објекта који чува класу, ЦС50. А када кажем класу, ја наравно мислим, Не као-- да, ток, ЦС50. И видећете да све у објекту ће бити садржани у заграда. И да почнемо да се друже имена на терену или тастери са различитим вредностима. Дакле, можете почети да видите како ова врста осећа као асоцијативним низ у ПХП. Дакле, идемо да повежете на терену или кључ име, наравно, са низом, ЦС50. Ми ћемо имати инструктора. Ми ћемо имати Поздрав. Ми ћемо имати број псетс а ми ћемо да снима. И једна добра ствар на уму је све ове ствари имају различите врсте, и то је потпуно у реду. То је у реду за неки објекат, у ствари, то је вероватно очекивао за објекат да има комбинацију стрингс и бројеви и Боолеанс и низови и шта год желе да имају унутар вашег објекта. И у виду да су ће бити имена или тастери, а затим смо сет је једнака са мало дебелог црева. ПУБЛИКА: Шта тачно значи ЈСОН? ХАНА Блумберг: Шта тацно ЈСОН значи? ЈСОН само залаже за Јавасцрипт објекта нотација. То је само начин обликовања. Да. То је начин да се форматирањем наше податке. У Ц, то је Структуре. У ПХП, то је асоцијативна низове. У ЈаваСцрипт, имамо објекте. ПУБЛИКА: Дакле, ЦС50 је предмет? ХАНА Блумберг: ЦС50 је објекат у овом случају. Сада, како то радимо заправо приступ та поља или промените те области. На пример, претпоставимо смо одлучили да сте хтели један мање псет овај семестар. Уместо девет, ми смо само да има осам. Како бисмо то променити? О, погрешан начин. Постоје два начина да можемо то да урадимо. Број један је са тачком нотација и број два је са квадратном носача нотацији. Тако, на пример, ако И желео да промени или приступа поље псетс у нашој ЦС50 објекту, шта бих урадио је ЦС50.псетс, тако да је име објекта дот име на терену или кључем. Врло слично, потпуно је еквивалентно да уради ЦС50, а онда у квадратним заграда, псетс. Цоол? Да. ПУБЛИКА: Тако је ЈСОН технички ЈаваСкрипт даље, Иако у псетс смо одвојити ит оут [неразумљиво]? ХАНА Блумберг: Наравно. Дакле, питање је да ли Јавасцрипт и ЈСОН еквивалент? Тако је ЈСОН нотација, у суштини начин на који смо написати предмет од ЈаваСцрипт. Дакле, они нису исти. Ја бих рекао ЈаваСцрипт, тамо су објекти у ЈаваСцрипт. ЈСОН узима те објекте и штампа их и приказује их или складишти их на леп начин. Тако ЈСОН није програмирање Језик начин на који је Јава-скрипта. То је само ознака за наши објеката у ЈаваСцрипт. Да. ПУБЛИКА: Дакле, шта тачно [Неразумљиво] завршити? ХАНА Блумберг: Наравно. Дакле, ово заправо ради ништа. Ово је само начин да се приступи. Рецимо смо желели да промените број проблема сетова од девет до осам. Оно што ми радимо је учинити нешто као ЦС50.псетс = 8 ;. Да, одлично питање. Ово је само да вам покажем синтаксу. Да ли заиста не ради ништа корисно. Neko pitanje? Веома добро напредује. Дакле, хајде да погледамо брзо пример како Јавасцрипт ради јер сам ти рекао да је обавља све ове цоол ствари и нам омогућава да измените веб странице. Да заправо видимо у акцији. Тако се, на пример, овај ХТМЛ датотеку. А ствар коју желим да се фокусирате на је ова ознака, који је дугме, са ид сеарцх_буттон. То је само на страници. Дакле, хајде да видимо шта ми заправо може да уради. Па, претпостављам када кликнете то дугме, желимо да направимо алерт-- сте кликнули на дугме. Хајде да видимо како можемо то да урадимо. Дакле, виндов.онлоад-- то није нешто да сте видели у класи, дакле неће бити потребно да знате за квиз. Али ово у суштини каже, у реду, позив ову функцију када се прозор оптерећења. Дакле, то је некако сетуп кода. Не брините толико о томе. Оно што желим да се фокусирате на је овде. Кажемо вар Сеарцхбуттон једнако доцумент.гетЕлементБиИд сеарцх_буттон. Дакле, као што можете да погодите, ста ради је каже, У реду, иди нађи елемент са ИД сеарцх_буттон. А сада имамо да стварни елемент и сам да га чува на променљива Сеарцхбуттон. А сада можемо да користимо тај елемент и промените га, или да приступите своје вредности, такве ствари. Ми у ствари може да почне да ангажује са веб страници. Дакле, овде кажем, у реду, сада када имам то дугме, када се кликне, назвати анонимно функцију. Дакле, ово је место где анонимни функције постали корисни. А шта је функција уради? Па, то је само ово назива Функција опрезан и каже, сте кликнули на дугме за претрагу. Дакле, шта ће се десити ако одем тамо гдје Овај ХТМЛ живи и кликните на дугме, Ја ћу имати фину малу узбуну да каже да кликне на дугме. Тако су ствари да се фокусирају на овде-- доцумент.гетЕлементБиИд добија посебан ХТМЛ- елемент са датим ИД. И сада можемо поставити шта треба да се деси када да одредјени се кликне. ПУБЛИКА: Морамо ставити све то у? ХАНА Блумберг: Молим? ПУБЛИКА: Да ли морамо да физички Кодирамо све то? ХАНА Блумберг: Да ли морамо да физички Кодирамо све то? Да. Зар ово није врста досадан? Ово је много кода. ПУБЛИКА: Могао би увести нешто. ХАНА Блумберг: У реду. Могли би да искористимо нешто. И у партицулар-- Ох, то је ми говори морам да предајем део. Посебно, хајдемо користе библиотеку јКуери, јер то је стварно дуг и досадан стварно и ја желим да будем у стању да га поједноставити и чине га краће и лакше да пишем. Дакле, јКуери је ЈаваСцрипт библиотека. Тако да је ЈаваСцрипт програмирање језик; јКуери је библиотека. И то чини гомилу ствари лакше. Чини мења и иде преко ХТМЛ документа много лакше. То чини руковање догађаји лакше. То чини анимацију лакше и чини Ајак лакше. Дакле, хајде да скочи у два те ствари одмах. Izvinite. Пре него што ми радимо, нека основна синтакса. То је оно што највише позива на јКуери библиотеке изгледати. Ми користимо ову долар сигн-- нема везе знак ПХП, Само инцонвениент-- на име селектор, тачка, а затим акција. Па да видимо неке конкретни примери за то. Дакле, ово је заправо исти Код из догађаја слајда. Дакле, ово дуго, ружно постаје ово много лепше, мања ствар. Дакле, хајде да покушамо да се пробије ово доле. То каже, у реду, јКуери-- ово долар сигн-- јКуери, нађи ми прозор. Дакле, то је селектор. Када се учитава, позовите ову функцију. Дакле, то је све унутра. OK. Zasada je dobro? U redu. Сада, јКуери, нађи ме је Ствар са ИД сеарцх_буттон. А шта је кликнуо, позовите ову функцију. И онда ова функција је potpuno isto. Само уради мало приправности, сте кликнули на дугме за претрагу. Дакле, то је стварно лепо. Стварно се кондензује и поједностављује наш код. Како сам знао да то је ИД сеарцх_буттон а не као класе сеарцх_буттон? ПУБЛИКА: Хасхтаг? ХАНА Блумберг: Да. Овај симбол хасх, то је као ЦСС. И запамтите, са ЦСС, када смо желео да изаберете нешто по ИД, смо користили знак за фунту. И када смо хтели да изаберете нешто по класи, користимо тачку. Veliki. Ima smisla? Дакле, јКуери је требало да само да наш живот лакшим. Да. ПУБЛИКА: Дакле, ја сам мало збуњен као то како анонимни функција ради. Да ли име тог Анонимоусе Функција, функционишу? Како се то зове? ХАНА Блумберг: Наравно. Дакле, функција је само кључна реч која каже, ја сам хтео да дефинишемо функцију. ПУБЛИКА: Ох, у реду. ХАНА Блумберг: У реду? И онда смо га проћи као Аргумент да-- узмимо ово унутрашњи једног-- функцији клик. Тако да, тако те функције, ово анонимно функција, постаје стварна расправа. Дакле, сећате ЈаваСцрипт смо могу третирати као функције вредности. ПУБЛИКА: Ох, у реду. ХАНА Блумберг: Да. Свиђа ми се то "Ох." Lep. Остала питања? Време? МАРИЈА Златкова: Добро. Dobro. ХАНА Блумберг: Страва. Брзим корисно јКуери. Ја не идем кроз све ово. Ови слајдови ће бити до мрежи мало касније, тако да можете да проверите да се мало касније. Али, у основи, генерал образац држи где смо рекли, У реду, хеј, јКуери, овде је мој селектор и онда овде је радња. И можете да урадите ствари као приступ у Вредност форми, приступ неким ХТМЛ, Контрола шта се дешава када корисник подноси форму, такве ствари. Да. ПУБЛИКА: Дакле, у испит, идемо требати да зна доста од јКуери документацију. Дакле, с обзиром да смо цопи / пасте јКуери Документација нашем Цхеат Схеет, Где је повучена линија? Као колико нам је потребно да знамо? ХАНА Блумберг: Велики питање. Питање је С обзиром да у суштини не могу да приступе јКуери документацију током теста, колико би требало да знаш? Не бисмо очекивали да дођете са неким случајним функцијом да очекујемо Вас Гоогле-у. Ствари које су фер игра се бих кажу само врсту општег синтаксе, бити у стању да изаберете по ИД и од цласс-- тако као ЦСС. И онда је стварни функције себи саме, ми вероватно ће вам рећи. Да. ПУБЛИКА: Дакле, када изаберете према класи би значило тачку. ХАНА Блумберг: Да, управо тако. Dobro. Када изаберете по класи, иде да се дот уместо знака килограма. Да. ПУБЛИКА: Да ли би прећи разлика између избора по ИД и класа? ХАНА Блумберг: Наравно. Разлика између избору ИД и одабир према класи. Дакле, као Марија, рекао је мало раније, Може бити само један елеменат ХТМЛ- са одређеном ИД, док класа, то нам омогућава да групу А Бунцх различитих елемената заједно, тако ствари које се односе, али није баш исто. Да ли је то одговор на питање? Страва. Да. ПУБЛИКА: Шта ако имате више ствари које су у истој класи? ХАНА Блумберг: Шта се дешава ако имате више ствари које су исти разред? Тако, на пример, ако смо само користећи чист ЈаваСцрипт, ћемо урадити нешто слично доцумент.гетЕлементсБиЦласс. И шта онда заправо је је повратак низ елемената. И мораш да ни поновити више они или пронађете оно што желите. То неће дати сте један елемент. То ће вам дати низ елемената. Велики питање. Još nešto? Страва. Тако да мислим да ли сте упознати са било јКуери сте видели у псет, требало би да буде добар да иде. Питање? O, ne. Стварно морам да предајем. Опустите се. То ће бити у реду. Ја ћу тамо. Хајде да причамо о Ајак. Дакле, Ајакс ће бити је-- добро, Почнимо са оним што стоји у. То је акроним. То је скраћеница за асинхрони ЈаваСцрипт и КСМЛ. А КСМЛ је у основи ће бити [Неразумљиво] са типом наших података. Али, нисмо заправо користи КСМЛ. Уместо тога, ми само користимо ЈСОН. У основи, то је неки дата-- асинхрони, ЈаваСцрипт, и података, у овом случају, ЈСОН. И наш циљ, као што смо поменули мало раније, је да би могли да се направи Захтев, да тај захтев учинити његова ствар у позадина, али и даље шта год смо намеравали да урадимо. А онда, када је та информација спреман, онда ћемо га уградити. Дакле, хајде да видимо шта је ово заправо изгледа. И то, требало би да буде мало познат од псет8, она само окренуо у. Дакле, овде је валидан јКуери функција која бисмо могли Хоћу да знам о-- овом долара знак. Тако се каже јКуери функција, .гетЈсон. А шта је ова функција ради је то узима УРЛ и мало параметерс-- тако да мислим да у случају од псет8, било је као, УРЛ био артицлес.пхп и Параметри је го = неку поштански број. И каже, у реду, направи захтев овај УРЛ са задатим параметрима. И то само догоди. Када се заврши, то је било да успешно заврши или ће да пропадне. Дакле, ово је еквивалент позива Роб и замолите га да уради нешто. И онда кад се врати зове, он је било да кажем да сам учинио или нисам успео. Дакле, у случају где си урађено, кажете, у реду, ја сам готов. И онда назвати ову функцију. У овом случају, то ће бити функција која узима неке информације. Онај се обично стало је података, подаци које смо заправо били враћени као резултат позива .гетЈСОН. И можете да урадите нешто са њим. Дакле, у случају псет8, ми га приказује као листи. Фаил ће бити у функцији да се зове, ако се захтев не из било ког разлога. И у случају псет8, Управо смо цонсоле.лог. Сва питања у вези са тим? Да. ПУБЛИКА: Можемо ли користити функцију тхета уместо функције, тектСтатус, јкХКСР. ХАНА Блумберг: Наравно. Тако да, мислим да у псет, смо управо видели функција податке. Дакле, то је само то-- да, ОК. То је оно што смо видели у псет. То је потпуно у реду. Ово су само ако желиш да извуче више информација, то су ствари које можете добити од .гетЈСОН. Dobro pitanje. Još nešto? Да. ПУБЛИКА: Па .гетЈСОН је Ајакс? ХАНА Блумберг: У реду. Дакле, ово је врста тежак део. То је јКуери функција која омогућава да урадите асинхрони позиве. А ти асинхрони позиви, то је оно што смо мислили као Ајакс. Да. То ми је стварно доста времена да се пулл осим када сам био студент. ПУБЛИКА: Можете ли поновити то? ХАНА Блумберг: Да. Могу рећи да опет? Ова функција .гетЈСОН, то је функција јКуери. И то ће направити асинхрони позив. И ови асинхрони позиви, имамо је мислио на оне као Ајакс. Има ли још питања? Имамо само неколико минута. И Марија иде у завршити са обезбеђењем и онда идемо да се само о урађено. МАРИЈА Златкова: Страва, у реду. Дакле, ово је-- трајати само неколико секунди да погледају преко тога. И то није нешто стварно супер. И може ли ми неко рећи зашто? Шта се дешава у фоо и може могли потенцијално довести до нешто лоше, и шта то се зове? Да. ПУБЛИКА: Ако је аргумент да је усвојен је више од 12 знакова, може да преплави. МАРИЈА Златкова: Тако је. Savršen. Kako je nazvano? Само га споменуо. ПУБЛИКА: Буффер оверфлов. МАРИЈА Златкова: Да, буффер оверфлов. Дакле, ово је нешто што односе као буффер оверфлов. И видимо да је унутрашњост фоо, смо дефинише нашу буффер, ц, са површином од 12. Међутим, у главни, не знамо проверите на било који начин уопште да ли је аргв1-- тако да био је други аргумент. Ми не проверите да ли је величина тога је потребно. Дакле, ако смо имали посебно хакер ко је ставио на неки аргумент који је био дуже од 12, а онда потенцијално изван граница које Аргумент, имао неку извршни код да је покушавао да уради нешто лоше s tim; онда, шта ће се десити, би премостити повратак адреса фоо функције, узрокујући функцију када враћа да изврши тај код. А онда лоше ствари може да се деси. Да ли то има смисла за све? И како можемо заштитити против тога? Neki predlog? У суштини, унутар потенцијално Фоо, како можемо проверите да ли да то не може да се деси? ПУБЛИКА: Ако је величина 12 је прекорачен, ти би издвојити додатну меморију? МАРИЈА Златкова: Предлог је, издвојити додатна меморија величине прекорачен. Заправо, можемо да урадимо несто лот једноставније од тога као добро. Ми само можемо добити дужину стринг аргумента који је унет, проверите да ли је то мање од или једнако са 12-- што је оно што желе да буде јер ми не желимо да то прелази границе наше тампон. И онда, ако се то не деси, ми може да ради са аргументом. И онда ако се то деси, ми заправо желе потенцијално Иелло на корисника. Али ово је како ми не би урадио. Да. ПУБЛИКА: Можете ли објаснити мемцпи брзо? МАРИЈА Златкова: Ох, извините. Да. Мемцпи узима шта год је-- Жао ми је, у реду. Мемцпи узима све што је у бару, без обзира преноси на фоо као аргумент командне линије. Дакле, то ће се аргв1. Аргв1 се зове овде бар. Тако да ће трајати бар и да ће га копирати у ц. ПУБЛИКА: У реду. МАРИЈА Златкова: И то ће цопи-- Трећи аргумент само односи на то колико ће то копирати у ц. ПУБЛИКА: А. Дакле, ова је копирање све то онда. МАРИЈА Златкова: Да, то је копирање све то. Да. Прво, уверите се да је бар не једнак нулл јер је показивач. Онда смо добили дужину жица од бар. Ми уверите се да је мање од или једнако 12. А онда јер смо побринуо, можемо да мемцпи и будите сигурни да је то у реду. Neko pitanje? Veliki. Имам два истинита или лажна питања. Може ли ми неко рећи одмах ако су истините или лажне? Да, то је лажна. Baš tako. Обојица су лажне. Дакле, користећи један шифру никада није стварно добра идеја јер ако неко зна лозинка, они само могу приступити све остале рачуне. А онда иконе ништа да се осигура безбедност. Обично треба тражити ХТТПС уместо ХТТП и УРЛ. И неке друге врсте Напади које смо поменули, Давид је наведено у предавање, нападе СКЛ ињецтион. Већ смо видели да ако немој-- Функција ЦС50 упит чини сигурни да СКЛ напади ињекције не може десити. Али ако нису користили ЦС50, цитат, под знацима навода "у упиту," морали бисмо да се уверите да корисник улаз заправо није неки СКЛ упит који ће изазвати све наши табеле се пао или нешто лоше десити са нашој бази. Седница је отмица још једна врста напада што се дешава када се неке лоше особа користи сесију неке жртве ИД за приступ информацијама за пријављивање. Дакле, веома тривијално пример за то је као да имамо јавни рачунар, онда је лоша особа пријављује, а затим они имају колачиће које су сачуване. И колачићи не мењају за седницу. Тада смо жртва ићи у а затим се пријавите на сајту. Колачиће не мењају за одређени сесију. А онда је жртва пријављује веб сајт, а затим одлази. А онда је особа која се враћа онда могу и даље користити свој ИД сесије да приступите своје информације. Дакле, то је један од примера како је то могло да се деси. И онда ја не бих превише бринути о специфичним кодом или тако нешто тако да би могло да проузрокује ово, али има неку врсту идеје шта променљиве укључене у ово јесу. А онда манипулишу заглавље подаци су још једна врста напада да има Давид је говорио о томе. И то се односи на шта се може десити када се одговор, ХТТП одговор унутар нашег заглавља није правилно санитизед. И свака од фиелдс-- на пример, ако неко преписује један од заглавља Вредности да садржи нешто више од шта би требало цонтаин-- и стварно садрже, на пример, 200 У реду статуса код, онда потенцијално може учинити злонамерно ствари када они не би требало. Али ја не бих превише бринути много о специфичним кодом да би могло да проузрокује ово, само нека врста разумевања на високом нивоу такве ствари. Мислим да је ово све да морамо покрити. Neverovatan. Свако има било каквих питања у вези са било од ствари које смо покривени? Да. ПУБЛИКА: Дакле, једна врста више логистичка питања. Да ли је садржај фокусиран о стварима након квизу 1? МАРИЈА Златкова: Па Питање је, да ли је садржај фокусирани углавном на ствари после квизу 1? Дакле, фокус је на након куиз 1, с изузетком да морамо да се фокусирамо на ствари у псет5 и много структура података да смо покрили. И не можемо да кажем да може да игнорише све пре јер се гради на њега као добро. Тако се фокусирају на то, плус псет5 материјал Као укључујући повезане листе, гомиле, редови, и све да Хана отишао. ХАНА Блумберг: У реду. Да, отишли ​​смо преко свих ствари Ц на самом почетку веома брзо. Али уверите се да прегледате то. Врати се и гледајте квиз 0 мишљење. Пар више логистички белешке, само док имамо вашу пажњу. Ми ћемо имати радног времена како у понедељак и уторак увече. Они ће бити у МД 119. Ово је све на сајту, тако ако не, нема бриге чују. МАРИЈА Златкова: 8:30 до 11:00. ХАНА Блумберг: Да, 8:30 до 11:00. Ми ћемо бити тамо. Ми ћемо бити тамо да одговара на питања. То је прилично хладан и забаван. Ви можете постављати питања да имате на квизу 1. И квиз 1 је на Среда, тако срећно. Ако имате било каквих питања, можда дођи да разговарамо нас овде један-на-један. Кул. Puno hvala. МАРИЈА Златкова: Хвала пуно, момци. ПУБЛИКА: Ура. [АППЛАУСЕ]