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