1 00:00:00,000 --> 00:00:02,850 >> [Раздел 9 - малко удобни] 2 00:00:02,850 --> 00:00:04,920 [Nate Hardison - Harvard University] 3 00:00:04,920 --> 00:00:07,230 [Това е CS50. - CS50.TV] 4 00:00:07,230 --> 00:00:11,140 >> Добре. Така че, последният раздел на семестъра. 5 00:00:11,140 --> 00:00:18,380 За да започнете, аз знам, че е имало някои викове да се направят някои Ajax, 6 00:00:18,380 --> 00:00:21,860 но има ли други теми, които ние трябва да се прави на първо място? 7 00:00:21,860 --> 00:00:24,960 Позволете ми да премина към IPAD, така че ние имаме - 8 00:00:24,960 --> 00:00:29,160 Позволете ми да използвам черен вместо портокал. 9 00:00:29,160 --> 00:00:35,730 Аякс е в менюто. Всеки друг? 10 00:00:35,730 --> 00:00:40,670 Всякакви други теми, които хората искат да видят? Чух DOM твърде рано. 11 00:00:40,670 --> 00:00:45,130 [Ученик] Jquery. >> Jquery. Добре. 12 00:00:45,130 --> 00:00:49,190 Jquery. Ние можем да направим хладно оръжие на това също. 13 00:00:49,190 --> 00:00:58,190 [Ученик] XML. >> XML. >> [Ученик] JSON. >> XML, JSON. Добре. 14 00:00:58,190 --> 00:01:06,390 PHP? Всичко добро? С? Всичко добро? >> [Ученик] Тя не би навредило да поговорим за PHP. 15 00:01:06,390 --> 00:01:10,890 Hash таблици? Опитва? Свързани списъци? 16 00:01:10,890 --> 00:01:16,970 [Ученик] О, на теста от миналата година, има маса за омегата и големия O. 17 00:01:16,970 --> 00:01:21,360 Да. >> [Ученик] тъй като времето за различните видове версии и илюзии. 18 00:01:21,360 --> 00:01:25,140 Може ли да поговорим за това? >> Да. Ще говорим за малко на структури от данни. 19 00:01:25,140 --> 00:01:33,640 [Ученик] Да. >> [Ученик] Опитва. >> [Hardison] Структури от данни. 20 00:01:33,640 --> 00:01:37,230 Ние ще говорим за някои опити за сигурен. 21 00:01:37,230 --> 00:01:42,530 [Ученик] Можем ли да имаме CSS малко? >> Да, ние можем да направим малко CSS. 22 00:01:45,280 --> 00:01:49,290 Всякакви други теми? Сам? >> [Ученик] Обхват в PHP. >> [Hardison] Обхват. 23 00:01:52,540 --> 00:01:56,760 Обхват в PHP. >> [Ученик] HTTP. 24 00:01:56,760 --> 00:02:01,410 HTTP. Awesome. 25 00:02:09,729 --> 00:02:14,380 Предполагам, че един от начините да направите това е да се организира всичко вид хронологично 26 00:02:14,380 --> 00:02:17,930 и да започне със структури от данни, тъй като тези, които са били по-рано. 27 00:02:17,930 --> 00:02:23,480 Или можем да присвоите тези някакъв приоритет претегляне и отидете от там. 28 00:02:23,480 --> 00:02:25,860 Така че това, което мисля, че момчета? 29 00:02:25,860 --> 00:02:27,820 Има ли нещо, което всеки умира, за да видите? 30 00:02:27,820 --> 00:02:31,200 Нека да направим рейз на ръце. Какво ще кажете за Ajax? 31 00:02:31,200 --> 00:02:33,320 Колко от вас искат да знаят за Ajax? 32 00:02:33,320 --> 00:02:37,870 Колко от вас са като: "Човече, Ajax, Държа те"? Никой. Добре. 33 00:02:37,870 --> 00:02:40,900 Така че Аякс е доста висок. Нека звезда, която човек. 34 00:02:40,900 --> 00:02:46,650 Какво ще кажете за DOM? Всички готови за рок DOM? Не? Добре. Ще звезда, която също. 35 00:02:46,650 --> 00:02:49,040 JQuery? 36 00:02:50,330 --> 00:02:52,780 Queryless. Да. Добре. 37 00:02:52,780 --> 00:02:56,380 Няколко души за Jquery, но все пак хората са малко по-хладен с това. Добре. 38 00:02:56,380 --> 00:03:03,000 XML? XML. >> [Ученик] Използвате ли, че повече, отколкото в контекста на Аякс? 39 00:03:03,000 --> 00:03:08,670 В смисъл, че - Да. 40 00:03:08,670 --> 00:03:14,540 Искам да кажа, той е ключов компонент на Ajax, така че предполагам, че можем да се обединят с Ajax, 41 00:03:14,540 --> 00:03:16,700 Забавление за цялото това нещо там. 42 00:03:16,700 --> 00:03:21,830 JSON? Какво е JSON? Добре, охлади. 43 00:03:21,830 --> 00:03:27,200 Структури от данни? Хората се чувстват доста добре там? 44 00:03:27,200 --> 00:03:29,640 Вие знаете вашите свързани списъци, хеш таблици знаете вашите? 45 00:03:29,640 --> 00:03:33,510 Как Speller отиде за всички? Това беше готви, нали? Да. Добре. 46 00:03:33,510 --> 00:03:37,320 Да, можем да поговорим малко за тези, но отново, не толкова важно. 47 00:03:37,320 --> 00:03:39,240 CSS? 48 00:03:41,210 --> 00:03:43,960 Осъществяване вашия уеб сайтове изглеждат доста. Добре. 49 00:03:43,960 --> 00:03:50,670 Обхват в PHP? Една голяма ръка там. Две големи ръце, три. Добре. 50 00:03:50,670 --> 00:03:53,060 Може би средно ръка. >> [Ученик] Повече от 2. 51 00:03:53,060 --> 00:03:56,280 Да. Сам води кампания. Вдигни си ръцете. 52 00:03:56,280 --> 00:04:00,910 HTTP? Добре. 53 00:04:00,910 --> 00:04:07,410 >> Така че нека да видим. Тя изглежда определено като Ajax и DOM са за грайфери. 54 00:04:07,410 --> 00:04:10,300 Така че нека да започнем с това. 55 00:04:12,740 --> 00:04:16,380 Предполагам, че ние имаме няколко възможности тук. 56 00:04:16,380 --> 00:04:21,040 Един от тях е някак да направим една рекапитулация на това, което са Ajax и XML 57 00:04:21,040 --> 00:04:26,520 тъй като ние наистина не разполагат с време, за да направи това в раздел или в проблема задава. 58 00:04:26,520 --> 00:04:31,600 Другото нещо е да се потопите в някои проблеми от викторини предходни години 59 00:04:31,600 --> 00:04:33,990 и да видим какво става там. 60 00:04:33,990 --> 00:04:40,210 Всяко предпочитание между 2? >> [Ученик] Мисля, че конкретни примери ще бъдат по-полезни. 61 00:04:40,210 --> 00:04:42,820 Конкретни примери по-полезно? Добре. 62 00:04:42,820 --> 00:04:46,300 Всякакви такива по-специално, тези от вас, от екипа на Аякс? 63 00:04:46,300 --> 00:04:48,840 Всички проблеми, които искате да погледнете? 64 00:04:48,840 --> 00:04:54,850 [Ученик] е събитие манипулатор свързани с Ajax изобщо? Мисля, че това е. - 65 00:04:54,850 --> 00:05:00,380 JavaScript обработчици на събития не е задължително да са свързани с Ajax. Те могат. 66 00:05:00,380 --> 00:05:03,240 [Ученик] Да, това е друга идея, която аз не се получи в действителност. >> Добре. 67 00:05:03,240 --> 00:05:06,670 [Ученик] Но мисля, че в теста от миналата година има един голям проблем 68 00:05:06,670 --> 00:05:12,320 в по-късните части на теста, който е свързан с Ajax и синтаксиса, че аз не съм наистина - 69 00:05:12,320 --> 00:05:14,330 Добре. И Ella? 70 00:05:14,330 --> 00:05:18,950 [Ученик] Имам чувството, че знам какво е Ajax, но аз не знам как да го използвам. 71 00:05:18,950 --> 00:05:24,580 Добре. >> [Ученик] Имам чувството, че не знам какво е Ajax или как да го използвате. [Смях] 72 00:05:24,580 --> 00:05:27,280 Добре. Това работи доста добре. 73 00:05:27,280 --> 00:05:34,700 Нека да видим. Да може би изглежда най-добър пример за Ajax първи. 74 00:05:34,700 --> 00:05:39,030 >> Добре дошли, добре дошли. Надявам се да са добре пред камерата. 75 00:05:39,030 --> 00:05:42,160 Ако не, можете да се мотае в гърба. 76 00:05:44,610 --> 00:05:48,150 >> Добър пример за Аякс. 77 00:05:51,940 --> 00:05:54,650 Позволете ми да премина към моя лаптоп. 78 00:05:54,650 --> 00:05:57,690 Тук ние сме в Google.com. 79 00:05:57,690 --> 00:06:05,460 Колко от вас някога играе забавно "How Do I?" игра на Google? 80 00:06:05,460 --> 00:06:11,940 Как да направя - и ще получите, за да видите всички най-забавните неща, които идват - 81 00:06:11,940 --> 00:06:15,200 слагам тази музика на моя Tumblr? 82 00:06:15,200 --> 00:06:18,100 И можеш да продължиш напред и да получите всичко това сортиране на забавни неща. 83 00:06:18,100 --> 00:06:21,380 Какво се случва тук? 84 00:06:21,380 --> 00:06:29,270 Докато пишете в полето заявката на Google, резултатите в реално време актуализирате. 85 00:06:29,270 --> 00:06:37,380 Така че сложи това - и забележите, че всички резултати започне актуализиране на интернет страницата на Google. 86 00:06:37,380 --> 00:06:43,940 Това не е нещо, което се случва на вашия компютър. 87 00:06:43,940 --> 00:06:47,870 Мрежата е замесен в това. Google се занимава с това. 88 00:06:47,870 --> 00:06:56,180 Оказва се, че всеки път, когато натиснете бутон, като кажа, G или L, 89 00:06:56,180 --> 00:06:58,770 и резултатите от търсенето обновяване, това, което се случва 90 00:06:58,770 --> 00:07:04,200 е, че има някои JavaScript на страницата, която е откриване, че сте натиснали бутона, 91 00:07:04,200 --> 00:07:14,750 и който се прави заявка за мрежа за Google.com, за да заредите всички от най-новите резултати 92 00:07:14,750 --> 00:07:18,670 който най-добре пасва на заявката, която сте въвели до момента. 93 00:07:21,610 --> 00:07:25,690 За съжаление, аз вярвам, че ако бяхме да разгледаме това - 94 00:07:25,690 --> 00:07:32,690 Отивам да гледам при източника - голямата част от тази Аякс или JavaScript код тук 95 00:07:32,690 --> 00:07:37,830 е всичко minified и често бъркани малко прекалено. 96 00:07:37,830 --> 00:07:43,180 The minification буквално е програма, можете да стартирате свой JavaScript код чрез 97 00:07:43,180 --> 00:07:46,620 и той се променя всички ваши имена на променливи и го прави напълно нечетим 98 00:07:46,620 --> 00:07:49,180 но се опитва да направи своя JavaScript възможно най-кратък 99 00:07:49,180 --> 00:07:52,090 така че, когато изпращате вашите файлове джава по мрежата 100 00:07:52,090 --> 00:07:55,960 вие не се налага да се зареди или изпрати големи файлове. 101 00:07:55,960 --> 00:07:57,960 Така че тези неща е доста трудно да се чете, 102 00:07:57,960 --> 00:08:03,450 но погребан тук, какви правомощия тази typeahead - модерна дума за това - 103 00:08:03,450 --> 00:08:07,450 е искания Аякс. 104 00:08:07,450 --> 00:08:15,230 >> Какво прави искане Ajax-различно от всеки друг вид на искане на мрежата? 105 00:08:15,230 --> 00:08:18,820 Сам? >> [Ученик] Вие не променят адреса. >> [Hardison] Right. Точно така. 106 00:08:18,820 --> 00:08:24,880 Можете да забележите, докато пиша ", как мога да си сложа челюстна кост в режим на сдвояване?" [Подсмихва] 107 00:08:24,880 --> 00:08:28,100 Винаги има някои забавно - Да. 108 00:08:28,100 --> 00:08:30,990 Можете да забележите, че този URL тук на върха не се променя, 109 00:08:30,990 --> 00:08:34,280 и цялата страница не е освежаващо. 110 00:08:34,280 --> 00:08:39,590 Така че, ако се вгледаме в този вид неща чак до тук, тази лента в горната част, това Google, 111 00:08:39,590 --> 00:08:44,630 и след това черната лента до тук, което често се нарича хром на дадена уеб страница, 112 00:08:44,630 --> 00:08:48,630 че не се променя. Цялата страница не е освежаващо. 113 00:08:48,630 --> 00:08:53,890 Искането на Аякс се използва, за да обновите само резултатите на страницата, 114 00:08:53,890 --> 00:08:59,450 Просто една малка част от страницата, така че не сте се налага да отидете напълно различен URL на, 115 00:08:59,450 --> 00:09:04,690 съвсем различен файл, и да заредите, че в паметта. 116 00:09:04,690 --> 00:09:12,640 Така че, когато чуете хора, които говорят за динамичен Web 2.0 типа на революцията, 117 00:09:12,640 --> 00:09:15,370 това е зад много от него. 118 00:09:15,370 --> 00:09:19,800 Това е, което ви дава възможност да пишат на стената пост на Facebook, удари Post, 119 00:09:19,800 --> 00:09:26,350 и са поста яви без целия Facebook страницата освежаващо 120 00:09:26,350 --> 00:09:33,670 или преминете през куп снимки и да заредите снимките динамично, 121 00:09:33,670 --> 00:09:35,970 защото колко ще го смуче, ако отиде да си Facebook страница, 122 00:09:35,970 --> 00:09:38,130 кликнали върху снимки, и след това трябваше да седи там и да чакат 123 00:09:38,130 --> 00:09:43,730 докато всички няколко хиляди от вашите Facebook снимки заредени в паметта? 124 00:09:43,730 --> 00:09:45,170 Това е един огромен товар. 125 00:09:45,170 --> 00:09:48,360 Но с Ajax можете да направите това асинхронно, 126 00:09:48,360 --> 00:09:54,810 и това е асинхронен част на Аякс. 127 00:09:54,810 --> 00:09:56,980 >> Добре. 128 00:09:59,230 --> 00:10:04,370 Добри ли сме? Дали всеки вид разбере приблизително какво прави Ajax? 129 00:10:04,370 --> 00:10:10,670 Това е направено от JavaScript, това е направено вид динамично и асинхронно 130 00:10:10,670 --> 00:10:12,540 след като страницата е заредена. 131 00:10:12,540 --> 00:10:18,010 Той често идва след като вид на отговор на събитие, 132 00:10:18,010 --> 00:10:23,860 който е или щракване с мишката или натискане на клавиш или нещо подобно. 133 00:10:23,860 --> 00:10:30,820 И след това го прави за повикване обратно до сървъра, независимо дали сте на Google.com 134 00:10:30,820 --> 00:10:35,860 или Facebook.com, извлича някои ново съдържание към тогава покажете или обновяване 135 00:10:35,860 --> 00:10:38,050 или нещо подобно. 136 00:10:38,050 --> 00:10:40,080 >> Cool. Добре. 137 00:10:40,080 --> 00:10:45,260 Нека да разгледаме няколко примера от предишни години. 138 00:10:47,260 --> 00:10:49,140 Ние ще отидем на викторини. 139 00:10:49,140 --> 00:10:54,160 И тогава Charlotte, вие споменахте Quiz 1 от 2011 година. >> [Ученик] Да. 140 00:10:54,160 --> 00:11:00,520 Едно нещо, което ще се повишено внимание, че в търсенето на викторини предходни години 141 00:11:00,520 --> 00:11:07,970 ще видите тези неща, наречен XHR често с връзка с Ajax. 142 00:11:07,970 --> 00:11:18,750 XHR и XML HttpRequest е вид на суров начин на правене на Ajax, ако щете. 143 00:11:18,750 --> 00:11:25,740 Тази година ние сме преминали към почти изцяло с помощта на тази библиотека JQuery. 144 00:11:25,740 --> 00:11:34,540 Jquery е библиотека на помощни JavaScript функции и класове и всякакви екстри, 145 00:11:34,540 --> 00:11:40,730 и Jquery вид резюмета на сурово XHR неща далеч от вас 146 00:11:40,730 --> 00:11:44,930 така че това е много по-лесно да се направи действителната Ajax неща. 147 00:11:44,930 --> 00:11:47,020 Така че, както сте превъртате чрез викторини тези от предходни години 148 00:11:47,020 --> 00:11:51,860 и вие виждате неща, които казва XHR и нови XML HttpRequest, 149 00:11:51,860 --> 00:11:54,490 всички такива неща, можете да игнорирате това. 150 00:11:54,490 --> 00:11:56,520 Вместо това ние отиваме точно по начина, JQuery. 151 00:11:56,520 --> 00:12:00,490 Ние не очакваме да знаеш XML HttpRequest. 152 00:12:00,490 --> 00:12:05,690 Но е добре да знаете, че това е синоним на тази идея на Ajax, 153 00:12:05,690 --> 00:12:13,620 Asynchronous JavaScript този привлекателен XML или JSON или каквото и през мрежата. 154 00:12:13,620 --> 00:12:20,260 Но първоначално е свързана с XML или свързан с XML. 155 00:12:20,260 --> 00:12:22,440 >> Добре. 156 00:12:24,090 --> 00:12:27,950 Нека да превъртите надолу. Спомняте ли си, който проблем по-специално, Шарлот? 157 00:12:33,080 --> 00:12:36,550 Беше ли тази страница, че аз гледам точно тук? >> [Ученик] Да, така мисля. 158 00:12:36,550 --> 00:12:38,810 [Hardison] Ах, аз го имам. Добре. Да. 159 00:12:38,810 --> 00:12:41,660 Нека поговорим за това наистина бързо. 160 00:12:44,640 --> 00:12:53,860 Начинът, по който работи е Ajax имаш някои JavaScript файл на вашия компютър, 161 00:12:53,860 --> 00:12:59,570 и наистина това е тичане вид в контекста на вашия уеб браузър. 162 00:12:59,570 --> 00:13:10,820 Така че, ако крайната си проект е да се направи - не знам - нов сайт за запознанства за хора от Харвард 163 00:13:10,820 --> 00:13:15,000 и вие искате вашия сайт за запознанства, за да има възможност за изпращане на анонимни съобщения 164 00:13:15,000 --> 00:13:19,130 от човек на човек или анонимни Facebook стена като мнения 165 00:13:19,130 --> 00:13:24,190 и искате да използвате Ajax в които по някакъв начин, така че когато публикувате съобщение 166 00:13:24,190 --> 00:13:26,960 тя не се обновява, за целия сайт, 167 00:13:26,960 --> 00:13:32,870 в JavaScript код, който ще създаде нова Ajax повикване. 168 00:13:32,870 --> 00:13:36,570 Аз съм обсъждане за това дали или не да се направи това на лаптопа. 169 00:13:36,570 --> 00:13:45,940 Най-важната част за обаждането Ajax е, че този вид asynchronicity да го 170 00:13:45,940 --> 00:13:50,250 в смисъл, че - нека да се върнете обратно към моя IPAD - 171 00:13:52,120 --> 00:14:07,160 в смисъл, че ако имам код, който ще каже направят някои Ajax, 172 00:14:07,160 --> 00:14:11,160 тогава аз не мога още на следващия ред на моя JavaScript код 173 00:14:11,160 --> 00:14:15,170 Очакваме, че Аякс ще са завършили. 174 00:14:15,170 --> 00:14:24,260 Какво се случва, е, че като си код работи последователно в JavaScript, 175 00:14:24,260 --> 00:14:28,760 когато правите този призив Ajax, вие сте по същество разклоняване на разстояние 176 00:14:28,760 --> 00:14:33,960 и изпращане на искане до интернет за някои сървър тук, 177 00:14:33,960 --> 00:14:37,740 което е това поле аз рисувам и очевидно не го съставяне много добре. 178 00:14:37,740 --> 00:14:41,280 Вие сте разклоняване от този разговор на сървъра, че ще отнеме известно време 179 00:14:41,280 --> 00:14:45,020 тъй като тя отива към Интернет и си отива и удря този сървър 180 00:14:45,020 --> 00:14:49,350 и си отива, и призовава, че PHP скрипт, който сте написали в задния край 181 00:14:49,350 --> 00:14:55,110 действително да се констатира, че анонимен съобщение във вашата база данни или нещо подобно. 182 00:14:55,110 --> 00:15:01,640 Така че това ще отнеме известно време, и след това в крайна сметка, когато сървърът се извършва обработката 183 00:15:01,640 --> 00:15:10,090 Вашата заявка Ajax, той ще се върне към вашия JavaScript код, 184 00:15:10,090 --> 00:15:15,190 но наистина не знам къде, в кой момент в изпълнението 185 00:15:15,190 --> 00:15:19,680 ти започваш да получите този отговор. 186 00:15:23,430 --> 00:15:28,620 Как това работи в JavaScript? 187 00:15:28,620 --> 00:15:36,510 Това е мястото, където става дума в този проблем, че ние не говорим за на лаптопа 188 00:15:36,510 --> 00:15:47,230 , където можете да регистрира манипулатор, като се регистрирате функция специално JavaScript 189 00:15:47,230 --> 00:15:52,650 да тече от момента на искането Ajax е завършен. 190 00:15:52,650 --> 00:15:58,010 Не може просто да направите вашия Ajax повикване и след това в следващия ред код 191 00:15:58,010 --> 00:16:01,570 Предполагам, че обаждането Ajax е завършил. 192 00:16:03,670 --> 00:16:08,310 Част от красотата на това е, което искате вашият JavaScript, за да продължи да се движи 193 00:16:08,310 --> 00:16:13,210 , след като е направена поканата Ajax, защото може да се разклони от този отделна заявка 194 00:16:13,210 --> 00:16:15,750 и поддържа обработка на други неща. 195 00:16:15,750 --> 00:16:19,300 Имаш този вид едновременност става тук, където ви JavaScript продължава да работи 196 00:16:19,300 --> 00:16:23,520 и продължаваш да правиш други забавни неща, може да продължи да се върти други искания Аякс. 197 00:16:23,520 --> 00:16:28,630 Вашите искания Аякс просто излизат на мрежата и след това да се върне, когато те се върнат, 198 00:16:28,630 --> 00:16:33,390 но когато се регистрирате този манипулатор функция, 199 00:16:33,390 --> 00:16:40,040 това е, когато знаеш, че си Ajax разговор се е върнал, защото тази функция се нарича получава. 200 00:16:40,040 --> 00:16:46,040 Така че, вместо да се налага този път изпълнението последователно, че ние сме свикнали в C, 201 00:16:46,040 --> 00:16:51,430 Имате ли какво е по-близки до това, което видяхме в Scratch в началото на семестъра 202 00:16:51,430 --> 00:16:54,590 къде имате тези предавания 203 00:16:54,590 --> 00:17:00,930 и тогава ще трябва тези "когато зелен флаг кликнали" или "когато получа това събитие." 204 00:17:00,930 --> 00:17:05,030 Това е по същество това, което се случва тук в JavaScript с тези искания Аякс. 205 00:17:08,790 --> 00:17:11,940 >> За отговора на този въпрос по линия 20, 206 00:17:11,940 --> 00:17:15,500 "В контекста на Ajax, какво прави този ред на код правим?" 207 00:17:15,500 --> 00:17:22,339 Може ли някой вид перифразираме това, което току-що казах, за да потвърдите разбиране? 208 00:17:22,339 --> 00:17:24,630 [Ученик] Съжалявам. Какво означава лявата половина на го кажа? 209 00:17:24,630 --> 00:17:28,600 [Hardison] xhr.onreadystatechange. Извинете. Получавам отсече? 210 00:17:28,600 --> 00:17:31,360 Това е, че XHR синтаксис, че ние няма да се налага да се справят с. 211 00:17:31,360 --> 00:17:34,060 Вие имате подобна концепция с JQuery. 212 00:17:34,060 --> 00:17:39,400 Да отидем в Source Code, сряда, индекс. 213 00:17:39,400 --> 00:17:45,020 Нека да разгледаме това. Добре. Взех го. 214 00:17:48,110 --> 00:17:52,700 Ето, че Ajax синтаксис, че ние не говорим за. 215 00:17:52,700 --> 00:17:56,270 Тук сте се посочва искането Ajax. 216 00:17:56,270 --> 00:18:03,590 Казваш: "Това е URL адресът, който искам да изляза и да пинг." 217 00:18:03,590 --> 00:18:09,250 "Искам да използвам POST, за разлика да се получат." 218 00:18:09,250 --> 00:18:13,520 И тогава типът на данните е "Искам JSON да бъдат върнати." 219 00:18:13,520 --> 00:18:15,670 Отново, XML е вид на нещо традиционно. 220 00:18:15,670 --> 00:18:18,600 Но това, което търсим, е, че функцията. 221 00:18:18,600 --> 00:18:21,130 Това е, че точно тук. 222 00:18:21,130 --> 00:18:24,870 Тази функция (отговор) е, че onreadystatechange. 223 00:18:24,870 --> 00:18:30,300 Това е водачът. Това е, което ще се изпълни, когато тази молба се връща. 224 00:18:30,300 --> 00:18:35,030 Така че можете да забележите, че тази функция, че Томи е писал тук 225 00:18:35,030 --> 00:18:41,850 че ние говорихме за в лекция в сряда е всичко за създаване, че забавно typeahead за нас. 226 00:18:41,850 --> 00:18:46,490 Можете да забележите, че това, което той прави е, че е изграждането на искането Ajax 227 00:18:46,490 --> 00:18:52,680 и след това няма нищо след искането на Аякс. 228 00:18:52,680 --> 00:18:57,470 Той не е обработка на отговор на искането на Аякс след обаждането е направено. 229 00:18:57,470 --> 00:19:00,770 Той го прави само в този манипулатор функция 230 00:19:00,770 --> 00:19:05,170 , който ще бъде наречен най-скоро отговорът се върне. 231 00:19:08,330 --> 00:19:12,580 >> Sam. >> [Ученик] Да искания Аякс трябва да бъде от тип POST или да го бъде ли? 232 00:19:12,580 --> 00:19:16,970 Те могат да бъдат един от двамата. >> [Ученик] Как би тази работа, ако не сте промяна на URL адреса? 233 00:19:16,970 --> 00:19:22,280 Как ще работи, че ако не сте промяна на URL адреса? 234 00:19:22,280 --> 00:19:26,400 Просто зависи от това къде на данните става. 235 00:19:26,400 --> 00:19:30,450 Така че въпросът е може искания Аякс бъдат POST или GET? 236 00:19:30,450 --> 00:19:37,730 Това е мястото, където тя може да бъде един от двамата. Това е просто наистина семантична разлика между POST и GET. 237 00:19:40,460 --> 00:19:45,670 GET обикновено означава, че сте само четеше нещо от сървъра 238 00:19:45,670 --> 00:19:50,940 и вие не променя нищо, докато POST обикновено предполага 239 00:19:50,940 --> 00:19:54,390 че сте на запис на данни или пишеш нещо за даден сървър. 240 00:19:54,390 --> 00:19:59,500 Често можете да използвате POST, когато се опитвате да се промени състоянието някъде. 241 00:19:59,500 --> 00:20:04,400 Ето защо влизания винаги излизат с HTTP POST, 242 00:20:04,400 --> 00:20:07,940 има предвид, че Google прави един куп заявки GET. 243 00:20:07,940 --> 00:20:19,850 Всъщност, ако се върнем към нашия Google например и ако се вгледаме в нашите инструменти за разработчици тук, 244 00:20:19,850 --> 00:20:25,360 нека да разгледаме инструментите за разработчици тук на дъното и да се отворят мрежата. 245 00:20:25,360 --> 00:20:32,910 Както можем да започнете да пишете, можете да видите всички от тях GET заявки, идващи инча 246 00:20:36,240 --> 00:20:40,260 Виждаш ли всички тези искания GET тук в долната част на екрана 247 00:20:40,260 --> 00:20:44,550 които са всички тези XJS. 248 00:20:44,550 --> 00:20:52,390 Това е искането на Аякс се върне. 249 00:20:52,390 --> 00:20:59,680 И ако трябва да кликнете върху него, можем да видим какво казва и какво му е отговор. 250 00:20:59,680 --> 00:21:04,190 Това ни дава цялата тази информация за отговора, който имаме 251 00:21:04,190 --> 00:21:09,430 когато ние изпратихме до Google заглавията, които са били тук. 252 00:21:09,430 --> 00:21:15,380 Нека да видим, ако има - ще имаме нашата заявка низ някъде. 253 00:21:19,060 --> 00:21:22,310 Искане URL. Да. 254 00:21:22,310 --> 00:21:31,630 Original заявка, игнорирайте лошо заявка, втори пас, как м - 255 00:21:31,630 --> 00:21:35,900 Както и да е, някъде тук можете да намерите тази заявка "как I m" 256 00:21:35,900 --> 00:21:39,010 в искането, отправено към сървъра. 257 00:21:39,010 --> 00:21:42,480 И тогава отговорът се върне е това, което виждаме. 258 00:21:42,480 --> 00:21:45,120 Така че, да, той може да бъде или GET или POST. 259 00:21:45,120 --> 00:21:50,650 Тя има тенденция да бъде само семантична разлика. Ние може да покрие, че с HTTP. Да, Ела? 260 00:21:50,650 --> 00:21:55,360 >> [Ученик] е разликата между JSON и XML точно това JSON е по-модерен? 261 00:21:55,360 --> 00:22:00,730 Е разликата между JSON и XML, че JSON е по-модерен? 262 00:22:04,100 --> 00:22:09,900 XML и JSON са само два различни начини за кодиране на данни. 263 00:22:15,130 --> 00:22:20,540 XML е Extensible Markup Language. 264 00:22:20,540 --> 00:22:29,390 HTML е подмножество на XML. 265 00:22:29,390 --> 00:22:34,650 Така например, нека да спра TextEdit. 266 00:22:34,650 --> 00:22:44,990 XML е просто определя като данни, които се затварят в една поредица от тагове. 267 00:22:44,990 --> 00:22:52,820 Така че HTML, / HTML, тези момчета са валидни тагове. 268 00:22:52,820 --> 00:22:57,470 Нека да взриви този размер тук и да я направи по-разбираемо. 269 00:23:00,130 --> 00:23:02,070 здравей! 270 00:23:02,070 --> 00:23:06,300 XML просто дефинира етикет като нещо подобно 271 00:23:06,300 --> 00:23:09,880 където имате отваряща счупена скоба, името на етикет, 272 00:23:09,880 --> 00:23:15,870 и след това на произволен брой атрибути, които в HTML ние често не разполагат с атрибути. 273 00:23:15,870 --> 00:23:25,820 Но например, ако имахме таг скрипт, често има вид на текст, JavaScript. 274 00:23:30,130 --> 00:23:35,770 А вътре на таговете е данни. 275 00:23:37,600 --> 00:23:44,650 В истински XML всъщност можете да определите тези тагове, за да бъде каквото си искате. 276 00:23:44,650 --> 00:23:46,840 Това е просто начин на структуриране на информацията си. 277 00:23:46,840 --> 00:23:53,800 Така например, ако исках да се кодира семейството ми в XML, 278 00:23:53,800 --> 00:24:01,500 Бих могъл да направя нещо подобно, като баща и след това пуснати информация за него 279 00:24:01,500 --> 00:24:09,240 и брат и публикувате информация за брат ми. 280 00:24:09,240 --> 00:24:18,370 Само по този начин на структуриране на вашите данни е XML. 281 00:24:18,370 --> 00:24:24,220 JSON, от друга страна, следва Обект нотация JavaScript, 282 00:24:24,220 --> 00:24:27,140 следователно J-S-О-N, JSON. 283 00:24:27,140 --> 00:24:34,040 Така че вместо да пишете с този вид тагове, затворен тип етикет формат, 284 00:24:34,040 --> 00:24:39,290 ние, вместо да го напиша като обект на JavaScript. 285 00:24:39,290 --> 00:24:45,000 Така обект на JavaScript има фигурна скоба, за да отворите неща 286 00:24:45,000 --> 00:24:48,700 а след това и къдрава скоба, за да затворите неща. 287 00:24:48,700 --> 00:24:53,580 Позволете ми да намалите малко, увеличение инча 288 00:24:53,580 --> 00:24:59,790 И тогава какво сте са имената на полета, така че "баща": 289 00:24:59,790 --> 00:25:05,480 и след това можех да публикувате информация за него 290 00:25:05,480 --> 00:25:12,990 и след това "брат", и информация за брат ми. 291 00:25:16,930 --> 00:25:23,040 И разбира се всичко тук е - 292 00:25:23,040 --> 00:25:26,340 Предполагам, че това, което е хубаво за JSON, за разлика от XML 293 00:25:26,340 --> 00:25:35,750 е така, защото JSON обект е в този обект нотация, че JavaScript е. 294 00:25:35,750 --> 00:25:43,600 JavaScript може наистина лесно дръпнете, че в паметта и го третират само като обект на JavaScript 295 00:25:43,600 --> 00:25:45,500 прав, когато я получи обратно от сървъра. 296 00:25:45,500 --> 00:25:49,460 Няма никаква разбор, че наистина трябва да се направи, че е тежък режим или вдигане на тежки предмети, 297 00:25:49,460 --> 00:25:55,690 докато с XML, което трябва да използва или плъгини или някакъв вид - 298 00:25:55,690 --> 00:25:59,130 В зависимост от това какво точно сте предаване 299 00:25:59,130 --> 00:26:04,770 и това, което използвате, за да получите XML, може да се наложи да се направи малко повече работа разбор, 300 00:26:04,770 --> 00:26:10,090 има предвид, че този JavaScript неща, ако сте само писмено с JavaScript 301 00:26:10,090 --> 00:26:14,780 а вие получавате JavaScript назад, това е много лесно да се работи. 302 00:26:16,590 --> 00:26:19,890 Другото нещо, което хората ще споменават понякога 303 00:26:19,890 --> 00:26:23,630 е, че с XML имате всички тези отворени тагове и близки тагове, 304 00:26:23,630 --> 00:26:30,620 така той може да получи голяма, тя може да се получи малко раздута. 305 00:26:30,620 --> 00:26:33,990 Така че има някои, които ще говорим за това как с JSON 306 00:26:33,990 --> 00:26:42,280 не е нужно всички тези отворени тагове и близки тагове, така че е по-сгъстен. 307 00:26:42,280 --> 00:26:47,350 Причината, че това е важно, е, че когато трябва да се зареди неща по мрежата 308 00:26:47,350 --> 00:26:50,040 когато говориш с отдалечен сървър, 309 00:26:50,040 --> 00:26:55,010 толкова по-малко, че трябва да бъде предавана чрез интернет, по-бързо, всичко върви. 310 00:26:56,890 --> 00:26:59,700 Както и да е, ключовият храна за вкъщи тук е, че те са само два различни начини за структуриране на данните, 311 00:26:59,700 --> 00:27:02,150 форматирането на вашите данни. 312 00:27:04,950 --> 00:27:06,110 >> Добре. 313 00:27:06,110 --> 00:27:08,230 Други въпроси? Шарлот? 314 00:27:08,230 --> 00:27:11,280 [Ученик] Мога ли да задам един последен въпрос за синтаксиса на Аякс? >> Разбира се. 315 00:27:11,280 --> 00:27:16,590 [Ученик] Ако се върнем на пример код и просто отдалечите малко, 316 00:27:16,590 --> 00:27:19,280 има само един ред с код по-горе. 317 00:27:19,280 --> 00:27:21,530 Не може ли просто да отиде? 318 00:27:21,530 --> 00:27:24,260 на ("keyup", функция () 319 00:27:24,260 --> 00:27:30,670 Дали този набор от празни скоби след по ("keyup" се позовава на функцията след успех? 320 00:27:30,670 --> 00:27:33,580 [Hardison] Не. 321 00:27:33,580 --> 00:27:35,450 Няколко неща тук. 322 00:27:35,450 --> 00:27:43,170 на ("keyup", това е начин на правене на равностойността в Scratch 323 00:27:43,170 --> 00:27:50,330 на, когато се натисне клавиш и вдигнете нагоре изключване на ключа. 324 00:27:50,330 --> 00:27:57,440 Всъщност, в JavaScript имате на ("keydown", относно ("keyup", и на ("натискане", 325 00:27:57,440 --> 00:28:06,340 и можете да направите неща, за всеки от тези три различни събития. 326 00:28:06,340 --> 00:28:11,060 Това се е регистрирал за манипулатор на събитие всяко време ключов идва, 327 00:28:11,060 --> 00:28:16,210 и след това тази функция е цялото това нещо 328 00:28:16,210 --> 00:28:19,560 по целия път до там. 329 00:28:19,560 --> 00:28:23,880 Тази функция все още няма име. 330 00:28:23,880 --> 00:28:25,580 Нещо странно. 331 00:28:25,580 --> 00:28:31,500 Всички наши функции, които сме правили в C и PHP са всички имали имена. 332 00:28:31,500 --> 00:28:39,900 Това е, което ние наричаме анонимен функция. Има смисъл, нали? Без име. Anonymous. 333 00:28:39,900 --> 00:28:43,550 Какво е удобен за анонимния функцията? 334 00:28:43,550 --> 00:28:47,860 Ясно е, че не можем да наричаме тази функция никъде другаде в нашия код. 335 00:28:47,860 --> 00:28:53,920 Как бихме нарекли тази функция на друго място в нашия код? Ние не можем. 336 00:28:56,540 --> 00:29:03,120 Няма по име. Не мога да кажа: "О, да, наричаме тази функция, която ви казах с по (" keyup "." 337 00:29:05,080 --> 00:29:08,190 Какво е удобен за него обаче е, че в JavaScript 338 00:29:08,190 --> 00:29:11,100 когато ние сме постоянно регистриране на тези обработчици на събития - 339 00:29:11,100 --> 00:29:17,510 това е, което това се нарича; сте регистриране тази функция като манипулатор, когато ключов идва - 340 00:29:17,510 --> 00:29:23,830 е това е наистина хубаво да бъде в състояние само да определи тези функции вид инлайн и просто да кажем, 341 00:29:23,830 --> 00:29:28,840 "Когато keyup е натиснат, не забравяйте, тази функция, че аз отивам да се определи точно тук, 342 00:29:28,840 --> 00:29:35,340 и тя ще запомни тази функция и след това ще направя тази функция 343 00:29:35,340 --> 00:29:37,590 когато ключът идва. 344 00:29:37,590 --> 00:29:41,930 Ще говорим за това още веднъж можете да получите повече във функционални програмиране. 345 00:29:41,930 --> 00:29:46,080 Това е малко по-малко от вкуса на тази, в която ние сме по същество преминава функция около 346 00:29:46,080 --> 00:29:49,960 като обект, почти толкова, ако го бяхме като променлива. 347 00:29:49,960 --> 00:29:54,410 Вместо да премине низ или ПНА, подминаваме функция. 348 00:29:56,000 --> 00:30:00,400 Това е вид на нещо странно, но това, което е хубаво е, че всички променливи в тук, 349 00:30:00,400 --> 00:30:08,020 във вътрешността на тази функция, въпросите за обхват са приятни 350 00:30:08,020 --> 00:30:18,500 защото, ако имате променлива до тук, можете да се обърнете към тази променлива вътре на тази функция 351 00:30:18,500 --> 00:30:22,720 тъй като тази функция е обявен във вътрешността на тази друга функция. 352 00:30:22,720 --> 00:30:26,670 Така че можете да получите да има ползи като това. 353 00:30:26,670 --> 00:30:31,290 Отново, това е нещо, което е по-мета. Ще го покрие в бъдещите класове. 354 00:30:31,290 --> 00:30:36,150 >> Да. >> [Ученик] Тъй като функцията е анонимен, може да се използва някъде другаде? 355 00:30:36,150 --> 00:30:40,750 Или може да се използва само в рамките на тази функция? 356 00:30:40,750 --> 00:30:45,460 [Hardison] Той се използва само в рамките на тази функция. Да. Да? 357 00:30:45,460 --> 00:30:48,860 >> Има ли нещо общо с факта, че това е обектно-ориентиран език? 358 00:30:48,860 --> 00:30:52,650 [Hardison] Има ли нещо общо с факта, че това е обектно-ориентиран? 359 00:30:58,000 --> 00:31:03,190 Бих казал, че това има повече общо с факта, че това има функционални аспекти. 360 00:31:03,190 --> 00:31:05,640 Ние говорим за обектно-ориентирано програмиране на парадигмата, 361 00:31:05,640 --> 00:31:09,890 и това е вид на един от тези аспекти на функционална парадигма на програмирането 362 00:31:09,890 --> 00:31:17,520 където вие правите функции, които са съставени от други функции 363 00:31:17,520 --> 00:31:22,460 и преминават функции наоколо. 364 00:31:22,460 --> 00:31:25,040 >> [Ученик] Така че JavaScript е също език функция. 365 00:31:25,040 --> 00:31:28,420 Тя има елементи от нея, да. Да. 366 00:31:28,420 --> 00:31:30,000 JavaScript и много - 367 00:31:30,000 --> 00:31:35,120 PHP има някои от това също, Python има същия този вид неща, 368 00:31:35,120 --> 00:31:43,390 Ruby има този вид неща, както и, и това е често срещана в повече от тези модерни езици. 369 00:31:43,390 --> 00:31:49,660 Вие наистина се тези скриптови езици, които са вид на Джак-на-всички-продажби. 370 00:31:49,660 --> 00:31:53,180 Това е като голяма мастна Swiss Army ножа, този, който не може дори да сложи в джоба си 371 00:31:53,180 --> 00:31:55,090 защото е твърде широк. 372 00:31:55,090 --> 00:31:57,970 Това е вид на това как някои от тези езици са станали. 373 00:32:01,190 --> 00:32:04,520 >> Някакви други въпроси? Добре. 374 00:32:04,520 --> 00:32:06,280 Как сте, момчета чувстваш? 375 00:32:06,280 --> 00:32:13,830 Нека да се върнем към този тест наистина бързо и да видим дали можем да отговорим на 21 и 20. 376 00:32:13,830 --> 00:32:22,030 Ние говорихме за 20, тъй като ние регистрирано тази манипулатор. 377 00:32:22,030 --> 00:32:31,550 Този въпрос тук, "Какво би бил ефектът, ако ние написахме тази линия с чифт скоби?" 378 00:32:31,550 --> 00:32:34,680 можете да видите разликата, колко нагоре към върха не са налице скоби 379 00:32:34,680 --> 00:32:38,370 и тук има скоби след името на функцията? 380 00:32:38,370 --> 00:32:43,520 Едно нещо, което е важно да се отбележи, 381 00:32:43,520 --> 00:32:45,410 Тук сме, отнасящи се до дадена функция. 382 00:32:45,410 --> 00:32:48,780 Това не е анонимна функция. Това е било дадено име, манипулатор, 383 00:32:48,780 --> 00:32:52,580 докато в нашия Ajax тук, че ние просто гледаш, 384 00:32:52,580 --> 00:32:58,260 всички функции, които ние минавахме около всички бяха анонимен: не име на функция, 385 00:32:58,260 --> 00:33:00,400 без име функция. 386 00:33:00,400 --> 00:33:05,670 Така че това е обичайна практика да се определят тези функции вид инлайн като анонимни функции 387 00:33:05,670 --> 00:33:08,660 за някои от ползите за обхват. 388 00:33:08,660 --> 00:33:15,340 Вие може много добре да сте определили тази функция тук или този на (функция "keyup". 389 00:33:15,340 --> 00:33:22,400 Можеше да се дефинира този човек като функции с имена на други места в JavaScript код, 390 00:33:22,400 --> 00:33:27,650 и след това, вместо на определяне на функцията тук, ще премине на името на функцията 391 00:33:27,650 --> 00:33:31,320 точно в това място. 392 00:33:31,320 --> 00:33:36,570 Едно нещо е да се отбележи, е, че вие ​​не бихте искали да използвате скоби 393 00:33:36,570 --> 00:33:39,400 ако сте били преминаване на името на функцията, 394 00:33:39,400 --> 00:33:44,480 защото, когато използвате скоби, вие намеквате "наричаме тази функция," 395 00:33:44,480 --> 00:33:48,820 като има предвид, вместо тук, ние просто искаме да се премине на името на функцията. 396 00:33:53,740 --> 00:34:02,400 Ако се вгледаме в това, което става тук, голямата разлика е, че този най-горния ред от код казва 397 00:34:02,400 --> 00:34:08,420 ефективно, поддържа указател към функция, наречена манипулатор, 398 00:34:08,420 --> 00:34:11,820 и когато разговорът приключи Ajax, обадете се на тази функция, 399 00:34:11,820 --> 00:34:17,210 всъщност изпълнява функцията, щепсела в аргументите, вършете всичко на тази работа, 400 00:34:17,210 --> 00:34:23,480 има предвид, че тази линия тук долу казва вместо поддържането на показалеца 401 00:34:23,480 --> 00:34:30,389 на функция, наречена манипулатор, това onreadystatechange поле 402 00:34:30,389 --> 00:34:33,980 ще се проведе в резултат на функция, наречена на манипулатор, 403 00:34:33,980 --> 00:34:38,409 така че ще оцени манипулатор, това ще всъщност наричаме манипулатор точно сега - 404 00:34:38,409 --> 00:34:41,250 не, когато разговорът приключи Ajax но точно сега, 405 00:34:41,250 --> 00:34:43,940 , което не е това, което искате да направите, ако пишете нещо 406 00:34:43,940 --> 00:34:48,150 да се справят с покана Аякс, който е завършен. 407 00:34:56,520 --> 00:35:02,250 >> Добре. Въпроси за това? Това е една малка разлика. 408 00:35:03,640 --> 00:35:06,340 Това е една малка разлика. 409 00:35:06,340 --> 00:35:09,710 Едно нещо, което със сигурност ще предложи това, ако не сте го направили - 410 00:35:09,710 --> 00:35:15,040 защото това е ново нещо, тя отнема известно време, за да наистина потъват в 411 00:35:15,040 --> 00:35:17,840 ако наистина не напишете някои от тези неща - 412 00:35:17,840 --> 00:35:23,340 Бих Ви препоръчваме да мине през изходния код 413 00:35:23,340 --> 00:35:25,610 че Tommy представени в лекция в сряда 414 00:35:25,610 --> 00:35:30,690 защото той определено премина през много неща, нещо като в мъгла. 415 00:35:30,690 --> 00:35:32,980 Аз всъщност ще се опита да го напишете вън. 416 00:35:32,980 --> 00:35:35,120 Опитайте кодиране някои неща нагоре. 417 00:35:35,120 --> 00:35:40,530 Направете файл. JS. Въведете кода от себе си. Недейте просто да копирате и поставяте. 418 00:35:40,530 --> 00:35:42,890 Не просто стартирайте CP. 419 00:35:42,890 --> 00:35:47,380 Опитайте се прави, че просто някак да размърдате JavaScript мускул. 420 00:35:47,380 --> 00:35:49,490 Виж какви неща са. 421 00:35:49,490 --> 00:35:58,830 Например, тук гледам quote7.js в изходния код от лекция в сряда. 422 00:35:58,830 --> 00:36:04,150 Опитайте се случва в и вместо просто да направи всички тези функции анонимен, 423 00:36:04,150 --> 00:36:10,470 Копирайте този код, буквално слизат този успех код, 424 00:36:10,470 --> 00:36:17,270 копирате това, да го поставите в друга функция, и да му дадете име, 425 00:36:17,270 --> 00:36:22,370 и след това се опитайте преминаване на името и да видим какво ще стане. 426 00:36:22,370 --> 00:36:26,320 [Ученик] Възможно ли е това да е в отделен файл или в същия файл? 427 00:36:26,320 --> 00:36:29,900 Тя може да бъде в отделен файл, ако правилно го включи. 428 00:36:29,900 --> 00:36:34,170 Едно нещо, което няма да бъде - 429 00:36:34,170 --> 00:36:42,770 Номерът е да се тази функция се отнасят към някоя от променливите, които са извън нея? 430 00:36:42,770 --> 00:36:49,990 И аз мисля, че това се отнася само до отговор. 431 00:36:49,990 --> 00:36:51,640 Да. 432 00:36:56,360 --> 00:36:59,280 Можете да назове това. 433 00:36:59,280 --> 00:37:03,150 Можете да го извадя, можете да му се даде име, и след това можете да се премине на името тук. 434 00:37:03,150 --> 00:37:07,390 Така че аз ще дам, че пробвам, виждам как това работи. 435 00:37:09,990 --> 00:37:13,530 >> Добре. Въпроси? Въпроси? Обичам въпроси. 436 00:37:13,530 --> 00:37:16,460 Аз не знам за вас момчета, но аз ги харесвам. 437 00:37:19,120 --> 00:37:21,320 Как сте, момчета предчувствие за това? 438 00:37:21,320 --> 00:37:26,910 Има вид на това: "О, глупости" настроение в стаята. [Студенти непохватен] 439 00:37:26,910 --> 00:37:32,030 Това ли е вид как вие се чувствате? >> [Ученик] Да. >> Да? Да, Даниел? 440 00:37:32,030 --> 00:37:35,270 >> [Ученик] Мисля, че разбирам вид на общите понятия, които вие говорите, 441 00:37:35,270 --> 00:37:37,920 като анонимни функции и всички тези неща, 442 00:37:37,920 --> 00:37:42,490 но аз не разбирам половината от синтаксис, че е там точно сега, 443 00:37:42,490 --> 00:37:46,510 като това, което ул. средства, Ли, тези различни етикети. 444 00:37:46,510 --> 00:37:51,840 Аз не мисля, че ще бъде в състояние да код нещо с JavaScript. >> Fair. 445 00:37:51,840 --> 00:37:59,960 Е, че една обща чувство, общ настроения, това звучи като? Добре. 446 00:37:59,960 --> 00:38:03,370 [Ученик] Ще трябва да? >> Ще имаме нужда да се кодира? 447 00:38:03,370 --> 00:38:09,280 Трябва да бъдете подготвени да дисекция нещо подобно, бих казал. 448 00:38:09,280 --> 00:38:15,550 Аз не съм този, пишете на изпита, 449 00:38:15,550 --> 00:38:18,770 но аз определено бих казал, че ако това е често срещано чувство, 450 00:38:18,770 --> 00:38:23,020 вид, че много от този синтаксис тук изглежда като: "Какво, по дяволите, става тук?" 451 00:38:23,020 --> 00:38:27,900 "Аз съм напълно плуване", тогава нека да говорим за това и да се определи това. 452 00:38:29,080 --> 00:38:30,520 Добре звучи, нали? 453 00:38:30,520 --> 00:38:32,150 Добре. 454 00:38:32,150 --> 00:38:36,550 >> И така, какво става тук? Нека да вземем този ред по ред. 455 00:38:36,550 --> 00:38:38,300 Нека се опитаме става из стаята. 456 00:38:38,300 --> 00:38:41,440 Отивам да се обадя на хората един с 1, и да ми даде най-добрия си предположение. 457 00:38:41,440 --> 00:38:44,470 Ние ще го направим бързо. Имаш 5 секунди, за да отговори. 458 00:38:44,470 --> 00:38:46,130 Ако не отговорите, ние се премине към следващия човек. 459 00:38:46,130 --> 00:38:48,460 И това не е голяма работа, защото знам, че това е лудост неща. 460 00:38:48,460 --> 00:38:52,520 Ще започнем отначало тук. Charlotte, какво означава тази линия направя? 461 00:38:52,520 --> 00:38:54,450 [Ученик] Това е създаване на променлива, наречена предложения 462 00:38:54,450 --> 00:38:57,890 и определяне на това, равна на каквото и ул. е. >> [Hardison] Right. 463 00:38:57,890 --> 00:39:02,220 >> Джими, какво е ул.? 464 00:39:02,220 --> 00:39:07,740 [Ученик] Аз не знам. >> [Hardison] Добре, хладно. Шарлот беше напълно прав. 465 00:39:07,740 --> 00:39:11,680 Тази линия на код, който съм подчерта точно тук декларира променлива наречена предложения, 466 00:39:11,680 --> 00:39:13,710 променлива JavaScript. 467 00:39:13,710 --> 00:39:18,760 Имаме тази VAR дума пред който гарантира, че променливата остава местно 468 00:39:18,760 --> 00:39:21,140 с обхвата, че това е инча 469 00:39:21,140 --> 00:39:28,490 И този ул. нещо, което не сме виждали преди наистина, 470 00:39:28,490 --> 00:39:34,290 нека да видим, ако има добър - Позволете ми да се върнете обратно към моя IPAD. 471 00:39:36,270 --> 00:39:37,860 Нова страница. 472 00:39:37,860 --> 00:39:40,700 Сигурен съм, че вие, момчета, сте видели UL преди. 473 00:39:40,700 --> 00:39:42,620 Това е неподреден списък. 474 00:39:42,620 --> 00:39:45,590 Така че, виждали ли сте някога на дадена уеб страница, където ще трябва куршумите 475 00:39:45,590 --> 00:39:56,970 и имате Thing 1, Thing 2, и така нататък и така нататък? 476 00:39:56,970 --> 00:40:00,770 Това е неподреден списък. 477 00:40:00,770 --> 00:40:09,120 Начинът, по който ще се кодира това в HTML се, че ще започне с отворен етикет 478 00:40:09,120 --> 00:40:19,060 , който се отваря на неподреден списък, можете да го затворите с близък маркер, който се затваря с неподредените списъци, 479 00:40:19,060 --> 00:40:31,820 и след това в средата ще трябва да се изброят елементи, Li. 480 00:40:31,820 --> 00:40:43,110 И вътре в Ли ще бъде текста, за да се покаже, така Thing Thing 1 и 2. 481 00:40:43,110 --> 00:40:49,400 След това ние ще затворим списък т. тагове. 482 00:40:54,130 --> 00:41:01,110 Неподредените списъци са супер идеални, защото това е един чудесен начин да се получи същия стил 483 00:41:01,110 --> 00:41:03,720 прилага към ред на нещата. 484 00:41:03,720 --> 00:41:08,170 Така че, ако се вгледате в, например, 7 код PSET, 485 00:41:08,170 --> 00:41:12,710 много от хапчетата навигация, хапчетата за навигация, които са били използвани за различните връзки 486 00:41:12,710 --> 00:41:18,740 за покупка, продажба, Quote, история, всичко това, тези, които са реализирани като неподредените списъци, 487 00:41:18,740 --> 00:41:23,160 и те да се използват CSS да се премахнат тези подточки 488 00:41:23,160 --> 00:41:27,530 и вид на промени нещата леко. 489 00:41:27,530 --> 00:41:33,920 Това е вид на силата на CSS е, че HTML описва структурата. 490 00:41:33,920 --> 00:41:36,680 Имаме списък на елементи от списъка. 491 00:41:36,680 --> 00:41:41,360 Това е неподреден. Няма по първия, втория или третия. Това е просто един списък. 492 00:41:41,360 --> 00:41:45,020 И така, по подразбиране тя ще го направи само с куршуми. 493 00:41:45,020 --> 00:41:50,270 Ако вместо това беше написал ол, така че аз няма да променям това към списъка на ол 494 00:41:50,270 --> 00:41:53,870 за разлика от ул., какво би, че правя? 495 00:41:53,870 --> 00:42:01,840 Тя ще се отървете от тези куршуми, и по подразбиране, вместо да бъде номериран списък 496 00:42:01,840 --> 00:42:04,020 защото сега имаме поръчка. 497 00:42:09,700 --> 00:42:14,840 Стилът на списъка е тогава това, което си поиграете с в CSS, 498 00:42:14,840 --> 00:42:21,620 и това е, когато хората, които са писали библиотеката Bootstrap за CSS играе около 499 00:42:21,620 --> 00:42:30,030 със стайлинга на неподреден списък, за да го да показва тези хубави малки хапчета NAV. 500 00:42:30,030 --> 00:42:33,730 Ако се вгледаме в Google, например, нека да погледнем на този човек. 501 00:42:33,730 --> 00:42:38,450 Обратно към "как I m майка си" - звучи вид на немски език. 502 00:42:38,450 --> 00:42:43,490 Обичам немски език. Това звучи толкова забавно. 503 00:42:43,490 --> 00:42:47,040 Съжалявам, ако има някакви германски хора гледат, които се чувстват обидени. 504 00:42:47,040 --> 00:42:51,550 Във всеки случай, ако се вгледаме в тези връзки тук в горната 505 00:42:51,550 --> 00:42:57,610 и ние да видим какво става там, ние можем да го инспектира използването на този човек. 506 00:42:57,610 --> 00:42:59,430 Аз съм надолу тук в ъгъла. 507 00:42:59,430 --> 00:43:01,690 Инструменти за разработчици на Chrome е страхотно. 508 00:43:01,690 --> 00:43:05,780 Ако вие, момчета започват да си поиграете с него и не търсете уроци за нея, тя ще помогне много 509 00:43:05,780 --> 00:43:07,620 ако правиш уеб-базирани проекти. 510 00:43:07,620 --> 00:43:10,720 I кликнете малката ми инспектор. Отивам, за да превъртите обратно тук. 511 00:43:10,720 --> 00:43:15,680 Отивам да видя какво всички тези момчета са. 512 00:43:15,680 --> 00:43:19,300 Аз я увеличите инча Отивам да кликнете върху тях. 513 00:43:19,300 --> 00:43:25,850 След това мога да я увеличите назад и да видим какво всъщност е в HTML чак дотук. 514 00:43:25,850 --> 00:43:30,050 Тя изглежда като Google го е вложен в подреден списък. 515 00:43:30,050 --> 00:43:36,220 Така че ние имаме този период, който казва + Вие, и това е вложен вътре етикет котва, 516 00:43:36,220 --> 00:43:41,030 така че това е, което го прави кликване и тя го свързва с моя Google+ страница. 517 00:43:41,030 --> 00:43:47,130 Той е вложен вътре елемент от списъка, 518 00:43:47,130 --> 00:43:49,670 и това е вложен вътре в този подреден списък. 519 00:43:49,670 --> 00:43:55,060 И сега, ако аз действително кликнете опцията в списъка, тя ще го маркирате за мен там. 520 00:43:55,060 --> 00:43:59,530 Ако маркирате неподреден списък, ще видите как фокусът отива на върха. 521 00:43:59,530 --> 00:44:03,460 Той измества нагоре и ми показва цялата нареди списъка. 522 00:44:03,460 --> 00:44:08,380 Така че Google е просто играе наоколо с стайлинга, за да получите тези списъци, за да се появи такова. 523 00:44:08,380 --> 00:44:15,510 Това е достатъчно забавно със списъци. Върнете се в теста или тези неща. 524 00:44:15,510 --> 00:44:19,260 Сега ние знаем какво неподреден списък е - да се надяваме. 525 00:44:19,260 --> 00:44:28,690 >> Нека да говорим за това следващия ред код, за (VAR аз в response.symbols). Ella. 526 00:44:28,690 --> 00:44:35,980 [Ученик] Нямам представа. >> [Hardison] Нямам представа. 527 00:44:35,980 --> 00:44:40,290 Добре. Вие сте виждали за линия и преди, аз предполагам. >> [Ученик] Да. 528 00:44:40,290 --> 00:44:43,930 [Hardison] Спомняте ли си правиш за всеки в PHP? >> [Ученик] Да. 529 00:44:43,930 --> 00:44:46,340 [Hardison] Това е точно това. 530 00:44:46,340 --> 00:44:51,210 Това е за всеки цикъл в JavaScript. 531 00:44:51,210 --> 00:45:00,860 Това е по-кратък начин, отколкото прави за (VAR I = 0; и 00:45:04,400 които бихме могли да направим, 533 00:45:04,400 --> 00:45:08,620 но това е по-кратък начин да го пиша. 534 00:45:08,620 --> 00:45:17,530 Едно нещо е да бъдете внимателни в JavaScript е, че това не е задължително да следват реда. 535 00:45:17,530 --> 00:45:23,030 Ако response.symbols е вероятно масив, 536 00:45:23,030 --> 00:45:33,140 VAR аз ще бъда индекс в този масив, но това не е задължително 0 и след това на една 537 00:45:33,140 --> 00:45:36,340 и след това на 2, а след това 3. 538 00:45:36,340 --> 00:45:47,360 Те казват за употреба (VAR I = 0), ако те е грижа за подредбата. 539 00:45:47,360 --> 00:45:55,860 Предполагам, че другото, което да се отбележи, е, че когато ние използвахме за всеки в PHP, 540 00:45:55,860 --> 00:46:03,470 ние е посочено името на масива и след това имахме като ключова дума 541 00:46:03,470 --> 00:46:07,490 и тогава ние определено стойността, която ние искахме да извлечете от масива. 542 00:46:07,490 --> 00:46:12,680 Или можем да се задава едновременно ключа и стойността, която ние искахме да извлечете от масива. 543 00:46:12,680 --> 00:46:16,730 Тук сме само за да се индекса. 544 00:46:16,730 --> 00:46:22,090 Ние не получавате действителната самия елемент. 545 00:46:22,090 --> 00:46:29,510 Така че виждате, че когато слезем тук ние всъщност се налага да изтеглите Ith елемент 546 00:46:29,510 --> 00:46:34,810 От response.symbols обект. 547 00:46:37,680 --> 00:46:46,400 Другото нещо, което е лудост за това е, можете да използвате това, за да линия над обекти в JavaScript 548 00:46:46,400 --> 00:46:52,070 и извличане на всяка от свойствата на този обект 1 от 1. 549 00:46:52,070 --> 00:46:57,950 Ако се върнахме, че JavaScript Object Notation изображение на моето семейство 550 00:46:57,950 --> 00:47:03,280 където беше буквално тези фигурни скоби и баща, брат, майка, всичко това, 551 00:47:03,280 --> 00:47:06,420 бихте могли да използвате за линия за обхождане, че както 552 00:47:06,420 --> 00:47:10,130 и извличане на свойствата 1 от 1. 553 00:47:10,130 --> 00:47:12,110 Kind на луд. 554 00:47:14,120 --> 00:47:18,200 Така че това, което правим, изглежда, е, че ние сме изграждане на HTML низ 555 00:47:18,200 --> 00:47:22,220 точно като този коментар се казва, "изграждане на HTML низ за списък с предложения." 556 00:47:22,220 --> 00:47:26,340 Ние ще започнем с нашия отворен таг за нашия неподреден списък 557 00:47:26,340 --> 00:47:30,110 , в която ние се предположи, че ще съхранява всички предложения като елементи от списъка. 558 00:47:30,110 --> 00:47:36,490 След това отиваме в примка върху всички символи в отговора 559 00:47:36,490 --> 00:47:39,230 защото не забравяйте, че това е typeahead за CS50 финансите, 560 00:47:39,230 --> 00:47:44,180 така че ние сме дърпа символите фондови 1 от 1. 561 00:47:44,180 --> 00:47:50,410 И тогава ние добавяме към нашия предложения низ какво? 562 00:47:50,410 --> 00:47:53,880 >> Джаред, какво ти прилича? 563 00:47:53,880 --> 00:48:00,140 [Ученик] Изглежда, като че ли е измъкна от някакъв вид база данни 564 00:48:00,140 --> 00:48:02,250 каквото и писмо, което пишете в, 565 00:48:02,250 --> 00:48:06,640 оставяйки някакво предложение какво дума - >> [Hardison] Да. 566 00:48:06,640 --> 00:48:10,490 Искането на Аякс вече действително отиде и вземете това. Това е нашият отговор. 567 00:48:10,490 --> 00:48:14,890 Това е всъщност, след като съм намерила отговор от базата данни, от сървъра. 568 00:48:14,890 --> 00:48:20,150 >> И така, какво е това? Какво означава това единствено нещо цитат обозначи? 569 00:48:20,150 --> 00:48:23,990 [Ученик] апостроф? >> [Hardison] Да. Това е просто низ, нали? 570 00:48:23,990 --> 00:48:26,930 И така, какво е това занаяти? 571 00:48:26,930 --> 00:48:31,080 Това е низ и ние поставяме нещата в низа. И това, което е низ прилича? 572 00:48:31,080 --> 00:48:35,140 [Ученик] Само предположението, че we're - >> [Hardison] Да, точно така. 573 00:48:35,140 --> 00:48:43,050 Това е предположението, вложен вътре етикет котва, 574 00:48:43,050 --> 00:48:49,570 и че също така е закотвен в един елемент от списъка, така че тя ще отиде вътре в списъка. 575 00:48:49,570 --> 00:48:56,790 Буквално всичко, което правим тук, е, че ние просто изграждане на голям HTML низ. 576 00:48:56,790 --> 00:49:02,570 Ние просто го изгражда буквално като низ в паметта. 577 00:49:02,570 --> 00:49:04,740 Ние не правим нищо измислено. 578 00:49:04,740 --> 00:49:09,660 Ние не създаваме нови възли в DOM или нещо подобно. 579 00:49:09,660 --> 00:49:15,030 Ние сме буквално изграждане на низ като, ако ви се налага да напиша, например, 580 00:49:15,030 --> 00:49:21,220 на вашия IPAD, че имам - в случай, че вие ​​имате един IPAD и като писане HTML на вашия IPAD - 581 00:49:21,220 --> 00:49:33,250 ти си просто за написването на голям дълъг низ, който е като ул., Li, а ... 582 00:49:33,250 --> 00:49:38,440 и след това ние, разбира се, няма да го прекрати с този ул.. 583 00:49:38,440 --> 00:49:41,410 Така че това е всичко, което става, е един голям, огромен низ. 584 00:49:43,750 --> 00:49:51,180 А вътре има един Ли и един за всеки от символите, които открихме. 585 00:49:54,210 --> 00:50:01,760 >> И сега, продължавайки нататък, какво прави тази линия направя, Стела, точно тук? 586 00:50:01,760 --> 00:50:06,670 Какво означава тази линия направя точно тук? 587 00:50:06,670 --> 00:50:11,560 [Недоловим отговор студент] 588 00:50:11,560 --> 00:50:14,970 [Hardison] Да. Това е просто добавяне на този човек. 589 00:50:14,970 --> 00:50:17,650 Ние просто приключва нашия списък. Точно така. 590 00:50:17,650 --> 00:50:25,430 >> И тогава тази финална линия - и това изглежда някак шантаво - 591 00:50:25,430 --> 00:50:30,230 Съжалявам. Аз не знам името ти в червено суитчър. Знаеш ли какво прави това? 592 00:50:30,230 --> 00:50:33,270 Или отиваш да се реши не? 593 00:50:33,270 --> 00:50:38,560 А ти? >> [Ученик] Той призовава Jquery върху него, но аз не знам точно коя функция е то. 594 00:50:38,560 --> 00:50:40,490 [Hardison] Да. Той призовава Jquery. 595 00:50:40,490 --> 00:50:42,870 Какво ще кажеш за някой тук през по левия фланг на мен? 596 00:50:42,870 --> 00:50:51,110 Смятате ли, че това, което прави тази линия? Какво означава това да изглежда като го прави, ако трябваше да предполагам? 597 00:50:51,110 --> 00:50:57,620 [Ученик] Подаване на HTML списъка с предложения, или тя е - 598 00:50:57,620 --> 00:50:59,410 Да. Какво искаш да кажеш с подаване? 599 00:50:59,410 --> 00:51:04,370 [Ученик] Казвайки за HTML, което ние просто разглежда в JavaScript 600 00:51:04,370 --> 00:51:07,560 Сега определено е само HTML. >> [Hardison] Да. 601 00:51:07,560 --> 00:51:10,600 Това е едно чудесно начало. 602 00:51:10,600 --> 00:51:12,100 Нека дисекция това малко повече. 603 00:51:12,100 --> 00:51:14,140 Това е точно това, тази част се прави точно тук. 604 00:51:14,140 --> 00:51:17,660 [Ученик] Кой аспект от него става ясно, че това е JQuery? 605 00:51:17,660 --> 00:51:20,380 [Hardison] Jquery е този знак за долар човек. 606 00:51:20,380 --> 00:51:25,630 Всеки път, когато пишеш Jquery, ще видите този знак за долар навсякъде. 607 00:51:25,630 --> 00:51:36,020 Това току-що е било използвано в Jquery като вид на специален символ. 608 00:51:36,020 --> 00:51:38,280 Той прави цял куп неща. 609 00:51:38,280 --> 00:51:46,980 В контекста на това точно тук, в тази част на линията, тя е селектор. 610 00:51:46,980 --> 00:51:53,350 Това е избор Jquery, и се избере HTML елемент 611 00:51:53,350 --> 00:51:58,440 че има предложения за самоличност. 612 00:51:58,440 --> 00:52:01,730 Помниш ли как на HTML елементи могат да имат, че ID атрибут 613 00:52:01,730 --> 00:52:06,920 , където можете да имате точка маркер, който има ID предложения? 614 00:52:06,920 --> 00:52:13,380 Това Jquery селектор ще вземете този елемент 615 00:52:13,380 --> 00:52:18,000 защото този елемент трябва да съществува някъде в паметта. 616 00:52:18,000 --> 00:52:21,120 JavaScript е в състояние да определят точно вид на този елемент и да кажа, 617 00:52:21,120 --> 00:52:24,830 "О, добре, вие сте на параграфа, който има тази ID" 618 00:52:24,830 --> 00:52:34,940 и след това. HTML казва: "Добре, замени сегашната HTML вътре в теб 619 00:52:34,940 --> 00:52:41,210 "С тази нова поредица, този нов HTML, че аз ще ти дам." 620 00:52:41,210 --> 00:52:49,950 Така че, ако ние погледнем назад в IPAD - ха, ха, си спомних за да преминете този път - 621 00:52:49,950 --> 00:53:07,470 често вмъкнете в неща като Divs, така представете си имахме Разделения че трябваше ID = "предложения"; 622 00:53:07,470 --> 00:53:13,080 Отиваме, за да затворите тага Разделения тук. 623 00:53:13,080 --> 00:53:21,500 Когато използваме селектора Jquery да вземете елемент в DOM 624 00:53:21,500 --> 00:53:29,270 че е идентификацията на предложения, тя буквално избира целия този Разделения точно тук, 625 00:53:29,270 --> 00:53:37,920 и след това на метода на HTML казва: "Замяна на всички тези неща точно тук 626 00:53:37,920 --> 00:53:41,840 "Точно в този ул., че неподреден списък, който ние просто изградена." 627 00:53:41,840 --> 00:53:47,170 Буквално, ако сте били разглеждате низ целия HTML файл в паметта, 628 00:53:47,170 --> 00:53:51,750 вие просто ще каже: "Идете в това място и удрям силно в този ул. неща" 629 00:53:51,750 --> 00:53:57,210 и след това да актуализирате страницата, така че сега виждате неподреден списък там. 630 00:53:57,210 --> 00:54:04,510 И така, какво прави ефективно е Тя е динамично актуализира тази DIV. 631 00:54:04,510 --> 00:54:08,980 Кодът, който току-що видяхме на лаптопа е обновявал този Разделения 632 00:54:08,980 --> 00:54:13,760 за провеждане на нови предложения, които са били изтеглени от сървъра някъде. 633 00:54:13,760 --> 00:54:18,790 [Ученик] Кои предложения представя нови предложения и старите предложения? 634 00:54:18,790 --> 00:54:21,070 Новите предложения и старите предложения. 635 00:54:21,070 --> 00:54:24,950 [Ученик] Какво представлява кой се заменя и коя прави замяната? 636 00:54:24,950 --> 00:54:26,400 [Hardison] Разбрах. 637 00:54:26,400 --> 00:54:29,110 Виж тук, този човек е низ. 638 00:54:29,110 --> 00:54:34,580 Това определя ID на елемент - ние го наричаме в DOM - 639 00:54:34,580 --> 00:54:40,570 което буквално означава, че някои HTML елемент, който е някъде се показва 640 00:54:40,570 --> 00:54:42,490 на уеб страницата. 641 00:54:42,490 --> 00:54:47,830 Ако бяхме да разгледаме това, ако се върнем към нашата страница за Google, 642 00:54:47,830 --> 00:54:53,460 ние виждаме всички тези Divs и тези ол е и тези на Ли и тези на А. 643 00:54:53,460 --> 00:55:00,020 Всички те представляват HTML елементи, които понастоящем съставляват тази страница. 644 00:55:00,020 --> 00:55:08,140 Те всички корелира отделните елементи на страницата. 645 00:55:08,140 --> 00:55:13,650 И ако трябва да се промени това, вие ще гледате промяна на DOM, 646 00:55:13,650 --> 00:55:16,220 и можете да видите на този вид преместване. 647 00:55:16,220 --> 00:55:20,600 Така че, ако бяхме да въведете Харвард, ще видите DOM започнат да се променят 648 00:55:20,600 --> 00:55:24,970 И списъкът елементи започват да се промени тук. 649 00:55:24,970 --> 00:55:26,880 Това е всъщност това, което се случва. 650 00:55:26,880 --> 00:55:35,020 >> Да видим дали можем да намерим някои от тези неща точно тук. 651 00:55:35,020 --> 00:55:41,490 Нека да разгледаме тази връзка. Нека да разгледаме тази връзка Harvard Wikipedia, и ние ще гледаме да го промените. 652 00:55:41,490 --> 00:55:48,160 Ние можем да видим, че както съм избрана тази, то съответства на тази DIV точно тук, 653 00:55:48,160 --> 00:55:52,680 което също е част от списък елемент, който е в непосредствена близост до друг списък елемент, 654 00:55:52,680 --> 00:55:56,500 , която е част от неподреден списък тук. 655 00:55:56,500 --> 00:56:07,470 Сега какво ще стане, ако ние търсим за нашата малка училищна малко надолу на юг? 656 00:56:07,470 --> 00:56:09,040 Това сега се променя. 657 00:56:09,040 --> 00:56:13,460 Така че ние загубихме нашия дръжка на тази дивизия и този списък елемент 658 00:56:13,460 --> 00:56:19,010 защото сега имаме различни елементи в нашата DOM, 659 00:56:19,010 --> 00:56:24,280 различни списък елементи, различни елементи от списък, различни дължини, всичко това. 660 00:56:24,280 --> 00:56:28,750 Така че този HTML документ се актуализира динамично. 661 00:56:28,750 --> 00:56:33,240 Старите елементи биват изтрити, се добавят нови елементи. 662 00:56:33,240 --> 00:56:42,600 Back тук ние просто се уточнява този елемент, който вероятно ще бъде стабилен 663 00:56:42,600 --> 00:56:44,870 цялата ни актуализация typeahead, 664 00:56:44,870 --> 00:56:50,270 защото в противен случай, ако Jquery не може да намери един елемент, който има ID на предложения, 665 00:56:50,270 --> 00:56:53,320 тя просто ще се срине в този момент. 666 00:56:53,320 --> 00:56:57,020 И тогава ние актуализираме своята вътрешна HTML. 667 00:56:57,020 --> 00:57:03,970 Така че това е тези елементи от списък, тези анкерни етикети, които непрекъснато ще се актуализира и освежават, докато пишете. 668 00:57:10,440 --> 00:57:15,750 Има ли, че свърши по-добра работа? >> [Ученик] Това помага много. >> [Hardison] Добре. 669 00:57:15,750 --> 00:57:24,210 Синтаксисът, че вие ​​ще видите много - знаете какво този човек прави. 670 00:57:24,210 --> 00:57:27,810 Знайте селектора Jquery. 671 00:57:27,810 --> 00:57:36,610 Това Jquery селектор с хеш таг пред предполага ID. 672 00:57:36,610 --> 00:57:42,410 Този човек казва: "Дайте ми елемент, който има предложения за самоличност." 673 00:57:48,440 --> 00:57:56,480 Този човек тук също казва: "Вземи ме, че един и същ елемент с ID предложения." 674 00:57:56,480 --> 00:58:03,350 Този човек под нея е малко по-сложна. 675 00:58:03,350 --> 00:58:12,420 Това казва: "Вземи ме на елемента с форма ID-цитат, 676 00:58:12,420 --> 00:58:21,180 ", Но след това влезе вътре тази форма и да намерят детето" - 677 00:58:21,180 --> 00:58:25,710 така че това пространство тук означава, че отиваме на едно дете елемент, вложен елемент. 678 00:58:25,710 --> 00:58:33,550 "Намери формата, която има този ID и след това се намери на входа вътре в тази форма, чието име е символ." 679 00:58:38,410 --> 00:58:45,050 Това е определено в лекционните слайдове на Томи, тези различни видове Jquery селектори. 680 00:58:45,050 --> 00:58:50,490 Трябва да знаете какви видове елементи те са извличане. 681 00:58:51,970 --> 00:58:54,590 Например, нека да се върнете към IPAD наистина бързо. 682 00:58:58,450 --> 00:59:14,970 Ако имахме форма елемент с идентификатор = "форма-цитат" - 683 00:59:14,970 --> 00:59:21,110 разбира се, че е изчезнал на метод = POST или GET метод = и атрибути действие, както и 684 00:59:21,110 --> 00:59:37,010 че трябва да има върху форми, но само за този пример форма, както знаете, има входове, 685 00:59:37,010 --> 00:59:51,860 и че кода, който току-що видяхме ще получите вход елемент 686 00:59:51,860 --> 00:59:57,580 че е имал име = "символ". 687 00:59:57,580 --> 01:00:02,970 Това е важно, когато се опитвате да попълните различни области във вътрешността на вашия формуляр. 688 01:00:02,970 --> 01:00:07,440 Ето как работи автоматично попълване. 689 01:00:07,440 --> 01:00:09,500 >> Да, Ела? 690 01:00:09,500 --> 01:00:16,050 [Ученик] Каква е разликата между ID и клас? >> An ID и клас? Да. 691 01:00:16,050 --> 01:00:21,970 A клас се използва за целите на прически. 692 01:00:21,970 --> 01:00:29,120 An ID се използва за това, което звучи като: еднозначно идентифициране на даден елемент. 693 01:00:29,120 --> 01:00:37,610 Така че в рамките на една HTML страница, можете да имате само един елемент с определена ID. 694 01:00:40,370 --> 01:00:46,120 Има само една форма с ID форма котировка. 695 01:00:46,120 --> 01:00:56,940 Въпреки това, навигация хапчета клас или класа на НСА е вероятно нещо, което сте използвали 696 01:00:56,940 --> 01:01:01,380 възможно или видял в контекста на вашия проблем Set 7 код. 697 01:01:01,380 --> 01:01:11,340 A клас се използва за прилагане на специално стайлинг на един куп от различни елементи. 698 01:01:11,340 --> 01:01:17,580 Например, в старите дни на HTML, преди имаше стилове, 699 01:01:17,580 --> 01:01:21,440 преди да има CSS, тези Cascading Style Sheets, 700 01:01:21,440 --> 01:01:29,540 ако искате да центрирате един абзац или центрирате текст в Div, 701 01:01:29,540 --> 01:01:43,940 че ще има Разделения и след това ще имате нещо като подравняване на текста = "център" 702 01:01:43,940 --> 01:01:51,290 както като атрибут в рамките на вашата дивизия. 703 01:01:51,290 --> 01:01:54,490 Това не е добър. 704 01:01:54,490 --> 01:01:57,890 Причината хората не харесват това е така, защото тогава, когато исках да се актуализира 705 01:01:57,890 --> 01:02:01,960 как стоят нещата, показани на вашия сайт, вие трябваше буквално да отидат в всяка страница 706 01:02:01,960 --> 01:02:06,230 и всеки HTML файл и вижте промените всички stylings на всички различни елементи, 707 01:02:06,230 --> 01:02:10,420 и това беше огромна болка, защото често сте искали да имате един куп Divs 708 01:02:10,420 --> 01:02:15,090 че всички бяха центриран или поберат по определен начин. 709 01:02:15,090 --> 01:02:18,760 Така че разтворът да е клас. 710 01:02:18,760 --> 01:02:28,120 Сега имаме Разделения където имаме класа, определен да бъде каквото и да искате да го наречете. 711 01:02:28,120 --> 01:02:39,160 Можете да го наречете "центриран"; и затворите Разделения някъде тук 712 01:02:39,160 --> 01:02:42,390 и имате всичките си забавни неща там. 713 01:02:42,390 --> 01:02:47,650 И тогава някъде във вашия стил лист бихте посочи конкретен стил 714 01:02:47,650 --> 01:02:51,980 , че ще се прилага за този клас. 715 01:02:51,980 --> 01:02:57,280 Това не трябва да бъде само DIV, че е центрирано. 716 01:02:57,280 --> 01:03:02,240 Може да има и други, които също са Divs центриран текст. 717 01:03:06,580 --> 01:03:09,980 >> Да, Шарлот? >> [Ученик] Ако се върнем към цитата, какво означава точката предвид? 718 01:03:09,980 --> 01:03:13,120 Какво е точката? >> [Ученик] Да. 719 01:03:14,000 --> 01:03:17,900 Обратно към лаптопа, искаш да кажеш? >> [Ученик] Да. >> Добре. 720 01:03:17,900 --> 01:03:23,920 [Ученик] Например, в този ред означава ли това, че там е тази променлива, наречена Вал 721 01:03:23,920 --> 01:03:27,730 вътрешността на формата? >> Да. 722 01:03:27,730 --> 01:03:34,690 Нотация точката в JavaScript върши няколко неща. 723 01:03:34,690 --> 01:03:43,530 В този случай се обаждате функция, чието име е Вал. 724 01:03:43,530 --> 01:03:45,960 Това е един метод. 725 01:03:45,960 --> 01:03:50,150 Това е мястото, където ние влезем в обектно-ориентирани неща, които ние говорим за, Сам. 726 01:03:50,150 --> 01:04:00,840 Това е мястото, където обект - в този случай на въвеждане на елемент - има функция или метод, наречен Val 727 01:04:00,840 --> 01:04:10,480 която основно се казва, "Хей, задайте си стойност за да стане това нещо." 728 01:04:15,120 --> 01:04:19,050 Представете си, че вместо това бръщолевене бяхме писмено числото 7 или низ 7. 729 01:04:19,050 --> 01:04:23,820 Това ще се промени стойността на този вход елемент да бъде 7. 730 01:04:23,820 --> 01:04:26,030 [Ученик] елемент вход е всичко в предната част на точката? 731 01:04:26,030 --> 01:04:29,190 [Hardison] елемент на входа, точно, като на елемент в рамките на HTML, 732 01:04:29,190 --> 01:04:33,230 в рамките на DOM, който съвпада с тази заявка. 733 01:04:33,230 --> 01:04:37,150 [Ученик] Така че това е вход функция елемент. И след това каква трябва да бъде тази стойност. 734 01:04:37,150 --> 01:04:39,360 [Hardison] Точно така. >> [Ученик] Добре. 735 01:04:39,360 --> 01:04:42,780 И вие също да използвате този достъп до свойства. 736 01:04:42,780 --> 01:04:47,690 Така че, ако погледнем назад в кода, който ние вървяхме през ред по ред 737 01:04:47,690 --> 01:04:54,830 където имаме response.symbols [I] име., 738 01:04:54,830 --> 01:04:58,600 ние не се обаждате функция тук. 739 01:04:58,600 --> 01:05:02,270 Не са открити скоби. 740 01:05:02,270 --> 01:05:05,220 Едно нещо, което просто трябва да държи в ума, като се откъснете чрез този код, 741 01:05:05,220 --> 01:05:09,860 когато видите, скоби, това означава, извикване на функция. 742 01:05:09,860 --> 01:05:12,340 Функцията се нарича, 743 01:05:12,340 --> 01:05:15,910 и името на тази функция е това, което предхожда тези скоби. 744 01:05:15,910 --> 01:05:21,480 Така че в този случай по-долу, това е Вал. В този случай, точно тук е HTML. 745 01:05:21,480 --> 01:05:31,700 В този случай, точно тук, на името на функцията е буквално $, 746 01:05:31,700 --> 01:05:35,170 и ние просто знам, че това е най-селектора Jquery, 747 01:05:35,170 --> 01:05:40,090 това е функцията, която е избор на каквото и да е този човек. 748 01:05:40,090 --> 01:05:47,030 И тогава, когато не виждате скоби, като тук или тук, 749 01:05:47,030 --> 01:05:51,690 това, което вместо да влизате е собственост на обекта. 750 01:05:51,690 --> 01:05:53,910 Това е като с помощта нотация масив. 751 01:05:53,910 --> 01:05:59,280 Това е алтернатива на използването на нотацията на масива. 752 01:05:59,280 --> 01:06:02,440 Това е просто една стенография. 753 01:06:06,680 --> 01:06:17,050 Така че ние сме достъп до областта на символи на обекта на отговор. 754 01:06:21,590 --> 01:06:29,160 >> Ние сме направили много от Аякс, DOM, някои HTML, CSS не е много. 755 01:06:29,160 --> 01:06:34,370 Смятате ли, момчета, искате да прекарате последните 15 минути, или така по този въпрос? 756 01:06:34,370 --> 01:06:37,990 Предполагам, че ние наистина трябва около 10 минути, преди да трябва да започнем да приключи. 757 01:06:37,990 --> 01:06:44,190 Или може би трябва да се върнем и да поговорим за някои от другите неща в нашия списък? 758 01:06:44,190 --> 01:06:46,800 Нека да видим. 759 01:06:46,800 --> 01:06:52,180 Ако се върнем към началото, ние да премина към моя IPAD отново, така че вие ​​може да видите това, 760 01:06:52,180 --> 01:06:57,840 ние сме направили много Ajax, което сме направили някои JQuery, 761 01:06:57,840 --> 01:07:00,980 ние сме направили някои JSON, което сме направили някои XML, което сме направили някои DOM, 762 01:07:00,980 --> 01:07:05,510 ние сме направили някои - Не, не HTTP. Зарежи. 763 01:07:05,510 --> 01:07:10,640 Не е много по обхват. Ние нещо като говорихме за CSS - не съвсем. 764 01:07:13,200 --> 01:07:16,540 Смятате ли, момчета се чувстват добре на Аякс? Искате ли да прекарват повече време в Аякс? 765 01:07:16,540 --> 01:07:19,190 Покажи на ръце. Добре. 766 01:07:19,190 --> 01:07:22,260 DOM? Някой иска да прекара повече време на DOM? 767 01:07:22,260 --> 01:07:26,960 Най-лесният начин наистина да получат представа за това какво се случва с DOM - 768 01:07:26,960 --> 01:07:34,510 хората говорят за DOM и хвърлят наоколо, "О, DOM това, DOM, че." 769 01:07:34,510 --> 01:07:45,910 Наистина на DOM е просто начина, по който всички тези HTML елементи се съхраняват в паметта. 770 01:07:45,910 --> 01:07:49,310 и това е просто обяснение - това е какво е то. 771 01:07:49,310 --> 01:07:55,700 Той е структуриран като дърво, и можете да получите достъп до отделни HTML елементи 772 01:07:55,700 --> 01:07:58,850 с които Jquery селектор, че знака за долар нещица. 773 01:07:58,850 --> 01:08:02,730 Можете да манипулират нещата. Можете да добавяте елементи на DOM. 774 01:08:02,730 --> 01:08:04,920 Може да се добави нов параграф елемент на DOM, 775 01:08:04,920 --> 01:08:09,280 Вие не може да отнеме на Разделения елемент от DOM, ако искате. 776 01:08:09,280 --> 01:08:15,640 Това е всичко. Това е просто вид на представителство в памет на вашия HTML файл. 777 01:08:15,640 --> 01:08:19,430 Това може да бъде манипулирана и се премества. 778 01:08:19,430 --> 01:08:23,240 Какво ще кажете за Jquery и че селектор? Да, Сам? 779 01:08:23,240 --> 01:08:28,240 >> [Ученик] Означава ли това, че DOM включва всички ваши CSS и JavaScript? 780 01:08:28,240 --> 01:08:32,729 [Hardison] The DOM включва тези възли, да. 781 01:08:32,729 --> 01:08:38,270 [Ученик] То включва HTML, че тези други спомагателни документи изход? 782 01:08:38,270 --> 01:08:47,250 Ако JavaScript променя HTML като го е правил в този Google - 783 01:08:47,250 --> 01:08:50,160 Опа, съжалявам, аз не се върна на това. 784 01:08:50,160 --> 01:08:55,420 Помниш ли как JavaScript ще променят списъка с резултати на Google? 785 01:08:55,420 --> 01:09:04,279 Ако JavaScript променя това, тогава тези нови списък елементи вече са част от DOM. 786 01:09:04,279 --> 01:09:06,990 Те бяха инжектирани в DOM. 787 01:09:06,990 --> 01:09:10,109 И се оказва, че скриптовете и стил самите листове 788 01:09:10,109 --> 01:09:11,830 наистина са част от DOM. 789 01:09:11,830 --> 01:09:17,819 Виждате ли тук, че ние имаме тези скриптове възли и тези в стил възли. 790 01:09:17,819 --> 01:09:21,800 JavaScript може да добавяте и изтривате тези също. 791 01:09:21,800 --> 01:09:25,550 Ето защо това е толкова лошо да има зловреден JavaScript на вашата страница 792 01:09:25,550 --> 01:09:30,500 е, че сега тя може да започне привеждане в други JavaScript от други места. 793 01:09:30,500 --> 01:09:34,080 Така че можете да започнете само с един JavaScript файл, 794 01:09:34,080 --> 01:09:37,189 но след това тя може да започне дърпа в други файлове с JavaScript. 795 01:09:37,189 --> 01:09:42,330 Можете да използвате Ajax да се зареди в JavaScript и динамично да има нов JavaScript 796 01:09:42,330 --> 01:09:45,029 тичане на вашата уеб страница. 797 01:09:45,029 --> 01:09:50,680 Така че това е един наистина мощен нещо, че нашите браузъри са в състояние да се вид на постоянно отново направи 798 01:09:50,680 --> 01:09:56,280 и повторно адаптира каквото се генерира от JavaScript. 799 01:09:58,740 --> 01:10:01,450 >> [Ученик] Тези стил тагове, които са включени в CSS? 800 01:10:01,450 --> 01:10:04,100 Нека да погледнем в това. Да. 801 01:10:04,100 --> 01:10:08,480 Това CSS, отново можете да видите къде Jquery получава своето селектор от. 802 01:10:08,480 --> 01:10:18,760 Имаме тази # GB, която се казва: "Този стил се отнася до един елемент с ID GB." 803 01:10:18,760 --> 01:10:24,330 "Елемент с ID GB ще има такъв размер на шрифта с това семейство на шрифта, 804 01:10:24,330 --> 01:10:28,150 "Безсерифен; височина." 805 01:10:32,340 --> 01:10:33,650 >> Добре. 806 01:10:33,650 --> 01:10:36,010 Обратно към IPAD. 807 01:10:37,330 --> 01:10:40,550 Как около структури от данни - опита, свързани списъци? 808 01:10:40,550 --> 01:10:44,700 Вие искате ли да направим един бърз опреснителен за това, или са момчета усещат - 809 01:10:44,700 --> 01:10:48,940 Да? Nay? Кой иска структури от данни? Вдигнете ръка. 810 01:10:48,940 --> 01:10:52,780 Кой мрази структури от данни? >> [Ученик] Искам само опита. >> Че искат само да се опитва. 811 01:10:52,780 --> 01:10:55,120 Добре. 812 01:10:55,120 --> 01:11:00,600 Никой ли не иска си опит? Дали всички подобни, "Мразя опита. Аз го направих. Опитах го." 813 01:11:00,600 --> 01:11:02,930 [Ученик] Аз просто искам да знам за омегата и голям O. 814 01:11:02,930 --> 01:11:05,600 Добре. Ние определено може да отиде над това. 815 01:11:05,600 --> 01:11:11,290 Това звучи като нещо, което искаме да направим като група? Да? Нещо? Не? 816 01:11:11,290 --> 01:11:18,090 >> Какво ще кажете за HTTP? Ли това, че изглежда като нещо повече хора искат да правят? 817 01:11:18,090 --> 01:11:22,300 Или си вид, "Eh." Нека да направим първата HTTP. 818 01:11:24,850 --> 01:11:32,010 Колко от вас са виждали Давид абсурдно страхотно HTTP кратко? Има ли някой? 819 01:11:32,010 --> 01:11:33,950 Виждал съм го един куп. 820 01:11:33,950 --> 01:11:37,890 Той беше един от първите, които направихме, и така тя беше като нашия демо това лято. 821 01:11:37,890 --> 01:11:40,750 Дан го е видял един куп прекалено, Dan Човекът се върна там. 822 01:11:43,150 --> 01:11:50,820 HTTP и тогава там е това HTTPS нещо, което ние сме били говорим за малко. 823 01:11:50,820 --> 01:11:53,020 Какво трябва да знаете за HTTP? 824 01:11:53,020 --> 01:12:00,220 Това е буквално само протокола за взаимодействие с уеб сървър. 825 01:12:00,220 --> 01:12:09,860 Когато искате да говорите с Google.com, че говориш на друг компютър от мрежата, 826 01:12:09,860 --> 01:12:13,670 С какво се занимаваш? 827 01:12:13,670 --> 01:12:16,160 Да може би направи това. 828 01:12:16,160 --> 01:12:19,420 Позволете ми да спра терминал. 829 01:12:19,420 --> 01:12:21,820 Тук е моят прозорец малко терминал. 830 01:12:21,820 --> 01:12:31,470 Ние можем да направим нещо като Telnet, което ни позволява всъщност да стартирате връзка с Google.com. 831 01:12:31,470 --> 01:12:33,480 Това не е нещо, което трябва да знаете, 832 01:12:33,480 --> 01:12:35,830 но това е само за да илюстрира това, което се случва с HTTP. 833 01:12:35,830 --> 01:12:42,360 www.google.com, порт 80. 834 01:12:42,360 --> 01:12:44,860 Какво е това правиш? 835 01:12:44,860 --> 01:12:49,800 Това прави интернет връзка между моя компютър и Google. 836 01:12:49,800 --> 01:12:56,080 И това е всъщност свързване към 173.194.75.99, което е около компютъра, 837 01:12:56,080 --> 01:13:02,790 някои Google сървъра живее някъде вероятно тук, 838 01:13:02,790 --> 01:13:05,600 макар че може да е по целия път обратно в Калифорния. 839 01:13:05,600 --> 01:13:08,320 Сега съм свързан. 840 01:13:08,320 --> 01:13:10,810 Добре, че всичко е наред. 841 01:13:10,810 --> 01:13:15,260 Но когато отидете на Google.com, обикновено очакваш Google.com, 842 01:13:15,260 --> 01:13:19,380 някои HTML, за да се покаже, нали? Не само това. 843 01:13:19,380 --> 01:13:27,740 Проблемът е, че аз искам да кажа, "Дайте ми GOOGLE.COM" или нещо такова. 844 01:13:27,740 --> 01:13:34,320 Но ако кажа, че нищо не се случва. 845 01:13:34,320 --> 01:13:39,210 В действителност, ако аз хит Въведете няколко пъти, тя се връща и казва: 846 01:13:39,210 --> 01:13:42,930 "Това беше лош поискване." 847 01:13:42,930 --> 01:13:46,270 Това се казва: "Не, не, не, не, не, не, не, не, не." 848 01:13:46,270 --> 01:13:51,850 "Не може просто да сложи неща инча Вие всъщност трябва да говорим HTTP за мен." 849 01:13:51,850 --> 01:13:56,350 "Трябва да форматирате вашата заявка като заявка за HTTP, като GET или POST 850 01:13:56,350 --> 01:13:58,180 "Или нещо подобно." 851 01:13:58,180 --> 01:14:02,040 "И тогава аз ще се върне на правилното HTML за вас." 852 01:14:02,040 --> 01:14:04,070 Така че виждате какво ми даде в този случай. 853 01:14:04,070 --> 01:14:24,170 Това ми даде HTML, че ако го копирате и аз TextEdit HTML, ако го сложа тук, 854 01:14:24,170 --> 01:14:33,040 и аз го запишете като test.html--о, хайде. 855 01:14:33,040 --> 01:14:36,010 Web страница. Ето. 856 01:14:36,010 --> 01:14:46,310 Сега, ако си отворя Downloads / test.html, сега тя ми даде лошото - 857 01:14:46,310 --> 01:14:51,640 Това не е съвсем го направи като HTML. 858 01:14:51,640 --> 01:14:54,890 Тя изглежда като тя не го затворите. Ето, нека да видим. 859 01:15:00,610 --> 01:15:02,900 Nope. Добре. 860 01:15:02,900 --> 01:15:07,330 Това няма да стане. Както и да е, няма да го разбереш. 861 01:15:07,330 --> 01:15:10,080 Но така или иначе, това, което той прави е, че е връщане към мен на HTML, 862 01:15:10,080 --> 01:15:15,800 но го казва по същество, "Ти не ми даде правилното искане HTTP." 863 01:15:15,800 --> 01:15:20,810 Така че това, което ни е нужно да знаем за HTTP? 864 01:15:20,810 --> 01:15:27,620 Това е начинът на форматиране на заявления за уеб сървъри, за да получите, обикновено, HTML в отговор. 865 01:15:27,620 --> 01:15:37,050 >> Другото нещо е да се отбележи, е, че когато се прави заявка към уеб сървъра, 866 01:15:37,050 --> 01:15:45,650 трябва да зададете метода на HTTP, който искате да използвате. 867 01:15:45,650 --> 01:15:48,730 Ние говорихме за това малко по-рано, когато две големи такива, които виждаме 868 01:15:48,730 --> 01:15:52,170 са GET и POST. 869 01:15:52,170 --> 01:15:53,710 Има и един куп други такива. 870 01:15:53,710 --> 01:15:58,420 Има HEAD и PUT и DELETE и всички тези други неща, 871 01:15:58,420 --> 01:16:00,410 но GET и POST са две основни тези на. 872 01:16:00,410 --> 01:16:04,110 Къде виждате тези култури нагоре? Когато пишеш форми. 873 01:16:04,110 --> 01:16:08,000 Когато пишете HTML форми, трябва да се уточни методът за HTTP 874 01:16:08,000 --> 01:16:11,270 от която искате, че данните за формуляри, които се предават. 875 01:16:11,270 --> 01:16:15,000 И след това го виждате на сървъра страна, когато пишете PHP код 876 01:16:15,000 --> 01:16:19,850 когато боравите с данните, а вие трябва да погледнете в супер-POST 877 01:16:19,850 --> 01:16:24,860 или GET супер-за извличане на данни, която е била подадена от потребителя. 878 01:16:24,860 --> 01:16:32,900 И разликата между GET и POST е, че GET променя действителният 879 01:16:32,900 --> 01:16:40,890 и в по-голямата част можете да видите какви параметри са преминали на заявка за GET 880 01:16:40,890 --> 01:16:45,580 много лесно само като се погледне в URL адреса, докато с искане за POST 881 01:16:45,580 --> 01:16:52,880 че няма да предадете на параметрите на искането в URL адреса. 882 01:16:52,880 --> 01:16:58,610 Но те не са криптирани или нищо, ако ти започваш през HTTPS. 883 01:16:58,610 --> 01:17:02,130 Параметрите на POST са само част от - 884 01:17:02,130 --> 01:17:05,750 Те не отиват в URL адреса, ефективно. 885 01:17:05,750 --> 01:17:10,320 Ние сме склонни да просто вид семантично отделят 2, 886 01:17:10,320 --> 01:17:15,270 които просто казва, че наистина можете да направите същото и с GET, че можеш с POST. 887 01:17:15,270 --> 01:17:20,200 Можете да направите същото. Това е просто, че ние ги използват в различни ситуации. 888 01:17:20,200 --> 01:17:23,330 Ние използваме GET, когато ние се опитваме просто да прочетете нещо и ние сме просто казвам, 889 01:17:23,330 --> 01:17:24,900 "Дайте ми тези данни." 890 01:17:24,900 --> 01:17:28,670 И ние използваме POST обикновено, когато се опитваме да се актуализира нещо на сървъра. 891 01:17:28,670 --> 01:17:31,900 Ето защо всеки път, когато отидете на Google.com и правехме, че typeahead 892 01:17:31,900 --> 01:17:33,470 видяхме всички тези искания GET 893 01:17:33,470 --> 01:17:36,960 защото бяхме буквално просто извличане на информация от Google, 894 01:17:36,960 --> 01:17:43,710 като има предвид, ако сте допуснали Facebook стена пост, ти започваш да се използва, 895 01:17:43,710 --> 01:17:51,990 най-вероятно, метод на HTTP POST, за да изпратите тези данни и да направи промяна в Facebook 896 01:17:51,990 --> 01:17:56,220 във вашата стена, стена на вашия приятел. 897 01:17:56,220 --> 01:17:58,510 Нека да видим. 898 01:18:00,360 --> 01:18:10,030 Предполагам, че разликата с HTTPS е, че тя е HTTP, но криптирана. 899 01:18:10,030 --> 01:18:12,960 [Подсмихва] Secure. 900 01:18:12,960 --> 01:18:16,820 Да. И там са много забавни подробности за това. 901 01:18:18,560 --> 01:18:21,100 >> Въпроси? 902 01:18:21,100 --> 01:18:28,030 Ние трябва да започнем да приключи, и така ние ще направим някои структури от данни от страната. Шарлот? 903 01:18:28,030 --> 01:18:32,270 [Ученик] Какво е включено в HTTP заглавни файлове от домакина на метода 904 01:18:32,270 --> 01:18:35,480 и метода и номера? >> Ah. 905 01:18:35,480 --> 01:18:40,060 Най-добрият начин да го погледнете е да отидете на раздела Network 906 01:18:40,060 --> 01:18:48,320  и просто да видим какво се случва, когато просто отидете на Google.com. 907 01:18:48,320 --> 01:18:55,300 Можеш да дойдеш тук и можете да видите всички различни HTTP заявки, които са били направени. 908 01:18:55,300 --> 01:18:58,000 Google.com. 909 01:18:58,000 --> 01:19:02,690 Първата беше, че се опитах да отида в Google.com и го каза, 910 01:19:02,690 --> 01:19:05,270 "О, Google.com не съществува в действителност." 911 01:19:05,270 --> 01:19:08,700 "В случаите, когато наистина искате да отидете е да www.google.com." 912 01:19:08,700 --> 01:19:10,010 Така че аз имам пренасочени тук. 913 01:19:10,010 --> 01:19:13,020 Това е, когато аз имам това 301 след това аз имам 200 OK. 914 01:19:13,020 --> 01:19:17,240 Така че това, което е тук, във вашите заглавията? 915 01:19:17,240 --> 01:19:21,840 Той казва, че това е адреса на който съм направил искането, методът на поискване, 916 01:19:21,840 --> 01:19:24,550 и след това кода на състоянието. 917 01:19:24,550 --> 01:19:26,070 Това са три Biggies. 918 01:19:26,070 --> 01:19:30,190 Другите неща в тук, бисквити, 919 01:19:30,190 --> 01:19:37,130 бисквитките са удобни за фигуриращ на сесията, ако някой е влязъл или не. 920 01:19:37,130 --> 01:19:42,010 Те са също така удобни за проследяване на хора. Това е как уеб сайтовете, които следят навсякъде. 921 01:19:42,010 --> 01:19:44,620 Те поставят бисквитки на вашия компютър. 922 01:19:44,620 --> 01:19:48,320 Те са обучени да разпознават други уеб сайтове, бисквитки ", ако могат. 923 01:19:48,320 --> 01:19:52,640 И след това има други неща, които казва на потребителския агент точно тук. 924 01:19:52,640 --> 01:19:57,490 Този низ потребителски агент определя моя компютър, за да Google.com и казва: 925 01:19:57,490 --> 01:20:03,010 "Google.com, само да знаеш, някои пич вървят този браузър 926 01:20:03,010 --> 01:20:08,050 "На Intel Mac 10_8_2 просто отиде до Google.com." 927 01:20:08,050 --> 01:20:12,560 И тогава тези Приемете нещата просто казват: "Какъв е моя компютър, 928 01:20:12,560 --> 01:20:14,590 "Каква е моята уеб браузър готови да приемат?" 929 01:20:14,590 --> 01:20:20,900 Тя може да приеме, HTML, тя може да приеме XML, всички други неща. 930 01:20:20,900 --> 01:20:24,310 Какъв характер кодировки няма да го приема? 931 01:20:24,310 --> 01:20:30,030 Има ли го приемам Генерирай архивирана сгъстен неща? 932 01:20:30,030 --> 01:20:36,120 Понякога сайтове ще компресирате неща, за да стане по-бързо, за да изпрати по мрежата. 933 01:20:36,120 --> 01:20:38,580 >> Cool. Добре. 934 01:20:38,580 --> 01:20:44,460 Мисля, че това е за сега. Ще закрият, но ще остане за въпроси. 935 01:20:44,460 --> 01:20:47,000 >> [CS50.TV]