[Мусиц плаиинг]
>> Даг Ллоид: Па јос један некако идеји да
врста спада под окриљем ЈаваСцрипт је нешто што се зове АЈАКС.
До ове тачке, наш интеракција са ЈаваСцрипт
је ограничена на гура тастер и нешто деси.
Конкретно, нешто што се дешава
је наш веб странице изгледају и осећају промене.
Jel tako?
Као нарочито у Доцумент Објецт Модел видео
Променио сам боју позадине.
Али када сам то урадио, нисам имао да радим никакве посебне додатне захтеве.
Ја не морам да тражи да сервер ми послати нову страну.
Управо сам променио оно што сам већ имао.
Нисам имао то релоад моју страницу, и ствари дефинитивно променило,
па то је сјајно.
Али дефинитивно постоји нека упутство за интеракцију укључени.
АЈАКС је кул техника која омогућава да ажурира садржај странице је,
а не само изглед и осећају, без претовара.
>> И од када сам конкретно кажу ажурирање садржаја странице је,
Ја не кажем да смо написали страница користи ЈаваСцрипт.
Кажем ми заправо тражити више информација са сервера
без наш потребе да поново.
>> Сада такве мало напреднији техника
да ћемо да разговарамо о у овом видеу.
Идемо да се мало интеракцију.
Али када радимо, ја ћу бити што захтева на веб сервер.
У овом случају, само оно што је ради свој Апацхе веб сервер.
Ја ћу правити додатне Захтеви док ја посетите веб страницу,
али моја страна неће освежити.
>> Само ће асинкроно упдате моју страницу.
И то је, у ствари, која се залаже за АЈАКС,
је асинхрони ЈаваСцрипт и КСМЛ.
КСМЛ је друга врста ознаке језика, а можете сортирати у
мислите о томе као и ХТМЛ.
То није сасвим иста ствар, али то је у основи само Маркуп Лангуаге.
Дакле, то је асинхрони Јавасцрипт и Маркуп Лангуаге.
>> Дакле, да би користили овај АЈАКС АЈАКС тецхникуе--
није посебан програмски језик.
То је само нека врста сет тецхникуес-- ве
треба да створи посебан ЈаваСцрипт објекат, који
се назива КСМЛХттпРекуест.
Сада је веома лако да то урадите.
Само смо рекли вар, без обзира желимо да зовемо овај објекат,
једнако нови КСМЛХттпРекуест.
И сада смо сада добија АЈАКС врста објекта,
или КСМЛХттпРекуест објекат, који ће омогућити
да асинкроно ажурирати нашу страницу.
>> Након што смо добили овај нови објекат, ово КСМЛХттпРекуест,
морамо да урадимо нешто да своје онреадистатецханге понашање.
Онреадистатецханге понашање је заиста само
када направите захтев на веб страници, страница
пролази кроз низ корака.
Прво, захтев није послат.
Затим, захтев је био послао, али не поступа.
Тада је захтев поступа.
Тада је тај захтев шаљу назад са тобом.
>> Затим, захтев Потпуно натоварен на вашу страницу.
То су различите државе.
И тако морамо да поставимо Нова КСМЛХттпРекуест објекат
да мењају када спремне државне промене.
И обично, ми то радимо од дефинисање анонимну функцију, која
ми смо упознати са из Јавасцрипт сада, да
Када се зове стање Спреман промене.
То стварно није много више од тога.
Ми ћемо се дефинисања Функција анонимно, некако се свиђа оно
смо радили у Јавасцрипт, где бисмо
имају анонимну функцију реагује на клик на,
или када смо радили мапу разни предмети у низу.
>> Нешто се десило када нешто је кликнуло.
У овом случају, то је само нешто дешава када држава нашој страници
promene.
Постоје две друге особине које су врста од-- нису
само својства која су инхерентно КСМЛХттпРекуест,
али они су прилично важне.
Постоји нешто што се зове реадиСтате, који као што вероватно можете погодити,
је у вези са онреадистатецханге.
То вам заправо говори шта је реадиСтате је.
0, 1, 2, 3, и 4 су могућности тамо,
и они некако грубо одговарају ономе што
Само сам говорио о пре другог.
>> А онда статуса, који надам се да је све прошло у реду,
је 200, што је скраћеница Јер, наравно, у реду,
који смо упознати са са хттп.
Дакле, надамо се да наша држава спремна је четири, а наша статус је 200.
И ако наше државе спреман је четири, а одговор
је спреман да се стави на страна, а статус је 200,
били смо у стању да уради све успешно,
сада можемо асинхроно упдате нашу страницу
без релоад Целокупан садржај тога.
>> Након што смо дефинисали шта се дешава у понашању онреадистатецханге,
и ми смо проверили да реадиСтате је 4 и статус 200,
онда све што треба да урадите је отвори асинхроног
захтјев, који је управо доношење ХТТП ГЕТ захтев уопште.
Само ради програмски, уместо преко нашег веб бровсер.
И онда послати тај захтев.
Дакле, шта ово можда изгледају у контексту?
Дакле, овде је функција која бави АЈАКС захтеве.
ОК?
И произвољно сам рекао прихвата аргумент.
И ово нека врста Генерално скелет овде.
На самом почетку, добијамо сами нови КСМЛХттпРекуест објекат.
Затим, треба да подесите онреадистатецханге понашање.
И тако ћу да кажем када се реадиСтате промене,
Желим да позовем ову функцију.
>> Који ће се питати питање, ако реадиСтате
је 4, уколико је реадиСтате променио да буду 4, а стање је било 200,
тако да смо имали успешну захтев, ја желе да ураде нешто на страници.
И ми ћемо да погледамо при пример шта
да нешто може бити у секунди.
Дакле, сада сам дефинисано мој анонимни функција,
моја функција одговор кад се реадиСтате промене.
>> Онда сам само треба да се отвори затражити, користећи Опен методе.
И онда, послати тај захтев.
И хајде да погледамо а још конкретније,
од чега АЈАКС може да уради на нашим страницама.
Дакле, имам овде врло једноставан страна зове хоме.хтмл.
И ја сам добио информацију иде овде и нека врста падајућег менија.
>> И ми ћемо поново ово у једној секунди.
Али мислим да сада треба потрајати погледај стварног изворног кода.
И тако, ја ћу да отворим хоме.хтмл.
А видећемо шта се дешава.
Тако се на самом врху овде, имам нека ЈаваСкрипт ствари које се дешава.
>> И овде, очигледно имам а див чији ИД је инфодив,
и неке информације ће ићи тамо.
И онда ја имам овај формулар.
А у ово облик, имам нешто
назива Одаберите који је само падајући мени
са гомилом различитих опција.
И очигледно када се то мења када опција која је изабрана хас
променило, ја ћу да зовем нека функција цс50Инфо,
а онда ћу пролазе у тхис.валуе,
где ово односи на која опција је изабрана,
а вредност је један од њих овдје, оптион вредност = једнако празни, "Блумберг"
"бовден," "цхан," и "Малан".
>> Дакле, шта би могло заправо десити овде кад радим ово?
Па, хајде да погледај блумберг.хтмл.
Изгледа да је само фрагмент неког ХТМЛ.
И, у ствари, шта се надам ће да се деси овде
се да ћу бити у стању да плуг Овај ХТМЛ директно у моју веб страницу
без релоад страница, тако да када се
Бирам Ханнах из падајућег менија Мени, информације о Ханнах,
Конкретно, ова информација овде у блумберг.хтмл,
је оно што се појављује на страници.
И не морам да освежите.
И ако сам изабрао неког другог, њихове информације ће се појавити.
Како то да урадим ово?
Опет, ово захтева да користите неки АЈАКС.
И тако, ми ћемо отворити ајак.јс.
И овде је то функција, цс50Инфо.
Ако име није ништа, ја вратити.
Нећу да радим ништа ако празан опција је изабрана.
Иначе, ја ћу створити нову КСМЛХттпРекуест.
А онда ћу да кажем, када је реадиСтате промене, позовите ову функцију.
>> А ако је реадиСтате 4 и статус 200,
ево мало од јКуери он лине 13.
Али све што радим је рекао, мењају садржај инфодив
да се све што се вратио као одговор од мог ХттпРекуест.
>> Који је мој ХттпРекуест?
Па, то је тачно овде он лине 18 и 19.
Линија 18, ја у основи припреме А Гет захтев за име + .хтмл.
И опет, овде је име аргумент који је био
усвојен у као параметар цс50Инфо.
>> Дакле, у основи, ја пролази неко име, што је то био скуп опција
да смо видели у падајући мени у облику.
Идем то име.
А ја кажем да бих вас замолио да молимо вас да добију за мене да филе.хтмл,
а затим послати тај захтев.
>> И то се дешава онреадистатецханге да се слуша и чекају и чекају
и чека, док реадиСтате је 4, а статус је 200.
Тако да је спреман да се служи, а захтев је био успешан.
И онда, ако јесте, то ће мењају садржај инфодив
да је текст одговор да сам се вратио.
>> Дакле, хајде да видимо како ово Можда заправо раде.
Тако ћемо кренути у моју бровсер прозор, а ми ћемо погледати овде.
Дакле, хајде да погледамо шта се дешава овде у АЈАКС.
Дакле, ми ћемо изабрати некога из падајућег менија.
Дакле, у овом случају, хајде да само изаберите Хану.
И обавештење да је Хана информације се променило,
али нисам имао ани-- мој страна није у потпуности релоад.
Оно је остао.
Већина ствари је остао.
АЈАКС тест није променио.
Сама тастер, овај падајући мени нису променили.
Али информације радили тамо промене.
И зависно од тога како брзо мом компјутеру потези,
ви заправо може видети да садржај нестаје, а затим се поново појављује заиста
брзо.
То је садржај био брише из инфодив,
а затим замењен са нови асинхрони захтев.
>> Дакле, ако сам га пребацити да се каже, Роб-- и опет, погледај,
и можда ћемо видети ствари нестају и поново се појаве брзо.
Видиш то?
Како је пало у гостима, и онда поново напуњен?
То је АЈАКС захтев врста дешавају.
И тако зависности од Лице бирам, ја сам
начини другачије Асинхроне Захтев за другом фајлу
да имам на мом серверу.
А садржај мог инфодив се ажурирање,
на основу којих од њих сам изабрао.
Дакле, то је заиста све што је потребно АЈАКС.
То нам омогућава да ове Асинхроне захтеви, исправке на страницу.
Без потребе да освежите целу страну,
ћемо добити нови Садржај из њега тако што
нова свеже захтев на сервер.
И тако, наши странице могу постати доста динамичнији.
>> И као што смо добили више и напреднији, те
Можда се такве ствари рецимо, примљену е-пошту,
где немате ништа да радите.
Не морате да притиснете падајући мени или кликните ништа,
и одједном, ваш најновији Е-маил појави на врху.
То је такође само Ајакс захтев.
Ајакс тражи своје сервер, маил сервер,
то сенд над свим информацијама о својим најновијим е-маилова,
и мења оно што видите на екран да буде твој најновији сет е-поште.
А ако имате нову у тамо, онда је садржај тог див
ће се променити да одражава ажурирани садржај.
Ја сам Доуг Лојд.
Ово је ЦС50.