>> РЈ Акуино: Хајде да почнемо.
Дакле, ово је квиз 1.
Ево неке информације на високом нивоу.
О страница за квиз је ово УРЛ адреса, више не ЦС50.нет, иако то
ће и даље радити.
То је ЦС50.харвард.еду/куиззес/2013/1.
То је велики О страници, говорећи вам где и када, односно следеће среде
у гомилу просторија.
И од наредне среде, ја Мислим два дана од сада.
Све ове информације је тамо.
Али, то је кумулативно.
>> Дакле, све из прве половине године је потенцијално на квизу,
јер ви не можете учинити напредни ствари у Ц без ако услови и
за петље и слично.
Али ту ће бити нагласак на материјал покривен од Куиз 0,
почев од Структуре и Филе И / О. То обично више је
изазовнија него квиза 0.
Просечна оцена је типично мањи.
Студија тешко.
>> Док сте студирања, будите сигурни да користите ЦС50/дисцусс да поставите на ваша питања
и чита питања туђе.
Дакле, ако немате било каква питања, пријавите се и прочитајте
питања својих пријатеља.
Вероватно су добра питања.
И узети праксе квизове.
Ми смо били давање квизова за седам или осам година.
Сви су на мрежи.
Будући питања су слични на старим питања.
Тако смо их направити.
>> Квиз још увек не постоји.
Нико од нас су га видели.
Али, то ће изгледати претходна квизове.
За ову седницу за разматрање, ово није исцрпан списак тема.
Не можете само присуствовати ово и онда бити савршено спреман за квиз.
У супротном, не би било да неки квиз.
А то је такође не мора све што треба да знате о било
дата тема.
То је значило да вас изложити ствари смо покривени, те подсетим шта смо
покривена, а начин на који ми је покривена.
Али ћете морати да иду даље и дубље кад учиш да провериш
да ли знате све о било дато тема и да сте попунили у
сви углови који су били покривена у предавању.
>> Квиз белешке вам рећи да иде у Сцрибе белешке, предавања ватцх видеос.
То је добар начин да будете сигурни да сте покривен све своје базе.
Тако почињете, када сам направио ово слајдови, покушао сам да ставим где сам пронашао
информације.
Дакле, за Филе И / О, на пример, 7 недеља, Понедељак је предавање, и послали
Члан 6 и проблем сет сви имају информације о Филе И / О. Ја сам урадио
ово за сваку тему.
Дакле, они титле слајдова може бити корисне за вас.
>> Дакле, овде имамо Филе И / О. Запамтите, у Проблем Сет 5, користили смо фопен, фцлосе,
фврите, фреад, и фсеек.
Пошто се опоравио 30исх ЈПЕГ и пошто промењена и забрљао са
битмапе, требало би да буде прилично упознат са овим функцијама
и како они раде.
Ако више нисте упознати, дефинитивно их прегледати.
И проверите да ли сте разумели шта различити аргументи су,
када су навикли.
>> Али заједнички бубе фајл у вези можете бити упитани о -
добро, ако сте заборавили да проверите да ли фопен заправо радили пре него што одете на
измените датотеку.
То би могло да буде лоше.
Ако сте заборавили да фцлосе датотеку да сте фопенед, који је сличан
осипање меморије.
То је прилично лоше.
И заборављајући да проверите да ли сте стигли до краја датотеке пре него што
почнем да пишем на њега.
>> Дакле, ако ви кажете, хеј, ја сам у крај датотеке.
Дај ми још 5 бајтова.
Па, то се вероватно неће разрадити онако како сте очекивали.
То је стварно било за Филе И / О, јер смо урадили много тога
са проблема сет.
Дакле, ако сте схватили шта се дешава Проблем у сет 5, запамтите битматс
и ЈПЕГ, онда сте вероватно сви сет за Филе И / О. Ако је то мало
фази, дефинитивно размотри тај проблем сет и повезан материјал.
>> Структуре су тема које су биле на линија између квиза 0 и 1. квиза.
Зар није сасвим направите рез за квиз 0.
Дакле, они дефинитивно ће бити на Квиз 1, недеља 7, у понедељак.
Шта је струцт?
Овде ћемо показати струцт.
То је као новог типа.
То је као контејнер за више поља.
>> У овом случају, ми смо прогласили струцт Ученик који има два поља -
стринг који смо зове име и инт да ми зове старост.
Дакле, када сам проћи око студенте или ја модификовати студентима, ја ћу бити у стању да
приступ своје име и своју старост.
Погледајмо неке код за то.
Овде видимо да је сам прогласио студент а, баш као и
Изјављујем било коју променљиву -
инт к, инт и, и тако даље.
>> Ево ученик а.
Он почиње са ништа у својим областима.
Па хајде да их поставите.
Можете подесити поља у струцт са тачком.
Зато сам овде рекао да с.наме = РЈ.
И с.аге = 21.
Такође можете ажурирати поља исти начин на који би ажурирате
вредност променљиве.
Зато желим да променим име из РЈ са нема периоде у РЈ написане
исправан начин.
Било би с.наме = РЈ, исти као што смо то првобитно рекао.
А онда можете да им приступите.
>> Дакле, ми смо их поставили.
Ми смо их ажурира.
Такође можете да их приступити на веома сличан начин.
Дакле овде, ја штампање РЈ Да ли је 21 година.
И ја сам приступ те вредности са с.наме и с.аге.
Дакле, то је приступ Структуре са дот нотацији.
Да, питање?
>> ПУБЛИКА: Да ли постоји разлог за претходни слајд да нисте ставили
Студент у првом реду, као типедеф струцт студент и онда
Студент на крају?
>> РЈ Акуино: Дакле, питање је, на ово слајд, ми смо обично видели
типедеф струцт чвор, а затим поља у струцт и
онда реч чвор.
И како то да овде нисам рекао, типедеф струцт студент и онда
поља у струцт студент и онда?
Разлог је у томе што ми не треба да се приступ је унутар Струцт.
Дакле, то је у реду да га остави без имена.
Ја само могу да га оставим као анонимни струцт.
>> Разлог ми то радимо за повезане листе и ствари је унутра јер ти треба
до података струцт чворишта звезду.
Дакле струцт мора да има име, тако да можете да му приступите касније.
То је мањи детаљ.
Али ћете обично видети типедеф струцт цурли протеза ако вам не треба
име и типедеф струцт неки назив следи заграда ако хоћете
Треба ми име.
Дакле, то је добро питање.
>> И на тој тачки, склони смо да модификује Структуре и пролазе око Структуре од
референце, не по вредности.
Дакле, само ћемо проћи око показиваче на Структуре уместо пролази око
Структуре себе.
Дакле, ви врло често ће бити користећи, у овом случају, студент * или
струцт чвор * или * чвор уместо од студената или чворова.
Дакле овде, ја сам рекао, у реду, променљива ПТР ће бити адреса с.
То ће бити показивач студенту РЈ
>> Дакле, можемо да добијемо у тим областима Исто као што смо добили ништа.
Прво, ИД референце показивач да се струцт.
То је * ПТР и онда тачка и онда старост.
Тако да приступите поље, а ја сам ажурира То је сада на 22, јер, да
рецимо, био ми је рођендан.
Постоји пречица синтакса користећи ту стрелу.
Дакле, ПТР стрелица старост је само исто као * птр.аге.
Дакле, то је нешто што ћете морати да памтите и запамтите.
>> Користио си много у псет6, буквар псет.
Али, то је у ствари оно што се дешава на испод хаубе.
То је дереференцинг показивача а затим га приступ.
Питање?
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> РЈ Акуино: Па зашто смо користећи показивачи као Структуре уместо
Структуре себе?
Разлог ће бити ако пролази струцт на функцији, вероватно
Желим да прође око само 4 или тако бајтова који представљају показивач, као
за разлику од 30 или потенцијално 40 бајта који су ЗА.
Тако пролази нешто у функцији је лакше када ствар
је мањи у кратко.
Питање?
>> ПУБЛИКА: Можда сте поменули ово у почетку, али су ту
остали слајдови Уп Он [ИНАУДИБЛЕ]?
>> РЈ Акуино: Ови слајдови ће бити после седнице разматрање.
Ми ћемо их постављати на сајту.
Тако креће на и креће на благо брже, ми ћемо говорити о подацима
структуре.
Постоји много.
Покрили смо гомилу њих.
Ево шта треба да схвате о структури података.
>> Стварно треба схватити на висок ниво шта свака структура.
Да ли можете да објасните на енглеском језику на вашем пријатељ који није предузела како ЦС50
смо организовање наше податке и зашто ми бисмо користити нешто на овај начин?
То је ствар један.
Ствар два, разуме имплементација.
Дакле разумеју како да користе ове ствари у Ц. И ми ћемо ићи преко тога.
>> А онда би се ствар три знати покрећу пута и ограничења
различите структуре коју користите.
Па разумем зашто би користили хасх табелу уместо низа.
Разумети како брзо, у просеку, приступ хеш табелу је.
Разумети шта операције су брзо на повезана листа али спор о низовима и
обрнуто.
Тако да схвате да, ви ћете морати да разумети Велики-О нотацију само да знате
како да разговарате о овим свашта.
И ми ћемо разговарати о томе.
>> Дакле прва ствар, везана листе.
Овде је на високом нивоу слика повезаног листе.
Ми смо показали ово у класи.
Ми обично имамо 10 људи стоји на сцени.
Али, ми имамо низ чворова где сваки чвор има неку вредност и показивач
на следећем вредности.
Тако да се од једног чвора на други, ви само кажем, дај ми следећи чвор.
Имате тај чвор.
Дај ми следећи чвор.
Имате тај чвор.
Дај ми следећи чвор и тако даље док нема чвор лево.
>> Дакле, и даље говорити о је на високом нивоу.
Веома је лако да убаците ствари у повезаној листи.
Ако не стало до реда, можете само да га отпустите
одмах на почетку.
То је константа време.
Али тешко је наћи неку вредност.
Ако покушавате да питам, је седам у мојој листи?
Морате да прођете кроз сваки вредност.
Је ли ово седам?
Изнова и изнова.
И то је О (н).
Дакле, када студира за квиз, упоредите ово са низовима.
>> Да ли је то у реду?
Светла су дим.
У реду.
Када је повезан листа боље?
Када је низ боље?
Дакле, хајде да погледамо неки код.
Овде је потенцијални чвор.
То је струцт.
Има инт н, који ће бити наша вредност.
И она има струцт цвор * следећи, који је наш показивач на следећи чвор.
Дакле овде, можемо да видимо да смо се догодило да стави инт у нашој чвор.
Али, ако је ово повезано листа цхар звезде или повезана листа сплавова, ми
потпуно могао да урадим исто.
>> Запамтите у псет6, вероватно је имао повезана листа карактерис звезда или само
статичке цхар низови.
Погледајмо овде на операцију.
Зато желимо да убаците нови н у нашој повезаној листи.
Почињемо са главе показивачем који је показивач на овај чвор који има
вредности н и следећа од показивача који указује на овог чвора је вредност
н и следећа ништа, јер то је последњи чвор.
Дакле, у интересу времена, ја ћу стави све шифру на екрану.
И ми ћемо ходати кроз њу неколико линија у исто време.
>> Дакле, овде је код.
Надам се да је читљив.
Прва ствар коју урадите је ми маллоц нови чвор.
Тако да има показивач на новом чвору који не баш имати ништа сет
у њему још.
Ми проверите да бисте се уверили нови чвор није нулл.
У супротном, морамо одустати.
Дакле, што се увере да смо сада сет вредности у чвору.
Зато смо ставили нови н у нашој н поље.
И ми смо поставили следећи показивач да укаже на оригинална глава, тако да можемо
сад ставили ово чвор у нашој листи.
>> Коначно, имамо глобалну главу тачку на наш нови чвор, тако да ако смо били на
почети на челу, били бисмо на ово Нови први чвор уместо
стари први чвор.
И када ова функција излази, променљива нови чвор више не постоји,
зато што је локална функцији.
Дакле, ово је стање у свету.
Наша глобална глава указује на наш нови Први чвор, што указује на нашу
оригинални први чвор, који бодова до чвора после тога.
>> То је био уметање.
Надам се да је релативно једноставан за праћење.
Када сте у недоумици, нацртати слику.
Тако сматрам да говорим о повезане листе и гледаш
код је врло корисно не.
Док гледа слику повезан листа омогућава ми да мислим, ох, тако
Ја имам овде овај чвор.
Али ако ажурирате тај показивач, она завршава прекинута.
И ја сам заборавио где чвор иде.
И код излази.
И имате више чворова који су искључени.
И не завршавају са списак желите.
>> Дакле, ако нацртате слику и уради то корак по корак, надамо се, видећете
исправан поредак ствари у погледу ажурирање показиваче да се уверите
да листа долази заједно.
Убаци је релативно једноставан.
Компликованије један би био уметање у сортиране листе.
Компликованија функција делете и наћи, па гледа кроз листе
види да ли нешто постоји.
Можда сте то урадили у псет6 када Имам у свој хасх табеле и ти рекао,
добро, је реч јабука у мојој повезане листе?
>> Дакле, можда сте већ урадили.
Али дефинитивно, освежите памћење и покушајте да реимплемент налаз и
реимплемент избрисати за повезаној листи.
Забава страни напомена, постоји и двоструко повезане листе, где имате
показивачи који указују и напред и уназад, тако да сте могли да одете на
поред чвор и на претходни чвор.
И било је питање на прошлогодишњи квиз тог типа, говорим
о двоструко повезане листе.
>> Сада, то је структура која си релативно упознати са, јер већина
од вас вероватно их користе на псет6.
Ево један који је мало мање познато.
Као страни белешку, ја мислим да је квиз 1 је првенствено теже него квиза 0, јер
ствари радите, ви нису урадили толико.
Да би то други пут, за Куиз 0, сте написали доста Ц. И ми
питао вас о Ц.
>> За квиза 1, ми ћемо вас питати о ПХП и ЈаваСцрипт, која Вам
нису писани као много.
Ми ћемо да вас питам о Ц-кода који нисте написао онолико,
овај напредни Ц ствари.
Дакле дефинитивно, практикују ствари које смо говорио о у предавању које сте
није нужно урадити о проблему сет.
>> Говорећи о којој, ниси написао стека на проблем сет.
Али било је у предавању.
Ево на високом нивоу слика слаже да покажемо сваке године.
То је гомила каблова у Матхер трпезарија.
На високом нивоу, гомиле су прошле у, први ван структуре података.
То значи да идете да стави ствари у -
1, 3, 7, 12, 14, негативна 0.
Једна ствар коју нисам могао имати рекао је - негативан 3, 0.
Можете ставити све ове ствари унутра
И последњи сте ставили у први онај који ће изаћи.
>> Дакле, имате две операције -
пусх и поп.
Све стављање у то сам био махнувши овако су гурнути.
А онда, када сам до у до граб нешто или достигне на врху да зграби
нешто, то је поп.
Тако ћемо спровести гомиле.
И ми смо им показали у предавању користећи низове.
Али можете да их радите користећи повезане листе.
Стек је концептуални података структура, не волим
имплементација специфичних један.
>> Дакле, шта би то изгледало?
То би изгледало некако овако.
Ти би да има целобројну величину.
А ти би имати низ вредности који ми позивајући тацне, јер је то
шта је било слика за нас - инт тацне -
а онда неки максимални капацитет.
Дакле, шта би гурнути изгледа?
Па, ако имамо стек с, а затим да гура нешто на с, добили бисмо
величина с.
И то ће бити следећи отворено место нашег низа.
Дакле, ако имамо три ствари у нашој стека, онда тацне 3 ће бити следећа
отворен спот, јер 0, 1, а 2 су већ попуњена.
>> Зато смо ставили на вредност у с.траис [с.сизе], трећа тачка.
И онда ми повећате с.сизе да кажем, хеј, ми смо раније имали три ствари.
Сада, имамо четири.
Дакле, следећи пут када притиснете, ти си ће ставити нешто у 4.
Или следећи пут када поп, идете да погледате 3 уместо 4 или било шта друго.
А онда ћемо се вратити на прави рецимо, хеј, успели смо.
То је радио.
Као правило палца, уколико је то функција требало да се врате тачно или
лажно се увек враћа истина, можда ћете су урадили нешто погрешно.
Тако то функционише?
>> Па, то ради добро за 1, и 2, и 3, и 4, и пет.
Али рецимо да сам до свог капацитета.
Ја тада нисам налетео на проблем, јер ако величина је исто као капацитета, сам
сада покушава да стави нешто у низ где немам простора.
Тако кратак чек да поправи ово.
Ако с.сизе == КАПАЦИТЕТ, ретурн.
У супротном, иди и уради оно што смо урадили.
Дакле, шта је друго могла да питам око за гомиле?
Шта још треба да студирате?
Шта још треба да вежбате?
>> Па, спровођење поп.
Ми смо већ урадили воки.
Ја ћу то да средим.
Имплементација не-арраи, где користите повезану листу, можда.
Не-инт имплементација.
Урадили смо Интс овде.
Али могло је плута.
Могао сам бити ниске.
Могло је да буде Чар звезде.
Погледајте протеклих квизове за врсте питања питали смо о димњацима.
>> Ја ћу рећи да смо покривени гомиле око Исто као што смо их покривене у
године прошлост.
Дакле, квиз питања треба бити добар показатељ.
Кретање напред чак и брже, редове.
Они су као гомиле.
Али они су први у, први напоље.
Ако сте Британац, реч ред Вероватно је много смисла за вас.
У супротном, можда ћете имати чуо за њега као линија.
Они раде као линије у Аппле продавници.
Прва особа која се појави у 3:00 ујутру је први
лице да купи свој иПад.
>> Дакле, имамо две операције -
енкуеуе и декуеуе.
Енкуеуе ставља некога у линији.
Декуеуе вуче први Особа ван линије.
Опет, можемо имплементирати ово са низом.
Дакле, шта је струцт ми показао у предавању?
Био је ово један.
Опет, бројеви.
Опет, величина и ова нова ствар напред.
Зашто постоји нешто што се зове предња?
То је индекс следећа елемент декуеуе.
То је само интерно праћење Први момак појави, тако да смо
могу га извадити кад треба да.
>> Дефинитивно погледајте белешке са предавања и покушајте да спроведе енкуеуе и декуеуе
када студира за квиз.
Важне ствари за размишљање.
Паковање око ако предњи плус величина завршава већи од капацитета.
Опет, ако је ваш структура је пуна, ћеш имати проблема.
Хасх табеле које сте раније видели.
Већина вас вероватно реализован ово на псет6.
То је структура која тежи за О (1) уметање константа време и О (1)
константа време за проналажење.
>> У ЦС50, реализовали смо ово као низ повезаних листи.
Кључна компонента у хеш табели је хасх функција.
Тако да конвертује унос, рецимо, речник реч, у великом броју,
који ће бити наш индекс.
И ми ћемо користити тај индекс у нашем низу.
Дакле, овде је сладак мали слика из студи.50.нет.
Бацамо све речи у наш хасх функција.
И хасх функција нам говори где да ставим ове речи.
>> То је све сјајно у земљи у којој постоји само једна реч за сваки слот.
Али, као што се сећате из псет6, тамо више речи него слотове.
Дакле, шта се дешава када добити судар?
Уместо чувања једну вредност у, рецимо, хасх табеле 3, ти
складиштите повезану листу.
И тако уместо да диња овде, ти би повезану листу,
где је први чвор је диња.
И следећи чвор је мачка.
И трећи чвор је судар, хајде да кажу, јер све ове речи старт
са Ц.
>> Дакле, већина вас ово урадио за псет6.
Ако нисте урадите тараба сто на псет6 и покушао си нешто као
трие, дефинитивно прегледајте хеш табеле.
Ако то урадио на псет6, дефинитивно прегледати хасх табеле.
А ако сте то урадили на псет6 и није се разрадити сасвим у праву и ти
имао пуно проблема са њим, дефинитивно прегледати хасх табеле.
Дакле, заиста је дефинитивно лекција прегледати хасх табеле.
>> Огромна мањина од вас покушао се покушава на псет6.
Висок ниво слику.
То је нешто овако, где сваки чвор има скуп деце, где сваки
Дете одговара писму.
И сваки чвор такође каже, хеј, ја сам реч.
Дакле, у овом случају, реч Максвел, ако пратите М на А до
Кс-Ш-Е-Л-Л и затим га следите један више.
А ти се овај симбол, Делта, која ми значити да значи да је ово реч.
Дакле, Максвел је реч.
Ови делтас су током означавања које ствари су речи и који
ствари нису.
>> Дакле у псет6, подаци чувају се уз било који од наших чворова била "Ја сам
реч. "И ствар у вези покушаја кул се они показују и убацивање
Лоокуп у О (дужина речи).
Дакле, само да се кроз Маквелл, то је М-А-Кс-В-Е-Л-Л. Дакле, седам или осам -
Ја не могу да рачунам -
кораци да се до краја и проверите ствари.
Тако брзо спровођење овде.
Роб је отишао кроз повезан навести у својој смрти.
Дакле, проверите да ли се.
Извините.
Прошла кроз трие у његовој смрти.
Дакле, проверите да ли се.
>> Али у основи имати сваки чвор има 27 показивачи на следећи чворова и један
Боолеан јер сам реч.
Погледајте Роб је посмртно за колико ово заправо се реализује.
Наш коначни структура, наши дрвеће и бинарне претраге дрвеће.
Дакле, гледајући у њих, они су покривени недавно недеља 8., у понедељак.
Дрво је сличан трие, осим тебе не морају имати 27 чворова на
свака тачка.
А ви немате ове податке на сваки корак који означава да ли -
путања није битно.
Док трие, пут од врха до дно, Максвел, била је важна за нас.
>> Али сваки чвор има више деца, можда.
Имамо још мало вокабулар.
Корен стабла је на самом врху.
А ми кажемо да врло Најнижи чворови који имају не
деца су листови.
Дакле, као трие, дрво је структура чворова.
Чест тип дрвета који идемо да разговарају о је бинарна стабла, где
сваки чвор нема децу или једно дете или двоје деце.
Дакле, ова слика овде није бинарни дрво, јер
чвор 3 има троје деце.
>> Али, ако смо били да игнорише оне, остатак од ње је бинарно стабло, јер је
показује особину да сваки чвор има нула, један или двоје деце.
Дакле, како можемо изразити ово у коду?
Могли би имати чвор где сваки чвор има цео унутар њега, као и
као показивач на дрвету са леве и показивач на дрво на
право, па су двоје деце.
Колико је ово корисно?
Па, ако правимо правила о томе где смо пут чворове, можемо направити претрагу за брже.
>> Дакле, ту је концепт бинарног претраживања дрво, где су сви чворови на
лево подстабло имају мању вредност од чвора гледамо.
И сви чворови на десној подстаблу имају већу вредност
од корена чвора.
Сада, то изгледа као много речи.
Ја ћу да га ставим унутра на дупли цитати и да вам покажем слику.
Дакле, овде је пример бинарни претраживање дрво.
Видите да почнемо са 10..
Све са леве стране 10 је мањи од њега.
И све десно је већи од њега.
>> Али више од тога, сваки чвор у дрво изражава ову особину.
Дакле, чвор 7 има 3 до лево и 9 на десно.
Дакле, сви они су мањи од 10.
Али гледајући само оне, има 7 3. да његова лева и 9 на његово право.
И слично на десној, 15 има 14 да његова лева и 50 до њено право.
Дакле, три чворови тамо, 15, 14, и 50, такође су важећи бинарно стабло
или важећи бинарни претраживање дрво.
И сви су већи од 10.
Дакле, они могу да буду на тамо.
Да ли постоји питање?
>> ПУБЛИКА: Како се носите када имате две седмице?
>> РЈ Акуино: Да.
Како се носите са две вредности који су исти?
Неки бинарне претраге дрвеће рећи да вам игноришу дупликате, јер је циљ
само да кажем, ја сам видео ове ствари до сада.
Неки бинарне претраге дрвеће могло би се рећи имају тачку унутар чвора.
Други би рекли да је све у лево је мања од или једнака.
И све десно је већа од.
>> То само зависи од тога шта Проблем је да сте решавање.
Дакле, у речнику, на пример, можете не би стало дупликата.
Ти би их избацити.
Али неки други проблем можда стало.
>> ПУБЛИКА: Да ли је могуће да има 1. лево од 15, који
је мање од 10?
>> РЈ АКУИНО: Не
Ако овде 14 су 1, ово би не буде важећи бинарни претраживање дрво,
јер све десно од 10 мора да буде већи од њега.
И ми ћемо видети зашто.
Ако у земљи потрази мој циљ је да пронађе 14, ја почети у корену.
Тако гледам.
У реду.
Идемо да почне у корену.
Погледајте 10.
>> Па, 14, наш циљ, је већи од 10.
Дакле, то мора бити на десној страни.
Ово је веома сличан цео телефон Књига ствар коју смо урадили, бинарне
тражи тамо.
Али уместо бинарног претраживања у низу, ми смо бинарни
тражи у овом дрвету.
Дакле, ми смо још увек у потрази за 14 година.
Па, 14 је мања од 15 година.
Дакле, ако је то у нашем дрвету, она мора бити у овој области овде.
Она мора да буде на десној страни 10 и лево од 15 година.
>> И тако смо проверили ову чвор.
И иаи, ми смо пронашли 14.
Нећу да хода кроз њу.
Али ево код.
То је заправо релативно једноставан,
јер ово је рекурзивна.
Шта смо могли да питате да урадите на квиз?
Могли би да вас питам да напишете овај код.
Могли би да вас замолим да погледате овај код и измените овај код и објаснити шта
то ради.
Да.
Питање?
>> ПУБЛИКА: Да ли су ови слајдови ће бити на располагању као што су били последњи пут?
>> РЈ Акуино: Да.
Дакле, ови слајдови ће дефинитивно бити објављени.
>> ПУБЛИКА: Они уствари постед одмах на сајту.
Дејвид управо то урадио.
>> РЈ Акуино: Плочице су одмах на сајту.
Вероватно ћу изгладе пар су грешке у куцању сам приметио и поправити их.
Али ту је струја верзија на сајту.
Други ствари можемо да вас замолим да уради -
писати уметак.
Напишите итеративан верзију рекурзивни функција само смо вам показали
или говорити о овим стварима, као што су у ставови, у речима, у реченицама.
Упоређујући пролаза пута и објашњавање оно што би желели да користе бинарни
претрага дрво за уместо хасх табелу, на пример.
>> Дакле, разумем те структуре на прилично дубоком нивоу.
Разумети како да их пишу, како да користе их, како да говоре о њима.
И ви ћете бити све спремно.
Питање?
>> ПУБЛИКА: Када пишеш бинарни претраживање дрво, како радите
одредити шта вредност чине га као роот?
>> РЈ Акуино: Дакле, питање је било, шта вредност правите као роот?
У зависности од вашег кода, ви може имати глобални корен.
Дакле, можда сте вероватно имали у псет6 глобални хасх табела.
Или можда проћи корен у као аргумент.
Дакле, у овом претрагу функција овде узима аргумент чвор *.
И тако шта год чвор вам се деси да буде гледајући је један ти лечењу
као роот када га прође унутра
И ја сам све комплет.
То су моји слајдови.
Следећа особа може доћи свап у лаптоп и микрофон.
>> РОБ БОВДЕН: Мислим да можда различито тумаче то питање.
Али ја то протумачио као, ако имате бројеви 1, 2, 3, и како ми радимо
Знам да 2 корен за разлику од 1 или 3?
Ако правимо 2 корена, онда лепо је 1 и 3 на лево и десно.
Али, ако је 1 корен, онда је 1 до врх, 2 право, 3 са десне стране.
Дакле по дефаулту, ви не знате шта да се корен.
И за једног алгоритма очекујемо да дај ти, само ти прво ствар
инсерт би корен.
Или ћемо вам дати бинарни дрво које већ постоји да има корен.
Али други алгоритми постоји таква да корен ће ажурирати, тако да ако вам
завршити у ситуацији у којој је 1, 2, 3, то би аутоматски ажурира на
чине 2 новом корена, тако да то је још увек лепо избалансиране.
>> АНГЕЛА ЛИ: Кул.
Хеј, момци.
Ја сам Анђела.
И ја ћу да завршим нашу Ц а затим отићи у неки од наших веб
технологије -
ХТТП, ХТМЛ, и ЦСС.
Дакле, прва ствар је бафер преливне напада.
Па хајде да погледамо овај код.
То је прилично једноставно.
Постоји функција ФОО.
И то не врати ништа.
Али је потребно у показивачем у низу зове трака.
>> И то ће да се изјасне ово пуфер, што је лик
низ који има 12 слота.
И то користи мемцпи, која је само функција која копира из једне адресу
у други.
Дакле, ово покушава да копира у наша бафер од год
трака указује на.
Дакле, било који идеја шта није у реду са овим кодом?
>> ПУБЛИКА: Ако бар је дуже од Ц, они ће преписати.
>> АНГЕЛА ЛИ: Да, тачно.
Ми немамо гаранцију да бара ће бити мање од 12 година.
Управо смо направили неки произвољан број 12.
И ми смо били као, хајде да се надамо да наш кориснички унос је мањи од
12 знакова.
Дакле, у идеалном свету, ако је наш улаз је увек како се очекује, онда ћемо добити
нешто као, здраво.
То је мање од 12 знакова.
Она добија прочитао у цхар ц.
А онда ми урадимо нешто са њим.
То није битно.
>> Али злонамерни човек може да уради нешто више овако, где су
дајте нам све што трака указује на, то ће указати на овом огромном низу
од само је.
И то је начин дуже од 12 година.
Дакле, то ће ићи до краја овде где повратак
адреса некада био.
Дакле, хајде да кажемо ову функцију се зове трла.
Можда трла звао неки други функција, који је позвао главни.
Дакле, када је покренут трла, потребно да зна где да се врати у.
>> Ако ФОО је позвао неке функције по имену Баз, он мора да зна да је
Морам да се вратим на баз.
И то је оно што ову адресу Овде доле нам говори.
Али, ако ми га препише са неким другим адреса, у овом случају, ово је
представљање адресу на самог почетка овог бафера, онда
шта се заправо ће се десити јесте да уместо враћања назад на баз,
који се зове наш функцију, то је само да идем на предњој овог законика.
>> А ако је то био тамо, јер злонамерни хакер ортак је дошао и
убризгава ово, онда можда овај износ од је није заправо је.
И то је заправо само код који паузе рачунар или нешто.
Дакле, да буде дефанзивна о овој врсти ствар, морате да никада претпоставити да
корисник улаз је извесна количина знакова.
На пример, када сте радили буквар, ви сте рекли да су речи
само ће бити 40 знакова дуго максимум.
И то је било добро.
>> Али, ако не, онда би морао да уверите се само да чита у 45
карактера у исто време.
У супротном, можда препишете твој бафер.
Сва питања о томе.
Да.
>> ПУБЛИКА: Молим вас да разговарате мало више о овим?
>> АНГЕЛА ЛИ: Извини.
Да.
>> ПУБЛИКА: микрофон је само за видео.
Ја ћу пробати и пројекат.
Здраво, момци.
Суп?
Идемо преко неке ствари у ЦС50 библиотека, које сте користили
све семестар, углавном добити кориснички унос.
Као што знате, ви укључите ЦС50 библиотека од само раде ЦС50.х, који
садржи све прототипове Функције које можете користити, као што су
ГетСтринг и Затамњена, и ГетФлоат, и тако даље.
А ту је и ово једна линија у ЦС50 библиотека која дефинише стринг, који
ви сви знате до сада је само знак *.
>> Али, хајде да завири у како ГетСтринг функционише.
Ово је веома скраћена верзија.
Можете подићи на ЦС50 библиотеке фајлове из, ја мислим, мануалс.ЦС50.нет.
И можете да прочитате стварна функција.
Али то покрива неке од важни делови.
Дакле, направили смо мало бафер са неким капацитетом.
А шта ми радимо је да се један знак у време од стандардног н.
То је где корисник уноси текст у конзоли.
>> И тако ћемо читати у карактер све док то није ново
линија и то није крај фајла, који је крај стандардног улаза.
И за сваки знак који смо читали у, ако је лик завршава додавање
на број знакова које смо прочитали у а то је више од нашег капацитета,
онда шта ми радимо јесте да само промените величину наше бафер тако да је двоструко дуже.
Дакле опет, то штити од бафера преливне напади, јер сте читали у
карактер на време.
А ако у било ком тренутку можете прочитати у сувише многи, само проширити свој бафер.
Можете га помножити са два.
И онда имате више простора.
>> У супротном, само додати лик у бафер.
И након што сте прочитали у свим карактера, она ће се смањити бафер
назад на нормалну величину, додати нулл терминатор, а онда се врати.
Сада, хајде да погледамо Затамњена.
Можете ли прочитати ово?
Ја могу зумирати мало.
Ја не знам како рачунари раде.
Нема везе.
Ја не могу зумирати правилно.
>> То је заиста тешко.
Жао ми је.
Хајде да погледамо ово.
Дакле, оно што ради је да Затамњена прво чита у низу од ГетСтринг, који
смо раније имплементиран.
И важан део напоменути овде је ли ово дељење да се заврши
читање је као заправо није стринг, онда ми само вратити на ИНТ_МАКС
представљају неуспех.
Зашто уместо тога вратити ИНТ_МАКС негативног 1 или 1?
Нека идеја?
>> ПУБЛИКА: [ИНАУДИБЛЕ] негативан 1 на један.
>> АНГЕЛА ЛИ: Да, тачно.
Дакле, ви сте много више вероватно да ће само желети на улаз 1 или негативном 1 када се затражи
за н-ти и шта год нтх макес.
То је огромна.
Ти вероватно неће да га користе.
Дакле, ово је као да одлуке дизајн уверите се да не случајно
врати грешку или не врате 1, који се може анализирати
као тачан одговор.
Дакле, ако линија не постоји, враћамо ИНТ-МАКС.
У супротном, ми користимо ссцанф, који је као сцанф.
Али то чита из ниске.
>> И имамо ово форматиран стринг, који је сам%% ц.
И ми се трудимо да и меч са год корисник нам је дао.
Желимо број упарених ствари да буде 1, што значи да се само
заиста желе да одговара цео број окружен можда бела
простор, можда не.
У том случају, ако сте ставили у нешто као бар, бар не одговара уопште,
јер постоји потреба да се цео број на почетку.
Дакле, никада ссцан окренуо 0..
Дакле, ви не вратите то.
>> Алтернативно, ако сте ставили у нешто као 1, 2, 3, А, Б, Ц, који одговара
и цео број, али и карактер после њега.
Тако ће се вратити ссцанф 2, који такође није идеално.
Ви не желите 1, 2, 3,, Б, Ц да буде валидан инт.
Тако да и не ради.
Али кажу да сте ставили у нешто 50.
То ће прилагодити% И, што значи она ће добити прочитати у н.
А сада, н ће садржати број 50.
А онда можете да га вратите.
>> У супротном, ти ударио Ретри.
И онда то само иде поново до добијате одговарајући улаз од корисника.
Има ли питања о томе?
>> ПУБЛИКА: Дакле, ако сте били да одштампате вредност Затамњена на [нечујан]
би било само цео број и највећа?
>> АНГЕЛА ЛИ: Да.
Дакле, ако користите Затамњена, треба претпоставити да не желите да се н-ти мак
бити валидан улаз, јер ћеш претпоставити да је то лоше.
>> ПУБЛИКА: Ако нисмо имали цхар ц и неко стави у 1, 2, 3, Сам, то би
и даље раде за 1, 2, 3?
>> АНГЕЛА ЛИ: Мислим да би радити.
Али ви не желите да 123Сам бити валидан улаз од стране корисника.
То није баш инт.
Дакле, не изгледа фер да га рашчланити као инт.
У реду.
У том случају, кренимо на интернету.
Дакле, ХТТП није језик.
ХТТП је само скуп стандарда за како шаљете ствари од клијената,
да ли је, на серверима.
То је други људи на Интернету.
>> Дакле, ХТТП је скраћеница за хипертекст Трансфер Протоцол.
То је срце и душа целе веб.
Хипертекст део само односи се на ХТМЛ.
Пренос је клијенти воле ћете послати захтеве за
сервери, који дају одговоре.
И протокол је само, како да Ви очекујете да се понашају сервера?
И како би то требало да се понашају тако да можете да унапредите ово
комуникација процес?
>> Дакле, ХТТП захтеви изгледају доста овако.
ГЕТ врста захтева.
Ви сте видели ГЕТ захтеве и ПОСТ захтева.
Та друга ствар тамо, / ја, то је само УРИ или УРЛ где сте
Желим да идем у домаћину.
Дакле, овај захтев је тражио страна, као ввв.фацебоок.цом / мене.
И то је ГЕТ захтев.
И онда то ХТТП/1.1, то је само верзија ХТТП користите.
То је готово увек 1.1.
>> А онда ту је гомила од превише других ствари.
Можете заправо видети да ли ово отвори конзолу када сте
претраживање Веба.
Одговори изгледају нешто више овако.
Горњи део је, опет, тип ХТТП користите
праћено кодом статуса.
Дакле, 200 Ок је све испало.
Овде је ваш садржај.
Ваш садржај ће пратити.
И онда ће вам рећи каква садржаја и друге ствари превише.
>> У статусни кодови, постоји неколико важне оне које би требало да знате.
200 Ок је као да је све Голден.
Све ради.
403 Форбидден.
Ово сте вероватно видели, ако сте заборавили цхмод нешто исправно.
То значи да не морате праве дозволе за
приступу које на серверу.
То је као, не, не можете га видети.
404 значи да ствар не постоји.
Није пронађено.
Вероватно сте видели да је доста.
>> 500 Интернал Сервер Еррор је обично као нешто кренуло наопако са стране
сервера.
Дакле, када сте били спровођења псет7, ако сте имали ПХП грешке, могао
заправо идите на страницу и видим Цела гомила ПХП грешке ствари.
Али то не деси нормално, јер сајтова не желим да
реци ти зашто је њихов сајт је сломљен.
Вероватно ће само вратити 500 Интерна грешка на серверу.
>> А ту је и 418 ја сам чајник.
Постоји цела прича о зашто је то ствар.
Али можете да прочитате о томе у своје слободно време.
Постоји читава гомила други статусни кодови превише.
Али то су они требало би да знате.
Дакле, хајде да причамо о ХТМЛ-у.
ХТМЛ, запамтите, није програмски језик.
То је језик за означавање.
То значи да описује садржај.
То вам говори шта ХТМЛ документа изгледа као или не како изгледа
али како је структуриран.
>> Тако да дефинише структуру и Семантика веб страница.
То је као, то је став.
Ово је листа наредио.
То је као делу мојој страници.
Ево наслова.
То се такве ствари.
То не стил ништа од тога, јер то је оно што радите у ЦСС.
И то изгледа као низ угнежђених ознаке.
Дакле, да користи пример заиста основни ХТМЛ страница, имате ДОЦТИПЕ
декларација тамо.
>> Ово ДОЦТИПЕ декларација је говорећи, ми користимо ХТМЛ5.
Онда имате велики ХТМЛ тагове.
Она садржи главу и тело.
Унутар главе, имате титулу.
То је оно што се у наслову бар вашег претраживача.
Имамо линк ознаку која повезује у спољном лист стила.
И онда имамо скрипту која вуче од спољног ЈаваСцрипт као добро.
>> А онда унутар нашег тела је заправо оно што се приказује на страници.
Имамо став и онда слика унутар тог става.
Ово је слика од мачића.
Обратите пажњу да слика ознака се затвара.
Дакле, уместо отварања са сликом а онда раде други / слику,
Само имам мале косу црту овде, који га затвара.
И слика ознака има овај тастер Вредност атрибута зове алт.
То је алтернатива текст који дешава када пређете преко њега.
>> Већина ХТМЛ елементи имају неку кључну вредност ствари које можете да га дам, разни
прилагођавање.
Да.
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> АНГЕЛА ЛИ: Па, тако да је атрибут тага.
Дакле, ако сте користили јКуери, ти би могао уради изаберите имаге.гетАттрибуте.
А онда можете да претражујете добити алт атрибут.
И то ће вам дати мачиће.
Ако се сећате форме у ХТМЛ, улаз елементи ће имати назив атрибуте.
И то је оно ПХП користи да пошаље захтеви када се подноси образац.
>> ПУБЛИКА: Да ли сте нешто поменути о томе како ако користите киттенс.јпг или
нешто што има несталих филе фасцикле или датотека?
>> АНГЕЛА ЛИ: Да.
Дакле, то је оно што се зове рођак пут, јер ја не дајем
ти пуна путања.
То је као када у Ц ако радите фопен неки фајл, ако фопен хи.ткт, да
хи.ткт се очекује да буде у истом именик, осим ако му дати више
сложен пут.
>> ПУБЛИКА: Дакле, можете да одредите који фасцикла [ИНАУДИБЛЕ]?
>> АНГЕЛА ЛИ: Да.
А можете потражити како да се то уради.
Али, ако сам хтео да се киттенс.јпг напоље од матичног директоријума, ја бих урадио
.. / Киттенс.јпг.
Да.
Извините.
Да.
О човече, заборавила сам питање.
Шта је било питање?
О, питање је било јесте, киттенс.јпг Очекује се да ће бити у истом директоријуму?
И у овом случају, то је.
Али такође можете му дати одређени пут таква да не мора да буде.
Добро?
>> ЦСС.
Дакле ЦСС, као ХТМЛ, није програмски језик.
ЦСС је само низ стилских правила.
То је скраћеница за Цасцадинг Стиле Схеетс.
А ви га користите у комбинацији са ХТМЛ стил странице.
Дакле, постоје три начина можете га укључити.
Један начин можете да урадите је да у глави део вашег ХТМЛ, можете само да
отворите стил ознаку и онда се држимо неки ЦСС правила тамо.
То је прилично добро.
Да.
>> ПУБЛИКА: Можете ли ставити оне стил ознаке у између, хајде да
рецимо, тела и / тело.
И онда би стајлинг само у телу.
>> АНГЕЛА ЛИ: Могао би.
То ће радити.
Али ти не треба, јер је стајлинг врста метаподатака који би требало да иду у
шеф вашег документа.
Тело треба стварно да садржи само шта се заправо дешава у
појавити на вашој страни.
>> ПУБЛИКА: Дакле, ти би ставио стил у глави кроз стил
цео веб страница, зар не?
>> АНГЕЛА ЛИ: Да.
Дакле, стављајући стил овде, ови ЦСС правила ће се примењивати на целе странице на основу
њихови селектори.
Дакле, бољи начин да то урадите је да уместо тога да имају стила ознаку у глави,
имате овај линк на екстерни стилу лист као што сам вам показао у
претходни пример.
Шта ово ради је да покушава и проналази филе стиле.цсс а затим га вуче
у и користи да као стилове за страницу.
А твој стиле.цсс би само да изгледа овако.
То би било гомила ЦСС.
>> И на крају, ту је још један начин да могу да укључују ЦСС, ви који заиста
не би требало да икада учинити.
То је позив редни стајлинг.
И тако сваки ХТМЛ елемент може такође узети стил атрибут.
И онда у том стилу атрибут, можете му дати ЦСС правила.
Дакле, у овом случају, шта год да сам п дефинисање овде, то ће
има црну позадину и Бела боја текста.
Али ти не треба да урадите ово, јер оно то је оно ставља свој стајлинг
у ХТМЛ-у.
>> И ја знам да смо разговарали о ХТМЛ је структура и ЦСС стил.
Ако то урадите, то меша их заједно.
И није баш чиста.
Дакле, не ради то.
Користећи пример ЦСС, тамо горе, ми смо само изаберите тело ХТМЛ
документарни.
И ми смо као, све је Биће Цомиц Санс.
Такође не препоручујемо да.
Али можете да урадите то.
>> Друго правило овде, то ће да изаберете елемент на
страна са ИД маин.
Дакле, шта год ХТМЛ елемент, рекао сам ИД = Главни, ја ћу дати да
20-пиксела маржа и ускладити све, све текст, до центра.
Последња ствар коју бира ЦСС класе.
Дакле, било који елемент на страници коју сам дао одељак класа, ја ћу то учинити
боја позадине светло плавом.
Да.
То је све што имам.
Питање?
>> ПУБЛИКА: Шта хасхтаг пре главни радим?
>> АНГЕЛА ЛИ: Питање је, шта ради хасхтаг пре главног уради?
У овом случају, у хасх ЦСС значи изаберите по ИД.
Дакле, ако сам имао неке ХТМЛ елемент, као дивид = главни, ово ЦСС правило бира
ствар са ИД маин.
И слично, рок испред секција је изаберите по ЦСС класе или
изаберите по ХТМЛ класе.
>> ПУБЛИКА: Зашто је има пре 6 у боји позадине?
>> АНГЕЛА ЛИ: Да.
Дакле, питање је, зашто је тамо хасх пре 6?
Ово је другачије од тог хашиш.
То значи да ви дајете хексадецимални боја.
Дакле хек боје, ово само представља боју.
И сећате РГБ тројке када урадио си судску медицину псет?
Ово је слично.
Прве две цифре представљају колико црвени је у боји.
Друга два представљају колико зелено.
А трећи представља колико плаво.
И хасх је ово иде да представља боју.
>> Дакле, ништа од 0, 0, 0, 0, 0, 0 до Ф, Ф, Ф, Ф, Ф, Ф је важећа.
То је нека важи боје да могу бити приказана у Вашем бровсеру.
Питање?
>> ПУБЛИКА: Која је разлика између користећи по ИД и по класи?
>> АНГЕЛА ЛИ: Питање је шта је разлика између
користећи по ИД и класи?
Можете имати само један елемент у ХТМЛ документ који има дату ИД.
Дакле, само једна ствар на мојој страни је дозвољено да имају личну маин.
Тако да га користите за то је заглавље.
Ово је навигација.
Ово је подножје.
Часови су различити, јер можете примењују наставу на онолико ХТМЛ елемената
колико желите.
>> Тако, на пример, ја јесам класе секцију, јер вероватно постоји више од једног
одељак на мојој страни.
Ви само дозвољено да имају што више елементи на страници са истом
класа али само један са одређеном ИД.
>> ПУБЛИКА: Дакле, тачка представља класа?
>> АНГЕЛА ЛИ: Да.
Тачка представља класу.
Цоол.
То је све што имам, момци.
Хвала.
>> [Апплаусе]
>> ЗАМИЛА цхан: Здраво, свима.
Ја сам Замила.
Ја ћу да се покрива ПХП, МВЦ, и СКЛ данас.
Много материјала који ћу бити покривач ће бити прилично
Право из псет7.
У реду.
Дакле, шта је ПХП?
ПХП је скраћеница за ПХП Хипертект Препроцессор.
Тако је, само по себи, је рекурзивна име, што је прилично кул.
ПХП је сервер-сиде сцриптинг језик, и она обезбеђује бацкенд
и логичке темеље на нашем сајту.
>> Дакле, Анђела говорио много о ХТМЛ и ЦСС који ће направити структуру
на сајту.
Али шта ако желите да промените да садржај динамички или ако варира
на основу корисника или одређени услови?
То је место где ПХП ступа на сцену
Сада, типично, ПХП може потрајати неколико мање линије за спровођење исту ствар
у Ц. То је зато што ПХП ручке памћење Управљање за програмера,
за разлику од нас имају за маллоц бесплатно, такве ствари.
>> Али пошто ПХП је интерпретативна језика, обично, може извршити
мало спорије него Ц, који је саставио језик.
Зато идемо програмирање језици, хајде да погледамо како
синтакса ће се разликовати.
Будимо врло опрезни да не збунити са овим.
Дакле, са ПХП синтаксе, да ли сте уградњу ПХП унутар ХТМЛ
филе или у оквиру пхп фајл. себе, ви Потребно је да ставите код на отвореном
ПХП и затворене ПХП ознаке попут следи, као на екрану.
>> Променљиве у ПХП.
Сваки променљива ће почети са $ знак следи име
Ваш променљива.
Сада, променљиве у ПХП су лабаво откуцан, што значи да не морате
да укаже шта тип података је када ти је декларисање.
Међутим, то не значи да су они немају никакве врсте на све.
Дакле, ако ја изјављујем променљиву и само сет је једнак 1, а онда ја изјављујем
други променљиви, подесити једнака "1," а затим још један 1.0, добро,
у зависности од врсте једнакости оператори ја користим, ако желим да упоредите
преко свих врста, затим они ће бити равноправни.
Али, ако желим да се уверите да врсте су једнаки, ПХП се још увек
да, иако ми не указују која врста је када смо
прво направити датотеку.
>> Сада, у ПХП-у, иако смо преласка из програмирања
језике са Ц, и даље имамо наше верни ако услов, баш овако.
Ми још увек имамо док петље, само овако, где сте ставили у свој
стање и затим тело петље.
И онда ми такође имамо за петљу, који обично изгледа овако.
Дакле, ако сам хтео да вршите итерацију кроз све девет псетс и поднесе и позовите
Функција субмитПсет, онда ја могу да урадим овде, који су момци све
урадио овом тренутку.
Честитам, успут.
>> За камеру, људи рекао је, хвала.
Сада, ако не желите да користите само ово за петље, а затим ПХП заправо такође
је ствари назвао фореацх петље.
Дакле, ако сам имао низ целих бројева, 0 до 8, чувају у низу псетс,
онда сам могао да имам петљу фореацх да понавља преко сваког броја у псетс.
И онда сам могао назвати исти функционише осам пута,
баш као што сам и раније.
Дакле, ово за сваку петљу је лепо, јер Ви не морате да ако не знате
тачна дужина низа који сте су, затим користећи ову фореацх петље
ће се побринути за то за вас.
>> Тако сам направио псетс као низ.
Погледајмо то.
Низови у ПХП су обично исти као оне које смо имали у Ц, где
можете прогласити низ.
И овде, ја могу прогласити празан низ а затим изградити динамички помоћу
индекси као целе бројеве.
Дакле индекс 0, ја ћу за складиштење цео број имену 1.
На индекса 1. мојој листи, ја идем да сачувате вредност 2.
И у трећем индексу, али други број, ја ћу да
меморишете број 12.
>> Сада, то је у реду да у ради то добро функционише.
Али кажу да је битно да се ми шта сваки индекс држи.
За мене, индекс 0 значи како многе мачке имам.
И индекс 1 значи како многе сове имам.
И следећи значи колико паса.
Па, онда је то да се прецизира да, уместо тога од потребе да се сетим 0 односи се на
мачака и 1 до сове, ја могу да користим асоцијативни низови, што значи да
уместо целих бројева као мојих индекса, Ја заправо могу да користе жице.
>> Дакле, ово је веома корисно.
И ви сте у основи само заменио су цели бројеви са жицама.
И ту имате асоцијативни низ.
Да.
>> ПУБЛИКА: Да ли постоји разлог зашто постоји доња за другу
део, јер моја листа има низ.
>> ЗАМИЛА цхан: Питање је било, јесте постоји разлог зашто постоји
наглашавају између мог и листе?
Не.
То је само колико ја именовања моја променљива.
>> ПУБЛИКА: На први линија, то је једна реч.
>> ЗАМИЛА цхан: Извињавам се.
Ја ћу то да средим.
Да.
Они треба да буду иста променљива име.
Добар улов.
У реду.
Дакле, хајде да пређемо на жицу спајање.
Да сам хтео да се две жице, онда ја могу да их цонцатенате
са оператором дот.
Дакле, ако ја имам Мило као имена Банана и као презиме, затим
спајањем са дот оператера и затим стављање простор између
ће направити низ који садржи Мило Банана, који сам тада могу ецхо или,
радије, одштампати.
>> Говорећи о еха, хајде да разговарамо о неколико користан -
упс.
Жао ми је.
Неколико корисних ПХП функције.
Дакле, ми имамо -
техничке потешкоће.
Један други.
Ја га послао.
Проблеми ПоверПоинт.
И ми смо се вратили са ПХП функција.
>> Тако смо захтевају функцију, где ако прође у фајлу, ево је само
пример датотеке која Можда прође унутра
Тада који ће укључивати ПХП код из тог фајла које сам указују.
И она ће проценити да унутра
Онда имамо и ехо, који је паралелна са принтф.
Екит је паралелно да се пробије, која излази из блока
код који сте унутра
А онда празне проверава да ли дати променљива је као нула или нула или
шта год се изједначава са што празна.
Да.
>> ПУБЛИКА: За гудачки конкатенације дот оператор један, у ПХП, је да
исто као у ЈаваСцрипту где је коришћењем тачка за спајање значи плус?
Дакле, за пуно име и презиме, могли сте долар потпише први + + и онда траје?
>> ЗАМИЛА цхан: Да.
Дакле, питање је да ли у ПХП ми Можете користити исту стринг Спајање
као у ЈаваСцрипт са плусевима.
И Јосиф ће ући у то касније.
Мислим да он има слајд на који.
Заправо, то је другачије.
Дакле, у ЈаваСцрипт, морате да користите плус за цонцатенате конце.
И у ПХП-у, морате да користите оператор дот.
Дакле, они су другачији.
>> У реду.
Дакле, сада када смо покривени сви Ова ПХП, где му ради
стварно доћи?
Па, она долази у руци када смо да га комбиновати са нашим ХТМЛ.
Дакле, наш ПХП ће нам дати снагу да алтер странице на ХТМЛ садржај пре
његово оптерећење.
Дакле, на основу различитих услова, обично специфични корисник то је
пријављени, можемо приказати различите информације.
Линда, да ли имате неко питање?
>> ПУБЛИКА: Можете ли цонцатенате цео број такође?
>> ЗАМИЛА цхан: Да, можеш.
Дакле, питање је да ли можете цонцатенате цели бројеви или други
вариабле.с сада, идемо на МВЦ, који је парадигма која се користи у
псет7 и много веб дизајнера користи за организовање код у датотекама
у њиховом сајту.
М је скраћеница за модел.
И у суштини, модел фајлови ће се бавити са интеракције са базом података.
Погледај фајлова, они се односе на естетика на сајту.
И контролера ручке корисничких захтева, анализира
подаци, чини другу логику.
>> У псет7, у комбинацији смо модел и контролер.
И ми смо их само звали контролери и стави их у јавном директоријуму.
А виев фајлови, ми их користимо као шаблони у темплате директоријума.
Дакле, овај дијаграм овде такође представља да иста врста поделе са
модел и контролер у љубичасто овде на левој и
поглед на десно.
Дакле, ово је шематски да неки од вас Можда сте видели на радног времена или
дијаграми који смо за цртање као ти су схватите вашу псет.
>> Дакле, овде, у датом контролеру, модел контролер, имамо функције
који се односе на упит на СКЛ база података, извршавање ПХП логику.
Можда ће изгледати горе залиха у Иахоо!
Финансије.
Или можда, само да провери да види да ли корисник је поднео
формирају већ пре него што посетио страницу.
А онда би рендер формирају овде.
Након тога форма је поднет од стране корисника, акција која је
наведено у обрасца ХТМЛ таг указује на страницу која је
враћа да подаци на.
>> Дакле, све те информације ће бити послао назад у свој контролер.
Онда вероватно би то мало више логика на то и можда извршити неколико
више упита у СКЛ бази података и онда, коначно, доћи до лепо
паковане скуп информација које би пролазе у у неки други шаблон
који приказује ту информацију.
Сада, како ми у ствари пакет та информација се?
Па, имамо функцију под називом Рендер да је био у фунцтионс.пхп фајл у
псет7, где сте проћи у име датотеке, име предлошка.
>> А онда сте такође проћи у асоцијативни низ.
И тако да представља асоцијативни низ различите информације
који желите да прође унутра
Сада, шта ће бити константа у ови примери је да су тастери или,
радије, кључеви асоцијативног низови, они су оно што ће бити
Очекује се да се константном шаблон, јер зна да је потребно
нешто што се зове порука или се зове име.
А онда су се ствари на десно, стварне вредности, тако да у овом случају, који је
добар дечко и Мила, они ће да су вредности које се мењају
да контролер мења сваки пут или на основу одређеним условима и
ће проћи да унутра
>> Дакле, овде у шаблоне, видимо да смо користите ХТМЛ специјалне карактере,
који само у основи значи да желимо да се вршњачког ниску која
корисник стави унутра
И ми желимо да се замени порука у тамо.
Па онда када смо заправо видели фајл, специфична
информација је прошао унутра
Имајте на уму да је кључ како рендер радова је да су тастери асоцијативног
низови, они постају променљива имена овде.
И тако су вредности тог тастера на асоцијативни низ тада постаје
вредност променљиве.
>> Сада, хајде да пређемо на СКЛ.
То је скраћеница за Структурно Куери Лангуаге.
И тако да је ово само програмирање језик дизајниран
за управљање базама података.
И кад у руци за нас у наш сајт псет7 финансије.
У суштини, то је само једноставан начин да се пратите објекте и табеле и управљање
и повезати их међусобно.
Сада, замислите свој СКЛ базе података основи као Екцел датотеку, можда,
са више листова са картицама.
>> Дакле, можете имати више табела, можда, да везане једна за другу.
И слично као Екцел, имамо доста функционалност која желимо.
На пример, можемо изабрати одређене редове.
Можемо уметнути информацију.
Можемо ажурирати редове.
И ми такође може избрисати ствари.
>> СКЛ изабрати радове избором редове или ред наведених колона из
база података која одговара одређени Критеријуми које указују.
Дакле, овде кад видим изаберите * од чаробњаци где кућа = Равенцлав, затим
Ја избору *, што значи да сам избор сваки колону у томе
ред из табеле чаробњака, али само ако колона кућа једнако Равенцлав.
Сада, ово је чиста или СКЛ.
Дакле, ако сам отишао у пхпМиАдмин, који је специфичан начин на који користимо за управљање
наши СКЛ базе података, онда бих могао убацити да у сајту пхпМиАдмин.
И то би извршити.
>> Али ми заправо желимо да урадимо то на ПХП страни.
Па како то да урадимо?
Па, ми користимо упита функцију која у основи то извршава СКЛ упита.
Користећи?
као чувар места, можемо проћи у одређени Вредности нашег стринг који смо
желите да замените.
Дакле, можда сам складиштење другачији вредности у цурр_хоусе, који
представља тренутну кућу да идем преко.
Тако да може да прође да се као чувар места са знаком питања.
А онда сам у суштини ћу извршити Исто као што сам урадио раније, осим
сада, ја сам у ПХП.
>> И упита ће се вратити асоцијативни низ.
И ја ћу да га сачувате у редовима.
Сада, упита се увек успети.
Можда СКЛ упит није могао да изврши зато сто не постоји.
Или можда, колона није постојао.
Нешто је пошло наопако.
Па, у том случају, ви ћете желети да Проверите да ли сте проверили да ли
упита вратио лажна.
И то је помоћу троструко једнак рад тамо.
>> И онда ја се извињавам, што је још један ЦС50 функција, пролазећи у поруци.
А ако се осврнемо на извињење, све што је заиста је рендер апологи.пхп.
Да.
>> ПУБЛИКА: Можете ли објаснити шта то звезда ради између изаберите и из?
>> ЗАМИЛА цхан: Да, апсолутно.
Дакле, звезда између изаберите и од значи да желим да изаберете цео
Цео ред из мог стола.
Могао сам указао изаберите име, године, кућу.
И ја бих само да те три колоне у мојим столом.
Али, ако ја кажем изаберите *, онда ћу добити све у тој колони.
Онда ћу да вам ићи позади прво.
>> ПУБЛИКА: Дакле, ово је још увек у СКЛ, зар не?
Да ли је ово питање или је то ПХП?
>> ЗАМИЛА цхан: Ми смо у упиту.
Дакле, ово је у ПХП.
Дакле, помоћу ПХП функција упит, смо извршавања СКЛ упита.
>> ПУБЛИКА: Да ли је било шта у СКЛ велика и мала слова, као изаберите
или чаробњаци или кућа?
>> ЗАМИЛА ЦХАН: Да ли ишта у СКЛ велика и мала слова?
Мислим да је тако, да.
Верујем да изаберете и ИЗ и где су велика и мала слова.
Не?
>> РОБ БОВДЕН: Па, то је супротно.
Имена колоне и средства табеле, сви они су мала и велика слова.
Али неки од кључних речи МиСКЛ, као СЕЛЕЦТ, ФРОМ и ВХЕРЕ, оне нису
велика и мала слова.
У реду.
Дакле, супротно од онога што сам рекао.
Дакле, све МиСКЛ кључних речи -
изаберите, из, где - они нису велика и мала слова.
Али све остало је.
У реду.
Ти у предњем.
>> ПУБЛИКА: Ако сам $ редове у смислу више од један ред, да ли то значи је
само постаје асоцијативни низ?
>> ЗАМИЛА цхан: Дакле, питање је било да ли редови има више од једног реда у њој, не
она постати асоцијативни низ?
Дакле, то је низ асоцијативног низови већ.
Дакле, чак и ако постоји само један ред вратио, онда бисте морали да иду у
индекс 0 од тог резултата.
А онда ћеш имати тај први ред.
Да, Белинда?
>> ПУБЛИКА: Када користите ===, је ово једини случај?
Или су тамо остали?
>> ЗАМИЛА цхан: Дакле, у овом случају, === је поређење преко типова.
Извините. === Је поређење који пореди типове.
А онда == пореди преко свих врста.
>> ПУБЛИКА: Можете ли објаснити шта редови је у овој ситуацији?
Да ли је то ред података?
>> ЗАМИЛА цхан: У следећем слајду, ја сам ће да објасни шта је редове.
Дакле, ако вам не смета холдинг офф на то.
А онда сте у леђа?
>> ПУБЛИКА: За функције попут упит, рендер и извињавамо [ИНАУДИБЛЕ]?
>> ЗАМИЛА цхан: Питање је било да ли ове функције - упита, извињавам се,
и рендер -
су заједнички преко ПХП.
То су оне које ЦС50 написао за псет7.
И Џеј?
>> ПУБЛИКА: Када треба да кажете $ _СЕССИОН, Да је само за личне карте?
Или сте могли да је рекао да је овде?
>> ЗАМИЛА цхан: Дакле, питање је, када користимо $ _СЕССИОН, то је специфична
глобална променљива да користимо.
Ево ова варијабла ће бити локална нашој функцији.
Дакле, ми смо само декларисање нова променљива.
>> ПУБЛИКА: Како се извињавам имплементиран?
>> ЗАМИЛА цхан: Питање је било, како се извиним спроводи?
И ја мислим да је ово у ствари прилично Добра пракса за вас да иде у
секција фунцтионс.пхп и погледате Извињавамо се и видим како си могла
уради то сам.
Тако могу оставити да вама, али само кажу да ако погледате извињавам,
онда је потребно поруку коју доставља се извини, а онда је
чини ту поруку.
Има ли још питања?
Волим питања.
Дакле, чувајте их долазе.
>> ПУБЛИКА: [ИНАУДИБЛЕ]
ецхо или штампа тамо?
>> ЗАМИЛА цхан: Питање је било, можемо не само ставили
ецхо или штампање тамо.
Дакле, да би нешто урадили мало другачије.
То би штампани упит није успео да у -
добро, сада, ми смо заправо у нашем контролер.
Дакле, ми у ствари не морају ХТМЛ поставити овде.
Апологизе пружањем апологизе.пхп заправо вас преусмерава на апологи.пхп.
У реду.
>> Па сад, идемо даље да се бави Питање из раније о томе шта
стварно је редова.
Па, упит ће вратити низ редова.
И сваки ред је представљена по асоцијативним низа.
Дакле, ако сам мало погубљен СКЛ упита и Ја сам чувају резултат у редовима, а затим
користећи фореацх петље, онда низ назив је први тамо - редови.
А онда ћу да зовем сваки ред у реду тамо $.
>> Тако итератинг преко које, ја онда могу приступите име колоне у дат ред је,
године колона, колона и кућа.
Имајте на уму да ја не бих био у стању да урадите са редовима, јер редова индекс
име не постоји.
Редови је само низ асоцијативни низови.
Дакле, имате два нивоа тамо.
Када имате низ редова, морате да се у то.
А онда можете да приступите колоне.
Да ли да буде јасно?
Да, испред?
>> ПУБЛИКА: [ИНАУДИБЛЕ] отворите заграде за [ИНАУДИБЛЕ]?
>> ЗАМИЛА цхан: Молим?
>> ПУБЛИКА: Отворена заграда.
>> ЗАМИЛА цхан: Ово овде?
То ми дозволили да се укључи то променљива.
Да.
>> ПУБЛИКА: Када штампате, ви сте штампање у ХТМЛ код?
>> ЗАМИЛА цхан: Да.
Када сам одштампате, ово овде је унутра мој шаблон сада, тако
мој поглед на МВЦ метода.
Тако сам штампарије у ХТМЛ.
>> ПУБЛИКА: Дакле, ако смо отишли ​​у програмера алати после покретања ове, можемо
да заправо у коду?
>> ЗАМИЛА цхан: То је велика питање, да.
Дакле, ако сте отишли ​​у Девелопер Тоолс у Фирефок помоћу Фиребуг или
Хром, онда да, ти би могао види конкретан ХТМЛ.
Тако да не би показала $ ров ["Наме"].
То ће показати шта год име је у том реду.
>> ПУБЛИКА: Само општи проблем, шта се тр и тд дефинисана као?
Зашто би ми [ИНАУДИБЛЕ]?
>> ЗАМИЛА цхан: Табела ред тр, сто онда тд колону.
У реду.
>> ПУБЛИКА: Да, то је података табеле.
>> ЗАМИЛА цхан: Табела података.
Да.
>> ПУБЛИКА: То је ред у коме ред се третира као колона?
>> ЗАМИЛА цхан: Извини.
Можете ли то поновити?
>> ПУБЛИКА: Како ти би визуализовати редове?
>> ЗАМИЛА цхан: Како би сте визуализује редови у какав начин?
Да ли говорите о овим редови овде или редови Тр?
>> ПУБЛИКА: Редови.
>> ЗАМИЛА цхан: Ови редови овде?
Ја бих ово као визуализовати Ја извршава свој упит.
И она каже, у реду, ја имам или 0 до н износ од редова који се подударају са критеријумима
да ли је питао.
Дакле, имам неки број редова.
Дакле редовима, су $ редови, продавнице сваки једна од оних редова у низу.
Дакле, чак и ако је то само један од њих, то је још низ редова који га одговарају.
>> Тако, на пример, ово је као кад учитани
кеш од корисника.
И критеријуми било где ИД једнака ИД сесије.
Постоји заиста само један ред који би могао да одговара.
Али и даље редови управо вратио један ред.
Тако да би морао да оде у редове, индекс 0, индекс кеш на
заправо добити на ваш цацхе.
>> ПУБЛИКА: Да ли је функција за штампање у ецхо исту ствар?
>> ЗАМИЛА цхан: Да.
Да.
Штампање одјек истог.
>> ПУБЛИКА: Да ли фореацх петља Једини начин да се индексу у редове?
>> ЗАМИЛА цхан: Да ли фореацх петља једини начин да можете
поновити кроз редове?
Не.
Такође можете да користите за петљу, под условом да знате дужину
од низа реда екипе.
>> ПУБЛИКА: Можете ли да приступите користећи ред као [ИНАУДИБЛЕ]?
>> ЗАМИЛА цхан: Па не можете да приступите само помоћу реда ако немате
фореацх петља под условом да нисте прогласили ред.
Да.
Да, у бело.
>> ПУБЛИКА: Па шта тр и тд радим?
>> ЗАМИЛА цхан: Па тр и тд су ХТМЛ тагови.
тр означава почетак од реда табеле.
И сваки див означава Нова табела колона података.
>> ПУБЛИКА: За визуелни онога ред је као, само замислите СКЛ, како
имају ред.
[ИНАУДИБЛЕ].
>> ЗАМИЛА цхан: Да.
То је велика ствар.
Можете да замислите како само редове као у Екцел табели, само
списак редова.
У реду.
Дакле, сада када смо отишли ​​преко изаберите, ако Не постоје више питања, ми ћемо
иди на улошком.
Дакле, ако сам хтео да убаците у неки табела и убаците одређену колону
вредности, сам могао да се убаци у Равенцлав у 7 години.
Али понекад можда постоји дупликат вредности, као што смо видели у псет7 када смо
су ажурирање наш портфолио.
>> Дакле, у овом случају, желимо да користимо НА Дуплирани кључ УПДАТЕ, тако да ми не
складишти више редова са истом вреднују већ ажурирање.
Онда смо заправо имају упдате, који није убаци.
То је само исправка где сте ажурирате у одређеном табели са дата
критеријума и потом, коначно, брисати, који ради веома сличну ствар.
>> ПУБЛИКА: Можете ли укратко ићи преко дупликата кључа?
>> ЗАМИЛА цхан: Да.
У суштини овде, ја имам убаците у гринготтс, је, галија, ове вредности.
Али ИД, вероватно, је јединствен кључ Вредност подесите у МиСКЛ табели.
Дакле, ако сам већ да ИД поставили, онда ја не могу убацити нови ред.
Дакле, ако већ не постоји, онда морам да га ажурирате.
У средини у белом.
>> ПУБЛИКА: Па убаците, ажурирање, брисање, и изаберите, они су сви доступни
локално [ИНАУДИБЛЕ]?
>> ЗАМИЛА цхан: Па убаците, ажурирање, брисање, и
изаберите све су СКЛ упити.
Дакле, кад год користите СКЛ, ћете имати на располагању онима.
>> ПУБЛИКА: Назад на протеклих квизове -
било је питање које се бавила ако сте имали сто и хтео да
убаците тестова у једној и убаците твоје име, тако да вас неће пустити
[ИНАУДИБЛЕ] теста твог пријатеља.
Како би то урадио са уметком?
>> ЗАМИЛА цхан: Дакле, питање је било у вези са претходни средњорочни питање.
Ја не знам од чега један је сада.
Дакле, можда после тога, ако желите да дошао и покажи ми, онда могу
сигурно вам дати савете.
Али говорећи убацивања ствари, као што су узимајући нечији резултат када сте
не би требало да, хајде да разговарамо о СКЛ Ињецтион напада.
Дакле, напад СКЛ ињецтион је у суштини где неко узима
предност ниске безбедности начин да узимате у подацима.
>> Дакле овде, баш као у ЦС50 финансија, када смо пријављени, можемо ући у
усернаме у форми за пријаву, текст кутија прво, и
затим унесите лозинку у.
Можда наш ПХП код може изгледати нешто овако, где $ усернаме
је корисничко име после подаци и лозинку је после података лозинком.
И онда смо само изврши наш упит, рецимо, У реду, добро, наш упит ће
изаберите из наших корисника, где корисничко име
онај који су поднети.
А лозинка је лозинка, што значи да су лозинке поклапају.
>> Сада, шта ако уместо заправо подношење стварну лозинку, као
12345 и погађање на Пронг да каже лозинком и покушава да пијук своје
рачун, шта ако уместо тога они поднети ово.
Они су могли да куцате у можда претпоставка на лозинку.
А онда би завршили цитат затим укуцајте или 1 = 1.
То би директно темпо у СКЛ упита да изгледа отприлике овако.
Изаберите неку од корисника где корисничко име = крака и лозинку
једнака или љиљан 1 = 1.
>> Дакле, било је лозинка да буде исправан или 1 = 1,
која је увек истина.
Дакле, у овом случају, у основи, корисник може искористе ово и само се пријавите
сами у и пијук нечији рачун.
Зато желимо да избегнемо неко има да се то уради.
Али срећом, упит функција по пролази плејсхолдере ће
брига за то за вас.
Такође, обично ћете желети никада да заправо достави лозинке
сами.
Зато смо хеширају или кодиран их у ЦС50 финансија.
>> ПУБЛИКА: прошлост квиз говорио око МиСКЛ есцапе жице.
Да ли морамо да бринемо о томе?
>> ЗАМИЛА цхан: То је добро питање.
МиСКЛ есцапе жице је дефинитивно функција која је коришћена у нашем упиту.
Али дефинитивно погледати у то.
Ја бих рекао да је то фер игра да знам да ћеш морати да позовете да
функционише на жицу.
Да, Белинда?
>> ПУБЛИКА: Како знаш када је једноструке наводнике или двоструки наводници?
И такође, осећам се као у предавању сте поменуо нешто о немају
[ИНАУДИБЛЕ] или нешто, или Други апостроф на крају.
Мислим да је он истакао у предавању које ти би требало да има апостроф 1
а онда немају апострофе или нешто.
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> ПУБЛИКА: ствар је последњи сингл цитат тамо у тој другој кутији
не би требало да буде.
[ИНАУДИБЛЕ]
Јер када се узме да је последњи сингл цитирам напоље и меч ове за садржај
где је лозинка, ако имате да упит, постоји један цитат у
већ крај.
Ви желите да користите тај апостроф као и онај који суочава ону
[ИНАУДИБЛЕ].
Дакле, шта је заправо у том тексту кутија не би требало да имају то.
>> ЗАМИЛА цхан: Ја ћу то променити.
У реду.
Ако не постоји било каква питања, онда ћу пролазе га преко Јосифу да разговарамо
о ЈаваСцрипт, и тако даље.
>> [Апплаусе]
>> ЈОСЕПХ Охаја: Тако смо се приказују мало иза.
Дакле, ако морате да одете, то је у реду.
Али молимо вас да држите главе доле ако сте у средини, тако да
не блокирају камеру и користите назад излаз ако треба.
Ја сам Јосиф успут.
Здраво.
Тест, тест.
Ден, је то добро?
Цоол.
>> Дакле, видео ће бити постављен мрежи за оне који
сада да оду.
Авквард.
У реду.
Тако квиз преглед.
Ово је мачка.
Сада, ЈаваСцрипт, која се можда не као Авв за неке од вас.
У реду.
Дакле, то је прво, сећам из Замила.
Запамтите да ПХП је раде на серверу.
И много пута, момци написао петље у ПХП да одштампате ХТМЛ, зар не?
Дакле, када то код извршава, да ХТМЛ излаз да одштампате
добија послата кориснику.
А када се то деси, више не може ПХП да се покрене, осим ако поново учитате страницу, од
Наравно, који реекецутес на ПХП.
Али када одштампате те ХТМЛ, Ви не можете ићи нигде.
>> Дакле, да се шаље преко ХТМЛ-у корисника, који је претраживач овде, где
Мило је користећи рачунар.
И тако добро, постоји неколико ствари Једном ми послати ХТМЛ кориснику.
Понекад желимо да урадимо нешто као када кликнете на нешто, ми желимо
упозорења кутије да се појављују, оне врсте интеракције, као када притиснете
тастер, када кликнете на нешто страна, желим нешто да се деси.
Па, не можете реекецуте ПХП код једном да ХТМЛ је постављен.
Па како да урадите ово?
>> Уводимо нови језик назван Јава, која ради у прегледачу
који вам омогућава да радите ствари у ХТМЛ након што примите
их са сервера.
И то је разлог зашто смо га на страни клијента зову програмски језик.
Она ради на рачунару -
клијент.
Сва питања о томе до сада?
То парадигма има смисла за људе?
У реду.
Добро.
У реду.
Дакле, прва ствар коју треба напоменути је ЈаваСцрипт није ПХП.
>> Они имају неку другачију синтаксу, који ћемо ићи у.
И они имају веома различите користи.
Јава, опет, за своје претраживач, за клијента.
Сервер ради негде на туђем рачунар који шаље податке
теби, исправи?
Дакле, ако вас замолим да напишете ПХП код на испиту питање, немојте писати
Јава и обрнуто.
Само ћете изгубити поене, и неће бити у реду.
>> Дакле, хајде да се у неким синтаксе разлике -
ЈаваСкрипт на левој и ПХП на десно.
Прва ствар коју ћете приметити са Јава, ми изјављујемо променљиве са
вар кључна реч -
В-А-Р. ПХП се користи знак долара, као Замила разговарали раније.
Ако желите да прогласи асоцијативним низ, видимо познату синтаксу на
десна страна са ПХП.
На левој страни, уместо користите витичасте заграде.
И онда ти кључеви су на левој страни.
Онда имате црево.
И онда имате вредности који желите.
>> Дакле, ово је како би ти то урадио у ПХП на десној страни са тим секунди
линија која почиње у Мило.
А то је како би ви то радите на лево раме у ЈаваСцрипт ако желите
оно што називамо објекат.
И објеката у ЈаваСцрипт су само асоцијативни низови.
Дакле, ако желите да приступите поља, у ПХП-користите ову синтаксу држача.
И на овај начин, можете да пренесете ово поље власник да Лаурен.
>> Па, у ЈаваСцрипт, ако неко жели да приступите поље и промените га, можете
користите дот синтаксу.
Такође можете користити носач синтаксу.
Али ви не можете да користите тачка синтакса у ПХП.
То неће радити.
Она ради само у ПХП.
И на крају, да одштампате ствари конзола, користите цонсоле.лог, који
ви момци користе доста у псет8.
Можете цонсоле.лог то.
>> Ако желите да одштампате низ у ПХП, морате да користите за штампање р.
А на десној страни, видиш ја хасх ниска спајање тамо.
Неко питао раније.
Ја користим плус у ЈаваСцрипт.
Ако желим да нешто цонцатенате у ПХП-у, ја користим тачку.
То су различити.
Ако пишете ПХП код, не користе плус.
Ако пишете ЈаваСцрипт код, немојте писати тачку.
То ће бити у реду.
А ти ћеш бити тужна.
>> Дакле синтаксе разлике.
Знате свој синтаксу, јер ако морате напиши питање, а ви користите синтаксу
из погрешном језику, то неће радити.
И то ће бити погрешно.
Дакле, хајде да причамо о некој контроли проток разлике, како ви користите
кругова у свакој од њих.
Замила прешао на десну страну.
Ствари на десној страни би требало да буде познато.
Погледајмо на левој страни.
>> Када користите за н петље у ЈаваСцрипт, Ваш петља променљива, вар и тамо,
петља преко кључева низу.
Тако да видите име, кућу, и улогу.
Ако сам ја цонсоле.лог, ја се име, кућа, и улога.
То су тастери.
У ЈаваСцрипт, фореацх петља иде над вредностима овог низа.
Дакле, приметите да су обоје ја.
Али овде на ПХП страни, он штампа од Мила, ЦС50, и маскота.
То су вредности у ПХП.
>> Дакле, то су колико су ова два различита на различитим језицима.
Дакле, ако користите фореацх петља, немојте претпостављати да она
даје кључеве.
А ако користите за н петље, немој Претпостављам да вам даје вредности.
Да ли то учинити сада смисла?
Следећи слајд ће вам показати како можете да приступите супротно у
сваки од њих.
>> Па, ако имате кључ у ЈаваСцрипт и желите вредност напоље,
само индекс у низ са тим.
Дакле, Мило од ћу те добити оно желите - вредности.
Има један другачији синтакса у ПХП.
Ако заиста желите да га знам, ја не радим Мислим да смо то показали на тебе.
Али, ако сте заинтересовани, можете да користите овај додатни синтакса на десној
страна која ће заправо вам омогућити да добијете Тастери у ПХП када користите
фореацх петља.
Дакле, само мало тривијалности ако сте заинтересовани.
>> Дакле, то је само да покаже разлике између ове две петље.
Немојте их мешати када сте програмирање питање.
Сва питања у вези тога.
Цоол.
У реду.
ЈаваСцрипт објекти.
Ја сам говорио о њима.
Они су као асоцијативних низова.
Једна ствар коју бих желео да напоменути Овде је то вредност у асоцијативним
Низ може бити било шта у ЈаваСцрипт.
>> То чак може бити функција, као тамо.
Имам функцију која је вредност кључа.
А ако желим да позовем ту функцију, Ја само приступ кора.
И онда сам ставио заграде после тога.
И то ради.
Дакле, има ли питања?
Не?
У реду.
Добро.
Јава, као ПХП, је лабаво откуцан.
Шта то значи?
>> Она има типова.
Али када прогласити ЈаваСцрипт променљива, кажете вар.
Не кажем то.
То није ствар.
Ви само кажете да је променљива.
А да би се ЈаваСкрипт руковати врсте под хаубом за вас.
Слободно можемо претворити између типови због тога.
Тако сам почиње као број у овом случају.
И онда ја имам ниску.
И ја сам то додати.
И ја га пренесете назад у и.
>> Дакле, на тој првој линији, и је број.
У другом реду, ја сада постаје ниска након што сам урадим премештај.
И овде, ја само спајањем тај број на тетиви.
Па видиш да иако сам био цео број у првом делу, је некако
од као да конвертује у стринг и затим се додаје
на том хелло стринг.
И то је оно што мислим од лабаве куцање.
То је да конвертујете између врсте врло лако.
И то не бацају упозорења у ти се свиђа Ц ради.
>> Тако да сам сада садржи здраво 123 до ниске.
Даље.
Такође можемо слободно упоредити између типова.
Дакле, ако сте само користите ==, веома много као у ПХП, ЈаваСцрипт
ради сличну ствар.
Стринг 123 је исти као и број 123 када користите дупле једнакима.
Када се користи троструке једнаки, такође жели да се уверите да
тип је исти.
Тако јер је ниска и то је број, иако су обојица су
123, када користите троструко једнако, добијате лажне.
У двоструко једнак случај, добијате тачно, јер двокреветне једнаки не
Стало типа.
Трипле једнаки брига о типу.
Питања?
У реду.
>> И још једна ствар у вези ЈаваСцрипт је обим је некако глобални осим ако сте
у функцији.
И то ради исто начин у ПХП заправо.
Дакле, идемо кроз овај пример.
Поставио сам ја на 999..
И онда ја идем у ово за петљу.
Дакле, ако сам ја штампање у ово петља, ја очекујем 0, 1, 2, 3, 4.
Дођем до и = 4.
То ја сада повећава до 5 на крај за петље.
И онда избија из петље, јер не испуњава
условљавају више.
>> Шта мислите да следећи цонсоле.лог исписује?
Дакле, то је оно што ће учинити у Ц. У Ц, јер ако имате као вар и ван
и ви имате вар и унутар петље, као за петље, онда то чини такав да
то је сцопед да два И да су различити.
У ЈаваСцрипт, то ће само третирати га као истог и.
Ја се 5, јер је вредност након што изашао из петље.
Дакле, оних које сам је исти ја.
Да ли то смисла?
>> Па, то има смисла из ЈаваСцрипт став.
Али исто парадигма не пренети на Ц. Они имају
различита Сцопинг правила.
Да.
>> ПУБЛИКА: [ИНАУДИБЛЕ]
ван функције [ИНАУДИБЛЕ]?
>> ЈОСЕПХ Охаја: Па, испред које функција?
Зато ћу се на то у само секунд.
Тако зовемо фоо (И).
Ово пролази сам у ФОО, корацима то, а онда га пријави.
Тако је било 5.
Дакле, то постаје 6..
Али оно што ја говорим је да сам у тој функцији.
Зато што је то параметар, то је сцопед на ту функцију.
Дакле, кад сам заправо изаћи из које функција, то је сада да идем
назад на стари ја.
То сам се само зато сцопед то је у функцији.
И ми имамо обим и функције.
Али ми немамо обим ван функција у ЈаваСцрипт.
Да ли то смисла?
Да.
Питање.
>> ПУБЛИКА: Исти [ИНАУДИБЛЕ]?
>> ЈОСЕПХ Охаја: Па да.
У ПХП-у, то је иста врста ствари.
Постоји благи суптилност заправо.
Али, можете ме питати о да после разматрања.
Ти стварно не треба да знате да суптилност за квиз.
За све намере и сврхе, као варијабле, глобална и ПХП, осим ако
они су у функцији, исти ствар у ЈаваСцрипт.
Да.
>> ПУБЛИКА: Зашто је то дозвољено у Јава и нема где другде?
>> ЈОСЕПХ Охаја: Па зашто је то дозвољено у ЈаваСцрипт а не у Ц?
То је само онај ко је дошао са Јава је одлучио да је то у реду у
ЈаваСцрипт.
Дакле, то је само као програмски језик конвенција као што би рекли.
Да.
>> ПУБЛИКА: Па зашто иде од 6 до 5?
>> ЈОСЕПХ Охаја: Па то је од 6 до 5, јер када сам прошао сам у ФОО, да
И унутар ФОО је сада сцопед да ФОО, јер обим постоји у функцијама у
ЈаваСцрипт.
Али када сам одавде, јер је је сцопед функцији, само сам
користећи редовне сам да је унутра остатак контролу тока.
Смисла?
Могу ли да идемо даље?
У реду.
Цоол.
>> Прихватање је ово објеката су прошли референцом.
Знаш како, када прођете низ у Ц бисте могли да
заправо модификује низ?
То је иста ствар у ЈаваСцрипт.
Ако ја проследите објекат, у овом случају, ја прошао Мило у овом цатифи функцију.
Мило почиње.
Његово име је Мило банана.
Ја проћи тај објекат у функцији јер је то предмет, асоцијативне
низ у ЈаваСцрипт.
>> Када сам извршити операцију у тој функцији, он ће
заправо променили објекат.
Тако ће се то догодити само за објекте у ЈаваСцрипт, баш као што се дешава
за низове унутар имени Ц. тако Милова ће заиста постати мачка сада.
Да ли то смисла?
Дакле, ово ради само за објекте.
Објекти су прошли по референци.
Да.
>> ПУБЛИКА: Дакле, ви кажете да за разлику од променљива и.
>> ЈОСЕПХ Охаја: Да.
Која варијабла сам био само број, зар не?
То је као у Ц када прође интегер, чини копију.
А када прође низ, она заправо мења стварни низ у
Ц. Иста ствар се дешава са Јава у овом случају.
У реду.
И поред, Мило је тужан јер Он сада је мачка.
То је заправо Мило после неки пут код ветеринара.
>> Па како да користите ЈаваСцрипт у веб страницу?
Можемо га укључити.
Ово је ХТМЛ код са траке ознакама.
Дакле, имам траке ознаке тамо.
И онда сам ставио мало ЈаваСцрипт код у скрипту тагова.
И онда је то извршава.
Када сам то урадио овако, то је зове редни ЈаваСцрипт.
То је врста неуредан, јер ЈаваСцрипт је заправо у ХТМЛ.
>> Бољи начин да се то уради, много лепше, је да напишете вашу ЈаваСцрипт у
спољни фајл и онда обезбедити скрипта ознака са извором.
И то ће ићи у том ЈаваСцрипт фајлу прочитајте и ЈаваСцрипт код из
да поднесе уместо тога.
И на овај начин, не морате много ЈаваСкрипт на почетку свог
ХТМЛ фајл, што чини то стварно неуредно.
Само га стави негде другде.
А онда ће га прочитати одатле.
Да ли то има смисла?
>> Питања пласман.
У овом случају, Сценарио је пре тела.
Дакле, када сам изврши то, ту је ништа у телу још.
Можда ће ово бити мало више осетити када сам показати овај следећи део.
У овом случају, скрипта долази после див.
Дакле див заправо појављује на страници прво.
Управо овде у овом малом црвеном кругу, видиш појави текст.
А онда упозорење појави.
>> У првом случају, јер скрипта био пре див,
Упозорење се појављује први.
А онда див појави после Ви одбацити кутију.
Дакле, извршење битно.
Тако ћемо имати то на уму.
Ово ће бити важно у мало.
У реду.
Па добро, како се чекати док Цела страна је затим постављен пред вама
извршава неки код?
Ми ћемо ући у ово мало Нешто касније превише.
Али само да овај пласман питања у виду када смо за
доћи на други слајд.
>> Тако смо добили до сада ДОМ.
А шта је ДОМ?
Дакле, ако погледате ХТМЛ код, то је само гомила текста на екрану.
Дакле, како се ЈаваСкрипт да зна ово је ХТМЛ елемент?
Дакле, морамо да имамо неку меморију заступљеност ово
структура које имамо.
И кад год имамо ово у меморији заступљеност у ЈаваСцрипт, ми зовемо
да ДОМ.
И то је само начин да се људи одлучили да би требало да ми представља то
ХТМЛ структура као.
>> И шта ово личи ДОМ?
Па, у представљању меморије, узмемо овај текст.
И ми смо га претворити у меморију заступање.
Дакле, ово је ХТМЛ.
Дакле, ми смо прво сазнали да је сваки ДОМ стабло има документ.
Изгледа као дрво.
И документ садржи ХТМЛ ознака, заправо све
унутар овог сада.
ХТМЛ таг има двоје деце.
Она има главу.
То глава, ако се осврнемо на увлачењу тамо како се то структуриран
између блиских тагова, глава има дете.
Дете је наслов.
Тачно.
>> Сада, имамо тело дете.
И онда то тело има Дете се зове породица.
И да породица има троје деце -
најстарији, средњи, и најмлађи.
Дакле, требало би да знате како да нацртате дијаграм овако кад смо вас питати како
да нацртате дијаграм када дајемо Ви ХТМЛ-са леве стране.
Знати како да произведе ДОМ стабло.
И унутар тих ствари, то је само неки текст, који сам представља
као мале кутије.
>> Да ли то ДОМ структуре стабла чине смисао и шта је ДОМ?
Дакле, шта стр стоји?
Овамо, стр тамо у том таг представља
параграф таг у ХТМЛ.
Дакле, можете га погледати.
Али то само значи да је неки простор за неки текст.
И она има неке подразумеване ЦСС стил, јер је то став ознака.
Али заиста не брините о да део превише.
Само знам да је чувар места за неки текст.
Да.
Питање?
Да.
>> ПУБЛИКА: Управо сте поменули ЦСС.
Хасх породица и тараба све те ствари је у основи
представља личну карту у ЦСС-у?
>> ЈОСЕПХ Охаја: Да, тачно.
Идем на оно што те хешеве Мислим у секунди.
Када Анђела отишла преко ЦСС, она говорио о ЦСС селектора.
То су ЦСС селектори који она је говорио о.
Да, Роб?
>> РОБ БОВДЕН: Ја бих такође цоммент да ДОМ унутар наслов таг
је такође текст чвор.
>> ЈОСЕПХ Охаја: Тачно.
Дакле, унутар наслов таг, Имам неки текст ДОМ.
Дакле стварно, овај наслов би требало да имају као кутијица скида од ње, као добро.
Али то није битно превише у овом случају.
Ми стварно не брига за текст чворова, како их ми зовемо, превише.
У реду, ми радимо.
Очигледно, ми радимо.
И ја ћу поправити да када Ја га постави поново.
Да ли то смисла?
>> Па како да раде са ДОМ?
Кад год се баве ДОМ у ЈаваСцрипт, постоје два корака.
Можете изабрати ДОМ елемент.
А онда радите ствари на њега.
Дакле, у овом случају, апстрактно, ја сам изабран средњи елемент.
А онда пример радиш ствари на њу ће се мења текст.
То је некада био Бобе.
Сада, шта сам урадио да га је сам променио Боб на Мило у овом случају.
>> Па како да заиста урадимо ово?
Како радимо одабир?
А како ми то радимо ствари на ствар када смо га узети?
Па, како сте га научили у овој класи је помоћу нешто што
зове јКуери.
Дакле, шта је јКуери?
јКуери је библиотека која чини Јава лакше да пишу.
Тако је неко узео времена и написао јКуери.
>> јКуери је заправо написано у ЈаваСцрипт.
И онда зато што су сада урадили ово, ми имају гомилу функција које
можемо да користимо да би наш живи стварно лако.
Дакле, шта су неки од ствари зар не?
То чини лакшим избором елемената.
То чини мења ХТМЛ, додајући часове лакше.
То чини Ајакс лакше.
Доћи ћемо на то за секунду.
>> И то је аналоган Ц библиотекама.
Тако да укључују стринг.х, добијате стрлен.
Добијате стрцпи, све ове ствари.
Када укључују јКуери, добијате лепо начина за избор елемената за промену
ствари, и тако даље.
Можете добити додатну функционалност која Јава не дају ти.
Дакле јКуери није ЈаваСцрипт.
јКуери је библиотека која је написана у ЈаваСкрипт да чини ЈаваСцрипт
лакше писати.
>> Дакле јКуери није програмирање језик.
Али ЈаваСцрипт.
направити.
Наравно да добијете праву терминологију.
Има ли питања?
Да.
Да ли је то питање?
У реду.
Па како да користите јКуери?
Па, када пишете неки ЈаваСцрипт код и ви укључити
јКуери на врху датотеке као скрипта фајл, користите знак долара
сада да добију приступ јКуери.
А ово се разликује од долар знак у ПХП.
>> То је исти ти симбол укуцајте на тастатури.
Али они значе веома различите ствари.
Долар знак у ПХП значи ово Тако ја изјављујем променљиву.
У ЈаваСцрипт, када сте укључени јКуери, то је скраћеница за јКуери.
Дакле, имајте то на уму.
Дакле, како да изаберете ДОМ елементе?
Па, када то урадите на ружну ЈаваСцрипт начин, ви приступате
документују глобалну променљиву.
И онда ти елемент по ИД породице.
Ово је заиста дуг и развучен и није лепо.
>> Или можете добити све елементе да су П ознака.
То ради превише у ЈаваСцрипт.
Али ми никада заправо показали ти синтакса превише.
Оно што смо показали ти је јКуери.
Тако да цела селектор тамо да је изражена у ЈаваСцрипт само добија
кондензује на овом веома лепом долар потписати хасхтаг породицу.
А $ п, само тамо где је то тако.
Ако желите да изаберете све ознаке п унутар породице, ставили смо простор
између њих.
И сада, ми смо добили све п ознаке унутар породице.
>> А изгледа познато?
Па, Ангела говорио о ЦСС селектори.
Дај ми једну секунду.
И тако, како би се изабрали елемент, ви само користите исту ствар као и ти
би урадио са селектором ЦСС.
Ако сте ставили хасх испред од ње, она бира по ИД.
Тачка бира по класама.
Ако имате само ствар без хешеве или тачкице, она бира оне ознаке.
Питања.
Да?
>> ПУБЛИКА: Када користимо тачку у нашем ХТМЛ, да не јКуери?
>> ЈОСЕПХ Охаја: тачка у нашем ХТМЛ је ЈаваСцрипт ствар.
То није ствар јКуери.
Начин ви га научили са јКуери је да се користи. хтмл.
А онда сте га прошли без обзира ХТМЛ ће бити.
Зато ћу се на то само у други заправо.
Па како да радимо ствари на елементу кад смо га изабрали?
Дакле, то је пример изабрати елемент.
Дакле, сада, желимо да урадимо ствари на њега.
>> Дакле, у овом случају, дозволите ми да се вратим на претходни слајд.
То пре је био Боб.
И ја желим да променим унутар ХТМЛ Милу.
Тако ја зовем ХТМЛ функцију из елемента.
То ХТМЛ функција метод елемента.
И онда сам му дати шта Желим да буде ХТМЛ.
И то само замењује оно што је унутар да ознака са год сам га дам.
Да.
Питање?
>> ПУБЛИКА: хасхтаг се користи за само јКуери.
[ИНАУДИБЛЕ]
ми не би користили то.
>> ЈОСЕПХ Охаја: Да, тачно.
Али не брините превише о чист ЈаваСцрипт.
Ја само желим да ви фокусирају на то како сте би то урадио са јКуери, јер
који ће бити важан део на квизу.
Право.
Тачно.
Па видиш да је хасхтаг, тако да одговара да изаберете елемент са
ИД средњи због тог хасхтаг.
Хасхтаг значи ИД.
И овај елемент има идентификатор средину.
Дакле, то је елеменат смо изабрали.
>> ПУБЛИКА: [ИНАУДИБЛЕ].
знак долара хасхтаг [ИНАУДИБЛЕ]?
>> ЈОСЕПХ Охаја: Па не.
Питање је да ли вредност. Користите.
И вредност. Ради само о елементима да су инпути.
У јКуери, било би . Вал, не. Вредност.
Тако ћу добити на малом примеру који показује све ово у комбинацији
у секунди.
Али мислим да ово служи мало одломак има смисла да се људи до сада.
Желите да промените ХТМЛ, позовите ХТМЛ метод.
Да.
>> ПУБЛИКА: Можете ли објаснити Опет метод?
>> ЈОСЕПХ Охаја: Дакле, метод је само функција која припада једној, у овом
случају, један од ових ДОМ елемената, зато што ја видим
прво изабран елемент.
Заправо, дозволите ми да користите миша.
Први пут сам изабран елемент.
И онда сам назвао овај ХТМЛ функционише да има.
И зато ова функција припада ова ствар, ми то зовемо метод.
То је само фенси назив за њу.
Реци то поново.
Дакле, запамтите, ми смо одабрани елеменат сада.
И ми смо га ставили у себи елемент променљива.
Исправите?
>> Дакле, када желимо да променимо ХТМЛ о унутра, јер је то било пре Бобе, ти
желите да промените тај текст на Мило.
Тако зовемо ХТМЛ.
И ми га рећи шта ХТМЛ-у тај елемент треба да буде сада.
И тако га мења на Мило, зато сам му дао Мило.
>> ПУБЛИКА: Дакле, они заједно раде.
[ИНАУДИБЛЕ]
>> ЈОСЕПХ Охаја: Да, да.
Они раде заједно.
Тако један од њих бира елемент први.
И други не нешто за њега.
Да.
>> ПУБЛИКА: [ИНАУДИБЛЕ].
Ако овај метод се разликује од у ХТМЛ имате метод једнак стварна.
>> ЈОСЕПХ Охаја: Да.
То је другачији метод.
И можемо покрити, само који секунд кад стигнемо у пример.
Желим да будем сигуран да се убрза јер ми понестаје времена.
Али, ми смо покренули како током времена сада.
У реду.
Цоол.
Дакле, ако желите да додате класу, ту је Такође метод додатак класа.
Ово је само пример онога што можете да урадите са јКуери.
То само додаје класе.
>> Ако желите да га уклоните, можете позвати ремове.
То је само још једна ствар коју можете да урадите.
Дакле, више примера ствари које можете да урадите.
Тако да сам га ставио у врх овако?
Најмлађи ремове.
Ако сам само извршава ту ЈаваСцрипт у врх мом досијеу, који ће радити?
Право.
Јер средњи још увек не постоји.
Дакле, ово не иде на посао.
Извршење поредак.
То иде до врха прво.
Шта?
>> ПУБЛИКА: Најмлађи још увек не постоји?
>> ЈОСЕПХ Охаја: Да.
Најмлађи још увек не постоји.
Тачно.
>> ПУБЛИКА: Рекли сте средина.
>> ЈОСЕПХ Охаја: Извини.
Најмлађи још увек не постоји.
А друга ствар је да нема били су јКуери
филе питати скрипта срц.
Тако да не иде на посао.
Заправо, ја нисам то урадио у следећи слајд, који је
требало да поправи ни да.
Али, начин на који ми радимо је ЈаваСцрипт је догађај вођен.
Дакле, оно што ми радимо јесте да користимо догађај Хандлер да се то деси.
И тако сам изабрали документ сет први.
Ја кажем, у реду, када је документ спреман, дозволите ми да покренете функцију.
Дакле, то је све што синтаксе средства.
>> Изабран сам документ.
Сада, када је документ спреман, покрените функцију.
И тако овде када је документ спреман, што значи све ХТМЛ има
оптерећењем, онда сам покренути функцију која уклања тај елеменат.
И тако сада, када ја водим ову функцију да сам прошао у спреман, ја сам
гарантовано да све ХТМЛ-у страна ће прво постоји.
Да.
Питање?
>> ПУБЛИКА: Шта је кључна реч догађај у функцију?
>> ЈОСЕПХ Охаја: Значи да догађај кључна реч у Функција је само параметар који
добија прошао у функцији за било који догађај.
То је само нешто што добијате бесплатно.
Када користите кључне виљушкари у псет8, тај догађај могао да вам кажем, за
пример, који сте притиснули тастер на.
У овом случају, за спреман догађај, то је заправо није супер корисно.
Али за кључни догађај доле, то је више користан, јер сте добили да знате који
Кључне сте притиснули тастер са сајта Код са тог догађаја објекта.
Исправите?
Да ли то смисла?
У реду.
Да.
Питање?
>> ПУБЛИКА: Значи да сте ставили скрипта ознака ниже доле?
>> ЈОСЕПХ Охаја: Па да.
Могао би ставити скрипту означи ниже.
Али онда то само постаје стварно неуредан.
И ми смо желели да централизују све нашег кода на једном месту.
И то ће нам омогућити да то уради.
Запамтите раније сам рекао да је лепше начин да се обезбеди да су елементи
на страни пре него што извршите код?
И ово је само леп начин ти би да оствари.
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> ЈОСЕПХ Охаја: Да.
Ти би и даље морати да се, зар не?
Зато запамтите, укључени сте филе на врху странице.
Дакле, то ће прво извршити пре дођете до дна странице.
У реду.
Дакле, можете да додате различите Тип догађаја руковаоца.
Ово само процеси кликова.
Када кликнем на најмлађе, онда она ће се појавити са узбуном.
Ово је само другачији тип догађаја.
За разлику од готовог догађај, ви сада користите клик догађај када примате
кликне на елементу.
>> И тако у овом случају, запамтите, клик руковалац је везан за најмлађе.
Дакле, то се дешава само када Кликнем на најмлађе.
И у другом, готовог догађају је везан за документ.
Тако да чека документа да буде спреман.
Смисла?
Мислим да могу да наставим даље.
Да.
Питање?
>> ПУБЛИКА: [ИНАУДИБЛЕ].
у овом случају можете користити [ИНАУДИБЛЕ].
>> ЈОСЕПХ Охаја: Ох, да, зато што у овом случај, морам да чекам за најмлађе
елеменат да се појави на екрану прво пре него што ја могу да приложите клик манипулатора у
она, због чега сам га ставио унутра од документ спреман.
У реду.
И поред, тако да је ово велики пример како би комбиновати све.
Ово је само облик валидације пример Ви сте видели у предавању.
Дакле, корак по корак, као идете кроз ово.
И то ће бити потпуно у реду.
Само прочитај од врха до дна.
>> Имам форму на дну.
Када документ је спреман, ја приложите достави манипулатора у форми, тако да
кад сам поднесе формулар, добијам вредности унутар сваке од тих улаза.
И проверите да ли је празно.
Ако је празно, ја вратити лажне, јер Не желим да поднесу образац,
јер облик је погрешно.
Ако је лозинка празна или је мање од осам карактера, не достави
облик, јер то је такође у реду.
И повратак лажних само спречава образац из подношења и
одлазак на нову страницу.
>> И надамо се, ово има смисла.
Мислим да би требали да хода кроз ово код корак по корак на сопствену.
И када схватите шта изаберите елементи и урадите ствари на њега
заправо подразумева, то ће учинити много смисла за вас.
Да?
>> ПУБЛИКА: Шта значи име = корисничко име значи?
>> ЈОСЕПХ Охаја: Дакле, име = корисничко име и име = лозинка само значи погледајте
атрибут год ти избора.
И онда то мора да одговара.
Дакле, идемо на регистрацију.
И онда гледамо свим улазима и регистрација.
И онда ми изаберемо онај у коме име атрибут једнак корисничким именом.
Тако да први селектор бира само корисничко име улаз.
И да други селектор бира само лозинка један, јер они имају
Њихово име атрибути сет као што они би требало да буде.
Питање?
>> ПУБЛИКА: На подношење, како се доњи део решили горњи део?
>> ЈОСЕПХ Охаја: Дакле, то је зато што од догађаја руковалац.
Дакле, чекамо на подношење догађај да добије отказ из форме.
И то је све што је поднесе.
Зашто ја називам достави тамо?
Он каже, када се подноси образац, Добијам поднесе догађај.
Дакле, дозволите ми само да пресретне и онда уместо покрените овај код.
Да?
>> ПУБЛИКА: Зашто имате да имају функцију догађај?
Зашто не можеш само [ИНАУДИБЛЕ]?
>> ЈОСЕПХ Охаја: Зато што у ЈаваСцрипт, ви морати да прогласи функције.
То је само како то ради у ЈаваСцрипт.
Морате да кажете да ће да покренете функцију.
Дакле, ви то кажете да сте Очекујем функцију овде уместо
само витичасте заграде.
>> ПУБЛИКА: И функција је све што следи?
>> ЈОСЕПХ Охаја: Да.
Функција је све што је унутра великих заграда после
да функција кључна реч.
Да?
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> ЈОСЕПХ Охаја: За поднесе?
>> ПУБЛИКА: Не, за функцију без догађаја.
>> ЈОСЕПХ Охаја: Да.
Дакле, без догађаја, можете имати то.
Ако вам не треба догађај, онда можете само да га изоставите.
Али ако то урадите, онда сте Само га стави тамо.
Да.
Брзо питање?
>> ПУБЛИКА: [ИНАУДИБЛЕ].
>> ЈОСЕПХ Охаја: Да.
Јер оно што треба да урадите, доцумент.реади само каже чекати за све
ХТМЛ на страници да прво учита.
И обично, ви желите да ваши елементи у месту пре него што покренете неку шифру.
У реду.
Морамо доћи до Ајакс.
Немамо много времена.
Дакле, предности и мане.
ЈаваСцрипт је лакше пробати писати са јКуери.
Али јКуери је некако споро.
>> То је као ПХП је спорији од Ц, јер је тумачи.
А јКуери је мало спорији од Јава, јер то чини много
ствари испод хаубе.
И тако ако користите јКуери, то је само мало спорије него
Јава, иако даје вам леп елеганцију.
И на крају, Ајакс.
До сада са Ајаксом, ви нисте видели Ајак у смислу псет7 ипак, због
када то урадите, ви поднети образац за цитат.
Он учитава нову страницу.
Тако да се овај велики бели блиц на страни, док је
Друга страница учита, зар не?
>> Било би заиста лепо када вам нису имали овог блица.
Као Фацебоок, ако само дођите до дно, додаје нови садржај
без освежите целу страницу.
Дакле, овако нешто би било лепо.
Ово је ЈаваСцрипт код на левој страни.
Можете добити оно што је унутар тог улаза.
Можете добити информације из залиха Иахоо!
А онда сте направили велику ниску која каже, у реду, то је порука коју желим
да покаже на екрану.
А онда сте ставили унутра ту поруку неког ХТМЛ елемента који добија
приказује на екрану.
>> Дакле, то је све што се дешава овде.
Дакле, у основи, јер то је све Јава и не морате да покренете
више ПХП, то ће се побринути да страница не освежи.
Дакле, ово је само апстрактна идеја да ја говорим овде за сада.
Апстрактна идеја је да ако то урадите све у ЈаваСцрипт, немате
страна освежи.
Али како сте заправо урадили?
>> Па, у ствари, хајде да разговарамо о Проблем са овим прво.
Проблем је у ЈаваСцрипт, извршење је синхрони.
Дакле, морате да сачекате једну линија да се заврши пре вас
извршава следећу линију.
А шта ако ја идем у Иахоо!, и њихови сервери су заиста споро, и
то им је потребно три секунде да Врати ми стоцк информација?
Када сам ударио ту цену линију, ако извршење је синхрони, као што је од
подразумевани, само оно што ће урадити јесте Ваш претраживач ће одуговлачити за
три секунде.
А ти нећеш бити у стању да уради ништа док не добије те податке.
То ће бити замрзнут.
>> И то је лоше.
Ви не желите да корисник имају замрзнуте веб страницу.
Исправите?
То је само лоше.
Сви се слажу?
Ако сте тренутно Фацебоок и да је замрзава и не можете учинити ништа, те
се стварно фрустриран.
Дакле, решење је да направи нешто асинхрони уместо тога.
Дакле, све ово асинхрони ствар каже се, ја ћу да питам ово
УРЛ адреса за неке податке.
А онда ћу да наставим.
Ја ћу само да извршава шта год да је био код после тога.
>> И онда кад год то податак спреман, онда ћу га обрадити.
То је све што се каже.
>> ПУБЛИКА: Ајакс само чини код асинхрони?
>> ЈОСЕПХ Охаја: То је асинхрони начин при преузимању података.
Дакле, прва ствар о Ајакс је то ми омогућава да се подаци
из спољног сајту.
А друга ствар је чини сигуран да моја страна не одуговлачи док сам
преузимању те податке.
То је асинхрони део тога.
Зато што он сам оде негде другде, зато ја кажем да наставимо на време
то је привлачан те податке, да чини асинхрони.
Стално извршавање.
>> Дакле, имајте то асинхрони идеја у уму.
И ја ћу вам показати шта разлика је.
Синхрони верзија је на левој страни.
Асинхрони верзија је на десној страни.
Погледајте бројеве да бисте видели која кораци одговарају шта
извршава на свакој линији.
Тамо, упозорење појави први.
Јер добијање информација од акција Иахоо!
траје три секунде, то тезги за три секунде.
И онда она упозорава цену после те три секунде.
>> Дакле, сада, то алерт емисије се у то време -
три секунде ин
И онда након тога обавештава стране.
Тако да само иде корак по корак.
То је као оно што ви би прихватили, је ли тако?
Са асинхроним извршења, прво упозорити.
Онда отићи на овај УРЛ.
А ви кажете, ја ћу само питам за податке.
А онда ћу да обрадити га касније.
Тако да одмах извршава следећи ред након што сам направити да
асинхрони захтев.
>> Дакле, а 0.001 секунди, можете видети упозорења хи.
Изврши ту функцију, упозорења бие.
И зато сам обећао да ћу би обрађује податке касније, шта
дешава се када то подаци врати Три секунде касније, онда сам покренути да
функција које имам тамо.
Да?
>> ПУБЛИКА: Да ли сте навели или појасни шта значи Ајакс?
>> ЈОСЕПХ Охаја: Дакле, Ајакс је начин да, ако ја потребни подаци када сам на сајту и ја
не желе да освежите страницу, а затим Ја користим ову технологију зове Ајакс.
То у суштини значи само, иди донеси подаци из другог сајта.
И то учинити на начин да само не одуговлачити моју веб страницу.
>> ПУБЛИКА: Тако је то инхерентна део ЈаваСцрипт или јКуери?
>> ЈОСЕПХ Охаја: Значи неко написао начин да то урадите ово у Јава одавно.
У једном тренутку, она није постојала.
И тако је неко измислио ову технику да омогући људима да траже ове податке
на овај начин.
И они су написали неке ствари да то уради за вас.
И јКуери само даје ово Веома леп начин да то урадите
са овим $. добити функцију.
питања?
Могу да одговорим на питања о Ајакс после превише.
Ја ћу бити овде.
>> Тако да хајде да нам донесе податке без освежите страницу.
И хајде да урадимо то у асинхрони начин да
не замрзне страницу.
Предуго, није прочитао, ако то Објашњење је било предуго за тебе.
Дакле, коначно, цросс-сите сцриптинг напада.
Видели смо то са Замила.
Ако у мојој бази података има неко ово име, који је ово скрипта ознака, и ја
има неки код на мојој страни да отисци од имена људи за редом, или ја имам
неки ЈаваСцрипт код који убацује ово име у страницу,
ХТМЛ шта бива произведено?
Па, ја одштампати ХТМЛ таг.
Ја одштампате све ове ознаке.
>> Ја се на део где сам штампање са мојим пријатељима.
Ја одштампате Лаурен напоље.
То принт Мило напоље.
А онда моје име у бази података је скрипта порука
Непријатан на Фацебоок статуса.
Зато сам ово убаци у страницу јер изгледа као ЈаваСцрипт, када
Ова страница добија послата кориснику, добија погубљен као ЈаваСцрипт.
И тако то је оно што ми зовемо цросс-сите сцриптинг напад.
Неко ставља злонамерне информације у база података која би могла одговарају
неки додатни стринг или неки ЈаваСцрипт ниска.
>> А када га добије одштампан на страна на овај начин, онда шта
што се дешава је то лоше код добија извршава да нисам имао намеру
за то да се извршава.
И то је све крос-сајт скриптовање напад је.
А начин на који се око ово је као Замила рекао.
Ви само замотати у ствари ХТМЛ специјалних знакова.
И овај ХТМЛ специјални слова је ПХП функција која ће спречити овакве
ствари из дешава са тобом ако имате злонамерни
стринг у бази података.
То само бежи, тако да се то не деси се тумачити као ХТМЛ.
Он замењује мале заграде са оним што зовемо ентитета.
И ми смо ишли преко ово у предавању превише.
Па ја мислим да ви треба да имају добро схватање о томе.
Питања?
Да.
>> ПУБЛИКА: Па како би [ИНАУДИБЛЕ]?
>> ЈОСЕПХ Охаја: Реци то поново.
>> ПУБЛИКА: Како би монитор -
>> ЈОСЕПХ Охаја: Тачно.
Дакле, имате нешто да каже, када Ја се региструјете, тип у моје име.
Управо куцам у том пољу, моје име је стрипт порука Непријатан на Фацебоок
Статус близу скрипта ознака.
И то само добија ставити у база података, јер ја не могу да кажем неко
у свету нема име са левом стрелицом у њој или
Реч скрипта у њему.
То нема смисла стварно.
Тако сам само да се уверите да сам санитизе ствари пре него што сам га одштампате
се на страницу.
>> ПУБЛИКА: Значи ХТМЛ посебне картице спречава Тхе Сцрипт ознаке?
>> ЈОСЕПХ Охаја: Да.
Дакле, то не спречава скрипту ознаке.
То само чини да сигурно сцрипт ознаке не добијају
тумачити као ХТМЛ или -
Да.
Само се појави као што то је заправо.
У реду.
Дакле, то је квиз преглед.
Цоол.
>> [Апплаусе]