1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:04,810 [Мусиц плаиинг] 3 00:00:04,810 --> 00:00:06,940 >> Даг Ллоид: Па јос један некако идеји да 4 00:00:06,940 --> 00:00:12,120 врста спада под окриљем ЈаваСцрипт је нешто што се зове АЈАКС. 5 00:00:12,120 --> 00:00:15,310 До ове тачке, наш интеракција са ЈаваСцрипт 6 00:00:15,310 --> 00:00:17,727 је ограничена на гура тастер и нешто деси. 7 00:00:17,727 --> 00:00:19,560 Конкретно, нешто што се дешава 8 00:00:19,560 --> 00:00:22,950 је наш веб странице изгледају и осећају промене. 9 00:00:22,950 --> 00:00:23,450 Jel tako? 10 00:00:23,450 --> 00:00:26,540 Као нарочито у Доцумент Објецт Модел видео 11 00:00:26,540 --> 00:00:29,060 Променио сам боју позадине. 12 00:00:29,060 --> 00:00:33,240 Али када сам то урадио, нисам имао да радим никакве посебне додатне захтеве. 13 00:00:33,240 --> 00:00:36,800 Ја не морам да тражи да сервер ми послати нову страну. 14 00:00:36,800 --> 00:00:39,620 Управо сам променио оно што сам већ имао. 15 00:00:39,620 --> 00:00:42,245 Нисам имао то релоад моју страницу, и ствари дефинитивно променило, 16 00:00:42,245 --> 00:00:43,760 па то је сјајно. 17 00:00:43,760 --> 00:00:48,400 Али дефинитивно постоји нека упутство за интеракцију укључени. 18 00:00:48,400 --> 00:00:53,140 АЈАКС је кул техника која омогућава да ажурира садржај странице је, 19 00:00:53,140 --> 00:00:55,750 а не само изглед и осећају, без претовара. 20 00:00:55,750 --> 00:00:58,610 >> И од када сам конкретно кажу ажурирање садржаја странице је, 21 00:00:58,610 --> 00:01:01,990 Ја не кажем да смо написали страница користи ЈаваСцрипт. 22 00:01:01,990 --> 00:01:06,560 Кажем ми заправо тражити више информација са сервера 23 00:01:06,560 --> 00:01:08,640 без наш потребе да поново. 24 00:01:08,640 --> 00:01:10,850 >> Сада такве мало напреднији техника 25 00:01:10,850 --> 00:01:11,950 да ћемо да разговарамо о у овом видеу. 26 00:01:11,950 --> 00:01:13,720 Идемо да се мало интеракцију. 27 00:01:13,720 --> 00:01:17,750 Али када радимо, ја ћу бити што захтева на веб сервер. 28 00:01:17,750 --> 00:01:21,140 У овом случају, само оно што је ради свој Апацхе веб сервер. 29 00:01:21,140 --> 00:01:25,010 Ја ћу правити додатне Захтеви док ја посетите веб страницу, 30 00:01:25,010 --> 00:01:26,890 али моја страна неће освежити. 31 00:01:26,890 --> 00:01:30,000 >> Само ће асинкроно упдате моју страницу. 32 00:01:30,000 --> 00:01:31,840 И то је, у ствари, која се залаже за АЈАКС, 33 00:01:31,840 --> 00:01:35,400 је асинхрони ЈаваСцрипт и КСМЛ. 34 00:01:35,400 --> 00:01:37,910 КСМЛ је друга врста ознаке језика, а можете сортирати у 35 00:01:37,910 --> 00:01:39,680 мислите о томе као и ХТМЛ. 36 00:01:39,680 --> 00:01:42,990 То није сасвим иста ствар, али то је у основи само Маркуп Лангуаге. 37 00:01:42,990 --> 00:01:47,770 Дакле, то је асинхрони Јавасцрипт и Маркуп Лангуаге. 38 00:01:47,770 --> 00:01:50,590 >> Дакле, да би користили овај АЈАКС АЈАКС тецхникуе-- 39 00:01:50,590 --> 00:01:52,230 није посебан програмски језик. 40 00:01:52,230 --> 00:01:55,300 То је само нека врста сет тецхникуес-- ве 41 00:01:55,300 --> 00:01:57,870 треба да створи посебан ЈаваСцрипт објекат, који 42 00:01:57,870 --> 00:02:00,689 се назива КСМЛХттпРекуест. 43 00:02:00,689 --> 00:02:01,980 Сада је веома лако да то урадите. 44 00:02:01,980 --> 00:02:04,550 Само смо рекли вар, без обзира желимо да зовемо овај објекат, 45 00:02:04,550 --> 00:02:07,030 једнако нови КСМЛХттпРекуест. 46 00:02:07,030 --> 00:02:11,050 И сада смо сада добија АЈАКС врста објекта, 47 00:02:11,050 --> 00:02:14,370 или КСМЛХттпРекуест објекат, који ће омогућити 48 00:02:14,370 --> 00:02:18,360 да асинкроно ажурирати нашу страницу. 49 00:02:18,360 --> 00:02:23,100 >> Након што смо добили овај нови објекат, ово КСМЛХттпРекуест, 50 00:02:23,100 --> 00:02:27,760 морамо да урадимо нешто да своје онреадистатецханге понашање. 51 00:02:27,760 --> 00:02:30,360 Онреадистатецханге понашање је заиста само 52 00:02:30,360 --> 00:02:34,080 када направите захтев на веб страници, страница 53 00:02:34,080 --> 00:02:35,880 пролази кроз низ корака. 54 00:02:35,880 --> 00:02:37,370 Прво, захтев није послат. 55 00:02:37,370 --> 00:02:39,860 Затим, захтев је био послао, али не поступа. 56 00:02:39,860 --> 00:02:41,580 Тада је захтев поступа. 57 00:02:41,580 --> 00:02:43,680 Тада је тај захтев шаљу назад са тобом. 58 00:02:43,680 --> 00:02:46,930 >> Затим, захтев Потпуно натоварен на вашу страницу. 59 00:02:46,930 --> 00:02:48,640 То су различите државе. 60 00:02:48,640 --> 00:02:53,890 И тако морамо да поставимо Нова КСМЛХттпРекуест објекат 61 00:02:53,890 --> 00:02:58,740 да мењају када спремне државне промене. 62 00:02:58,740 --> 00:03:01,925 И обично, ми то радимо од дефинисање анонимну функцију, која 63 00:03:01,925 --> 00:03:04,490 ми смо упознати са из Јавасцрипт сада, да 64 00:03:04,490 --> 00:03:09,840 Када се зове стање Спреман промене. 65 00:03:09,840 --> 00:03:11,340 То стварно није много више од тога. 66 00:03:11,340 --> 00:03:14,340 Ми ћемо се дефинисања Функција анонимно, некако се свиђа оно 67 00:03:14,340 --> 00:03:16,440 смо радили у Јавасцрипт, где бисмо 68 00:03:16,440 --> 00:03:18,750 имају анонимну функцију реагује на клик на, 69 00:03:18,750 --> 00:03:23,230 или када смо радили мапу разни предмети у низу. 70 00:03:23,230 --> 00:03:25,220 >> Нешто се десило када нешто је кликнуло. 71 00:03:25,220 --> 00:03:28,810 У овом случају, то је само нешто дешава када држава нашој страници 72 00:03:28,810 --> 00:03:30,160 promene. 73 00:03:30,160 --> 00:03:32,730 Постоје две друге особине које су врста од-- нису 74 00:03:32,730 --> 00:03:35,524 само својства која су инхерентно КСМЛХттпРекуест, 75 00:03:35,524 --> 00:03:36,940 али они су прилично важне. 76 00:03:36,940 --> 00:03:39,815 Постоји нешто што се зове реадиСтате, који као што вероватно можете погодити, 77 00:03:39,815 --> 00:03:41,750 је у вези са онреадистатецханге. 78 00:03:41,750 --> 00:03:44,250 То вам заправо говори шта је реадиСтате је. 79 00:03:44,250 --> 00:03:46,289 0, 1, 2, 3, и 4 су могућности тамо, 80 00:03:46,289 --> 00:03:48,080 и они некако грубо одговарају ономе што 81 00:03:48,080 --> 00:03:50,030 Само сам говорио о пре другог. 82 00:03:50,030 --> 00:03:53,100 >> А онда статуса, који надам се да је све прошло у реду, 83 00:03:53,100 --> 00:03:56,710 је 200, што је скраћеница Јер, наравно, у реду, 84 00:03:56,710 --> 00:03:58,330 који смо упознати са са хттп. 85 00:03:58,330 --> 00:04:03,735 Дакле, надамо се да наша држава спремна је четири, а наша статус је 200. 86 00:04:03,735 --> 00:04:07,940 И ако наше државе спреман је четири, а одговор 87 00:04:07,940 --> 00:04:11,490 је спреман да се стави на страна, а статус је 200, 88 00:04:11,490 --> 00:04:13,580 били смо у стању да уради све успешно, 89 00:04:13,580 --> 00:04:17,209 сада можемо асинхроно упдате нашу страницу 90 00:04:17,209 --> 00:04:21,730 без релоад Целокупан садржај тога. 91 00:04:21,730 --> 00:04:27,710 >> Након што смо дефинисали шта се дешава у понашању онреадистатецханге, 92 00:04:27,710 --> 00:04:31,020 и ми смо проверили да реадиСтате је 4 и статус 200, 93 00:04:31,020 --> 00:04:33,900 онда све што треба да урадите је отвори асинхроног 94 00:04:33,900 --> 00:04:38,530 захтјев, који је управо доношење ХТТП ГЕТ захтев уопште. 95 00:04:38,530 --> 00:04:41,950 Само ради програмски, уместо преко нашег веб бровсер. 96 00:04:41,950 --> 00:04:43,786 И онда послати тај захтев. 97 00:04:43,786 --> 00:04:45,660 Дакле, шта ово можда изгледају у контексту? 98 00:04:45,660 --> 00:04:49,790 Дакле, овде је функција која бави АЈАКС захтеве. 99 00:04:49,790 --> 00:04:50,290 ОК? 100 00:04:50,290 --> 00:04:52,430 И произвољно сам рекао прихвата аргумент. 101 00:04:52,430 --> 00:04:55,550 И ово нека врста Генерално скелет овде. 102 00:04:55,550 --> 00:05:00,890 На самом почетку, добијамо сами нови КСМЛХттпРекуест објекат. 103 00:05:00,890 --> 00:05:03,830 Затим, треба да подесите онреадистатецханге понашање. 104 00:05:03,830 --> 00:05:06,970 И тако ћу да кажем када се реадиСтате промене, 105 00:05:06,970 --> 00:05:10,110 Желим да позовем ову функцију. 106 00:05:10,110 --> 00:05:12,570 >> Који ће се питати питање, ако реадиСтате 107 00:05:12,570 --> 00:05:17,240 је 4, уколико је реадиСтате променио да буду 4, а стање је било 200, 108 00:05:17,240 --> 00:05:20,799 тако да смо имали успешну захтев, ја желе да ураде нешто на страници. 109 00:05:20,799 --> 00:05:22,590 И ми ћемо да погледамо при пример шта 110 00:05:22,590 --> 00:05:25,010 да нешто може бити у секунди. 111 00:05:25,010 --> 00:05:27,830 Дакле, сада сам дефинисано мој анонимни функција, 112 00:05:27,830 --> 00:05:31,340 моја функција одговор кад се реадиСтате промене. 113 00:05:31,340 --> 00:05:37,120 >> Онда сам само треба да се отвори затражити, користећи Опен методе. 114 00:05:37,120 --> 00:05:39,160 И онда, послати тај захтев. 115 00:05:39,160 --> 00:05:41,980 И хајде да погледамо а још конкретније, 116 00:05:41,980 --> 00:05:46,290 од чега АЈАКС може да уради на нашим страницама. 117 00:05:46,290 --> 00:05:49,740 Дакле, имам овде врло једноставан страна зове хоме.хтмл. 118 00:05:49,740 --> 00:05:53,620 И ја сам добио информацију иде овде и нека врста падајућег менија. 119 00:05:53,620 --> 00:05:55,390 >> И ми ћемо поново ово у једној секунди. 120 00:05:55,390 --> 00:05:59,150 Али мислим да сада треба потрајати погледај стварног изворног кода. 121 00:05:59,150 --> 00:06:01,080 И тако, ја ћу да отворим хоме.хтмл. 122 00:06:01,080 --> 00:06:03,490 123 00:06:03,490 --> 00:06:04,740 А видећемо шта се дешава. 124 00:06:04,740 --> 00:06:08,240 Тако се на самом врху овде, имам нека ЈаваСкрипт ствари које се дешава. 125 00:06:08,240 --> 00:06:12,470 >> И овде, очигледно имам а див чији ИД је инфодив, 126 00:06:12,470 --> 00:06:15,290 и неке информације ће ићи тамо. 127 00:06:15,290 --> 00:06:16,374 И онда ја имам овај формулар. 128 00:06:16,374 --> 00:06:18,081 А у ово облик, имам нешто 129 00:06:18,081 --> 00:06:20,200 назива Одаберите који је само падајући мени 130 00:06:20,200 --> 00:06:22,150 са гомилом различитих опција. 131 00:06:22,150 --> 00:06:26,150 И очигледно када се то мења када опција која је изабрана хас 132 00:06:26,150 --> 00:06:30,600 променило, ја ћу да зовем нека функција цс50Инфо, 133 00:06:30,600 --> 00:06:33,190 а онда ћу пролазе у тхис.валуе, 134 00:06:33,190 --> 00:06:35,740 где ово односи на која опција је изабрана, 135 00:06:35,740 --> 00:06:39,820 а вредност је један од њих овдје, оптион вредност = једнако празни, "Блумберг" 136 00:06:39,820 --> 00:06:42,610 "бовден," "цхан," и "Малан". 137 00:06:42,610 --> 00:06:45,090 >> Дакле, шта би могло заправо десити овде кад радим ово? 138 00:06:45,090 --> 00:06:48,800 Па, хајде да погледај блумберг.хтмл. 139 00:06:48,800 --> 00:06:51,330 140 00:06:51,330 --> 00:06:53,924 Изгледа да је само фрагмент неког ХТМЛ. 141 00:06:53,924 --> 00:06:56,090 И, у ствари, шта се надам ће да се деси овде 142 00:06:56,090 --> 00:07:00,020 се да ћу бити у стању да плуг Овај ХТМЛ директно у моју веб страницу 143 00:07:00,020 --> 00:07:02,970 без релоад страница, тако да када се 144 00:07:02,970 --> 00:07:07,510 Бирам Ханнах из падајућег менија Мени, информације о Ханнах, 145 00:07:07,510 --> 00:07:11,100 Конкретно, ова информација овде у блумберг.хтмл, 146 00:07:11,100 --> 00:07:12,574 је оно што се појављује на страници. 147 00:07:12,574 --> 00:07:13,740 И не морам да освежите. 148 00:07:13,740 --> 00:07:16,842 И ако сам изабрао неког другог, њихове информације ће се појавити. 149 00:07:16,842 --> 00:07:17,550 Како то да урадим ово? 150 00:07:17,550 --> 00:07:20,290 Опет, ово захтева да користите неки АЈАКС. 151 00:07:20,290 --> 00:07:22,540 И тако, ми ћемо отворити ајак.јс. 152 00:07:22,540 --> 00:07:25,550 И овде је то функција, цс50Инфо. 153 00:07:25,550 --> 00:07:27,410 Ако име није ништа, ја вратити. 154 00:07:27,410 --> 00:07:31,450 Нећу да радим ништа ако празан опција је изабрана. 155 00:07:31,450 --> 00:07:35,420 Иначе, ја ћу створити нову КСМЛХттпРекуест. 156 00:07:35,420 --> 00:07:39,020 А онда ћу да кажем, када је реадиСтате промене, позовите ову функцију. 157 00:07:39,020 --> 00:07:43,630 >> А ако је реадиСтате 4 и статус 200, 158 00:07:43,630 --> 00:07:45,740 ево мало од јКуери он лине 13. 159 00:07:45,740 --> 00:07:50,450 Али све што радим је рекао, мењају садржај инфодив 160 00:07:50,450 --> 00:07:57,820 да се све што се вратио као одговор од мог ХттпРекуест. 161 00:07:57,820 --> 00:07:59,590 >> Који је мој ХттпРекуест? 162 00:07:59,590 --> 00:08:02,020 Па, то је тачно овде он лине 18 и 19. 163 00:08:02,020 --> 00:08:08,550 Линија 18, ја у основи припреме А Гет захтев за име + .хтмл. 164 00:08:08,550 --> 00:08:11,170 И опет, овде је име аргумент који је био 165 00:08:11,170 --> 00:08:14,280 усвојен у као параметар цс50Инфо. 166 00:08:14,280 --> 00:08:18,460 >> Дакле, у основи, ја пролази неко име, што је то био скуп опција 167 00:08:18,460 --> 00:08:22,980 да смо видели у падајући мени у облику. 168 00:08:22,980 --> 00:08:24,450 Идем то име. 169 00:08:24,450 --> 00:08:29,530 А ја кажем да бих вас замолио да молимо вас да добију за мене да филе.хтмл, 170 00:08:29,530 --> 00:08:31,020 а затим послати тај захтев. 171 00:08:31,020 --> 00:08:34,820 >> И то се дешава онреадистатецханге да се слуша и чекају и чекају 172 00:08:34,820 --> 00:08:39,460 и чека, док реадиСтате је 4, а статус је 200. 173 00:08:39,460 --> 00:08:44,970 Тако да је спреман да се служи, а захтев је био успешан. 174 00:08:44,970 --> 00:08:49,500 И онда, ако јесте, то ће мењају садржај инфодив 175 00:08:49,500 --> 00:08:53,030 да је текст одговор да сам се вратио. 176 00:08:53,030 --> 00:08:54,930 >> Дакле, хајде да видимо како ово Можда заправо раде. 177 00:08:54,930 --> 00:08:58,860 Тако ћемо кренути у моју бровсер прозор, а ми ћемо погледати овде. 178 00:08:58,860 --> 00:09:01,359 Дакле, хајде да погледамо шта се дешава овде у АЈАКС. 179 00:09:01,359 --> 00:09:03,400 Дакле, ми ћемо изабрати некога из падајућег менија. 180 00:09:03,400 --> 00:09:06,079 Дакле, у овом случају, хајде да само изаберите Хану. 181 00:09:06,079 --> 00:09:08,120 И обавештење да је Хана информације се променило, 182 00:09:08,120 --> 00:09:11,030 али нисам имао ани-- мој страна није у потпуности релоад. 183 00:09:11,030 --> 00:09:12,190 Оно је остао. 184 00:09:12,190 --> 00:09:13,320 Већина ствари је остао. 185 00:09:13,320 --> 00:09:14,320 АЈАКС тест није променио. 186 00:09:14,320 --> 00:09:16,700 Сама тастер, овај падајући мени нису променили. 187 00:09:16,700 --> 00:09:18,260 Али информације радили тамо промене. 188 00:09:18,260 --> 00:09:20,218 И зависно од тога како брзо мом компјутеру потези, 189 00:09:20,218 --> 00:09:24,430 ви заправо може видети да садржај нестаје, а затим се поново појављује заиста 190 00:09:24,430 --> 00:09:24,930 брзо. 191 00:09:24,930 --> 00:09:27,320 То је садржај био брише из инфодив, 192 00:09:27,320 --> 00:09:29,940 а затим замењен са нови асинхрони захтев. 193 00:09:29,940 --> 00:09:34,410 >> Дакле, ако сам га пребацити да се каже, Роб-- и опет, погледај, 194 00:09:34,410 --> 00:09:38,379 и можда ћемо видети ствари нестају и поново се појаве брзо. 195 00:09:38,379 --> 00:09:38,920 Видиш то? 196 00:09:38,920 --> 00:09:41,400 Како је пало у гостима, и онда поново напуњен? 197 00:09:41,400 --> 00:09:43,640 То је АЈАКС захтев врста дешавају. 198 00:09:43,640 --> 00:09:46,060 И тако зависности од Лице бирам, ја сам 199 00:09:46,060 --> 00:09:50,690 начини другачије Асинхроне Захтев за другом фајлу 200 00:09:50,690 --> 00:09:52,730 да имам на мом серверу. 201 00:09:52,730 --> 00:09:55,550 А садржај мог инфодив се ажурирање, 202 00:09:55,550 --> 00:09:58,457 на основу којих од њих сам изабрао. 203 00:09:58,457 --> 00:10:00,040 Дакле, то је заиста све што је потребно АЈАКС. 204 00:10:00,040 --> 00:10:04,090 То нам омогућава да ове Асинхроне захтеви, исправке на страницу. 205 00:10:04,090 --> 00:10:06,450 Без потребе да освежите целу страну, 206 00:10:06,450 --> 00:10:08,520 ћемо добити нови Садржај из њега тако што 207 00:10:08,520 --> 00:10:11,170 нова свеже захтев на сервер. 208 00:10:11,170 --> 00:10:13,420 И тако, наши странице могу постати доста динамичнији. 209 00:10:13,420 --> 00:10:15,128 >> И као што смо добили више и напреднији, те 210 00:10:15,128 --> 00:10:17,700 Можда се такве ствари рецимо, примљену е-пошту, 211 00:10:17,700 --> 00:10:19,850 где немате ништа да радите. 212 00:10:19,850 --> 00:10:22,560 Не морате да притиснете падајући мени или кликните ништа, 213 00:10:22,560 --> 00:10:25,920 и одједном, ваш најновији Е-маил појави на врху. 214 00:10:25,920 --> 00:10:27,840 То је такође само Ајакс захтев. 215 00:10:27,840 --> 00:10:30,460 Ајакс тражи своје сервер, маил сервер, 216 00:10:30,460 --> 00:10:33,360 то сенд над свим информацијама о својим најновијим е-маилова, 217 00:10:33,360 --> 00:10:38,110 и мења оно што видите на екран да буде твој најновији сет е-поште. 218 00:10:38,110 --> 00:10:41,080 А ако имате нову у тамо, онда је садржај тог див 219 00:10:41,080 --> 00:10:44,580 ће се променити да одражава ажурирани садржај. 220 00:10:44,580 --> 00:10:45,480 Ја сам Доуг Лојд. 221 00:10:45,480 --> 00:10:47,500 Ово је ЦС50. 222 00:10:47,500 --> 00:10:49,229