1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> Дејвид MALAN: Во ред. 3 00:00:12,360 --> 00:00:15,970 Ова е CS50, а тоа е на крајот на недела девет. 4 00:00:15,970 --> 00:00:18,560 Тоа е виорот над Во изминатите неколку дена. 5 00:00:18,560 --> 00:00:21,580 И проблемот постави седум, ако сте коленото длабоко во неа, да сфатат дека е сосема 6 00:00:21,580 --> 00:00:23,340 малку ново што е таму. 7 00:00:23,340 --> 00:00:26,660 Но, да видиме, ако не можеме состави сето заедно тука накратко 8 00:00:26,660 --> 00:00:29,230 пред потоа veering исклучување во уште друга насока и гледање 9 00:00:29,230 --> 00:00:30,510 каде на друго место може да се оди. 10 00:00:30,510 --> 00:00:32,630 >> Па досега, ние разговаравме за HTML. 11 00:00:32,630 --> 00:00:33,740 Ние разговаравме за CSS. 12 00:00:33,740 --> 00:00:34,705 Ние разговаравме за PHP. 13 00:00:34,705 --> 00:00:36,520 Сте почнале да се доживее SQL. 14 00:00:36,520 --> 00:00:38,360 Денес, ние ќе зборуваме малку За JavaScript. 15 00:00:38,360 --> 00:00:41,230 Но како да сите овие различни јазици се вклопуваат заедно? 16 00:00:41,230 --> 00:00:44,970 >> Па ние разговаравме минатата недела во врска со Идејата да се има сервер. 17 00:00:44,970 --> 00:00:48,470 Па да се подготви овој правоаголник како веб сервер тука. 18 00:00:48,470 --> 00:00:52,200 И веб сервер служи сигурно датотеки. 19 00:00:52,200 --> 00:00:54,640 А некои од овие датотеки можат да бидат HTML датотеки. 20 00:00:54,640 --> 00:00:58,270 Значи една од работите што веб сервер може да плукаат може да биде датотека која 21 00:00:58,270 --> 00:01:01,290 ние само ќе подготви вака кои содржат некои HTML. 22 00:01:01,290 --> 00:01:04,786 Значи во однос на Едноставен, што се HTML да го направите? 23 00:01:04,786 --> 00:01:06,036 >> Публика: Страна изгледа убаво. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> Дејвид MALAN: Добро, направи страница изгледа убаво, иако мислам дека сум докажан 26 00:01:12,310 --> 00:01:13,370 на друг начин. 27 00:01:13,370 --> 00:01:18,250 Па HTML не ви нокаутирам страници структурно, и тоа ви овозможува да 28 00:01:18,250 --> 00:01:22,410 вид на естетски одбележи до страната, означувајте статична содржина, така што ќе 29 00:01:22,410 --> 00:01:23,640 тогаш може да ја видите со веб пребарувач. 30 00:01:23,640 --> 00:01:24,690 >> Но тоа е клучот. 31 00:01:24,690 --> 00:01:26,130 Тоа е статична содржина. 32 00:01:26,130 --> 00:01:28,590 Ти ја пишуваш, го зачувате, а потоа ќе го бродот. 33 00:01:28,590 --> 00:01:31,130 И на веб сервер, тогаш служи го до вашите посетители. 34 00:01:31,130 --> 00:01:35,700 >> Но, ние стилизирам работи со користење на различни јазик заедно. 35 00:01:35,700 --> 00:01:40,150 Почнавме да се користи стил атрибут на некои од таговите. 36 00:01:40,150 --> 00:01:43,400 И стил атрибут нека постави работи како големина на фонт и боја. 37 00:01:43,400 --> 00:01:46,460 И веројатно сте почнале да се откријат, или наскоро ќе за конечниот 38 00:01:46,460 --> 00:01:50,160 проекти потенцијално, а сепак другите својства кои можете да го користите во CSS. 39 00:01:50,160 --> 00:01:54,710 И така во однос на Едноставен, што навистина, тогаш се CSS направам? 40 00:01:54,710 --> 00:01:57,810 Тие се само примери од него. 41 00:01:57,810 --> 00:02:00,730 Што значи тоа да го направи тоа на HTML не чини да се од она што 42 00:02:00,730 --> 00:02:02,606 видовме досега? 43 00:02:02,606 --> 00:02:04,850 >> Публика: Дефинирање стилови со себе. 44 00:02:04,850 --> 00:02:06,700 >> Дејвид MALAN: Дефинирање стилови од себе. 45 00:02:06,700 --> 00:02:10,280 Значи се дефинираат работите како класи, како што Можеби сте наишле, или уникатно 46 00:02:10,280 --> 00:02:13,800 идентификуваат јазли во еден документ, па дека можете да ги стилизирам. 47 00:02:13,800 --> 00:02:16,890 Но поконкретно, јас би рекол дека CSS навистина ви овозможува да работите на 48 00:02:16,890 --> 00:02:20,790 последната милја и ви овозможува да одредите колку поточно естетика, 49 00:02:20,790 --> 00:02:24,340 додека HTML во најголем дел им овозможува на можете да структура вашите страници. 50 00:02:24,340 --> 00:02:27,310 >> И иако постојат некои стандардно, како што видовме таг за 51 00:02:27,310 --> 00:02:30,690 тарифен број таг, кој грубо зборувајќи направени нешта големи и задебелени букви. 52 00:02:30,690 --> 00:02:34,250 Тоа е прилично генерички дефиниција на етикетата - големи и задебелени букви. 53 00:02:34,250 --> 00:02:35,260 Што големина на фонт е тоа? 54 00:02:35,260 --> 00:02:36,080 Која боја е тоа? 55 00:02:36,080 --> 00:02:36,890 Како храбар е тоа? 56 00:02:36,890 --> 00:02:39,830 И CSS ви овозможува повеќе ситно мелодија работи како што. 57 00:02:39,830 --> 00:02:42,150 Како и распоред, како што некои од вас имаат видено. 58 00:02:42,150 --> 00:02:45,180 >> И искрено, CSS е малку на неуредна јазик. 59 00:02:45,180 --> 00:02:48,370 Тоа е многу моќен во кои можете да направите буквално секој веб-сајт што сте 60 00:02:48,370 --> 00:02:51,880 види на интернет денес со неа, но тоа е вид на болка во вратот. 61 00:02:51,880 --> 00:02:54,440 И некои од вас имаат тресок вашата глава против ѕидовите веќе само да се направи 62 00:02:54,440 --> 00:02:58,560 нешто глупаво како центар мени на Проблемот постави седум ако сте дојден до 63 00:02:58,560 --> 00:02:59,470 тој момент веќе. 64 00:02:59,470 --> 00:03:01,530 >> Но сфати, тие работи се полесно со текот на времето. 65 00:03:01,530 --> 00:03:02,820 Ќе почнете да забележи дезени. 66 00:03:02,820 --> 00:03:06,020 И повторно, Google ќе ти биде пријател за различните начини на кои можете да 67 00:03:06,020 --> 00:03:07,220 реши овие видови на проблеми. 68 00:03:07,220 --> 00:03:11,520 >> И јас се осмелувам да кажам со CSS и HTML повеќе Општо земено, може да ги реши проблемите во 69 00:03:11,520 --> 00:03:15,910 многу повеќе начини, од кои сите може многу и да бидат точни, отколку што би можеле 70 00:03:15,910 --> 00:03:18,900 во нешто како C, дури и сега PHP или го вклучите Javascript-. 71 00:03:18,900 --> 00:03:21,080 Постојат само многу различни начини да се постават работите надвор. 72 00:03:21,080 --> 00:03:22,570 >> Но, ова почна да се неуредна, рековме. 73 00:03:22,570 --> 00:03:26,480 Само вид на commingling вашата HTML и вашиот CSS со стил атрибут беше 74 00:03:26,480 --> 00:03:27,590 малку невешт. 75 00:03:27,590 --> 00:03:31,460 И така ние наместо рече, вид на апстрактно гледано, дека треба да 76 00:03:31,460 --> 00:03:34,050 барем да почне да се фактор од вашиот CSS веројатно. 77 00:03:34,050 --> 00:03:37,430 Не твојот стил атрибути, но барем користете стил таг внатре она што 78 00:03:37,430 --> 00:03:38,840 дел од веб страница? 79 00:03:38,840 --> 00:03:39,560 >> Публика: Раководител. 80 00:03:39,560 --> 00:03:40,120 >> Дејвид MALAN: Во глава. 81 00:03:40,120 --> 00:03:43,270 До сега, имавме само насловот до таму, но вие исто така може да додадете стил 82 00:03:43,270 --> 00:03:47,230 ознака, и може да се стави вашиот CSS приближно говорејќи кон врвот на оваа страница. 83 00:03:47,230 --> 00:03:52,550 Но, тогаш ние ги зедоа работите еден чекор понатаму и ние констатирано дека од повеќе 84 00:03:52,550 --> 00:03:54,130 во посебен фајл. 85 00:03:54,130 --> 00:03:57,240 >> И така овие две датотеки се некако сега поврзани. 86 00:03:57,240 --> 00:03:59,550 И навистина тоа беше ознака што го сторија тоа. 87 00:03:59,550 --> 00:04:02,920 И она што беше една од Општата мотивации за факторинг нашата CSS 88 00:04:02,920 --> 00:04:04,057 сè повеќе и повеќе? 89 00:04:04,057 --> 00:04:05,280 >> Публика: reusability. 90 00:04:05,280 --> 00:04:05,785 >> Дејвид MALAN: reusability. 91 00:04:05,785 --> 00:04:06,150 Нели? 92 00:04:06,150 --> 00:04:09,470 Може да сте виделе во p-сет седум веќе дека многу од страниците, 93 00:04:09,470 --> 00:04:12,260 купување страница, продажба страница, портфолио страница, веројатно 94 00:04:12,260 --> 00:04:13,550 структурирани нешто слично. 95 00:04:13,550 --> 00:04:17,579 Има CS50 финансии логото на врвот освен ако не сте одлучиле да го промени. 96 00:04:17,579 --> 00:04:19,839 Има подножјето на крајот на страната. 97 00:04:19,839 --> 00:04:24,315 И CSS ви овозможува потоа да го фактор од го во посебен фајл, така што ако 98 00:04:24,315 --> 00:04:27,780 сакате да го смените нешто на глобално ниво низ целиот сајт, можете да навистина 99 00:04:27,780 --> 00:04:29,390 само да го промените на едно место. 100 00:04:29,390 --> 00:04:32,750 >> Но, постои цената што ја плаќате потенцијално со тоа што констатирано надвор од 101 00:04:32,750 --> 00:04:38,380 CSS од мојот HTML датотека во посебен поднесе референцирање го со 102 00:04:38,380 --> 00:04:40,650 ознака, која ја видовме во понеделникот. 103 00:04:40,650 --> 00:04:43,850 Што недостатоци може да биде од ова? 104 00:04:43,850 --> 00:04:48,830 Размислување назад пред една недела, кога ние сме зборуваме за HTTP и TCP / IP и како 105 00:04:48,830 --> 00:04:52,070 на интернет работи. 106 00:04:52,070 --> 00:04:53,530 Нешто овде? 107 00:04:53,530 --> 00:04:54,730 >> ПУБЛИКАТА: Потребно е повеќе време. 108 00:04:54,730 --> 00:04:55,470 >> Дејвид MALAN: Потребно е повеќе време. 109 00:04:55,470 --> 00:04:56,750 Зошто? 110 00:04:56,750 --> 00:04:59,450 >> ПУБЛИКАТА: [нечујни]. 111 00:04:59,450 --> 00:04:59,750 >> Дејвид MALAN: Да. 112 00:04:59,750 --> 00:05:01,240 Па тоа веројатно потребно е малку повеќе време. 113 00:05:01,240 --> 00:05:04,290 Бидејќи еден, CSS е очигледно не во истата датотека. 114 00:05:04,290 --> 00:05:06,920 Па сега ќе мора да не се направи една, туку две барања. 115 00:05:06,920 --> 00:05:11,230 И секоја од овие барања како што видовме во Хром во т.н. инспектор, 116 00:05:11,230 --> 00:05:15,740 и ние погледна на мрежата јазичето, секој на овие датотеки бара еден HTTP 117 00:05:15,740 --> 00:05:18,360 барање, која ја видовме зема некои износот на време. 118 00:05:18,360 --> 00:05:19,290 Сега, можеби тоа не е многу. 119 00:05:19,290 --> 00:05:20,670 Можеби тоа е само 20 милисекунди. 120 00:05:20,670 --> 00:05:22,260 Можеби тоа е 200 милисекунди. 121 00:05:22,260 --> 00:05:25,530 >> Но, мислам за една страница како Facebook, или Ен-Ен или Google, кои се многу 122 00:05:25,530 --> 00:05:28,060 поголема од примерите ние сме погледна досега. 123 00:05:28,060 --> 00:05:32,070 Овие страници може да имаат десетици датотеки, од кои секоја може да бара 124 00:05:32,070 --> 00:05:33,550 симнување на датотека. 125 00:05:33,550 --> 00:05:35,800 Па работите може потенцијално почне да се забави. 126 00:05:35,800 --> 00:05:39,280 >> А особено овие денови кога сите ние имаат мобилни телефони во нашите џебови и 127 00:05:39,280 --> 00:05:43,010 поспори интернет конекции, да се почека уште неколку милисекунди, неколку 128 00:05:43,010 --> 00:05:46,110 повеќе милисекунди за дополнителни додадени фајлови: всушност може да биде бавен. 129 00:05:46,110 --> 00:05:50,430 Латентност е зборот што го опишува вид на чекање дека имате што ќе 130 00:05:50,430 --> 00:05:53,110 искуство кога чекајќи некои парче на информации. 131 00:05:53,110 --> 00:05:54,430 >> Но, постои наопаку. 132 00:05:54,430 --> 00:05:56,600 Па тоа не е сите вид на - 133 00:05:56,600 --> 00:05:58,170 што всушност е малку неодржлива тука. 134 00:05:58,170 --> 00:06:02,970 Недостатоци сега, но она што прелистувачи може да го направи ако тие се паметни, со цел да се избегне 135 00:06:02,970 --> 00:06:08,870 морале да побарате истите styles.css датотеката повторно може да биде да го направи она? 136 00:06:08,870 --> 00:06:09,390 >> Кешот неа. 137 00:06:09,390 --> 00:06:10,370 Па кеширање - 138 00:06:10,370 --> 00:06:11,690 Ц-А-Ц-В-Е - 139 00:06:11,690 --> 00:06:15,810 обично значи дека тука само за да се спаси поднесе ви побара за прв пат, и 140 00:06:15,810 --> 00:06:17,440 тогаш проверете ја вашата кеш за тоа. 141 00:06:17,440 --> 00:06:20,400 Проверете дали сте вид на сад за чување, и ако веќе имаат 142 00:06:20,400 --> 00:06:24,520 копија од styles.css, дури и ако некои други страница во p-сет, или било кој веб-сајт, 143 00:06:24,520 --> 00:06:28,560 побара тоа повторно, само да се даде на корисникот истата кеширана копија. 144 00:06:28,560 --> 00:06:30,140 Не мачи бара од него. 145 00:06:30,140 --> 00:06:32,560 >> Недостатоци таму, иако, како што некои од вас имаат tripped над во p-сет. 146 00:06:32,560 --> 00:06:35,870 Ако се направи промена на серверот и ќе се вратиме на прелистувачот и ви 147 00:06:35,870 --> 00:06:39,250 превчитате, понекогаш пребарувач не ви корист и тоа не им пречи 148 00:06:39,250 --> 00:06:43,660 повторно симнување вашиот styles.css датотека затоа, ајде, какви се шансите 149 00:06:43,660 --> 00:06:47,620 дека овие стилови дека Фејсбук користи се случува да се промени час на час или 150 00:06:47,620 --> 00:06:48,140 ден на ден? 151 00:06:48,140 --> 00:06:48,800 Тоа е прилично ниско. 152 00:06:48,800 --> 00:06:52,260 Тие можат да се сменат со текот на времето, но не од страна на минута или од страна на час. 153 00:06:52,260 --> 00:06:55,810 >> Па трик, само Материјал цел кога го прави веб развој, често се држите 154 00:06:55,810 --> 00:06:59,500 Shift копчето за пример и потоа кликнете на превчитате во вашиот интернет пребарувач, и дека ќе 155 00:06:59,500 --> 00:07:03,280 обично каже на прелистувачот Вчитај ја страната повторно сè, дури и ако веќе имаат 156 00:07:03,280 --> 00:07:04,180 тоа во кешот. 157 00:07:04,180 --> 00:07:06,630 Значи, повторно, квит сум и downsides, но сите од нив 158 00:07:06,630 --> 00:07:08,260 во крајна линија дизајн одлуки. 159 00:07:08,260 --> 00:07:11,520 >> Па сега, ние не сме само крај на приказната тука. 160 00:07:11,520 --> 00:07:15,790 Ако јас сега одиме назад и назад и назад и назад, почнавме да се воведе не само 161 00:07:15,790 --> 00:07:18,060 HTML, но PHP. 162 00:07:18,060 --> 00:07:20,786 Значи во однос на Едноставен, што што не PHP нека направам? 163 00:07:20,786 --> 00:07:22,770 >> ПУБЛИКАТА: [нечујни]. 164 00:07:22,770 --> 00:07:24,258 >> Дејвид MALAN: Што е тоа? 165 00:07:24,258 --> 00:07:25,250 >> ПУБЛИКАТА: Воведување на логиката во кодот. 166 00:07:25,250 --> 00:07:26,620 >> Дејвид MALAN: Да, воведе логика во вашиот код. 167 00:07:26,620 --> 00:07:29,570 Па тоа е вистински програмски јазик со петелки, и променливи, и 168 00:07:29,570 --> 00:07:32,620 функции, како и условите и сите работите што сум бил со користење патот назад 169 00:07:32,620 --> 00:07:33,780 кога од нула. 170 00:07:33,780 --> 00:07:36,780 И PHP, што видовме, може да се користи или на командната линија - тоа 171 00:07:36,780 --> 00:07:39,190 не мора да имаат нешто да се прави со веб, иако тоа е 172 00:07:39,190 --> 00:07:43,150 навистина неговото потекло и што таа има тенденција да биде добар во и придонесуваат за - 173 00:07:43,150 --> 00:07:47,130 но можете да го користите PHP само со природата на фактот дека тоа има печати () 174 00:07:47,130 --> 00:07:49,660 функција, и printf () функцијата, или ехо () функција. 175 00:07:49,660 --> 00:07:52,440 Има гроздовете на начини можете може да се печати текст со PHP. 176 00:07:52,440 --> 00:07:56,540 >> Затоа, можете да го користите овој програмски јазик за излез точно 177 00:07:56,540 --> 00:07:58,460 она што ние се зборува за пред. 178 00:07:58,460 --> 00:08:01,360 Можете може динамички да генерира HTML. 179 00:08:01,360 --> 00:08:02,300 Можеби не сите од неа. 180 00:08:02,300 --> 00:08:06,460 Можеби тешко код работи, како заглавие, и подножјето, и логото, 181 00:08:06,460 --> 00:08:07,950 и на вашиот стил листови, и сето тоа. 182 00:08:07,950 --> 00:08:11,190 Но за такво нешто п-сет седум, каде што сте манипулирање со акции и 183 00:08:11,190 --> 00:08:14,690 покажува портфолио на корисникот, кој е случува да се динамички промени, може да се 184 00:08:14,690 --> 00:08:18,960 сигурно го користите PHP и логиката тоа му дава вас, како програмски јазик за 185 00:08:18,960 --> 00:08:22,320 излез динамички подмножества на страната. 186 00:08:22,320 --> 00:08:25,900 >> Значи, кога се зборува за динамична веб-сајтови, или веб програмирање, тоа е 187 00:08:25,900 --> 00:08:27,200 она што сте навистина зборуваме. 188 00:08:27,200 --> 00:08:31,450 Користење на јазик како PHP, или работи т.н. Пајтон или Руби, или Java, или 189 00:08:31,450 --> 00:08:35,900 уште други јазици, да се пребарува базата на податоци често, или на друг сервер, и 190 00:08:35,900 --> 00:08:38,580 потоа динамички плукаат HTML. 191 00:08:38,580 --> 00:08:42,470 >> Сега крајниот резултат, како настрана, е дека HTML на повеќето веб-сајтови, 192 00:08:42,470 --> 00:08:45,970 вклучувајќи го и вашиот п-сет седум, веројатно е ќе биде огромен хаос ако 193 00:08:45,970 --> 00:08:48,060 ќе се погледне на извор кодот во пребарувач. 194 00:08:48,060 --> 00:08:49,010 Тоа не е голема работа. 195 00:08:49,010 --> 00:08:51,550 Во овој момент, кога ние се грижиме за стил, ние се грижиме за 196 00:08:51,550 --> 00:08:52,740 работи што ќе пишувам. 197 00:08:52,740 --> 00:08:56,240 Ние не ќе се грижат за нешта дека она што вашиот код излези. 198 00:08:56,240 --> 00:08:59,520 Затоа, не се грижите за вовлекување тука ако е PHP дека е 199 00:08:59,520 --> 00:09:01,190 всушност Ставање нешта. 200 00:09:01,190 --> 00:09:04,430 По сите, пребарувачот не ќе се грижи, и човечки нема да се гледа 201 00:09:04,430 --> 00:09:05,400 на изворот секој случај. 202 00:09:05,400 --> 00:09:09,000 Ние на вработените, на пример, би се гледа во вашиот PHP. 203 00:09:09,000 --> 00:09:13,440 >> Па да ми даде брз пример сега зошто друго ова може да биде корисно. 204 00:09:13,440 --> 00:09:18,620 Па искрено, не можам да се сетам кога последен пат јас се користи C за да реши еден проблем во 205 00:09:18,620 --> 00:09:19,620 реалниот свет. 206 00:09:19,620 --> 00:09:22,330 Тоа е веројатно во Факултетот кога Требаше да се користи јазик кој 207 00:09:22,330 --> 00:09:26,710 беше прилично ниско ниво и ми даде можност да се направи нешто многу висока 208 00:09:26,710 --> 00:09:30,720 вршење навистина да ја зачувате како многу процесорот циклуси што можев, во голем дел 209 00:09:30,720 --> 00:09:33,990 бидејќи јас бев со користење огромни збирки на податоци, и секој процесорот циклус изброи. 210 00:09:33,990 --> 00:09:37,750 И искрено, дури и во нештата како телефони овие денови и други уреди 211 00:09:37,750 --> 00:09:39,910 каде што не сосема имаат колку меморија и не сосема имаат како 212 00:09:39,910 --> 00:09:44,160 многу процесорот, користење побрзо јазици се уште привлечен. 213 00:09:44,160 --> 00:09:47,290 >> Но, во реалниот свет, кога само сакате да се фрли некои програма заедно за да 214 00:09:47,290 --> 00:09:50,340 анализираат некои податоци, или сте ги собрале целиот куп на менаџери за 215 00:09:50,340 --> 00:09:53,330 некои ученикот група и дека сакате да многу брзо ги автоматизира испраќање на пораки 216 00:09:53,330 --> 00:09:56,240 еден по еден на секој еден од оние регистранти, си оди за да се достигне за 217 00:09:56,240 --> 00:09:59,240 повисоко ниво јазик од C, така да зборува. 218 00:09:59,240 --> 00:10:04,060 Нешто како PHP или Пајтон или Руби, или половина дузина други кои постојат 219 00:10:04,060 --> 00:10:04,550 овие денови. 220 00:10:04,550 --> 00:10:07,200 Но тие три се веројатно повеќето модерни во моментов. 221 00:10:07,200 --> 00:10:10,840 >> И она што ова значи е дека можете да ја отворите до текст едитор како gedit или 222 00:10:10,840 --> 00:10:14,030 повеќето ништо друго, а потоа само на проектот пишување на код без да се грижите 223 00:10:14,030 --> 00:10:17,800 за собирање, без да навистина се грижите за управување со меморијата, 224 00:10:17,800 --> 00:10:20,820 имајќи на ум дека иако малку несовесноста на крајот ќе се врати 225 00:10:20,820 --> 00:10:24,790 да те гризнам ако на податоци добива поголеми или проблемот добива голема. 226 00:10:24,790 --> 00:10:27,230 Но, она што ова значи за ни е следниот. 227 00:10:27,230 --> 00:10:29,860 >> Дозволете ми да оди напред и да ја стартувате правопис од проблемот постави шест. 228 00:10:29,860 --> 00:10:33,480 Значи ова е мојот TRIE-базирана имплементација дека јас се користи на големите 229 00:10:33,480 --> 00:10:35,500 одбор каде што не врши толку добро. 230 00:10:35,500 --> 00:10:38,720 Ние ќе се врати во време од една недела и враќате оние кои не завршуваат на врвот на 231 00:10:38,720 --> 00:10:40,430 голема табла на нашиот последен предавање. 232 00:10:40,430 --> 00:10:44,520 Но, за сега, дозволете ми да оди напред и само се кандидира мојот решение во текстот, а ние ќе направиме 233 00:10:44,520 --> 00:10:48,460 Кралот Џејмс Библијата, и тука ќе одиме. 234 00:10:48,460 --> 00:10:51,080 >> Па оние што се сите на наводно погрешно напишани зборови од 235 00:10:51,080 --> 00:10:52,240 Кралот Џејмс Библијата. 236 00:10:52,240 --> 00:10:55,560 И мојот имплементација се половина секунда во вкупно. 237 00:10:55,560 --> 00:10:58,270 Па не е лошо на овој особено компјутер. 238 00:10:58,270 --> 00:11:01,540 Но, мислам за тоа колку кодот морав да напишам. 239 00:11:01,540 --> 00:11:02,880 Мислам колку код ти мораше да пишуваат. 240 00:11:02,880 --> 00:11:06,170 Мислам колку часа сте потрошени во Д-сала или вашата dorm или каде 241 00:11:06,170 --> 00:11:07,890 всушност кодирање до тоа решение. 242 00:11:07,890 --> 00:11:11,850 >> Па, ако јас всушност имаат повисоко ниво јазик како PHP, внимавајте на 243 00:11:11,850 --> 00:11:13,350 она што можам да направам тука. 244 00:11:13,350 --> 00:11:16,410 Прво, да претпоставиме дека ова е наместо вашата дистрибуција код. 245 00:11:16,410 --> 00:11:17,790 Ова е датотека наречена правопис. 246 00:11:17,790 --> 00:11:20,220 Тоа е достапен како дел од денешните дистрибуција код. 247 00:11:20,220 --> 00:11:22,670 И јас одам да се бранува мојата рака во повеќето на детали, но ова е всушност 248 00:11:22,670 --> 00:11:25,500 интересен пример за тоа како Можеби порта јазик 249 00:11:25,500 --> 00:11:28,870 како C во текот на PHP. 250 00:11:28,870 --> 00:11:33,420 Јас буквално отвори два текст прозорци, еден со моите C верзија на speller.c, 251 00:11:33,420 --> 00:11:36,960 и јас само што почнав да се преведе во мојот се упатат кон PHP и внесување со користење на 252 00:11:36,960 --> 00:11:38,840 најблиску еквивалент функции. 253 00:11:38,840 --> 00:11:40,100 >> Па така некои од овие работи се различни. 254 00:11:40,100 --> 00:11:43,730 Видовме последен пат дека PHP не користи се вклучат во прилично на истиот начин. 255 00:11:43,730 --> 00:11:47,050 Таа користи бараат обично, иако вклучуваат постои. 256 00:11:47,050 --> 00:11:50,330 Дефинира е малку различен од # Define во C, но тоа е 257 00:11:50,330 --> 00:11:51,890 Како ние да константа. 258 00:11:51,890 --> 00:11:55,860 $ Argc излегува постои во PHP, па видовме дека пред. 259 00:11:55,860 --> 00:11:58,650 Овие се само променливи, сите што ќе почнат со доларот знаци. 260 00:11:58,650 --> 00:12:00,590 Потсетиме овие се само еден куп на лебдат поени. 261 00:12:00,590 --> 00:12:03,970 >> Значи скратам приказната, вие сте добредојдени да флип преку ова ако љубопитни, ова е 262 00:12:03,970 --> 00:12:10,010 речиси линија за линија конверзија на C верзија на speller.c во PHP. 263 00:12:10,010 --> 00:12:12,630 И можете да го направите ова повторно за половина дузина други јазици. 264 00:12:12,630 --> 00:12:14,910 >> Но она што е интересно е тоа. 265 00:12:14,910 --> 00:12:16,910 Или она што е искрено лош е ова. 266 00:12:16,910 --> 00:12:20,790 Дозволете ми да оди напред и да напишеш за dictionary.php, и тврдат дека јас сум 267 00:12:20,790 --> 00:12:23,670 ќе одиме напред и повторно спроведување Проблемот постави шест тука. 268 00:12:23,670 --> 00:12:27,530 >> Па ајде да предложи првиот што во овој датотека, која ќе се спроведува во 269 00:12:27,530 --> 00:12:30,550 PHP, па да ми се отвори мојот тагови се допаѓа. 270 00:12:30,550 --> 00:12:34,780 Дозволете ми да даде себеси глобален променлива, $ големина добива нула. 271 00:12:34,780 --> 00:12:36,710 И јас одам да се даде себе хаш табелата. 272 00:12:36,710 --> 00:12:38,110 Ќе се користи хаш табелата за оваа работа. 273 00:12:38,110 --> 00:12:42,070 Како можам да се изјасни за хеш табелата во PHP? 274 00:12:42,070 --> 00:12:42,990 Направи. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> Толку отворен заградата блиску заграда, претставува што во PHP, како што видовме? 277 00:12:48,870 --> 00:12:51,850 Низа, но низа кои би можеле да биде асоцијативна низа. 278 00:12:51,850 --> 00:12:54,320 Асоцијативна низа е податочна структура што 279 00:12:54,320 --> 00:12:55,860 соработници клучеви со вредности. 280 00:12:55,860 --> 00:12:59,430 >> Сега во наједноставен бројно индексирани низа, тие клучеви се што? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Нула, еден, два, три, право? 283 00:13:03,960 --> 00:13:08,780 Старата школа се работи врати од C. Но тоа може да исто така да биде низи како foo, и бар, 284 00:13:08,780 --> 00:13:12,210 или Максвел, или било како стринг. 285 00:13:12,210 --> 00:13:14,240 За да можам да потпора дека во само еден миг. 286 00:13:14,240 --> 00:13:17,550 >> Дозволете ми да оди напред и да се изјасни функција како - 287 00:13:17,550 --> 00:13:19,020 ајде да направиме оптоварување () прв план. 288 00:13:19,020 --> 00:13:20,690 Така функција оптоварување (). 289 00:13:20,690 --> 00:13:23,440 И PHP е малку поинаков во тоа што вие буквално тип функција, но 290 00:13:23,440 --> 00:13:24,930 Не тип враќање тип. 291 00:13:24,930 --> 00:13:28,760 Одам да се оди напред и да се каже дека оптоварување () функцијата треба да се земе во 292 00:13:28,760 --> 00:13:31,000 аргумент $ речник, само како C верзија направив. 293 00:13:31,000 --> 00:13:32,510 Јас го правам тоа од меморија. 294 00:13:32,510 --> 00:13:34,910 >> И јас предложи дека јас сум ќе го направите тоа. 295 00:13:34,910 --> 00:13:37,080 Јас сум едноставно се случува да направам foreach. 296 00:13:37,080 --> 00:13:40,710 Одам да се јавите на функција наречена датотека (), минувајќи во името на таа 297 00:13:40,710 --> 00:13:44,990 датотека, кое е променлива $ Речник како $ збор. 298 00:13:44,990 --> 00:13:49,410 А потоа внатрешноста на мојата за јамка тука, јас сум ќе одиме напред и чување во мојата 299 00:13:49,410 --> 00:13:57,440 $ Табела дека $ зборот добива точно. 300 00:13:57,440 --> 00:13:57,918 Направи. 301 00:13:57,918 --> 00:14:01,264 О, чекај. 302 00:14:01,264 --> 00:14:02,422 Направи. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> Тоа е оптоварување () функцијата велат во PHP. 305 00:14:04,970 --> 00:14:05,865 Сега, зошто таа работа? 306 00:14:05,865 --> 00:14:07,010 И јас сум вид на мамење тука. 307 00:14:07,010 --> 00:14:09,980 >> Значи, еден, foreach видовме накратко последен пат. 308 00:14:09,980 --> 00:14:13,680 Тоа само значи дека можете да iterate преку низа без пречеше со i 309 00:14:13,680 --> 00:14:16,150 и n и плус плус, и сето тоа. 310 00:14:16,150 --> 00:14:21,350 Речник е, се разбира името на датотеката, нешто како голема или мала, двете 311 00:14:21,350 --> 00:14:22,830 речници ние се користи последен пат. 312 00:14:22,830 --> 00:14:26,715 Датотека е функција која се отвора текст датотеката, таа го чита во линија по линија, и 313 00:14:26,715 --> 00:14:29,840 рацете ви се врати огромна низа, секој од чии елементи е 314 00:14:29,840 --> 00:14:31,340 линија од таа датотека. 315 00:14:31,340 --> 00:14:36,040 Па тоа е комбинација на fopen и fread, и додека јамка, а запишам, 316 00:14:36,040 --> 00:14:37,080 и сето тоа. 317 00:14:37,080 --> 00:14:40,150 Конечно, како збор само значи дека е променлива, ќе одам да имаат пристап до 318 00:14:40,150 --> 00:14:41,890 на секоја итерација во овој циклус. 319 00:14:41,890 --> 00:14:46,910 >> Значи во кратки, ова лагер тука значи отвори датотека чие име е во 320 00:14:46,910 --> 00:14:50,750 речник, променлива, iterate преку тоа линија по линија, и секој пат кога ќе се 321 00:14:50,750 --> 00:14:54,290 линија, продавница во променлива наречена збор, а потоа направи нешто со зборот. 322 00:14:54,290 --> 00:14:55,280 Што сакам да направам? 323 00:14:55,280 --> 00:14:58,110 Сакам да се стави збор во мојот хаш табелата. 324 00:14:58,110 --> 00:15:00,860 >> Па, можам да се стави нешто во мојата хаш табелата исто како и во C 325 00:15:00,860 --> 00:15:02,140 користење квадратни загради. 326 00:15:02,140 --> 00:15:03,660 Ова е името за мојата хаш табелата. 327 00:15:03,660 --> 00:15:07,180 Одам да индексира во кои се дешифрираат маса на оваа локација. 328 00:15:07,180 --> 00:15:08,920 Па не заградата нула, не заградата еден. 329 00:15:08,920 --> 00:15:11,990 Заградата цитат unquote нешто, она што тој збор е. 330 00:15:11,990 --> 00:15:15,200 И само како може да имате во вашата хаш табелата работа Trie, вие само чување 331 00:15:15,200 --> 00:15:17,650 ефикасно Булова, имплицитно или експлицитно. 332 00:15:17,650 --> 00:15:18,260 Направи. 333 00:15:18,260 --> 00:15:20,000 Јас сум чување на вредноста вистина. 334 00:15:20,000 --> 00:15:23,150 >> Сега има неколку работи Јас сум сечење агли за тука. 335 00:15:23,150 --> 00:15:27,720 Технички, таму се случува да биде досадни нова линија, / n, на крајот на 336 00:15:27,720 --> 00:15:28,820 секоја од овие зборови. 337 00:15:28,820 --> 00:15:31,770 Па јас веројатно ќе треба да се јавите на функцијата PHP наречен сека (), кои ќе 338 00:15:31,770 --> 00:15:33,460 буквално се исецка дека надвор. 339 00:15:33,460 --> 00:15:35,020 И јас всушност треба да направи една друга работа. 340 00:15:35,020 --> 00:15:38,380 Јас веројатно ќе треба да прираст големина на секоја повторување, па јас сум следење 341 00:15:38,380 --> 00:15:39,560 на глобално ниво од тоа што е. 342 00:15:39,560 --> 00:15:43,180 И искрено, и ова е еден од stupider аспекти на PHP, ако сте 343 00:15:43,180 --> 00:15:46,950 користење на глобалната променлива, што треба експлицитно да се каже дека сте. 344 00:15:46,950 --> 00:15:51,670 Па ќе одам да всушност тип во глобалната $ Големина, глобалната $ маса, и сега 345 00:15:51,670 --> 00:15:52,690 мојата функција е завршена. 346 00:15:52,690 --> 00:15:57,475 >> Па не е толку едноставно како порано, но веројатно се помалку време отколку на C 347 00:15:57,475 --> 00:15:58,220 верзија, можеби? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> Па сега ајде да го направи проверка () функција. 350 00:16:00,390 --> 00:16:04,300 Ајде да видиме дали ова најмалку зеде часа на крајот тоа што ни го зеде во C. Значи 351 00:16:04,300 --> 00:16:06,500 дозволете ми да оди напред и да се изјасни провери како функција. 352 00:16:06,500 --> 00:16:09,070 Зема во аргументот збор, која е случува да дојде од правопис. 353 00:16:09,070 --> 00:16:13,410 И јас сум само ќе провери дали следниве променлива isset, маса 354 00:16:13,410 --> 00:16:18,400 заградата strtolower на зборот - 355 00:16:18,400 --> 00:16:20,590 ајде да се балансираат сите од моите загради - 356 00:16:20,590 --> 00:16:24,275 потоа се врати вистина. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Друго - 359 00:16:28,460 --> 00:16:30,330 тоа беше навистина тешко дел од оваа програма. 360 00:16:30,330 --> 00:16:31,940 Друго, враќање false. 361 00:16:31,940 --> 00:16:32,630 Направи. 362 00:16:32,630 --> 00:16:33,460 Тоа е чек (). 363 00:16:33,460 --> 00:16:34,520 >> Сега, зошто го прави ова дело? 364 00:16:34,520 --> 00:16:37,040 Па, оној што го помина со еден збор, која е стринг. 365 00:16:37,040 --> 00:16:41,400 Две, јас сум проверка на внатрешноста на хаш маса, кој се нарекува $ табела. 366 00:16:41,400 --> 00:16:45,470 Јас сум принудувајќи го во мали букви со повик функција доста слични tolower () во 367 00:16:45,470 --> 00:16:48,580 Ц, но тоа го прави целиот збор, не еден лик. 368 00:16:48,580 --> 00:16:52,680 И ако тоа е во собата, со други зборови има е вредност утврдена, со други зборови, 369 00:16:52,680 --> 00:16:54,880 ако тоа е вистина, тогаш да, ова е еден збор. 370 00:16:54,880 --> 00:16:56,530 Затоа што Јас ја ставив таму со оптоварување (). 371 00:16:56,530 --> 00:16:59,100 А ако не, јас ќе одам да се врати лажни. 372 00:16:59,100 --> 00:17:00,090 >> Сега други се едноставно. 373 00:17:00,090 --> 00:17:03,570 Функција големината (), како можам да го направите ова? 374 00:17:03,570 --> 00:17:05,230 Јас во суштина се врати $ големина. 375 00:17:05,230 --> 00:17:07,770 Но јас технички треба да направите ова досадни нешто. 376 00:17:07,770 --> 00:17:10,640 А всушност се слуша, јас бев сечење еден агол премногу. 377 00:17:10,640 --> 00:17:12,920 Јас навистина треба да направите глобалната $ табела. 378 00:17:12,920 --> 00:17:16,260 >> Но тоа се рече, бриши). 379 00:17:16,260 --> 00:17:17,380 Бриши () е неверојатен. 380 00:17:17,380 --> 00:17:20,500 Функционира бриши (). 381 00:17:20,500 --> 00:17:23,990 Како можам да сакате да се спроведе бриши ()? 382 00:17:23,990 --> 00:17:25,079 Направи. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> Па бриши (), управување со меморијата е целосно згрижени за вас во 385 00:17:28,900 --> 00:17:31,800 нешто како PHP и многу на повисоко ниво јазици. 386 00:17:31,800 --> 00:17:32,600 Па ова е неверојатно. 387 00:17:32,600 --> 00:17:36,080 Како зошто, по ѓаволите, не ни поминал изминатите осум плус недели на C пишување 388 00:17:36,080 --> 00:17:41,030 очигледно навистина бавно, навистина време одзема проблеми со десетици часови 389 00:17:41,030 --> 00:17:42,530 на работа под нашите појаси? 390 00:17:42,530 --> 00:17:46,110 >> Па, за една работа, ова може да работи парична казна за мали програми. 391 00:17:46,110 --> 00:17:47,840 Тоа сигурно го забрза мојот развојот на време. 392 00:17:47,840 --> 00:17:49,790 Но, ајде да видиме што се случува во реалниот свет. 393 00:17:49,790 --> 00:17:52,370 >> Дозволете ми да одат во овој директориум во терминален прозорец. 394 00:17:52,370 --> 00:17:53,370 Има правопис. 395 00:17:53,370 --> 00:17:56,570 И ќе забележите како настрана, и може да се соочуваат со овој во проблемот сет 396 00:17:56,570 --> 00:17:58,190 шест или проблем во собата седум. 397 00:17:58,190 --> 00:18:01,610 Вие не строго мора да заврши PHP датотеки со. PHP. 398 00:18:01,610 --> 00:18:05,250 Ако се стави линија како што првиот на самиот врв, тоа е посебна линија 399 00:18:05,250 --> 00:18:10,980 на синтаксата што во суштина значи најдете на програма наречена PHP и го користат за да 400 00:18:10,980 --> 00:18:12,270 интерпретираат оваа датотека. 401 00:18:12,270 --> 00:18:15,410 Па сега никој не знае кој Јас сум водење на PHP програма. 402 00:18:15,410 --> 00:18:19,860 Јас може да го работи само како и покрај тоа беа нешто Составувач во C. 403 00:18:19,860 --> 00:18:20,650 >> Но, тука е нешто. 404 00:18:20,650 --> 00:18:21,600 Всушност, ајде да го направите ова повторно. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Има правопис. 407 00:18:25,390 --> 00:18:26,720 Добро, 0,44 секунди. 408 00:18:26,720 --> 00:18:28,080 Тоа добива побрзо тоа време. 409 00:18:28,080 --> 00:18:29,745 >> Сега ајде да одиме во верзија на PHP. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Убав допир. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Но само мислам колку време Чував на работното време. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> Значи 3,59 секунди, што всушност не звучи точни или. 417 00:19:01,020 --> 00:19:03,710 Но тоа е затоа скратам приказната, кога сте печатење огромна сума 418 00:19:03,710 --> 00:19:06,840 на работи на екран, кој себе го забавува работите надолу. 419 00:19:06,840 --> 00:19:11,260 Она што навистина го зеде процесорот во апаратот бил 3,59 секунди, во 420 00:19:11,260 --> 00:19:15,260 Спротивно на C, која ја презеде 0,44 секунди неодамна. 421 00:19:15,260 --> 00:19:17,620 Тоа е навистина редот на големината поинаква. 422 00:19:17,620 --> 00:19:20,280 >> Значи каде е таа цена доаѓаат од? 423 00:19:20,280 --> 00:19:21,790 Зошто е толку многу побавно? 424 00:19:21,790 --> 00:19:24,220 Зошто PHP изврши толку лошо? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> ПУБЛИКАТА: Вие не навистина го користите хаш табелата. 427 00:19:26,550 --> 00:19:27,710 >> Дејвид MALAN: Јас не навистина го користите хаш табелата. 428 00:19:27,710 --> 00:19:28,760 Па јас вид на не. 429 00:19:28,760 --> 00:19:29,870 Па тоа е асоцијативна низа. 430 00:19:29,870 --> 00:19:33,650 Најверојатно ако луѓето на PHP се навистина паметни, тие се користат под 431 00:19:33,650 --> 00:19:39,520 качулка вистински хаш табелата спроведува во нешто како C или C + +. 432 00:19:39,520 --> 00:19:41,290 Но. 433 00:19:41,290 --> 00:19:42,760 Да. 434 00:19:42,760 --> 00:19:44,010 >> ПУБЛИКАТА: [нечујни]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> Дејвид MALAN: Да. 437 00:19:47,080 --> 00:19:50,780 Така што секоја од функциите што сум го напишала сега - всушност, може да се каже дека уште еднаш го 438 00:19:50,780 --> 00:19:51,480 малку погласно? 439 00:19:51,480 --> 00:19:54,509 >> Публика: Секоја од функциите кои сте вклучени има многу повеќе целосна 440 00:19:54,509 --> 00:19:56,610 капацитет од - 441 00:19:56,610 --> 00:19:57,550 >> Дејвид MALAN: Значи тоа е многу точно. 442 00:19:57,550 --> 00:20:01,490 Има многу повеќе надземни дека ние сме навистина не гледаат со фокусирање на само 443 00:20:01,490 --> 00:20:03,730 dictionary.php, за што јас само напишав. 444 00:20:03,730 --> 00:20:08,020 Спротивно на тоа, има цела преведувач случува во позадина. 445 00:20:08,020 --> 00:20:12,040 Навистина, кога Истрчав оваа програма, не беше трчање Составувач нули и единици 446 00:20:12,040 --> 00:20:14,290 наменета за мојот Intel процесорот. 447 00:20:14,290 --> 00:20:19,270 Напротив, тоа беше работи линија по линија PHP код што изгледа исто 448 00:20:19,270 --> 00:20:20,350 како што го напишавте. 449 00:20:20,350 --> 00:20:22,475 И така секогаш кога имате потреба при користење на толкува јазик, 450 00:20:22,475 --> 00:20:23,850 всушност не ја плати оваа цена. 451 00:20:23,850 --> 00:20:27,010 Тоа се случува да се земе некое време да ја прочитате вашата датотека врвот до дното, лево кон 452 00:20:27,010 --> 00:20:30,740 право, а потоа изврши секој линија повторно и повторно. 453 00:20:30,740 --> 00:20:34,250 >> Сега во реалноста, посебно на интернет, вие всушност може да го забрза овој процес 454 00:20:34,250 --> 00:20:38,660 од страна на кеширање на резултатите од PHP код се толкува. 455 00:20:38,660 --> 00:20:41,640 А тоа го прави смисла на веб, бидејќи ако имате не еден корисник како 456 00:20:41,640 --> 00:20:46,300 јас сум тука, но 1000 или 10.000 корисници, а потоа можеби прв пат на датотеката е 457 00:20:46,300 --> 00:20:49,050 пристапува тоа е бавно, но потоа тоа е многу побрзо. 458 00:20:49,050 --> 00:20:51,000 >> Но ова е премногу, повторно, е пласирам. 459 00:20:51,000 --> 00:20:53,870 И за нешто како истражување на податоци во собата, па дури и нешто крупни како 460 00:20:53,870 --> 00:20:58,330 ова, вашите корисници ќе крајот почнете да се чувствувате дека застој. 461 00:20:58,330 --> 00:21:02,670 >> Значи во кратки, толкува јазици се многу многу во мода, многу популарна, а 462 00:21:02,670 --> 00:21:06,710 искрено се веројатно јазици што треба да стигнат за кога решавање на проблемите 463 00:21:06,710 --> 00:21:08,200 после CS50. 464 00:21:08,200 --> 00:21:12,720 Но сфати колку сте навистина земајќи здраво за готово под хауба 465 00:21:12,720 --> 00:21:15,910 навистина оние изминатите неколку недели во хеш маси, и дрвјата, и неуспешни обиди, 466 00:21:15,910 --> 00:21:20,770 кои се користат во крајна линија да всушност имплементираат работи како отворен заградата, 467 00:21:20,770 --> 00:21:24,200 квадратни заградата, која што можеме сега благодарност земе здраво за готово. 468 00:21:24,200 --> 00:21:26,360 >> Па ајде да ги разгледаме сега во оваа веб-контекст. 469 00:21:26,360 --> 00:21:29,890 И јас спомнав последен пат дека има еден куп на superglobals во PHP што 470 00:21:29,890 --> 00:21:32,490 не се навистина релевантни на командната линија. 471 00:21:32,490 --> 00:21:36,210 Тие се повеќе релевантни во контекст од користењето на PHP во веб контекст. 472 00:21:36,210 --> 00:21:41,220 Па работите со PHP на веб серверот, со цел да се генерираат нешта како HTML. 473 00:21:41,220 --> 00:21:44,540 >> И ние погледна $ _GET и $ _POST, и тоа е каде што автоматски на корисниците 474 00:21:44,540 --> 00:21:49,100 влез завршува едноставно ако поднесе формираат во датотека завршува во. PHP на веб 475 00:21:49,100 --> 00:21:50,460 серверот како апаратот. 476 00:21:50,460 --> 00:21:53,310 Но ајде да ги погледнеме накратко во $ _COOKIE И $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> Во однос на Едноставен, она што е куки како да не го разбереш, во контекст на 478 00:21:56,670 --> 00:21:58,220 со користење на веб? 479 00:21:58,220 --> 00:21:59,450 >> ПУБЛИКАТА: Датотека на компјутерот. 480 00:21:59,450 --> 00:21:59,920 >> Дејвид MALAN: Да. 481 00:21:59,920 --> 00:22:03,500 Тоа е датотека на компјутерот на корисникот поставена од она што веб-сајтот 482 00:22:03,500 --> 00:22:04,410 ви се случи да ја посетите. 483 00:22:04,410 --> 00:22:07,334 Па кога ќе отидете на Фејсбук, кога одите да bankofamerica.com, кога одите 484 00:22:07,334 --> 00:22:10,330 на google.com, кога ќе одат за речиси било каков сајт во светот овие денови, 485 00:22:10,330 --> 00:22:14,850 вклучувајќи cs50.net, колаче е поставена на вашиот компјутер, кој е 486 00:22:14,850 --> 00:22:19,800 или вредност се чуваат во RAM меморија во вашиот компјутер во меморијата на вашиот интернет пребарувач, или 487 00:22:19,800 --> 00:22:22,800 понекогаш навистина податок зачуван на вашиот хард диск. 488 00:22:22,800 --> 00:22:26,960 >> И она што обично се чуваат во таа датотека не е вашето корисничко име, а не на вашиот 489 00:22:26,960 --> 00:22:31,060 лозинка, обично не нешто чувствителни освен ако на веб-сајтот не е толку 490 00:22:31,060 --> 00:22:35,040 добри со нивната безбедност, туку тоа е голем единствен идентификатор меѓу 491 00:22:35,040 --> 00:22:35,680 други работи. 492 00:22:35,680 --> 00:22:38,920 Тоа е голем случаен број засадени на вашиот компјутер, но можете да замислите како 493 00:22:38,920 --> 00:22:42,740 вид на виртуелна рака печат како од некој клуб или некои забавен парк кој 494 00:22:42,740 --> 00:22:47,160 им овозможува на вработените, на сопствениците на таа услуга, да се сеќавам на кој сте. 495 00:22:47,160 --> 00:22:51,030 Па ако големите случаен број е како 12345678, иако тоа е очигледно 496 00:22:51,030 --> 00:22:54,180 не се премногу случаен избор, мислам на тоа како страна печат дека кога ќе ја посетите 497 00:22:54,180 --> 00:22:57,930 facebook.com за прв пат, тие печат дека бројот на вашата рака. 498 00:22:57,930 --> 00:23:01,510 А потоа затоа што зборуваат на HTTP, можете да се биде пребарувач, и поради Фејсбук 499 00:23:01,510 --> 00:23:06,440 очигледно зборува иста како и на веб сервер, на HTTP протоколот вели дека 500 00:23:06,440 --> 00:23:09,930 во секое време да потоа посета facebook.com, без разлика дали тоа е вториот 501 00:23:09,930 --> 00:23:13,560 подоцна, еден час подоцна, дури следниот ден, толку долго како што имате не е експлицитно 502 00:23:13,560 --> 00:23:17,050 одјавени, која ефикасно се е како миење на рацете. 503 00:23:17,050 --> 00:23:20,280 HTTP вели дека треба да покажете вашата рака печат секој пат кога ќе 504 00:23:20,280 --> 00:23:22,020 се врати на овој веб-сајт. 505 00:23:22,020 --> 00:23:24,390 >> Она што на Фејсбук, тогаш не е тоа што тие погледне онаа страна печат и 506 00:23:24,390 --> 00:23:26,850 велат тие, ох, 123456789. 507 00:23:26,850 --> 00:23:30,260 Не знам на прв поглед дека овој е Дејвид Malan во Кембриџ, 508 00:23:30,260 --> 00:23:34,690 Масачусетс, но тие можат да ги проверат своите база на податоци и да каже, ох, лицето 509 00:23:34,690 --> 00:23:39,930 на чија компјутер ние засадени 123456789 е Дејвид Malan од Кембриџ, 510 00:23:39,930 --> 00:23:40,440 Масачусетс. 511 00:23:40,440 --> 00:23:46,000 Ајде да покажеме дека корисникот потоа неговиот профил страница или неговата Новости. 512 00:23:46,000 --> 00:23:49,660 >> Но има еден проблем тука, ако овој е начинот на веб навистина функционира. 513 00:23:49,660 --> 00:23:51,390 Ајде да ги погледнеме во брз пример. 514 00:23:51,390 --> 00:23:55,190 Ајде да, всушност, оди да се каже facebook.com. 515 00:23:55,190 --> 00:23:58,130 Но, пред да одиме таму, нека ме да си одам напред и се отвори Хром 516 00:23:58,130 --> 00:23:59,790 Инспектор овде долу. 517 00:23:59,790 --> 00:24:01,140 Дозволете ми да се погледне на мрежата табот. 518 00:24:01,140 --> 00:24:06,020 И сега ајде да одиме напред и да напишеш во https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 И јас го правам тоа, така што ние не ги гледаме сите оние пренесувања и отпад 520 00:24:09,410 --> 00:24:10,660 време гледајќи низ нив. 521 00:24:10,660 --> 00:24:12,690 Дозволете ми да притиснете ентер. 522 00:24:12,690 --> 00:24:13,130 >> Сите во право. 523 00:24:13,130 --> 00:24:14,580 Гледаме на целиот куп на барања. 524 00:24:14,580 --> 00:24:15,640 Доаѓа Фејсбук. 525 00:24:15,640 --> 00:24:16,930 Постојат еден куп на датотеки. 526 00:24:16,930 --> 00:24:19,290 И тука, во моето споменување на латентност последен пат, тоа е 527 00:24:19,290 --> 00:24:21,240 многу HTTP барања. 528 00:24:21,240 --> 00:24:23,700 Но првиот е веројатно од најинтересните. 529 00:24:23,700 --> 00:24:26,420 >> Па ајде да дојдете долу тука, и Јас ќе зумирате во една секунда. 530 00:24:26,420 --> 00:24:29,090 Ова ќе биде вид на хаос, но ајде да видиме. 531 00:24:29,090 --> 00:24:31,660 Фејсбук е ни пратите целиот куп на работи. 532 00:24:31,660 --> 00:24:33,490 >> Но еј, интересно. 533 00:24:33,490 --> 00:24:37,880 Тие се садат не една, туку четири рака марки врз мојата рака овде. 534 00:24:37,880 --> 00:24:40,400 Сет-куки, Местење куки, сет-куки, сет-куки. 535 00:24:40,400 --> 00:24:44,030 И постојат неколку карактеристики тука. 536 00:24:44,030 --> 00:24:46,170 Сите од нив споменам некои вид на истекот. 537 00:24:46,170 --> 00:24:50,090 И тоа изгледа како Фејсбук се надева дека да се запамти мене до 2015 година. 538 00:24:50,090 --> 00:24:53,670 Па тоа е веројатно времето со кое Јас мора да се одјавите или тие ќе се само 539 00:24:53,670 --> 00:24:55,710 автоматски претпоставуваат Јас сум не се враќаат. 540 00:24:55,710 --> 00:24:57,840 Па тоа е всушност пристоен износот на време. 541 00:24:57,840 --> 00:24:59,170 >> И постојат некои други работи се случува тука. 542 00:24:59,170 --> 00:25:03,036 Оваа колаче се чини дека е насилно избришани од страна велејќи дека тоа престана да важи во 1970 543 00:25:03,036 --> 00:25:04,460 пред колачиња постоел. 544 00:25:04,460 --> 00:25:06,510 Така прелистувачот е само ќе да се претпостави Добро, тоа е како 545 00:25:06,510 --> 00:25:07,910 миење на рацете печат. 546 00:25:07,910 --> 00:25:11,240 >> Но сега кога мојот интернет пребарувач го прави подоцнежно барање - 547 00:25:11,240 --> 00:25:14,340 дозволете ми да оди напред и да го направите тоа повторно и повторно. 548 00:25:14,340 --> 00:25:18,170 Сега дозволете ми да дојдете назад кон Топ барање и да одат надолу 549 00:25:18,170 --> 00:25:20,760 тука, барање заглавија. 550 00:25:20,760 --> 00:25:21,390 Забележуваат тоа. 551 00:25:21,390 --> 00:25:25,280 Па сега јас не сум под одговор заглавија, но информации што се вели барање заглавија. 552 00:25:25,280 --> 00:25:29,220 И ќе забележите дека мојот интернет пребарувач, како дел од своето барање по притискање Вчитај ја страната повторно има 553 00:25:29,220 --> 00:25:32,780 испратено најмалку следниве информации. 554 00:25:32,780 --> 00:25:34,670 Не сет-куки, но колаче. 555 00:25:34,670 --> 00:25:38,750 Значи ова е линијата, насловот на HTTP така да се каже, каде што мојот интернет пребарувач е вид 556 00:25:38,750 --> 00:25:43,340 на без мојот знаејќи дека презентирање мојата рака за инспекција на Фејсбук. 557 00:25:43,340 --> 00:25:46,020 >> Па овие колачиња можат да бидат користени тогаш за што? 558 00:25:46,020 --> 00:25:49,420 Да се ​​сеќавам на кој сте, или се сеќавам како многу пати сте биле таму, или 559 00:25:49,420 --> 00:25:50,280 навистина ништо. 560 00:25:50,280 --> 00:25:52,742 >> Па тука е counter.php. 561 00:25:52,742 --> 00:25:53,780 И дозволете ми да зумирате на фонт. 562 00:25:53,780 --> 00:25:58,380 И секој пат јас вчитајте ја оваа страница, информации тоа е сеќавајќи се колку пати 563 00:25:58,380 --> 00:25:59,250 Сум бил таму. 564 00:25:59,250 --> 00:26:00,570 Па, тоа не е сè што импресивен. 565 00:26:00,570 --> 00:26:03,140 Ајде само затвори таа табот, а сега да се вратиме на 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> О, тоа е интересно. 568 00:26:08,970 --> 00:26:10,960 Таа се уште се сети, дури и иако јас ја затвори табот. 569 00:26:10,960 --> 00:26:14,010 И искрено, ако јас го затворите пребарувачот, ако спроведува на вистински начин, јас 570 00:26:14,010 --> 00:26:18,950 уште можеше да се сети дека овој корисник е кој тој или таа беше прв пат, и 571 00:26:18,950 --> 00:26:22,840 само еднаш одам во менито Хром, кој овде е тука, и да одат во 572 00:26:22,840 --> 00:26:25,990 Историја, и кликнете Clear Browsing Data, како што некои од вас може да има во 573 00:26:25,990 --> 00:26:33,050 минатото, само тогаш ќе колачињата всушност да бидат избришани во текот на веб 574 00:26:33,050 --> 00:26:33,970 развој. 575 00:26:33,970 --> 00:26:35,340 >> Значи, ако ние одиме - 576 00:26:35,340 --> 00:26:37,080 ајде да се затвори до gedit тука. 577 00:26:37,080 --> 00:26:38,910 И ако ние одиме сега на оваа датотека. 578 00:26:38,910 --> 00:26:44,210 Дозволете ми да одат во нашата vhosts / localhost / јавноста, и дозволете ми да го направите 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Забележите дека ова е прилично едноставна програма. 581 00:26:48,350 --> 00:26:50,250 Тоа е прилично едноставен веб-сајт. 582 00:26:50,250 --> 00:26:51,770 >> Па на врвот на датотека е само коментари. 583 00:26:51,770 --> 00:26:54,930 Но, тука е нова линија што може веќе видовме во p-сет седум, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Ова е линија на PHP код кој суштина кажува на веб сервер, осигурајте се 586 00:27:00,380 --> 00:27:03,400 сигурни да се искорени раце и да сигурни да проверите рака марки. 587 00:27:03,400 --> 00:27:06,810 Тоа е сето она линија прави тоа, и тоа не сите на тој процес за нас. 588 00:27:06,810 --> 00:27:09,510 Тогаш забележите Тукушто добив две гранки тука. 589 00:27:09,510 --> 00:27:14,150 Ако контра клучните внатрешноста на оваа посебни глобалната променлива наречена 590 00:27:14,150 --> 00:27:18,010 $ _SESSION Е поставена - со други зборови, ако има некоја вредност тука - 591 00:27:18,010 --> 00:27:22,440 ајде да го добие и чувајте го на локалната променлива наречена $ шанкот. 592 00:27:22,440 --> 00:27:27,000 Друго, ајде да доделите $ контра на стандардната вредност на 0. 593 00:27:27,000 --> 00:27:30,320 >> Сега тука е еден аспект на PHP тоа е и благослов и проклетство. 594 00:27:30,320 --> 00:27:32,080 PHP е малку невешт. 595 00:27:32,080 --> 00:27:35,160 Значи додека во Ц, она што ќе го обемот на контра се 596 00:27:35,160 --> 00:27:36,725 или тука или тука? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Тоа би биле ограничени на оние големите загради. 599 00:27:41,690 --> 00:27:42,090 Погоди што? 600 00:27:42,090 --> 00:27:46,920 Во PHP, таа постои дури и надвор од оние кадрави загради, тука и тука, 601 00:27:46,920 --> 00:27:49,120 и тука и тука, и дури и долу. 602 00:27:49,120 --> 00:27:52,400 Па јас велат дека ова е благослов во смисла дека не треба да се размислува како 603 00:27:52,400 --> 00:27:54,070 тешко како што го правевме пред неколку недели. 604 00:27:54,070 --> 00:27:56,880 Но тоа е, исто така, малку на клетвата во кои без разлика каде се користи променлива во 605 00:27:56,880 --> 00:28:00,020 PHP, барем во некоја програма како оваа, тоа е глобално достапен за 606 00:28:00,020 --> 00:28:01,170 подобро или за полошо. 607 00:28:01,170 --> 00:28:06,130 Па мора да имајте на ум дека сега Вашиот променливи не може да биде недефинирано. 608 00:28:06,130 --> 00:28:07,640 Можеби сте ги дефинирани друго место. 609 00:28:07,640 --> 00:28:09,460 >> Но, она што сум јас ќе го стори на крајот? 610 00:28:09,460 --> 00:28:13,160 Одам да се сместат во оваа глобална променлива како вредноста на 611 00:28:13,160 --> 00:28:17,060 контра клучните резултат на прави контра плус 1. 612 00:28:17,060 --> 00:28:18,910 Па ова е само аритметички што го прави 613 00:28:18,910 --> 00:28:20,590 incrementation на тој шалтер. 614 00:28:20,590 --> 00:28:24,850 И фактот дека јас сум зачувување на таа вредност назад во тука е средство за 615 00:28:24,850 --> 00:28:29,970 суштина ажурирање на базата на податоци се сеќавам дека корисникот 123456789 е 616 00:28:29,970 --> 00:28:31,010 тука два пати. 617 00:28:31,010 --> 00:28:33,780 И кога ќе го направи тоа повторно следниот пат кога вчитување на страната, тоа се случува да се провери 618 00:28:33,780 --> 00:28:36,710 мојата рака печат и велат, ох, корисникот 123456789 сега 619 00:28:36,710 --> 00:28:38,410 е тука три пати. 620 00:28:38,410 --> 00:28:43,390 >> И уште па што PHP и слични јазици се прават за нас е дека тие се пронајдат 621 00:28:43,390 --> 00:28:47,720 како и каде и за колку време за да ја запази вредности во оваа специјална 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 И ова superglobal следниот пат кога ја посетите страницата е вид на магично 624 00:28:52,750 --> 00:28:57,440 пред-населен, исполнет со вредности кои беа таму последен пат сте ги посетиле, 625 00:28:57,440 --> 00:29:02,310 дали тоа беше пред една секунда, една недела пред, или во 2013 година и ние сме сега зборуваме 626 00:29:02,310 --> 00:29:03,790 за 2015 година. 627 00:29:03,790 --> 00:29:07,600 PHP и веб серверот се грижи сето тоа за вас. 628 00:29:07,600 --> 00:29:08,850 >> ПУБЛИКАТА: [нечујни]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> Дејвид MALAN: Променливи во PHP се во суштина секогаш глобалната освен ако 631 00:29:15,760 --> 00:29:18,400 декларира како во внатрешноста на функција, а потоа тие се локални 632 00:29:18,400 --> 00:29:19,420 функција само. 633 00:29:19,420 --> 00:29:22,300 Но, бидејќи јас не сум напишал било функции, тие се сега ефикасно 634 00:29:22,300 --> 00:29:25,090 глобалната текот на целиот мој датотека тука. 635 00:29:25,090 --> 00:29:26,040 >> Публика: Дали постои начин да ги направи локалните? 636 00:29:26,040 --> 00:29:28,470 >> Дејвид MALAN: Дали има некој начин да ги направи локалните? 637 00:29:28,470 --> 00:29:30,680 Само завиткани во функции. 638 00:29:30,680 --> 00:29:32,790 Која во најновата верзија на PHP, можете да го направите ова со 639 00:29:32,790 --> 00:29:34,130 анонимен функција. 640 00:29:34,130 --> 00:29:35,930 Но повеќе за тоа во контекст на JavaScript. 641 00:29:35,930 --> 00:29:37,260 Но кратко одговорот е не. 642 00:29:37,260 --> 00:29:40,888 А веќе одговорот е да. 643 00:29:40,888 --> 00:29:42,380 Убаво. 644 00:29:42,380 --> 00:29:43,380 Добар квиз прашање. 645 00:29:43,380 --> 00:29:43,930 Во ред е. 646 00:29:43,930 --> 00:29:47,760 >> Па на крај, самата страница е всушност прилично едноставна. 647 00:29:47,760 --> 00:29:51,470 Забележите дека еднаш бев излезете PHP на владата, да се потсетиме дека сите овие работи надолу 648 00:29:51,470 --> 00:29:53,700 подолу е само ќе да се плукаат надвор суровини на прелистувачот. 649 00:29:53,700 --> 00:29:57,050 Што е во ред, затоа што сакате да ја пратите корисникот некои HTML, но јас сакам 650 00:29:57,050 --> 00:29:59,140 да динамички ажурирање дека HTML. 651 00:29:59,140 --> 00:30:03,930 И еден начин да се направи ова е да се најде решение на многу брзо се намали назад во PHP 652 00:30:03,930 --> 00:30:07,730 владата, употреба отворен заградата прашалник знак за еднаквост, а потоа и излез вредноста 653 00:30:07,730 --> 00:30:08,650 на шанкот. 654 00:30:08,650 --> 00:30:12,360 >> Или ако тоа изгледа малку криптичната, ова знак за еднаквост е, всушност, само некои 655 00:30:12,360 --> 00:30:16,190 синтаксички шеќер за ова printf ($ контра). 656 00:30:16,190 --> 00:30:19,160 Но искрено, тоа е само малку грдо и малку досадни да напишеш. 657 00:30:19,160 --> 00:30:23,660 Така PHP многу убаво ја нуди оваа опција каде што само може да се каже повеќе 658 00:30:23,660 --> 00:30:25,450 посочно во ист начин. 659 00:30:25,450 --> 00:30:26,940 >> Значи она што се случува под хаубата? 660 00:30:26,940 --> 00:30:31,210 Ајде брзо се погледне на мрежата табот тука за counter.php. 661 00:30:31,210 --> 00:30:35,090 И дозволете ми да оди напред и првиот ајде да го исчистите вашиот колачиња. 662 00:30:35,090 --> 00:30:38,670 Ајде јасно бараат податоци од на почетокот на времето. 663 00:30:38,670 --> 00:30:39,680 Сега, ајде да се вратиме овде. 664 00:30:39,680 --> 00:30:41,340 Сега ајде да ја превчитате страната. 665 00:30:41,340 --> 00:30:42,170 И јас сум назад на нула. 666 00:30:42,170 --> 00:30:44,810 Бидејќи мојата рака печат е испран, Јас сега се добие нов куки. 667 00:30:44,810 --> 00:30:48,780 >> Навистина, ако гледам во јазичето мрежа и прегледуваме одговорот заглавија, најава 668 00:30:48,780 --> 00:30:51,960 дека апаратот е ме испраќање колаче чие име е донекаде 669 00:30:51,960 --> 00:30:55,820 арбитрарно, туку вид на разумно, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 И тоа е испраќање на мене ова навистина големи случаен број. 671 00:30:58,440 --> 00:30:59,440 Тоа не е мал бројот. 672 00:30:59,440 --> 00:31:00,390 Тоа не е сосема хексадецимален. 673 00:31:00,390 --> 00:31:03,600 Тоа е некој вид на алфанумерички стринг, но се претпоставува дека тоа е случаен избор. 674 00:31:03,600 --> 00:31:06,830 А тоа е рака печат, така да зборуваат дека јас сум се однесуваат на. 675 00:31:06,830 --> 00:31:11,960 >> Во меѓувреме, ако јас кликнете Вчитај а потоа погледне во оваа втора линија за мојата втора 676 00:31:11,960 --> 00:31:17,600 барање, известување дека сега моето барање заглавја вклучуваат PHPSESSID еднаква на ова, 677 00:31:17,600 --> 00:31:19,390 не е поставена-куки, но само колаче. 678 00:31:19,390 --> 00:31:22,950 И тоа е презентација на мојот интернет пребарувач од мојата рака печат. 679 00:31:22,950 --> 00:31:28,820 >> Па сега како закачка, а ние ќе разговараме повеќе за тоа во една недела или така, но 680 00:31:28,820 --> 00:31:31,590 на кој начин го прави ова да се направи ранливи, вашиот Фејсбук профил 681 00:31:31,590 --> 00:31:34,137 ранливи, и други такви сметки ранливи? 682 00:31:34,137 --> 00:31:35,510 >> Публика: Ако некој има вашиот колаче. 683 00:31:35,510 --> 00:31:36,750 >> Дејвид MALAN: Да, ако некој има вашата колаче. 684 00:31:36,750 --> 00:31:39,920 Мислам навистина, слично како некои од вас може да се обиде на како клуб или 685 00:31:39,920 --> 00:31:44,030 забавен парк, ако се обидете нешто вака да ја копирате печат, иако 686 00:31:44,030 --> 00:31:47,560 наназад кон страна на друго лице, и тогаш тој или таа го претставува како 687 00:31:47,560 --> 00:31:53,250 свои, и ако тоа всушност изгледа идентични, 123456789, а потоа на веб 688 00:31:53,250 --> 00:31:57,980 серверот е очигледно само ќе верувам дека тој е вас. 689 00:31:57,980 --> 00:32:01,450 >> И ова е навистина фундаментален закана во секое време ви користи cookies 690 00:32:01,450 --> 00:32:05,420 затоа што ако некој само spoofs така да зборуваат вашиот куки, фигури од она што го 691 00:32:05,420 --> 00:32:08,660 е, или со вистински да го копирање од страна гледајќи во вашиот компјутер 692 00:32:08,660 --> 00:32:09,890 и се допаѓа, во ред. 693 00:32:09,890 --> 00:32:14,520 Колаче Дејвид е JJ3JIK и така натаму, а потоа тие се доволно паметни да знаат 694 00:32:14,520 --> 00:32:18,080 како да се вид на рачно испрати дека куки од прелистувачот или од 695 00:32:18,080 --> 00:32:22,350 програма тие пишуваат, тие би можеле целосно влезете во веб-сајт како и вие. 696 00:32:22,350 --> 00:32:28,560 Тоа не е тешко да се преправаме дека некој друг, освен ако ние враќате п-сет 697 00:32:28,560 --> 00:32:30,790 две, со кој се воведе што? 698 00:32:30,790 --> 00:32:32,065 >> Публика: Криптографија. 699 00:32:32,065 --> 00:32:33,860 >> Дејвид MALAN: А малку малку на криптографијата. 700 00:32:33,860 --> 00:32:36,550 Едноставна криптографијата, барем во Standard Edition, но крипто 701 00:32:36,550 --> 00:32:36,870 сеедно. 702 00:32:36,870 --> 00:32:37,410 помалку. 703 00:32:37,410 --> 00:32:41,440 Значи излегува ако криптирате сите овие заглавија користење на нешто што ќе 704 00:32:41,440 --> 00:32:48,770 сега може да знаат поголема позната како SSL, Secure Socket Layer, или https:// адреси, 705 00:32:48,770 --> 00:32:51,890 тогаш сите овие работи ние сме биле обѕрне на се, всушност, се шифрираат, 706 00:32:51,890 --> 00:32:54,800 што значи дека тоа е како да не може да прочитате страна печат. 707 00:32:54,800 --> 00:32:59,350 Само facebook.com може, или google.com, или во овој случај, апаратот може да 708 00:32:59,350 --> 00:33:00,550 Прочитав дека раката печат. 709 00:33:00,550 --> 00:33:04,020 >> Трагично иако, и повторно, ова е сите премногу е соодветно, со нешта зимскиот 710 00:33:04,020 --> 00:33:06,410 на крајот, дури и SSL е кршливи. 711 00:33:06,410 --> 00:33:09,850 А тоа е всушност не е толку тешко дури попуштат дека енкрипција. 712 00:33:09,850 --> 00:33:12,040 Не толку од пукнатини на енкрипција, но со трикови на 713 00:33:12,040 --> 00:33:15,720 прелистувачот во декрипција податоците предвреме. 714 00:33:15,720 --> 00:33:17,880 Но, повторно, ние ќе ти душманке со тоа пред долго. 715 00:33:17,880 --> 00:33:21,242 За сега, само се плаши. 716 00:33:21,242 --> 00:33:23,070 Тоа е трагично вид на вистина. 717 00:33:23,070 --> 00:33:23,760 >> Во ред е. 718 00:33:23,760 --> 00:33:27,910 Значи, каде што го прави ова сега ни остави? 719 00:33:27,910 --> 00:33:29,010 Добро, ајде да го направиме тоа. 720 00:33:29,010 --> 00:33:31,790 Ајде да одиме напред и да се земе брз закачка пред да се одмори. 721 00:33:31,790 --> 00:33:33,790 И јас мислам дека ние ќе траат малку подолго денес, но ние ќе се нурне во 722 00:33:33,790 --> 00:33:37,850 нешто сосема нови и секси, кој ќе наточи вашиот апетит за уште повеќе. 723 00:33:37,850 --> 00:33:38,950 Па тоа е закачка. 724 00:33:38,950 --> 00:33:41,520 >> Па SQL, почнавме да зборуваме за некогаш толку кратко последен пат. 725 00:33:41,520 --> 00:33:44,670 Навистина ќе ја добиете вашата раце валкани со некои од нив во p-сет седум. 726 00:33:44,670 --> 00:33:46,480 И во однос на Едноставен, она што го прави SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 направи за вас? 729 00:33:49,850 --> 00:33:50,310 Што е тоа? 730 00:33:50,310 --> 00:33:51,546 Да. 731 00:33:51,546 --> 00:33:53,240 >> ПУБЛИКАТА: Да те пристап до податоците. 732 00:33:53,240 --> 00:33:53,360 >> Дејвид MALAN: Да. 733 00:33:53,360 --> 00:33:55,120 Тоа нека ви пристап до податоци во база на податоци. 734 00:33:55,120 --> 00:33:56,710 Структурно јазик за пребарување. 735 00:33:56,710 --> 00:33:59,890 И ова е во суштина програмски јазик. 736 00:33:59,890 --> 00:34:03,400 Постојат карактеристики на тоа дека ние дури и не ќе го користи во класа. 737 00:34:03,400 --> 00:34:04,710 Но можете да ефикасно дефинираат функции. 738 00:34:04,710 --> 00:34:06,870 Тие се наречени чуваат процедури во SQL. 739 00:34:06,870 --> 00:34:09,860 Но, ние ќе го задржи прилично едноставен и само користат за некои основни операции 740 00:34:09,860 --> 00:34:14,320 како избирање на податоци, внесување на податоците, ажурирање на податоци, и бришење на податоци. 741 00:34:14,320 --> 00:34:17,400 >> И навистина може да се мисли на базата на податоци, како SQL база на податоци, како само 742 00:34:17,400 --> 00:34:18,800 се Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Бидејќи SQL однесува на релациона база на податоци, каде што 744 00:34:21,989 --> 00:34:23,480 однос само значи маси. 745 00:34:23,480 --> 00:34:24,739 Редови и колони. 746 00:34:24,739 --> 00:34:27,929 Така нешто што може да се стави во табела вака или Google Docs, 747 00:34:27,929 --> 00:34:32,460 може да се стави во SQL база на податоци со декларирање на табелата. 748 00:34:32,460 --> 00:34:34,800 >> Сега, како вие всушност пристап таа информација? 749 00:34:34,800 --> 00:34:38,239 Па, со команди или прашања, како ова. 750 00:34:38,239 --> 00:34:40,199 Одберете, ставете, ажурирање и бришење. 751 00:34:40,199 --> 00:34:44,489 И во најголем дел, тие се четири само состојки ќе треба да се 752 00:34:44,489 --> 00:34:47,370 направи нешто сосема силно во проблемот постави седум. 753 00:34:47,370 --> 00:34:49,940 >> Сега назад во текот на денот, ќе всушност комуницирате со базата на податоци во 754 00:34:49,940 --> 00:34:52,730 црно и бело терминален прозорец на трепка брзо како овој. 755 00:34:52,730 --> 00:34:56,370 И базата на податоци ние сме се извршува на апаратот се нарекува MySQL, кој е 756 00:34:56,370 --> 00:34:58,560 слободен и софтвер со отворен код база на податоци моторот. 757 00:34:58,560 --> 00:35:02,240 Ако на Google и читање на Википедија член, ќе знаеш дека името е 758 00:35:02,240 --> 00:35:05,060 малку на транзицијата за некои верзии на Linux. 759 00:35:05,060 --> 00:35:10,460 Марија база на податоци е всушност вилушка, па да се зборува за MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Скратам приказната, Oracle купи MySQL. 761 00:35:12,740 --> 00:35:13,870 Oracle е голема компанија. 762 00:35:13,870 --> 00:35:17,010 Луѓето се загрижени дека тоа би веќе не остане толку отворен код, 763 00:35:17,010 --> 00:35:20,930 па ова е само копија на MySQL тоа е уште е бесплатно, сепак со отворен код, и 764 00:35:20,930 --> 00:35:23,550 инсталирани во Fedora Linux стандардно. 765 00:35:23,550 --> 00:35:26,130 >> Но, ова е вид на болка во вратот да се запознаат со 766 00:35:26,130 --> 00:35:27,310 база на податоци на овој начин. 767 00:35:27,310 --> 00:35:30,560 Значи ние се вклучат во CS50 апаратот бесплатен софтвер со отворен код алатка наречена 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Само коинциденција што тоа е напишана во PHP. 770 00:35:33,940 --> 00:35:36,450 Нема основните треба за PHP тука. 771 00:35:36,450 --> 00:35:40,090 Но, ова е само еден веб-базирана алатка која ние се симне бесплатно, инсталирани во 772 00:35:40,090 --> 00:35:43,850 апаратот, која ни овозможува да имаат графички кориснички интерфејс со кој 773 00:35:43,850 --> 00:35:48,610 да се истражуваат п-собата седум база на податоци со нив да се создаде нови бази на податоци, 774 00:35:48,610 --> 00:35:51,980 велат за вашата завршен проект ако сакате како, и на крајот се создаде 775 00:35:51,980 --> 00:35:55,900 динамична веб-сајтови како CS50 финансии кои ќе ви овозможи да се пребарува на податоци и 776 00:35:55,900 --> 00:35:58,140 ажурирање на податоците динамично. 777 00:35:58,140 --> 00:36:01,420 >> Вие нема да мора да ја користи само едноставна текстуална датотека или CSV. 778 00:36:01,420 --> 00:36:05,950 Можете да го користите паметна база на податоци програма, така што ќе може да се изврши повеќе 779 00:36:05,950 --> 00:36:10,240 софистицирани прашања отколку само читање преку сè линеарно. 780 00:36:10,240 --> 00:36:14,150 >> Така на пример, ова е она што го даде сте надвор од кутијата за p-сет седум. 781 00:36:14,150 --> 00:36:18,280 Ова е табела со очигледно најмалку три колони, од кои еден е 782 00:36:18,280 --> 00:36:21,450 корисничко име, од кои една е хаш, и други од кои е ID. 783 00:36:21,450 --> 00:36:26,200 >> Но интересна работа, и само за да размрси коренсподенцијата една мисла тука, корисничко име 784 00:36:26,200 --> 00:36:29,270 е веројатно веќе уникатни, нели? 785 00:36:29,270 --> 00:36:31,190 Мислам, повеќето секој веб-сајт, ако имате корисничко име, таму 786 00:36:31,190 --> 00:36:32,370 не може да биде два Цезар. 787 00:36:32,370 --> 00:36:33,440 Не може да има два malans. 788 00:36:33,440 --> 00:36:34,950 Не може да има два jharvards. 789 00:36:34,950 --> 00:36:35,600 Својата единствена. 790 00:36:35,600 --> 00:36:38,610 Инаку, тие не знаат што jharvard што всушност е. 791 00:36:38,610 --> 00:36:42,710 Значи она што може да биде мотивација за, исто така, има третата колона на левата 792 00:36:42,710 --> 00:36:46,970 таму се нарекува проект, кој изгледа како број кој е сличен уникатен? 793 00:36:46,970 --> 00:36:51,300 Таа се чувствува малку излишни за мене во прв поглед. 794 00:36:51,300 --> 00:36:54,910 Зошто тоа би можело да биде огромна за да имаат не само уникатен кориснички имиња, 795 00:36:54,910 --> 00:36:56,837 но исто така уникатен броеви? 796 00:36:56,837 --> 00:36:59,460 >> ПУБЛИКАТА: Тие би можеле да имаат истата лозинка. 797 00:36:59,460 --> 00:37:01,720 >> Дејвид MALAN: Луѓето би можеле да имаат истата лозинка, секако. 798 00:37:01,720 --> 00:37:03,900 Дека апсолутно може да се случи. 799 00:37:03,900 --> 00:37:08,270 Но, ако тие имаат овој уникатен корисничко име, Јас би рекле дека тоа навистина не 800 00:37:08,270 --> 00:37:11,630 прашање, бидејќи ако тие тип во нивните корисничко име, јас само треба да се провери нивната 801 00:37:11,630 --> 00:37:15,060 лозинка, нивните хаш него. 802 00:37:15,060 --> 00:37:15,970 Зошто инаку? 803 00:37:15,970 --> 00:37:17,950 >> ПУБЛИКАТА: Побрзо пребарување. 804 00:37:17,950 --> 00:37:18,680 >> Дејвид MALAN: Побрзо пребарување. 805 00:37:18,680 --> 00:37:19,548 Зошто? 806 00:37:19,548 --> 00:37:21,460 >> Публика: ID е само еден. 807 00:37:21,460 --> 00:37:24,040 >> Дејвид MALAN: ID е само еден карактер, или да бидам попрецизен, тоа е голем број, 808 00:37:24,040 --> 00:37:26,910 така што е веројатно 32 бита или нешто слично. 809 00:37:26,910 --> 00:37:30,270 Со оглед на тоа корисничко име, очигледно Џејсон Hirschhorn е таму горе е вид на 810 00:37:30,270 --> 00:37:33,900 смешно долго, и тоа се случува да да ме многу повеќе време да стринг 811 00:37:33,900 --> 00:37:40,910 споредуваат H-I-R-S-C-H-H-O-R-N, и можеби А / 0 или нешто слично, со цел 812 00:37:40,910 --> 00:37:45,100 да се погледне до Џејсон, што е спротивно на само велејќи ми даде кориснички број два. 813 00:37:45,100 --> 00:37:46,510 Тоа е 32 бита. 814 00:37:46,510 --> 00:37:48,550 Тоа е една ИНТ дека што треба да се споредуваат. 815 00:37:48,550 --> 00:37:52,150 И навистина, тоа е токму зошто бази на податоци имаат тенденција да се додели единствена лични карти да 816 00:37:52,150 --> 00:37:53,710 редови во нив. 817 00:37:53,710 --> 00:37:56,280 >> Сега што други типови на податоци се таму Покрај ИНТ и очигледно 818 00:37:56,280 --> 00:37:57,160 жици вака? 819 00:37:57,160 --> 00:37:59,700 Па, да бидам повеќе правилно, SQL бази на податоци, како и 820 00:37:59,700 --> 00:38:02,060 MySQL, имаат знак полиња. 821 00:38:02,060 --> 00:38:05,320 И знак малку погрешно не е еден знак. 822 00:38:05,320 --> 00:38:10,290 А знак поле во MySQL база на податоци е една или повеќе карактери, но тоа е 823 00:38:10,290 --> 00:38:11,780 фиксен број на карактери. 824 00:38:11,780 --> 00:38:15,710 >> Така на пример, ако одам во текот на phpMyAdmin како може да имате веќе, или 825 00:38:15,710 --> 00:38:21,340 наскоро ќе биде проблем постави седум, а јас одам да ми база на податоци, и само за забава, 826 00:38:21,340 --> 00:38:25,700 ајде да креирате нова табела наречена ги тестираат со само две колони. 827 00:38:25,700 --> 00:38:27,160 Јас тогаш ќе кликнете на Оди. 828 00:38:27,160 --> 00:38:30,070 И тоа ќе стане прилично запознаен, особено како да нескопосник 829 00:38:30,070 --> 00:38:31,130 околу тоа на своја. 830 00:38:31,130 --> 00:38:34,140 Еве јас може да се тип проект да се создаде нова табела на видот INT. 831 00:38:34,140 --> 00:38:37,770 Но, тука би можел да напишеш корисничко име да рекреираат дека порано табела. 832 00:38:37,770 --> 00:38:40,700 И ќе забележите Имам цел куп на типови да изберете од. 833 00:38:40,700 --> 00:38:43,610 >> И тоа исто така е зошто phpMyAdmin е вид на убаво. 834 00:38:43,610 --> 00:38:46,770 Тоа е вид на авто-учење во кој ќе може само вид на точка и клик, и 835 00:38:46,770 --> 00:38:50,730 погледне во паѓачкото мени, и заклучиме од дека она што овластувањата SQL ти дава. 836 00:38:50,730 --> 00:38:54,090 >> И, навистина, ако изберам знак, јас тогаш мора да се специфицира должината, или како 837 00:38:54,090 --> 00:38:55,940 многу вредности, колку карактери. 838 00:38:55,940 --> 00:39:00,090 Толку многу заеднички вредности се работи како 255, но тоа е малку долго. 839 00:39:00,090 --> 00:39:02,250 Најчесто е осум за корисничко име. 840 00:39:02,250 --> 00:39:03,590 Но, тоа е малку мала, овие денови. 841 00:39:03,590 --> 00:39:05,430 Значи ова е дизајн одлука. 842 00:39:05,430 --> 00:39:08,630 Тоа е максимум 8 карактери, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Тоа е навистина зависи од вас. 844 00:39:09,830 --> 00:39:12,350 Но знак поле не е фиксен број. 845 00:39:12,350 --> 00:39:16,420 Па изберете премалку и сте вид на зезнав ако сакате подолг корисничко име. 846 00:39:16,420 --> 00:39:19,132 Изберете премногу и она што е Во надолна линија? 847 00:39:19,132 --> 00:39:20,820 >> ПУБЛИКАТА: [нечујни]. 848 00:39:20,820 --> 00:39:21,620 >> Дејвид MALAN: Тоа е непотребното. 849 00:39:21,620 --> 00:39:24,835 Исто како и во C, ако имате поголем парче меморија отколку што треба, вие сте 850 00:39:24,835 --> 00:39:27,190 само губат време и да губат простор. 851 00:39:27,190 --> 00:39:31,430 Па како алтернатива, постои VARCHAR, која го решава овој проблем од страна на 852 00:39:31,430 --> 00:39:36,390 лекување должина не како со фиксна должина, но како максимална должина, и со помош на 853 00:39:36,390 --> 00:39:40,990 променлива број на карактери, кои потоа има тенденција да се користи само како многу знаци што 854 00:39:40,990 --> 00:39:42,710 всушност треба. 855 00:39:42,710 --> 00:39:43,670 Тоа звучи совршено. 856 00:39:43,670 --> 00:39:45,640 >> Зошто не можеме да се ослободи од Знак тип на податоци, тогаш? 857 00:39:45,640 --> 00:39:48,500 Што може да биде во надолна линија на користење VARCHARs, што звучи 858 00:39:48,500 --> 00:39:51,644 како тоа е убаво победа? 859 00:39:51,644 --> 00:39:52,596 Да? 860 00:39:52,596 --> 00:39:53,846 >> ПУБЛИКАТА: [нечујни]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> Дејвид MALAN: Добро, добро. 863 00:39:57,790 --> 00:40:01,101 Значи, ако сите на вашите податоци е исто должина, што е загриженост? 864 00:40:01,101 --> 00:40:05,250 >> ПУБЛИКАТА: Бидејќи ти си губи податоци од страна кажувам сите нив. 865 00:40:05,250 --> 00:40:09,060 >> Дејвид MALAN: Значи, ако сите на вашите податоци е со иста должина, сепак, јас би рекол 866 00:40:09,060 --> 00:40:12,300 дека специфицирање максимална должина на VARCHAR не се разликува од 867 00:40:12,300 --> 00:40:16,070 одредување на фиксна должина на знак, ако знаеш дека бројот однапред. 868 00:40:16,070 --> 00:40:19,500 Но, постои навистина, и јас ќе вид на екстракт од тој одговор реалноста 869 00:40:19,500 --> 00:40:22,610 тоа е уште постои Макс, кои би можеле да да биде здодевна, особено ако 870 00:40:22,610 --> 00:40:25,920 се судрите со името на лицето што е невообичаено долго што не сте 871 00:40:25,920 --> 00:40:26,860 предвиди. 872 00:40:26,860 --> 00:40:31,420 И тоа е, исто така, малку помалку ефикасни за да всушност пребарувате на VARCHARs како 873 00:40:31,420 --> 00:40:35,620 за разлика од пребарувањето карактери, особено за долги маси, кои имаат многу и 874 00:40:35,620 --> 00:40:36,510 многу податоци. 875 00:40:36,510 --> 00:40:40,060 Значи и тука, тематски е повторно нема очигледен избор. 876 00:40:40,060 --> 00:40:42,870 >> Па само да ви даде чувство на други типови на податоци кои би можеле да бидат од интерес 877 00:40:42,870 --> 00:40:45,400 или за p-сет седум или во иднина, има Int. 878 00:40:45,400 --> 00:40:47,270 Има BIGINT, која е како долго долго. 879 00:40:47,270 --> 00:40:48,880 Тоа се стреми да биде 64 бита. 880 00:40:48,880 --> 00:40:51,640 Има децимали, кој ќе ја видите во проблемот сет, што е многу 881 00:40:51,640 --> 00:40:55,300 почиста одговор на проблемите со кои се се сретнал со плови и лебди 882 00:40:55,300 --> 00:40:55,980 точка непрецизност. 883 00:40:55,980 --> 00:40:57,390 А потоа, тука е DATETIME. 884 00:40:57,390 --> 00:41:01,530 Има буквално податочен тип кој има да изгледаат како една година, еден месец, еден ден, 885 00:41:01,530 --> 00:41:03,730 и еден час, минута, и второ. 886 00:41:03,730 --> 00:41:07,470 >> Но SQL бази на податоци, исто така, имаат работи ќе го наречеме индекси. 887 00:41:07,470 --> 00:41:11,630 И индекс е нешто што можете наведете при создавањето на маса за да 888 00:41:11,630 --> 00:41:15,720 направи пребарувања и други операции поефикасно. 889 00:41:15,720 --> 00:41:18,550 Поточно, има нешто што се нарекува Примарната индекс, кој можете да 890 00:41:18,550 --> 00:41:19,440 декларираат како што следи. 891 00:41:19,440 --> 00:41:22,330 >> Ние го направи ова за вас со корисници табелата ние ви даде. 892 00:41:22,330 --> 00:41:26,160 Но известување, ако јас се рачно Пресоздавањето корисниците табела тука, им 893 00:41:26,160 --> 00:41:27,110 тоа име на корисници. 894 00:41:27,110 --> 00:41:28,125 Јас веќе одреден проект. 895 00:41:28,125 --> 00:41:29,330 Јас наведени Int. 896 00:41:29,330 --> 00:41:32,000 Јас наведени корисничко име со максимум 32 карактери. 897 00:41:32,000 --> 00:41:36,140 Но, ако ние ги лизгање во оваа прилично широк прозорец, најава има 898 00:41:36,140 --> 00:41:38,260 куп други нешта што може да се определи. 899 00:41:38,260 --> 00:41:40,950 >> Еден, можам да наведете атрибути како, знаеш што, оваа 900 00:41:40,950 --> 00:41:42,190 ИНТ треба да биде потпишан. 901 00:41:42,190 --> 00:41:45,510 Не сакам негативни броеви, па ајде да ја направат е потпишан. 902 00:41:45,510 --> 00:41:48,660 Нула не е релевантен, бидејќи тука Јас сакам секој корисник да 903 00:41:48,660 --> 00:41:49,640 имаат единствена број. 904 00:41:49,640 --> 00:41:50,830 Не сакам тоа да биде нула. 905 00:41:50,830 --> 00:41:52,330 >> Но, ова е интересно. 906 00:41:52,330 --> 00:41:57,780 Можам да се каже дека проект е или примарниот клуч на оваа база на податоци, или тоа е 907 00:41:57,780 --> 00:42:00,620 уникатен, или тоа е индексирани, или целосниот текст. 908 00:42:00,620 --> 00:42:05,630 Така и за цели денес, долга приказна Накусо, ПРИМАРНА значи дека ова ќе 909 00:42:05,630 --> 00:42:10,570 биде и концептуално и технички поле кои се користат за уникатно 910 00:42:10,570 --> 00:42:12,140 идентификуваат корисниците. 911 00:42:12,140 --> 00:42:16,140 >> Па кога ќе се погледне нагоре на корисниците, ова е вид на ветување да ги гледам нагоре во најголем дел од 912 00:42:16,140 --> 00:42:17,370 дека единствен идентификатор. 913 00:42:17,370 --> 00:42:21,930 И базата на податоци ќе се осигура дека ако имаат кориснички број 3, не можете да 914 00:42:21,930 --> 00:42:25,400 физички внесете друг корисник со тоа истиот број 3. 915 00:42:25,400 --> 00:42:28,380 База на податоци само ќе одбие да ги зачувате вашите промени. 916 00:42:28,380 --> 00:42:32,310 Што е добра работа, бидејќи можете да се заштитат себе си од себе. само 917 00:42:32,310 --> 00:42:34,270 >> Алтернативно, за корисничко име. 918 00:42:34,270 --> 00:42:37,670 Па вториот ред, да се потсетиме, е областа на корисничко име. 919 00:42:37,670 --> 00:42:41,860 Па вториот ред тука е корисничко име, како што го направивме на многу лево таму. 920 00:42:41,860 --> 00:42:43,940 >> Па што друго би можеле Сакам да го одредите? 921 00:42:43,940 --> 00:42:47,840 Не ми е дозволено, според SQL, да се определи две основни клучеви. 922 00:42:47,840 --> 00:42:50,750 можете да наведете еден заеднички клучните каде што погледне во двете полиња, но тие не можат 923 00:42:50,750 --> 00:42:52,260 поединечно да бидат примарни клучеви. 924 00:42:52,260 --> 00:42:54,750 Па тоа е надвор од прашање. 925 00:42:54,750 --> 00:42:56,040 Така што може да сакам да се избере? 926 00:42:56,040 --> 00:42:59,710 >> Добро, уникатен е слични во духот на примарен клуч, каде што ќе се определи ова 927 00:42:59,710 --> 00:43:03,570 поле ќе биде уникатен, но тоа е нема да биде една 928 00:43:03,570 --> 00:43:04,410 Јас го користам цело време. 929 00:43:04,410 --> 00:43:08,450 И ние нема да го користите овој еден сите време за што причина повторно? 930 00:43:08,450 --> 00:43:10,490 Тоа е побавен потенцијално ако тоа е долго корисничко име. 931 00:43:10,490 --> 00:43:11,740 Тоа е само губење на време. 932 00:43:11,740 --> 00:43:16,140 >> Индекс, пак, наведува дека тоа е нема да биде уникатен, но јас би сакал 933 00:43:16,140 --> 00:43:19,470 да работат својата магија под качулка да се направи тоа побрзо за мене да 934 00:43:19,470 --> 00:43:21,420 пребарување на ова поле. 935 00:43:21,420 --> 00:43:23,320 Така што ова веројатно не е релевантно тука. 936 00:43:23,320 --> 00:43:26,500 За корисничко име, јас би рекол дека Уникатен е добар одговор. 937 00:43:26,500 --> 00:43:31,200 Но, претпоставувам дека ние направивме корисниците повеќе Интересно од само кориснички имиња, 938 00:43:31,200 --> 00:43:32,430 хашови, и ID броеви. 939 00:43:32,430 --> 00:43:33,860 Што ако ние даде луѓе со име и презиме? 940 00:43:33,860 --> 00:43:37,700 Што ако ние им го дадовме адреси и други податоци за нив? 941 00:43:37,700 --> 00:43:43,360 >> Па, ако се каже дека колона во база на податоци се индексира, тоа значи дека 942 00:43:43,360 --> 00:43:47,730 MySQL, или Oracle, или што и база на податоци што го користите, треба да работат својата магија 943 00:43:47,730 --> 00:43:51,300 и употреба на некои вид на фенси податоци структура како дрво, или TRIE, или 944 00:43:51,300 --> 00:43:55,940 хаш табелата, или нешто да се гарантира дека кога ќе пребарување за податоци со користење 945 00:43:55,940 --> 00:43:58,150 изберете на кој одредена област - 946 00:43:58,150 --> 00:44:01,310 како мене покаже на сите дека живее на Оксфорд Стрит. 947 00:44:01,310 --> 00:44:02,540 А за пребарување како што. 948 00:44:02,540 --> 00:44:06,250 Ако имаш специфицирано во однапред дека сакаш индекс на тоа поле, на 949 00:44:06,250 --> 00:44:09,050 пребарувања ќе биде многу, многу побрзо. 950 00:44:09,050 --> 00:44:12,090 >> Ако не специфицирате индекс, најдобар можете да го направите е линеарно пребарување ако 951 00:44:12,090 --> 00:44:13,030 тоа не е сортирана. 952 00:44:13,030 --> 00:44:16,220 Но ако се определи Индекс, паметни лицата кои се во базата на податоци - 953 00:44:16,220 --> 00:44:19,340 луѓе како тебе кои сега знаеме дрвја и се обидува и хаш маси - 954 00:44:19,340 --> 00:44:23,220 автоматски ќе се изгради таков податоци структура во RAM за да бидете сигурни дека 955 00:44:23,220 --> 00:44:26,050 оние пребарувања се многу побрзо. 956 00:44:26,050 --> 00:44:29,660 >> Fulltext меѓувреме е сличен со духот, но ви овозможува да направите маска 957 00:44:29,660 --> 00:44:35,480 пребарувања, како мене покаже на сите дека живее во улиците кои започнуваат со 958 00:44:35,480 --> 00:44:36,960 Буквата О било причина. 959 00:44:36,960 --> 00:44:38,850 Можете да го направите маска пребарувања како што. 960 00:44:38,850 --> 00:44:45,880 Или, повеќе привлечни работи како шоу мене секој кој има зборот - 961 00:44:45,880 --> 00:44:49,400 покажи ми секој чие име почнува со одредена буква. 962 00:44:49,400 --> 00:44:51,880 Можете да пребарувате за клучни зборови на овој начин. 963 00:44:51,880 --> 00:44:52,630 Во ред е. 964 00:44:52,630 --> 00:44:55,760 >> Значи, дизајн можности има потенцијално. 965 00:44:55,760 --> 00:44:57,740 Има и други кои јас ќе бранува моите раце во. 966 00:44:57,740 --> 00:45:00,530 Излезе дека можете да имате различни складирање мотори. 967 00:45:00,530 --> 00:45:04,390 И ова е повеќе arcane отколку што треба секако за проблемот постави седум. 968 00:45:04,390 --> 00:45:06,920 По дифолт, вие момци се користат нешто што се нарекува InnoDB. 969 00:45:06,920 --> 00:45:10,910 Ќе видите споменување на овој некаде во интерфејс phpMyAdmin, најверојатно. 970 00:45:10,910 --> 00:45:14,130 Но знам дека постојат и други дизајн одлуки кои се потенцијални 971 00:45:14,130 --> 00:45:18,030 интерес да дојде финалето проекти, доколку ќе се направи нешто на веб-базирана. 972 00:45:18,030 --> 00:45:19,330 >> Но, ајде да го направиме тоа. 973 00:45:19,330 --> 00:45:23,130 Ајде да одиме напред и да се стави ова на екранот, како закачка за приказна 974 00:45:23,130 --> 00:45:26,330 вклучувајќи вас, цимер, и една чаша млеко. 975 00:45:26,330 --> 00:45:28,240 Ајде да ги две минути или па се скрши тука. 976 00:45:28,240 --> 00:45:31,060 И ако може да се држи околу, да се назад, погледнете малку повеќе на SQL и 977 00:45:31,060 --> 00:45:35,160 потоа малку го вклучите Javascript-со P-постави осум во умот. 978 00:45:35,160 --> 00:45:36,120 >> Во ред е. 979 00:45:36,120 --> 00:45:40,420 Значи, ајде да мислиш за агол случај дека многу лесно може да се појават 980 00:45:40,420 --> 00:45:44,240 во контекст на користење на базата на податоци, или искрено, дури и со користење реалниот свет работи 981 00:45:44,240 --> 00:45:46,280 како банкомати да добијат пари. 982 00:45:46,280 --> 00:45:47,640 Па тука е фрижидер. 983 00:45:47,640 --> 00:45:50,040 Да претпоставиме дека имаш еден премногу во вашиот dorm или вашата куќа. 984 00:45:50,040 --> 00:45:54,990 И имаш еден цимер, и двете од навистина ви се допаѓа млеко на пример. 985 00:45:54,990 --> 00:45:57,210 >> Па ќе дојдеш дома од класа еден ден. 986 00:45:57,210 --> 00:45:58,490 Тој или таа не е уште назад. 987 00:45:58,490 --> 00:45:59,180 Ќе го отворите фрижидерот. 988 00:45:59,180 --> 00:46:00,870 Навистина сакате голема чаша млеко. 989 00:46:00,870 --> 00:46:01,820 Нема млеко. 990 00:46:01,820 --> 00:46:02,920 Значи она што го правиш? 991 00:46:02,920 --> 00:46:03,840 Ќе го затворите фрижидерот. 992 00:46:03,840 --> 00:46:04,670 Ќе имате своја клучеви. 993 00:46:04,670 --> 00:46:05,930 Да излезеш на плоштадот. 994 00:46:05,930 --> 00:46:09,240 И ќе добиете во линија на CVS на оние само исходот нешта, кои секогаш 995 00:46:09,240 --> 00:46:11,180 трае подолго отколку всушност има касиери. 996 00:46:11,180 --> 00:46:11,820 Во секој случај. 997 00:46:11,820 --> 00:46:15,490 >> Па тогаш, во меѓувреме, точка точка точка, вашиот цимер доаѓа дома и тој или таа 998 00:46:15,490 --> 00:46:17,440 Слично има копнеж за малку млеко. 999 00:46:17,440 --> 00:46:20,380 Па тој или таа се отвора фрижидерот, изгледа внатре, и ох, гајле. 1000 00:46:20,380 --> 00:46:21,160 Нема млеко. 1001 00:46:21,160 --> 00:46:24,750 Па тој или таа поаѓа, се случува да се обратите на други CVS, што е само 1002 00:46:24,750 --> 00:46:27,900 блокира далеку поради некоја причина, и тој или таа добива во ред за да купат млеко. 1003 00:46:27,900 --> 00:46:30,480 >> Во меѓувреме, ќе дојдеш дома, тој или таа доаѓа дома, и она што го прават 1004 00:46:30,480 --> 00:46:31,980 што во крајна линија имаат? 1005 00:46:31,980 --> 00:46:33,080 Двојно повеќе млеко. 1006 00:46:33,080 --> 00:46:34,620 Но, вие не навистина ми се допаѓа млеко тоа многу. 1007 00:46:34,620 --> 00:46:37,300 Така, сега имате толку многу млеко кое сега еден од нив е само ќе одиме во кисела 1008 00:46:37,300 --> 00:46:37,820 на крајот. 1009 00:46:37,820 --> 00:46:39,370 Значи ова е навистина лоша проблем. 1010 00:46:39,370 --> 00:46:39,900 Нели? 1011 00:46:39,900 --> 00:46:41,990 >> Значи она што се случило? 1012 00:46:41,990 --> 00:46:44,810 Значи во основа, ова е вид на смешно пример. 1013 00:46:44,810 --> 00:46:48,580 Но под хаубата, она што го имаше се случи тука е и од вас проверува 1014 00:46:48,580 --> 00:46:52,390 состојбата на некои парче на меморија, фрижидер. 1015 00:46:52,390 --> 00:46:54,420 Двете од вас проверуваат државата на некои променлива. 1016 00:46:54,420 --> 00:46:57,360 И двајцата извлече заклучок кои потоа ќе постапи натаму. 1017 00:46:57,360 --> 00:47:01,420 Но, за жал, додека вашиот цимер беше во продавницата, државата на која 1018 00:47:01,420 --> 00:47:05,670 променлива промени, тој или таа се врати а сега сака да ја смени држава, но 1019 00:47:05,670 --> 00:47:07,480 тоа е веќе изменет на него или неа. 1020 00:47:07,480 --> 00:47:11,120 И, се разбира, тој или таа нема да имаат качил до продавница ако знаеле 1021 00:47:11,120 --> 00:47:13,010 дека сте биле веќе на пат. 1022 00:47:13,010 --> 00:47:16,430 >> Така и во реалниот свет, како може да ви избегне овој проблем, претпоставувајќи дека имате 1023 00:47:16,430 --> 00:47:18,940 фрижидер, имате цимер, и ти всушност се допаѓа млеко? 1024 00:47:18,940 --> 00:47:19,760 >> ПУБЛИКАТА: Комуницирање. 1025 00:47:19,760 --> 00:47:20,580 >> Дејвид MALAN: Комуницирање. 1026 00:47:20,580 --> 00:47:21,160 OK. 1027 00:47:21,160 --> 00:47:22,500 Но, како може да ви се причестиш? 1028 00:47:22,500 --> 00:47:23,990 >> ПУБЛИКАТА: Оставете белешка. 1029 00:47:23,990 --> 00:47:25,480 >> Дејвид MALAN: Оставете белешка, нели? 1030 00:47:25,480 --> 00:47:28,025 Секогаш оставете белешка, за навивачите на шоуто. 1031 00:47:28,025 --> 00:47:31,580 Добро, така што секогаш ќе остават порака или стави навистина како катанец или нешто 1032 00:47:31,580 --> 00:47:35,440 на фрижидер што ги држи вашиот цимер од контрола на државата на 1033 00:47:35,440 --> 00:47:36,540 таа променлива. 1034 00:47:36,540 --> 00:47:40,800 >> Сега, зошто би можеле ова да биде germane да Проблемот постави седум или да банкомати. 1035 00:47:40,800 --> 00:47:46,780 Па, замисли свет во банкомат каде може да биде во можност да одат до банкомат 1036 00:47:46,780 --> 00:47:48,920 машина тука, а друг банкомат тука. 1037 00:47:48,920 --> 00:47:50,680 И ова се случува доста често. 1038 00:47:50,680 --> 00:47:54,150 И да претпоставиме дека имаше две банкомат картички, што е можно за да се добие. 1039 00:47:54,150 --> 00:47:57,420 И ќе влезете во двете машини ефикасно истовремено, се надевам дека 1040 00:47:57,420 --> 00:47:58,660 Иако никој не гледа. 1041 00:47:58,660 --> 00:48:01,260 И тогаш ќе внесете го вашиот PIN приближно истовремено. 1042 00:48:01,260 --> 00:48:06,280 А потоа ќе се направи рамнотежа пребарување да видите колку пари имате. 1043 00:48:06,280 --> 00:48:08,920 И ајде да речеме дека имате 100 $ лево во вашиот профил. 1044 00:48:08,920 --> 00:48:13,310 Значи во суштина истовремено, велат едно, нула, нула, влезе. 1045 00:48:13,310 --> 00:48:16,000 И ќе се надевам да се вратам на некои пари. 1046 00:48:16,000 --> 00:48:18,440 >> Но колку пари може да ви се вратам? 1047 00:48:18,440 --> 00:48:21,710 Сега компјутери на крајот на денот, особено ако тие се зборува за 1048 00:48:21,710 --> 00:48:27,360 сервери, не мора да се прават работите во цел дека се очекува. 1049 00:48:27,360 --> 00:48:30,860 >> Па претпоставувам што се случува, бидејќи на што брзината на мрежата прашања има 1050 00:48:30,860 --> 00:48:34,530 се, или процесорот прашања постојат, или нешто слично, да претпоставиме дека 1051 00:48:34,530 --> 00:48:38,530 првиот банкомат ја проверува вашата рамнотежа и гледа, ах, овој човек има 100 $. 1052 00:48:38,530 --> 00:48:41,840 Но, тогаш се расејува, бидејќи можеби резерви се случува и затоа е 1053 00:48:41,840 --> 00:48:42,500 забавување. 1054 00:48:42,500 --> 00:48:45,080 Или можеби додека проверка, мрежата врска доби малку побавно, бидејќи 1055 00:48:45,080 --> 00:48:45,910 ова едноставно се случува. 1056 00:48:45,910 --> 00:48:47,100 Тие се физички уреди. 1057 00:48:47,100 --> 00:48:49,330 Па во меѓувреме, вториот АТМ е прашуваат истото прашање. 1058 00:48:49,330 --> 00:48:53,030 Колку пари се Дејвид имаат? 100 $ е одговорот. 1059 00:48:53,030 --> 00:48:58,930 Но, бидејќи првиот банкомат се уште не испрати порака одземе $ 100, и 1060 00:48:58,930 --> 00:49:03,000 Банкомати имаат прегледано свод на банката, види таму е 100 $ таму, и сега 1061 00:49:03,000 --> 00:49:07,160 двете машини потенцијално се ќе плукаат одговор. 1062 00:49:07,160 --> 00:49:12,240 >> Сега, ова е одлично за вас во извесна смисла ако она што банката го прави на крајот 1063 00:49:12,240 --> 00:49:17,200 е промена на износот до минус 100 од поставување на променлива еднаква на твојот 1064 00:49:17,200 --> 00:49:21,570 банкарска сметка е еднаква на 0, што е спротивно да прави минус 100. 1065 00:49:21,570 --> 00:49:24,410 Сега во најлош случај за банката - 1066 00:49:24,410 --> 00:49:27,470 или во најдобра за банката, пак, тие ви даде $ 200, и 1067 00:49:27,470 --> 00:49:31,690 вашата банкарска сметка сега покажува негативни 100 $, која навистина не е така 1068 00:49:31,690 --> 00:49:32,950 може да ви корист на сите. 1069 00:49:32,950 --> 00:49:36,500 Но поентата е во тоа што оваа трка услов за две цимерите добивање 1070 00:49:36,500 --> 00:49:40,660 млеко, или за две банкомати се обидува да добие пари и промена на состојба на свод 1071 00:49:40,660 --> 00:49:44,510 во исто време постои ниту време имаш базата на податоци. 1072 00:49:44,510 --> 00:49:48,290 >> Сега во проблем постави седум, ова прашање се појавува во смисла дека ако се купи 1073 00:49:48,290 --> 00:49:52,110 удел на акции Фејсбук, а потоа за пример ќе купите втор дел од 1074 00:49:52,110 --> 00:49:55,160 Акциите на Фејсбук, што треба да направите одлука како програмер. 1075 00:49:55,160 --> 00:49:58,710 Со цел да одлучат како да се ажурираат база на податоци, шансите се сте ќе треба да 1076 00:49:58,710 --> 00:50:02,250 имаат еден ред дека акциите, и тоа е еден начин да се имплементира. 1077 00:50:02,250 --> 00:50:06,640 И ви се случува да имаат една акција од FB, кој е нивните акции симбол 1078 00:50:06,640 --> 00:50:10,120 за оваа корисничко име, или овој корисник Проект, единствен идентификатор. 1079 00:50:10,120 --> 00:50:12,340 >> Но истата приказна може да се случи тука. 1080 00:50:12,340 --> 00:50:15,800 Ако се направи Избери во SQL, како што ќе видите во проблемот постави седум, кога ќе видите, 1081 00:50:15,800 --> 00:50:18,460 ох, Дејвид има една акција на акции Фејсбук. 1082 00:50:18,460 --> 00:50:23,240 А сега допуштете ми се промени тоа да биде две акции, бидејќи тој сака да купи 1083 00:50:23,240 --> 00:50:24,120 Вториот акција. 1084 00:50:24,120 --> 00:50:27,860 Но, претпоставувам Дејвид всушност имале две прозорци на пребарувачот се отвори, или да претпоставиме дека 1085 00:50:27,860 --> 00:50:32,150 тоа е заедничка сметка со двајцата брачни другари, и двете од нив се обидуваат да се изврши 1086 00:50:32,150 --> 00:50:36,770 истата операција, има, исто така, на постои потенцијал за одлуката да биде 1087 00:50:36,770 --> 00:50:39,670 врши врз основа на претходниот состојбата на светот - 1088 00:50:39,670 --> 00:50:41,290 сметка има една акција - 1089 00:50:41,290 --> 00:50:45,630 и двете лица, или и двете сервери, сега обидете се да се каже прираст до две акции. 1090 00:50:45,630 --> 00:50:49,020 Но, во овој случај, можеби сте обвинети мене пари и акции, но 1091 00:50:49,020 --> 00:50:50,830 зголемува само дека едно време. 1092 00:50:50,830 --> 00:50:54,730 >> Значи во кратки, основниот проблем тука, како и со вицот за оставање на 1093 00:50:54,730 --> 00:50:58,750 белешка, или ставање катанец на неа, е ако двајца луѓе, или две теми - 1094 00:50:58,750 --> 00:50:59,930 сетам на нула - 1095 00:50:59,930 --> 00:51:03,220 може да изврши увид во состојбата на некои променлива и потоа обидете се да се промени таа променлива, 1096 00:51:03,220 --> 00:51:07,950 но тие две работи не се случуваат на исто време, но може да се прекинат 1097 00:51:07,950 --> 00:51:11,500 од страна на други работи што се случуваат, податоците може да добие во многу чудни држава. 1098 00:51:11,500 --> 00:51:15,450 И може да имаат корист или можете да страдаат во смисла на пари пример. 1099 00:51:15,450 --> 00:51:18,110 >> Па во проблем постави седум, ние ви даде оваа линија код, која долго 1100 00:51:18,110 --> 00:51:21,000 приказната, го решава овој проблем во MySQL. 1101 00:51:21,000 --> 00:51:24,950 Ова многу долго обука која не ги дури и се вклопуваат во една линија на 1102 00:51:24,950 --> 00:51:30,370 екранот тука гарантира дека вашата работа е она што се нарекува атомска. 1103 00:51:30,370 --> 00:51:33,720 Сето тоа се случува одеднаш или тоа не се случи на сите. 1104 00:51:33,720 --> 00:51:37,530 Ова многу долго фраза не може се прекинат делумно. 1105 00:51:37,530 --> 00:51:39,840 >> И она што го прави тоа е буквално она што го кажува. 1106 00:51:39,840 --> 00:51:44,200 Вметнете во некои табела следниве три области оние кои се специфични вредности, 1107 00:51:44,200 --> 00:51:47,280 но дупликат клучот, не прават вметнете. 1108 00:51:47,280 --> 00:51:48,280 Направи ажурирање. 1109 00:51:48,280 --> 00:51:52,450 Значи ова е како прави Избери и Вметнете така да се каже, во исто време. 1110 00:51:52,450 --> 00:51:55,150 И она што е клучот тоа е веројатно се наведени тука? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Излезе, и ќе видите ова во проблем во собата на seven спецификации, затоа што 1113 00:52:01,380 --> 00:52:06,040 ние сме прогласени за таму да биде уникатен клуч на овој маса, така што 1114 00:52:06,040 --> 00:52:08,480 не може да има повеќе редови за ист корисник со 1115 00:52:08,480 --> 00:52:10,150 исто денар акции симбол - 1116 00:52:10,150 --> 00:52:13,780 во овој пример тука, DVN.V е глупо денар акции кои ги 1117 00:52:13,780 --> 00:52:14,980 се однесуваат на во спецификации. 1118 00:52:14,980 --> 00:52:17,860 Затоа што ние сме го прогласил за да биде уникатен, она што ова значи е дека ако 1119 00:52:17,860 --> 00:52:23,580 обидете се да се вметне дупликат ред, ти си наместо да оди да го ажурирате без 1120 00:52:23,580 --> 00:52:27,020 некој друг има шанса да го промени на состојбата на светот или. 1121 00:52:27,020 --> 00:52:29,400 Значи во кратки, ова гарантира работи се атомски. 1122 00:52:29,400 --> 00:52:32,530 >> Поопшто иако, бази на податоци како MySQL - 1123 00:52:32,530 --> 00:52:35,460 а вие не треба оваа функција за P-собата седум, но да ја задржат во умот за 1124 00:52:35,460 --> 00:52:36,200 иднина - 1125 00:52:36,200 --> 00:52:38,870 поддршка како што се нарекува трансакции, каде што може да се каже 1126 00:52:38,870 --> 00:52:40,990 СТАРТ трансакција буквално. 1127 00:52:40,990 --> 00:52:43,270 Тогаш може да се изврши две SQL извештаи. 1128 00:52:43,270 --> 00:52:45,710 И SQL изјава, како што ќе видите во p-сет седум, изгледа малку 1129 00:52:45,710 --> 00:52:46,750 нешто како ова. 1130 00:52:46,750 --> 00:52:48,820 Ажурира табела наречена сметка. 1131 00:52:48,820 --> 00:52:52,550 Постави рамнотежа колона еднаква на она што рамнотежата колона во моментов 1132 00:52:52,550 --> 00:52:57,280 е минус 1.000, каде што бројот, број на сметка, како корисничко име, 1133 00:52:57,280 --> 00:53:00,830 изнесува 2, а потоа ажурирање сметка точка точка точка. 1134 00:53:00,830 --> 00:53:04,350 >> Значи во однос на Едноставен, што значат овие две прашања се чини дека се прават во 1135 00:53:04,350 --> 00:53:05,840 реалниот свет чувство на банкарство? 1136 00:53:05,840 --> 00:53:07,440 >> Публика: Пренесување да заштеди. 1137 00:53:07,440 --> 00:53:08,020 >> Дејвид MALAN: Токму така. 1138 00:53:08,020 --> 00:53:10,470 Пренесување на средствата од една сметка на другите. 1139 00:53:10,470 --> 00:53:14,400 И ова е уште еден пример каде што навистина сакате овие две работи да се случи 1140 00:53:14,400 --> 00:53:15,570 или не се случи. 1141 00:53:15,570 --> 00:53:18,880 Вие не сакате нешто да добиете во средината на нив и потенцијално се плеткаш 1142 00:53:18,880 --> 00:53:22,220 математика, или плеткаш колку пари имате, или колку 1143 00:53:22,220 --> 00:53:23,170 пари на банката има. 1144 00:53:23,170 --> 00:53:26,890 Значи она што е навистина убаво за трансакции во MySQL е дека, и 1145 00:53:26,890 --> 00:53:30,160 бази на податоци генерално, е дека тие и паметни луѓе кои го спроведуваат 1146 00:53:30,160 --> 00:53:33,670 овие карактеристики дознаам како да се направи сигурни дека и двете од овие работи се случуваат 1147 00:53:33,670 --> 00:53:35,120 или не на сите. 1148 00:53:35,120 --> 00:53:38,580 >> И ако сте навистина се стремат да се направи веб-сајт кој се користи од страна на луѓе на 1149 00:53:38,580 --> 00:53:41,490 кампусот, луѓето во реалниот свет, го прават нешто во стартување смисла, 1150 00:53:41,490 --> 00:53:43,300 овие се видови на дизајнот на одлуки кои 1151 00:53:43,300 --> 00:53:45,020 стане некогаш толку важно. 1152 00:53:45,020 --> 00:53:48,240 Инаку, ќе почнете да изгубите податоци, изгуби корисници, или во најлош случај како 1153 00:53:48,240 --> 00:53:51,800 видовме тука, потенцијално губат пари. 1154 00:53:51,800 --> 00:53:56,180 Па уште еднаш, повеќе за тоа во проблем постави седум, како и можеби за некои од 1155 00:53:56,180 --> 00:53:57,530 вас во финалето проекти. 1156 00:53:57,530 --> 00:54:01,870 >> Па ајде промени таа слика моравме пред еден миг само во уште еден начин. 1157 00:54:01,870 --> 00:54:04,070 Па да ми всушност се види дали можам да - 1158 00:54:04,070 --> 00:54:06,030 Не бе, тоа го нема. 1159 00:54:06,030 --> 00:54:06,690 Ете го. 1160 00:54:06,690 --> 00:54:09,020 >> Значи ова е местото каде што ние ја напушти последен пат. 1161 00:54:09,020 --> 00:54:12,390 И испоставува ние ќе фрли уште една работа во микс тука - 1162 00:54:12,390 --> 00:54:14,510 јазик наречен вклучите Javascript-. 1163 00:54:14,510 --> 00:54:18,060 Па го вклучите Javascript-всушност одговара на во ова парче - 1164 00:54:18,060 --> 00:54:22,086 и јас не сосема остава доволно простор, па ова не е сега да скала. 1165 00:54:22,086 --> 00:54:23,900 Добро, ова е навистина патетично. 1166 00:54:23,900 --> 00:54:27,075 Добро, така што е да го вклучите Javascript. 1167 00:54:27,075 --> 00:54:27,340 Во ред е. 1168 00:54:27,340 --> 00:54:28,760 Јас сум навистина го прави лош. 1169 00:54:28,760 --> 00:54:29,390 Во ред е. 1170 00:54:29,390 --> 00:54:34,790 >> Па JavaScript е друг програмски јазик, и нашиот последен, ако тоа им помага 1171 00:54:34,790 --> 00:54:37,770 уверам дека таму не е многу повеќе на хидранти за пожар тука. 1172 00:54:37,770 --> 00:54:41,100 Па го вклучите Javascript-е исто така се толкува јазик, што значи дека не 1173 00:54:41,100 --> 00:54:42,670 компајлирајте го во нулите и. 1174 00:54:42,670 --> 00:54:43,690 Можете само да го работи. 1175 00:54:43,690 --> 00:54:47,680 Но она што е фундаментално различно со Го вклучите Javascript-обично е во тоа што 1176 00:54:47,680 --> 00:54:49,815 не се кандидира на вашиот веб сервер. 1177 00:54:49,815 --> 00:54:52,570 Тоа не се работи во апаратот само по себе. 1178 00:54:52,570 --> 00:54:57,490 Напротив, тоа добива симнати од страна на корисникот преку HTTP во нивниот интернет пребарувач - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox, што - 1180 00:55:00,260 --> 00:55:03,860 и тоа е интернет пребарувач, кој извршува оваа особено програмскиот јазик. 1181 00:55:03,860 --> 00:55:08,000 >> Значи да биде јасно, PHP досега е извршува или на командната линија во 1182 00:55:08,000 --> 00:55:11,290 нашата црна и бела прозорец, на сервер како апарат, компјутер 1183 00:55:11,290 --> 00:55:14,490 сакале апаратот, или тоа е извршена од страна на веб серверот 1184 00:55:14,490 --> 00:55:15,860 работи на компјутер. 1185 00:55:15,860 --> 00:55:20,490 Но темата тука е дека PHP досега е извршена од страна на серверот, па 1186 00:55:20,490 --> 00:55:24,820 корисникот и прелистувачот на корисникот никогаш не гледа линија на PHP код. 1187 00:55:24,820 --> 00:55:28,530 >> Всушност, ако некогаш сте се отвори прелистувачот за вашиот веб-сајт или на друг и ќе 1188 00:55:28,530 --> 00:55:32,400 всушност гледаат PHP код во вашиот прозорец, некој зезнав. 1189 00:55:32,400 --> 00:55:34,950 Затоа што тоа не е замислена да биде испраќа до пребарувачот директно. 1190 00:55:34,950 --> 00:55:38,150 Тоа би требало да биде извршена и се сврте во нешто како HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Но го вклучите Javascript-е во суштина спротивното. 1192 00:55:40,120 --> 00:55:44,350 Тоа е со цел да се кандидира обично внатре на прозорецот на прелистувачот на корисникот. 1193 00:55:44,350 --> 00:55:46,840 И она што видови на веб-сајтови користат Го вклучите Javascript-тогаш овие денови? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Како буквално секој популарен веб-сајт. 1196 00:55:52,180 --> 00:55:55,430 Секој веб-сајт кој ви момци веројатно користат секојдневно користи JavaScript за 1197 00:55:55,430 --> 00:55:57,330 Наједноставниот, па дури и најсекси карактеристики. 1198 00:55:57,330 --> 00:55:59,800 >> Па нешто како што се Фејсбук Чет ако користите тоа. 1199 00:55:59,800 --> 00:56:01,040 Како тоа всушност функционира? 1200 00:56:01,040 --> 00:56:05,090 И досега, сите од работите ние сме направено со HTML и PHP се претпоставува дека 1201 00:56:05,090 --> 00:56:08,750 се повлече до URL-то, и ќе притиснете ентер, и ќе видите некои HTML содржина. 1202 00:56:08,750 --> 00:56:11,970 И ќе кликнете на линкот, кој го менува URL-то, се менува страницата, и ја превчитува 1203 00:56:11,970 --> 00:56:12,740 некои нови содржини. 1204 00:56:12,740 --> 00:56:16,340 Кликнете на друг рачно или да поднесат форма, се однесен во друга страница и 1205 00:56:16,340 --> 00:56:17,420 можете да видите некои нови содржини. 1206 00:56:17,420 --> 00:56:22,710 >> Но со користење на нешто како Фејсбук Чет, или Gchat, или на Google Maps, ретко 1207 00:56:22,710 --> 00:56:27,350 дали целата страница освежи таква што ќе видите бел екран миговно и 1208 00:56:27,350 --> 00:56:28,470 потоа нови содржини. 1209 00:56:28,470 --> 00:56:32,610 Наместо тоа, веб-страници и денес се динамички добивање ажуриран повторно и 1210 00:56:32,610 --> 00:56:35,570 повторно и повторно сите вид од зад сцената. 1211 00:56:35,570 --> 00:56:38,560 И испоставува дека кога ќе одат да нешто како Фејсбук, или Gchat, 1212 00:56:38,560 --> 00:56:43,050 или Gmail, како и страница надградби автоматски, без претовар на 1213 00:56:43,050 --> 00:56:47,630 целиот екран, она што се случи е дека Вашиот прелистувач има направено вид на тајно 1214 00:56:47,630 --> 00:56:49,410 дополнителни HTTP барања - 1215 00:56:49,410 --> 00:56:52,740 не за целиот веб-страници, но само за малку парчиња на податоци, како и 1216 00:56:52,740 --> 00:56:55,740 инстант порака дека вашиот пријател само вас, или да ги ажурирате статусот испратил 1217 00:56:55,740 --> 00:56:58,210 некој само вие, или чуруликам испратени дека некој само што ја испратил. 1218 00:56:58,210 --> 00:57:02,120 Тоа е само правење малку барања за податоци, а потоа со помош на JavaScript, оваа 1219 00:57:02,120 --> 00:57:06,370 програмски јазик, да се промени она што веб-страница изгледа како без 1220 00:57:06,370 --> 00:57:09,860 сервер помагање, без сервер генерирање дека HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Значи во кратки, JavaScript може да се користи тогаш не само да пренесам новите податоци од 1222 00:57:13,820 --> 00:57:16,750 серверот без претовар целина страница или поднесување на формуларот. 1223 00:57:16,750 --> 00:57:20,060 Таа, исто така може да се користи за да се промени т.н. ДОМ - 1224 00:57:20,060 --> 00:57:21,520 документ Object Model - 1225 00:57:21,520 --> 00:57:24,620 што е само стилизиран начин за велејќи дека дрвото на HTML 1226 00:57:24,620 --> 00:57:26,220 што сме го виделе последен пат. 1227 00:57:26,220 --> 00:57:31,640 >> Така да се увери, го вклучите Javascript-е синтаксички така сличен на C, како и. 1228 00:57:31,640 --> 00:57:32,820 Нема главната функција. 1229 00:57:32,820 --> 00:57:35,430 Вие само почнете да го пишувате код и тоа ќе се извршуваат, или 1230 00:57:35,430 --> 00:57:36,900 толкува повеќе како што треба. 1231 00:57:36,900 --> 00:57:38,660 Услови ќе изгледа вака. 1232 00:57:38,660 --> 00:57:41,230 Не се разликува од C или PHP за таа материја. 1233 00:57:41,230 --> 00:57:43,890 Булова изрази или-ед заедно ќе изгледа вака. 1234 00:57:43,890 --> 00:57:45,590 Anded заедно да изгледа вака. 1235 00:57:45,590 --> 00:57:47,750 >> Прекинувачи ќе изгледаат вака. 1236 00:57:47,750 --> 00:57:49,440 За петелки ќе изгледа вака. 1237 00:57:49,440 --> 00:57:51,060 Додека петелки ќе изгледа вака. 1238 00:57:51,060 --> 00:57:53,316 Направите додека петелки ќе изгледа вака. 1239 00:57:53,316 --> 00:57:54,780 >> Ова е нова. 1240 00:57:54,780 --> 00:57:58,753 Па го вклучите Javascript-не има foreach изградба само по себе, но ова конструкција 1241 00:57:58,753 --> 00:58:03,870 за променлива i во низа, и јас во овој случај станува индекс на вредност. 1242 00:58:03,870 --> 00:58:06,880 Па тоа е малку различен од оној foreach, иако нови верзии на 1243 00:58:06,880 --> 00:58:10,280 Го вклучите Javascript-се излегува цело време, па дури и овие јазични карактеристики 1244 00:58:10,280 --> 00:58:10,880 се развива. 1245 00:58:10,880 --> 00:58:16,920 >> И како настрана, JavaScript овие денови исто така може да се користи на сервер исто како 1246 00:58:16,920 --> 00:58:19,920 PHP со користење на рамка наречена Node.js. 1247 00:58:19,920 --> 00:58:24,670 Еден од CS50 е TFS, Кевин, води семинар за Node.js што е на располагање на 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Значи, ако сте љубопитни, знаете дека да го користите на серверот од страна на како 1250 00:58:28,830 --> 00:58:33,870 добро, но тоа е прилично последните тренд, но моќен во тоа. 1251 00:58:33,870 --> 00:58:35,270 >> Ова е малку различен. 1252 00:58:35,270 --> 00:58:37,910 Ова е низа во JavaScript. 1253 00:58:37,910 --> 00:58:40,115 И она што ќе те удри како различни наспроти C или PHP за најдобар? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Постојат неколку брзи приказни може да се каже тука. 1256 00:58:47,420 --> 00:58:49,367 Она што недостасува наспроти PHP? 1257 00:58:49,367 --> 00:58:51,652 >> ПУБЛИКАТА: [нечујни]. 1258 00:58:51,652 --> 00:58:52,110 >> Дејвид MALAN: Да? 1259 00:58:52,110 --> 00:58:53,322 Жал ми е, велат повторно? 1260 00:58:53,322 --> 00:58:54,740 >> ПУБЛИКАТА: Не прогласување типот на променлива. 1261 00:58:54,740 --> 00:58:56,390 >> Дејвид MALAN: Ние не сме прогласување типот на променлива. 1262 00:58:56,390 --> 00:58:59,630 Па всушност сосема како PHP, ние не сме пропишување на видовите на оваа променлива. 1263 00:58:59,630 --> 00:59:02,670 Наместо тоа, ние сме повеќе генерички велејќи var за променлива. 1264 00:59:02,670 --> 00:59:06,690 Ние немаме PHP е непријатност на знакот за долар, кој додека досадни да се 1265 00:59:06,690 --> 00:59:09,160 тип, прави повеќе јасно дека нешто е променлива. 1266 00:59:09,160 --> 00:59:11,830 Додека овде, ние сме вид на назад Пристап на C со само нарекувајќи 1267 00:59:11,830 --> 00:59:14,500 променлива со името сакаме да го даде, како броеви. 1268 00:59:14,500 --> 00:59:17,170 А исто така и како PHP, имаме квадратни загради за 1269 00:59:17,170 --> 00:59:19,170 вредности во внатрешноста таа низа. 1270 00:59:19,170 --> 00:59:22,490 >> Па променливи во JavaScript, исто така, може да изгледа вака. 1271 00:59:22,490 --> 00:59:26,900 Забележи ова е стринг нарекува S, но слично имаат не е наведено 1272 00:59:26,900 --> 00:59:28,750 дека тоа е стринг. 1273 00:59:28,750 --> 00:59:33,160 Тука иако е карактеристика која не прави постојат во токму на ист начин во PHP, 1274 00:59:33,160 --> 00:59:34,460 но малку сличен начин. 1275 00:59:34,460 --> 00:59:36,530 Ова е објект во вклучите Javascript-. 1276 00:59:36,530 --> 00:59:42,110 И предмети се вид на швајцарската армија Нож на податочна структура во која ќе 1277 00:59:42,110 --> 00:59:43,900 да ги користите за било кој број на нештата. 1278 00:59:43,900 --> 00:59:46,860 >> Еве, на пример, ние сме прогласување променлива наречена понуда. 1279 00:59:46,860 --> 00:59:49,110 На видот на таа променлива е предмет. 1280 00:59:49,110 --> 00:59:53,550 Можете да мислам на тоа како C struct дека има клучеви и вредности. 1281 00:59:53,550 --> 00:59:55,250 Симбол е клучен. 1282 00:59:55,250 --> 00:59:57,350 FB е вредност, очигледно на акции симбол. 1283 00:59:57,350 --> 00:59:57,930 Запирка. 1284 00:59:57,930 --> 01:00:02,180 Цената е уште еден клучен, а неговата вредност е очигледно со подвижна запирка, или 1285 01:00:02,180 --> 01:00:06,510 број поопшто, во JavaScript, на 49,26 $. 1286 01:00:06,510 --> 01:00:09,030 >> Па PHP не имаат - 1287 01:00:09,030 --> 01:00:12,980 не сме виделе во PHP објекти доста вака, но ние го види аналоген, 1288 01:00:12,980 --> 01:00:14,093 кој беше она? 1289 01:00:14,093 --> 01:00:14,980 >> ПУБЛИКАТА: [нечујни]. 1290 01:00:14,980 --> 01:00:16,110 >> Дејвид MALAN: асоцијативни низи. 1291 01:00:16,110 --> 01:00:19,990 Па додека PHP има асоцијативни низи чија синтакса е секогаш малку па 1292 01:00:19,990 --> 01:00:20,370 различни - 1293 01:00:20,370 --> 01:00:21,780 видовме квадратни загради. 1294 01:00:21,780 --> 01:00:23,860 Видовме чудни стрели симболи. 1295 01:00:23,860 --> 01:00:27,330 Го вклучите Javascript-има објекти, но ова е главно на семантички разлики и 1296 01:00:27,330 --> 01:00:29,260 различни синоним за сега. 1297 01:00:29,260 --> 01:00:35,060 Сепак, како настрана, PHP, исто така има предмети на начин кој Java и други 1298 01:00:35,060 --> 01:00:37,810 јазици имаат објекти во објектно-ориентираното програмирање. 1299 01:00:37,810 --> 01:00:40,440 Но, ние ќе ги користат овие само за типови на податоци за сега. 1300 01:00:40,440 --> 01:00:42,170 Објекти и асоцијативни низи. 1301 01:00:42,170 --> 01:00:44,140 >> Оваа една може да го направи малку повеќе јасно. 1302 01:00:44,140 --> 01:00:45,890 Еве зошто некој објект е корисно. 1303 01:00:45,890 --> 01:00:48,760 Кога ќе сакаат да пријават студент, како Zamyla, ние може да всушност 1304 01:00:48,760 --> 01:00:52,630 капсулирало така да се каже во внатрешноста на тој објект со помош кадрава загради само како 1305 01:00:52,630 --> 01:00:55,060 пред целиот куп на клучеви и вредности тука. 1306 01:00:55,060 --> 01:00:59,150 Имаме проект, куќа, и име за Zamyla, проследено со запирка како 1307 01:00:59,150 --> 01:01:00,690 вообичаено на крајот. 1308 01:01:00,690 --> 01:01:04,840 >> Долу тука, ова е малку различни, но исто така многу моќен 1309 01:01:04,840 --> 01:01:05,690 овие денови. 1310 01:01:05,690 --> 01:01:08,780 Еве низа, и знам дека поради има плоштад заградата до 1311 01:01:08,780 --> 01:01:11,090 врвот и на плоштадот заграда на дното. 1312 01:01:11,090 --> 01:01:16,050 И ова е низа на она што на податоци тип очигледно во вклучите Javascript-? 1313 01:01:16,050 --> 01:01:21,260 Ова е низа од тоа изгледа како три објекти. 1314 01:01:21,260 --> 01:01:24,580 И знам дека тоа е предмет само бидејќи на големите загради. 1315 01:01:24,580 --> 01:01:28,760 И ќе забележите има отворени кадрава голема заграда, некои работи, во близина кадрава голема заграда, запирка, 1316 01:01:28,760 --> 01:01:31,180 потоа некои повеќе, запирка, а потоа некои повеќе. 1317 01:01:31,180 --> 01:01:33,800 Па тоа е три аргументи одделени со две запирки. 1318 01:01:33,800 --> 01:01:36,810 >> Значи ова е низа од три објекти. 1319 01:01:36,810 --> 01:01:39,940 И секоја од овие објекти се чини дека е студент или член на персоналот на некои 1320 01:01:39,940 --> 01:01:42,370 вид, секоја со лична карта, куќа, и име. 1321 01:01:42,370 --> 01:01:45,060 Но јас ова го нарече нешто наречен JSON - 1322 01:01:45,060 --> 01:01:47,450 Го вклучите Javascript Цел Нотација. 1323 01:01:47,450 --> 01:01:52,060 И ова е формат на податоци кои, всушност, е толку многу популарна и во 1324 01:01:52,060 --> 01:01:55,100 мода овие денови дека ако напишете апликација која го користи Фејсбук 1325 01:01:55,100 --> 01:01:59,150 API, Твитер API-то, навистина речиси некој API таму овие денови, 1326 01:01:59,150 --> 01:02:02,820 вклучувајќи и некои од свој, CS50 е на податоци ќе се вратам не е во 1327 01:02:02,820 --> 01:02:04,720 старата школа CSV формат. 1328 01:02:04,720 --> 01:02:06,780 >> Бидејќи се потсетиме дека CSV е супер едноставен. 1329 01:02:06,780 --> 01:02:10,230 Тоа е само колони одделени со запирки. 1330 01:02:10,230 --> 01:02:13,190 JSON податоци ви дава повеќе метаподатоци. 1331 01:02:13,190 --> 01:02:17,800 Тоа соработници клучна со секоја вредност, така тие не мора да се само да се претпостави дека 1332 01:02:17,800 --> 01:02:22,460 колоната 0. е една вредност, колона е друго, колона две е друга. 1333 01:02:22,460 --> 01:02:26,790 Се што е во објект JSON тука е вид на само-опис, бидејќи секој 1334 01:02:26,790 --> 01:02:30,940 еден од имињата во оваа датотека има буквално името пред него како 1335 01:02:30,940 --> 01:02:32,510 Цитираниот текст. 1336 01:02:32,510 --> 01:02:34,950 >> Па ајде да ги разгледаме во неколку примери овде. 1337 01:02:34,950 --> 01:02:36,800 Дозволете ми да одат во апаратот. 1338 01:02:36,800 --> 01:02:41,000 И дозволете ми да одат во нашите vhost директориумот во јавноста. 1339 01:02:41,000 --> 01:02:45,590 И дозволете ми да одат во Го вклучите Javascript директориум. 1340 01:02:45,590 --> 01:02:49,610 И ајде да одиме напред и да се отворат dom-0.html, каде ДОМ само значи 1341 01:02:49,610 --> 01:02:51,010 документ објектот модел. 1342 01:02:51,010 --> 01:02:53,490 Тоа е дрво работи на кои Јас од порано. 1343 01:02:53,490 --> 01:02:54,950 >> И дозволете ми да предложи следниве. 1344 01:02:54,950 --> 01:02:57,720 Тука е веб страница, чија телото е прилично едноставна. 1345 01:02:57,720 --> 01:03:00,170 Значи тука долу на дното, забележите Имам форма. 1346 01:03:00,170 --> 01:03:01,500 Ние сме виделе оние пред. 1347 01:03:01,500 --> 01:03:07,600 Таа има два влеза, од кои едната има Проект на името, од кои едниот има еден вид на 1348 01:03:07,600 --> 01:03:09,830 достават, како и првата еден тип е текстот. 1349 01:03:09,830 --> 01:03:11,900 Така што ова, всушност, звучи прилично едноставна. 1350 01:03:11,900 --> 01:03:13,090 >> Ајде да одиме тука. 1351 01:03:13,090 --> 01:03:15,390 Да се ​​вратиме на оваа страница тука. 1352 01:03:15,390 --> 01:03:21,030 Ајде да одиме во локалниот компјутер, и да си одат во нашата JavaScript директориум, и да одат во 1353 01:03:21,030 --> 01:03:24,640 ДОМ-0, и тука имаме оваа форма. 1354 01:03:24,640 --> 01:03:26,550 Па тоа е очигледно сите оваа страница прави. 1355 01:03:26,550 --> 01:03:28,740 Таа има името поле со на копчето Испрати. 1356 01:03:28,740 --> 01:03:30,340 Но јас не одам да го користите PHP тука. 1357 01:03:30,340 --> 01:03:34,310 Одам да стори сé што е клиентската страна така да се каже во JavaScript како што следи. 1358 01:03:34,310 --> 01:03:39,100 >> Забележите дека јас сум навистина дадено името областа на овој влез единствен 1359 01:03:39,100 --> 01:03:42,350 идентификатор, кој ќе всушност се ме спаси некое време во еден момент. 1360 01:03:42,350 --> 01:03:45,480 И ќе забележите сум воведен уште еден таг во главата на мојата веб страница, 1361 01:03:45,480 --> 01:03:46,565  таг. 1362 01:03:46,565 --> 01:03:50,120 >> Па тоа е во оваа смисла дека го вклучите Javascript-е на клиентот-страна програмски јазик. 1363 01:03:50,120 --> 01:03:55,020 Во овој случај, само како CSS, јас сум се стави тоа директно во внатрешноста на мојот HTML. 1364 01:03:55,020 --> 01:03:58,810 Но забележиш јас сум прогласена за функција која изгледа малку како PHP 1365 01:03:58,810 --> 01:04:01,530 синтаксички, но тоа е, всушност, JavaScript, бидејќи повторно, тоа е 1366 01:04:01,530 --> 01:04:03,920 клиент-страна во прелистувачот. 1367 01:04:03,920 --> 01:04:07,590 И да се погоди што е ова се случува да се направи тоа, иако некои од синтаксата 1368 01:04:07,590 --> 01:04:09,338 тука е нова. 1369 01:04:09,338 --> 01:04:11,760 >> ПУБЛИКАТА: Велат здраво на кој. 1370 01:04:11,760 --> 01:04:14,020 >> Дејвид MALAN: Тоа се случува да се каже здраво за секој кој посети оваа страница. 1371 01:04:14,020 --> 01:04:15,120 Па како? 1372 01:04:15,120 --> 01:04:18,070 >> Па известување, излегува во вклучите Javascript- има сигнал () функција. 1373 01:04:18,070 --> 01:04:22,840 Ова е многу вид на тажен функција која навистина само има тенденција да се одело на нерви на корисниците. 1374 01:04:22,840 --> 01:04:25,440 Тоа не е една навистина треба да го користите обично, но тоа е брз и валкан 1375 01:04:25,440 --> 01:04:27,710 начин на кој вид на печатење нешто на графички кориснички 1376 01:04:27,710 --> 01:04:29,180 интерфејс, како интернет пребарувач. 1377 01:04:29,180 --> 01:04:31,400 Забележи дека имам стринг единечен наводник. 1378 01:04:31,400 --> 01:04:36,010 Излезе дека за разлика од C, го вклучите Javascript- всушност може да го користите една 1379 01:04:36,010 --> 01:04:38,730 наводници, и искрено тоа е само вид на стилски конвенцијата меѓу 1380 01:04:38,730 --> 01:04:41,180 JavaScript програмерите да Користете единечен наводник. 1381 01:04:41,180 --> 01:04:43,750 PHP, тие всушност имаат малку различно значење. 1382 01:04:43,750 --> 01:04:45,810 Но, за сега, само знам дека тоа е единствената причина. 1383 01:04:45,810 --> 01:04:49,270 На конвенцијата во вклучите Javascript-е често да се Користете единечен наводник, но ние би можеле да користат 1384 01:04:49,270 --> 01:04:50,950 двојни наводници во двете места, како и. 1385 01:04:50,950 --> 01:04:52,610 >> Па ова е интересно. 1386 01:04:52,610 --> 01:04:56,430 Потсетиме последен пат дека имавме дека слика на екранот, кои можеа дрво 1387 01:04:56,430 --> 01:04:59,720 каде што имаше на HTML јазол, и главата јазол, а телото јазол, 1388 01:04:59,720 --> 01:05:00,800 а потоа некој текст. 1389 01:05:00,800 --> 01:05:04,700 Но имаше една посебна јазол на самиот врв дека се јавив на документот. 1390 01:05:04,700 --> 01:05:08,260 Па, излегува во JavaScript, било пат кога ќе се напише програма во вклучите Javascript- 1391 01:05:08,260 --> 01:05:11,040 во прелистувачот, ќе имате пристап до посебна глобалната променлива. 1392 01:05:11,040 --> 01:05:14,130 Слични во духот со superglobals PHP, ова се нарекува во 1393 01:05:14,130 --> 01:05:16,050 сите мали документ. 1394 01:05:16,050 --> 01:05:21,480 >> Тоа е како struct, но ова struct исто така има и функции во него. 1395 01:05:21,480 --> 01:05:23,790 Па struct Ц само има податоци обично. 1396 01:05:23,790 --> 01:05:29,060 Но објектот вклучите Javascript-како оваа технички, исто така, има функции, 1397 01:05:29,060 --> 01:05:31,830 инаку позната како методи, во него. 1398 01:05:31,830 --> 01:05:35,750 И можете да се јавите на функција во внатрешноста на овој објект буквално си го прави своето 1399 01:05:35,750 --> 01:05:39,610 име, точка, а потоа името на функцијата, или повторно метод. 1400 01:05:39,610 --> 01:05:41,160 Тоа е само синоним, навистина. 1401 01:05:41,160 --> 01:05:42,450 >> И она што го прави ова функција направам? 1402 01:05:42,450 --> 01:05:43,840 Можете да вид на се погоди од своето име. 1403 01:05:43,840 --> 01:05:45,590 Земете елемент од проект. 1404 01:05:45,590 --> 01:05:50,040 Значи ова се случува да пребарувате на веб страница, пребарување тоа дрво, во потрага по 1405 01:05:50,040 --> 01:05:55,210 без оглед на јазол, АКА елемент, има единствен број на цитат unquote име. 1406 01:05:55,210 --> 01:05:56,560 И тогаш што сум јас ќе направам? 1407 01:05:56,560 --> 01:06:00,350 Одам да се добие вредноста внатрешноста на тој јазол во дрвото, и јас одам 1408 01:06:00,350 --> 01:06:02,580 некако да се поздрави со тоа име. 1409 01:06:02,580 --> 01:06:05,360 >> Па претпоставете, иако ние не сум видел оваа уште, она што го прават плус 1410 01:06:05,360 --> 01:06:07,396 симболи значи тука и тука веројатно? 1411 01:06:07,396 --> 01:06:08,230 >> Публика: CONCATENATE. 1412 01:06:08,230 --> 01:06:09,220 >> Дејвид MALAN: CONCATENATE. 1413 01:06:09,220 --> 01:06:11,290 Право, и овие се само вид на дизајн на одлуки 1414 01:06:11,290 --> 01:06:12,280 луѓе направени пред неколку години. 1415 01:06:12,280 --> 01:06:15,190 Во PHP, ќе CONCATENATE работи со точки. 1416 01:06:15,190 --> 01:06:18,800 Во C, можете скокаат преку неколку карики и јавете функции како strcopy () или 1417 01:06:18,800 --> 01:06:20,600 strcat () или други слични функции. 1418 01:06:20,600 --> 01:06:22,060 Но во JavaScript, имате потреба при користење предности. 1419 01:06:22,060 --> 01:06:24,770 Значи ова е само надоврзување три жици - 1420 01:06:24,770 --> 01:06:27,850 Здраво, име, а потоа фантастичен точка. 1421 01:06:27,850 --> 01:06:30,390 >> Значи, кога и зошто е оваа функција наречен иако? 1422 01:06:30,390 --> 01:06:33,150 Па, претпоставете од HTML на дното. 1423 01:06:33,150 --> 01:06:35,810 Зошто е поздрават () се нарекува, или кога? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Очигледно, како најдобро можам да кажам, по поднесе, кога е поднесена оваа форма, 1426 01:06:44,030 --> 01:06:47,200 Одам да се стори се што е внатрешноста на овие цитати. 1427 01:06:47,200 --> 01:06:50,900 И посебно, јас ќе одам да се јавите поздрават () и потоа се врати лажни. 1428 01:06:50,900 --> 01:06:53,090 >> Добро, ајде да видиме што на мрежата ефект тука е во прв план. 1429 01:06:53,090 --> 01:06:58,290 Па да ми се оди напред и напишете во, да речеме, Лорен, Submit. 1430 01:06:58,290 --> 01:06:59,440 Здраво Лорен. 1431 01:06:59,440 --> 01:07:02,990 Ајде да видиме дали можеби ова беше само среќа имплементација. 1432 01:07:02,990 --> 01:07:03,200 Не бе. 1433 01:07:03,200 --> 01:07:05,990 Така, тоа е пишување од она што именува Јас всушност се стави таму. 1434 01:07:05,990 --> 01:07:07,970 >> Но се забележи она што не се менува. 1435 01:07:07,970 --> 01:07:10,360 URL-то е уште ДОМ-0.html. 1436 01:07:10,360 --> 01:07:11,820 Нема register.php. 1437 01:07:11,820 --> 01:07:13,110 Нема втора датотека. 1438 01:07:13,110 --> 01:07:14,930 Нема акција атрибут. 1439 01:07:14,930 --> 01:07:19,720 Па што е ова враќање лажни се претпоставува дека правиш? 1440 01:07:19,720 --> 01:07:23,660 Зошто сум јас повикувајќи го поздрават () и потоа враќање лажни веројатно? 1441 01:07:23,660 --> 01:07:26,420 Што нормално се случува кога ќе кликнете на Прати на образец што дури имаме 1442 01:07:26,420 --> 01:07:27,854 виден во изминатата недела? 1443 01:07:27,854 --> 01:07:29,900 >> ПУБЛИКАТА: [нечујни]. 1444 01:07:29,900 --> 01:07:30,860 >> Дејвид MALAN: Тоа оди некаде, нели? 1445 01:07:30,860 --> 01:07:32,720 Таа оди на некои целни URL. 1446 01:07:32,720 --> 01:07:34,120 Но не сакам тоа да се случи тука. 1447 01:07:34,120 --> 01:07:37,620 Сакам мојот веб страница да биде целосно динамичен како Gmail, каде што некогаш сте 1448 01:07:37,620 --> 01:07:38,650 таму, ќе остане таму. 1449 01:07:38,650 --> 01:07:42,900 URL-то не се менува на начин што укажува целата страница е претовар. 1450 01:07:42,900 --> 01:07:46,680 Напротив, јас само сакам да се смени нешто како печатење нешто 1451 01:07:46,680 --> 01:07:48,320 тука на екранот. 1452 01:07:48,320 --> 01:07:49,630 >> Па нека ме исчисти овој до малку. 1453 01:07:49,630 --> 01:07:55,370 Дозволете ми да се отвори не ДОМ-0, но дозволете ми да се отвори ДОМ-2. 1454 01:07:55,370 --> 01:07:57,350 Само така сте виделе некои синтакса тука. 1455 01:07:57,350 --> 01:08:02,080 >> Излезе дека она што ние едноставно не е користење на суровини вклучите Javascript-. 1456 01:08:02,080 --> 01:08:04,420 Значи ова е навистина јазик Го вклучите Javascript-. 1457 01:08:04,420 --> 01:08:07,340 Некои од вас можеби не знаат за библиотека наречена jQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Па jQuery не е исто нешто како го вклучите Javascript-. 1459 01:08:09,980 --> 01:08:14,110 Тоа е само библиотека која навистина паметна дечко напиша и популаризира како 1460 01:08:14,110 --> 01:08:18,100 дека речиси сите во светот сега користи jQuery кога користејќи JavaScript. 1461 01:08:18,100 --> 01:08:20,890 И на прв поглед, искрено, тоа изгледа малку повеќе криптичната. 1462 01:08:20,890 --> 01:08:24,990 Но ќе се најде, особено ако одите таму за вашиот конечниот проект со веб 1463 01:08:24,990 --> 01:08:29,029 развој, ќе најдете дека овој чисти работите и ви заштедува доста 1464 01:08:29,029 --> 01:08:30,229 неколку линии на код. 1465 01:08:30,229 --> 01:08:33,189 >> Значи, ајде само се загледувам во колку оваа форма е работа. 1466 01:08:33,189 --> 01:08:35,664 Се забележи она што никако не можев да се отстрани очигледно од мојот HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Нема на поднесе управувачот така да се каже. 1469 01:08:40,630 --> 01:08:41,470 Нема атрибут. 1470 01:08:41,470 --> 01:08:43,359 Затоа што знаете, она што Јас не навистина ми се допаѓа? 1471 01:08:43,359 --> 01:08:45,640 Се чувствував како ние паѓаа во старите навики таму. 1472 01:08:45,640 --> 01:08:49,340 Исто како што беше почнуваат да се чувствуваат невешт да се мешаат двете CSS со 1473 01:08:49,340 --> 01:08:52,149 HTML, затоа што ти си вид на фрлање различни јазици низ целиот 1474 01:08:52,149 --> 01:08:56,180 место, на сличен начин го направи ова почнете да се чувствувате како лош пат да одат надолу, каде што 1475 01:08:56,180 --> 01:09:01,069 Јас сум ставање JavaScript код во внатрешноста на мојата HTML наместо факторинг тоа надвор. 1476 01:09:01,069 --> 01:09:02,279 >> Значи тоа е поука тука. 1477 01:09:02,279 --> 01:09:05,080 Во дом-2.html, Јас сум тоа факторинг надвор. 1478 01:09:05,080 --> 01:09:07,399 И јас го правам работите малку поинаку. 1479 01:09:07,399 --> 01:09:09,630 За сега, јас ќе одам да се бранува моите раце во она што ова навистина не 1480 01:09:09,630 --> 01:09:10,590 под хауба. 1481 01:09:10,590 --> 01:09:14,210 Но, само сега за сега се претпостави дека тој прв линија код во оваа библиотека 1482 01:09:14,210 --> 01:09:18,170 наречен jQuery само значи кога документот е подготвен, направете го следново. 1483 01:09:18,170 --> 01:09:20,080 >> Бидејќи на веб страници може да потрае некое време да се вчита. 1484 01:09:20,080 --> 01:09:23,029 Може да биде на бавен интернет конекција, и тоа би можело да се врти 1485 01:09:23,029 --> 01:09:25,290 и се врти, и конечно тоа е натоварен. 1486 01:09:25,290 --> 01:09:29,060 Таа линија на кодот само вели почекајте додека целата страница е подготвена, документот 1487 01:09:29,060 --> 01:09:31,189 е подготвена, пред извршување на овој код. 1488 01:09:31,189 --> 01:09:34,390 >> И сега се забележи, ова е веројатно најкорисните прв 1489 01:09:34,390 --> 01:09:36,189 земе од jQuery. 1490 01:09:36,189 --> 01:09:42,140 Оваа линија тука е многу слични во духот на оваа многу подолго линија тука. 1491 01:09:42,140 --> 01:09:46,920 Додека во сурова JavaScript код, постојат постои документ глобалната објект кој 1492 01:09:46,920 --> 01:09:50,460 има функција наречена getElementById (), на луѓето кои пишуваше 1493 01:09:50,460 --> 01:09:55,720 jQuery поедноставен дека за да речеме знакот за долар, а потоа внатрешноста на 1494 01:09:55,720 --> 01:10:00,250 загради стави две понуди, а потоа стави хаш симбол проследено со 1495 01:10:00,250 --> 01:10:02,250 единствен број што сакате да го дофати. 1496 01:10:02,250 --> 01:10:06,170 Значи ова е еквивалент на document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Во меѓувреме,. Поднесат само значи на поднесување на било која форма сте 1498 01:10:11,090 --> 01:10:14,240 се однесуваат на на левата страна, се оди напред и изврши тоа. 1499 01:10:14,240 --> 01:10:16,600 Но, ова е сега љубопитност премногу. 1500 01:10:16,600 --> 01:10:19,560 Што е чудно за тоа што Сум Нагласени тука? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Не само што е вид на синтаксички нови, таму е исто така нешто недостасува. 1503 01:10:28,594 --> 01:10:29,558 >> Публика: Тоа е само наречен функција? 1504 01:10:29,558 --> 01:10:31,970 Тоа не се вика алармирање? 1505 01:10:31,970 --> 01:10:32,440 >> Дејвид MALAN: Да. 1506 01:10:32,440 --> 01:10:35,450 Добро, па алармирање () е долу тука, за да биде фер. 1507 01:10:35,450 --> 01:10:39,520 Но, не постои споменување на името, како што знаете, foo или 1508 01:10:39,520 --> 01:10:40,980 нешто тука. 1509 01:10:40,980 --> 01:10:43,830 И навистина, ова е една од карактеристиките на JavaScript тоа е сосема 1510 01:10:43,830 --> 01:10:45,370 моќни, но, исто така, сосема ново. 1511 01:10:45,370 --> 01:10:47,460 И PHP, всушност, ја има оваа, како и. 1512 01:10:47,460 --> 01:10:49,500 >> Дозволете ми да оди напред и да прават нешто вистински брз. 1513 01:10:49,500 --> 01:10:52,030 Дозволете ми да оди напред и да се стави ова овде. 1514 01:10:52,030 --> 01:10:52,600 Дозволете ми да го направите тоа. 1515 01:10:52,600 --> 01:10:53,690 Функција. 1516 01:10:53,690 --> 01:10:56,455 Да ја наречеме оваа управувачот (). 1517 01:10:56,455 --> 01:10:58,290 А управувачот функција така да се каже. 1518 01:10:58,290 --> 01:11:00,110 Нешто што се справува со некои операција. 1519 01:11:00,110 --> 01:11:02,700 Дозволете ми да се исчисти ми вовлекување. 1520 01:11:02,700 --> 01:11:04,380 И стави ова овде. 1521 01:11:04,380 --> 01:11:06,090 И го стави тоа овде. 1522 01:11:06,090 --> 01:11:06,470 Да. 1523 01:11:06,470 --> 01:11:07,060 OK. 1524 01:11:07,060 --> 01:11:10,300 >> Па сега имам функција наречена управувачот () дека јас навистина не знам 1525 01:11:10,300 --> 01:11:10,890 она што го прави уште. 1526 01:11:10,890 --> 01:11:12,710 Тоа само уште има тие работи. 1527 01:11:12,710 --> 01:11:13,900 Whoops. 1528 01:11:13,900 --> 01:11:15,820 Зеде премногу. 1529 01:11:15,820 --> 01:11:18,490 Ајде да го направите тоа. 1530 01:11:18,490 --> 01:11:18,990 Сите во право. 1531 01:11:18,990 --> 01:11:20,240 Жал. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Сите во право. 1534 01:11:23,690 --> 01:11:24,720 Дозволете ми да го направите тоа. 1535 01:11:24,720 --> 01:11:25,020 OK. 1536 01:11:25,020 --> 01:11:27,040 Дека изгледа убаво и директно напред сега. 1537 01:11:27,040 --> 01:11:29,090 Дозволете ми да го направите тоа. 1538 01:11:29,090 --> 01:11:29,860 Го направите тоа. 1539 01:11:29,860 --> 01:11:30,950 И OK. 1540 01:11:30,950 --> 01:11:33,080 Па сега, ајде да се стави ова овде. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Нема повеќе програмирање на мува. 1543 01:11:37,270 --> 01:11:37,900 OK. 1544 01:11:37,900 --> 01:11:40,000 >> Па сега, ајде да се вратиме на каде што приказната започна. 1545 01:11:40,000 --> 01:11:43,530 Претходно, јас реков дека оваа линија тука значи кога документот е подготвен, одете 1546 01:11:43,530 --> 01:11:44,380 напред и да го направите тоа. 1547 01:11:44,380 --> 01:11:45,660 Што сакам да направам? 1548 01:11:45,660 --> 01:11:49,070 И конкретно, сакам да одам напред и да го направите следново. 1549 01:11:49,070 --> 01:11:53,700 Изврши оваа линија код, а потоа она што сакам да направите е да се јавите на оваа 1550 01:11:53,700 --> 01:11:56,370 функционира кога форма е поднесена. 1551 01:11:56,370 --> 01:11:57,730 >> Сега тоа е она што е интересно. 1552 01:11:57,730 --> 01:11:59,170 Ова не е самата функција. 1553 01:11:59,170 --> 01:12:02,540 Информации Јас не сум ставање загради тука во вообичаен начин. 1554 01:12:02,540 --> 01:12:06,800 Јас сум буквално поминува функција наречена управувачот () на друга функција 1555 01:12:06,800 --> 01:12:10,800 наречен достават () како аргумент како иако тоа е како една променлива. 1556 01:12:10,800 --> 01:12:14,290 И ова е една од карактеристиките на JavaScript, е функции се 1557 01:12:14,290 --> 01:12:15,710 се навистина само објекти. 1558 01:12:15,710 --> 01:12:18,350 Всушност, тие се навистина само променливи на некој вид. 1559 01:12:18,350 --> 01:12:21,340 И ако името на функцијата е управувачот (), не постои причина не можам 1560 01:12:21,340 --> 01:12:23,390 помине тоа во како аргумент тука. 1561 01:12:23,390 --> 01:12:27,530 А тоа значи кога форма со проект на демо е 1562 01:12:27,530 --> 01:12:29,320 поднесени, јавете се на оваа функција. 1563 01:12:29,320 --> 01:12:32,770 >> Но, сега, ако јас го вратите сите на овој, зошто тогаш никако не можев можеби направи 1564 01:12:32,770 --> 01:12:34,850 ова пред една момент? 1565 01:12:34,850 --> 01:12:36,840 Па, ова е анонимен функција. 1566 01:12:36,840 --> 01:12:41,080 Затоа што искрено, сфатив зошто сум јас пречеше да губите време за прогласување на 1567 01:12:41,080 --> 01:12:45,540 функција наречена управувачот () само да се јавите го во едно и само едно место? 1568 01:12:45,540 --> 01:12:48,640 Ако јас не треба на име, а јас не треба да се јавите тоа повеќе од едно место, 1569 01:12:48,640 --> 01:12:51,200 ајде само спроведување на функција право, каде што им е потребно. 1570 01:12:51,200 --> 01:12:55,190 И така го вклучите Javascript-и PHP поддршка што се нарекуваат анонимни функции кои 1571 01:12:55,190 --> 01:12:57,900 дозволете ми да го стори токму тоа овде. 1572 01:12:57,900 --> 01:12:59,570 >> Но, ние сме само гребење по површината. 1573 01:12:59,570 --> 01:13:02,430 Ајде да се закачам со само неколку конечна примери овде. 1574 01:13:02,430 --> 01:13:04,600 >> Ако одам во quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Забележите дека ова е всушност PHP функција, програма PHP, дека сум го напишала 1577 01:13:11,870 --> 01:13:15,270 дека очекува HTTP параметар се нарекува симбол, и јас може да помине во 1578 01:13:15,270 --> 01:13:16,730 вредност како FB. 1579 01:13:16,730 --> 01:13:20,010 И ако ние всушност се погледне на извор код, тоа е доведување во прашање бесплатен веб-сајт 1580 01:13:20,010 --> 01:13:23,680 наречен Јаху финансии, исто како и п-сет седум, а тоа е враќање кон мене 1581 01:13:23,680 --> 01:13:26,580 нешто очигледно формат познат е JSON - 1582 01:13:26,580 --> 01:13:28,010 Го вклучите Javascript Цел Нотација. 1583 01:13:28,010 --> 01:13:28,810 Тоа е само еден објект. 1584 01:13:28,810 --> 01:13:32,500 Обрнете внимание на големите загради, наводници, на дебелото црево, и запирки. 1585 01:13:32,500 --> 01:13:34,720 >> Сега меѓувреме, ова е прилично кул. 1586 01:13:34,720 --> 01:13:38,520 Затоа што веројатно може да се користи за програмирање јазик да се генерираат URL- 1587 01:13:38,520 --> 01:13:40,370 кои изгледаат како оваа динамички, нели? 1588 01:13:40,370 --> 01:13:43,340 Можам да го промените ова на Google и да се вратам на Google 1589 01:13:43,340 --> 01:13:47,930 цената на акциите на $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Да видиме ако не можеме да ја користите оваа сега. 1591 01:13:49,640 --> 01:13:56,590 >> Дозволете ми да одат на Ајакс-0 тука, што изгледа како следново. 1592 01:13:56,590 --> 01:13:59,750 Тоа е само веб-сајт кој има форма со едно копче. 1593 01:13:59,750 --> 01:14:05,860 Дозволете ми тука оди напред и да напишеш во YHOO за акции симбол на Јаху, кликнете Get 1594 01:14:05,860 --> 01:14:10,530 Понуда, а сега забележите сум добил сигнал со 32,86. 1595 01:14:10,530 --> 01:14:14,050 >> Дозволете ми, всушност, оди на познавач верзија на оваа страница, верзија две, и 1596 01:14:14,050 --> 01:14:17,530 тип во да речеме Мајкрософт, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Добие Изрека. 1598 01:14:18,410 --> 01:14:19,850 И сега забележите, нема алармирање. 1599 01:14:19,850 --> 01:14:22,770 Забележите каде што вели цена да бидат определени? 1600 01:14:22,770 --> 01:14:27,060 Таму е наједноставниот на примери кои загатки на она што Gchat, и Фејсбук 1601 01:14:27,060 --> 01:14:30,070 Чет, и Gmail и други такви веб-сајтови се прават од страна, всушност, 1602 01:14:30,070 --> 01:14:31,290 менување на веб-страница. 1603 01:14:31,290 --> 01:14:31,800 >> Забележуваат тоа. 1604 01:14:31,800 --> 01:14:33,120 Дозволете ми да ја превчитате страната. 1605 01:14:33,120 --> 01:14:35,080 Дозволете ми да се отвори инспектор Хром. 1606 01:14:35,080 --> 01:14:36,890 Дозволете ми да одат на елементи табот овде долу. 1607 01:14:36,890 --> 01:14:42,310 Сега забележите ако јас зум во долу тука и отвори овој горе, забележите дека ова е мојот 1608 01:14:42,310 --> 01:14:44,500 HTML ДОМ - мојот документ објектот модел. 1609 01:14:44,500 --> 01:14:45,920 Ова е мојот HTML. 1610 01:14:45,920 --> 01:14:48,750 Но сега забележите, иако тоа се случува да биде малку тешко да се види во двете 1611 01:14:48,750 --> 01:14:52,080 места одеднаш, ако јас напишете FB до тука, да се види на дното 1612 01:14:52,080 --> 01:14:54,110 на екранот само. 1613 01:14:54,110 --> 01:14:57,720 >> Тоа е всушност менување на мојот HTML на мува. 1614 01:14:57,720 --> 01:15:01,670 И таа го прави ова доста едноставно со правење нешто како ова. 1615 01:15:01,670 --> 01:15:06,800 Ако јас се отвори Ајакс-2, забележите спроведување нешто како секси како 1616 01:15:06,800 --> 01:15:09,560 дека, иако тоа е прилично грда, но како што е софистициран како што 1617 01:15:09,560 --> 01:15:11,910 функционално, има некои HTML на дното. 1618 01:15:11,910 --> 01:15:13,810 Но забележиш јас се користи да таг. 1619 01:15:13,810 --> 01:15:16,640 Ние не сум користел ова порано, но ова е како, но тоа не сила 1620 01:15:16,640 --> 01:15:17,840 сè што кон нова линија. 1621 01:15:17,840 --> 01:15:20,830 Тоа едноставно го прави правоаголни регионот на иста линија суштина. 1622 01:15:20,830 --> 01:15:22,870 >> Забележете дека јас го даде проект на цената. 1623 01:15:22,870 --> 01:15:26,800 И излегува од страна на користење на истите JavaScript библиотека, имам функција 1624 01:15:26,800 --> 01:15:30,440 наречен цитат () што се вика кога форма се поднесува. 1625 01:15:30,440 --> 01:15:31,800 И она што го правам е ова. 1626 01:15:31,800 --> 01:15:35,730 Јас сум за прогласување на променлива во вклучите Javascript- наречен рачно, заштеда на вредноста 1627 01:15:35,730 --> 01:15:38,650 quote.php? симбол =. 1628 01:15:38,650 --> 01:15:44,220 Со други зборови, јас сум почетокот да се подготви за HTTP барање, а потоа 1629 01:15:44,220 --> 01:15:49,250 Јас сум надоврзување врз кои со плус без оглед на елементот со проект 1630 01:15:49,250 --> 01:15:54,190 на симболот е, која се забележи е дека полето за текст право овде долу. 1631 01:15:54,190 --> 01:15:56,630 Па како само имавме форми во минатото. 1632 01:15:56,630 --> 01:16:01,450 >> А потоа излегува во jQuery, ако се јавам. Val (), кој повикува на val 1633 01:16:01,450 --> 01:16:05,900 функција, вредност функција, која добива она што корисникот го внесе внатре 1634 01:16:05,900 --> 01:16:08,920 А потоа сите на мрежниот сообраќај што се случува е тоа. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> И како настрана, знакот за долар е само стенографија нотација. 1637 01:16:13,720 --> 01:16:16,860 Тоа е навистина jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Ме да JSON од овој рачно, и кога Барањето доаѓа назад, ова го нарекуваат 1639 01:16:21,520 --> 01:16:26,550 функцијата и во како аргумент што се вратија од серверот. 1640 01:16:26,550 --> 01:16:31,205 >> Значи со други зборови, ако јас се вратиме на пребарувач, и ќе се вратам да quote.php, 1641 01:16:31,205 --> 01:16:35,590 она што мојот интернет пребарувач го прави е добивање ова парче на податоци. 1642 01:16:35,590 --> 01:16:38,930 И кога ќе одам на оваа веб страна тука, известување, ако ние наместо да одат на мрежата 1643 01:16:38,930 --> 01:16:43,820 табот и чистење, а потоа напишете во нешто како GOOG за Google и ќе добиете 1644 01:16:43,820 --> 01:16:46,340 Цитат, забележите страница не се промени. 1645 01:16:46,340 --> 01:16:50,990 Но HTTP барање е направен, и она што се врати тука, ако се погледне на 1646 01:16:50,990 --> 01:16:56,130 одговор е целиот куп на JSON дека ние се пристапи конечно со 1647 01:16:56,130 --> 01:16:58,070 оваа едноставна линија тука. 1648 01:16:58,070 --> 01:17:00,150 >> Податоци е она што беше добивано од серверот. 1649 01:17:00,150 --> 01:17:02,120 Цената е името на Клучот е гајле за него. 1650 01:17:02,120 --> 01:17:05,230 Па data.price ми дава тоа. 1651 01:17:05,230 --> 01:17:07,540 >> Сега во меѓувреме, и ова е последниот пример. 1652 01:17:07,540 --> 01:17:09,280 Можете да го направите уште повеќе со оваа страница. 1653 01:17:09,280 --> 01:17:12,440 Еден всушност, добро две. 1654 01:17:12,440 --> 01:17:14,780 Ние може да го врати таг, ако се сеќавате ова. 1655 01:17:14,780 --> 01:17:15,850 Тоа е да го вклучите Javascript. 1656 01:17:15,850 --> 01:17:17,110 Ние можеме да го направите тоа. 1657 01:17:17,110 --> 01:17:17,690 Многу возбудлив. 1658 01:17:17,690 --> 01:17:18,800 Ќе им го оставиме тоа како cliffhanger. 1659 01:17:18,800 --> 01:17:21,590 >> Но повеќе возбудливо, можете да се прават работите вака. 1660 01:17:21,590 --> 01:17:25,940 Ако одам во Прецизни-1, што се испоставува дека Хром знае дека се наоѓаме во 1661 01:17:25,940 --> 01:17:30,672 ширина должина 42,37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Па има дури и повеќе има на ваше располагање. 1663 01:17:32,940 --> 01:17:34,290 Но повеќе за тоа следната недела. 1664 01:17:34,290 --> 01:17:35,540 Те видат понеделник. 1665 01:17:35,540 --> 01:17:37,558