1 00:00:00,000 --> 00:00:02,862 >> [音樂播放] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID馬蘭:這是CS50。 4 00:00:11,580 --> 00:00:12,880 這是9週的開始。 5 00:00:12,880 --> 00:00:15,797 這是什麼將有 是布爾先生誕辰200週年。 6 00:00:15,797 --> 00:00:17,630 因此,這是研究員 對他們,我們已經提到 7 00:00:17,630 --> 00:00:21,800 相當長的一段時間關於使用 布爾變量真與假, 8 00:00:21,800 --> 00:00:22,910 1和0這樣。 9 00:00:22,910 --> 00:00:25,270 這是谷歌的 今天向他表示敬意。 10 00:00:25,270 --> 00:00:26,489 他會變成200。 11 00:00:26,489 --> 00:00:28,280 所以,如果你想 我們一起CS50午餐 12 00:00:28,280 --> 00:00:30,279 看看鏈接 在球場上的網站。 13 00:00:30,279 --> 00:00:33,580 而這樣的面孔和朋友 這裡在劍橋這些等待著你。 14 00:00:33,580 --> 00:00:35,360 像這些面孔等待著你在紐黑文。 15 00:00:35,360 --> 00:00:37,800 而且,事實上,肯在 紐黑文熱情地讓 16 00:00:37,800 --> 00:00:41,594 什麼叫禮的GIF動畫 這裡在最近lunch--一個GIF尚未 17 00:00:41,594 --> 00:00:44,260 另一圖形文件格式, 與你familiar--的 18 00:00:44,260 --> 00:00:46,300 看起來有點像這樣。 19 00:00:46,300 --> 00:00:48,179 因此,只要序列of--確定。 20 00:00:48,179 --> 00:00:49,720 這裡沒有人在劍橋的笑。 21 00:00:49,720 --> 00:00:51,720 但在紐黑文,這 真可笑,對不對? 22 00:00:51,720 --> 00:00:52,350 好的。 23 00:00:52,350 --> 00:00:53,940 >> 所以不要我們一起在那裡。 24 00:00:53,940 --> 00:00:55,900 在這裡,在哈佛, 具體而言,本週三, 25 00:00:55,900 --> 00:00:59,480 如果你是一個大二或大一even-- 甚至junior--製作思路 26 00:00:59,480 --> 00:01:01,563 交換機到計算機 科學,知道有會 27 00:01:01,563 --> 00:01:04,440 被一個CS建議交易會 週三,下課後不久, 28 00:01:04,440 --> 00:01:08,040 在下午4點,在計算機 科學樓馬克斯韋爾德沃金。 29 00:01:08,040 --> 00:01:11,890 我們會把這個在球場上的 網站的明天,也是如此。 30 00:01:11,890 --> 00:01:14,430 甜甜圈,我被告知,將送達。 31 00:01:14,430 --> 00:01:15,180 >> 好的。 32 00:01:15,180 --> 00:01:18,790 太好笑了story--我被戳 圍繞在互聯網上, 33 00:01:18,790 --> 00:01:23,575 我發現一些舊檔案 我以前的網站。 34 00:01:23,575 --> 00:01:25,950 而事實證明out--解決此 時間,似乎很及時 35 00:01:25,950 --> 00:01:28,910 因為據我了解,在UC選舉 即將裝備起來。 36 00:01:28,910 --> 00:01:32,230 所以,我跑了UC,淒慘地丟失。 37 00:01:32,230 --> 00:01:34,770 也許這是部分原因。 38 00:01:34,770 --> 00:01:37,600 因此,這是我的網站的時候。 39 00:01:37,600 --> 00:01:40,477 出於某種原因,我認為這是 一個好主意,告訴人們面前 40 00:01:40,477 --> 00:01:43,310 什麼我的平台是,為什麼他們 應該投我一票,他們有 41 00:01:43,310 --> 00:01:47,770 點擊進入地發現, 信息,現在回想起來是 42 00:01:47,770 --> 00:01:48,660 那種讓人毛骨悚然。 43 00:01:48,660 --> 00:01:50,910 我真的不知道那是什麼東西。 44 00:01:50,910 --> 00:01:53,140 >> 但它肯定沒有 幫助我的競選活動。 45 00:01:53,140 --> 00:01:56,874 我還發現,高層 year--我有這個布偶日曆。 46 00:01:56,874 --> 00:01:58,540 提線木偶是一種流行當時的情況。 47 00:01:58,540 --> 00:01:59,456 或者,也許他們不是。 48 00:01:59,456 --> 00:02:01,790 我有一個布偶日曆當時的情況。 49 00:02:01,790 --> 00:02:04,860 而且我認為這會是很酷的名字 我的電腦哈佛的網絡 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu。 51 00:02:07,460 --> 00:02:10,370 當時,我們都獨一無二 識別主機名。 52 00:02:10,370 --> 00:02:13,150 你可以選擇一些虛榮 名稱,而不是你自己的名字。 53 00:02:13,150 --> 00:02:15,580 而我就跟著蛙人出於某種原因。 54 00:02:15,580 --> 00:02:19,040 >> 然後我started--我花了很多 時間通過點擊這些鏈接 55 00:02:19,040 --> 00:02:20,280 今天上午。 56 00:02:20,280 --> 00:02:24,690 這是我對網頁, 現在似乎有種可愛。 57 00:02:24,690 --> 00:02:28,210 但是,這也證明了剛 技術多遠已經到來。 58 00:02:28,210 --> 00:02:30,310 我的意思是,早在一天, 486是什麼東西。 59 00:02:30,310 --> 00:02:34,090 這些天來,它的超級,超級, 超慢,好少 60 00:02:34,090 --> 00:02:36,216 比你可能在你的 自己的腰包,這些天。 61 00:02:36,216 --> 00:02:38,465 還有更多在那裡, 更是尷尬。 62 00:02:38,465 --> 00:02:39,770 所以我會離開它。 63 00:02:39,770 --> 00:02:42,640 但是,這是我的第一次 進軍web--哦,不。 64 00:02:42,640 --> 00:02:43,180 這是不是。 65 00:02:43,180 --> 00:02:47,000 我第一次真正涉足網頁編程 是這樣的網站,我只是忘了。 66 00:02:47,000 --> 00:02:50,620 在某些時候,我學會了如何 做重複的背景圖像。 67 00:02:50,620 --> 00:02:55,260 所以我發現這個平鋪有效, 像冰球運動員,足球和高爾夫球 68 00:02:55,260 --> 00:02:58,040 球,或不管它是什麼 為Frosh IM的網站。 69 00:02:58,040 --> 00:03:01,390 這實際上,真正的 第一個基於網絡的項目,我花了on-- 70 00:03:01,390 --> 00:03:03,880 我想,也許大二 今年,初中year-- 71 00:03:03,880 --> 00:03:07,622 服用CS50和CS51,一前一後 的共同後續類。 72 00:03:07,622 --> 00:03:09,330 我注意到,在尋找 通過檔案 73 00:03:09,330 --> 00:03:12,150 這對我的繼任者之一, 樣的朋友,李改 74 00:03:12,150 --> 00:03:13,480 版權自言自語。 75 00:03:13,480 --> 00:03:17,520 但是,這確實是東西 我應該對自己的尷尬。 76 00:03:17,520 --> 00:03:19,370 但在當時,這 是第一個網站, 77 00:03:19,370 --> 00:03:22,220 正如我所說的幾個星期前, 由新生能 78 00:03:22,220 --> 00:03:24,350 從這裡註冊校內體育活動。 79 00:03:24,350 --> 00:03:27,950 所以,事實證明, 該背景圖片 80 00:03:27,950 --> 00:03:29,530 這樣是不是個好主意。 81 00:03:29,530 --> 00:03:31,840 但在網絡是新的,並 我們都嘗試。 82 00:03:31,840 --> 00:03:34,310 這就是我 顯然沒有當時。 83 00:03:34,310 --> 00:03:34,810 好的。 84 00:03:34,810 --> 00:03:38,020 因此,事不宜遲,我們切換 齒輪今天給你的,真的, 85 00:03:38,020 --> 00:03:42,250 你可能會發現的最後一塊 對於最終的項目特別有用 86 00:03:42,250 --> 00:03:44,780 而且,將開始到 使整個萬維網 87 00:03:44,780 --> 00:03:46,680 感覺有點更容易理解。 88 00:03:46,680 --> 00:03:49,460 事實上,我們將引進 多了一個編程語言 89 00:03:49,460 --> 00:03:52,474 JavaScript調用,它類似於 並以不同的方式不同 90 00:03:52,474 --> 00:03:54,140 從語言,我們已經看到了迄今。 91 00:03:54,140 --> 00:03:55,807 >> 所以C,召回,是這樣的編譯語言。 92 00:03:55,807 --> 00:03:57,473 你必須通過一個編譯器運行它。 93 00:03:57,473 --> 00:03:59,810 你得到的源代碼,對象 代碼,或零和一。 94 00:03:59,810 --> 00:04:03,000 而這些都是零和一的 你的CPU,中央處理單元, 95 00:04:03,000 --> 00:04:04,360 真正理解。 96 00:04:04,360 --> 00:04:06,610 PHP,相比之下,不 編譯型語言。 97 00:04:06,610 --> 00:04:08,772 這是什麼? 98 00:04:08,772 --> 00:04:09,980 這是一種解釋型語言。 99 00:04:09,980 --> 00:04:11,750 因此,有一些程序 所謂的解釋器, 100 00:04:11,750 --> 00:04:13,708 具有讀取它 - 頂到 底部,左到right-- 101 00:04:13,708 --> 00:04:16,519 並找出所有的東西 你的語法確實和手段, 102 00:04:16,519 --> 00:04:20,200 不管它是一個循環或條件 或編程的任何其他數量 103 00:04:20,200 --> 00:04:20,740 構建。 104 00:04:20,740 --> 00:04:22,210 所以這是一種解釋型語言。 105 00:04:22,210 --> 00:04:23,910 >> 然後,我們介紹了HTML。 106 00:04:23,910 --> 00:04:26,440 和HTML甚至不是一個 編程語言。 107 00:04:26,440 --> 00:04:28,110 我們會叫什麼? 108 00:04:28,110 --> 00:04:31,650 一種標記語言,這就是 幾分說它奇特的方式 109 00:04:31,650 --> 00:04:35,820 沒有像編程構造 我們看到即使回到划痕的一天。 110 00:04:35,820 --> 00:04:36,720 有沒有循環。 111 00:04:36,720 --> 00:04:37,920 有沒有條件。 112 00:04:37,920 --> 00:04:40,820 這真的是一門語言 有關標記您的數據 113 00:04:40,820 --> 00:04:43,620 和格式化或 構建以某種方式。 114 00:04:43,620 --> 00:04:46,147 >> 的CSS,同時,類似地 不是一種編程語言。 115 00:04:46,147 --> 00:04:47,730 它甚至更美觀為主。 116 00:04:47,730 --> 00:04:50,470 它可以讓你排序的微調 像字體大小和顏色 117 00:04:50,470 --> 00:04:51,850 和安置了這一切。 118 00:04:51,850 --> 00:04:52,370 然後,我們有 119 00:04:52,370 --> 00:04:53,160 >> SQL。 120 00:04:53,160 --> 00:04:56,010 因此,SQL確實是一個編程 在一定意義上的語言, 121 00:04:56,010 --> 00:04:59,330 雖然定制 具體到數據庫。 122 00:04:59,330 --> 00:05:03,347 但是,即使我們只為您介紹 選擇和插入和刪除和更新 123 00:05:03,347 --> 00:05:05,430 和其他幾個, 原來你其實可以 124 00:05:05,430 --> 00:05:07,380 寫函數或者 程序,因為它們是 125 00:05:07,380 --> 00:05:11,270 所謂的,在SQL的外觀和行為 很喜歡PHP和C函數。 126 00:05:11,270 --> 00:05:12,390 所以知道這些存在。 127 00:05:12,390 --> 00:05:15,348 但是,我們甚至不與他們不屑 因為我們只是劃傷表面在這裡。 128 00:05:15,348 --> 00:05:18,600 然後JavaScript中,最後的 我們的語言正式出台。 129 00:05:18,600 --> 00:05:21,029 因此,JavaScript的,也就是 一種解釋型語言。 130 00:05:21,029 --> 00:05:23,070 而那些熟悉的,做的 要區分它 131 00:05:23,070 --> 00:05:26,960 一些特徵 從C和PHP? 132 00:05:26,960 --> 00:05:28,300 是什麼使得它有什麼不同? 133 00:05:28,300 --> 00:05:29,650 >> 聽眾:這不是編譯。 134 00:05:29,650 --> 00:05:29,930 >> DAVID馬蘭:再說一遍嗎? 135 00:05:29,930 --> 00:05:31,200 >> 聽眾:這不是編譯。 136 00:05:31,200 --> 00:05:31,930 >> DAVID馬蘭:這不是編譯。 137 00:05:31,930 --> 00:05:33,450 因此它也被解釋。 138 00:05:33,450 --> 00:05:34,760 所以它不是編譯。 139 00:05:34,760 --> 00:05:37,210 但是,這使得它像PHP一點。 140 00:05:37,210 --> 00:05:39,545 但它仍然從不同的 PHP在一些醒目的方式, 141 00:05:39,545 --> 00:05:40,920 至少在方式,我們將使用它。 142 00:05:40,920 --> 00:05:41,205 是嗎? 143 00:05:41,205 --> 00:05:41,940 >> 聽眾:它運行的客戶端。 144 00:05:41,940 --> 00:05:44,000 >> DAVID馬蘭:它運行 客戶端,通常。 145 00:05:44,000 --> 00:05:47,190 這確實是顯著 特點對於我們現在。 146 00:05:47,190 --> 00:05:51,170 C組服務器端的意義 我們所做的一切都是在CS50的IDE。 147 00:05:51,170 --> 00:05:53,630 PHP迄今已 服務器端,只要 148 00:05:53,630 --> 00:05:56,550 因為它也一樣,得到interpreted-- 沒有編制,但interpreted-- 149 00:05:56,550 --> 00:06:00,690 裡面的CS50 IDE,這當然是 在雲中僅有一個或多個服務器。 150 00:06:00,690 --> 00:06:03,070 >> 但JavaScript中,甚至 雖然你你會 151 00:06:03,070 --> 00:06:07,000 開始寫它,比方說,PSET 八,也許最終projects--你 152 00:06:07,000 --> 00:06:09,620 要糾正它 CS50 IDE和保存 153 00:06:09,620 --> 00:06:14,760 在內部CS50 IDE,IDE CS50文件 和,反過來,雲服務器 154 00:06:14,760 --> 00:06:19,160 其所託管的,都不會 解釋或執行代碼。 155 00:06:19,160 --> 00:06:23,880 相反,它會在要發送 未改變形式向下到瀏覽器。 156 00:06:23,880 --> 00:06:26,990 而且它然後將是IE瀏覽器 或者Chrome或Firefox或Safari 157 00:06:26,990 --> 00:06:30,697 或任何實際解釋 它,從上到下,從左到右。 158 00:06:30,697 --> 00:06:32,780 因此,關鍵的區別 特徵為今天 159 00:06:32,780 --> 00:06:36,110 是,JavaScript是客戶端 和PHP,例如, 160 00:06:36,110 --> 00:06:37,690 已被服務器端。 161 00:06:37,690 --> 00:06:40,920 現在,這種具有有趣的含義 為一樣,知識產權 162 00:06:40,920 --> 00:06:42,660 誰又能真正看到你的代碼。 163 00:06:42,660 --> 00:06:44,860 事實上,你可以去 在網絡上看到最 164 00:06:44,860 --> 00:06:47,530 有人有任何代碼 用JavaScript編寫的。 165 00:06:47,530 --> 00:06:50,230 有時是可讀的, 有時它的模糊處理。 166 00:06:50,230 --> 00:06:52,550 但更多的是對在適當的時候。 167 00:06:52,550 --> 00:06:57,530 >> 所以JavaScript中,很好地不夠,是 超級相似,語法,為C. 168 00:06:57,530 --> 00:06:59,364 和很多像PHP, 沒有主要功能。 169 00:06:59,364 --> 00:07:02,113 如果你想開始寫 JavaScript代碼,你會看到今天, 170 00:07:02,113 --> 00:07:03,270 你剛開始寫它。 171 00:07:03,270 --> 00:07:06,910 但它,你會看到,特別是 有用在Web瀏覽器的上下文中。 172 00:07:06,910 --> 00:07:09,820 然而,我的小 disclaimer--通常先前已經 173 00:07:09,820 --> 00:07:13,790 是說,你可以不斷 今天使用JavaScript的服務器端 174 00:07:13,790 --> 00:07:17,655 使用名為Node.js的花式框架 的一些CS50自己的應用程序 175 00:07:17,655 --> 00:07:18,280 被寫入。 176 00:07:18,280 --> 00:07:20,640 50檢查實際使用node.js中 177 00:07:20,640 --> 00:07:24,140 但是,我們要重點關注 JavaScript客戶端現在開始。 178 00:07:24,140 --> 00:07:26,750 >> 因此,這裡是一組在PHP中的條件。 179 00:07:26,750 --> 00:07:29,350 對不起,in--事實上,這 聲明中,也就是正確的。 180 00:07:29,350 --> 00:07:32,200 這裡也是一組 條件在JavaScript中。 181 00:07:32,200 --> 00:07:35,560 在語法上,它是 與C和PHP。 182 00:07:35,560 --> 00:07:39,040 布爾先生的表達式, 同樣,語法 183 00:07:39,040 --> 00:07:41,190 等同於C和PHP。 184 00:07:41,190 --> 00:07:44,100 我們也有在開關 JavaScript代碼看起來完全相同。 185 00:07:44,100 --> 00:07:46,350 我們有一個循環是 結構相同, 186 00:07:46,350 --> 00:07:48,140 while循環,做while循環。 187 00:07:48,140 --> 00:07:49,980 >> 這其中有一點不同。 188 00:07:49,980 --> 00:07:53,120 PHP有每個結構 你可能會使用 189 00:07:53,120 --> 00:07:55,320 還是會在PSET七種用途,也許吧。 190 00:07:55,320 --> 00:07:59,460 JavaScript有此特殊版本 對,你從字面上說些什麼 191 00:07:59,460 --> 00:08:03,864 像可變密鑰中的對象,這 是說一個非常簡潔的方式, 192 00:08:03,864 --> 00:08:06,780 如果我有一個object--,我們將 在moment--再談論這些 193 00:08:06,780 --> 00:08:10,370 我想遍歷所有 內的關鍵值對的, 194 00:08:10,370 --> 00:08:13,620 我沒有搞清楚如何 數值索引它們與零個,一個 195 00:08:13,620 --> 00:08:14,580 二,三。 196 00:08:14,580 --> 00:08:15,900 >> 我可以從字面上講。 197 00:08:15,900 --> 00:08:20,740 並在每個迭代中,JavaScript的 我將更新可變密鑰 198 00:08:20,740 --> 00:08:24,810 成為第一密鑰,那麼下一個鍵, 然後下鍵,則下一個鍵, 199 00:08:24,810 --> 00:08:25,510 等等。 200 00:08:25,510 --> 00:08:30,000 我可以通過治療得到其價值 在JavaScript對象,因為我們將看到, 201 00:08:30,000 --> 00:08:32,584 就好像它是一個 關聯數組在PHP。 202 00:08:32,584 --> 00:08:35,750 事實上,如果你終於纏你 介意身邊有什麼關聯數組 203 00:08:35,750 --> 00:08:40,140 在PHP中,你可以把它現在的 相同在JavaScript的對象。 204 00:08:40,140 --> 00:08:42,030 但是,這一點 過於簡單化。 205 00:08:42,030 --> 00:08:47,230 >> 陣列看,夠漂亮,相同的 到PHP除了一個字符。 206 00:08:47,230 --> 00:08:51,425 有一件事在這裡失踪 我們確實看到上週與PHP。 207 00:08:51,425 --> 00:08:52,050 什麼是不加嗎? 208 00:08:52,050 --> 00:08:53,310 是嗎? 209 00:08:53,310 --> 00:08:54,090 沒有美元符號。 210 00:08:54,090 --> 00:08:56,240 所以,我們又回到了一 比較正常的世界裡, 211 00:08:56,240 --> 00:08:58,050 變量沒有美元符號。 212 00:08:58,050 --> 00:09:00,810 但是你做前綴他們 使用var,通常。 213 00:09:00,810 --> 00:09:02,230 和VAR是指變量。 214 00:09:02,230 --> 00:09:06,440 而像PHP是鬆散 typed--其中有型, 215 00:09:06,440 --> 00:09:10,120 有數字和字符串 和花車等forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript的同樣有型。 217 00:09:11,570 --> 00:09:15,470 但它弱類型,因為我們的 程序員不必指定它們。 218 00:09:15,470 --> 00:09:18,980 我們只需要知道 不同類型的存在。 219 00:09:18,980 --> 00:09:21,690 >> 變量,meanwhile--這裡是如何 我們可能會宣布“你好,世界” 220 00:09:21,690 --> 00:09:22,230 作為字符串。 221 00:09:22,230 --> 00:09:24,890 請注意,這是相同的 PHP,但沒有美元符號。 222 00:09:24,890 --> 00:09:27,120 這是值得我們 開始看到更多的今天, 223 00:09:27,120 --> 00:09:30,990 因此,你有一個對象 與鍵和值。 224 00:09:30,990 --> 00:09:32,990 如果你想嘗試 從去年week--推斷 225 00:09:32,990 --> 00:09:34,730 語法是有點不同。 226 00:09:34,730 --> 00:09:39,740 不過有點神智check--多少 按鍵也該對象似乎有? 227 00:09:39,740 --> 00:09:40,850 所以,我看到四個。 228 00:09:40,850 --> 00:09:43,560 我看到兩個。 229 00:09:43,560 --> 00:09:44,680 >> 因此,它實際上是兩個。 230 00:09:44,680 --> 00:09:47,260 因此,這是一個集 兩個鍵 - 值對。 231 00:09:47,260 --> 00:09:49,820 最關鍵的是符號,它的值是FB。 232 00:09:49,820 --> 00:09:52,620 最關鍵的是價格,其值為101.53。 233 00:09:52,620 --> 00:09:54,230 所以這是兩個鍵 - 值對。 234 00:09:54,230 --> 00:09:58,120 請記住,PHP--而這又是 只是那種語法的差異。 235 00:09:58,120 --> 00:10:00,170 這還不是所有的 智力有趣。 236 00:10:00,170 --> 00:10:04,610 PHP可能已經寫了這個相同的 作為follows--報價的事情,等於。 237 00:10:04,610 --> 00:10:06,730 而我,這些改變方括號。 238 00:10:06,730 --> 00:10:11,240 然後,我改變這 帶引號的字,“價格”。 239 00:10:11,240 --> 00:10:12,500 然後,我不使用冒號。 240 00:10:12,500 --> 00:10:15,060 我才用什麼上週? 241 00:10:15,060 --> 00:10:18,290 是啊,等號 箭頭時髦的符號。 242 00:10:18,290 --> 00:10:21,470 >> 然後,我在這裡做同樣的事情。 243 00:10:21,470 --> 00:10:23,580 這裡同樣的事情。 244 00:10:23,580 --> 00:10:24,240 而這一切。 245 00:10:24,240 --> 00:10:27,752 所以這是很好,如果這還沒有 真正沉沒在內存只 246 00:10:27,752 --> 00:10:29,960 但因為它是真的 智力無趣。 247 00:10:29,960 --> 00:10:31,660 這只是語法上的不同。 248 00:10:31,660 --> 00:10:33,230 但思路是完全一樣的。 249 00:10:33,230 --> 00:10:35,910 內該變量的 在JavaScript報價 250 00:10:35,910 --> 00:10:39,020 是鍵值對的集合, 其中之一是符號,其中一個 251 00:10:39,020 --> 00:10:39,690 是價格。 252 00:10:39,690 --> 00:10:42,340 我可以在這些值獲得 以下語法。 253 00:10:42,340 --> 00:10:46,280 就像在PHP中,我可以 做一些like--讓 254 00:10:46,280 --> 00:10:48,590 我做這個框大一點。 255 00:10:48,590 --> 00:10:52,750 就像在PHP中,我可以 使this--哦,該死。 256 00:10:52,750 --> 00:10:53,250 來吧。 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> 就像在PHP-- OK,我們將 只要使用演示說明。 259 00:11:00,800 --> 00:11:06,010 就像在PHP中,我可以 做$報價$報價[“符號”], 260 00:11:06,010 --> 00:11:08,860 這將讓我 值“的象徵。” 261 00:11:08,860 --> 00:11:12,800 在JavaScript中,這將是 相同的,因此我可以做到這一點。 262 00:11:12,800 --> 00:11:14,850 唯一那 缺少的是美元符號。 263 00:11:14,850 --> 00:11:17,470 >> 這麼好聽夠的話,有 沒有多少新的語法。 264 00:11:17,470 --> 00:11:21,025 因此,我們關注什麼今天,真的, 一些想法和應用。 265 00:11:21,025 --> 00:11:22,900 和第一個這樣的 應用程序,你可能 266 00:11:22,900 --> 00:11:26,090 已經看到,如果你潛入的pset 7已經是這樣的語法。 267 00:11:26,090 --> 00:11:28,980 因此,在PSET七,如果你 見過或沒見過它, 268 00:11:28,980 --> 00:11:33,570 知道,有一個文件就是我們給 你叫config.json--的JavaScript 269 00:11:33,570 --> 00:11:34,661 對象符號。 270 00:11:34,661 --> 00:11:35,160 為什麼呢? 271 00:11:35,160 --> 00:11:39,540 我們希望能夠為您提供 一些鍵值對的模板。 272 00:11:39,540 --> 00:11:44,290 我們希望能夠給你一個列表 主機,服務器的名稱。 273 00:11:44,290 --> 00:11:46,710 我們想給你一個 佔位符,您的用戶名 274 00:11:46,710 --> 00:11:48,210 和佔位符,您的密碼。 275 00:11:48,210 --> 00:11:49,410 如果你沒有看到 這還沒有,不用擔心。 276 00:11:49,410 --> 00:11:51,340 更多關於這方面的pset 7 [?規範。 ?]然後, 277 00:11:51,340 --> 00:11:53,173 很明顯,我們希望你 填寫待辦事項 278 00:11:53,173 --> 00:11:55,310 因為當你登錄 CS50 IDE,你們每個人 279 00:11:55,310 --> 00:11:57,630 有你自己的用戶名和密碼。 280 00:11:57,630 --> 00:12:00,910 >> 因此,我們可能已經使用了半打 或多個不同的文件格式。 281 00:12:00,910 --> 00:12:02,940 我們可以使用一個.txt文件。 282 00:12:02,940 --> 00:12:04,570 我們可以用一個CSV文件。 283 00:12:04,570 --> 00:12:06,745 我們可以使用過的 INI文件,XML文件, 284 00:12:06,745 --> 00:12:09,370 一大堆更多的縮寫詞 你可能沒有聽說過。 285 00:12:09,370 --> 00:12:11,244 這是一種武斷 在一天結束。 286 00:12:11,244 --> 00:12:16,030 但超受追捧是一個文本 格式,稱為JSON-- JavaScript對象 287 00:12:16,030 --> 00:12:18,460 Notation--,看起來像這樣。 288 00:12:18,460 --> 00:12:20,890 這是一個有點神秘, 但要注意的模式。 289 00:12:20,890 --> 00:12:24,180 你開始以開放的花 撐,你最終以相同。 290 00:12:24,180 --> 00:12:26,550 裡面的那是後話。 291 00:12:26,550 --> 00:12:27,920 這是一個鍵值對。 292 00:12:27,920 --> 00:12:30,580 所以這是我的對象 在屏幕上看著這裡 293 00:12:30,580 --> 00:12:33,690 具有一個鍵,它具有一個值。 294 00:12:33,690 --> 00:12:37,610 而就推斷基礎上, 以前的模式,什麼是這裡的關鍵? 295 00:12:37,610 --> 00:12:39,790 數據庫的事 結腸的左側。 296 00:12:39,790 --> 00:12:43,500 >> 現在,該值正好是 一個多行這個時候。 297 00:12:43,500 --> 00:12:46,760 但值以捲曲 振奮並用大括號結束。 298 00:12:46,760 --> 00:12:49,480 所以,你會提出什麼 數據庫的值的類型? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 字典或者,只是更多 簡潔地說,一個對象。 301 00:12:54,670 --> 00:12:55,170 對嗎? 302 00:12:55,170 --> 00:13:00,010 這是怎樣的一個數據結構的 可以使用其他結構內本身。 303 00:13:00,010 --> 00:13:02,750 因此,如果這件事我們 調用一個object--和對象 304 00:13:02,750 --> 00:13:07,101 只是一堆的鍵值pairs--的 數據庫本身的值是一個目的。 305 00:13:07,101 --> 00:13:10,350 數據庫的價值有一大堆 關鍵值對,其中第一個 306 00:13:10,350 --> 00:13:13,130 為主機,然後將其命名,然後 用戶名,然後密碼, 307 00:13:13,130 --> 00:13:17,550 其每個的值,同時,它的 只是一個無聊的雙引號括起來。 308 00:13:17,550 --> 00:13:19,770 >> 因此,即使這不是 超清晰,只是還沒有, 309 00:13:19,770 --> 00:13:22,740 知道,這僅僅是一個 標準,相當無聊的方式 310 00:13:22,740 --> 00:13:25,190 的存儲在一個標準的格式的數據。 311 00:13:25,190 --> 00:13:27,700 但常見的錯誤,你 可能使,即使在PSET七, 312 00:13:27,700 --> 00:13:32,120 是有點愚蠢的事情,就像你 一不小心忽略逗號那裡。 313 00:13:32,120 --> 00:13:34,900 這將導致文件 不一定具有可讀性。 314 00:13:34,900 --> 00:13:38,191 如果你不小心忽略的東西,如 報價,它不會是可讀的。 315 00:13:38,191 --> 00:13:41,654 所以這是一個非常挑剔的文件格式, 但它是一個是超級常見。 316 00:13:41,654 --> 00:13:44,820 而我們碰巧使用它,即使 你不使用任何JavaScript,否則, 317 00:13:44,820 --> 00:13:46,330 在PSET七人。 318 00:13:46,330 --> 00:13:46,860 >> 好的。 319 00:13:46,860 --> 00:13:48,110 所以請記住這張圖片。 320 00:13:48,110 --> 00:13:51,657 我們談到,在HTML中,這 代碼可能會是這樣。 321 00:13:51,657 --> 00:13:54,740 這是超文本標記語言 只是[聽不清]“你好,世界”。 322 00:13:54,740 --> 00:13:57,570 但是,我們提出了一個 前陣子,如果有幫助, 323 00:13:57,570 --> 00:14:00,210 你可能要開始思考 這個已經是一棵樹。 324 00:14:00,210 --> 00:14:03,730 事實上,壓痕,我們 使用只是為了提高可讀性的緣故 325 00:14:03,730 --> 00:14:05,610 或風格的緣故上 左側可以種 326 00:14:05,610 --> 00:14:10,040 被翻譯成這棵樹,在那裡你 有一些特殊的根節點,我們將 327 00:14:10,040 --> 00:14:16,860 一般稱為文件,低於該 是根HTML元素或標記,HTML, 328 00:14:16,860 --> 00:14:19,980 然後具有兩個 兒童,頭部和身體。 329 00:14:19,980 --> 00:14:21,750 >> 然後反過來,頭部有一個標題。 330 00:14:21,750 --> 00:14:23,440 和標題有一個文本值。 331 00:14:23,440 --> 00:14:26,130 而機身同樣具有文本值。 332 00:14:26,130 --> 00:14:29,220 所以,如果你是舒服的說法 這是的,你可以利用這個HTML 333 00:14:29,220 --> 00:14:32,080 並得出類似的圖片 此,右手側 334 00:14:32,080 --> 00:14:35,910 是一個很好的心理模型,因為現在 我們有JavaScript的,編程 335 00:14:35,910 --> 00:14:39,960 語言,瀏覽器可以 執行和解釋給你, 336 00:14:39,960 --> 00:14:42,690 事實證明,什麼 我們即將做的代碼 337 00:14:42,690 --> 00:14:45,320 在開始操作這個 樹結構在存儲器中。 338 00:14:45,320 --> 00:14:47,070 我們沒有建 樹在內存中。 339 00:14:47,070 --> 00:14:49,880 我們沒有那種做 PSET十五風格的數據結構 340 00:14:49,880 --> 00:14:50,650 複雜性。 341 00:14:50,650 --> 00:14:54,610 瀏覽器,很好地不夠,在 解釋的HTML從上到下, 342 00:14:54,610 --> 00:14:58,600 左或右,是從字面上去 手我們指針的等效 343 00:14:58,600 --> 00:15:00,840 以免費的整個樹。 344 00:15:00,840 --> 00:15:02,150 它做了所有的辛勤工作。 345 00:15:02,150 --> 00:15:05,520 這就是Mozilla和蘋果 和其他人已經為我們所做的。 346 00:15:05,520 --> 00:15:09,400 >> 使用JavaScript我們要 能夠控制和改變,做 347 00:15:09,400 --> 00:15:12,910 有趣的東西 那棵樹,否則稱為 348 00:15:12,910 --> 00:15:15,880 作為DOM或文檔對象模型。 349 00:15:15,880 --> 00:15:17,110 什麼樣的事情呢? 350 00:15:17,110 --> 00:15:19,030 嗯,事實證明, 在JavaScript中,有 351 00:15:19,030 --> 00:15:22,800 這個洗衣清單 事件可以發生。 352 00:15:22,800 --> 00:15:26,330 而且,我們還沒有真正使用的 一句話,因為週零和PSET 353 00:15:26,330 --> 00:15:28,240 零,當我們談到划痕。 354 00:15:28,240 --> 00:15:31,390 大多數人可能沒有用 事件在划痕的項目。 355 00:15:31,390 --> 00:15:33,850 但是,你可能還記得 簡單馬可波羅 356 00:15:33,850 --> 00:15:36,760 例如,如果我們有兩個 其中一人的精靈,說,馬可。 357 00:15:36,760 --> 00:15:40,180 其他的人,然後,在收聽 和訊這種情況下,說,馬球。 358 00:15:40,180 --> 00:15:42,080 如果沒有,請隨時 回頭看那麼遠了。 359 00:15:42,080 --> 00:15:44,450 >> 但是,這僅僅是 再說了,你可以種 360 00:15:44,450 --> 00:15:47,730 從這些名稱推斷 事情,JavaScript的,事實證明, 361 00:15:47,730 --> 00:15:53,200 是想給大家一個辦法,聽 鼠標下降或鼠標往上走 362 00:15:53,200 --> 00:15:57,920 或鍵下降或密鑰 上升或onsubmit的ONSELECT 363 00:15:57,920 --> 00:15:59,740 或onresizing東西。 364 00:15:59,740 --> 00:16:03,060 換句話說,任何物理動作 一個人可以使用瀏覽器 365 00:16:03,060 --> 00:16:08,210 你做的每一天,你可以寫 該代碼偵聽這些事件 366 00:16:08,210 --> 00:16:10,220 然後做適當的事情。 367 00:16:10,220 --> 00:16:14,130 >> 舉例來說,如果你使用谷歌地圖, 如果你點擊和移動會發生什麼 368 00:16:14,130 --> 00:16:16,250 鼠標,典型地? 369 00:16:16,250 --> 00:16:17,758 如果您單擊並拖動? 370 00:16:17,758 --> 00:16:18,258 是嗎? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 沒錯。 373 00:16:22,200 --> 00:16:23,159 地圖開始移動。 374 00:16:23,159 --> 00:16:25,616 所以,你可以排序看看有什麼 在這裡,有什麼在那裡。 375 00:16:25,616 --> 00:16:27,130 以及如何做谷歌實現了嗎? 376 00:16:27,130 --> 00:16:29,421 嗯,據推測,他們是 使用一對夫婦的這些事件 377 00:16:29,421 --> 00:16:31,720 聽眾,一個 說,監聽鼠標 378 00:16:31,720 --> 00:16:35,410 down--因此當用戶物理地 推他的觸控板或他或她的鼠標 379 00:16:35,410 --> 00:16:36,010 下來。 380 00:16:36,010 --> 00:16:38,350 然後,我們正在尋找 像運動 381 00:16:38,350 --> 00:16:41,145 或一些其它事件 讓我們捕捉拖累。 382 00:16:41,145 --> 00:16:45,910 而事實上,是拖拉同樣在此 點點可能的選項點名單。 383 00:16:45,910 --> 00:16:49,140 >> 因此,這將是一個強大的 的方式開始響應用戶 384 00:16:49,140 --> 00:16:52,824 甚至在他或她實際點擊 明確的東西像提交。 385 00:16:52,824 --> 00:16:55,240 但是,我們要引進 一對夫婦主題到那裡。 386 00:16:55,240 --> 00:16:58,570 但首先,讓我們來過渡 一些實際代碼。 387 00:16:58,570 --> 00:17:01,450 所以我要去 進取,不斷開拓DOM-0, 388 00:17:01,450 --> 00:17:05,869 這是一個非常簡單的例子 在這裡,如果我放大只是 389 00:17:05,869 --> 00:17:08,500 有此輸入來到我身邊。 390 00:17:08,500 --> 00:17:12,410 而且我要繼續前進,並輸入 “大衛”為我的名,然後點擊提交。 391 00:17:12,410 --> 00:17:17,940 >> 排序,然後,雖然便宜,我 有這樣的提示彈出,上面寫著: 392 00:17:17,940 --> 00:17:19,244 “你好,大衛!” 393 00:17:19,244 --> 00:17:21,740 因此,這是一種 像我們的“你好,世界” 394 00:17:21,740 --> 00:17:25,150 我們做了一段時​​間回來在C和 即使是在PHP,因為我已​​經動態 395 00:17:25,150 --> 00:17:26,310 輸出我的名字。 396 00:17:26,310 --> 00:17:28,230 我可以在這裡做別人的名字。 397 00:17:28,230 --> 00:17:31,240 我可以簡單地更改為, 像漢娜,點擊提交。 398 00:17:31,240 --> 00:17:33,780 事實上,小彈出的變化。 399 00:17:33,780 --> 00:17:36,650 >> 現在,彈出窗口中的一個 網絡中最被濫用的特點。 400 00:17:36,650 --> 00:17:38,520 而事實上,早在 當天彈出窗口攔截器 401 00:17:38,520 --> 00:17:40,820 開始流行,因為你 會去一些website-- 402 00:17:40,820 --> 00:17:43,604 也許是有問題的place-- 那會突然 403 00:17:43,604 --> 00:17:46,020 啟動胡椒屏幕 有一大堆的彈出窗口。 404 00:17:46,020 --> 00:17:49,700 因此這種能力彈出 在用戶的前窗 405 00:17:49,700 --> 00:17:52,372 一直沒有特別 廣受人類。 406 00:17:52,372 --> 00:17:54,080 所以這就是為什麼你看到的 這阻止的事情, 407 00:17:54,080 --> 00:17:55,706 這只是讓這件事難看。 408 00:17:55,706 --> 00:17:57,996 因此,我們將需要一個 更好的方式來提示用戶。 409 00:17:57,996 --> 00:17:59,350 但現在,似乎工作。 410 00:17:59,350 --> 00:18:03,320 所以只是憑直覺,什麼 似乎是發生在這裡? 411 00:18:03,320 --> 00:18:07,870 我繼續前進,點擊提交, 然後事情發生了,顯然。 412 00:18:07,870 --> 00:18:12,870 但是,什麼是不能發生的事情是發生過的事 上週任我點擊提交? 413 00:18:12,870 --> 00:18:15,940 什麼都沒有發生在屏幕上? 414 00:18:15,940 --> 00:18:17,170 對不起? 415 00:18:17,170 --> 00:18:18,010 刷新。 416 00:18:18,010 --> 00:18:19,720 該網址沒有改變的。 417 00:18:19,720 --> 00:18:22,250 我說,這是DOM-0, 我依然在DOM-0。 418 00:18:22,250 --> 00:18:26,890 通常情況下,我們會得到改變一些其他的 的URL,就像register.php或類似物。 419 00:18:26,890 --> 00:18:29,560 >> 但是,即使當我辭退 這件事情通過單擊確定, 420 00:18:29,560 --> 00:18:32,310 注意到網址 保持完全投入。 421 00:18:32,310 --> 00:18:35,350 而且,事實上,如果我有一點 持懷疑態度,讓我打開Chrome瀏覽器。 422 00:18:35,350 --> 00:18:36,860 讓我打開網絡選項卡。 423 00:18:36,860 --> 00:18:38,360 並且注意到它的空白的時刻。 424 00:18:38,360 --> 00:18:40,700 讓我繼續前進,重新提交瑪麗亞。 425 00:18:40,700 --> 00:18:42,810 有沒有網絡流量任何責任。 426 00:18:42,810 --> 00:18:44,320 因此,有沒有HTTP。 427 00:18:44,320 --> 00:18:47,620 >> 因此,我們確實,如果我看源代碼 對於this--讓我關閉這個窗口 428 00:18:47,620 --> 00:18:49,480 去查看源代碼。 429 00:18:49,480 --> 00:18:50,400 有趣的。 430 00:18:50,400 --> 00:18:53,520 它看起來像有一些 新的標籤,其中包括腳本。 431 00:18:53,520 --> 00:18:57,490 因此,讓我們在CS50看看 IDE正是我發送給用戶。 432 00:18:57,490 --> 00:19:00,690 >> 所以在這裡is--我們 只關注HTML。 433 00:19:00,690 --> 00:19:03,500 這裡的底部DOM-0.html的一半。 434 00:19:03,500 --> 00:19:07,830 並注意它有一個標題, 頭標籤,body標籤,表單標籤。 435 00:19:07,830 --> 00:19:11,257 但是,跳出你的 不同的,特別是如果你從來沒有 436 00:19:11,257 --> 00:19:12,590 寫任何JavaScript自己。 437 00:19:12,590 --> 00:19:14,920 讓我滾動一點 這裡的權利。 438 00:19:14,920 --> 00:19:18,330 我有一個輸入, 另一個輸入提交。 439 00:19:18,330 --> 00:19:21,410 我有一個ID,這是一種新的。 440 00:19:21,410 --> 00:19:22,790 但是,我們也看到這一點CSS。 441 00:19:22,790 --> 00:19:24,480 還有什麼是絕對新的? 442 00:19:24,480 --> 00:19:24,980 是嗎? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 美觀大方。 445 00:19:32,140 --> 00:19:32,760 >> 好的。 446 00:19:32,760 --> 00:19:35,630 那麼,它說的onsubmit, 注意到有東西似乎遵循。 447 00:19:35,630 --> 00:19:38,740 這是一個屬性 在HTML命名。 448 00:19:38,740 --> 00:19:40,944 它的價值就在這裡這個帶引號的字符串。 449 00:19:40,944 --> 00:19:42,860 這看起來有點 怪異的第一眼。 450 00:19:42,860 --> 00:19:44,050 這不是HTML。 451 00:19:44,050 --> 00:19:45,240 這不是CSS。 452 00:19:45,240 --> 00:19:47,580 這是,您可能已經猜到,JavaScript的。 453 00:19:47,580 --> 00:19:51,850 如此看來,內置於該 網頁是一個名為greet函數。 454 00:19:51,850 --> 00:19:54,250 而我推斷,只是 因為它是一個詞,打招呼。 455 00:19:54,250 --> 00:19:55,880 它有一個開放的括號, 接近括號,分號。 456 00:19:55,880 --> 00:19:58,095 看起來像一個C函數, 看起來像一個PHP函數。 457 00:19:58,095 --> 00:20:00,370 >> 事實上,這將 是一個JavaScript函數。 458 00:20:00,370 --> 00:20:01,440 然後我返回false。 459 00:20:01,440 --> 00:20:03,440 我們會回來 在短短的時刻。 460 00:20:03,440 --> 00:20:05,320 但如果是這個函數定義? 461 00:20:05,320 --> 00:20:07,950 那麼,讓我向上滾動 到該文件的頂部。 462 00:20:07,950 --> 00:20:11,710 而且,即使它是一個漫長的線路, 它是相對簡單的。 463 00:20:11,710 --> 00:20:15,000 讓我縮小這裡 圍繞這四條線。 464 00:20:15,000 --> 00:20:17,137 >> 因此,在JavaScript中,只 PHP之類的,你只要 465 00:20:17,137 --> 00:20:19,720 比方說,從字面上看,這個詞“功能,” 的函數的名稱, 466 00:20:19,720 --> 00:20:22,700 然後用任何括號 arguments--沒有參數在這種情況下。 467 00:20:22,700 --> 00:20:25,290 而且也沒有返回類型 在JavaScript中,就像PHP。 468 00:20:25,290 --> 00:20:29,470 因此,這不是C.寬鬆一點 打開大括號,靠近大括號。 469 00:20:29,470 --> 00:20:33,270 內置到JavaScript是一種function-- 不推薦function-- 470 00:20:33,270 --> 00:20:35,730 但一個函數調用警報 在生活中,其唯一目的 471 00:20:35,730 --> 00:20:38,620 就是拉了那個漂亮的醜陋 提示我們看到剛才。 472 00:20:38,620 --> 00:20:40,950 >> 現在,這是怎樣的一個拗口的。 473 00:20:40,950 --> 00:20:42,560 這是怎麼回事嗎? 474 00:20:42,560 --> 00:20:45,840 因此,讓我們開始 這裡強調的一切。 475 00:20:45,840 --> 00:20:48,540 這是同樣的理由來提醒。 476 00:20:48,540 --> 00:20:49,530 而這是怎麼回事? 477 00:20:49,530 --> 00:20:51,200 這看起來就像一個字符串。 478 00:20:51,200 --> 00:20:59,180 而事實證明,不象PHP和不同 C,它不會在JavaScript無所謂 479 00:20:59,180 --> 00:21:01,090 如果單引號或雙引號。 480 00:21:01,090 --> 00:21:02,060 他們會是相同的。 481 00:21:02,060 --> 00:21:03,769 坦率地說,這只是 受追捧 482 00:21:03,769 --> 00:21:06,726 對於JavaScript程序員總是 使用單引號的某些原因。 483 00:21:06,726 --> 00:21:07,840 這只是我們該做的。 484 00:21:07,840 --> 00:21:09,710 但是,我們可以使用雙引號,也是如此。 485 00:21:09,710 --> 00:21:11,540 >> 因此,加上是一個新的角色。 486 00:21:11,540 --> 00:21:14,512 但是,那些你們誰做了 這之前,是什麼加什麼意思? 487 00:21:14,512 --> 00:21:16,440 是啊。 488 00:21:16,440 --> 00:21:17,120 串聯。 489 00:21:17,120 --> 00:21:18,570 因此,我們在PHP中看到這一點。 490 00:21:18,570 --> 00:21:20,315 這裡還有點 運營商在PHP中 491 00:21:20,315 --> 00:21:22,000 將連接兩個字符串在一起。 492 00:21:22,000 --> 00:21:24,000 C組在頸部疼痛做到這一點。 493 00:21:24,000 --> 00:21:27,310 從PSET六,這是召回 在頸部一種特殊的疼痛, 494 00:21:27,310 --> 00:21:29,470 你將不得不使用 類似的strcat 495 00:21:29,470 --> 00:21:31,660 分配內存後 在堆棧或堆。 496 00:21:31,660 --> 00:21:34,243 你必須赴湯蹈火 只是連接兩個字符串。 497 00:21:34,243 --> 00:21:36,040 在JavaScript中,這是超級簡單。 498 00:21:36,040 --> 00:21:38,030 只需使用它們之間的加法運算。 499 00:21:38,030 --> 00:21:41,420 >> 這樣複雜的外觀的 事情似乎是這樣的 500 00:21:41,420 --> 00:21:43,490 因為在結束時 這整個字符串,我只是 501 00:21:43,490 --> 00:21:45,797 串聯上一個驚嘆號。 502 00:21:45,797 --> 00:21:48,380 因此,如果發生了什麼雨後春筍般冒出來了 “你好,戴維。”“你好,漢娜,” 503 00:21:48,380 --> 00:21:52,740 “你好,瑪麗亞,”等字樣,很明顯 在這兩個之間的中間事 504 00:21:52,740 --> 00:21:55,215 加號必須給我提供什麼教育? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 是什麼在那裡嗎? 507 00:22:01,991 --> 00:22:02,490 是啊。 508 00:22:02,490 --> 00:22:05,090 所以我就假裝在這裡 回答他們的名字吧? 509 00:22:05,090 --> 00:22:10,380 因此,他們的名字突然出現在最後 結果。所以,這是什麼意思? 510 00:22:10,380 --> 00:22:15,080 好吧,我在前面的提議 圖像的所謂的DOM 511 00:22:15,080 --> 00:22:18,580 有這種特殊的根元素 一路前稱為文檔。 512 00:22:18,580 --> 00:22:21,660 而現在,事實證明,這是怎麼回事 是一個特殊的全局變量 513 00:22:21,660 --> 00:22:25,250 在JavaScript,內置到這是一個 一大堆有用的功能。 514 00:22:25,250 --> 00:22:31,770 其中有用的功能是 能力得到任何後代節點。 515 00:22:31,770 --> 00:22:37,760 這些正方形或長方形或橢圓形 只是在樹中的節點,可以這麼說。 516 00:22:37,760 --> 00:22:41,850 >> 所以,事實證明,內置 JavaScript的文檔對象 517 00:22:41,850 --> 00:22:47,300 是一個功能,或者被稱為 方法,這就是所謂的getElementById。 518 00:22:47,300 --> 00:22:50,410 的語法主叫 在JavaScript函數 519 00:22:50,410 --> 00:22:55,220 這是一個對象或一個的內部 變量只是用點符號。 520 00:22:55,220 --> 00:22:57,950 我們看到在C 什麼結構的語法。 521 00:22:57,950 --> 00:23:03,530 你看樣這PSET七, 排序,當你看到CS50 ::查詢。 522 00:23:03,530 --> 00:23:08,070 PHP中的結腸結腸是另一種 調用函數的方式 523 00:23:08,070 --> 00:23:09,260 裡面的一些對象。 524 00:23:09,260 --> 00:23:11,960 >> 但現在在JavaScript中, 它只是一個點。 525 00:23:11,960 --> 00:23:14,170 因此該功能, 很好地夠種, 526 00:23:14,170 --> 00:23:16,810 說什麼does--得到元素通過ID。 527 00:23:16,810 --> 00:23:20,280 一個元素是另一個名字 對於在DOM標籤或節點。 528 00:23:20,280 --> 00:23:26,900 因此得到元素通過ID“名” 意味著this--這裡是我的HTML。 529 00:23:26,900 --> 00:23:31,910 在此基礎上的HTML,什麼 節點或者是HTML標記是我 530 00:23:31,910 --> 00:23:35,097 要以編程方式交由 通過調用的document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> 是的,沒錯。 533 00:23:38,500 --> 00:23:42,670 我要獲得輸入 元有ID為“名”。 534 00:23:42,670 --> 00:23:45,140 那麼具體而言,可以 覺得這個功能, 535 00:23:45,140 --> 00:23:49,560 的getElementById,作為給人一種方式 回一個指向特定節點 536 00:23:49,560 --> 00:23:50,060 在樹中。 537 00:23:50,060 --> 00:23:51,980 我們還沒有繪製這 樹,但它是一個辦法 538 00:23:51,980 --> 00:23:54,900 對獲得訪問該 矩形或矩形 539 00:23:54,900 --> 00:23:58,090 經由其ID唯一標識它。 540 00:23:58,090 --> 00:23:59,760 >> 現在,這是為什麼有用嗎? 541 00:23:59,760 --> 00:24:01,510 那麼,事實證明 一旦你已經得到 542 00:24:01,510 --> 00:24:07,220 該節點,表示從矩形 畫面,在它的內部節點, 543 00:24:07,220 --> 00:24:10,660 反過來,有一大堆的 properties--鍵值對 544 00:24:10,660 --> 00:24:13,480 或數據,其中之一是所謂的值。 545 00:24:13,480 --> 00:24:16,500 因此,從字面上看,它是一種一 滿口解釋整件事。 546 00:24:16,500 --> 00:24:19,370 但在一天結束時, 這一切確實是給你 547 00:24:19,370 --> 00:24:23,070 用戶鍵入字符串中的 在這種分層方式。 548 00:24:23,070 --> 00:24:24,820 但我不喜歡 這些夫婦的事情。 549 00:24:24,820 --> 00:24:27,590 或者說,有一些好奇依然。 550 00:24:27,590 --> 00:24:28,870 所有這一切似乎工作。 551 00:24:28,870 --> 00:24:33,420 為什麼你會認為我回來 呼叫招呼後假的? 552 00:24:33,420 --> 00:24:35,910 這看起來有點醜,那 我有兩個語句有 553 00:24:35,910 --> 00:24:38,730 用分號隔開。 554 00:24:38,730 --> 00:24:39,310 以此來猜測。 555 00:24:39,310 --> 00:24:44,390 如果我刪除返回false,什麼 可能發生的事情,只是本能? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 對不起,再說一遍嗎? 558 00:24:49,460 --> 00:24:50,530 >> 打開一堆的Windows。 559 00:24:50,530 --> 00:24:52,780 因此,潛在的或許真的 這樣會發生。 560 00:24:52,780 --> 00:24:54,422 還有什麼? 561 00:24:54,422 --> 00:24:55,630 可能提交申請在哪裡? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 要在同一個頁面。 564 00:25:00,510 --> 00:25:03,110 因此,事實上,就是這樣 越接近答案在這裡, 565 00:25:03,110 --> 00:25:05,890 即使不像 在過去,我已經不 566 00:25:05,890 --> 00:25:09,300 指定action屬性, 通常我們要做的。 567 00:25:09,300 --> 00:25:11,780 原來有一個默認的。 如果沒有指定動作, 568 00:25:11,780 --> 00:25:15,370 這就像說報價,引文結束 或文件本身的名稱, 569 00:25:15,370 --> 00:25:17,850 在這種情況下將 像DOM-0.html。 570 00:25:17,850 --> 00:25:20,420 那種只是它的推斷, 或者說暗示的保證。 571 00:25:20,420 --> 00:25:22,420 >> 所以,如果我不這樣做,讓我們注意。 572 00:25:22,420 --> 00:25:23,230 讓我保存這個。 573 00:25:23,230 --> 00:25:25,270 我已經刪除返回FALSE。 574 00:25:25,270 --> 00:25:27,759 讓我回到這 例如,迫使其重新裝入。 575 00:25:27,759 --> 00:25:30,800 你可能已經看到了我建議 這在CS50討論一堆倍。 576 00:25:30,800 --> 00:25:34,560 如果有什麼是有史以來作用時髦和 瀏覽器的行為不作為您的期望, 577 00:25:34,560 --> 00:25:37,410 通常情況下,你會想舉行 按住Shift鍵,然後單擊刷新。 578 00:25:37,410 --> 00:25:41,480 這將迫使所有的文件重新加載 而不是使用瀏覽器的本地緩存 579 00:25:41,480 --> 00:25:47,032 或副本,現在,讓我繼續前進, 打開我的督察,網絡選項卡。 580 00:25:47,032 --> 00:25:48,740 我要去點擊 保留日誌,因為我 581 00:25:48,740 --> 00:25:51,660 不希望它刪除的行 一旦我攆走其他地方。 582 00:25:51,660 --> 00:25:54,650 >> 讓我在這裡繼續前進, 岸堤類型,點擊提交。 583 00:25:54,650 --> 00:25:55,150 好的。 584 00:25:55,150 --> 00:25:56,480 這似乎符合市場預期。 585 00:25:56,480 --> 00:25:57,440 它說:“你好,安迪。” 586 00:25:57,440 --> 00:25:59,420 讓我點擊確定。 587 00:25:59,420 --> 00:26:00,610 有趣的。 588 00:26:00,610 --> 00:26:05,100 請注意,頁面改變, 雖然原來的頁面。 589 00:26:05,100 --> 00:26:06,770 請注意,網址樣的改變。 590 00:26:06,770 --> 00:26:09,430 它增加了一個問號, 這通常是一個指標 591 00:26:09,430 --> 00:26:11,260 我們試圖向東西。 592 00:26:11,260 --> 00:26:13,570 然後在底部, 更明確地, 593 00:26:13,570 --> 00:26:17,570 這裡是實際的HTTP請求, 這得到了200響應該 594 00:26:17,570 --> 00:26:18,490 帶我回到這裡。 595 00:26:18,490 --> 00:26:20,250 >> 因此,這不是什麼 我們想要做的,對不對? 596 00:26:20,250 --> 00:26:22,166 因為我不希望 重新加載整個頁面。 597 00:26:22,166 --> 00:26:24,970 我不是想回去 假以短路 598 00:26:24,970 --> 00:26:28,840 瀏覽器的默認行為,其中 是,當然,提交該頁面。 599 00:26:28,840 --> 00:26:31,700 >> 因此,讓我們來看看一個 略好例子。 600 00:26:31,700 --> 00:26:33,920 這是DOM的版本之一。 601 00:26:33,920 --> 00:26:36,680 並注意以下幾點。 602 00:26:36,680 --> 00:26:39,150 這是確定的,如果你不神交 所有的代碼行。 603 00:26:39,150 --> 00:26:41,750 但是,什麼是本質上的區別 這個執行? 604 00:26:41,750 --> 00:26:44,690 我將規定它的行為 同樣的,做同樣的事情。 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 有我明明做了什麼不同? 607 00:26:51,570 --> 00:26:52,266 是嗎? 608 00:26:52,266 --> 00:26:53,182 >> 聽眾:[聽不清]。 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID馬蘭:是的。 611 00:27:04,170 --> 00:27:08,620 因此函數被定義differently-- 換言之,從形式存在, 612 00:27:08,620 --> 00:27:13,180 那裡就行7--或 相反,線8-不再 613 00:27:13,180 --> 00:27:15,070 我必須onsubmit屬性。 614 00:27:15,070 --> 00:27:16,750 在前面的例子,我有這個。 615 00:27:16,750 --> 00:27:18,530 然後,我簡直寫到這裡我的代碼。 616 00:27:18,530 --> 00:27:20,210 然後我說,返回false。 617 00:27:20,210 --> 00:27:22,180 而如果它沒有擦 你又走錯了路, 618 00:27:22,180 --> 00:27:26,140 它應該開始,只要 因為,就像在HTML中, 619 00:27:26,140 --> 00:27:29,530 當我們開始共同混合它 使用CSS的樣式屬性, 620 00:27:29,530 --> 00:27:32,890 它剛開始得到一點 凌亂還是覺得有點不對勁。 621 00:27:32,890 --> 00:27:35,020 >> 同樣在這裡,如果 你開始服用HTML, 622 00:27:35,020 --> 00:27:37,419 然後自動 撲通一些JavaScript代碼 623 00:27:37,419 --> 00:27:40,460 在一個帶引號的字符串的中間,它的 不會是非常維護。 624 00:27:40,460 --> 00:27:40,630 對嗎? 625 00:27:40,630 --> 00:27:43,690 它也不是很明顯,在第一 地方,JavaScript代碼。 626 00:27:43,690 --> 00:27:46,590 因此,這將是非常好的為 更好的設計宗旨, 627 00:27:46,590 --> 00:27:50,500 讓我們徹底讓我們的HTML 從我們的JavaScript分開。 628 00:27:50,500 --> 00:27:53,150 >> 因此,要做到這一點,我們已經 在這裡做的是following-- 629 00:27:53,150 --> 00:27:56,790 我們簡單地用HTML只標記。 630 00:27:56,790 --> 00:28:00,730 所以,在這個版本的一台,所有 我是一個唯一的ID的形式。 631 00:28:00,730 --> 00:28:04,630 然後到這裡,我趁著 對JavaScript的一個特殊功能 632 00:28:04,630 --> 00:28:08,480 因此我能有什麼 所謂的匿名函數。 633 00:28:08,480 --> 00:28:14,150 所以,事實證明,如果我叫 “演示”中的document.getElementById 634 00:28:14,150 --> 00:28:18,890 這等於是給了我一個指針 在我的系統中,這一節點,表單元素, 635 00:28:18,890 --> 00:28:20,100 可以這麼說。 636 00:28:20,100 --> 00:28:22,220 >> 現在,我只知道,從 知道一點的​​HTML 637 00:28:22,220 --> 00:28:26,330 現在我們已經看了一些網上 引用,一個表格單元支持 638 00:28:26,330 --> 00:28:29,950 在一大堆事件listeners--的 換句話說,事件的洗衣清單 639 00:28:29,950 --> 00:28:31,700 聽眾,我們看到剛才。 640 00:28:31,700 --> 00:28:35,950 我從書上知道文檔 即onsubmit的是一個有效的事件 641 00:28:35,950 --> 00:28:38,520 偵聽器表單元素。 642 00:28:38,520 --> 00:28:41,480 >> 所以一旦我知道, 它是安全的,我做 643 00:28:41,480 --> 00:28:45,390 該following--得到那個節點 從樹中,表單元素, 644 00:28:45,390 --> 00:28:48,070 並訪問其所謂的 onsubmit的財產。 645 00:28:48,070 --> 00:28:49,880 所以點只是意味著 這是一個屬性, 646 00:28:49,880 --> 00:28:52,180 喜歡它裡面的特殊值。 647 00:28:52,180 --> 00:28:55,590 什麼類型的數據我是 分配,顯然, 648 00:28:55,590 --> 00:28:58,900 到的onSubmit,這是 實際上是一個變量中 649 00:28:58,900 --> 00:29:01,010 樹中該節點的? 650 00:29:01,010 --> 00:29:04,100 這是該結構的內場。 651 00:29:04,100 --> 00:29:05,810 什麼是數據類型? 652 00:29:05,810 --> 00:29:07,030 >> 一個功能,是的。 653 00:29:07,030 --> 00:29:08,607 所以,事實證明,PHP有這一點。 654 00:29:08,607 --> 00:29:10,440 而且即使我們 沒有告訴你這件事, 655 00:29:10,440 --> 00:29:16,240 C也有函數指針,該 傳遞和分配功能的能力 656 00:29:16,240 --> 00:29:18,330 作為變量的值本身。 657 00:29:18,330 --> 00:29:20,280 而且我們不打算 倒退回C. 658 00:29:20,280 --> 00:29:23,250 但現在,事實證明, 上的右側這裡, 659 00:29:23,250 --> 00:29:26,260 即使它看起來有點 時髦的,這意味著,哎瀏覽器, 660 00:29:26,260 --> 00:29:27,550 給我一個功能。 661 00:29:27,550 --> 00:29:30,560 我不會甚至不屑給予 它的名字,因為我從字面上 662 00:29:30,560 --> 00:29:34,450 要指定讓我們叫它 此函數的地址 663 00:29:34,450 --> 00:29:35,994 立即onsubmit的。 664 00:29:35,994 --> 00:29:39,160 換句話說,瀏覽器,你不需要 知道這個函數的調用。 665 00:29:39,160 --> 00:29:41,890 你只需要知道 它是在存儲器中。 666 00:29:41,890 --> 00:29:44,210 因此,這足以只是 有一個等號有 667 00:29:44,210 --> 00:29:48,240 並沒有打擾這一命名,如 FOO或打招呼,或任何其他文字。 668 00:29:48,240 --> 00:29:50,150 而現在這只是一個風格的東西。 669 00:29:50,150 --> 00:29:53,100 我可以移動這個大括號 到the-- sorry--下一行 670 00:29:53,100 --> 00:29:54,750 像我們平時做CS50。 671 00:29:54,750 --> 00:29:57,550 但在JavaScript中,它的 實際上文體常見 672 00:29:57,550 --> 00:30:00,450 只保留了大括號中, 第一個,在該第一行。 673 00:30:00,450 --> 00:30:02,620 >> 但此後,有 什麼有趣的。 674 00:30:02,620 --> 00:30:05,830 打開大括號只 標定我的函數的開始。 675 00:30:05,830 --> 00:30:09,320 該功能是現在 相同的,只是我已經 676 00:30:09,320 --> 00:30:11,452 包括返回假 這裡面的功能。 677 00:30:11,452 --> 00:30:13,160 因為事實證明out-- 你不僅會 678 00:30:13,160 --> 00:30:14,980 從閱讀知道這 該documentation-- 679 00:30:14,980 --> 00:30:19,740 如果函數您分配了 到onsubmit處理程序返回false, 680 00:30:19,740 --> 00:30:23,420 瀏覽器才知道並同意 不要表單提交到服務器。 681 00:30:23,420 --> 00:30:27,210 如果返回true,將提交 它以一台服務器的原因,我們會看到 682 00:30:27,210 --> 00:30:28,700 在短短的時刻非常有用。 683 00:30:28,700 --> 00:30:31,000 >> 再經過分號 大括號那裡只是 684 00:30:31,000 --> 00:30:32,541 意味著我做的定義功能。 685 00:30:32,541 --> 00:30:36,600 你知道要盡快叫什麼 當你聽到提交。 686 00:30:36,600 --> 00:30:37,100 好的。 687 00:30:37,100 --> 00:30:40,650 這是可以說是一種醜陋的還是。 688 00:30:40,650 --> 00:30:42,190 那麼,我們還能做什麼? 689 00:30:42,190 --> 00:30:45,000 >> 嗯,事實證明,然後在 2版,這是last-- 690 00:30:45,000 --> 00:30:46,780 而我們只需看一眼這一點。 691 00:30:46,780 --> 00:30:49,850 在製作的風險 它難看,原來 692 00:30:49,850 --> 00:30:52,160 ,有一個庫 世界所謂的jQuery。 693 00:30:52,160 --> 00:30:54,900 和jQuery是一個超級 流行的JavaScript庫 694 00:30:54,900 --> 00:30:57,930 這是非常受歡迎,最 任何JavaScript--這不是 695 00:30:57,930 --> 00:31:00,540 不凡的人混淆 jQuery的使用JavaScript。 696 00:31:00,540 --> 00:31:01,070 為什麼呢? 697 00:31:01,070 --> 00:31:04,990 JavaScript的本身就具有很 做things--的詳細方法 698 00:31:04,990 --> 00:31:07,820 的document.getElementById,dadadadadada。 699 00:31:07,820 --> 00:31:10,510 你最終不得不非常 長行的代碼。 700 00:31:10,510 --> 00:31:15,550 >> 因此,一個名叫約翰·渣油老鄉, 究竟是誰的作品為一個啟動 701 00:31:15,550 --> 00:31:18,630 這幾天,走了出來 與此庫年 702 00:31:18,630 --> 00:31:22,070 以前,很多人都做出了貢獻 名為jQuery的改變 703 00:31:22,070 --> 00:31:23,449 語法以下列方式。 704 00:31:23,449 --> 00:31:25,740 而且只要你已經看到了這個, 因為你總是 705 00:31:25,740 --> 00:31:28,140 看到這,如果做一個 基於網絡的最終項目, 706 00:31:28,140 --> 00:31:33,270 這將相當於方式 實現使用同一功能 707 00:31:33,270 --> 00:31:34,630 這個特殊的圖書館。 708 00:31:34,630 --> 00:31:36,680 >> 現在,而不是挑逗 它除了在其全部, 709 00:31:36,680 --> 00:31:38,520 就讓我們來看看一些模式。 710 00:31:38,520 --> 00:31:44,850 這個語法似乎有 多少匿名函數 711 00:31:44,850 --> 00:31:49,584 或匿名函數 或者AKA lambda函數? 712 00:31:49,584 --> 00:31:50,190 二,對不對? 713 00:31:50,190 --> 00:31:52,690 而你知道,即使 你不是超級舒適這一點, 714 00:31:52,690 --> 00:31:55,780 剛剛通過的事實,它 說函數()的兩倍。 715 00:31:55,780 --> 00:31:58,172 >> 而事實證明, 這段代碼是doing-- 716 00:31:58,172 --> 00:32:01,255 我們會參考網上的參考, 最終,一些幫助與此有關。 717 00:32:01,255 --> 00:32:04,480 這也就意味著,當 該文件已經準備好, 718 00:32:04,480 --> 00:32:07,490 繼續並註冊 下面的函數 719 00:32:07,490 --> 00:32:12,064 作為提交處理程序的HTML 元素,其獨特的想法是演示。 720 00:32:12,064 --> 00:32:14,480 然後,當發生這種情況, 調用這兩個行代碼。 721 00:32:14,480 --> 00:32:18,677 這是可悲的,更 說法返回false冗長的方式。 722 00:32:18,677 --> 00:32:21,510 我們提到這一點,只是因為 你會看到這個代碼在線等。 723 00:32:21,510 --> 00:32:23,140 而且它是沒什麼被嚇倒。 724 00:32:23,140 --> 00:32:26,057 反倒是,請記住,什麼是 要在JavaScript中很常見 725 00:32:26,057 --> 00:32:26,765 就是這種模式。 726 00:32:26,765 --> 00:32:29,510 所以這就是為什麼我們展示它現在。 727 00:32:29,510 --> 00:32:30,010 好的。 728 00:32:30,010 --> 00:32:32,730 因此,沒有居住過 很多在該語法, 729 00:32:32,730 --> 00:32:37,800 是有任何疑問 這些實例或想法迄今為止? 730 00:32:37,800 --> 00:32:38,300 好的。 731 00:32:38,300 --> 00:32:40,220 因此,讓我們用這個東西是有用的。 732 00:32:40,220 --> 00:32:47,070 製作一個網頁,只是說你好, 某某是不是所有的有趣, 733 00:32:47,070 --> 00:32:47,830 不underwhelm。 734 00:32:47,830 --> 00:32:51,038 這一個不會是美麗的, 但它會做一些有用的東西。 735 00:32:51,038 --> 00:32:56,350 讓我回到我的目錄 在這裡,開拓,說,外形0.html。 736 00:32:56,350 --> 00:32:59,320 >> 因此,假設這是新生 校內體育活動註冊頁面 737 00:32:59,320 --> 00:33:01,780 沒有任何的CSS或設計的任何意義。 738 00:33:01,780 --> 00:33:05,404 而且我要繼續前進, 這裡使用密碼註冊。 739 00:33:05,404 --> 00:33:08,320 而且我會同意的條款 和條件,然後單擊註冊。 740 00:33:08,320 --> 00:33:11,700 而現在的網站上說,“你是 註冊! (嗯,不是真的。)“ 741 00:33:11,700 --> 00:33:15,070 這似乎是它的工作,但 讓我繼續前進,迫使重裝。 742 00:33:15,070 --> 00:33:18,720 >> 讓我說,不,你不這樣做 需要我的實際電子郵件地址。 743 00:33:18,720 --> 00:33:21,820 或者,也許我們只能說,郵件在那裡。 744 00:33:21,820 --> 00:33:25,080 密碼會一樣,12345。 745 00:33:25,080 --> 00:33:28,810 然後,只是因為我 白痴,現在是123456789。 746 00:33:28,810 --> 00:33:31,150 我不是要檢查你的盒子。 747 00:33:31,150 --> 00:33:31,850 >> 嗯。 748 00:33:31,850 --> 00:33:32,350 好的。 749 00:33:32,350 --> 00:33:34,920 因此,有幾次機會 為改善這裡。 750 00:33:34,920 --> 00:33:39,070 你知道,還是會在PSET看到 七,您可以編寫代碼 - 751 00:33:39,070 --> 00:33:41,890 你就會有寫 在PHP--代碼保衛 752 00:33:41,890 --> 00:33:45,780 針對這些種的用戶 錯誤,因為明確的用戶 753 00:33:45,780 --> 00:33:46,790 沒有合作。 754 00:33:46,790 --> 00:33:49,680 他或她還沒有給你一切 重視你想要的,甚至在格式 755 00:33:49,680 --> 00:33:50,630 你希望他們。 756 00:33:50,630 --> 00:33:53,250 所以,你會在PSET 7看出, 我們當然可以有一些 757 00:33:53,250 --> 00:33:55,680 如果說條件 如果電子郵件地址 758 00:33:55,680 --> 00:33:59,450 不是username@something.edu, 我們可以只 759 00:33:59,450 --> 00:34:02,575 說對不起,並表示歉意用戶 多,就像你可能在PSET七人。 760 00:34:02,575 --> 00:34:05,700 或者,如果他們沒有檢查那個盒子, 原來在PHP中,則可以檢測到, 761 00:34:05,700 --> 00:34:06,200 太。 762 00:34:06,200 --> 00:34:09,389 當然,如果密碼 不匹配在register.php 763 00:34:09,389 --> 00:34:11,521 為PSET七,則可以檢測到。 764 00:34:11,521 --> 00:34:13,770 但是,這是在一個痛苦 脖子上,現在他們要求 765 00:34:13,770 --> 00:34:15,510 我們對所有的方式轉到服務器。 766 00:34:15,510 --> 00:34:17,053 用戶被告知錯誤。 767 00:34:17,053 --> 00:34:19,219 至少,除非你使用 有些美妙的技術, 768 00:34:19,219 --> 00:34:20,929 現在他們必須單擊後退箭頭。 769 00:34:20,929 --> 00:34:23,300 那豈不是很好,像 很多網站今天, 770 00:34:23,300 --> 00:34:26,190 如果你有更直接的 反饋意見,瞬間? 771 00:34:26,190 --> 00:34:31,389 >> 換句話說,讓我去版本 一個,這將是不漂亮。 772 00:34:31,389 --> 00:34:33,469 但它確實有這個功能。 773 00:34:33,469 --> 00:34:39,590 馬蘭,12345,123456789,不 要選中該複選框,註冊。 774 00:34:39,590 --> 00:34:41,330 密碼不匹配。 775 00:34:41,330 --> 00:34:44,459 因此,即使這個彈出窗口是ugly-- 我們可以最終取代本 776 00:34:44,459 --> 00:34:47,000 喜歡的東西引導, 你會在PSET 7見 777 00:34:47,000 --> 00:34:50,239 是一個非常受歡迎的library--我做 檢測到口令不匹配。 778 00:34:50,239 --> 00:34:50,739 好的。 779 00:34:50,739 --> 00:34:52,530 好吧,讓我來解決,作為用戶。 780 00:34:52,530 --> 00:34:55,460 讓我繼續前進,說12345,12345。 781 00:34:55,460 --> 00:34:57,780 仍然沒有檢查的協議。 782 00:34:57,780 --> 00:35:00,210 您必須同意 條款和條件。 783 00:35:00,210 --> 00:35:01,760 那麼,為什麼? 784 00:35:01,760 --> 00:35:04,100 >> 如果我們已經假定 還有一種方法, 785 00:35:04,100 --> 00:35:07,260 而我們需要你 PSET七,檢測錯誤 786 00:35:07,260 --> 00:35:09,780 這樣的條件 服務器端的,為什麼要我 787 00:35:09,780 --> 00:35:13,940 麻煩也這樣做在JavaScript? 788 00:35:13,940 --> 00:35:15,850 是什麼在爭論 贊成加入什麼 789 00:35:15,850 --> 00:35:18,760 你即將看到的some-- 有額外的複雜性。 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> 也許沒有上漲空間。 792 00:35:25,930 --> 00:35:26,924 可能是什麼? 793 00:35:26,924 --> 00:35:27,840 聽眾:[聽不清]。 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID馬蘭:呵呵,有意思。 796 00:35:32,340 --> 00:35:33,530 潛在的漏洞。 797 00:35:33,530 --> 00:35:37,540 所以肯定的是,如果你不處理 錯誤的用戶輸入,偉大的, 798 00:35:37,540 --> 00:35:40,170 也許是,如果這一切的美好 甚至沒有達到您的服務器。 799 00:35:40,170 --> 00:35:42,160 我推回那裡, 比方說,你應該 800 00:35:42,160 --> 00:35:43,284 解決這兩個的這些問題。 801 00:35:43,284 --> 00:35:44,140 但是,這是公平的。 802 00:35:44,140 --> 00:35:44,710 還有什麼? 803 00:35:44,710 --> 00:35:45,626 >> 聽眾:[聽不清]。 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID馬蘭:是的。 806 00:35:49,014 --> 00:35:51,680 這段代碼,正如我們之前所說,是 解釋在客戶端。 807 00:35:51,680 --> 00:35:53,846 它不打擾服務器, 這意味著它不 808 00:35:53,846 --> 00:35:55,930 影響服務器的負荷或容量。 809 00:35:55,930 --> 00:35:59,840 而現在,對於有點老了我, 這沒有任何意義的影響 810 00:35:59,840 --> 00:36:01,970 因為我有一個用戶現在。 811 00:36:01,970 --> 00:36:04,010 >> 但是,如果你的任何 體面的大小網站, 812 00:36:04,010 --> 00:36:07,400 尤其是最大的,像Fac​​ebook, 更可以留人關閉 813 00:36:07,400 --> 00:36:09,927 你的服務器的更好 當然,因為一台服務器, 814 00:36:09,927 --> 00:36:12,510 只有擁有的RAM量有限, 有限數目吉赫的, 815 00:36:12,510 --> 00:36:16,340 事物有限數目 它可以每單位做的時間。 816 00:36:16,340 --> 00:36:19,170 因此,如果有更多的人在 世界打你的服務器, 817 00:36:19,170 --> 00:36:21,750 意外記錄 如果您錯誤,一樣好 818 00:36:21,750 --> 00:36:23,254 能保持這種負載關閉服務器。 819 00:36:23,254 --> 00:36:25,420 加,尤其是在一個移動 如果你曾經device-- 820 00:36:25,420 --> 00:36:29,190 登錄my.harvard或 耶魯大學的網絡標識符號或類似的, 821 00:36:29,190 --> 00:36:32,330 有這有很多的等待時間 網站一樣,因此它需要, 822 00:36:32,330 --> 00:36:34,110 就像,一個該死的兩秒鐘的時候。 823 00:36:34,110 --> 00:36:37,979 然後,我的上帝,如果你輸錯, 那麼你就要打回去重做。 824 00:36:37,979 --> 00:36:40,520 因此,有延遲,特別是 在速度較慢的網絡連接。 825 00:36:40,520 --> 00:36:43,030 但JavaScript的,因為 它運行在客戶機上 826 00:36:43,030 --> 00:36:46,720 而並不需要來回走 跨越一個潛在的慢速互聯網 827 00:36:46,720 --> 00:36:49,780 連接,就可以得到 幾乎在瞬間反饋。 828 00:36:49,780 --> 00:36:50,760 >> 所以,讓我們來看看這個。 829 00:36:50,760 --> 00:36:54,280 讓我打開了形式-0和 看看這裡的HTML。 830 00:36:54,280 --> 00:36:56,040 而且,我們只看到發生了什麼事情。 831 00:36:56,040 --> 00:36:59,460 這是他們的一種形式 行動register.php。 832 00:36:59,460 --> 00:37:01,530 我只是用得到這麼 我能看到的網址。 833 00:37:01,530 --> 00:37:05,030 但是,對於密碼,我們就一定要 要改變這種張貼在現實中。 834 00:37:05,030 --> 00:37:06,910 以下是類型的文本輸入字段。 835 00:37:06,910 --> 00:37:09,050 這裡的另一個輸入 字段類型的密碼。 836 00:37:09,050 --> 00:37:13,150 在這裡,如果你從來沒有見過, 型複選框的輸入端。 837 00:37:13,150 --> 00:37:15,250 >> 但有沒有JavaScript的 在這裡任何責任。 838 00:37:15,250 --> 00:37:18,170 這僅僅是HTML的 去register.php。 839 00:37:18,170 --> 00:37:21,020 但是,在一個版本,其中,我 開始讓那些彈出窗口, 840 00:37:21,020 --> 00:37:23,010 讓我們看看究竟會發生在這裡。 841 00:37:23,010 --> 00:37:26,757 在一個版本中,什麼 我要see--我 842 00:37:26,757 --> 00:37:29,340 以為我可以拖延足夠 有足夠的話,但我跑了出去。 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> 在版本埃德蒙頓我們走吧。 845 00:37:38,590 --> 00:37:43,180 在一個版本中,注意到following-- 而不是最好的實施中, 846 00:37:43,180 --> 00:37:44,420 但是這是我的第一次。 847 00:37:44,420 --> 00:37:47,680 請注意,以下 形式,我有一個腳本標記。 848 00:37:47,680 --> 00:37:49,430 而script標籤意味著, 哎,瀏覽器,點擊這裡 849 00:37:49,430 --> 00:37:52,340 進來一些代碼, 通常情況下,JavaScript的。 850 00:37:52,340 --> 00:37:54,420 現在,請注意我在做什麼。 851 00:37:54,420 --> 00:37:59,070 在line--我可以勉強 讀它 - 第32行,它說, 852 00:37:59,070 --> 00:38:01,420 VAR form--所以給我 一個名為表單變量。 853 00:38:01,420 --> 00:38:05,049 然後得到document.getElementId “註冊”的 854 00:38:05,049 --> 00:38:05,590 這是什麼? 855 00:38:05,590 --> 00:38:07,290 好了,讓我退了這裡。 856 00:38:07,290 --> 00:38:11,510 並注意啊,我給表單元素 一個任意的描述性的想法 857 00:38:11,510 --> 00:38:13,050 登記。 858 00:38:13,050 --> 00:38:16,820 因此,這給了我一個變量 讓我搶這個節點, 859 00:38:16,820 --> 00:38:19,580 在樹的矩形稱為形式。 860 00:38:19,580 --> 00:38:24,460 form.onsubmit手段,嘿嘿瀏覽器, 註冊事件偵聽器 861 00:38:24,460 --> 00:38:25,470 在這種形式。 862 00:38:25,470 --> 00:38:28,890 換言之,當這種形式是 提交後,執行下面的代碼。 863 00:38:28,890 --> 00:38:30,810 它並不需要,因為一個名 為什麼你需要知道叫什麼名字? 864 00:38:30,810 --> 00:38:32,880 你只需要知道 要執行的,ERGO 865 00:38:32,880 --> 00:38:35,610 它是一個匿名或lambda功能。 866 00:38:35,610 --> 00:38:37,632 並且函數 在這裡所有這些行。 867 00:38:37,632 --> 00:38:40,840 而現在,說實話,即使你 也許沒有寫過的JavaScript 868 00:38:40,840 --> 00:38:44,200 之前,它只是C和PHP邏輯。 869 00:38:44,200 --> 00:38:51,720 因此,如果form.email.value ==“” - 因此,如果電子郵件字段為空, 870 00:38:51,720 --> 00:38:54,980 罵為“你必須將用戶 提供您的電子郵件地址。“ 871 00:38:54,980 --> 00:38:58,980 否則,如果form.password.value 是在用戶的空白吆喝, 872 00:38:58,980 --> 00:39:00,400 “你必須提供您的密碼。” 873 00:39:00,400 --> 00:39:04,240 >> 更有趣的是邏輯, 如果form.password.value不 874 00:39:04,240 --> 00:39:08,630 等於form.confirmation.value-- 並確認哪兒來的? 875 00:39:08,630 --> 00:39:09,470 讓我快退。 876 00:39:09,470 --> 00:39:12,870 好吧,我叫這個輸入 場在這裡密碼。 877 00:39:12,870 --> 00:39:15,180 我這裡所說的這一個確認。 878 00:39:15,180 --> 00:39:17,850 我可以把它叫做 密碼兩個或其他任何東西。 879 00:39:17,850 --> 00:39:20,560 我只是邏輯檢查 這兩個是相同的。 880 00:39:20,560 --> 00:39:25,760 Else--事實證明這是布爾先生 again--一個布爾值,該複選框。 881 00:39:25,760 --> 00:39:29,810 所以,如果我說了,驚呼一聲point-- 如果不是form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 罵的用戶也是如此。 883 00:39:31,820 --> 00:39:34,470 >> 所以這個語法,你會看到的是 在JavaScript中很常見, 884 00:39:34,470 --> 00:39:35,970 在這裡,你有這樣的點號。 885 00:39:35,970 --> 00:39:37,460 開始時你有一個對象在這裡。 886 00:39:37,460 --> 00:39:41,430 您下潛較深到到 如密碼屬性。 887 00:39:41,430 --> 00:39:43,280 然後你在它的實際價值得到。 888 00:39:43,280 --> 00:39:45,830 再次,這裡是輸入。 889 00:39:45,830 --> 00:39:47,310 這裡是名密碼。 890 00:39:47,310 --> 00:39:50,860 而它的價值是什麼的 人類實際上已經輸入的研究。 891 00:39:50,860 --> 00:39:53,610 >> 因此,在所有的這些 的情況下,我返回false。 892 00:39:53,610 --> 00:39:55,800 但如果沒有,我返回true。 893 00:39:55,800 --> 00:39:58,030 所以,現在我們看到了 引人注目的使用時, 894 00:39:58,030 --> 00:40:00,620 您將返回false來 停止哪些用戶做 895 00:40:00,620 --> 00:40:03,200 並讓他或她的選擇 一次或再次輸入。 896 00:40:03,200 --> 00:40:05,870 否則,我們返回true。 897 00:40:05,870 --> 00:40:08,585 >> 讓我介紹一款 這等變異只 898 00:40:08,585 --> 00:40:13,140 其種子有一定的了解。 899 00:40:13,140 --> 00:40:16,850 那麼,在這2版本,外形2-- 我會用一揮手做到這一點。 900 00:40:16,850 --> 00:40:19,920 這一點,對於那些好奇, jQuery的版本, 901 00:40:19,920 --> 00:40:23,330 你們誰可能要 涉足該特定庫。 902 00:40:23,330 --> 00:40:25,145 但是讓我們start--和什麼問題嗎? 903 00:40:25,145 --> 00:40:29,230 讓我停頓了片刻,因為 這是快了許多。 904 00:40:29,230 --> 00:40:32,610 >> 但這裡的好處是,所有的 代碼幾乎是相同的。 905 00:40:32,610 --> 00:40:33,985 新的東西是DOM是什麼? 906 00:40:33,985 --> 00:40:35,115 什麼是這些矩形? 907 00:40:35,115 --> 00:40:35,990 這些是什麼節點? 908 00:40:35,990 --> 00:40:37,540 什麼是匿名函數? 909 00:40:37,540 --> 00:40:38,830 什麼是事件處理程序? 910 00:40:38,830 --> 00:40:43,480 但值得慶幸的是,大多數這只是 兜了一圈,比如說,從零一周。 911 00:40:43,480 --> 00:40:43,980 好的。 912 00:40:43,980 --> 00:40:46,070 因此,一些稍微更有趣嗎? 913 00:40:46,070 --> 00:40:49,340 好吧,首先,讓我去 進取,不斷開拓谷歌地圖。 914 00:40:49,340 --> 00:40:53,360 而且你會發現,一 那一刻,在一瞬間, 915 00:40:53,360 --> 00:40:55,930 注意會發生什麼時 我點擊速度不夠快。 916 00:40:55,930 --> 00:40:59,720 而在哈佛這方面是如此 快,你真的不注意到它。 917 00:40:59,720 --> 00:41:04,469 但是,你有什麼樣的一種見 如果我點擊並拖動真快? 918 00:41:04,469 --> 00:41:07,010 這些你在網上看的, 如果你慢這0.5倍的速度, 919 00:41:07,010 --> 00:41:09,640 你可以看到這更好。 920 00:41:09,640 --> 00:41:13,550 >> 發生了什麼事剛 之前,我點擊和拖動? 921 00:41:13,550 --> 00:41:15,900 讓我來這裡 - 讓我做 別的東西,比如90210。 922 00:41:15,900 --> 00:41:17,550 讓我們遠去。 923 00:41:17,550 --> 00:41:19,000 這是真快,太。 924 00:41:19,000 --> 00:41:22,460 如何迪斯尼世界? 925 00:41:22,460 --> 00:41:23,190 在那裡,我們走了。 926 00:41:23,190 --> 00:41:23,690 確定。 927 00:41:23,690 --> 00:41:26,030 你看見什麼了一秒鐘? 928 00:41:26,030 --> 00:41:27,200 只是,像,廣場,對不對? 929 00:41:27,200 --> 00:41:28,930 佔位符瓷磚? 930 00:41:28,930 --> 00:41:30,270 >> 那麼,這是怎麼回事嗎? 931 00:41:30,270 --> 00:41:35,410 谷歌地圖是一個很好的例子 這就是所謂AJAX這種技術。 932 00:41:35,410 --> 00:41:38,510 而這正是我們將開始 使用JavaScript的一個特別 933 00:41:38,510 --> 00:41:39,277 誘人的方法。 934 00:41:39,277 --> 00:41:41,610 早在一天,有 這個網站叫MapQuest的。 935 00:41:41,610 --> 00:41:44,120 我應該已經採取了 從20世紀90年代截圖此, 936 00:41:44,120 --> 00:41:45,820 在這裡,如果你想 看看在這裡在地圖上, 937 00:41:45,820 --> 00:41:48,590 你會從字面上點擊箭頭 在頂部的顯示你 938 00:41:48,590 --> 00:41:49,870 不同的正方形的地圖。 939 00:41:49,870 --> 00:41:51,790 如果你想向左移動,你 點擊即表明您一個箭頭 940 00:41:51,790 --> 00:41:53,210 不同的正方形的地圖。 941 00:41:53,210 --> 00:41:54,840 而一些網站今日仍然這樣做。 942 00:41:54,840 --> 00:41:57,820 但即使Mapquest服務已經得到 更好的,如谷歌地圖。 943 00:41:57,820 --> 00:42:01,880 >> 相反,有什麼更好的這些 天是使用AJAX網站。 944 00:42:01,880 --> 00:42:04,510 AJAX--另外稱為 異步JavaScript和XML, 945 00:42:04,510 --> 00:42:08,370 這是說只是一種奇特的方式 一種技術或技術, 946 00:42:08,370 --> 00:42:14,200 允許使用JavaScript的瀏覽器 作出額外的HTTP請求 947 00:42:14,200 --> 00:42:16,390 後頁被加載。 948 00:42:16,390 --> 00:42:17,479 所以,這是什麼意思? 949 00:42:17,479 --> 00:42:19,270 那麼,這將是一種 惱人的在Gmail 950 00:42:19,270 --> 00:42:21,103 如果每次你需要時間 檢查你的郵件, 951 00:42:21,103 --> 00:42:24,940 你字面上按下Control-R或 命令-R或單擊刷新按鈕 952 00:42:24,940 --> 00:42:26,580 而整個該死的網頁將重新加載。 953 00:42:26,580 --> 00:42:26,800 對嗎? 954 00:42:26,800 --> 00:42:28,460 它會閃爍白色 可能是第二個。 955 00:42:28,460 --> 00:42:30,043 你會看到愚蠢的進度條。 956 00:42:30,043 --> 00:42:33,170 而只是為了看看是否有新的 郵件,整個網頁和網址 957 00:42:33,170 --> 00:42:34,580 你在必須重新加載。 958 00:42:34,580 --> 00:42:35,960 >> 但是,這不是在Gmail中會發生什麼。 959 00:42:35,960 --> 00:42:36,459 對嗎? 960 00:42:36,459 --> 00:42:40,300 當你在一個新的電子郵件 Gmail的,是什麼在屏幕上發生什麼呢? 961 00:42:40,300 --> 00:42:41,480 它只是顯示了,對不對? 962 00:42:41,480 --> 00:42:44,280 它只是奇蹟般地出現 如在表中一個新行。 963 00:42:44,280 --> 00:42:47,030 這實際上涉及到 體面的複雜性。 964 00:42:47,030 --> 00:42:51,892 其實,如果你仔細想想這棵樹, 這雖然是一個簡單的在這裡, 965 00:42:51,892 --> 00:42:54,100 Gmail--我不得不看 在代碼是sure-- 966 00:42:54,100 --> 00:42:58,710 可能有一個HTML表格或者 它呈現一個無序列表 967 00:42:58,710 --> 00:43:01,060 您的每一個收件箱中的郵件作為。 968 00:43:01,060 --> 00:43:04,050 >> 所以,如果你想像這有 是當你的內存樹 969 00:43:04,050 --> 00:43:09,050 使用Gmail看起來那種類型的 這樣,當谷歌意識到,哦, 970 00:43:09,050 --> 00:43:12,770 你有一個新的電子郵件,它不 要重建整個樹。 971 00:43:12,770 --> 00:43:16,430 相反,它想找到該節點中 代表您的收件箱中的樹 972 00:43:16,430 --> 00:43:18,580 並且只需插入一個新的節點。 973 00:43:18,580 --> 00:43:24,640 >> 所以非常相似PSET五,在那裡你 不得不節點插入到一個哈希表, 974 00:43:24,640 --> 00:43:28,410 同樣做谷歌,通過 它寫的JavaScript代碼, 975 00:43:28,410 --> 00:43:31,890 遍歷這棵樹,找出其中 是窗口的那部分的收件箱, 976 00:43:31,890 --> 00:43:33,440 然後插入新行。 977 00:43:33,440 --> 00:43:37,460 而一個新的行只是表示一個 或多個在一個樹的新節點。 978 00:43:37,460 --> 00:43:41,340 >> 所以AJAX是這種技術 ,允許這一點。 979 00:43:41,340 --> 00:43:44,440 一旦你訪問過的URL, 然而,瘋狂的長是, 980 00:43:44,440 --> 00:43:46,472 而一旦頁面 被加載,你仍然可以 981 00:43:46,472 --> 00:43:48,430 抓住從多個數據 internet--無論是 982 00:43:48,430 --> 00:43:52,460 電子郵件或map--的瓦 抓住它幕後 983 00:43:52,460 --> 00:43:55,290 然後將其插入到頁 從而使人體並不真正 984 00:43:55,290 --> 00:43:56,910 要等待它。 985 00:43:56,910 --> 00:43:58,980 >> Facebook的Messenger的工作方式相同。 986 00:43:58,980 --> 00:44:01,562 任何數量的其它websites-- 呵呵,其實,即使是這樣。 987 00:44:01,562 --> 00:44:04,270 我的意思是,這是坦率地種, 一個惱人的功能,這些天。 988 00:44:04,270 --> 00:44:07,500 如果我開始尋找這個cats-- 是一種可怕的用戶體驗。 989 00:44:07,500 --> 00:44:08,990 這只是開始搜索我。 990 00:44:08,990 --> 00:44:10,050 那麼它是什麼做的? 991 00:44:10,050 --> 00:44:12,920 該網址還沒有真正改變 自從我開始打字。 992 00:44:12,920 --> 00:44:17,330 但是,什麼是整個會 wire-- OK,嗯有趣。 993 00:44:17,330 --> 00:44:20,470 什麼是整個會 線在這裡只是變得怪異。 994 00:44:20,470 --> 00:44:21,090 >> 確定。 995 00:44:21,090 --> 00:44:24,670 因此,讓我繼續前進,並檢查 元素,並進入網絡選項卡 996 00:44:24,670 --> 00:44:27,040 並努力使這種 技術少約貓。 997 00:44:27,040 --> 00:44:32,595 作為I型,從字面上看,貓 還有 - 發生了什麼 998 00:44:32,595 --> 00:44:37,710 per--我不會點擊的。 999 00:44:37,710 --> 00:44:38,210 好的。 1000 00:44:38,210 --> 00:44:44,280 所以到這裡,發生了什麼事每 一次,我輸入一個字符,顯然? 1001 00:44:44,280 --> 00:44:45,000 像,水平低? 1002 00:44:45,000 --> 00:44:47,860 發生了什麼事,每個那些 字符我打字在我的鍵盤? 1003 00:44:47,860 --> 00:44:48,359 是嗎? 1004 00:44:48,359 --> 00:44:50,950 聽眾:[聽不清]。 1005 00:44:50,950 --> 00:44:52,340 >> DAVID馬蘭:沒錯。 1006 00:44:52,340 --> 00:44:55,600 每個這些字符是 去谷歌,一次一個。 1007 00:44:55,600 --> 00:44:58,490 他們正在建立一個字符串 他們的服務器上,表示 1008 00:44:58,490 --> 00:44:59,936 一切我已經輸入了迄今。 1009 00:44:59,936 --> 00:45:01,810 每一次我型 另一種性格,他們 1010 00:45:01,810 --> 00:45:04,530 使用一個自己的秘密武器 搜索算法計算出, 1011 00:45:04,530 --> 00:45:07,370 他的意思是這種貓頁 或者這種貓頁面或之類的? 1012 00:45:07,370 --> 00:45:10,620 因此,在某種意義上說,它為我提供了一個 在更好的體驗我甚至不 1013 00:45:10,620 --> 00:45:11,860 需要完成我的想法。 1014 00:45:11,860 --> 00:45:14,440 事實上,這是一個很有用 首先,自動完成一般。 1015 00:45:14,440 --> 00:45:17,690 如果他們的算法是不夠好 如果我的搜索都是顯而易見的, 1016 00:45:17,690 --> 00:45:19,300 我不必鍵入整個單詞。 1017 00:45:19,300 --> 00:45:22,110 他們會告訴我是什麼 在實際上,我尋找。 1018 00:45:22,110 --> 00:45:25,940 那麼,谷歌稱之為即時 搜索只是使用AJAX, 1019 00:45:25,940 --> 00:45:30,820 使用代碼,允許他們請求 通過網絡瀏覽器的其他內容 1020 00:45:30,820 --> 00:45:34,026 背後使用這種場景 新的語言,JavaScript的。 1021 00:45:34,026 --> 00:45:35,400 因此,我們必須留下一兩分鐘。 1022 00:45:35,400 --> 00:45:37,710 而讓我叫我的好友 科爾頓起來搬上舞台, 1023 00:45:37,710 --> 00:45:40,090 因為它似乎 特別有趣的最後一次 1024 00:45:40,090 --> 00:45:42,290 引進技術 你們有些人 1025 00:45:42,290 --> 00:45:44,769 已表示有興趣 在最終的項目。 1026 00:45:44,769 --> 00:45:47,310 我們認為這會很有趣,使 一個志願者,不過,今天 1027 00:45:47,310 --> 00:45:50,074 向您展示的除了 這可以讓你 - 是啊, 1028 00:45:50,074 --> 00:45:50,990 只見這手第一次。 1029 00:45:50,990 --> 00:45:52,900 上來吧。 1030 00:45:52,900 --> 00:45:53,560 非常出色地完成。 1031 00:45:53,560 --> 00:45:55,035 幹得好。 1032 00:45:55,035 --> 00:45:57,410 我將這個項目上 屏幕上一會兒就好了。 1033 00:45:57,410 --> 00:45:58,150 你叫什麼名字給大家? 1034 00:45:58,150 --> 00:45:59,180 >> 全民教育:我是全民教育。 1035 00:45:59,180 --> 00:45:59,410 >> DAVID馬蘭:ETHA? 1036 00:45:59,410 --> 00:45:59,785 >> 全民教育:全民教育。 1037 00:45:59,785 --> 00:46:00,160 >> DAVID馬蘭:全民教育? 1038 00:46:00,160 --> 00:46:00,730 >> 全民教育:是的。 1039 00:46:00,730 --> 00:46:01,250 >> DAVID馬蘭:很高興見到你。 1040 00:46:01,250 --> 00:46:01,600 好的。 1041 00:46:01,600 --> 00:46:02,590 讓我得到這個準備。 1042 00:46:02,590 --> 00:46:04,423 你過來給 中間用科爾頓在這裡。 1043 00:46:04,423 --> 00:46:07,050 什麼科爾頓在他手裡 今天是一個遙控器。 1044 00:46:07,050 --> 00:46:10,440 因此,而不是只是站在那裡一 三維世界中四處尋找 1045 00:46:10,440 --> 00:46:14,080 作為科爾頓那樣,現在EFA可以 實際上走動通過往上走, 1046 00:46:14,080 --> 00:46:16,689 下,左,和右像 任天堂或Xbox控制器。 1047 00:46:16,689 --> 00:46:18,230 全民教育:我要掉下舞台。 1048 00:46:18,230 --> 00:46:20,500 DAVID馬蘭:我會的 站在大致在這裡。 1049 00:46:20,500 --> 00:46:21,991 但是,這是一個危險。 1050 00:46:21,991 --> 00:46:22,490 確定。 1051 00:46:22,490 --> 00:46:25,690 因此,繼續前進,把那些。 1052 00:46:25,690 --> 00:46:29,315 讓我繼續前進, 切換到此處的屏幕。 1053 00:46:29,315 --> 00:46:30,670 讓我把燈光調暗。 1054 00:46:30,670 --> 00:46:32,780 而科爾頓,讓我 走到你旁邊的立場。 1055 00:46:32,780 --> 00:46:35,520 >> 難道你想在這裡解釋一下 與MIC我們在做什麼? 1056 00:46:35,520 --> 00:46:36,380 在這裡你去。 1057 00:46:36,380 --> 00:46:37,280 >> COLTON:當然。 1058 00:46:37,280 --> 00:46:39,980 所以現在我們 加載了魔環, 1059 00:46:39,980 --> 00:46:43,070 我想operating--不工作 系統,但主要程序,其中 1060 00:46:43,070 --> 00:46:46,630 您可以訪問所有的遊戲 該應用程序存儲庫中。 1061 00:46:46,630 --> 00:46:50,060 所以現在,應該說 輕點觸控板開始。 1062 00:46:50,060 --> 00:46:53,430 觸摸板將是對 右側的耳機。 1063 00:46:53,430 --> 00:46:54,569 所以,儘管tap-- 1064 00:46:54,569 --> 00:46:55,110 全民教育:哦,伙計。 1065 00:46:55,110 --> 00:46:56,443 DAVID馬蘭:是啊,你去那裡。 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 質量的全民教育是看到 高得多的品質。 1068 00:47:02,460 --> 00:47:03,831 這僅僅是在Wi-Fi在這裡。 1069 00:47:03,831 --> 00:47:05,580 COLTON:你那麼什麼 要想做的事情 1070 00:47:05,580 --> 00:47:08,350 看起來是朝上方 右邊的屏幕。 1071 00:47:08,350 --> 00:47:10,420 是的,在很右上角的那場比賽。 1072 00:47:10,420 --> 00:47:14,780 然後,當你選擇 它,再次點擊觸摸板。 1073 00:47:14,780 --> 00:47:17,010 我認為它Dreadhalls。 1074 00:47:17,010 --> 00:47:20,820 然後這裡A--這裡,讓 我握住你的眼鏡給你。 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> 所以,我只是給了他一個控制器。 1077 00:47:25,790 --> 00:47:28,886 所以,現在他能控制比賽。 1078 00:47:28,886 --> 00:47:30,510 他可以左右移動之類的東西。 1079 00:47:30,510 --> 00:47:31,968 因此,繼續前進,仰望上方。 1080 00:47:31,968 --> 00:47:33,640 您應該看到新遊戲。 1081 00:47:33,640 --> 00:47:36,310 所以,儘管你可以做到這一點。 1082 00:47:36,310 --> 00:47:39,320 現在,你應該能夠控制 自己與控制器, 1083 00:47:39,320 --> 00:47:43,860 還有,一旦 遊戲加載了這裡。 1084 00:47:43,860 --> 00:47:46,356 這可能是有點嚇人。 1085 00:47:46,356 --> 00:47:47,300 >> 全民教育:現在你告訴我。 1086 00:47:47,300 --> 00:47:50,132 確定。 1087 00:47:50,132 --> 00:47:51,080 >> COLTON:好吧。 1088 00:47:51,080 --> 00:47:52,650 所以,請確認您可以走動。 1089 00:47:52,650 --> 00:47:52,750 確定。 1090 00:47:52,750 --> 00:47:53,583 你可以四處走動。 1091 00:47:53,583 --> 00:47:54,300 完善。 1092 00:47:54,300 --> 00:47:56,470 所以,如果你往下看,你有一張地圖。 1093 00:47:56,470 --> 00:47:58,170 地圖顯示您身在何處。 1094 00:47:58,170 --> 00:47:59,720 你可以看看周圍的房間。 1095 00:47:59,720 --> 00:48:01,440 您可以完全轉身。 1096 00:48:01,440 --> 00:48:02,128 是的,沒錯。 1097 00:48:02,128 --> 00:48:02,627 轉身。 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> 所以,看看你的左邊。 1100 00:48:07,125 --> 00:48:09,875 我覺得有東西,你可以 拿起放在房間桶。 1101 00:48:09,875 --> 00:48:11,709 >> 全民教育:我如何獲得 映射出的方法是什麼? 1102 00:48:11,709 --> 00:48:12,375 COLTON:查一查。 1103 00:48:12,375 --> 00:48:12,980 只要看看了。 1104 00:48:12,980 --> 00:48:13,480 好的。 1105 00:48:13,480 --> 00:48:13,765 你去那裡。 1106 00:48:13,765 --> 00:48:15,181 現在,繼續前進,只是轉身。 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 所以看得更遠一些,以你的左邊。 1109 00:48:24,620 --> 00:48:25,530 繼續前進離開。 1110 00:48:25,530 --> 00:48:26,960 繼續找走了。 1111 00:48:26,960 --> 00:48:27,541 繼續前進。 1112 00:48:27,541 --> 00:48:28,040 是啊。 1113 00:48:28,040 --> 00:48:28,720 >> 全民教育:哦,這樣。 1114 00:48:28,720 --> 00:48:29,261 >> COLTON:是的。 1115 00:48:29,261 --> 00:48:30,999 走向它與控制器。 1116 00:48:30,999 --> 00:48:31,540 你去那裡。 1117 00:48:31,540 --> 00:48:32,790 現在,應該說把它撿起來。 1118 00:48:32,790 --> 00:48:33,360 你去那裡。 1119 00:48:33,360 --> 00:48:34,290 把它撿起來。 1120 00:48:34,290 --> 00:48:35,550 好的。 1121 00:48:35,550 --> 00:48:38,286 現在,讓我們走出這個房間。 1122 00:48:38,286 --> 00:48:42,209 繼續前進,走到那扇門。 1123 00:48:42,209 --> 00:48:45,000 所以,你要hold--它說 按住按鈕,迫使它開放。 1124 00:48:45,000 --> 00:48:46,333 所以,儘管並按住該按鈕。 1125 00:48:46,333 --> 00:48:48,250 是的,迫使其打開。 1126 00:48:48,250 --> 00:48:48,750 好的。 1127 00:48:48,750 --> 00:48:49,410 幹得好。 1128 00:48:49,410 --> 00:48:50,826 現在,我們走出了房間。 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 所以我要離開休息了 給你,看看你了解一下。 1131 00:49:01,366 --> 00:49:02,865 全民教育:我不會在黑暗的房間。 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 哦,等等。 1134 00:49:07,815 --> 00:49:09,314 現在我必須去暗下來的大廳? 1135 00:49:09,314 --> 00:49:10,785 好了,我要回去[聽不清]。 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON:好吧。 1138 00:49:16,270 --> 00:49:17,560 一些更多的項目回暖。 1139 00:49:17,560 --> 00:49:19,370 看起來像一些硬幣。 1140 00:49:19,370 --> 00:49:22,242 這是一個鎖定選秀權。 1141 00:49:22,242 --> 00:49:24,200 所以,如果你發現一個上鎖 門,你可以使用。 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 你害怕嗎? 1144 00:49:28,380 --> 00:49:29,371 >> 全民教育:還沒有。 1145 00:49:29,371 --> 00:49:29,871 COLTON:OK。 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend--呀。 1148 00:49:35,497 --> 00:49:37,330 只是假裝你 其實站在那裡。 1149 00:49:37,330 --> 00:49:39,580 如果你把around-- 你得習慣它。 1150 00:49:39,580 --> 00:49:40,752 但是,這是有道理的。 1151 00:49:40,752 --> 00:49:43,960 DAVID馬蘭:雖然全民教育繼續 玩,因為我們可以做到這一切的一天, 1152 00:49:43,960 --> 00:49:45,381 我們都可以踮著腳尖在這裡。 1153 00:49:45,381 --> 00:49:48,130 但是,我們確實有另外兩對, 如果你想拿出和發揮。 1154 00:49:48,130 --> 00:49:49,980 否則,我們將看到 你接下來的週三。 1155 00:49:49,980 --> 00:49:51,354 感謝您對我們的志願者今天。 1156 00:49:51,354 --> 00:49:52,101 [掌聲] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [MUSIC - “宋飛正傳主題”] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 揚聲器1:好吧,我 把一個新的PL卡口上。 1161 00:50:00,180 --> 00:50:01,800 我只是改變了OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> 揚聲器2:那麼是什麼 到底在做什麼? 1163 00:50:03,980 --> 00:50:07,063 >> 揚聲器1:好吧,每個人these-- 在這裡,我會告訴你這一個在這裡。 1164 00:50:07,063 --> 00:50:08,690 你可以看到它在這裡。 1165 00:50:08,690 --> 00:50:09,510 >> 揚聲器3:我覺得我好這些。 1166 00:50:09,510 --> 00:50:09,933 你要多一些? 1167 00:50:09,933 --> 00:50:11,325 >> 揚聲器4:沒有,我很好。 [聽不清]。 1168 00:50:11,325 --> 00:50:12,200 >> 揚聲器3:沒有,[聽不清]。 1169 00:50:12,200 --> 00:50:12,700 有一些。 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 揚聲器1:不同的顏色。 1172 00:50:22,290 --> 00:50:22,890 揚聲器2:確定。 1173 00:50:22,890 --> 00:50:26,690 揚聲器1:所以最終什麼 所做的就是調整顏色of--