1 00:00:00,000 --> 00:00:02,862 >> [Музички] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> Дејвид MALAN: Ова е CS50. 4 00:00:11,580 --> 00:00:12,880 Ова е почеток на неделата девет. 5 00:00:12,880 --> 00:00:15,797 И тоа е она што ќе треба е 200-от роденден г-дин Бул е. 6 00:00:15,797 --> 00:00:17,630 Значи ова е соработници на кои ние сме се алудира 7 00:00:17,630 --> 00:00:21,800 сосема извесно време за користење Буловите променливи вистински и лажни, 8 00:00:21,800 --> 00:00:22,910 1 0 и такви. 9 00:00:22,910 --> 00:00:25,270 И тоа беше на Google почит на него денес. 10 00:00:25,270 --> 00:00:26,489 Ќе наполнеше 200. 11 00:00:26,489 --> 00:00:28,280 Значи, ако сакате да ги ни се придружат за CS50 ручек, 12 00:00:28,280 --> 00:00:30,279 да ги разгледаме во врската на веб-страницата на курсот. 13 00:00:30,279 --> 00:00:33,580 И такви лица и пријатели, како тие чекаат на вас овде во Кембриџ. 14 00:00:33,580 --> 00:00:35,360 Лица како овие ве чекаат во Њу Хејвен. 15 00:00:35,360 --> 00:00:37,800 И дека, всушност, Кен во Њу Хевн љубезно се направи 16 00:00:37,800 --> 00:00:41,594 она што се нарекува анимиран GIF на Илија на неодамнешната lunch-- на GIF е уште 17 00:00:41,594 --> 00:00:44,260 друг графички формат на датотека, со кои сте familiar-- дека 18 00:00:44,260 --> 00:00:46,300 изгледа малку нешто како ова. 19 00:00:46,300 --> 00:00:48,179 Па само низа of-- ОК. 20 00:00:48,179 --> 00:00:49,720 Никој тука во Кембриџ се смее. 21 00:00:49,720 --> 00:00:51,720 Но, во Њу Хевн, овој е навистина смешно, нели? 22 00:00:51,720 --> 00:00:52,350 Во ред. 23 00:00:52,350 --> 00:00:53,940 >> Па не ни се придружите таму. 24 00:00:53,940 --> 00:00:55,900 Тука на Харвард, Поточно, оваа среда, 25 00:00:55,900 --> 00:00:59,480 ако сте сафомор или Новак even-- или дури junior-- размислува за правење 26 00:00:59,480 --> 00:01:01,563 прекинувач во компјутерот науката, знаете дека постојат Ќе 27 00:01:01,563 --> 00:01:04,440 се на ЦС советува фер ова Среда, кратко време по класа 28 00:01:04,440 --> 00:01:08,040 во 04:00 во компјутерот науката зграда Максвел Дворкин. 29 00:01:08,040 --> 00:01:11,890 Ние ќе се стави тоа на на курсот веб-страница од утре, како и. 30 00:01:11,890 --> 00:01:14,430 Крофни, јас сум изјави, ќе се служи. 31 00:01:14,430 --> 00:01:15,180 >> Во ред. 32 00:01:15,180 --> 00:01:18,790 Толку смешно story-- бев ѕиркаа околу на интернет, 33 00:01:18,790 --> 00:01:23,575 и го најдов некои стари архиви на поранешниот мојот вебсајт. 34 00:01:23,575 --> 00:01:25,950 И тоа се врти околу оваа out-- време, се чини многу навремено 35 00:01:25,950 --> 00:01:28,910 бидејќи јас се соберат дека изборите УЗ се за да се подготвуваат повторно. 36 00:01:28,910 --> 00:01:32,230 Па налетав на УЗ, изгубени очајно. 37 00:01:32,230 --> 00:01:34,770 А можеби и ова е делумно зошто. 38 00:01:34,770 --> 00:01:37,600 Па ова беше мојот веб-сајт во тоа време. 39 00:01:37,600 --> 00:01:40,477 Поради некоја причина, јас мислев дека тоа е добра идеја, пред да им кажува на луѓето 40 00:01:40,477 --> 00:01:43,310 она што ми беше платформа и зошто треба да гласаат за мене, дека тие имаат 41 00:01:43,310 --> 00:01:47,770 да кликнете за да влезат за да дознаете дека информации, кои во минатото е 42 00:01:47,770 --> 00:01:48,660 вид на гаден. 43 00:01:48,660 --> 00:01:50,910 Јас навистина не знам што е тоа. 44 00:01:50,910 --> 00:01:53,140 >> Но, тоа секако не им помогне на мојата кампања. 45 00:01:53,140 --> 00:01:56,874 Јас, исто така, утврди дека со високи year-- имав овој Muppet календар. 46 00:01:56,874 --> 00:01:58,540 Muppets беа вид на во мода тогаш. 47 00:01:58,540 --> 00:01:59,456 Или можеби тие не се. 48 00:01:59,456 --> 00:02:01,790 Имав Muppet календар тогаш. 49 00:02:01,790 --> 00:02:04,860 И јас мислев дека ќе биде кул за името мојот компјутер на мрежата на Харвард 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 Во тоа време, сите ние требаше уникатно препознатливи имиња домаќин. 52 00:02:10,370 --> 00:02:13,150 И можете да изберете некои суета името, наместо на вашиот сопствено име. 53 00:02:13,150 --> 00:02:15,580 И јас отидов со леководолаз поради некоја причина. 54 00:02:15,580 --> 00:02:19,040 >> И јас тогаш started-- Поминав многу период кликнување преку овие линкови 55 00:02:19,040 --> 00:02:20,280 ова утро. 56 00:02:20,280 --> 00:02:24,690 И тоа беше мојата За-страница, кој сега вид на изгледа симпатична. 57 00:02:24,690 --> 00:02:28,210 Но, тоа, исто така, е доказ дека само колку далеку технологија дојде. 58 00:02:28,210 --> 00:02:30,310 Мислам, во тоа време, на 486 беше нешто. 59 00:02:30,310 --> 00:02:34,090 Овие денови, тоа е супер, супер, супер бавно и добро помалку 60 00:02:34,090 --> 00:02:36,216 отколку што можеле да имате во вашата сопствените џебови, овие денови. 61 00:02:36,216 --> 00:02:38,465 Има повеќе од таму дека беше дури и повеќе срамно. 62 00:02:38,465 --> 00:02:39,770 Па јас ќе го оставиме тоа. 63 00:02:39,770 --> 00:02:42,640 Но, тоа беше мојот прв упад во web-- О, не. 64 00:02:42,640 --> 00:02:43,180 Тоа не беше. 65 00:02:43,180 --> 00:02:47,000 Мојот прв вистински упад во веб програмирање беше овој сајт, што јас само заборавив. 66 00:02:47,000 --> 00:02:50,620 Во одреден момент, научив како да се направи повторувачки слики во позадина. 67 00:02:50,620 --> 00:02:55,260 И така го најдов овој облицовка ефективни, како хокеар, фудбал, голф 68 00:02:55,260 --> 00:02:58,040 топка, или што и да е за веб-сајтот на Frosh Инстант пораки. 69 00:02:58,040 --> 00:03:01,390 И тоа беше, всушност, навистина не на Првиот веб базирана на проектот Зедов on-- 70 00:03:01,390 --> 00:03:03,880 Мислам дека можеби сафомор година, помлади year-- 71 00:03:03,880 --> 00:03:07,622 по преземањето CS50 и CS51, еден на заедничката следење на наставата. 72 00:03:07,622 --> 00:03:09,330 Јас забележав во потрага низ архивите 73 00:03:09,330 --> 00:03:12,150 дека еден од моите наследници и пријатели, Ли, вид на променети 74 00:03:12,150 --> 00:03:13,480 на авторските права на самиот себеси. 75 00:03:13,480 --> 00:03:17,520 Но, навистина ова е нешто што Јас треба да ги поседува во срам. 76 00:03:17,520 --> 00:03:19,370 Но, во тоа време, овој беше првиот веб-сајт, 77 00:03:19,370 --> 00:03:22,220 како што реков пред неколку недели, со кои би можеле да Новак 78 00:03:22,220 --> 00:03:24,350 регистрирате за интрамурален спортови тука. 79 00:03:24,350 --> 00:03:27,950 И така, се покажа кои ги позадинските слики 80 00:03:27,950 --> 00:03:29,530 како што не се толку добра идеја. 81 00:03:29,530 --> 00:03:31,840 Но на интернет е нова, и сите бевме експериментирање. 82 00:03:31,840 --> 00:03:34,310 И тоа е она што очигледно не во тоа време. 83 00:03:34,310 --> 00:03:34,810 Во ред. 84 00:03:34,810 --> 00:03:38,020 Значи без понатамошно ado, ние го вклучите запчаници денес за да ви даде, навистина, 85 00:03:38,020 --> 00:03:42,250 последното парче, кои може да најдете особено корисно за конечниот проекти 86 00:03:42,250 --> 00:03:44,780 но и дека ќе почне да се направи целиот World Wide Web, 87 00:03:44,780 --> 00:03:46,680 чувствуваат малку повеќе разбирливо. 88 00:03:46,680 --> 00:03:49,460 Навистина, ние ќе треба да се воведе уште еден програмски јазик 89 00:03:49,460 --> 00:03:52,474 вика дека го вклучите Javascript-е слично и различни на различни начини 90 00:03:52,474 --> 00:03:54,140 од јазиците кои ги гледаше во досега. 91 00:03:54,140 --> 00:03:55,807 >> Па C, да се потсетиме, дали е ова Составувач јазик. 92 00:03:55,807 --> 00:03:57,473 Имаш да се пушта и преку компајлерот. 93 00:03:57,473 --> 00:03:59,810 Ќе го добиете изворниот код на приговор кодот, или нули и оние. 94 00:03:59,810 --> 00:04:03,000 И оние кои се нули и оние кои процесорот, централната единица за обработка, 95 00:04:03,000 --> 00:04:04,360 и го разбираат. 96 00:04:04,360 --> 00:04:06,610 PHP, од друга страна, не е Составувач јазик. 97 00:04:06,610 --> 00:04:08,772 Тоа е она што? 98 00:04:08,772 --> 00:04:09,980 Тоа е препознаена јазик. 99 00:04:09,980 --> 00:04:11,750 Значи има некоја програма повика толкувач кој 100 00:04:11,750 --> 00:04:13,708 мора да се прочита it-- врвот до дното, лево кон right-- 101 00:04:13,708 --> 00:04:16,519 и да дознаам што сите Вашиот синтаксата не и значи, 102 00:04:16,519 --> 00:04:20,200 дали тоа е јамка или состојба или било кој друг број на програмски 103 00:04:20,200 --> 00:04:20,740 конструира. 104 00:04:20,740 --> 00:04:22,210 Значи тоа е препознаена јазик. 105 00:04:22,210 --> 00:04:23,910 >> Потоа воведовме HTML. 106 00:04:23,910 --> 00:04:26,440 И HTML не е дури и програмски јазик. 107 00:04:26,440 --> 00:04:28,110 Она што ние би го нарекуваат? 108 00:04:28,110 --> 00:04:31,650 Маркап јазик, што е само еден вид на фенси начин да го кажувам 109 00:04:31,650 --> 00:04:35,820 нема програмирање конструкти како видовме дури и назад во текот на денот на нула. 110 00:04:35,820 --> 00:04:36,720 Нема петелки. 111 00:04:36,720 --> 00:04:37,920 Не постојат услови. 112 00:04:37,920 --> 00:04:40,820 Тоа навистина е јазикот за означување на вашите податоци 113 00:04:40,820 --> 00:04:43,620 и форматирање или тоа структурирање на некој начин. 114 00:04:43,620 --> 00:04:46,147 >> CSS, пак, на сличен начин не е програмски јазик. 115 00:04:46,147 --> 00:04:47,730 Тоа е дури и повеќе естетски ориентирана. 116 00:04:47,730 --> 00:04:50,470 И ви овозможува да се најде решение за фино нагодување работи како големина на фонт и бои 117 00:04:50,470 --> 00:04:51,850 и поставување и сето тоа. 118 00:04:51,850 --> 00:04:52,370 Потоа моравме 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Па SQL е навистина програмирање јазикот во извесна смисла, 121 00:04:56,010 --> 00:04:59,330 иако прилагодена конкретно на бази на податоци. 122 00:04:59,330 --> 00:05:03,347 Но, и покрај тоа што само ќе се воведе на изберете и вметнување и бришење и надградба 123 00:05:03,347 --> 00:05:05,430 и неколку други, Излегува всушност можете да 124 00:05:05,430 --> 00:05:07,380 пишуваат функции или процедури, како што тие се 125 00:05:07,380 --> 00:05:11,270 нарекува, во SQL кои изгледаат и делуваат доста како PHP и C функции. 126 00:05:11,270 --> 00:05:12,390 Па се знае дека тие постојат. 127 00:05:12,390 --> 00:05:15,348 Но, ние дури и не се мачи со нив како што ние само гребење на површината тука. 128 00:05:15,348 --> 00:05:18,600 А потоа да вклучите, последниот од официјално воведен нашите јазици. 129 00:05:18,600 --> 00:05:21,029 Така да вклучите, исто така, е толкува јазик. 130 00:05:21,029 --> 00:05:23,070 И оние кои се запознаени, дали сакате да се направи разлика 131 00:05:23,070 --> 00:05:26,960 со некои карактеристични од двете Ц и PHP? 132 00:05:26,960 --> 00:05:28,300 Што го прави различен? 133 00:05:28,300 --> 00:05:29,650 >> ПУБЛИКАТА: Тоа не се состави. 134 00:05:29,650 --> 00:05:29,930 >> Дејвид MALAN: еднаш се каже? 135 00:05:29,930 --> 00:05:31,200 >> ПУБЛИКАТА: Тоа не се состави. 136 00:05:31,200 --> 00:05:31,930 >> Дејвид MALAN: Тоа не се состави. 137 00:05:31,930 --> 00:05:33,450 Така што, исто така, се толкува. 138 00:05:33,450 --> 00:05:34,760 Па тоа не се состави. 139 00:05:34,760 --> 00:05:37,210 Но дека тоа малку како PHP прави. 140 00:05:37,210 --> 00:05:39,545 Но, тоа е уште различно од PHP во некои зачудувачки начин, 141 00:05:39,545 --> 00:05:40,920 барем во начинот на кој ние ќе го користите. 142 00:05:40,920 --> 00:05:41,205 Да? 143 00:05:41,205 --> 00:05:41,940 >> ПУБЛИКАТА: Се работи на клиентска страна. 144 00:05:41,940 --> 00:05:44,000 >> Дејвид MALAN: Таа работи клиентска страна, обично. 145 00:05:44,000 --> 00:05:47,190 Тоа е навистина битните карактеристично за нас во моментов. 146 00:05:47,190 --> 00:05:51,170 С е од страна на серверот, во смисла дека сме направиле сé што е во CS50 ИРО. 147 00:05:51,170 --> 00:05:53,630 PHP досега е од страна на серверот, доколку 148 00:05:53,630 --> 00:05:56,550 како што, исто така, добива interpreted-- не состави, но interpreted-- 149 00:05:56,550 --> 00:06:00,690 внатре во CS50 ИРО, што секако е само еден сервер или сервери во облак. 150 00:06:00,690 --> 00:06:03,070 >> Но го вклучите Javascript, дури и и покрај тоа што сте ќе треба 151 00:06:03,070 --> 00:06:07,000 да почне да го пишува за, да речеме, pset осум и можеби конечниот projects-- сте 152 00:06:07,000 --> 00:06:09,620 случува да го право во CS50 ИРО и зачувајте 153 00:06:09,620 --> 00:06:14,760 во датотеки во CS50 ИРО, CS50 ИРО и, за возврат, облак сервери 154 00:06:14,760 --> 00:06:19,160 на која беше домаќин, не се случува да го протолкува или извршување на вашиот код. 155 00:06:19,160 --> 00:06:23,880 Напротив, тоа се случува да се испраќаат во неизменета форма сведува на прелистувачот. 156 00:06:23,880 --> 00:06:26,990 А тоа е, тогаш ќе биде на IE или Хром или Firefox или Safari 157 00:06:26,990 --> 00:06:30,697 или што и кои, всушност, го толкува тоа, врвот до дното, лево кон десно. 158 00:06:30,697 --> 00:06:32,780 Така клучна разлика Карактеристично за денес 159 00:06:32,780 --> 00:06:36,110 е тоа што го вклучите Javascript-е клиент-страна и PHP, на пример, 160 00:06:36,110 --> 00:06:37,690 е од страна на серверот. 161 00:06:37,690 --> 00:06:40,920 Сега, ова има интересни импликации за, како, на интелектуална сопственост 162 00:06:40,920 --> 00:06:42,660 и кој всушност може да се види вашиот код. 163 00:06:42,660 --> 00:06:44,860 И, навистина, може да се оди на интернет и да се види поголемиот 164 00:06:44,860 --> 00:06:47,530 било код дека некој има напишан во JavaScript. 165 00:06:47,530 --> 00:06:50,230 Понекогаш тоа е да се чита, Понекогаш тоа е криење. 166 00:06:50,230 --> 00:06:52,550 Но повеќе за тоа во догледно време. 167 00:06:52,550 --> 00:06:57,530 >> Така да вклучите, доволно убаво, е супер слични, синтаксички, В. 168 00:06:57,530 --> 00:06:59,364 И многу како PHP, нема главната функција. 169 00:06:59,364 --> 00:07:02,113 Ако сакате да почнете да пишувате JavaScript код, како што ќе видите денес, 170 00:07:02,113 --> 00:07:03,270 само на проектот пишување. 171 00:07:03,270 --> 00:07:06,910 Но, тоа е, ќе се види, особено корисно во контекст на веб прелистувачи. 172 00:07:06,910 --> 00:07:09,820 Сепак, моето мало disclaimer-- обично earlier-- 173 00:07:09,820 --> 00:07:13,790 беше да се каже дека може да се повеќе употреба и денес го вклучите Javascript-серверот 174 00:07:13,790 --> 00:07:17,655 користење на фенси рамка наречена Node.js дека некои од сопствени апликации CS50 е 175 00:07:17,655 --> 00:07:18,280 се напишани. 176 00:07:18,280 --> 00:07:20,640 Проверете 50 всушност користи Node.js. 177 00:07:20,640 --> 00:07:24,140 Но, ние ќе треба да се фокусира на Го вклучите Javascript-клиент-страна тука надвор. 178 00:07:24,140 --> 00:07:26,750 >> Значи тука е збир на услови во PHP. 179 00:07:26,750 --> 00:07:29,350 Жал ми е, in-- всушност, дека изјава, исто така е точно. 180 00:07:29,350 --> 00:07:32,200 Тука е, исто така, во собата на услови во JavaScript. 181 00:07:32,200 --> 00:07:35,560 Синтаксички, тоа е идентичен со C и да се PHP. 182 00:07:35,560 --> 00:07:39,040 Изрази г. Бул се, Слично на тоа, синтаксички 183 00:07:39,040 --> 00:07:41,190 идентичен со двете C и PHP. 184 00:07:41,190 --> 00:07:44,100 Ние исто така имаме прекинувачи во JavaScript за кои изгледаат идентично. 185 00:07:44,100 --> 00:07:46,350 Имаме за јамки кои се структурирани идентично, 186 00:07:46,350 --> 00:07:48,140 додека петелки, се направи додека петелки. 187 00:07:48,140 --> 00:07:49,980 >> Ова ми е малку поинаква. 188 00:07:49,980 --> 00:07:53,120 PHP имаа за секоја конструкција кои можеби ќе биде со користење на 189 00:07:53,120 --> 00:07:55,320 или ќе го користи во pset седум, можеби. 190 00:07:55,320 --> 00:07:59,460 Го вклучите Javascript-има оваа специјална верзија на за каде што буквално се каже нешто 191 00:07:59,460 --> 00:08:03,864 како за варијабилен клучот во објектот, кој е многу концизен начин да се каже, 192 00:08:03,864 --> 00:08:06,780 ако имам една object-- и ние ќе зборувам за тие повторно во moment-- 193 00:08:06,780 --> 00:08:10,370 и сакам да iterate во текот на сите на клучните вредност парови во внатрешноста, 194 00:08:10,370 --> 00:08:13,620 Јас не мора да дознаам како да се бројно индекс на нив со нула, еден, 195 00:08:13,620 --> 00:08:14,580 два, три. 196 00:08:14,580 --> 00:08:15,900 >> Јас буквално може да го кажам ова. 197 00:08:15,900 --> 00:08:20,740 И на секој повторување, го вклучите Javascript- за мене ќе се ажурира на клучна варијабла 198 00:08:20,740 --> 00:08:24,810 да биде првиот клуч, а потоа следниот клуч, тогаш следниот клуч, а потоа следниот клуч, 199 00:08:24,810 --> 00:08:25,510 и така натаму. 200 00:08:25,510 --> 00:08:30,000 И јас може да се добијат на неговата вредност со третирање објект во JavaScript, како што ќе видиме, 201 00:08:30,000 --> 00:08:32,584 како и покрај тоа е асоцијативна низа во PHP. 202 00:08:32,584 --> 00:08:35,750 Навистина, ако конечно завиткан вашиот ум околу она што е асоцијативна низа 203 00:08:35,750 --> 00:08:40,140 во PHP, можете да мислам на тоа, за сега како идентична со објект во JavaScript. 204 00:08:40,140 --> 00:08:42,030 Но, тоа е малку симплификација. 205 00:08:42,030 --> 00:08:47,230 >> Низи изгледа, доволно убаво, идентични во PHP со исклучок на еден лик. 206 00:08:47,230 --> 00:08:51,425 Има едно нешто недостасува овде што видовме минатата недела со PHP. 207 00:08:51,425 --> 00:08:52,050 Она што се исфрлени? 208 00:08:52,050 --> 00:08:53,310 Да? 209 00:08:53,310 --> 00:08:54,090 Нема знак за долар. 210 00:08:54,090 --> 00:08:56,240 Па ние сме назад кон понормален свет каде 211 00:08:56,240 --> 00:08:58,050 променливи немаме долар знаци. 212 00:08:58,050 --> 00:09:00,810 Но вие не ги како префикс со вар, обично. 213 00:09:00,810 --> 00:09:02,230 И var значи променлива. 214 00:09:02,230 --> 00:09:06,440 И многу како PHP е лабаво typed-- при што постојат типови, 215 00:09:06,440 --> 00:09:10,120 Постојат броеви и стрингови и плови и така forth-- 216 00:09:10,120 --> 00:09:11,570 Го вклучите Javascript-слично има типови. 217 00:09:11,570 --> 00:09:15,470 Но тоа е лабаво отчукува во што ние програмерите не треба да ги наведете. 218 00:09:15,470 --> 00:09:18,980 Ние само треба да бидат свесни кои постојат различни типови. 219 00:09:18,980 --> 00:09:21,690 >> Променливи, meanwhile-- еве како ние би можеле да прогласат "Здраво, свет" 220 00:09:21,690 --> 00:09:22,230 како стринг. 221 00:09:22,230 --> 00:09:24,890 Известување дека е идентична со PHP, но нема знак за долар. 222 00:09:24,890 --> 00:09:27,120 И ова е нешто што ќе се започнете да гледате повеќе денес, 223 00:09:27,120 --> 00:09:30,990 при што ќе се има некој објект со клучеви и вредности. 224 00:09:30,990 --> 00:09:32,990 И ако сакате да се обиде да заклучиме од минатата week-- 225 00:09:32,990 --> 00:09:34,730 синтаксата е малку поинаква. 226 00:09:34,730 --> 00:09:39,740 Но малку здрав разум check-- колку клучеви значи овој објект се чини дека има? 227 00:09:39,740 --> 00:09:40,850 Па гледам четири. 228 00:09:40,850 --> 00:09:43,560 Гледам две. 229 00:09:43,560 --> 00:09:44,680 >> Така, тоа е, всушност, два. 230 00:09:44,680 --> 00:09:47,260 Значи ова е збирка на два пара клучните вредност. 231 00:09:47,260 --> 00:09:49,820 Клучот е симбол чија вредност е полн пансион. 232 00:09:49,820 --> 00:09:52,620 Клучот е цената чија вредност изнесува 101,53. 233 00:09:52,620 --> 00:09:54,230 Значи тоа се два пара клучните вредност. 234 00:09:54,230 --> 00:09:58,120 И запомнете, PHP-- и ова е повторно само вид на синтаксички разлика. 235 00:09:58,120 --> 00:10:00,170 Тоа не е сè што интелектуално интересна. 236 00:10:00,170 --> 00:10:04,610 PHP може да го имаат напишано ова исто нешто како follows-- цитат, рамноправни. 237 00:10:04,610 --> 00:10:06,730 И јас да ги промените овие квадратни загради. 238 00:10:06,730 --> 00:10:11,240 И јас тогаш го промените ова котирана збор "цената". 239 00:10:11,240 --> 00:10:12,500 И тогаш јас не го користат две точки. 240 00:10:12,500 --> 00:10:15,060 Што сум користите минатата недела? 241 00:10:15,060 --> 00:10:18,290 Да, знак за еднаквост arrow фанки нотација. 242 00:10:18,290 --> 00:10:21,470 >> А потоа јас го направи истото овде. 243 00:10:21,470 --> 00:10:23,580 Истото се тука. 244 00:10:23,580 --> 00:10:24,240 И тоа е се. 245 00:10:24,240 --> 00:10:27,752 Така, тоа е во ред, ако тоа не е навистина да потонат во меморија само 246 00:10:27,752 --> 00:10:29,960 сепак, бидејќи тоа е навистина интелектуално неинтересни. 247 00:10:29,960 --> 00:10:31,660 Тоа е само синтаксички разлики. 248 00:10:31,660 --> 00:10:33,230 Но идеите кои се потполно исти. 249 00:10:33,230 --> 00:10:35,910 Во внатрешноста на оваа променлива Цитат на JavaScript 250 00:10:35,910 --> 00:10:39,020 е збирка на парови клучните вредност, од кои еден е симбол, од кои еден 251 00:10:39,020 --> 00:10:39,690 е цената. 252 00:10:39,690 --> 00:10:42,340 И може да се добие во тие вредности со следнава синтакса. 253 00:10:42,340 --> 00:10:46,280 Исто како и во PHP, можев направи нешто like-- дозволувајте 254 00:10:46,280 --> 00:10:48,590 ме направи го ова поле за малку поголем. 255 00:10:48,590 --> 00:10:52,750 Исто како и во PHP, можев направи this-- ох, мајката. 256 00:10:52,750 --> 00:10:53,250 Ајде. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Исто како и во PHP-- Добро, ние ќе само користење на презентер белешки. 259 00:11:00,800 --> 00:11:06,010 Исто како и во PHP, можам направи цитат ["симбол"] $ цитат $, 260 00:11:06,010 --> 00:11:08,860 и тоа ќе ме однесе вредноста на "симбол". 261 00:11:08,860 --> 00:11:12,800 Во JavaScript, тоа се случува да биде идентични, при што, јас само може да го направите тоа. 262 00:11:12,800 --> 00:11:14,850 Единственото нешто што е недостасува е знакот за долар. 263 00:11:14,850 --> 00:11:17,470 >> Значи доволно убаво, тогаш, има не се сите толку многу нови синтакса. 264 00:11:17,470 --> 00:11:21,025 Значи она што денес ќе се фокусира на, навистина, е некои од идеите и апликации. 265 00:11:21,025 --> 00:11:22,900 И прв ваков апликација која можеби ќе 266 00:11:22,900 --> 00:11:26,090 видовме ако се нурна во pset седум веќе е оваа синтакса. 267 00:11:26,090 --> 00:11:28,980 Па во pset седум, ако сте види или не видел досега, 268 00:11:28,980 --> 00:11:33,570 знаеме дека постои датотеката што ја даваме те повика config.json-- вклучите Javascript- 269 00:11:33,570 --> 00:11:34,661 Објектно нотација. 270 00:11:34,661 --> 00:11:35,160 Зошто? 271 00:11:35,160 --> 00:11:39,540 Сакавме да се биде во можност да ви обезбеди со шаблон со некои парови клучните вредност. 272 00:11:39,540 --> 00:11:44,290 Сакавме да се биде во можност да ви даде листа на земјата-домаќин, името на серверот. 273 00:11:44,290 --> 00:11:46,710 Сакавме да ви даде резервирано место за Вашето корисничко име 274 00:11:46,710 --> 00:11:48,210 и случаеви за вашата лозинка. 275 00:11:48,210 --> 00:11:49,410 Ако не го гледате ова сеуште, не се грижи. 276 00:11:49,410 --> 00:11:51,340 Повеќе за ова во pset седум [? спец. ?] И потоа, 277 00:11:51,340 --> 00:11:53,173 очигледно, ние што го сакате да се пополни во Задачи 278 00:11:53,173 --> 00:11:55,310 затоа што кога ќе се логирате во CS50 ИРО, секој од вас 279 00:11:55,310 --> 00:11:57,630 имаат свој корисничко име и лозинка. 280 00:11:57,630 --> 00:12:00,910 >> Па ние би можеле да го користат половина дузина или повеќе различни формати на датотеки. 281 00:12:00,910 --> 00:12:02,940 Ние би можеле да се користи исто .txt фајл. 282 00:12:02,940 --> 00:12:04,570 Ние би можеле да се користат CSV датотека. 283 00:12:04,570 --> 00:12:06,745 Ние би можеле да го користи Ini-датотека, XML-датотека, 284 00:12:06,745 --> 00:12:09,370 еден куп повеќе акроними кои вие не би можеле да слушнам. 285 00:12:09,370 --> 00:12:11,244 Тоа е вид на произволни на крајот на денот. 286 00:12:11,244 --> 00:12:16,030 Но супер популарни овие денови е текст формат наречен JSON-- JavaScript Објектно 287 00:12:16,030 --> 00:12:18,460 Notation-- што изгледа вака. 288 00:12:18,460 --> 00:12:20,890 Тоа е малку криптичната, но информации на обрасци. 289 00:12:20,890 --> 00:12:24,180 Ќе почнете со отворен кадрава се подготвуваат, а ќе заврши со истите. 290 00:12:24,180 --> 00:12:26,550 Внатре во тоа е нешто. 291 00:12:26,550 --> 00:12:27,920 Тоа е комбинација на клучните вредности. 292 00:12:27,920 --> 00:12:30,580 Значи ова е објект што сум гледајќи на екранот овде 293 00:12:30,580 --> 00:12:33,690 која има еден клуч, кој има една вредност. 294 00:12:33,690 --> 00:12:37,610 Inferring и само врз основа на претходниот модел, што е клучот овде? 295 00:12:37,610 --> 00:12:39,790 База на податоци, нешто што треба да на левата страна на дебелото црево. 296 00:12:39,790 --> 00:12:43,500 >> Во овој момент, вредност се случува да биде на повеќе линии тоа време. 297 00:12:43,500 --> 00:12:46,760 Но вредноста започнува со кадрава подготвуваат и завршува со кадрава голема заграда. 298 00:12:46,760 --> 00:12:49,480 Па што ќе ви предложиме е тип на вредноста на база на податоци? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 Речник или, само повеќе посочно, како предмет. 301 00:12:54,670 --> 00:12:55,170 Нели? 302 00:12:55,170 --> 00:13:00,010 Ова е вид на податочна структура која можат да се користат и други структури во себе. 303 00:13:00,010 --> 00:13:02,750 Значи, ако целата оваа работа сме нарекувајќи object-- и објект 304 00:13:02,750 --> 00:13:07,101 е само еден куп на клучните вредност pairs-- на вредноста на самата база на податоци е објект. 305 00:13:07,101 --> 00:13:10,350 Вредноста на база на податоци има цел куп на клучните вредност парови, првиот на кој 306 00:13:10,350 --> 00:13:13,130 е домаќин, а потоа името, а потоа корисничко име, лозинка, тогаш, 307 00:13:13,130 --> 00:13:17,550 секој од чии вредности, во меѓувреме, тоа е само досадна стринг со двојни наводници. 308 00:13:17,550 --> 00:13:19,770 >> Па дури и ако тоа не е супер јасен само уште, 309 00:13:19,770 --> 00:13:22,740 знам дека ова е само еден стандард, прилично здодевен начин 310 00:13:22,740 --> 00:13:25,190 на складирање на податоци во стандарден формат. 311 00:13:25,190 --> 00:13:27,700 Но заеднички грешки, ти може да го направи, дури и во pset седум, 312 00:13:27,700 --> 00:13:32,120 се малку глупави работи, како и ако случајно се изостави запирка таму. 313 00:13:32,120 --> 00:13:34,900 Што ќе резултира во датотека не мора да бидат читливи. 314 00:13:34,900 --> 00:13:38,191 Ако случајно сте ја изостави работи, како на цитати, тоа не се случува да се чита. 315 00:13:38,191 --> 00:13:41,654 Така, тоа е прилично nitpicky формат на датотека, но тоа е она што е супер заедничко. 316 00:13:41,654 --> 00:13:44,820 И да се случи да го користи, иако што не се употребуваат никакви JavaScript поинаку, 317 00:13:44,820 --> 00:13:46,330 во pset седум. 318 00:13:46,330 --> 00:13:46,860 >> Во ред. 319 00:13:46,860 --> 00:13:48,110 Па се сеќавам оваа слика. 320 00:13:48,110 --> 00:13:51,657 Ние разговаравме за тоа, во HTML, кои го кодот може да изгледа вака. 321 00:13:51,657 --> 00:13:54,740 Ова е HyperText Markup Language [Беззвучен] за само "Здраво, свет". 322 00:13:54,740 --> 00:13:57,570 Но, тогаш ние предложи време назад дека ако тоа им помага, 323 00:13:57,570 --> 00:14:00,210 можеби ќе сакате да почнат да размислуваат за ова веќе како дрво. 324 00:14:00,210 --> 00:14:03,730 Всушност, вовлекувањето дека ние користат само за доброто на читливост 325 00:14:03,730 --> 00:14:05,610 или за доброто на стил е од лево да вид на 326 00:14:05,610 --> 00:14:10,040 да бидат преведени на ова дрво, каде што имаат некои посебни коренот јазол дека ќе 327 00:14:10,040 --> 00:14:16,860 генерички се нарекува документ, под која е коренот HTML елемент или ознака, HTML, 328 00:14:16,860 --> 00:14:19,980 кои потоа има две деца, главата и телото. 329 00:14:19,980 --> 00:14:21,750 >> А потоа за возврат, шеф има наслов. 330 00:14:21,750 --> 00:14:23,440 И наслов има текст вредност. 331 00:14:23,440 --> 00:14:26,130 И тело слично има текст вредност. 332 00:14:26,130 --> 00:14:29,220 Значи, ако сте удобно поговорка дека да, можете да ги искористат овој HTML 333 00:14:29,220 --> 00:14:32,080 и нацрта слика како ова, десната рака на 334 00:14:32,080 --> 00:14:35,910 е убав ментална модел бидејќи сега дека имаме JavaScript, програмирање 335 00:14:35,910 --> 00:14:39,960 јазик кој прелистувачи може да изврши и интерпретираат за вас, 336 00:14:39,960 --> 00:14:42,690 излегува дека она што ние сме за да се направи во кодот 337 00:14:42,690 --> 00:14:45,320 се почне да се манипулира со оваа дрво структура во меморијата. 338 00:14:45,320 --> 00:14:47,070 Ние не треба да се изгради дрвото во меморијата. 339 00:14:47,070 --> 00:14:49,880 Ние не треба да се направи еден вид на податочна структура pset пет стил 340 00:14:49,880 --> 00:14:50,650 комплексност. 341 00:14:50,650 --> 00:14:54,610 Прелистувачот, доволно убаво, по толкување на HTML врвот до дното, 342 00:14:54,610 --> 00:14:58,600 лево или десно, буквално се случува да се ни го предаде еквивалент на покажувач 343 00:14:58,600 --> 00:15:00,840 да дека целото дрво за слободни. 344 00:15:00,840 --> 00:15:02,150 Тоа го прави сите на напорна работа. 345 00:15:02,150 --> 00:15:05,520 Тоа е она што на Mozilla и Apple и другите имаат направено за нас. 346 00:15:05,520 --> 00:15:09,400 >> И со вклучите Javascript-се дојде до да може да се контролира и да се промени и да се направи 347 00:15:09,400 --> 00:15:12,910 интересни работи да се тоа дрво, инаку познат 348 00:15:12,910 --> 00:15:15,880 како ДОМ или документ Object Model. 349 00:15:15,880 --> 00:15:17,110 Какви видови на нештата? 350 00:15:17,110 --> 00:15:19,030 Па, излегува дека во JavaScript, има 351 00:15:19,030 --> 00:15:22,800 ова перење листа на настани кои може да се одржи. 352 00:15:22,800 --> 00:15:26,330 И ние не сме навистина се користи дека зборот од неделава нула и pset 353 00:15:26,330 --> 00:15:28,240 нула кога зборувавме за гребење. 354 00:15:28,240 --> 00:15:31,390 Повеќето од вас веројатно не го користат настан во вашиот Скреч проект. 355 00:15:31,390 --> 00:15:33,850 Но може да се сети од проста Марко Поло 356 00:15:33,850 --> 00:15:36,760 на пример, каде што имаме две sprites, а еден од нив рече, Марко. 357 00:15:36,760 --> 00:15:40,180 Другите од кои тогаш, по слушање и слухот тој случај, вели, Поло. 358 00:15:40,180 --> 00:15:42,080 Ако не, можете слободно да погледне назад, кои далеку назад. 359 00:15:42,080 --> 00:15:44,450 >> Но, ова е само за да велат, и можете да вид на 360 00:15:44,450 --> 00:15:47,730 заклучиме од имињата на овие работите, JavaScript, што излезе, 361 00:15:47,730 --> 00:15:53,200 ќе ни даде еден начин да се слуша глувчето за заоѓа или глушец ќе нагоре 362 00:15:53,200 --> 00:15:57,920 или копчето заоѓа или клуч ќе нагоре или onsubmit onselect 363 00:15:57,920 --> 00:15:59,740 или onresizing нешто. 364 00:15:59,740 --> 00:16:03,060 Со други зборови, било физичка активност што човек може да се земе со интернет пребарувач 365 00:16:03,060 --> 00:16:08,210 што го правите секој ден, можете да напишете код за која слуша за овие настани 366 00:16:08,210 --> 00:16:10,220 а потоа се прави нешто соодветно. 367 00:16:10,220 --> 00:16:14,130 >> На пример, ако имате потреба при користење на Google Maps, што ќе се случи ако кликнете и потег 368 00:16:14,130 --> 00:16:16,250 глувчето, обично? 369 00:16:16,250 --> 00:16:17,758 Ако кликнете и влечете? 370 00:16:17,758 --> 00:16:18,258 Да? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Токму така. 373 00:16:22,200 --> 00:16:23,159 Картата почнува да се движи. 374 00:16:23,159 --> 00:16:25,616 За да можете да вид на се види она што е овде, што е таму. 375 00:16:25,616 --> 00:16:27,130 И Како Google го спроведе тоа? 376 00:16:27,130 --> 00:16:29,421 Па, веројатно, тие се со помош на неколку од овие настан 377 00:16:29,421 --> 00:16:31,720 слушатели, која што зборува, слуша за на глушецот 378 00:16:31,720 --> 00:16:35,410 down-- па кога корисникот физички турка неговиот топчето или неговите глувчето 379 00:16:35,410 --> 00:16:36,010 надолу. 380 00:16:36,010 --> 00:16:38,350 А потоа ние сме во потрага по нешто како движење 381 00:16:38,350 --> 00:16:41,145 или некој друг настан кој ни овозможува да го фати повлечете. 382 00:16:41,145 --> 00:16:45,910 И всушност, влечи е слично на овој точка точка точка листа на можни опции. 383 00:16:45,910 --> 00:16:49,140 >> Па ова ќе биде моќен начин да се почне да се одговори на корисник 384 00:16:49,140 --> 00:16:52,824 дури и пред тој или таа всушност ќе кликне нешто како експлицитна достават. 385 00:16:52,824 --> 00:16:55,240 Но, ние ќе треба да се воведе неколку теми за да одам таму. 386 00:16:55,240 --> 00:16:58,570 Транзиција, но прво, да се на некои вистински код. 387 00:16:58,570 --> 00:17:01,450 Па јас ќе одам да се оди напред и да се отвори ДОМ-0, 388 00:17:01,450 --> 00:17:05,869 кој е многу едноставен пример тука дека ако зумирате едноставно 389 00:17:05,869 --> 00:17:08,500 има овој влез тука за мене. 390 00:17:08,500 --> 00:17:12,410 А јас ќе одам да се оди напред и да внесете "Давид" на името Мое и кликнете Прати. 391 00:17:12,410 --> 00:17:17,940 >> А потоа, иако вид на евтино, јас те прашува што се појавува, кој вели: 392 00:17:17,940 --> 00:17:19,244 "Здраво, Давидов!" 393 00:17:19,244 --> 00:17:21,740 Значи ова е вид на како нашите "Здраво, свет" 394 00:17:21,740 --> 00:17:25,150 да сме направиле некое време назад во C и дури и во PHP затоа што сум се динамички 395 00:17:25,150 --> 00:17:26,310 outputted моето име. 396 00:17:26,310 --> 00:17:28,230 Јас може да се направи име на некој друг тука. 397 00:17:28,230 --> 00:17:31,240 Јас едноставно би можеле да го промените ова, како, Хана, кликнете на Прати. 398 00:17:31,240 --> 00:17:33,780 И, навистина, малку скокачки промени. 399 00:17:33,780 --> 00:17:36,650 >> Сега, pop-up прозорци се една од повеќето злоупотребуваните карактеристики на веб. 400 00:17:36,650 --> 00:17:38,520 И всушност, назад во денот pop-up блокатори 401 00:17:38,520 --> 00:17:40,820 дојде во мода бидејќи вие ќе одат на некои website-- 402 00:17:40,820 --> 00:17:43,604 можеби дискутабилна place-- кои би потоа одеднаш 403 00:17:43,604 --> 00:17:46,020 почне peppering вашиот екран со целиот куп на pop-up прозорци. 404 00:17:46,020 --> 00:17:49,700 И така оваа способност да се појави прозорци во предниот дел на корисникот 405 00:17:49,700 --> 00:17:52,372 не била особено добро примен од страна на човештвото. 406 00:17:52,372 --> 00:17:54,080 Па тоа е причината зошто гледате ова се спречи нешто, 407 00:17:54,080 --> 00:17:55,706 кои едноставно ве тераат целата оваа работа грди. 408 00:17:55,706 --> 00:17:57,996 Значи ние се случува да треба подобар начин да го извести корисникот. 409 00:17:57,996 --> 00:17:59,350 Но, за сега, што се чини дека да се работи. 410 00:17:59,350 --> 00:18:03,320 Па само интуитивно, она што чини дека се случува овде? 411 00:18:03,320 --> 00:18:07,870 Одам напред и да кликнете Submit и тогаш нешто се случува, јасно. 412 00:18:07,870 --> 00:18:12,870 Но, она што не се случува што се случи минатата недела во секое време јас кликна поднесе? 413 00:18:12,870 --> 00:18:15,940 Што не се случи на екранот? 414 00:18:15,940 --> 00:18:17,170 Жал ми е? 415 00:18:17,170 --> 00:18:18,010 Вчитај ја страната повторно. 416 00:18:18,010 --> 00:18:19,720 URL-то не се промени на сите. 417 00:18:19,720 --> 00:18:22,250 Се вели дека ова е ДОМ-0, и сè уште сум на ДОМ-0. 418 00:18:22,250 --> 00:18:26,890 Нормално, ние ќе се менува и некои други URL-то, како register.php или слично. 419 00:18:26,890 --> 00:18:29,560 >> Но, дури и кога ќе се отпушти ова нешто со кликнување на OK, 420 00:18:29,560 --> 00:18:32,310 забележите дека URL останува целосно се стави. 421 00:18:32,310 --> 00:18:35,350 И дека, всушност, ако јас сум малку скептични, дозволете ми да се отвори Хром. 422 00:18:35,350 --> 00:18:36,860 Дозволете ми да се отвори на јазичето мрежа. 423 00:18:36,860 --> 00:18:38,360 И ќе забележите дека е празно во моментот. 424 00:18:38,360 --> 00:18:40,700 Дозволете ми да оди напред и да поднесете повторно Марија. 425 00:18:40,700 --> 00:18:42,810 Нема мрежниот сообраќај она. 426 00:18:42,810 --> 00:18:44,320 Па нема HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Значи, навистина, ако јас гледам на изворниот код за this-- дозволете ми да се затвори го овој прозорец 428 00:18:47,620 --> 00:18:49,480 и да си одат за да ја видите изворниот код. 429 00:18:49,480 --> 00:18:50,400 Интересно. 430 00:18:50,400 --> 00:18:53,520 Тоа изгледа како да има некои нови ознаки, меѓу кои и сценариото. 431 00:18:53,520 --> 00:18:57,490 Па ајде да ги разгледаме во CS50 ИРО токму она што го испрати до корисникот. 432 00:18:57,490 --> 00:19:00,690 >> Па еве is-- ајде се фокусира само на HTML. 433 00:19:00,690 --> 00:19:03,500 Тука е долниот дел на ДОМ-0.html. 434 00:19:03,500 --> 00:19:07,830 И ќе забележите дека тоа е се здобија со звање, глава ознака, ознака тело, форма таг. 435 00:19:07,830 --> 00:19:11,257 Но, она што се издвојува за вас, како различни, особено ако никогаш не сум 436 00:19:11,257 --> 00:19:12,590 напишано било JavaScript за себе. 437 00:19:12,590 --> 00:19:14,920 Дозволете ми да се движите малку овде кон десно. 438 00:19:14,920 --> 00:19:18,330 Јас имам еден влез, уште еден влез за покорат. 439 00:19:18,330 --> 00:19:21,410 Јас имам лична карта, која е вид на нов. 440 00:19:21,410 --> 00:19:22,790 Но ние го забележи со CSS. 441 00:19:22,790 --> 00:19:24,480 Што друго е дефинитивно ново? 442 00:19:24,480 --> 00:19:24,980 Да? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 Убаво. 445 00:19:32,140 --> 00:19:32,760 >> Во ред. 446 00:19:32,760 --> 00:19:35,630 Значи, каде што вели onsubmit, забележи она што се чини дека го следат. 447 00:19:35,630 --> 00:19:38,740 Ова е особина во HTML номенклатура. 448 00:19:38,740 --> 00:19:40,944 Неговата вредност е ова цитирани тука низа. 449 00:19:40,944 --> 00:19:42,860 И ова изгледа малку чудно на прв поглед. 450 00:19:42,860 --> 00:19:44,050 Тоа не е HTML. 451 00:19:44,050 --> 00:19:45,240 Тоа не е CSS. 452 00:19:45,240 --> 00:19:47,580 Ова е, како што претпоставувате JavaScript. 453 00:19:47,580 --> 00:19:51,850 Па се чини дека се вградени во овој веб-страница е на функција наречена поздрави. 454 00:19:51,850 --> 00:19:54,250 И јас сум inferring дека само затоа што тоа е еден збор, го поздрават. 455 00:19:54,250 --> 00:19:55,880 Тоа доби отворен paren, блиску paren, точка-запирка. 456 00:19:55,880 --> 00:19:58,095 Личи на функцијата Ц, личи на PHP функцијата. 457 00:19:58,095 --> 00:20:00,370 >> И навистина, тоа се случува да да биде функција на JavaScript. 458 00:20:00,370 --> 00:20:01,440 Тогаш јас сум враќање лажни. 459 00:20:01,440 --> 00:20:03,440 Ние ќе се вратам на дека во само еден миг. 460 00:20:03,440 --> 00:20:05,320 Но, каде се дефинира оваа функција? 461 00:20:05,320 --> 00:20:07,950 Па нека ме скролувајте нагоре на врвот на датотеката. 462 00:20:07,950 --> 00:20:11,710 И иако тоа е една долга линија, тоа е релативно јасна. 463 00:20:11,710 --> 00:20:15,000 Дозволете ми да зумирате од тука и да се фокусира на овие четири линии. 464 00:20:15,000 --> 00:20:17,137 >> Па во JavaScript, само како PHP, само 465 00:20:17,137 --> 00:20:19,720 да речеме, буквално, зборот "функција" името на функцијата, 466 00:20:19,720 --> 00:20:22,700 а потоа се загради со било arguments-- без аргументи во овој случај. 467 00:20:22,700 --> 00:20:25,290 И нема враќање тип во JavaScript, исто како и PHP. 468 00:20:25,290 --> 00:20:29,470 Така, тоа е малку полабава од В. Отворен кадрава голема заграда, во близина кадрава голема заграда. 469 00:20:29,470 --> 00:20:33,270 Вградени во JavaScript е function-- не е препорачливо function-- 470 00:20:33,270 --> 00:20:35,730 но функција наречена алармирање чија единствена цел во животот 471 00:20:35,730 --> 00:20:38,620 е да се повлече до кои прилично грдо извести дека видовме пред еден миг. 472 00:20:38,620 --> 00:20:40,950 >> Сега ова е вид на еден залак. 473 00:20:40,950 --> 00:20:42,560 Што се случува овде? 474 00:20:42,560 --> 00:20:45,840 Значи, да почнеме да нагласи сè овде. 475 00:20:45,840 --> 00:20:48,540 Тоа е истиот аргумент за да го предупреди. 476 00:20:48,540 --> 00:20:49,530 И она што се случува? 477 00:20:49,530 --> 00:20:51,200 Ова само изгледа како стринг. 478 00:20:51,200 --> 00:20:59,180 И што излезе, за разлика од PHP и за разлика од Ц, тоа не е важно во JavaScript 479 00:20:59,180 --> 00:21:01,090 ако единечен наводник или двојни наводници. 480 00:21:01,090 --> 00:21:02,060 Тие ќе бидат еднакви. 481 00:21:02,060 --> 00:21:03,769 И искрено, тоа е само популарна овие денови 482 00:21:03,769 --> 00:21:06,726 за програмери секогаш да го вклучите Javascript- Користете единечен наводник поради некоја причина. 483 00:21:06,726 --> 00:21:07,840 Тоа е само нешто што треба да се направи. 484 00:21:07,840 --> 00:21:09,710 Но, ние би можеле да користат двојни наводници, како и. 485 00:21:09,710 --> 00:21:11,540 >> Па плус е нов лик. 486 00:21:11,540 --> 00:21:14,512 Но оние од вас кои го направиле тоа порано, што значи плус значи? 487 00:21:14,512 --> 00:21:16,440 Је. 488 00:21:16,440 --> 00:21:17,120 Concatenate. 489 00:21:17,120 --> 00:21:18,570 Па ние го виде тоа во PHP. 490 00:21:18,570 --> 00:21:20,315 Има само дот оператор дека во PHP 491 00:21:20,315 --> 00:21:22,000 ќе concatenate две жици заедно. 492 00:21:22,000 --> 00:21:24,000 С е болка во вратот за да го направите тоа. 493 00:21:24,000 --> 00:21:27,310 Потсетиме од pset шест, што беше посебната болка во вратот, 494 00:21:27,310 --> 00:21:29,470 вие ќе треба да се користи нешто како strcat 495 00:21:29,470 --> 00:21:31,660 по доделување меморија на магацинот или грамада. 496 00:21:31,660 --> 00:21:34,243 Ти мораше да скокаат преку карики само за да concatenate две жици. 497 00:21:34,243 --> 00:21:36,040 Во JavaScript, тоа е супер едноставен. 498 00:21:36,040 --> 00:21:38,030 Само користење на операторот на плус меѓу нив. 499 00:21:38,030 --> 00:21:41,420 >> Па комплексот изглед нешто што се чини дека е ова 500 00:21:41,420 --> 00:21:43,490 бидејќи на крајот на целата оваа низа, јас само 501 00:21:43,490 --> 00:21:45,797 concatenate на фантастичен точка. 502 00:21:45,797 --> 00:21:48,380 Значи, ако она што се појавуваат се "Здраво, Дејвид", "Здраво, Ана" 503 00:21:48,380 --> 00:21:52,740 "Здраво, Марија", и така натаму, јасно дека нешто во средината меѓу двете 504 00:21:52,740 --> 00:21:55,215 предности што мора да ми даде пристап во што? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Она што е таму за сигурни? 507 00:22:01,991 --> 00:22:02,490 Је. 508 00:22:02,490 --> 00:22:05,090 Па јас ќе се преправа тука одговори на нивното име, нели? 509 00:22:05,090 --> 00:22:10,380 Па нивното име се појави во финалето резултат. Па што значи тоа? 510 00:22:10,380 --> 00:22:15,080 Па, јас предложи порано во таа слика дека т.н. ДОМ 511 00:22:15,080 --> 00:22:18,580 има овој посебен корен елемент пат до врвот наречен документ. 512 00:22:18,580 --> 00:22:21,660 И сега, што се испоставува, кој ќе да биде специјален глобалната променлива 513 00:22:21,660 --> 00:22:25,250 во JavaScript, вградени во која е еден куп корисни функционалност. 514 00:22:25,250 --> 00:22:31,770 Меѓу корисни функционалност е Способноста да се добие во секое потомок јазол. 515 00:22:31,770 --> 00:22:37,760 Оние квадрати или правоаголници или елипса се само јазли во дрво, така да се каже. 516 00:22:37,760 --> 00:22:41,850 >> Значи излегува дека се вградени во Документ објектот го вклучите Javascript-е 517 00:22:41,850 --> 00:22:47,300 е во функција, инаку познат како метод, што се вика getElementById. 518 00:22:47,300 --> 00:22:50,410 Синтаксата за повикување функција во вклучите Javascript- 519 00:22:50,410 --> 00:22:55,220 дека е во внатрешноста на некој предмет или променлива е само со нотација точка. 520 00:22:55,220 --> 00:22:57,950 И видовме ова во C што синтаксата на struct. 521 00:22:57,950 --> 00:23:03,530 Ќе го видите ова во pset седум, вид, на некој начин, кога ќе видите CS50 :: пребарување. 522 00:23:03,530 --> 00:23:08,070 Дебелото црево дебелото црево во PHP е уште еден начин на повикување на функција која е 523 00:23:08,070 --> 00:23:09,260 во внатрешноста на некој предмет. 524 00:23:09,260 --> 00:23:11,960 >> Но сега за сега во JavaScript, тоа е само една точка. 525 00:23:11,960 --> 00:23:14,170 И така на оваа функција, доволно убаво, вид на 526 00:23:14,170 --> 00:23:16,810 вели дека она што does-- добие елемент по проект. 527 00:23:16,810 --> 00:23:20,280 Елемент е само друго име за ознака или јазол во ДОМ. 528 00:23:20,280 --> 00:23:26,900 И така да добијат елемент по проект "името" значи this-- тука е моето HTML. 529 00:23:26,900 --> 00:23:31,910 И врз основа на овој HTML, што јазол или она HTML таг Јас сум 530 00:23:31,910 --> 00:23:35,097 програмски ќе бидат предадени со повикување document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Да, точно. 533 00:23:38,500 --> 00:23:42,670 Одам да се добие на влез елемент таму чиј проект е "името". 534 00:23:42,670 --> 00:23:45,140 Значи конкретно, може да се мислам на оваа функција, 535 00:23:45,140 --> 00:23:49,560 getElementById, како начин на давање се врати на покажувачот во тој специфичен јазол 536 00:23:49,560 --> 00:23:50,060 во стеблото. 537 00:23:50,060 --> 00:23:51,980 Не сме подготвени ова дрво, но тоа е начин 538 00:23:51,980 --> 00:23:54,900 на добивање на пристап до тие правоаголник или правоаголник 539 00:23:54,900 --> 00:23:58,090 со уникатно го идентификуваат преку својот проект. 540 00:23:58,090 --> 00:23:59,760 >> Сега, зошто е ова корисно? 541 00:23:59,760 --> 00:24:01,510 Па, излегува дека еднаш сте добиле 542 00:24:01,510 --> 00:24:07,220 тој јазол, дека правоаголник од слика, тој јазол во него, 543 00:24:07,220 --> 00:24:10,660 пак, има еден куп properties-- парови клучните вредност 544 00:24:10,660 --> 00:24:13,480 или податоци, од кои едната се вика вредност. 545 00:24:13,480 --> 00:24:16,500 Значи буквално, тоа е вид на залак за да се објасни целата работа. 546 00:24:16,500 --> 00:24:19,370 Но, на крајот на денот, сето тоа не е да ви даде 547 00:24:19,370 --> 00:24:23,070 стринг кој на корисникот внесе во во оваа хиерархиска модата. 548 00:24:23,070 --> 00:24:24,820 Но не ми се допаѓа неколку од овие работи. 549 00:24:24,820 --> 00:24:27,590 Или подобро кажано, има некои љубопитност уште. 550 00:24:27,590 --> 00:24:28,870 Сето тоа се чинеше да работат. 551 00:24:28,870 --> 00:24:33,420 Зошто мислиш дека се вратив лажни после повикот поздрават? 552 00:24:33,420 --> 00:24:35,910 Ова изгледа малку грдо, дека Имам две изјави таму 553 00:24:35,910 --> 00:24:38,730 разделени со точка-запирка. 554 00:24:38,730 --> 00:24:39,310 Претпоставете. 555 00:24:39,310 --> 00:24:44,390 Ако јас отстрани return false, она што може да се случи, само инстинктивно? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Жал ми е, да речеме пак? 558 00:24:49,460 --> 00:24:50,530 >> Отвори еден куп на Windows. 559 00:24:50,530 --> 00:24:52,780 Така потенцијално можеби нешто како тоа ќе се случи. 560 00:24:52,780 --> 00:24:54,422 Што друго? 561 00:24:54,422 --> 00:24:55,630 Може да поднесе барање, каде? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 На истата страница. 564 00:25:00,510 --> 00:25:03,110 Така, всушност, тоа е тоа поблиску се одговори тука, 565 00:25:03,110 --> 00:25:05,890 и покрај тоа што, за разлика од во минатото, јас не сум 566 00:25:05,890 --> 00:25:09,300 одредено атрибутот акција, кои нормално ќе треба да направиме. 567 00:25:09,300 --> 00:25:11,780 Излегува има стандардно. Ако не наведете акција, 568 00:25:11,780 --> 00:25:15,370 тоа е како да кажеш цитат unquote или на името на датотеката себе, 569 00:25:15,370 --> 00:25:17,850 кој во овој случај би било како ДОМ-0.html. 570 00:25:17,850 --> 00:25:20,420 Тоа е само вид на заклучи, или подобро кажано, се подразбира. 571 00:25:20,420 --> 00:25:22,420 >> И така, ако јас не го сторат тоа, ајде да се забележи. 572 00:25:22,420 --> 00:25:23,230 Дозволете ми да се спаси ова. 573 00:25:23,230 --> 00:25:25,270 И јас сум отстрани враќање лажни. 574 00:25:25,270 --> 00:25:27,759 Дозволете ми да се вратиш на овој пример и сила ја превчитате. 575 00:25:27,759 --> 00:25:30,800 И можеби сте виделе ми сугерираат ова на CS50 Разговараат еден куп пати. 576 00:25:30,800 --> 00:25:34,560 Ако нешто некогаш постапувајќи фанки и навигаторот не е да се однесуваат како што се очекува, 577 00:25:34,560 --> 00:25:37,410 Честопати ќе сакате да се одржи Shift и кликнете Освежи. 578 00:25:37,410 --> 00:25:41,480 Што ќе ги принуди секоја датотека за да ја превчитате и да не ги користат локалните кешот на прелистувачот 579 00:25:41,480 --> 00:25:47,032 или копија, така што сега, дозволете ми да оди напред и отвори мојот инспектор, јазичето мрежа. 580 00:25:47,032 --> 00:25:48,740 Одам да кликнете Вклучи се зачува, бидејќи јас 581 00:25:48,740 --> 00:25:51,660 не сакаат тоа да го избришете редови еднаш ми биде однесен далеку на друго место. 582 00:25:51,660 --> 00:25:54,650 >> Дозволете ми да оди напред и тука тип во Анди, кликнете Прати. 583 00:25:54,650 --> 00:25:55,150 Во ред. 584 00:25:55,150 --> 00:25:56,480 Што се чини дека како што се очекуваше. 585 00:25:56,480 --> 00:25:57,440 Таа вели: "Здраво, Анди." 586 00:25:57,440 --> 00:25:59,420 Дозволете ми да кликнете OK. 587 00:25:59,420 --> 00:26:00,610 Интересно. 588 00:26:00,610 --> 00:26:05,100 Забележите дека страницата се менува, иако кон оригиналната страница. 589 00:26:05,100 --> 00:26:06,770 Известување на URL вид на променети. 590 00:26:06,770 --> 00:26:09,430 Се додава знак прашалник, кој обично е показател 591 00:26:09,430 --> 00:26:11,260 дека се обидовме да ги достават нешто. 592 00:26:11,260 --> 00:26:13,570 А потоа на дното, дури и поексплицитно, 593 00:26:13,570 --> 00:26:17,570 тука е вистинската HTTP барање, кој доби одговор дека од 200 594 00:26:17,570 --> 00:26:18,490 Ме врати тука. 595 00:26:18,490 --> 00:26:20,250 >> Значи ова не она што е сакаме да го направи тоа, нели? 596 00:26:20,250 --> 00:26:22,166 Затоа што не сакаат да Вчитај ја страната повторно целата страница. 597 00:26:22,166 --> 00:26:24,970 Јас наместо тоа сака да се врати лажни за да краток спој 598 00:26:24,970 --> 00:26:28,840 стандардно однесување на прелистувачот, што беше, се разбира, да ги достават на страницата. 599 00:26:28,840 --> 00:26:31,700 >> Па ајде да ги разгледаме во маргинално подобар пример. 600 00:26:31,700 --> 00:26:33,920 Ова е еден дом верзија. 601 00:26:33,920 --> 00:26:36,680 И ќе забележите следново. 602 00:26:36,680 --> 00:26:39,150 Тоа е во ред, ако не grok сите линии на код. 603 00:26:39,150 --> 00:26:41,750 Но, она што е фундаментално различно во врска со оваа имплементација? 604 00:26:41,750 --> 00:26:44,690 Ќе се уредуваат таа се однесува на исто, го прави истото. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Што сум очигледно направиле поинаку? 607 00:26:51,570 --> 00:26:52,266 Да? 608 00:26:52,266 --> 00:26:53,182 >> ПУБЛИКАТА: [Беззвучен]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 Дејвид MALAN: Да. 611 00:27:04,170 --> 00:27:08,620 Па функција е дефинирана differently-- со други зборови, не присуствувале на формата, 612 00:27:08,620 --> 00:27:13,180 таму на линија 7-- или Наместо тоа, на линија 8-- веќе не 613 00:27:13,180 --> 00:27:15,070 имам на onsubmit атрибут. 614 00:27:15,070 --> 00:27:16,750 Во претходниот пример, го имам ова. 615 00:27:16,750 --> 00:27:18,530 И јас тогаш буквално напишав мојот код овде. 616 00:27:18,530 --> 00:27:20,210 И тогаш реков return false. 617 00:27:20,210 --> 00:27:22,180 И ако тоа не се фаќа сеуште на погрешен начин, 618 00:27:22,180 --> 00:27:26,140 тоа треба да почне да се дотолку како што е, исто како и во HTML, 619 00:27:26,140 --> 00:27:29,530 кога почнавме да го ко-мешаат со CSS во атрибути стил, 620 00:27:29,530 --> 00:27:32,890 тоа само што почнав да се добие малку неуредна или се чувствуваат малку погрешно. 621 00:27:32,890 --> 00:27:35,020 >> Слично на тоа тука, ако да започнете со употреба на HTML, 622 00:27:35,020 --> 00:27:37,419 и тогаш автоматски паднала некои JavaScript код 623 00:27:37,419 --> 00:27:40,460 во средината на котирана стринг, тоа е не се случува да биде многу одржување. 624 00:27:40,460 --> 00:27:40,630 Нели? 625 00:27:40,630 --> 00:27:43,690 Тоа не е дури очевидни на почеток место каде што на JavaScript код е. 626 00:27:43,690 --> 00:27:46,590 Па тоа ќе биде навистина убаво како принцип на подобар дизајн, 627 00:27:46,590 --> 00:27:50,500 ајде да ги одржуваме нашите HTML целосно одвои од нашиот JavaScript. 628 00:27:50,500 --> 00:27:53,150 >> Па да се направи тоа, она што ние сме направено овде е following-- 629 00:27:53,150 --> 00:27:56,790 ние едноставно се користат HTML само Селектирај. 630 00:27:56,790 --> 00:28:00,730 И така во една верзија на ова, сите Имам е форма со единствен број. 631 00:28:00,730 --> 00:28:04,630 А потоа надолу тука, јас искористување на посебна карактеристика на JavaScript 632 00:28:04,630 --> 00:28:08,480 при што јас може да има што е наречен анонимен функција. 633 00:28:08,480 --> 00:28:14,150 Значи излегува дека ако јас се јавите document.getElementById на 'демо' 634 00:28:14,150 --> 00:28:18,890 тоа е како да ми дава покажувач овој јазол во мојот дрво, формата елемент, 635 00:28:18,890 --> 00:28:20,100 така да се каже. 636 00:28:20,100 --> 00:28:22,220 >> Сега, јас само знам од знаејќи малку на HTML 637 00:28:22,220 --> 00:28:26,330 сега ние ја прочитате некои онлајн референца, таа форма на елементот поддржува 638 00:28:26,330 --> 00:28:29,950 целиот куп на настанот listeners-- во други зборови, на перење листа на настан 639 00:28:29,950 --> 00:28:31,700 слушатели дека видовме пред еден миг. 640 00:28:31,700 --> 00:28:35,950 Знам од читање на документација дека onsubmit е валидна настан 641 00:28:35,950 --> 00:28:38,520 слушателот за форма на елементот. 642 00:28:38,520 --> 00:28:41,480 >> Па откако знам дека, дека е безбедно за мене да се направи 643 00:28:41,480 --> 00:28:45,390 на following-- добие тој јазол од дрво, формата елемент, 644 00:28:45,390 --> 00:28:48,070 и нејзиниот пристап т.н. onsubmit сопственост. 645 00:28:48,070 --> 00:28:49,880 Па дот само значи ова е имот, 646 00:28:49,880 --> 00:28:52,180 како посебна вредност во него. 647 00:28:52,180 --> 00:28:55,590 И она што на податоци тип сум давање, очигледно, 648 00:28:55,590 --> 00:28:58,900 да onsubmit, што е ефикасно променлива внатре 649 00:28:58,900 --> 00:29:01,010 на тој јазол во дрвото? 650 00:29:01,010 --> 00:29:04,100 Тоа е област внатре во тоа struct. 651 00:29:04,100 --> 00:29:05,810 Што е типот податоци? 652 00:29:05,810 --> 00:29:07,030 >> А функција, да. 653 00:29:07,030 --> 00:29:08,607 Значи излегува дека PHP има ова. 654 00:29:08,607 --> 00:29:10,440 И иако ние не ви кажам за тоа, 655 00:29:10,440 --> 00:29:16,240 Ц, исто така, има функција покажувачи, на можноста да помине и да го додели функции 656 00:29:16,240 --> 00:29:18,330 како и самите вредности варијабли. 657 00:29:18,330 --> 00:29:20,280 И ние нема да одам назад во В. 658 00:29:20,280 --> 00:29:23,250 Но, за сега, се покажа дека на десната рака овде, 659 00:29:23,250 --> 00:29:26,260 иако тоа изгледа малку фанки, тоа значи, еј прелистувач, 660 00:29:26,260 --> 00:29:27,550 дај ми функција. 661 00:29:27,550 --> 00:29:30,560 Јас не одам за да се грижат ниту давање тоа име, бидејќи јас сум буквално 662 00:29:30,560 --> 00:29:34,450 ќе му ја додели ајде да го наречеме адреса на оваа функција 663 00:29:34,450 --> 00:29:35,994 веднаш да onsubmit. 664 00:29:35,994 --> 00:29:39,160 Со други зборови, прелистувач, вие не треба да да знаат што на оваа функција се нарекува. 665 00:29:39,160 --> 00:29:41,890 Вие само треба да знаете каде што е во меморијата. 666 00:29:41,890 --> 00:29:44,210 И така доволно е само да се има знак за еднаквост таму 667 00:29:44,210 --> 00:29:48,240 и да не се мачат именувањето на оваа, како и foo или поздрават или со друг збор. 668 00:29:48,240 --> 00:29:50,150 А сега ова е само нешто стилски. 669 00:29:50,150 --> 00:29:53,100 Можев да се движи оваа кадрава голема заграда врз the-- sorry-- следната линија 670 00:29:53,100 --> 00:29:54,750 како што обично го прават CS50. 671 00:29:54,750 --> 00:29:57,550 Но во JavaScript, тоа е всушност стилски заеднички 672 00:29:57,550 --> 00:30:00,450 да се задржи само на кадрава голема заграда, на Првиот, на првата линија. 673 00:30:00,450 --> 00:30:02,620 >> Но оној свет, има ништо интересно. 674 00:30:02,620 --> 00:30:05,830 Дека отворените кадрава подготвуваат само демаркира почетокот на мојата функција. 675 00:30:05,830 --> 00:30:09,320 Функцијата е сега идентични, освен што сум 676 00:30:09,320 --> 00:30:11,452 вклучени враќањето лажни во внатрешноста на оваа функција. 677 00:30:11,452 --> 00:30:13,160 Затоа што се покажува out-- само и ти би 678 00:30:13,160 --> 00:30:14,980 знам од читање на documentation-- 679 00:30:14,980 --> 00:30:19,740 дека ако на функцијата што ја додели до onsubmit управувачот враќа false, 680 00:30:19,740 --> 00:30:23,420 прелистувачот само знае и се согласува не да ги достават форма на серверот. 681 00:30:23,420 --> 00:30:27,210 Ако таа се враќа точно, тоа ќе ги достават тоа со некој сервер од причини што ќе видиме 682 00:30:27,210 --> 00:30:28,700 се корисни во само еден миг. 683 00:30:28,700 --> 00:30:31,000 >> А потоа и точка-запирка после кадрава подготвуваат таму само 684 00:30:31,000 --> 00:30:32,541 значи јас сум се направи дефинирање на функција. 685 00:30:32,541 --> 00:30:36,600 Знаеш што да се јавам штом што ќе чуете поднесување. 686 00:30:36,600 --> 00:30:37,100 Во ред. 687 00:30:37,100 --> 00:30:40,650 Ова е уште веројатно вид на грдото. 688 00:30:40,650 --> 00:30:42,190 Па што повеќе можеме да направиме? 689 00:30:42,190 --> 00:30:45,000 >> Па, излегува потоа во верзија две, што е last-- 690 00:30:45,000 --> 00:30:46,780 и ние само ќе се загледувам во ова. 691 00:30:46,780 --> 00:30:49,850 На ризикот од правење тоа погрда, излегува 692 00:30:49,850 --> 00:30:52,160 дека има библиотека светот наречен jQuery. 693 00:30:52,160 --> 00:30:54,900 И jQuery е супер популарни JavaScript библиотека 694 00:30:54,900 --> 00:30:57,930 тоа е толку популарна што повеќето било JavaScript-- тоа не е 695 00:30:57,930 --> 00:31:00,540 невообичаено за луѓето да се збуни jQuery со JavaScript. 696 00:31:00,540 --> 00:31:01,070 Зошто? 697 00:31:01,070 --> 00:31:04,990 Го вклучите Javascript-се има многу опширниот начини на вршење на things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Ви заврши имаат многу долги линии на код. 700 00:31:10,510 --> 00:31:15,550 >> Значи колега по име Џон Resid, кои всушност се работи за стартување 701 00:31:15,550 --> 00:31:18,630 до овие денови, излезе со оваа библиотека години 702 00:31:18,630 --> 00:31:22,070 Пред тоа што многу луѓе придонесоа да се нарече jQuery што се менува 703 00:31:22,070 --> 00:31:23,449 синтаксата на следниот начин. 704 00:31:23,449 --> 00:31:25,740 И само да го видел ова, бидејќи ќе секогаш 705 00:31:25,740 --> 00:31:28,140 види ова, ако се прави веб-базирани на финалниот проект, 706 00:31:28,140 --> 00:31:33,270 тоа би било еквивалент на начин на спроведување на истата функција со користење на 707 00:31:33,270 --> 00:31:34,630 оваа специјална библиотека. 708 00:31:34,630 --> 00:31:36,680 >> Сега, наместо да закачам освен тоа во целост, 709 00:31:36,680 --> 00:31:38,520 ајде да погледнеме некои модели. 710 00:31:38,520 --> 00:31:44,850 Оваа синтакса се чини дека има колку анонимни функции 711 00:31:44,850 --> 00:31:49,584 или безимени функции или АКА Ламбда функции? 712 00:31:49,584 --> 00:31:50,190 Две, нели? 713 00:31:50,190 --> 00:31:52,690 И знаеш дека, дури и ако вие не сте супер удобен со ова, 714 00:31:52,690 --> 00:31:55,780 само од страна на фактот дека тоа вели дека функцијата () двапати. 715 00:31:55,780 --> 00:31:58,172 >> И излегува дека што овој код е doing-- 716 00:31:58,172 --> 00:32:01,255 и ние ќе се однесува на онлајн референци, во крајна линија, за некаква помош со ова. 717 00:32:01,255 --> 00:32:04,480 Ова само значи дека кога документот е подготвен, 718 00:32:04,480 --> 00:32:07,490 оди напред и да се регистрирате следниве функција 719 00:32:07,490 --> 00:32:12,064 како на управувачот достават за HTML елемент чија единствена идеја е демо. 720 00:32:12,064 --> 00:32:14,480 И тогаш, кога тоа се случи, нарекуваме овие две линии на код. 721 00:32:14,480 --> 00:32:18,677 И ова е трагично, повеќе опширниот начин да се каже return false. 722 00:32:18,677 --> 00:32:21,510 И ние го спомнале тоа само затоа што ќе видите кодот вака онлајн. 723 00:32:21,510 --> 00:32:23,140 И тоа не е ништо да се обесхрабрени од. 724 00:32:23,140 --> 00:32:26,057 Но, наместо тоа, имајте на ум дека она што е ќе биде честа појава во вклучите Javascript- 725 00:32:26,057 --> 00:32:26,765 е оваа парадигма. 726 00:32:26,765 --> 00:32:29,510 И така тоа е причината зошто ние да го покаже тоа за сега. 727 00:32:29,510 --> 00:32:30,010 Во ред. 728 00:32:30,010 --> 00:32:32,730 Значи без живеалиште премногу многу на таа синтакса, 729 00:32:32,730 --> 00:32:37,800 се има било какви прашања во врска со овие примери и идеи досега? 730 00:32:37,800 --> 00:32:38,300 Во ред. 731 00:32:38,300 --> 00:32:40,220 Па ајде да го користите овој за нешто корисно. 732 00:32:40,220 --> 00:32:47,070 Изработка на веб страница, која само вели здраво, така и така не е толку интересно, 733 00:32:47,070 --> 00:32:47,830 да не underwhelm. 734 00:32:47,830 --> 00:32:51,038 Оваа една нема да биде убава, но тоа се случува да се направи нешто корисно. 735 00:32:51,038 --> 00:32:56,350 Дозволете ми да се вратам во мојата листа тука и да се отвори, да речеме, форма-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Па претпоставувам дека ова е Новак интрамурална спортови регистрација страница 737 00:32:59,320 --> 00:33:01,780 CSS или без никакво чувство за дизајн. 738 00:33:01,780 --> 00:33:05,404 И сакам да се оди напред и да Регистрирајте се тука со лозинка. 739 00:33:05,404 --> 00:33:08,320 А јас ќе одам да се согласувате со условите и условите и кликнете на Register. 740 00:33:08,320 --> 00:33:11,700 И сега на веб-сајтот вели: "Вие сте регистрирана! (Па, не баш.) " 741 00:33:11,700 --> 00:33:15,070 Што се чини како да работи, но дозволете ми да оди напред и да ги принуди Reload. 742 00:33:15,070 --> 00:33:18,720 >> И дозволете ми да кажам, не, ти не треба вистински мојот е-мејл адреса. 743 00:33:18,720 --> 00:33:21,820 Или можеби ние само ќе кажам пошта во таму. 744 00:33:21,820 --> 00:33:25,080 Лозинка ќе биде, како, 12345. 745 00:33:25,080 --> 00:33:28,810 И тогаш, само затоа што сум идиот, сега тоа е 123456789. 746 00:33:28,810 --> 00:33:31,150 И јас не одам да се провери вашата кутија. 747 00:33:31,150 --> 00:33:31,850 >> Хм. 748 00:33:31,850 --> 00:33:32,350 Во ред. 749 00:33:32,350 --> 00:33:34,920 Па има неколку можности за подобрување тука. 750 00:33:34,920 --> 00:33:39,070 А ти знаеш, или ќе видиме во pset седум, кои можете да го напишете code-- 751 00:33:39,070 --> 00:33:41,890 и ќе мора да се напише код во PHP-- да се брани 752 00:33:41,890 --> 00:33:45,780 против овие видови на корисник грешки, бидејќи корисникот јасно 753 00:33:45,780 --> 00:33:46,790 не соработувале. 754 00:33:46,790 --> 00:33:49,680 И тој или таа нема да ви даде сите вредности што си сакал, па дури и во формат 755 00:33:49,680 --> 00:33:50,630 кои ви ги сакаше. 756 00:33:50,630 --> 00:33:53,250 Така што ќе видите во pset седум дека ние, секако, може да има некои 757 00:33:53,250 --> 00:33:55,680 ако условите кои велат Ако e-mail адреса 758 00:33:55,680 --> 00:33:59,450 не е username@something.edu, Ние може само 759 00:33:59,450 --> 00:34:02,575 се извини и да се извини за корисникот многу, како што може да биде во pset седум. 760 00:34:02,575 --> 00:34:05,700 Или ако тие не се провери таа кутија, Излезе во PHP, може да се открие дека, 761 00:34:05,700 --> 00:34:06,200 исто така. 762 00:34:06,200 --> 00:34:09,389 И, секако, ако лозинки не се исти како и во register.php 763 00:34:09,389 --> 00:34:11,521 за pset седум, може да се открие тоа. 764 00:34:11,521 --> 00:34:13,770 Но, тоа е болка во вратот во кои сега ги бара 765 00:34:13,770 --> 00:34:15,510 нас да одат сите на патот до серверот. 766 00:34:15,510 --> 00:34:17,053 Корисникот е информиран за грешка. 767 00:34:17,053 --> 00:34:19,219 И најмалку освен ако не користите некои познавач техники, 768 00:34:19,219 --> 00:34:20,929 сега тие треба да кликнете на задната страна на тастатурата. 769 00:34:20,929 --> 00:34:23,300 Зарем не би било убаво, како многу веб-сајтови денес, 770 00:34:23,300 --> 00:34:26,190 ако сте имале повеќе непосредни повратни информации, веднаш? 771 00:34:26,190 --> 00:34:31,389 >> Со други зборови, дозволете ми да оди на верзијата еден, кој се случува да биде нема поубава. 772 00:34:31,389 --> 00:34:33,469 Но, тоа не ја имаат оваа функција. 773 00:34:33,469 --> 00:34:39,590 MALAN, 12345, 123456789, а не случува да се провери кутија, регистар. 774 00:34:39,590 --> 00:34:41,330 Лозинките не се совпаѓаат. 775 00:34:41,330 --> 00:34:44,459 Така, иако овој pop-up е ugly-- можеме да го замени тоа на крајот 776 00:34:44,459 --> 00:34:47,000 со нешто како подигање, кој ќе ја видите во pset седум 777 00:34:47,000 --> 00:34:50,239 е многу популарна library-- го направив детектира дека лозинки не се совпаѓаат. 778 00:34:50,239 --> 00:34:50,739 Во ред. 779 00:34:50,739 --> 00:34:52,530 Па, дозволете ми да го поправите тоа како корисник. 780 00:34:52,530 --> 00:34:55,460 Дозволете ми да оди напред и да каже 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Уште не проверка на договорот. 782 00:34:57,780 --> 00:35:00,210 Мора да се согласувате со правила и услови. 783 00:35:00,210 --> 00:35:01,760 Па зошто? 784 00:35:01,760 --> 00:35:04,100 >> Ако ние сме веќе утврден дека има начин, 785 00:35:04,100 --> 00:35:07,260 и ние ќе се бара во pset седум за откривање на грешка 786 00:35:07,260 --> 00:35:09,780 услови вака од страна на серверот, зошто ќе ми 787 00:35:09,780 --> 00:35:13,940 исто така, да се мачи го ова за да вклучите? 788 00:35:13,940 --> 00:35:15,850 Што е аргумент во корист на додавање она 789 00:35:15,850 --> 00:35:18,760 вие сте за да се види како some-- има дополнителни комплексност. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Можеби и не постои наопаку. 792 00:35:25,930 --> 00:35:26,924 Што би можело да биде? 793 00:35:26,924 --> 00:35:27,840 ПУБЛИКАТА: [Беззвучен]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 Дејвид MALAN: Ох, интересно. 796 00:35:32,340 --> 00:35:33,530 Потенцијални злоупотреби. 797 00:35:33,530 --> 00:35:37,540 Толку сигурен, ако не сте ракување погрешни корисник влез таа голема, 798 00:35:37,540 --> 00:35:40,170 можеби тоа е сите на подобро, ако тоа дури не се постигне вашиот сервер. 799 00:35:40,170 --> 00:35:42,160 Јас би им помогнам назад таму и да речеме, веројатно ќе треба да 800 00:35:42,160 --> 00:35:43,284 поправат и двете од овие проблеми. 801 00:35:43,284 --> 00:35:44,140 Но тоа не е фер. 802 00:35:44,140 --> 00:35:44,710 Што друго? 803 00:35:44,710 --> 00:35:45,626 >> ПУБЛИКАТА: [Беззвучен]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> Дејвид MALAN: Да. 806 00:35:49,014 --> 00:35:51,680 Овој закон, како што веќе рековме, е толкувани на клиент-страна. 807 00:35:51,680 --> 00:35:53,846 Тоа не им пречи на серверот, што значи дека тоа не се случи 808 00:35:53,846 --> 00:35:55,930 оптоварување или да влијаат на капацитетот на серверот. 809 00:35:55,930 --> 00:35:59,840 И сега, за малку стар мене, ова нема никаква поважна ефект 810 00:35:59,840 --> 00:36:01,970 бидејќи имам еден корисник во моментов. 811 00:36:01,970 --> 00:36:04,010 >> Но, ако сте било веб-страница на пристојна големина, 812 00:36:04,010 --> 00:36:07,400 особено од најголемите, како што се Фејсбук, на повеќе можете да ги задржи луѓето надвор 813 00:36:07,400 --> 00:36:09,927 на вашиот сервер подобро бидејќи на серверот, се разбира, 814 00:36:09,927 --> 00:36:12,510 има само ограничен износ на RAM меморија, ограничен број на гигахерци, 815 00:36:12,510 --> 00:36:16,340 ограничен број на работите тоа може да се направи по единица време. 816 00:36:16,340 --> 00:36:19,170 Па ако има повеќе луѓе во светот притискање на вашиот сервер, 817 00:36:19,170 --> 00:36:21,750 случајно да влезете погрешно, само како и ако 818 00:36:21,750 --> 00:36:23,254 може да го задржи дека товарот од вашиот сервер. 819 00:36:23,254 --> 00:36:25,420 Плус, особено на мобилен device-- Ако некогаш сте се 820 00:36:25,420 --> 00:36:29,190 влези во my.harvard или Netid Јеил или слично, 821 00:36:29,190 --> 00:36:32,330 има оваа латентност со многу веб-сајтови како што каде што е потребно, 822 00:36:32,330 --> 00:36:34,110 како, проклето секунда или две понекогаш. 823 00:36:34,110 --> 00:36:37,979 И тогаш, мојот Бог, ако mistype, тогаш ќе мора да го возврати ударот и го повтори. 824 00:36:37,979 --> 00:36:40,520 Значи има латентност, особено на побавно мрежни врски. 825 00:36:40,520 --> 00:36:43,030 Но, JavaScript, бидејќи Таа работи на клиентот 826 00:36:43,030 --> 00:36:46,720 и не треба да се оди напред и назад низ потенцијално бавен интернет 827 00:36:46,720 --> 00:36:49,780 конекција, може да се добијат речиси моментален фидбек. 828 00:36:49,780 --> 00:36:50,760 >> Значи, да се погледнеме во овој. 829 00:36:50,760 --> 00:36:54,280 Дозволете ми да се отвори форма-0 и се погледне на HTML тука. 830 00:36:54,280 --> 00:36:56,040 И ајде да видиме што се случува. 831 00:36:56,040 --> 00:36:59,460 Ова е еден вид чија акција е register.php. 832 00:36:59,460 --> 00:37:01,530 Јас сум само со помош се толку што можев да видам на URL-то. 833 00:37:01,530 --> 00:37:05,030 Туку и за лозинки, би сигурно сакате да го измени ова за да ја објавите во реалноста. 834 00:37:05,030 --> 00:37:06,910 Еве еден поле за внес на текст тип. 835 00:37:06,910 --> 00:37:09,050 Еве уште еден влезен поле од типот лозинка. 836 00:37:09,050 --> 00:37:13,150 Еве, ако никогаш не сум видел, внесување на видот наога. 837 00:37:13,150 --> 00:37:15,250 >> Но, нема да вклучите тука она. 838 00:37:15,250 --> 00:37:18,170 Ова е само HTML дека оди register.php. 839 00:37:18,170 --> 00:37:21,020 Но, во една верзија, каде што започна да се оние pop-up прозорци, 840 00:37:21,020 --> 00:37:23,010 Да видиме што навистина се случува овде. 841 00:37:23,010 --> 00:37:26,757 Според верзијата на еден, што Одам да see-- јас 842 00:37:26,757 --> 00:37:29,340 Мислев дека може да ја закочи доволно со доволно зборови, но јас истрча. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> Во верзија one-- таму ќе одиме. 845 00:37:38,590 --> 00:37:43,180 Во една верзија, забележуваат following-- и не е најдобар имплементација, 846 00:37:43,180 --> 00:37:44,420 но тоа е мојот прв. 847 00:37:44,420 --> 00:37:47,680 Забележи дека под форма, имам таг скрипта. 848 00:37:47,680 --> 00:37:49,430 Или ознака сценариото значи, еј, интернет пребарувач, тука 849 00:37:49,430 --> 00:37:52,340 доаѓа некој код во, Обично, на JavaScript. 850 00:37:52,340 --> 00:37:54,420 И сега, се забележи она што јас го правам. 851 00:37:54,420 --> 00:37:59,070 На line-- Одвај можам читај it-- линија 32, што се вели, 852 00:37:59,070 --> 00:38:01,420 var form-- па ми даде променлива наречена форма. 853 00:38:01,420 --> 00:38:05,049 А потоа се дојде document.getElementId на "Регистрација". 854 00:38:05,049 --> 00:38:05,590 Што е ова? 855 00:38:05,590 --> 00:38:07,290 Па, дозволете ми да ја премотам касетата до тука. 856 00:38:07,290 --> 00:38:11,510 И известување, ах, дадов форма елемент произволна, но описен идеја 857 00:38:11,510 --> 00:38:13,050 на регистрација. 858 00:38:13,050 --> 00:38:16,820 Па ова ми дава променлива која ми дозволува да го зграби што јазол, 859 00:38:16,820 --> 00:38:19,580 дека правоаголникот во дрво наречено форма. 860 00:38:19,580 --> 00:38:24,460 form.onsubmit средства, еј прелистувач, зачленете слушателот настан 861 00:38:24,460 --> 00:38:25,470 во овој формулар. 862 00:38:25,470 --> 00:38:28,890 Со други зборови, кога оваа форма е поднесено, извршување на следнава код. 863 00:38:28,890 --> 00:38:30,810 Тоа не треба име, бидејќи зошто ви е потребна да се знае името? 864 00:38:30,810 --> 00:38:32,880 Вие само треба да знаете што треба да се изврши, ergo 865 00:38:32,880 --> 00:38:35,610 тоа е анонимно или ламбда функција. 866 00:38:35,610 --> 00:38:37,632 И таа функција е сите од овие линии. 867 00:38:37,632 --> 00:38:40,840 И сега, да бидам искрен, иако не би се некогаш напишани вклучите Javascript- 868 00:38:40,840 --> 00:38:44,200 пред, тоа е само Ц и PHP логика. 869 00:38:44,200 --> 00:38:51,720 Па ако form.email.value == "" - па ако полето за e-mail не е празно, 870 00:38:51,720 --> 00:38:54,980 развикам на корисникот со "Мора обезбеди вашата e-mail адреса. " 871 00:38:54,980 --> 00:38:58,980 Друго ако form.password.value не е празно развикам на корисникот, 872 00:38:58,980 --> 00:39:00,400 "Мора да се обезбеди вашата лозинка." 873 00:39:00,400 --> 00:39:04,240 >> Повеќе интересно логично, ако form.password.value не 874 00:39:04,240 --> 00:39:08,630 еднакви form.confirmation.value-- каде дојде потврда од? 875 00:39:08,630 --> 00:39:09,470 Дозволете ми да ја премотам касетата. 876 00:39:09,470 --> 00:39:12,870 Па, се јавив овој влез поле овде лозинка. 877 00:39:12,870 --> 00:39:15,180 И се јавив овој овде потврда. 878 00:39:15,180 --> 00:39:17,850 Можев да го нарече лозинка две или било што друго. 879 00:39:17,850 --> 00:39:20,560 Јас сум само логично проверка дека овие две се исти. 880 00:39:20,560 --> 00:39:25,760 Else-- излегува ова е г-дин Бул again-- Булова вредност, наога. 881 00:39:25,760 --> 00:39:29,810 Па ако кажам фантастичен point-- ако не form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 развикам на корисникот, како и. 883 00:39:31,820 --> 00:39:34,470 >> Значи оваа синтакса ќе видите е многу честа појава во JavaScript, 884 00:39:34,470 --> 00:39:35,970 каде што имаш овој нотацијата. 885 00:39:35,970 --> 00:39:37,460 Ќе почнете со објект овде. 886 00:39:37,460 --> 00:39:41,430 Да нурне во подлабок на до имот како лозинка. 887 00:39:41,430 --> 00:39:43,280 А потоа ќе добиете на неговата вистинска вредност. 888 00:39:43,280 --> 00:39:45,830 И повторно, тука е на влез. 889 00:39:45,830 --> 00:39:47,310 Тука е лозинката за името. 890 00:39:47,310 --> 00:39:50,860 И неговата вредност е без оглед на всушност луfе ја внесе внатре. 891 00:39:50,860 --> 00:39:53,610 >> Така што во сите овие случаи, се вратив лажни. 892 00:39:53,610 --> 00:39:55,800 Но ако не, ќе се вратам вистина. 893 00:39:55,800 --> 00:39:58,030 Па сега можеме да видиме една огромна употреба на кога 894 00:39:58,030 --> 00:40:00,620 ќе return false да го спречат она што корисникот ќе го прави 895 00:40:00,620 --> 00:40:03,200 и да го направи или да ја изберете повторно или впишете повторно. 896 00:40:03,200 --> 00:40:05,870 Инаку, ние врати вистина. 897 00:40:05,870 --> 00:40:08,585 >> И дозволете ми да се воведе еден друга варијанта на оваа само 898 00:40:08,585 --> 00:40:13,140 да семе некои разбирање за тоа. 899 00:40:13,140 --> 00:40:16,850 Па, во верзијата 2 од овој, форма-2-- Јас ќе го направам со бран на раката. 900 00:40:16,850 --> 00:40:19,920 Ова е, за оние кои се љубопитни, на jQuery верзија, 901 00:40:19,920 --> 00:40:23,330 оние од вас кои би сакале да плискам во кои особено библиотека. 902 00:40:23,330 --> 00:40:25,145 Но, ајде да start-- и било какви прашања? 903 00:40:25,145 --> 00:40:29,230 Дозволете ми да пауза за момент, бидејќи тоа беше брзо и многу. 904 00:40:29,230 --> 00:40:32,610 >> Но убаво нешто овде е дека сите на кодот е прилично многу исти. 905 00:40:32,610 --> 00:40:33,985 Новиот материјал е она што е ДОМ? 906 00:40:33,985 --> 00:40:35,115 Што се овие правоаголници? 907 00:40:35,115 --> 00:40:35,990 Што се овие јазли? 908 00:40:35,990 --> 00:40:37,540 Што е анонимен функција? 909 00:40:37,540 --> 00:40:38,830 Што е настан управувачот? 910 00:40:38,830 --> 00:40:43,480 Но, за среќа, повеќето од тоа е само полн круг од, да речеме, нула недела. 911 00:40:43,480 --> 00:40:43,980 Во ред. 912 00:40:43,980 --> 00:40:46,070 Така нешто малку поинтересна? 913 00:40:46,070 --> 00:40:49,340 Па, прв од сите, да си одам напред и да се отвори во Google Maps. 914 00:40:49,340 --> 00:40:53,360 И ќе забележите дека за момент, на дел од секундата, 915 00:40:53,360 --> 00:40:55,930 забележи она што се случува кога Кликнувам доволно брзо. 916 00:40:55,930 --> 00:40:59,720 И врска со ова на Харвард е толку брзо што навистина не го забележите. 917 00:40:59,720 --> 00:41:04,469 Но, она што вид на вид на видите ако јас кликнете и влечете навистина брзо? 918 00:41:04,469 --> 00:41:07,010 Оние од вас гледа на интернет, ако забави оваа брзина 0.5x, 919 00:41:07,010 --> 00:41:09,640 можете да го видите ова подобро. 920 00:41:09,640 --> 00:41:13,550 >> Она што се случуваше само пред да се кликне и влечени? 921 00:41:13,550 --> 00:41:15,900 Дозволете ми да се обиде here-- дозволете ми да се направи нешто друго, како 90210. 922 00:41:15,900 --> 00:41:17,550 Ајде да одиме далеку. 923 00:41:17,550 --> 00:41:19,000 Тоа беше навистина брзо, премногу. 924 00:41:19,000 --> 00:41:22,460 Како за Дизни Ворлд? 925 00:41:22,460 --> 00:41:23,190 Таму ќе одиме. 926 00:41:23,190 --> 00:41:23,690 ВО РЕД. 927 00:41:23,690 --> 00:41:26,030 Што виде за дел од секундата? 928 00:41:26,030 --> 00:41:27,200 Само, како, плоштади, нели? 929 00:41:27,200 --> 00:41:28,930 Резервирани места за плочки? 930 00:41:28,930 --> 00:41:30,270 >> Па, она што се случува овде? 931 00:41:30,270 --> 00:41:35,410 Google Мапи е убав пример на оваа технологија, која се вика AJAX. 932 00:41:35,410 --> 00:41:38,510 И ова е местото каде што ќе почнете да користете го вклучите Javascript-во особено 933 00:41:38,510 --> 00:41:39,277 примамливи начин. 934 00:41:39,277 --> 00:41:41,610 Во тоа време, имаше овој веб-сајт се нарекува MapQuest. 935 00:41:41,610 --> 00:41:44,120 И јас треба да се преземат скриншот на оваа од 1990 година, 936 00:41:44,120 --> 00:41:45,820 каде што ако си сакал да изгледа до тука на мапата, 937 00:41:45,820 --> 00:41:48,590 вие буквално ќе кликнете на стрелката на врвот што ја покажавте 938 00:41:48,590 --> 00:41:49,870 различен квадратни на мапата. 939 00:41:49,870 --> 00:41:51,790 Ако сакаше да се помрднам лево, можете кликнато стрела што ја покажавте 940 00:41:51,790 --> 00:41:53,210 различен квадратни на мапата. 941 00:41:53,210 --> 00:41:54,840 И некои веб-сајтови сеуште го направите ова денес. 942 00:41:54,840 --> 00:41:57,820 Но, дури и MapQuest има добивано подобро, како Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> Наместо тоа, она што е подобро овие дена е AJAX веб-сајтови кои ги користат. 944 00:42:01,880 --> 00:42:04,510 AJAX-- инаку позната како Асинхрони вклучите Javascript-и XML, 945 00:42:04,510 --> 00:42:08,370 која е само фенси начин да се каже технологија или техника која 946 00:42:08,370 --> 00:42:14,200 им овозможува на пребарувачот користејќи JavaScript да вложи дополнителни HTTP барања 947 00:42:14,200 --> 00:42:16,390 по страница е вчитан. 948 00:42:16,390 --> 00:42:17,479 Па што значи тоа? 949 00:42:17,479 --> 00:42:19,270 Па, тоа ќе биде вид на досадни во Gmail 950 00:42:19,270 --> 00:42:21,103 ако секој пат кога ќе сакаше за да се провери вашата пошта, 951 00:42:21,103 --> 00:42:24,940 вие буквално погоди контрола-R или Команда-R или кликнете на копчето Освежи 952 00:42:24,940 --> 00:42:26,580 и целата страница ебам ќе ја превчитате. 953 00:42:26,580 --> 00:42:26,800 Нели? 954 00:42:26,800 --> 00:42:28,460 Тоа ќе белата боја на блицот веројатно за секунда. 955 00:42:28,460 --> 00:42:30,043 Ќе ја видиш глупаво напредокот бар. 956 00:42:30,043 --> 00:42:33,170 И само за да се види дали ќе има нови пошта, на целата веб-страница и URL-то 957 00:42:33,170 --> 00:42:34,580 ти си во ќе мора да ја превчитате. 958 00:42:34,580 --> 00:42:35,960 >> Но тоа не е она што се случува во Gmail. 959 00:42:35,960 --> 00:42:36,459 Нели? 960 00:42:36,459 --> 00:42:40,300 Кога ќе добие нов е-мејл во Gmail, она што се случува на екранот? 961 00:42:40,300 --> 00:42:41,480 Тоа само покажува нагоре, нели? 962 00:42:41,480 --> 00:42:44,280 Тоа само магично се појави како нов ред во табелата. 963 00:42:44,280 --> 00:42:47,030 Кои, всушност, подразбира пристоен износ на сложеност. 964 00:42:47,030 --> 00:42:51,892 Всушност, ако мислите дека за ова дрво, кој иако е едноставна тука, 965 00:42:51,892 --> 00:42:54,100 Gmail-- и јас ќе треба да се погледне во кодот да биде sure-- 966 00:42:54,100 --> 00:42:58,710 веројатно има HTML табела или можеби неподреден список, кој тоа го прави 967 00:42:58,710 --> 00:43:01,060 секоја од вашите пораки како поштенските кутии. 968 00:43:01,060 --> 00:43:04,050 >> И така, ако се замисли ова постојат е дрво во меморијата кога сте 969 00:43:04,050 --> 00:43:09,050 користите Gmail дека изгледа вид на вид на како овој, кога Google ќе сфати, ooh, 970 00:43:09,050 --> 00:43:12,770 имате нов е-мејл, тоа не се случи сакате да ги обноват целото дрво. 971 00:43:12,770 --> 00:43:16,430 Наместо тоа, таа сака да се најде на јазол во дрвото што го претставува вашиот inbox 972 00:43:16,430 --> 00:43:18,580 и само да се вметне нов јазол. 973 00:43:18,580 --> 00:43:24,640 >> Толку многу слична pset пет, каде што мораше да вметнете јазли во хаш табелата, 974 00:43:24,640 --> 00:43:28,410 Слично на тоа што Google, преку JavaScript код кој го има напишано, 975 00:43:28,410 --> 00:43:31,890 напречни ова дрво, дознаам каде е дека сандаче дел од прозорецот, 976 00:43:31,890 --> 00:43:33,440 и потоа вметнете нов ред. 977 00:43:33,440 --> 00:43:37,460 И нов ред само значи еден или повеќе нови јазли во дрво. 978 00:43:37,460 --> 00:43:41,340 >> И така AJAX е оваа техника кој овозможува токму тоа. 979 00:43:41,340 --> 00:43:44,440 Откако сте ја посетиле URL-то, сепак луд долго е, 980 00:43:44,440 --> 00:43:46,472 и еднаш на страница има натоварен, сеуште можете да 981 00:43:46,472 --> 00:43:48,430 зграби повеќе податоци од internet-- без разлика дали е 982 00:43:48,430 --> 00:43:52,460 е-маил или плочка на map-- го грабне зад сцената 983 00:43:52,460 --> 00:43:55,290 и потоа вметнете ја во страницата со цел човекот навистина не 984 00:43:55,290 --> 00:43:56,910 мора да чекаат за тоа. 985 00:43:56,910 --> 00:43:58,980 >> Фејсбук Messenger работи на истиот начин. 986 00:43:58,980 --> 00:44:01,562 Било кој број на други websites-- ох, всушност, дури и оваа. 987 00:44:01,562 --> 00:44:04,270 Мислам, ова е, искрено, вид на досадни функција, овие денови. 988 00:44:04,270 --> 00:44:07,500 Ако јас почнат да бараат за cats-- ова е вид на страшно корисничко искуство. 989 00:44:07,500 --> 00:44:08,990 Тоа едноставно се започнува со пребарување за мене. 990 00:44:08,990 --> 00:44:10,050 Па она што го прави тоа? 991 00:44:10,050 --> 00:44:12,920 URL-то навистина не се промени откако почнав да пишувате. 992 00:44:12,920 --> 00:44:17,330 Но, она што се случува во целиот wire-- Добро, хм интересно. 993 00:44:17,330 --> 00:44:20,470 Што се случува во целиот жица тука само добива почуден. 994 00:44:20,470 --> 00:44:21,090 >> ВО РЕД. 995 00:44:21,090 --> 00:44:24,670 Па дозволете ми да оди напред и да ја испита елемент и да одат на јазичето мрежа 996 00:44:24,670 --> 00:44:27,040 и да се обидат да се направи ова технички и помалку за мачки. 997 00:44:27,040 --> 00:44:32,595 Како што типот, буквално, мачки and-- она ​​што се случува 998 00:44:32,595 --> 00:44:37,710 per-- Јас не одам за да кликнете на тоа. 999 00:44:37,710 --> 00:44:38,210 Во ред. 1000 00:44:38,210 --> 00:44:44,280 Па долу тука, она што се случува на секои време сум тип на карактер, очигледно? 1001 00:44:44,280 --> 00:44:45,000 Како, ниско ниво? 1002 00:44:45,000 --> 00:44:47,860 Што се случува во секоја од овие карактери јас сум пишување на мојата тастатура? 1003 00:44:47,860 --> 00:44:48,359 Да? 1004 00:44:48,359 --> 00:44:50,950 ПУБЛИКАТА: [Беззвучен]. 1005 00:44:50,950 --> 00:44:52,340 >> Дејвид MALAN: Токму така. 1006 00:44:52,340 --> 00:44:55,600 Секоја од овие ликови е одење на Google, едно по едно време. 1007 00:44:55,600 --> 00:44:58,490 Тие се натрупуваат низа на нивните сервери, што претставува 1008 00:44:58,490 --> 00:44:59,936 сето она што го внеле во досега. 1009 00:44:59,936 --> 00:45:01,810 И секој пат кога ќе напишеш друг карактер, тие 1010 00:45:01,810 --> 00:45:04,530 користат своите тајната сос на пребарување алгоритам и да дознаам, 1011 00:45:04,530 --> 00:45:07,370 значи тоа оваа мачка страница или оваа мачка страница или слично? 1012 00:45:07,370 --> 00:45:10,620 Па во извесна смисла, тоа ми дава со подобро искуство со тоа, јас дури и не 1013 00:45:10,620 --> 00:45:11,860 треба да се заврши мојата мисла. 1014 00:45:11,860 --> 00:45:14,440 И навистина, тоа е корисна работа, AutoComplete воопшто. 1015 00:45:14,440 --> 00:45:17,690 Ако нивните алгоритми се доволно добри и ако моите пребарувања се доволно очигледно, 1016 00:45:17,690 --> 00:45:19,300 Јас не мора да напишеш целиот збор. 1017 00:45:19,300 --> 00:45:22,110 Тие се случува да ми кажеш што е е јас сум всушност барате. 1018 00:45:22,110 --> 00:45:25,940 Значи она што Google го нарекува инстант Пребарувањето е само со користење на AJAX, 1019 00:45:25,940 --> 00:45:30,820 користење на кодот кој им дозволува да побараат дополнителни содржини преку веб прелистувачот 1020 00:45:30,820 --> 00:45:34,026 зад сцената со користење на овој странски јазик, го вклучите Javascript-. 1021 00:45:34,026 --> 00:45:35,400 Па ние имаме остави неколку минути. 1022 00:45:35,400 --> 00:45:37,710 И дозволете ми да се јавам до мојот другар Колтон ја преминало на сцената, 1023 00:45:37,710 --> 00:45:40,090 бидејќи тоа се чинеше особено забавно последен пат 1024 00:45:40,090 --> 00:45:42,290 да се воведе технологија дека некои од вас 1025 00:45:42,290 --> 00:45:44,769 изразија интерес во за конечниот проекти. 1026 00:45:44,769 --> 00:45:47,310 Ние мислевме дека ќе биде забавно да се донесе Регистрација волонтер, иако, и денес 1027 00:45:47,310 --> 00:45:50,074 да ви покажам еден прилог тоа што им овозможува на you-- је, 1028 00:45:50,074 --> 00:45:50,990 Првпат го видов овој рака. 1029 00:45:50,990 --> 00:45:52,900 Качи. 1030 00:45:52,900 --> 00:45:53,560 Многу добро направено. 1031 00:45:53,560 --> 00:45:55,035 Добра работа. 1032 00:45:55,035 --> 00:45:57,410 Одам да се проектираат на овој на екранот во само еден миг. 1033 00:45:57,410 --> 00:45:58,150 Што е вашето име за сите? 1034 00:45:58,150 --> 00:45:59,180 >> ЕФА: Јас сум ЕФА. 1035 00:45:59,180 --> 00:45:59,410 >> Дејвид MALAN: Etha? 1036 00:45:59,410 --> 00:45:59,785 >> ЕФА: ЕФА. 1037 00:45:59,785 --> 00:46:00,160 >> Дејвид MALAN: ЕФА? 1038 00:46:00,160 --> 00:46:00,730 >> ЕФА: Да. 1039 00:46:00,730 --> 00:46:01,250 >> Дејвид MALAN: Убаво да ви се види. 1040 00:46:01,250 --> 00:46:01,600 Во ред. 1041 00:46:01,600 --> 00:46:02,590 Дозволете ми да се добие оваа подготвена. 1042 00:46:02,590 --> 00:46:04,423 Дојди до средината со Колтон тука. 1043 00:46:04,423 --> 00:46:07,050 Што Колтон има во своите раце денес е далечинскиот управувач. 1044 00:46:07,050 --> 00:46:10,440 Така, наместо само стојат таму во тридимензионален свет бараат околу 1045 00:46:10,440 --> 00:46:14,080 како Колтон не, сега можеш ЕФА всушност, се шетаат со одење нагоре, 1046 00:46:14,080 --> 00:46:16,689 долу, лево и десно како Нинтендо или Xbox контролер. 1047 00:46:16,689 --> 00:46:18,230 ЕФА: Одам да се падне на сцената. 1048 00:46:18,230 --> 00:46:20,500 Дејвид MALAN: Јас ќе стојат околу овде. 1049 00:46:20,500 --> 00:46:21,991 Но, тоа е ризик. 1050 00:46:21,991 --> 00:46:22,490 ВО РЕД. 1051 00:46:22,490 --> 00:46:25,690 Така одат напред и да се стави оние на. 1052 00:46:25,690 --> 00:46:29,315 Дозволете ми да оди напред и да префрлат на екранот овде. 1053 00:46:29,315 --> 00:46:30,670 Дозволете ми да придуши го светла. 1054 00:46:30,670 --> 00:46:32,780 И Колтон, дозволете ми доаѓаат стојат до тебе. 1055 00:46:32,780 --> 00:46:35,520 >> Дали сакате да се објасни тука со микрофон она што го правиме? 1056 00:46:35,520 --> 00:46:36,380 Еве ти. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Секако. 1058 00:46:37,280 --> 00:46:39,980 Па сега сме вчитување на Oculus, 1059 00:46:39,980 --> 00:46:43,070 Претпоставувам operating-- не работат систем, но во главната програма, каде што 1060 00:46:43,070 --> 00:46:46,630 можете да пристапите сите игри и апликации кои се во вашата библиотека. 1061 00:46:46,630 --> 00:46:50,060 Па токму сега, тоа треба да се каже допрете го екранот со допир да се почне. 1062 00:46:50,060 --> 00:46:53,430 Touchpad се случува да биде на десната страна на слушалката. 1063 00:46:53,430 --> 00:46:54,569 Така одат напред и tap-- 1064 00:46:54,569 --> 00:46:55,110 ЕФА: О, човеку. 1065 00:46:55,110 --> 00:46:56,443 Дејвид MALAN: Да, таму да одите. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Квалитетот ЕФА е гледањето е многу повисок квалитет. 1068 00:47:02,460 --> 00:47:03,831 Ова е само за Wi-Fi тука. 1069 00:47:03,831 --> 00:47:05,580 COLTON: Па што си ќе сакате да го направите 1070 00:47:05,580 --> 00:47:08,350 се погледне кон врвот десната страна на екранот. 1071 00:47:08,350 --> 00:47:10,420 Да, тоа игра на самиот врв во право. 1072 00:47:10,420 --> 00:47:14,780 А потоа кога сте изборот тоа, допрете го екранот со допир повторно. 1073 00:47:14,780 --> 00:47:17,010 Мислам дека неговата Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 А потоа тука е a-- тука, ајде ме држи вашите очила за вас. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Па јас само му даде контролер. 1077 00:47:25,790 --> 00:47:28,886 Па сега може да го контролира играта. 1078 00:47:28,886 --> 00:47:30,510 Тој може да се движи наоколу и да работи како што. 1079 00:47:30,510 --> 00:47:31,968 Така одат напред и се погледне до врвот. 1080 00:47:31,968 --> 00:47:33,640 Треба да го видите Нова игра. 1081 00:47:33,640 --> 00:47:36,310 Така одат напред и можете да го направите тоа. 1082 00:47:36,310 --> 00:47:39,320 Сега, вие треба да бидат способни да ги контролираат себе си со контролорот, 1083 00:47:39,320 --> 00:47:43,860 како и, штом играта вчитува до тука. 1084 00:47:43,860 --> 00:47:46,356 Ова може да биде малку страшно. 1085 00:47:46,356 --> 00:47:47,300 >> ЕФА: Сега можете да ми кажете. 1086 00:47:47,300 --> 00:47:50,132 ВО РЕД. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: Во ред. 1088 00:47:51,080 --> 00:47:52,650 Така потврди дека можете да се движите наоколу. 1089 00:47:52,650 --> 00:47:52,750 ВО РЕД. 1090 00:47:52,750 --> 00:47:53,583 Можете да се движите наоколу. 1091 00:47:53,583 --> 00:47:54,300 Совршен. 1092 00:47:54,300 --> 00:47:56,470 Значи, ако се погледне надолу треба мапа. 1093 00:47:56,470 --> 00:47:58,170 Мапа ви покажува каде се наоѓате. 1094 00:47:58,170 --> 00:47:59,720 Може да се погледне низ собата. 1095 00:47:59,720 --> 00:48:01,440 Не може целосно да се сврти. 1096 00:48:01,440 --> 00:48:02,128 Да, точно. 1097 00:48:02,128 --> 00:48:02,627 Сврти се. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Па погледнете на вашиот лево. 1100 00:48:07,125 --> 00:48:09,875 Мислам дека постои нешто што може да ги собереш на барел во собата. 1101 00:48:09,875 --> 00:48:11,709 >> ЕФА: Како да ја добиете планирам на кој начин? 1102 00:48:11,709 --> 00:48:12,375 COLTON: погледот. 1103 00:48:12,375 --> 00:48:12,980 Само да се погледне нагоре. 1104 00:48:12,980 --> 00:48:13,480 Во ред. 1105 00:48:13,480 --> 00:48:13,765 Ете ти. 1106 00:48:13,765 --> 00:48:15,181 Сега одиме напред и само да се сврти. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Па гледам подалеку на вашиот лево. 1109 00:48:24,620 --> 00:48:25,530 Да се ​​движат лево. 1110 00:48:25,530 --> 00:48:26,960 Задржи во потрага лево. 1111 00:48:26,960 --> 00:48:27,541 Продолжи да одиш. 1112 00:48:27,541 --> 00:48:28,040 Је. 1113 00:48:28,040 --> 00:48:28,720 >> ЕФА: Ах, на тој начин. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Да. 1115 00:48:29,261 --> 00:48:30,999 Одат кон тоа со контролерот. 1116 00:48:30,999 --> 00:48:31,540 Ете ти. 1117 00:48:31,540 --> 00:48:32,790 Сега тоа треба да се каже да го собереш. 1118 00:48:32,790 --> 00:48:33,360 Ете ти. 1119 00:48:33,360 --> 00:48:34,290 Подигни го. 1120 00:48:34,290 --> 00:48:35,550 Во ред. 1121 00:48:35,550 --> 00:48:38,286 Сега, ајде да се излезе од оваа соба. 1122 00:48:38,286 --> 00:48:42,209 Оди напред и да одиме до таа врата. 1123 00:48:42,209 --> 00:48:45,000 Па ви се случува да го кажува hold-- држете го копчето за да го принудат отворен. 1124 00:48:45,000 --> 00:48:46,333 Така одат напред и држете го копчето. 1125 00:48:46,333 --> 00:48:48,250 Да, принудувајќи го отворите. 1126 00:48:48,250 --> 00:48:48,750 Во ред. 1127 00:48:48,750 --> 00:48:49,410 Добра работа. 1128 00:48:49,410 --> 00:48:50,826 Сега ние сме одење надвор од собата. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Па јас ќе одам да го напушти останато за вас и да видиме што ќе се дознае. 1131 00:49:01,366 --> 00:49:02,865 ЕФА: Јас не одам во темна соба. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 Ох почекај. 1134 00:49:07,815 --> 00:49:09,314 Сега морам да одат надолу по темни сала? 1135 00:49:09,314 --> 00:49:10,785 Добро, јас сум да се вратам [Беззвучен]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: Во ред. 1138 00:49:16,270 --> 00:49:17,560 Некои повеќе предмети да ги собереш. 1139 00:49:17,560 --> 00:49:19,370 Изгледа како некои монети. 1140 00:49:19,370 --> 00:49:22,242 Тоа е рецептот за заклучување. 1141 00:49:22,242 --> 00:49:24,200 Па ако најдете заклучена врата, можете да го користите. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Дали сте исплашени? 1144 00:49:28,380 --> 00:49:29,371 >> ЕФА: Сè уште не. 1145 00:49:29,371 --> 00:49:29,871 COLTON: Во ред. 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend-- је. 1148 00:49:35,497 --> 00:49:37,330 Само се преправаме дека сте всушност стои таму. 1149 00:49:37,330 --> 00:49:39,580 И ако го around-- имаш за да се навикнеш на него. 1150 00:49:39,580 --> 00:49:40,752 Но, тоа го прави смисла. 1151 00:49:40,752 --> 00:49:43,960 Дејвид MALAN: И додека ЕФА продолжува да игра, бидејќи ние би можеле да го направите тоа на целиот ден, 1152 00:49:43,960 --> 00:49:45,381 можеме да сите врвот пети од тука. 1153 00:49:45,381 --> 00:49:48,130 Но ние имаме две други парови, ако сакате да се излезе и да игра. 1154 00:49:48,130 --> 00:49:49,980 Во спротивно, ќе видиме ви следната среда. 1155 00:49:49,980 --> 00:49:51,354 Ви благодариме на нашите волонтери денес. 1156 00:49:51,354 --> 00:49:52,101 [Аплауз] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [Музика - "Seinfeld тема"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 ЗВУЧНИЦИ 1: Па, јас сум поставување на нова PL монтира. 1161 00:50:00,180 --> 00:50:01,800 Јас само го смени OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> ЗВУЧНИЦИ 2: Па што точно правиш? 1163 00:50:03,980 --> 00:50:07,063 >> ЗВУЧНИЦИ 1: Па, секој од these-- тука, јас ќе ви покажам еден тука. 1164 00:50:07,063 --> 00:50:08,690 Можеш да го видиш во право тука. 1165 00:50:08,690 --> 00:50:09,510 >> ЗВУЧНИЦИ 3: Мислам дека сум добар со овие. 1166 00:50:09,510 --> 00:50:09,933 Сакате нешто повеќе? 1167 00:50:09,933 --> 00:50:11,325 >> ЗВУЧНИЦИ 4: Не, јас сум добро. [Беззвучен]. 1168 00:50:11,325 --> 00:50:12,200 >> ЗВУЧНИЦИ 3: Не, [Беззвучен]. 1169 00:50:12,200 --> 00:50:12,700 Има некои. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 ЗВУЧНИЦИ 1: Различна боја. 1172 00:50:22,290 --> 00:50:22,890 ЗВУЧНИЦИ 2: Во ред. 1173 00:50:22,890 --> 00:50:26,690 ЗВУЧНИЦИ 1: Значи, на крајот она што не е тоа прилагодување на бојата of--