1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [MÜZİK OYUN] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH: Merhaba, herkes. 5 00:00:12,700 --> 00:00:15,866 Size Geldiğiniz için çok teşekkür ederim çocuklar sınav, bir için iğrenç havalarda 6 00:00:15,866 --> 00:00:16,910 oturumu gözden geçirin. 7 00:00:16,910 --> 00:00:20,020 Siz, sınav Bildiğiniz gibi kimse bu çarşamba. 8 00:00:20,020 --> 00:00:22,209 Yani biz gidiyoruz konuların bir demet aracılığıyla. 9 00:00:22,209 --> 00:00:24,000 DAVIN: Hey, ben diyebilirim gerçek hızlı bir şey? 10 00:00:24,000 --> 00:00:25,215 HANNAH: Evet, Davin en gidiyor Gerçek hızlı bir şey söylemek için. 11 00:00:25,215 --> 00:00:25,780 DAVIN: Üzgünüm. 12 00:00:25,780 --> 00:00:29,490 Sadece gerçek hızlı, sorularınız varsa yarışması hakkında, online gidebilirsiniz. 13 00:00:29,490 --> 00:00:32,420 Yarışması hakkında, 2014 sınav birine gidin. 14 00:00:32,420 --> 00:00:34,680 Yaklaşık lojistik var gitmek için nerede, ne zaman gitmek. 15 00:00:34,680 --> 00:00:38,100 Aynı anda kayıt ediyorsanız, biz konum 05:30 bir makyaj sınav olacak. 16 00:00:38,100 --> 00:00:40,350 Yoksa bana bir sorun gönderirse, Eğer başka bir sorun var. 17 00:00:40,350 --> 00:00:42,640 Ama 05:30 makyaj olduğunu Çarşamba günü zamanı. 18 00:00:42,640 --> 00:00:44,540 Ama sorularınız varsa, Genel sorular, 19 00:00:44,540 --> 00:00:45,748 Online tüm lojistik sahiptir. 20 00:00:45,748 --> 00:00:47,690 Yani orada ilk kontrol edin. 21 00:00:47,690 --> 00:00:49,070 >> HANNAH: Başar. 22 00:00:49,070 --> 00:00:53,030 Yani burada konuların büyük listesi bugün geçmesi için gidiyoruz. 23 00:00:53,030 --> 00:00:57,390 Ben C tümünü kapsayacak şekilde gidiyorum ilk sütunu şeyler. 24 00:00:57,390 --> 00:01:00,710 Yani C şeyler biz sınav sıfır sonra kapalı. 25 00:01:00,710 --> 00:01:05,459 Bağlantılı liste ile başlayarak, bu işaretçiler içerir. 26 00:01:05,459 --> 00:01:07,668 >> Pekala, biz bu gördüm Son gözden oturumda, 27 00:01:07,668 --> 00:01:10,000 bu yüzden gitmek için gidiyorum Bu biraz daha hızlıdır. 28 00:01:10,000 --> 00:01:13,500 Eğer beni istiyorsan sadece elinizi kaldırın yavaşlatmak ya da daha fazla bir şey bulursunuz. 29 00:01:13,500 --> 00:01:17,150 Ama biz nedeniyle listeleri bağlantılı kullanın Biz dizilerle C başladı. 30 00:01:17,150 --> 00:01:20,920 Ve diziler büyük, ama sorun, onlar sabit bir büyüklüğe sahip olduğunu. 31 00:01:20,920 --> 00:01:24,925 Bağlantılı listeler bize oluşturmak için izin dinamik veri yapıları büyüklükte. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> Ve bizim temel operasyonları var, eklemek, silmek, ve arama. 34 00:01:32,320 --> 00:01:36,780 Ve biz parçayı yapabiliriz En kötü durumda, sabit zaman 35 00:01:36,780 --> 00:01:39,140 Biz sadece başında koyarsanız. 36 00:01:39,140 --> 00:01:45,220 Kötü silin ve arama oh n zaman büyük harf. 37 00:01:45,220 --> 00:01:47,140 Yani yine, sadece çevirmek Bu fotoğraflar üzerinden, 38 00:01:47,140 --> 00:01:50,860 Ben bu son kez gördüğünü biliyorum, ama biz Bizim bağlantılı liste izlemek istiyorum 39 00:01:50,860 --> 00:01:53,440 takip ederek Bizim bağlantılı liste başı. 40 00:01:53,440 --> 00:01:55,580 Biz biliyoruz Çünkü Bizim düğümlerin her biri 41 00:01:55,580 --> 00:01:58,610 Sadece işaret gidiyor Bizim bağlı listedeki bir sonraki düğüm. 42 00:01:58,610 --> 00:02:00,460 >> Yani biz takip nasıl. 43 00:02:00,460 --> 00:02:02,910 Bu olmasa da hafıza sürekli parçaları, 44 00:02:02,910 --> 00:02:07,410 biz sadece onları bulabilirsiniz Farklı okları takip. 45 00:02:07,410 --> 00:02:09,800 İşte bizim yapıdır Bir bağlantılı liste düğümü. 46 00:02:09,800 --> 00:02:11,440 Biz bu son kez gördüm. 47 00:02:11,440 --> 00:02:13,080 Bizim yapı düğüm var. 48 00:02:13,080 --> 00:02:14,340 Ve bu iki özelliği vardır. 49 00:02:14,340 --> 00:02:17,020 Bir numara, gerçek değer, biz saklamak istiyoruz. 50 00:02:17,020 --> 00:02:18,290 Bu durumda, bir tam sayı. 51 00:02:18,290 --> 00:02:21,100 Bu bir dize olabilir, bu olabilir Eğer istersen bir char olmak. 52 00:02:21,100 --> 00:02:24,710 Ve sonra, biz takip etmek zorunda Bizim bağlı listedeki bir sonraki düğüm. 53 00:02:24,710 --> 00:02:29,797 Yani bir olacak Bir sonraki düğüme işaretçisi. 54 00:02:29,797 --> 00:02:31,880 Sadece yapıyor olsaydı Arama Ben, daha önce de söylediğim gibi 55 00:02:31,880 --> 00:02:34,900 Eğer okları aşağı takip etmek olurdu. 56 00:02:34,900 --> 00:02:40,720 Ekleme, sen takip ediyorum listenizin geri kalanı nerede. 57 00:02:40,720 --> 00:02:44,150 Ve kafasını yönlendirmek istiyorum Yeni eleman, işaret hangi 58 00:02:44,150 --> 00:02:46,640 Bu durumda, tek bir olduğunu ve sonra bir işaret edecektir 59 00:02:46,640 --> 00:02:49,480 bağlantılı liste kalanına. 60 00:02:49,480 --> 00:02:52,996 Yani yine, ben bu biraz biliyorum sınav sıfır bir tekrarı biraz. 61 00:02:52,996 --> 00:02:55,370 Bu yüzden çok dikkatli olmalıyız sipariş hakkında hangi biz 62 00:02:55,370 --> 00:03:00,390 biz değil bu yüzden bu pointings yapmak Listenin arka izini kaybeder. 63 00:03:00,390 --> 00:03:04,122 Tamam, herhangi bir sorunuz Sadece tek listeleri bağlantılı? 64 00:03:04,122 --> 00:03:06,060 Başar, tamam, güzel. 65 00:03:06,060 --> 00:03:09,410 >> Peki şimdi, biz bir şey üzerine gitmek için gidiyoruz Sadece biraz daha karmaşık, 66 00:03:09,410 --> 00:03:10,920 iki kat listeleri bağlantılı. 67 00:03:10,920 --> 00:03:13,680 Tutmanın yanı sıra Yani Bir sonraki düğümün parça, 68 00:03:13,680 --> 00:03:16,220 biz de takip etmek istiyorum Bir önceki düğümün. 69 00:03:16,220 --> 00:03:19,580 Biz eğer Ve bu, bizi tanır Bizim bağlı listede bir noktada, 70 00:03:19,580 --> 00:03:23,110 sadece ileriye gitmek, ama Ayrıca geriye yineleme. 71 00:03:23,110 --> 00:03:25,220 Biz gördüğümüz gibi çünkü Bir tek bağlantılı liste, 72 00:03:25,220 --> 00:03:27,980 bazı düğümün vardı ve eğer aniden, biz karar, 73 00:03:27,980 --> 00:03:30,160 Aslında, ben gitmek istiyorum Benden önce düğüm hakkı, 74 00:03:30,160 --> 00:03:32,034 Tüm gitmek olurdu geri kafasına yolu 75 00:03:32,034 --> 00:03:35,710 Bulduğunuz kadar ve yineleme Aradığınız düğüm. 76 00:03:35,710 --> 00:03:37,680 >> Yani bu şeyler yapar Biz senin gibi biraz daha kolay 77 00:03:37,680 --> 00:03:39,670 yineleme çalışıyor Bizim bağlantılı liste içinde. 78 00:03:39,670 --> 00:03:47,870 Ama bir takip etmemizi gerektirir Daha fazla gösterici, yani bir daha düğüm yıldızı. 79 00:03:47,870 --> 00:03:50,830 Pekala, işte eğlenceli kısım geliyor. 80 00:03:50,830 --> 00:03:55,600 Biz uygulama uygulamaya gidiyoruz iki kat bağlantılı listeleri için kaldırın. 81 00:03:55,600 --> 00:03:58,660 Yani bu bir şeydir sınav için tamamen adil oyun. 82 00:03:58,660 --> 00:04:00,750 Geçtiğimiz sınavlara geldi. 83 00:04:00,750 --> 00:04:04,220 Yani kesinlikle hazırlanacak C. biraz kod 84 00:04:04,220 --> 00:04:07,900 Tüm unutmayın Bu eğlenceli PHP ve JavaScript, 85 00:04:07,900 --> 00:04:10,560 biz hala hatırlamak zorunda C do Yani tazelemek için 86 00:04:10,560 --> 00:04:12,146 eğer paslı hissediyorsun. 87 00:04:12,146 --> 00:04:14,580 >> Pekala, biz bunu yapabilirsiniz bakalım. 88 00:04:14,580 --> 00:04:16,312 Serin, tamam. 89 00:04:16,312 --> 00:04:18,600 Yani biz denemek için gidiyoruz Burada hakkını düzenlemek için, 90 00:04:18,600 --> 00:04:20,707 planlandığı gibi ve umarım bu gider. 91 00:04:20,707 --> 00:04:23,915 Pekala, herkes bana vermek istiyor Ben başlamalı nasıl bir öneri? 92 00:04:23,915 --> 00:04:27,030 Ben sadece varsayım yapma ki ben zaten 93 00:04:27,030 --> 00:04:30,180 Bir yapı tanımlanmış olması, bir ben, son sayfada gösterdi 94 00:04:30,180 --> 00:04:31,420 son slaytta. 95 00:04:31,420 --> 00:04:39,250 Ve ben bağlantılı benim başkanı depolamak ediyorum Bazı işaretçi liste listesi çağırdı. 96 00:04:39,250 --> 00:04:42,190 Herkes bana başlamak istiyor mu? 97 00:04:42,190 --> 00:04:45,410 >> İZLEYİCİ: Yeni oluşturabilir miyim düğüm listesi üzerinden aramak için? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH: Korku, yani Biz oluşturmak için gidiyoruz 99 00:04:46,410 --> 00:04:47,951 Yeni bir düğüm listesi üzerinden tarama için. 100 00:04:47,951 --> 00:04:48,570 Bunu sevdim. 101 00:04:48,570 --> 00:04:50,799 Bu Tamam ben sadece işaretçi arayacağım. 102 00:04:50,799 --> 00:04:52,340 Ve nerede başlangıçta başlamalıdır? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> İZLEYİCİ: Muhtemelen de Listenin başkanı. 105 00:04:59,840 --> 00:05:00,590 HANNAH: Güzel. 106 00:05:00,590 --> 00:05:03,670 Biz kafa, başlamak istediğiniz Ben listesinde kayıtlı olacak dedi. 107 00:05:03,670 --> 00:05:04,170 Korku. 108 00:05:04,170 --> 00:05:05,220 Şimdiye kadar, çok iyi. 109 00:05:05,220 --> 00:05:08,260 Ve şimdi, hedefimiz olan listede yineleme 110 00:05:08,260 --> 00:05:12,870 Biz düğüm ile bulana kadar Biz Silmek istediğiniz değeri n. 111 00:05:12,870 --> 00:05:13,540 TAMAM MI? 112 00:05:13,540 --> 00:05:15,910 >> Peki şimdi parçası nerede Biz yineleme istiyoruz. 113 00:05:15,910 --> 00:05:19,488 Herkes önerebilir yol boyunca yineleme? 114 00:05:19,488 --> 00:05:20,979 >> İZLEYİCİ: Bir döngü. 115 00:05:20,979 --> 00:05:21,840 >> HANNAH: Bir döngü. 116 00:05:21,840 --> 00:05:22,620 Onu seviyorum. 117 00:05:22,620 --> 00:05:25,550 Özellikle, bir while döngüsü deneyebilirsiniz. 118 00:05:25,550 --> 00:05:30,919 Tamam, ve biz ulaştık biliyoruz Bizim listesinin zaman Neyin sonu? 119 00:05:30,919 --> 00:05:32,210 HEDEF KİTLE: işaretçi boş olduğunda. 120 00:05:32,210 --> 00:05:33,418 HANNAH: işaretçi boş olduğunda. 121 00:05:33,418 --> 00:05:34,320 Güzel, ben onu seviyorum. 122 00:05:34,320 --> 00:05:35,110 Serin, tamam. 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 Benim sınırlama brace Yani eğer üzgünüm tür bir ekran düşme. 125 00:05:43,190 --> 00:05:44,090 Biz geri getirdi. 126 00:05:44,090 --> 00:05:46,610 Serin, tamam. 127 00:05:46,610 --> 00:05:48,690 Sırada ne var? 128 00:05:48,690 --> 00:05:51,950 >> Yani biz silmek istediğini biliyorum değer n sahip düğüm. 129 00:05:51,950 --> 00:05:56,340 Yani davayı nerede bulalım biz aslında bizim düğümü bulmak. 130 00:05:56,340 --> 00:05:57,840 Peki nasıl olduğunu kontrol ediyorum? 131 00:05:57,840 --> 00:06:02,210 Ben sadece işaretçi, ardından eğer söyleyebilirim ben işaretçi aşımı değerini almak istiyorum, 132 00:06:02,210 --> 00:06:08,940 Ben sadece, n do arrow n, parametre eşittir 133 00:06:08,940 --> 00:06:14,490 Bu işleve verdiği, biz aslında silmek istediğiniz düğüm. 134 00:06:14,490 --> 00:06:17,090 Burada kadar Herhangi bir sorunuz? 135 00:06:17,090 --> 00:06:18,360 Tamam. 136 00:06:18,360 --> 00:06:24,140 Tamam, şimdi en hızlı resim çizelim gemide için bu görselleştirmek için. 137 00:06:24,140 --> 00:06:30,710 >> Yani bizim güzel düğüm var diyelim. 138 00:06:30,710 --> 00:06:34,480 Ve bir değeri vardır, ben sadece dört söylerim. 139 00:06:34,480 --> 00:06:40,340 Ve bir sonraki işaret Bizim bağlı listede düğüm. 140 00:06:40,340 --> 00:06:42,220 Ve daha önce bir şey yok. 141 00:06:42,220 --> 00:06:45,800 Yani bizim daha önceki var hiçbir şey işaret. 142 00:06:45,800 --> 00:06:48,110 Bu durumda, arka tarafa etmektedir. 143 00:06:48,110 --> 00:06:50,960 Tamam, sadece kurma benim Burada listesini bağlantılı. 144 00:06:50,960 --> 00:06:53,630 Ve biz işaret eden bir liste var Bu yapıya sahip başlayacak. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 Ben bir kez daha çizmek gerekir bütünlüğü uğruna. 147 00:07:00,485 --> 00:07:04,209 148 00:07:04,209 --> 00:07:06,117 TAMAM MI. 149 00:07:06,117 --> 00:07:07,480 Ben bu ileriye işaret edeceğiz. 150 00:07:07,480 --> 00:07:09,550 Ve ben bu bir geri işaret edeceğiz. 151 00:07:09,550 --> 00:07:10,360 Üzgünüz, özür dilerim. 152 00:07:10,360 --> 00:07:12,710 Evet, geriye aldım. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 Tekrar yapın. 155 00:07:16,967 --> 00:07:18,330 Tamam, oraya gidiyoruz. 156 00:07:18,330 --> 00:07:19,910 Pekala, onu aldım. 157 00:07:19,910 --> 00:07:21,780 Tamam, burada bizim resmi var. 158 00:07:21,780 --> 00:07:24,860 >> Tamam, bu yüzden iki olgu düşünebilirsiniz. 159 00:07:24,860 --> 00:07:27,330 ilk vaka ise ise düğüm biz silmek istiyoruz 160 00:07:27,330 --> 00:07:29,420 Bizim listesinin en başında olduğunu. 161 00:07:29,420 --> 00:07:34,070 Ve sonra, ikinci durumda biz istiyoruz ki başka bir yerde ise düşünmektir. 162 00:07:34,070 --> 00:07:37,660 Ben bu tamamen anlıyorum Dağınık tüm silme çizim, 163 00:07:37,660 --> 00:07:40,400 ama umarım biz deneyeceğim Bazı kod ile bu açık olun. 164 00:07:40,400 --> 00:07:45,450 >> Tamam, o yüzden davayı kapağı izin nerede, bizim düğümü bulundu 165 00:07:45,450 --> 00:07:48,900 ve çok az var Bizim bağlantılı liste başlar. 166 00:07:48,900 --> 00:07:50,810 Herkes bana ver olarak burada öneri ne 167 00:07:50,810 --> 00:07:54,684 Aslında bizim düğümü kaldırmak için ne yapmalıyım? 168 00:07:54,684 --> 00:07:55,970 Bu biraz zor. 169 00:07:55,970 --> 00:07:56,470 TAMAM MI? 170 00:07:56,470 --> 00:07:59,628 >> İZLEYİCİ: Sen almak zorunda daha önce olurdu düğüm 171 00:07:59,628 --> 00:08:01,794 ve işaret yapmak ondan sonra olacak bir, 172 00:08:01,794 --> 00:08:03,004 ve düğüm almak ondan sonra olacak ve yapacak 173 00:08:03,004 --> 00:08:04,554 bunun önce düğüme işaret. 174 00:08:04,554 --> 00:08:05,220 HANNAH: Kesinlikle. 175 00:08:05,220 --> 00:08:10,640 Tamam, bu nedenle bu durumda Nere iki olgu var. 176 00:08:10,640 --> 00:08:14,100 Biz dava var Aradığımız düğüm 177 00:08:14,100 --> 00:08:18,270 Listenin cephesidir. 178 00:08:18,270 --> 00:08:23,110 Tamam, ve sonra durum size tarif doğru, aksi takdirde? 179 00:08:23,110 --> 00:08:24,500 Bu listede başka bir yerde var. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 Yani dedi, biz gerekir önceki düğüm bakmak, 182 00:08:32,840 --> 00:08:36,500 ve önceki düğümü yapmak Bir sonraki düğüme işaret. 183 00:08:36,500 --> 00:08:40,510 Yani biz konum diyelim beş almaya çalışıyor 184 00:08:40,510 --> 00:08:43,059 Burada benim çok dağınık çizim. 185 00:08:43,059 --> 00:08:47,530 Biz emin olmak istiyorum Dört şimdi altı işaret. 186 00:08:47,530 --> 00:08:49,590 Altı Four sonraki noktalar. 187 00:08:49,590 --> 00:08:52,150 Ve dört ila altı önceki noktalar. 188 00:08:52,150 --> 00:08:53,960 Bu hedefimiz doğru, burada? 189 00:08:53,960 --> 00:08:56,150 Bu sana bence budur Sadece orada dedi. 190 00:08:56,150 --> 00:08:58,450 >> Tamam, bu yüzden ilk parçayı alalım. 191 00:08:58,450 --> 00:09:02,300 Var en yapalım Bir önceki işaretçi önceki. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 Yani önümüzdeki dört neyi işaret etmelidir? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 Kesinlikle, bu durumda, altı. 196 00:09:14,900 --> 00:09:18,470 Bu yüzden sonraki işaretçi demeliyim. 197 00:09:18,470 --> 00:09:20,600 TAMAM MI? 198 00:09:20,600 --> 00:09:21,150 Tamam. 199 00:09:21,150 --> 00:09:24,870 Yani bu çirkin görüntünün kurtulmak izin ve biraz daha güzel bir çizmeye çalışın. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 Biz burada bizim liste kafası var. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 Ve ilk düğüm işaret dedik, bizim bağlantılı liste, dört. 204 00:09:42,740 --> 00:09:45,620 İşte bizim ikinci düğüm, beş değil. 205 00:09:45,620 --> 00:09:47,307 Ve bizim üçüncü düğüm, altı. 206 00:09:47,307 --> 00:09:50,265 Sadece aynı çizmek için çalışıyor resim, sadece biraz daha temiz. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 Tamam, bu nedenle dört sonraki başlangıçta beş işaret. 209 00:09:56,280 --> 00:09:58,620 Altı Five sonraki noktalar. 210 00:09:58,620 --> 00:10:00,170 Beş Six önceki noktalar. 211 00:10:00,170 --> 00:10:02,470 Ve dört beş önceki noktalar. 212 00:10:02,470 --> 00:10:03,360 O kadar güzel! 213 00:10:03,360 --> 00:10:04,530 Serin, tamam. 214 00:10:04,530 --> 00:10:07,770 >> Peki şimdi, biz ne yaptığını sadece Burada, bu kod satırı, 215 00:10:07,770 --> 00:10:12,680 hangi önceki gösterici diyor Bir sonraki, yani ne demek? 216 00:10:12,680 --> 00:10:17,540 Biz arıyorsanız Bunun anlamı Beş, önceki düğüme gidin, 217 00:10:17,540 --> 00:10:21,970 ve şimdi bir sonraki gerektiğini bulunuyor Beş sonraki gelin. 218 00:10:21,970 --> 00:10:27,840 Yani aslında, ne yapıyor bu bu oku silme var olan 219 00:10:27,840 --> 00:10:29,640 ve doğru beş üzerinden atlamak yapma. 220 00:10:29,640 --> 00:10:31,360 Anlaşıldı mı? 221 00:10:31,360 --> 00:10:33,200 Ben biraz kabataslak olabilir biliyorum. 222 00:10:33,200 --> 00:10:34,480 Biraz kafa sallıyor bakın. 223 00:10:34,480 --> 00:10:35,390 Bu iyi. 224 00:10:35,390 --> 00:10:36,670 Serin, tamam. 225 00:10:36,670 --> 00:10:39,590 Şimdi, bir sonraki adım ne? 226 00:10:39,590 --> 00:10:42,060 >> Bir sonraki sıfırlamak ettik. 227 00:10:42,060 --> 00:10:45,297 Şimdi, başka hangi ok Ben değiştirmek gerekiyor? 228 00:10:45,297 --> 00:10:46,130 Bu tam burada. 229 00:10:46,130 --> 00:10:47,560 Altı önceki. 230 00:10:47,560 --> 00:10:50,620 Biz altı önceki istemiyorum Artık beş işaret etmek. 231 00:10:50,620 --> 00:10:54,580 Biz dört işaret etmek istiyorum. 232 00:10:54,580 --> 00:10:56,190 Bu resim mantıklı mı? 233 00:10:56,190 --> 00:10:58,370 Yani şimdi biz aslında beş out alabilir. 234 00:10:58,370 --> 00:10:59,370 Yani o parça alalım. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 Ben önce ben ne yapmalıyım Altı önceki dört sıfırlanır? 237 00:11:11,180 --> 00:11:14,360 Orada herhangi bir fikir? 238 00:11:14,360 --> 00:11:17,369 >> İZLEYİCİ: arasındaki düğüm Özgür o null ayarlayarak onları? 239 00:11:17,369 --> 00:11:17,910 HANNAH: Serin. 240 00:11:17,910 --> 00:11:21,100 Kesinlikle, bizim nihai hedefimizdir düğüm ücretsiz olacak. 241 00:11:21,100 --> 00:11:22,490 Yani biz burada bunu yapabilirsiniz. 242 00:11:22,490 --> 00:11:23,540 Ücretsiz işaretçi. 243 00:11:23,540 --> 00:11:24,810 Kesinlikle. 244 00:11:24,810 --> 00:11:29,160 Ancak bundan önce, en amacımız hakkı sadece-- izin 245 00:11:29,160 --> 00:11:38,730 Burada yanındaki işaretçi ayarlamak için Eşit önceki önceki işaretçi. 246 00:11:38,730 --> 00:11:40,760 Ben bu örtbas oluyor biliyorum. 247 00:11:40,760 --> 00:11:45,440 Tamam, en serin take-- edelim. 248 00:11:45,440 --> 00:11:46,990 Herkes bu alt satırında görebilir miyim? 249 00:11:46,990 --> 00:11:47,840 Ya da süper minik? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> Biz idam önce Yani Burada bu hat, biz istiyoruz 252 00:11:54,300 --> 00:11:58,375 emin olmak için işaretçisi yanında boş değildir. 253 00:11:58,375 --> 00:12:00,500 Işaretçi yanındaki Çünkü eğer hata null, ne tür 254 00:12:00,500 --> 00:12:02,727 Ben çalıştığınızda alacak Bir boş gösterici başvuru? 255 00:12:02,727 --> 00:12:03,560 HEDEF KİTLE: Seg hatası. 256 00:12:03,560 --> 00:12:05,660 HANNAH: Bir seg hatası, güzel. 257 00:12:05,660 --> 00:12:09,690 Eğer öyleyse tamam, o değil null, o zaman sıfırlayabilir. 258 00:12:09,690 --> 00:12:14,420 Ve biz dört tekrar altı nokta var. 259 00:12:14,420 --> 00:12:17,440 Bu noktaya kadar Sorular kadar? 260 00:12:17,440 --> 00:12:17,940 Evet? 261 00:12:17,940 --> 00:12:19,814 >> İZLEYİCİ: İlk olarak açıklamada ise, yaptın 262 00:12:19,814 --> 00:12:23,817 ok var demek Bir sonraki veya [inaudible]? 263 00:12:23,817 --> 00:12:25,150 HANNAH: Ben işaretçi ok n geliyordu. 264 00:12:25,150 --> 00:12:30,270 Yani temelde, ben yapmaya çalışıyorum ne , ben geçerli düğüm demek olduğunu 265 00:12:30,270 --> 00:12:34,100 yineleme, geçerli düğüm o Ben işaretçi saklama ediyorum, bakıyorum. 266 00:12:34,100 --> 00:12:37,630 Ve ben işaretçi en bilmek istiyorum Bu durumda n değeri. 267 00:12:37,630 --> 00:12:39,500 Ve ben görmek istiyorum, bir Ben arıyorum düğüm 268 00:12:39,500 --> 00:12:42,790 düğüm için ben silmek amaçlayan ediyorum? 269 00:12:42,790 --> 00:12:47,657 Burada var n işaretçisi yüzden bu. 270 00:12:47,657 --> 00:12:49,857 >> İZLEYİCİ: ok gidiyor Yani n, sen değerini 271 00:12:49,857 --> 00:12:52,058 ve n adında bir düğüm saklayın? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH: Yani ben eğer gibi Bu bağlantılı listede geçiyor 274 00:12:58,820 --> 00:13:00,310 ve beş işaret. 275 00:13:00,310 --> 00:13:03,600 Ben eğer, bu değeri elde etmek istiyorsanız Ben, bu sayı, 5 almak istiyorum 276 00:13:03,600 --> 00:13:06,400 Ben işaretçi ok n yapmak zorunda. 277 00:13:06,400 --> 00:13:06,900 Serin? 278 00:13:06,900 --> 00:13:07,900 Evet. 279 00:13:07,900 --> 00:13:11,200 >> İZLEYİCİ: değişkenin adını n tane mi? 280 00:13:11,200 --> 00:13:11,700 HANNAH: Evet. 281 00:13:11,700 --> 00:13:14,870 Biz bir geri çevirmek Yani slayt, n adıdır 282 00:13:14,870 --> 00:13:18,660 içinde değerinin Bizim bağlı listede düğüm. 283 00:13:18,660 --> 00:13:21,510 Ve ben biraz olsun biliyorum Biraz kafa karıştırıcı ayrıca çünkü biz 284 00:13:21,510 --> 00:13:24,680 aradığınız şey Biz n silmek istediğiniz. 285 00:13:24,680 --> 00:13:26,717 Yani o nerede bir satır gelir. 286 00:13:26,717 --> 00:13:27,671 Evet? 287 00:13:27,671 --> 00:13:31,010 >> İZLEYİCİ: var ne [Duyulamaz] nasıl çalıştığını? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 Bir gösterici [duyulamaz]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH: Tabii. 291 00:13:37,520 --> 00:13:40,027 Eğer about-- hangi çizgi bahsediyoruz? 292 00:13:40,027 --> 00:13:41,526 HEDEF KİTLE: son satırı [duyulamaz]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH: Tabii, tamam. 295 00:13:45,250 --> 00:13:48,540 Yani resimde bakalım Sipariş bu açıklamaya çalışın. 296 00:13:48,540 --> 00:13:51,030 Ben, özür dilerim Kamera, soru 297 00:13:51,030 --> 00:13:54,580 Biz işaretçi açıklayabiliriz Bir sonraki işaretçi önceki ok. 298 00:13:54,580 --> 00:14:01,510 Tamam, bu yüzden biz beş konum diyelim ve hedefimiz beş silmektir. 299 00:14:01,510 --> 00:14:07,240 Yani, bir sonraki işaretçisi bu hangi Üç düğüm bize verir? 300 00:14:07,240 --> 00:14:10,840 Bu doğru, altıncı düğüme bize getiriyor? 301 00:14:10,840 --> 00:14:16,490 >> Tamam, şimdi biz soruyoruz Altı önceki için. 302 00:14:16,490 --> 00:14:17,060 TAMAM MI? 303 00:14:17,060 --> 00:14:20,210 Ve biz bu sıfırlama ediyoruz dört eşit olduğu, 304 00:14:20,210 --> 00:14:23,214 hangi beş önceki olması oldu. 305 00:14:23,214 --> 00:14:25,180 Ben süper olduğunu biliyorum Sert takip etmek. 306 00:14:25,180 --> 00:14:29,286 Ben gerçekten resim çizmek tavsiye Eğer böyle bir soru olsun. 307 00:14:29,286 --> 00:14:30,242 Evet? 308 00:14:30,242 --> 00:14:32,617 >> İZLEYİCİ: nedeni var ki Biz [duyulamaz] yok mu? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH: Kesinlikle. 311 00:14:38,570 --> 00:14:44,800 Soru Peki, neden Burada kontrol etmek gerekmez? 312 00:14:44,800 --> 00:14:48,160 Neden bunu kontrol etmek gerekmez Bir önceki işaretçi null eşit değildir? 313 00:14:48,160 --> 00:14:50,070 Biz ettik çünkü bu kadar zaten ayrılmış 314 00:14:50,070 --> 00:14:52,490 durumda ise ibre en başında. 315 00:14:52,490 --> 00:14:54,060 Çok iyi bir soru. 316 00:14:54,060 --> 00:14:56,880 Bu konuda başka bir şey? 317 00:14:56,880 --> 00:14:57,380 Serin, tamam. 318 00:14:57,380 --> 00:14:58,360 Yani o kadar bitirelim. 319 00:14:58,360 --> 00:14:59,890 Biz neredeyse oradayız. 320 00:14:59,890 --> 00:15:01,310 Ne olursa >> Yani başında mı? 321 00:15:01,310 --> 00:15:03,360 Ne yerine ise beş silmeye çalışırken, 322 00:15:03,360 --> 00:15:06,240 biz aslında dört silmek istedi? 323 00:15:06,240 --> 00:15:07,270 Ne yapmam gerekir? 324 00:15:07,270 --> 00:15:09,610 Eh, ben ne kadar başımı sıfırlamak istiyor? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Bunu haykırmak? 327 00:15:15,585 --> 00:15:16,710 HEDEF KİTLE: ondan sonra bir. 328 00:15:16,710 --> 00:15:17,460 HANNAH: Güzel. 329 00:15:17,460 --> 00:15:26,430 Tamam, bu yüzden işaret edilecek listesi istediğiniz ne olursa olsun bizim işaretçi sonraki düğümdür. 330 00:15:26,430 --> 00:15:29,040 İyi. 331 00:15:29,040 --> 00:15:30,810 Ve sadece tamlık yıllardan için aşkına, biz olur 332 00:15:30,810 --> 00:15:35,590 listemize sürece kontrol etmek istiyorum sürece bizim liste değildir gibi, boş değil 333 00:15:35,590 --> 00:15:42,730 Boş, o zaman ayarlamak istediğiniz null önceki eşit. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 Soru kadar? 336 00:15:50,230 --> 00:15:53,205 Bir adım from--? 337 00:15:53,205 --> 00:15:55,530 >> İZLEYİCİ: o eğer olur Liste null eşit değildir? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH: Evet, tamamen haklısın. 339 00:15:56,950 --> 00:15:58,130 Ben çok üzgünüm. 340 00:15:58,130 --> 00:16:00,040 Mı listesine null eşit değildir. 341 00:16:00,040 --> 00:16:01,915 Korku. 342 00:16:01,915 --> 00:16:04,245 Tüm ekranda bu getirmek için çalışıyorum. 343 00:16:04,245 --> 00:16:06,870 Bu tür düşme oluyor. 344 00:16:06,870 --> 00:16:07,730 Üzgünüm, beyler. 345 00:16:07,730 --> 00:16:11,874 Ve son ama en az değil, tüm Biz dönüş yapmak zorunda. 346 00:16:11,874 --> 00:16:12,840 TAMAM MI. 347 00:16:12,840 --> 00:16:15,400 Bu çok sıkışmış oldu Gerçekten hızlı bir şekilde. 348 00:16:15,400 --> 00:16:16,800 Bu over bakmak için bir saniye sürer. 349 00:16:16,800 --> 00:16:18,216 Herhangi bir sorunuz varsa bana söyle. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 Evet? 352 00:16:20,732 --> 00:16:26,940 >> İZLEYİCİ: Liste kısmında ise Baş, Nevermind, bekle sonra--. 353 00:16:26,940 --> 00:16:27,700 >> HANNAH: Tamam, iyi. 354 00:16:27,700 --> 00:16:30,987 Liste başındaki Yani bu, biz takılı olursa olsun onu kaldırın. 355 00:16:30,987 --> 00:16:31,486 Evet? 356 00:16:31,486 --> 00:16:33,777 >> İZLEYİCİ: açıklayabilir misin Tekrar if ilk? 357 00:16:33,777 --> 00:16:36,149 N işaretçi n eşitse? 358 00:16:36,149 --> 00:16:36,690 HANNAH: Tabii. 359 00:16:36,690 --> 00:16:42,780 Yani bütün bu fonksiyonun bizim hedefimizdir değer n olan düğüm silmek için. 360 00:16:42,780 --> 00:16:47,460 Yani eğer biz konum olarak biz, bulmak Bizim listede yineleme, 361 00:16:47,460 --> 00:16:51,770 değer n düğüm, işte kimse biz silmek istiyorum. 362 00:16:51,770 --> 00:16:57,286 Yani silme tüm olur o büyük eğer deyimi içinde. 363 00:16:57,286 --> 00:16:58,593 Bu mantıklı mı? 364 00:16:58,593 --> 00:16:59,480 Serin. 365 00:16:59,480 --> 00:16:59,990 Evet? 366 00:16:59,990 --> 00:17:02,864 >> İZLEYİCİ: Belki de sadece göremiyorum bu, ama aynı zamanda bir çizgi gerekmez 367 00:17:02,864 --> 00:17:06,024 listede kaydırma için? 368 00:17:06,024 --> 00:17:06,690 HANNAH: Korku. 369 00:17:06,690 --> 00:17:10,896 En biraz bu kadar getirelim, ve Biz alt o hakkı atacağım. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 Belki kurulu yapardım biraz daha iyi bir fikir. 372 00:17:15,490 --> 00:17:17,829 Peki nasıl ileriye işaretçisi hareket edecek? 373 00:17:17,829 --> 00:17:20,184 >> İZLEYİCİ: Pointer işaretçi artı bir eşittir. 374 00:17:20,184 --> 00:17:21,599 >> HANNAH: Güzel. 375 00:17:21,599 --> 00:17:25,050 Yani bizi tanır iterating dek devam eder. 376 00:17:25,050 --> 00:17:26,251 TAMAM MI. 377 00:17:26,251 --> 00:17:27,750 HEDEF KİTLE: Orada bir başka olmaz mıydı? 378 00:17:27,750 --> 00:17:29,028 HANNAH: Bir kez daha? 379 00:17:29,028 --> 00:17:32,444 HEDEF KİTLE: Orada olmaz eğer eski büyük sonra başka 380 00:17:32,444 --> 00:17:35,519 ifadesi [duyulamaz]? 381 00:17:35,519 --> 00:17:36,310 HANNAH: Hangi bölüm? 382 00:17:36,310 --> 00:17:38,350 Üzgünüm. 383 00:17:38,350 --> 00:17:41,800 >> İZLEYİCİ: kastetmek, Orada else olmamalı? 384 00:17:41,800 --> 00:17:43,550 HANNAH: Kesinlikle else olabilir. 385 00:17:43,550 --> 00:17:46,930 Ben bir dönüş hakkına sahip olduğundan Orada, bir başka gerekmez. 386 00:17:46,930 --> 00:17:48,760 Ama evet, iyi bir soru. 387 00:17:48,760 --> 00:17:50,170 Evet, tamam mı? 388 00:17:50,170 --> 00:17:52,878 HEDEF KİTLE: pointer'In düşünebiliyor Bu liste içinde hareket ediyor 389 00:17:52,878 --> 00:17:56,610 değerine alarak Listedeki her düğümün? 390 00:17:56,610 --> 00:18:00,650 Ya da biz bunu düşünmek gerekir listeye dış tür? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH: Ya bir güzel, sanırım. 392 00:18:02,350 --> 00:18:05,880 Ben hayal yoludur Ben tamam, ben gösterici olduğumu söylüyorlar. 393 00:18:05,880 --> 00:18:06,520 Ve bu benim. 394 00:18:06,520 --> 00:18:07,150 Bu benim el. 395 00:18:07,150 --> 00:18:09,960 Ben farklı göstermek için gidiyorum Ben yineleme istediğiniz şeyler. 396 00:18:09,960 --> 00:18:12,270 Öncelikle, ben işaret gidiyorum Listenin başına. 397 00:18:12,270 --> 00:18:14,144 Ve ben olduğumu söylüyor dört işaret olacak. 398 00:18:14,144 --> 00:18:18,060 Ve bu yüzden bana, listeye dış olmak Ben bu unsurların her birine işaret edebilir. 399 00:18:18,060 --> 00:18:19,520 Yani işaretçi olarak kendimi düşünüyorum. 400 00:18:19,520 --> 00:18:21,645 HEDEF KİTLE: Yani silmek Bu elemanların biri, 401 00:18:21,645 --> 00:18:23,404 Bunu konuşmak, kendini silin. 402 00:18:23,404 --> 00:18:24,070 HANNAH: Kesinlikle. 403 00:18:24,070 --> 00:18:25,920 Yani bir şey silmek Eğer işaret ediyoruz. 404 00:18:25,920 --> 00:18:28,340 Örnek Yani biz nereye konum gördüm 405 00:18:28,340 --> 00:18:31,670 beş silmeye çalışırken, Ben beş işaret olduğumda, 406 00:18:31,670 --> 00:18:34,200 Ben silmek istiyorum şey işaret ediyorum. 407 00:18:34,200 --> 00:18:35,870 Tam olarak doğru. 408 00:18:35,870 --> 00:18:36,577 Evet? 409 00:18:36,577 --> 00:18:39,410 HEDEF KİTLE: biz halledilir mı n listesinde olmayan vaka? 410 00:18:39,410 --> 00:18:40,460 HANNAH: n, listede değilse? 411 00:18:40,460 --> 00:18:43,501 Ne olacak ki tüm sen olduğunu aracılığıyla ve yineleme yineleme olacak 412 00:18:43,501 --> 00:18:47,616 aracılığıyla, ve o zaman gidiyoruz olmak null adlı işaretçisi almak için, 413 00:18:47,616 --> 00:18:48,990 ve sonra yapılması gereken gidiyoruz. 414 00:18:48,990 --> 00:18:50,812 >> İZLEYİCİ: Yani biz var bir şey dönmek için? 415 00:18:50,812 --> 00:18:51,520 HANNAH: Yapabiliriz. 416 00:18:51,520 --> 00:18:54,500 yolu bu tanımlanmış eğer fonksiyonu, ben sadece döner söylüyorlar 417 00:18:54,500 --> 00:18:55,770 ne olursa olsun geçersiz. 418 00:18:55,770 --> 00:18:58,360 Ama bir şey olabilir Bir tamsayı dönen gibi, 419 00:18:58,360 --> 00:19:00,920 ve dönüş var başarısız olursa 1 negatif. 420 00:19:00,920 --> 00:19:03,070 Böyle bir şey. 421 00:19:03,070 --> 00:19:04,494 Sorular evet Şarkı söylemeyi kes? 422 00:19:04,494 --> 00:19:05,410 HEDEF KİTLE: [duyulamaz]? 423 00:19:05,410 --> 00:19:05,993 HANNAH: Üzgünüm? 424 00:19:05,993 --> 00:19:07,419 HEDEF KİTLE: [duyulamaz]? 425 00:19:07,419 --> 00:19:07,960 HANNAH: Tabii. 426 00:19:07,960 --> 00:19:11,730 Biz ettik kez Yani actual-- var hareketli yapılan tüm bu çalışmalar 427 00:19:11,730 --> 00:19:16,530 Tüm bu oklar etrafında, bizim bütün gol düğümün kurtulmak oldu 428 00:19:16,530 --> 00:19:18,230 biz arıyoruz. 429 00:19:18,230 --> 00:19:21,610 Bu durumda Yani, azat işaretçi, ben beş işaret ediyorsam, 430 00:19:21,610 --> 00:19:24,670 Bu orta düğüm silme gibi. 431 00:19:24,670 --> 00:19:27,250 Bu ücretsiz işaretçi parçası. 432 00:19:27,250 --> 00:19:29,090 Bu mantıklı? 433 00:19:29,090 --> 00:19:31,390 >> İZLEYİCİ: Yani bile düşündüm değil [duyulamaz] mi? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH: Yani biz başında kabul Biz oldu biraz listesi vardı already-- 435 00:19:36,060 --> 00:19:37,220 birlikte bu koymuştu. 436 00:19:37,220 --> 00:19:39,761 Bu yüzden, bu inşa etmek üzere Liste, onlar [inaudible] olmalı. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 Serin. 439 00:19:42,750 --> 00:19:44,490 Bu başka bir şey ile? 440 00:19:44,490 --> 00:19:46,386 Evet? 441 00:19:46,386 --> 00:19:49,204 >> İZLEYİCİ: Ne liste halinde boş satır eşit değil? 442 00:19:49,204 --> 00:19:49,704 [Duyulamaz]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH: Sağ burada? 445 00:19:53,080 --> 00:19:53,840 HEDEF KİTLE: Evet. 446 00:19:53,840 --> 00:19:57,370 HANNAH: Tamam, hepsi ben yapıyorum Ben sadece emin yapıyorum edilir 447 00:19:57,370 --> 00:20:03,250 ben inceleyebilirsiniz listesine çalışmadan önce, Ben önceki erişmeye çalıştığınızda önce, 448 00:20:03,250 --> 00:20:07,210 O değil ben emin olmak istiyorum boş yüzden bir seg hata alamadım. 449 00:20:07,210 --> 00:20:08,400 Serin. 450 00:20:08,400 --> 00:20:10,820 >> Tamam, ben bu oldukça olduğunu biliyorum Bir sürü aracılığıyla almak için. 451 00:20:10,820 --> 00:20:14,950 Yani bu slayt olacak Size sunulan. 452 00:20:14,950 --> 00:20:17,341 Böylece daha detaylı olarak gidebilirsiniz. 453 00:20:17,341 --> 00:20:17,841 Evet? 454 00:20:17,841 --> 00:20:19,749 >> İZLEYİCİ: Neden listesi [duyulamaz]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH: Tabii. 457 00:20:24,670 --> 00:20:27,390 Yani liste gerçekten işaret Burada bu unsur, 458 00:20:27,390 --> 00:20:29,200 Listedeki ilk unsur. 459 00:20:29,200 --> 00:20:30,748 Yani bir önceki olamaz. 460 00:20:30,748 --> 00:20:31,736 Evet? 461 00:20:31,736 --> 00:20:35,194 >> İZLEYİCİ: işaretçi noktası mı bellekte aynı adrese? 462 00:20:35,194 --> 00:20:38,404 Aynı işaret mu düğüm olarak bellekte adresi 463 00:20:38,404 --> 00:20:40,640 o işaret ediyor ki? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH: Evet, bu işaret bellekte bu düğüme. 465 00:20:43,865 --> 00:20:47,190 >> İZLEYİCİ: Sağ, bu yüzden zaman [duyulamaz]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH: Bir anlamda, evet. 467 00:20:50,580 --> 00:20:51,280 TAMAM MI. 468 00:20:51,280 --> 00:20:52,997 Pekala, bu birlikte hareket edelim. 469 00:20:52,997 --> 00:20:55,330 Ve daha fazla sorunuz varsa, sonunda ayrılmamak, 470 00:20:55,330 --> 00:20:57,130 ve biz tekrar gidebilirsiniz. 471 00:20:57,130 --> 00:20:58,120 Serin, tamam. 472 00:20:58,120 --> 00:21:00,490 Şimdi, biz hareket olsun tablolar, çalışır karma, 473 00:21:00,490 --> 00:21:04,940 ve ağaçlar, süper var hangi p-set, beş yazım aşina. 474 00:21:04,940 --> 00:21:11,020 >> Yani karma tablo sadece bir olduğunu tek bağlantılı listeleri ile dizi 475 00:21:11,020 --> 00:21:14,050 veya çift bunun kapalı geliyor listeleri bağlantılı. 476 00:21:14,050 --> 00:21:16,380 Bu yüzden çeşit var ilişkisel dizi. 477 00:21:16,380 --> 00:21:21,280 Ve biz biliyoruz nasıl bu hangi kovalar içine almak için diziler, 478 00:21:21,280 --> 00:21:24,137 Biz bir karma işlevini kullanın. 479 00:21:24,137 --> 00:21:26,470 Yani bu durumda, can herkes ne hash fonksiyonu tahmin 480 00:21:26,470 --> 00:21:28,636 sadece bazı dayalı olacağını giriş ve çıkış? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> İZLEYİCİ: alfabenin Mektubu sayısı. 483 00:21:33,194 --> 00:21:33,860 HANNAH: Kesinlikle. 484 00:21:33,860 --> 00:21:36,160 Sadece alfabetik sırayla koyar. 485 00:21:36,160 --> 00:21:39,280 Bir ile başlar her şey İlk kova içine konur. 486 00:21:39,280 --> 00:21:43,340 B ile her şey konur İkinci kova, böylece, ve benzeri. 487 00:21:43,340 --> 00:21:45,620 Başar, tamam. 488 00:21:45,620 --> 00:21:48,980 Ve bir karma işlev herhangi bir Bir kelime alır fonksiyonu 489 00:21:48,980 --> 00:21:51,910 ve size ne o aittir kova. 490 00:21:51,910 --> 00:21:55,150 Hangi girişi Yani bizim dizinin aittir. 491 00:21:55,150 --> 00:21:58,080 >> Yani her zaman vermek benim karma, bir kelime işlev 492 00:21:58,080 --> 00:22:00,660 bana aynı söylemelidir her zaman yerleştirin. 493 00:22:00,660 --> 00:22:03,270 Biz karma işlevi kullanmak Yani eğer Önceki slayt 494 00:22:03,270 --> 00:22:05,950 nerede göre sıralama ediyoruz alfabenin ilk harfi, 495 00:22:05,950 --> 00:22:08,230 Ben vermek her zaman benim hash fonksiyonu "elma" 496 00:22:08,230 --> 00:22:10,180 her zaman 0 bana geri vermelidir. 497 00:22:10,180 --> 00:22:12,890 Ben bir elma varsa Yani Benim karma tablo koymak, 498 00:22:12,890 --> 00:22:17,700 Benim karma işlevi "elma" verirsen, o kova 0 koymak gidip, demeliyim. 499 00:22:17,700 --> 00:22:19,980 Ben bir arıyorum varsa Benim karma tablo elma 500 00:22:19,980 --> 00:22:24,340 ve nerede kudreti elma, demek canlı, senin karma işlevi isteyin. 501 00:22:24,340 --> 00:22:26,900 Ve 0 kepçe gidin, diyor. 502 00:22:26,900 --> 00:22:29,150 Tamam? 503 00:22:29,150 --> 00:22:32,660 Hash fonksiyonları ile Sorular? 504 00:22:32,660 --> 00:22:34,570 Korku. 505 00:22:34,570 --> 00:22:37,320 >> Burada biraz daha fazla Ayrıntılı açıklama 506 00:22:37,320 --> 00:22:39,570 Bir karma işlevi gibi görünebilir ne. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 Tamam. 509 00:22:42,960 --> 00:22:45,960 Karma ile Şimdi, sorun fonksiyonlar, ideal bir dünyada olduğunu 510 00:22:45,960 --> 00:22:48,870 biz sadece biri olurdu Her kovaya şey. 511 00:22:48,870 --> 00:22:50,900 Ama gerçekte, var sadece bir kelime 512 00:22:50,900 --> 00:22:54,280 Bu bile yok A. ile başlar B. So ile başlar, sadece bir kelime 513 00:22:54,280 --> 00:22:56,960 Bu durumda, eğer aniden ", berry" olsun 514 00:22:56,960 --> 00:22:58,710 ve bunu koymak istiyorum Bizim karma tabloya, 515 00:22:58,710 --> 00:23:03,640 ve biz oh, hayır, muz, bakın zaten orada, biz ne yapacağız? 516 00:23:03,640 --> 00:23:05,900 >> Peki, biz iki seçeneğiniz var. 517 00:23:05,900 --> 00:23:07,990 İlk seçenek lineer, sondalama hangi 518 00:23:07,990 --> 00:23:11,100 Sadece bulmak gitmek anlamına gelir sonraki boş kova. 519 00:23:11,100 --> 00:23:14,100 Bir sonraki boş bir dizi girdiyi bulmak gidin. 520 00:23:14,100 --> 00:23:15,750 Ve orada "berry" koydu. 521 00:23:15,750 --> 00:23:18,880 Bu yüzden gerekiyordu biliyorum kova, bir muz ile gitmek. 522 00:23:18,880 --> 00:23:22,155 Ama sadece, kova üç koymak kova için üç boş. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 Başka bir seçenek de, muhtemelen uygulamak ne 525 00:23:26,680 --> 00:23:29,220 senin p-seti, size de Ayrı zincirleme vardı. 526 00:23:29,220 --> 00:23:33,990 Yani kovalar her senin dizi elemanlarının her biri, 527 00:23:33,990 --> 00:23:38,410 sadece bir kelime tutan, ama aslında kelimelerin bir listesini bir gösterici tutar. 528 00:23:38,410 --> 00:23:41,880 Eğer olsaydı o yüzden senin karma tablo muz 529 00:23:41,880 --> 00:23:44,740 ve aniden istedim berry, hiçbir sorun eklemek için. 530 00:23:44,740 --> 00:23:51,110 Sadece sonuna kadar, ya da üzerine berry eklemek başlangıcı, senin bağlantılı liste. 531 00:23:51,110 --> 00:23:54,040 Tamam, harika. 532 00:23:54,040 --> 00:23:58,490 Karma ile Sorular tablolar biz gitmeden önce? 533 00:23:58,490 --> 00:23:59,850 >> Tamam. 534 00:23:59,850 --> 00:24:01,070 Ağaçlar ve çalışır. 535 00:24:01,070 --> 00:24:07,980 Tamam, bu yüzden bu başka bir seçenek oldu sözlük uygulanması için. 536 00:24:07,980 --> 00:24:09,100 Bir deneyin yapılmış olabilir. 537 00:24:09,100 --> 00:24:13,420 Yani ağacın özel bir tür olduğunu Bir çok düzeyli karma tablo gibi davranır. 538 00:24:13,420 --> 00:24:16,862 Yani resmi görürsünüz Eğer bir dizi var nerede 539 00:24:16,862 --> 00:24:19,320 Dizilerin bir demet işaret Dizilerin bir demet o nokta 540 00:24:19,320 --> 00:24:20,390 Dizilerin bir demet o nokta. 541 00:24:20,390 --> 00:24:23,140 Ve biz tam olarak ne olduğunu göreceksiniz gelecekteki slaytta gibi bakmak istiyorum. 542 00:24:23,140 --> 00:24:26,070 Ve daha genel olarak, bir ağaç Sadece herhangi bir veri yapısıdır 543 00:24:26,070 --> 00:24:29,710 burada veri Bazı hiyerarşi içinde organize. 544 00:24:29,710 --> 00:24:32,610 Yani biz var gördüm anlayış çeşit 545 00:24:32,610 --> 00:24:36,130 bir üst düzeyde, bir sonraki seviyeye, Bir sonraki seviye, bir sonraki seviyeye. 546 00:24:36,130 --> 00:24:39,690 Yani bu muhtemelen en açık Bazı özel örnekler. 547 00:24:39,690 --> 00:24:40,880 Yani burada bizim ağaç. 548 00:24:40,880 --> 00:24:42,970 Bunu görebilirsiniz Özellikle seviyesi vardır 549 00:24:42,970 --> 00:24:45,480 biz bu kök düğüm, biri ile başlamak. 550 00:24:45,480 --> 00:24:47,640 Ve bizim ağacın aşağı gidebilir. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> Bir ikili ağacın olduğunu özel ağaç türü. 553 00:24:53,910 --> 00:24:56,770 Ve tek şartname bir ikili ağaç 554 00:24:56,770 --> 00:25:01,130 Her düğüm olmasıdır en fazla iki yaprakları. 555 00:25:01,130 --> 00:25:03,960 Yani herhangi görmek için gitmiyoruz Bu düğümler üç ya da dört tane olan 556 00:25:03,960 --> 00:25:06,880 ya da yaprakların da başka bir sayıdır. 557 00:25:06,880 --> 00:25:11,310 Ve daha sonra daha da özel İkili arama ağacı 558 00:25:11,310 --> 00:25:18,010 nerede solundaki her düğüm Düğüm bir değer daha küçük sahip oluyor. 559 00:25:18,010 --> 00:25:21,180 Ve her değer Sağ büyük olacak. 560 00:25:21,180 --> 00:25:26,900 Eğer 44 bizim kökünde görmek Yani, Sol, 11, 22, ve 33 561 00:25:26,900 --> 00:25:28,940 Bizim kökü daha tüm azdır. 562 00:25:28,940 --> 00:25:33,890 Ve sağda hepsi numaraları 66, 55 ve 77 bigger--. 563 00:25:33,890 --> 00:25:37,380 Ve bu özellik geçerlidir Ağacın her düzeyde. 564 00:25:37,380 --> 00:25:42,690 >> Yani biz aşağı gitmek ne zaman Yine 22, 11, ve 33, 11 565 00:25:42,690 --> 00:25:46,950 den küçük 22 ve 33 22 daha büyük. 566 00:25:46,950 --> 00:25:50,160 Ve bu daha kolay arama yapar Biz numara arıyoruz çünkü eğer, 567 00:25:50,160 --> 00:25:53,877 biz tam olarak biliyoruz ki şube aşağı takip etmek. 568 00:25:53,877 --> 00:25:56,210 Yani bu sizi bir hatırlatmak gerekir İkili arama biraz. 569 00:25:56,210 --> 00:25:56,967 Evet? 570 00:25:56,967 --> 00:25:58,835 >> İZLEYİCİ: Yani sen İkili açıklayan, 571 00:25:58,835 --> 00:26:00,587 Eğer en fazla iki yaprakları vardır dedi? 572 00:26:00,587 --> 00:26:01,170 HANNAH: Hı-hı. 573 00:26:01,170 --> 00:26:02,580 HEDEF KİTLE: daha az olabilir mi? 574 00:26:02,580 --> 00:26:03,121 HANNAH: Evet. 575 00:26:03,121 --> 00:26:06,720 Yani, en Örneğin, diyelim şeylerin bir çift sayı yoktu 576 00:26:06,720 --> 00:26:11,791 ve doldurmak değil tüm senin bir biri varsa yaprakları, ince. 577 00:26:11,791 --> 00:26:12,290 TAMAM MI? 578 00:26:12,290 --> 00:26:12,789 Korku. 579 00:26:12,789 --> 00:26:15,930 Ağaçlarda Başka sorunuz var mı? 580 00:26:15,930 --> 00:26:16,670 TAMAM MI. 581 00:26:16,670 --> 00:26:20,110 >> Geri bizim denemeden Ben konuşuyordum gibi Biraz daha erken hakkında, 582 00:26:20,110 --> 00:26:23,900 nasıl bu multi-level diziler var. 583 00:26:23,900 --> 00:26:26,280 Bu durumda Yani, biz üstünde başlar. 584 00:26:26,280 --> 00:26:29,030 Ve biz aşağı herhangi bir kelimeyi takip edebilirsiniz. 585 00:26:29,030 --> 00:26:30,780 Yani biz istedik diyelim Turing bakmak için. 586 00:26:30,780 --> 00:26:34,380 Biz T başlayacak, aşağı takip U içeren bir dizi, 587 00:26:34,380 --> 00:26:37,350 ve biz kadar aşağı takip Bu küçük delta ulaşmak hangi 588 00:26:37,350 --> 00:26:39,060 Bize, evet, bir kelime buldum söyler. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 Deneme Clear? 591 00:26:44,120 --> 00:26:48,138 Her şey oraya gitmek için? 592 00:26:48,138 --> 00:26:48,908 Evet? 593 00:26:48,908 --> 00:26:51,866 HEDEF KİTLE: delta sembolü mu try içinde yer işgal var? 594 00:26:51,866 --> 00:26:54,532 HANNAH: Evet, bu yüzden değil mutlaka bile bir delta olması gerekir. 595 00:26:54,532 --> 00:26:57,760 Ama biz bir yol gerek Bizim computer-- üzgünüm söylemek, 596 00:26:57,760 --> 00:27:01,130 Bu yüzden TUR bir kelime olmadığını biliyorum. 597 00:27:01,130 --> 00:27:04,180 Let Çünkü en biz yoktu demek Bir deltanın bu kavram, bu kavram 598 00:27:04,180 --> 00:27:09,850 kutlama, bir kelime buldum, o, T-U-R geçmesi ve yineleme istiyorum 599 00:27:09,850 --> 00:27:11,300 ve sonra ben onu buldum, müthiş demek! 600 00:27:11,300 --> 00:27:12,670 Bu bir kelime olmalı. 601 00:27:12,670 --> 00:27:13,720 Ama gerçekten değil. 602 00:27:13,720 --> 00:27:15,310 Biz bütün Turing bir kelime olmak istiyorum. 603 00:27:15,310 --> 00:27:17,760 Yani biz bir şey olmalı diyor sonu, tebrikler, 604 00:27:17,760 --> 00:27:19,051 Eğer meşru bir kelime buldum. 605 00:27:19,051 --> 00:27:21,680 HEDEF KİTLE: Eğer gibi olsaydı Yani Alfabesinde 26 harf, 606 00:27:21,680 --> 00:27:24,560 aslında olurdu Senin denemede 27 tuşları? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH: Başar, evet. 608 00:27:26,010 --> 00:27:28,210 Yani aslında, ben düşünüyorum Bir sonraki slaytta olacak. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 Eğer bir varsa nerede senin denemede düğüm, sen 611 00:27:32,880 --> 00:27:35,800 yerine 26 27 çocuk sahibi olacak. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 Bununla Herhangi bir sorunuz? 614 00:27:40,050 --> 00:27:40,550 Evet? 615 00:27:40,550 --> 00:27:44,569 HEDEF KİTLE: Neden çabaladığı o kadar alıyorsun kadar alan [duyulamaz] olarak gitmek? 616 00:27:44,569 --> 00:27:47,629 Neden [duyulamaz] olarak kabul edilir? 617 00:27:47,629 --> 00:27:48,170 HANNAH: Tabii. 618 00:27:48,170 --> 00:27:48,790 Geri dönelim. 619 00:27:48,790 --> 00:27:52,350 Soru, neden çalışır çok büyüktür 620 00:27:52,350 --> 00:27:54,620 Bir karma tablo gibi bir şey daha. 621 00:27:54,620 --> 00:27:57,790 Bu seviyelerin her Yani, Hatta, burada çizilmiş değilseniz 622 00:27:57,790 --> 00:28:01,250 Tüm 26 karakter olmalıdır. 623 00:28:01,250 --> 00:28:04,420 Nedeni Ve bu yapamazsın Ben, Turing için ah, demek, ama gibi 624 00:28:04,420 --> 00:28:07,570 herhangi biri olması gerekmez U. Well düzeyinde aynı şeyleri, 625 00:28:07,570 --> 00:28:11,390 aniden eğer eklemek istedim T-H gibi bir şeydi, 626 00:28:11,390 --> 00:28:14,800 olması gerekir olurdu o kelimeyi ekleme yeteneği. 627 00:28:14,800 --> 00:28:17,330 Her harf için Böylece, Eğer zorunda gidiyoruz 628 00:28:17,330 --> 00:28:19,730 Bir grup var bunun kapalı geliyor diziler. 629 00:28:19,730 --> 00:28:24,060 Yani o olsun istiyorum nasıl görebilirsiniz gerçekten büyük, gerçekten hızlı. 630 00:28:24,060 --> 00:28:26,560 Başka sorunuz var mı? 631 00:28:26,560 --> 00:28:28,980 Tamam. 632 00:28:28,980 --> 00:28:29,832 Evet? 633 00:28:29,832 --> 00:28:33,210 >> İZLEYİCİ: Ne zaman çalışır vardır karma tabloları daha hızlı? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH: Ne zaman çalışır vardır karma tabloları daha hızlı? 635 00:28:36,280 --> 00:28:39,120 Yani sen gerçekten vardı Kötü karma işlevi. 636 00:28:39,120 --> 00:28:41,840 Yani ben gibiydi diyelim, burada hash fonksiyonu var. 637 00:28:41,840 --> 00:28:43,660 Ne olursa olsun kelimesi Bana ver, ben her zaman kulüpler 638 00:28:43,660 --> 00:28:47,740 Dizi girişi 0 koymak için gidiyor. 639 00:28:47,740 --> 00:28:52,000 Ve böylece biz sadece koyarak ile sona bir büyük uzun bağlantılı liste her şeyi. 640 00:28:52,000 --> 00:28:58,740 Ve böylece bir arama zaman en kötü alacaktı n bizim listesinin en sonunda ise. 641 00:28:58,740 --> 00:29:03,150 Denemede, biz sadece yineleme var kelimedeki harfleri ile. 642 00:29:03,150 --> 00:29:07,080 Biz demet ekledi Yani bile Bizim denemede daha fazla kelime, 643 00:29:07,080 --> 00:29:09,620 o artık bizi alacağını değil Belirli bir sözcüğü bulmak için. 644 00:29:09,620 --> 00:29:11,750 >> Yapmamız gereken için, bir örneğin, bu durumda, 645 00:29:11,750 --> 00:29:17,170 en biz zoom arıyoruz diyelim, Biz sadece üzerinde yineleme olurdu 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, dört harf. 647 00:29:19,840 --> 00:29:22,250 Yani bu sadece kelimesinin zoom uzunluğu. 648 00:29:22,250 --> 00:29:25,400 Bu kaç önemli değil Daha fazla kelime bu try koydu. 649 00:29:25,400 --> 00:29:30,225 Biz her zaman alabilirsiniz Bu dört adımda. 650 00:29:30,225 --> 00:29:31,215 Korku. 651 00:29:31,215 --> 00:29:32,205 Evet? 652 00:29:32,205 --> 00:29:34,185 >> İZLEYİCİ: Yani [Duyulmaz] Doğru, bir dizidir? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH: Mm-hm. 654 00:29:35,322 --> 00:29:37,155 HEDEF KİTLE: Eğer konum [duyulamaz] arıyor, 655 00:29:37,155 --> 00:29:40,929 Eğer gitmek zorunda kalacak senin dizi [duyulamaz] bulmak için? 656 00:29:40,929 --> 00:29:41,470 HANNAH: Tabii. 657 00:29:41,470 --> 00:29:44,000 HEDEF KİTLE: Bu daha fazla zaman almaz mı? 658 00:29:44,000 --> 00:29:46,370 HANNAH: Ben gidiyorum Benim dizi her zaman söylüyorlar 659 00:29:46,370 --> 00:29:49,250 A, B, C, D olacak, E, F, G, falan filan, 660 00:29:49,250 --> 00:29:51,630 Ben hep biliyorum eğer öyleyse bu kadar Aynı kesin sırayla, 661 00:29:51,630 --> 00:29:53,880 Ben hep biliyorum eğer var alfabetik sırayla, 662 00:29:53,880 --> 00:29:57,860 Ben sadece O numarası olduğunu söyleyebiliriz böylece ve böylece alfabede. 663 00:29:57,860 --> 00:29:59,620 Sadece bu yere atlamak. 664 00:29:59,620 --> 00:30:01,860 Ile, hatırlıyorum çünkü diziler, biz erişebilirsiniz 665 00:30:01,860 --> 00:30:06,590 Sabit bu dizinin herhangi bir elemanı Biz arıyoruz nerede biliyorsanız zaman. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 Evet? 668 00:30:09,580 --> 00:30:12,005 >> İZLEYİCİ: Önceki Açık [inaudible] 27 kaydırın 669 00:30:12,005 --> 00:30:14,430 ama ilki için 26. 670 00:30:14,430 --> 00:30:15,400 >> HANNAH: Üzgünüm? 671 00:30:15,400 --> 00:30:18,800 >> İZLEYİCİ: ilk değil mi bir 0, bu yüzden 26 olmaz? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH: Biz 27 dediğimizde Tabii, bu nedenle, bu var Bize 26 üzerinden 0 endeksleri verecek. 673 00:30:24,900 --> 00:30:28,220 Ama aslında sayarsanız Bu dışarı, o 27 olacak. 674 00:30:28,220 --> 00:30:30,007 İyi bir soru. 675 00:30:30,007 --> 00:30:30,590 Başka herhangi bir şey? 676 00:30:30,590 --> 00:30:31,200 Evet? 677 00:30:31,200 --> 00:30:34,420 >> İZLEYİCİ: Yani çalışır vardır karma tabloları daha yavaş? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH: Denemeleri de, olacak teori, daha hızlı hash tabloları 679 00:30:37,920 --> 00:30:39,760 ancak daha fazla bellek sürebilir. 680 00:30:39,760 --> 00:30:40,534 Evet? 681 00:30:40,534 --> 00:30:41,450 HEDEF KİTLE: [duyulamaz]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH: Üzgünüm, seni duymadım. 684 00:30:47,484 --> 00:30:48,400 HEDEF KİTLE: [duyulamaz]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0-25 size 26 verir. 687 00:30:54,100 --> 00:30:56,958 >> HANNAH: 0-25 olur Doğru, sana 26 ver. 688 00:30:56,958 --> 00:30:58,457 >> İZLEYİCİ: Ve sonra [duyulamaz]. 689 00:30:58,457 --> 00:30:59,040 HANNAH: Sağ. 690 00:30:59,040 --> 00:31:04,760 Bu yüzden belirterek ediyoruz sayıdır Bizim dizide şeyler sayısı. 691 00:31:04,760 --> 00:31:07,260 Biz 27 var ise, bu kadar Bize vereceğim 0 692 00:31:07,260 --> 00:31:10,620 26 ile, burada verecek Bu durumda bizim için oda, 693 00:31:10,620 --> 00:31:12,770 Ben bir kesme işareti içeren değilim. 694 00:31:12,770 --> 00:31:17,040 Bu yüzden 25 üzerinden 0 olan alıyoruz alfabenin ilk 26 harf, 695 00:31:17,040 --> 00:31:18,990 alfabenin veya 26 harf. 696 00:31:18,990 --> 00:31:21,190 Ve o son şey, giriş 26 de, bir 697 00:31:21,190 --> 00:31:24,598 çek olacak işareti, veya delta. 698 00:31:24,598 --> 00:31:26,960 Başka herhangi bir şey? 699 00:31:26,960 --> 00:31:29,130 Korku. 700 00:31:29,130 --> 00:31:30,020 Benim alanı kaybetti. 701 00:31:30,020 --> 00:31:31,020 Serin, tamam. 702 00:31:31,020 --> 00:31:33,240 >> Yani biz zaten bu değindi. 703 00:31:33,240 --> 00:31:37,430 Ama büyük ticaret kapalı denemeden ve hash tabloları arasındaki 704 00:31:37,430 --> 00:31:39,720 çalışır olarak temin olmasıdır teori, sabit bakmak 705 00:31:39,720 --> 00:31:42,890 kere ama bellekte bir sürü kullanın. 706 00:31:42,890 --> 00:31:46,495 Pekala, şimdi biz biraz var Daha az karmaşık yapılar, 707 00:31:46,495 --> 00:31:49,640 ve biz C bitireceksin, ve biz doğru birlikte hareket edeceğiz. 708 00:31:49,640 --> 00:31:51,930 >> Yığınlar Yani, biz bu gördüm nerede derste size 709 00:31:51,930 --> 00:31:55,020 benzer bir şey var tepsiler nerede yığını 710 00:31:55,020 --> 00:31:57,330 Eğer koymak son şey yığını oluyor 711 00:31:57,330 --> 00:31:59,500 Eğer take off ilk şey olmak. 712 00:31:59,500 --> 00:32:02,880 Yani gerçekten bir yığın tanımlar ne son şey koymak olduğunu 713 00:32:02,880 --> 00:32:06,080 İlk olacak şey çıkar. 714 00:32:06,080 --> 00:32:09,279 Ve biz kullanmak terminoloji eğer bir şey koymak için gidiyoruz, 715 00:32:09,279 --> 00:32:12,070 biz bir şey eklemek için gidiyoruz eğer Bizim yığını, biz iterek diyorsun. 716 00:32:12,070 --> 00:32:14,970 Ve biz bir şey alırsak kapalı, biz haşhaş diyoruz. 717 00:32:14,970 --> 00:32:17,080 Ve biz gidiyoruz , biz bir yığın uygulamak 718 00:32:17,080 --> 00:32:20,660 izlemek için emin olmak gerekir büyüklüğü ve kapasitesi hem de. 719 00:32:20,660 --> 00:32:24,940 Toplam eleman sayısı biz Yani tutun ve elemanların mevcut sayısı 720 00:32:24,940 --> 00:32:27,880 biz düzenliyoruz. 721 00:32:27,880 --> 00:32:29,885 >> Ve çok benzer, biz kuyruklar var. 722 00:32:29,885 --> 00:32:34,510 Ve tek fark yerine yığınları ile biridir 723 00:32:34,510 --> 00:32:37,630 dedik biz koymak son şey Biz çıkarmak ilk şeydir. 724 00:32:37,630 --> 00:32:40,940 Yani sırası ile, biz koymak ilk şey 725 00:32:40,940 --> 00:32:43,129 olacak İlk şey çıkar. 726 00:32:43,129 --> 00:32:45,420 Yani bu sen eğer gibi aslında bir mağazada sıraya 727 00:32:45,420 --> 00:32:48,140 ve yardım ediliyoruz, doğrultusunda daha sonra birinci kişi 728 00:32:48,140 --> 00:32:50,880 yardım için ilk kişi olmalıdır. 729 00:32:50,880 --> 00:32:52,220 Yani bir kuyruk olurdu. 730 00:32:52,220 --> 00:32:55,880 >> Bu yüzden takip etmek gerekir boyut, kapasite ve baş biz olduğumuzdan beri 731 00:32:55,880 --> 00:33:01,130 açık kapalı herkesi alacak yerine arka listesinin. 732 00:33:01,130 --> 00:33:03,480 Bu konuda sorular? 733 00:33:03,480 --> 00:33:06,330 Sizi rahatsız herhangi bir C soruları? 734 00:33:06,330 --> 00:33:09,590 Veri yapıları, eğlenceli şeyler herhangi? 735 00:33:09,590 --> 00:33:10,530 Pekala, serin. 736 00:33:10,530 --> 00:33:14,120 Yani Alison onu teslim edeceğiz Biraz daha programlama içine atlamak. 737 00:33:14,120 --> 00:33:15,965 >> Alison: Ah, biz göreceğiz. 738 00:33:15,965 --> 00:33:17,370 Biz burada ne kadar iyi görürsünüz. 739 00:33:17,370 --> 00:33:21,410 Tamam, ben denemek ve uçmak için gidiyorum Bu malzeme ile, çocuklar. 740 00:33:21,410 --> 00:33:24,540 Hannah çok gitti onun tüm şeyler derinlik. 741 00:33:24,540 --> 00:33:26,900 Ben vermek denemek için gidiyorum Eğer hızlı bir patlama bakış 742 00:33:26,900 --> 00:33:31,290 hepimizin Davin almak böylece eğlenceli JavaScript ve güvenlik şeyler 743 00:33:31,290 --> 00:33:33,380 belki gerçekten hakkında daha fazla duymak istiyorum. 744 00:33:33,380 --> 00:33:36,600 >> Tamam, Hannah ise, dediğim gibi Herhangi bir sorunuz varsa, 745 00:33:36,600 --> 00:33:39,170 Ben çok hızlı gidiyorum, lütfen bana bildirin. 746 00:33:39,170 --> 00:33:42,114 Ben gerektiği gibi sorulara cevap verecektir. 747 00:33:42,114 --> 00:33:45,280 Başlatmak Yani, biz başlatmak için gidiyoruz ilk şeylerden biri muhtemelen 748 00:33:45,280 --> 00:33:48,730 Eğer web ile öğrendim programlama, izinler. 749 00:33:48,730 --> 00:33:52,720 Yani chmod, siz oldum gerekir Tüm web ile bu Masters at 750 00:33:52,720 --> 00:33:54,870 Eğer ettik programlama Son zamanlarda yapıyor. 751 00:33:54,870 --> 00:33:57,320 Bu temelde sadece bir komut var Bu izinleri değiştirir 752 00:33:57,320 --> 00:34:00,779 veya erişim izinleri Bizim dosya sistemi nesneleri. 753 00:34:00,779 --> 00:34:02,570 Tabii ki, aslında sen eğer, bu bakın 754 00:34:02,570 --> 00:34:04,910 Bu herhangi bir sorun yaşıyorsanız Sorunun setleri sırasında, 755 00:34:04,910 --> 00:34:11,460 Eğer uzun ls -l, kullanmış olabilir Böyle görüntüle tür almak için, 756 00:34:11,460 --> 00:34:14,209 aslında tüm görmek nerede Bir dosya için izinleri. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> Ve gerçekten, biz sadece gitmek için gidiyoruz oldukça hızlı yoluyla sadece güzel 759 00:34:20,732 --> 00:34:21,940 çok Bunların her biri ne anlama geldiğini. 760 00:34:21,940 --> 00:34:24,481 Bu yüzden, burada d hangi Sadece dizin duruyor. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 Açıkçası burada, biz, rwx bakın hangi okunabilir, yazılabilir, ve çalıştırılabilir. 763 00:34:31,739 --> 00:34:37,090 Bunlar da bit olarak temsil edilebilir, hangi bir sonraki sayfada içine alırsınız. 764 00:34:37,090 --> 00:34:40,699 Gördüğümüz Yani her üçlü Burada, bu nedenle üç üçlüleri var. 765 00:34:40,699 --> 00:34:48,120 Biz, r şey x ve r RWX var hiçbir şey bu ilk dosya için x. 766 00:34:48,120 --> 00:34:49,690 Bu genel yapısı var. 767 00:34:49,690 --> 00:34:50,940 >> Bu yüzden bazı dizin var. 768 00:34:50,940 --> 00:34:53,999 Biz bazı kullanıcı grubu var Bu izinler ile. 769 00:34:53,999 --> 00:34:57,040 Bu izinleri olan bazı grup, ve bir dünya iznine sahip olduğunu. 770 00:34:57,040 --> 00:34:59,420 Bir üçlüsü olarak bu düşünebilirsiniz. 771 00:34:59,420 --> 00:35:01,130 Üç bit olarak bu düşünebilirsiniz. 772 00:35:01,130 --> 00:35:04,060 Böylece değerleri tutabilir her yerde 0 up 773 00:35:04,060 --> 00:35:07,350 7'ye, hangi neden bazen biz chmod yapmak vardı 774 00:35:07,350 --> 00:35:17,510 Bunun yerine ne olursa olsun rw chmod 600. 775 00:35:17,510 --> 00:35:19,170 Biz orada bir örnek haline alırsınız. 776 00:35:19,170 --> 00:35:24,260 Ama temelde, aklınıza gelebilecek Sadece rwx olarak ya bu, 777 00:35:24,260 --> 00:35:28,520 veya bazı Bunlardan düşünebilirsiniz numara nerede burada bu ilk 778 00:35:28,520 --> 00:35:31,480 arasında bir sayıyı temsil eder 0 ve 7, ikinci bir 779 00:35:31,480 --> 00:35:33,970 arasında bir sayıyı temsil eder 0 ve 7, ve üçüncü bir 780 00:35:33,970 --> 00:35:38,245 Tamam, 0 ve 7 arasındaki bir sayıyı temsil eder? 781 00:35:38,245 --> 00:35:42,700 >> R 4. değeri w vardır bir 2 değerine ve x sahip 782 00:35:42,700 --> 00:35:49,230 bu yüzden, 1 arasında bir değere sahiptir Burada izin 700'ü chmod olacaktır. 783 00:35:49,230 --> 00:35:53,520 Burada bu durumda, bu biz diyor, çünkü ilk bit orada çevrilmiş olması. 784 00:35:53,520 --> 00:35:55,380 Bu yüzden okuma için 4 var. 785 00:35:55,380 --> 00:35:58,730 İkinci bit için üzerine çevrilmiş şimdi 6 böylece, 2 olan, w. 786 00:35:58,730 --> 00:36:02,070 Ve üçüncü biti üzerinde çevrilmiş 1 x, için, bu yüzden yedi olsun. 787 00:36:02,070 --> 00:36:04,820 Ve tabii ki, bizim grup ve bizim dünya her 0 vardır. 788 00:36:04,820 --> 00:36:07,770 Yani bu da chmod 700 eşdeğer. 789 00:36:07,770 --> 00:36:12,081 Ve ben kesinlikle denemek istiyorum arasındaki eşleme anlamak. 790 00:36:12,081 --> 00:36:14,080 O varsa ben emin değilim önce quiz gelip, 791 00:36:14,080 --> 00:36:18,590 ama olur Ben isteyebilir soru. 792 00:36:18,590 --> 00:36:22,110 >> Sadece biraz bile gidiyor burada daha fazla chmod, burada içine 793 00:36:22,110 --> 00:36:27,730 çok genel chmod çağrı yapısı. 794 00:36:27,730 --> 00:36:29,500 Yani tabii ki, biz burada chmod var. 795 00:36:29,500 --> 00:36:34,410 Bu ne ifade eder Kaynaklar, kim biz bu izinleri veriyoruz 796 00:36:34,410 --> 00:36:36,570 ya kim bu alıyor uzak izinleri. 797 00:36:36,570 --> 00:36:44,330 Yani biz burada izinleri var, gibi biz bir artı x chmod verdik, 798 00:36:44,330 --> 00:36:45,440 yakında göreceğimiz gibi. 799 00:36:45,440 --> 00:36:48,460 adil bu özel vermek anlamına gelir Herkese izinleri. 800 00:36:48,460 --> 00:36:49,600 Tüm bunları ver. 801 00:36:49,600 --> 00:36:55,370 Yani çok iyi u artı x olabilir veya g artı x ve o artı x veya birden 802 00:36:55,370 --> 00:36:55,870 arasından seçilir. 803 00:36:55,870 --> 00:36:59,280 İlk bölümü her zaman böylece referanslar olacak. 804 00:36:59,280 --> 00:37:03,220 Kim, bu izinleri veriyoruz ya kim uzakta onları alıyor? 805 00:37:03,220 --> 00:37:04,850 >> İkinci bir operatör olduğunu. 806 00:37:04,850 --> 00:37:07,350 Yani siz daha çok artı ele alınmıştır. 807 00:37:07,350 --> 00:37:12,140 Bu izinleri verir kim onları veriyorsun, 808 00:37:12,140 --> 00:37:14,840 eksi ise, mantıksal, onları kaldırır. 809 00:37:14,840 --> 00:37:16,880 Orada Yani hiçbir şey çok korkunç. 810 00:37:16,880 --> 00:37:23,060 Ve sonra modlarında konuştuğumuz ne , okuma yazma, ya da yürütme ile. 811 00:37:23,060 --> 00:37:29,070 Yani bir artı x yürütülebilir vermek anlamına gelir Herkese izinleri. 812 00:37:29,070 --> 00:37:33,430 Sonra, tabii ki, üzerinde Belirli bir dosya veya dizin. 813 00:37:33,430 --> 00:37:33,980 TAMAM MI? 814 00:37:33,980 --> 00:37:36,010 Chmod iyi Herkes? 815 00:37:36,010 --> 00:37:37,850 Çok kötü değil mi? 816 00:37:37,850 --> 00:37:42,417 >> Tamam, HTML yüzden sizden herhangi biri Eski yeterince MySpace yaş amaçlara yönelik? 817 00:37:42,417 --> 00:37:44,750 Ben, benim bölümüne gönderdi ve tam anlamıyla insanların yarısı 818 00:37:44,750 --> 00:37:45,790 Ben deli gibi bana baktı. 819 00:37:45,790 --> 00:37:47,498 Ve ben, çocuklar, gibi oldu biz bu yaşlı değiliz. 820 00:37:47,498 --> 00:37:48,910 Hadi. 821 00:37:48,910 --> 00:37:53,360 Yani HyperText Markup Language, dürüst sizin için sadece bir yol var 822 00:37:53,360 --> 00:37:57,990 web üzerinde bazı şeyleri göstermek için. 823 00:37:57,990 --> 00:37:59,210 Yani bir biçimlendirme dili var. 824 00:37:59,210 --> 00:38:00,640 Bu bir betik dili değil. 825 00:38:00,640 --> 00:38:02,160 Bunun hiçbir mantığı yok. 826 00:38:02,160 --> 00:38:05,710 Bu değiştirmek için basitçe yol şey görüntülenir. 827 00:38:05,710 --> 00:38:07,670 Tamam, böylece bir önemli ayrım yapmak. 828 00:38:07,670 --> 00:38:12,030 Bir biçimlendirme dili olarak kabul, bir betik dili. 829 00:38:12,030 --> 00:38:15,100 >> Yani burada bizim HTML etiketlerini var. 830 00:38:15,100 --> 00:38:20,390 Bu slaytta muhtemelen çoğu Eğer aşina olmalı olanlar 831 00:38:20,390 --> 00:38:22,390 ve gerçekten rahat. 832 00:38:22,390 --> 00:38:25,700 Yani açıkçası, biz var Bizim HTML etiketi, hangi 833 00:38:25,700 --> 00:38:29,930 her şeyi de belirler arasında bu iki HTML olacaktır. 834 00:38:29,930 --> 00:38:33,070 Biz bazı bağlantı var olan Açıkçası verecek 835 00:38:33,070 --> 00:38:34,990 Harici bir web sayfasına bir bağlantı. 836 00:38:34,990 --> 00:38:37,520 Bazı başlık, burada bizim kafası içinde. 837 00:38:37,520 --> 00:38:40,020 Ve biz bizim vücuda sahip bir başlık olan h1, 838 00:38:40,020 --> 00:38:42,260 bu yüzden güzel yapacağız ve cesur ve büyük. 839 00:38:42,260 --> 00:38:46,040 Ve sonra, bazı var Bir paragraf p. 840 00:38:46,040 --> 00:38:49,000 Muhtemelen bilmeli ve şeyler aşina olmak 841 00:38:49,000 --> 00:38:54,030 Bir görüntüyü eklemek nasıl olduğu gibi Orada başka bir başlık sınıfları? 842 00:38:54,030 --> 00:38:57,240 Ben kesinlikle olacak div ile rahat. 843 00:38:57,240 --> 00:39:00,840 Peki bu etiketleri çoğunluğu var Eğer aşina olması gerektiğini söyledi. 844 00:39:00,840 --> 00:39:04,370 Ama tabii, her şeyi olduğu gibi CS 50, liste ayrıntılı değildir. 845 00:39:04,370 --> 00:39:08,200 Yani bu konuda fırça emin olun. 846 00:39:08,200 --> 00:39:13,260 >> CSS, yani CSS, sizden herhangi izlemek durumunda İki hafta önce benim seminer, 847 00:39:13,260 --> 00:39:16,250 gerçekten sadece bir yoludur web sayfası stil? 848 00:39:16,250 --> 00:39:18,950 Tamam, bu yüzden bazı biçimlendirme dili var. 849 00:39:18,950 --> 00:39:23,220 Sadece metin ilgilenir HTML, ve sayfada nerede olabilir. 850 00:39:23,220 --> 00:39:25,760 Ama CSS oldukça kılan gerçekten. 851 00:39:25,760 --> 00:39:30,690 Sen HTML bu olabilir Dosyaları, ama daha sonra bahsedeceğiz gibi, 852 00:39:30,690 --> 00:39:32,660 Ben olabilir eminim o, sonraki slayt olacak 853 00:39:32,660 --> 00:39:35,620 yaygın bir uygulamadır, ve aslında biz gerçekten teşvik uygulaması, 854 00:39:35,620 --> 00:39:40,670 tutmak için onları ayrı zaman biz MVC ve bütün paradigma hakkında konuşmak. 855 00:39:40,670 --> 00:39:42,490 İşte bu beslemeleri gerçekten ne olduğunu. 856 00:39:42,490 --> 00:39:46,110 >> Peki CSS sadece bir yoludur işler çok görünmesi. 857 00:39:46,110 --> 00:39:50,500 Burada işler gibi gövde ve #title ve .info, 858 00:39:50,500 --> 00:39:54,340 Bu seçicileri ve ne denir onlar belirli şeyler seçin yapmak 859 00:39:54,340 --> 00:39:59,260 HTML dosyası içinde ve ne olursa olsun stil uygulamak, 860 00:39:59,260 --> 00:40:04,090 ne olursa olsun istediğiniz gibi şeyler, web o özel elemanına 861 00:40:04,090 --> 00:40:04,590 sayfa. 862 00:40:04,590 --> 00:40:08,820 Yani burada, biz bir arka plan rengi ve renk 863 00:40:08,820 --> 00:40:12,450 ve bir yazı ailesi davranıyor ki vücutta ne olursa olsun başvurdu. 864 00:40:12,450 --> 00:40:15,530 Burada geri baktı Yani, onu başlık için geçerli olmaz. 865 00:40:15,530 --> 00:40:22,340 Sadece ne kadar geçerli olacak Bu vücut seçiciler, OK? 866 00:40:22,340 --> 00:40:25,250 >> Burada başlığı ile, bu Aynı şey olacak, 867 00:40:25,250 --> 00:40:28,410 metin rengi Mavi sadece gidiyor olmak 868 00:40:28,410 --> 00:40:33,870 içinde ne olduğunu etkileyecek başlık seçiciler. 869 00:40:33,870 --> 00:40:36,580 Yanı sıra burada bilgi olarak, Metin, pembe olacak 870 00:40:36,580 --> 00:40:38,600 burada ne olursa olsun info. 871 00:40:38,600 --> 00:40:40,860 Tek şey Böylece Bu sayfada pembe olurdu 872 00:40:40,860 --> 00:40:44,100 tarih, Pazartesi, Kasım 17, 2014 olduğunu. 873 00:40:44,100 --> 00:40:48,770 Tamam, bu yüzden CSS sadece bir yoludur evet çakışık fazla kontrole sahip? 874 00:40:48,770 --> 00:40:51,850 >> İZLEYİCİ: Neden var başlığı ile karma kullanımı? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH: Sonraki slayt, söz veriyorum! 876 00:40:55,170 --> 00:40:56,810 Biz orada alırsınız. 877 00:40:56,810 --> 00:40:59,830 Biz karma kullanmak zorunda yüzden bu. 878 00:40:59,830 --> 00:41:03,429 Yani seçiciler üç main almak Biz yaklaşık Sizinle konuşmak formlar. 879 00:41:03,429 --> 00:41:05,595 Ben daha fazla bilgi edinmek istiyorum fyou, bol orada var. 880 00:41:05,595 --> 00:41:07,540 Büyük CSS belgeleri var. 881 00:41:07,540 --> 00:41:12,680 Yapmak olan bir etiket adı var, HTML sadece normal etiketleri ile. 882 00:41:12,680 --> 00:41:17,210 H1, p, div, h2 Yani, şeyler bu tür. 883 00:41:17,210 --> 00:41:20,320 Ve biz sadece olduğu gibi bu adlandırabilirsiniz. 884 00:41:20,320 --> 00:41:22,650 Burada gördüğünüz gibi Yani Vücut, normal bir etiketi. 885 00:41:22,650 --> 00:41:26,660 Yani biz sadece vücudu koyabilirsiniz Bizim CSS dosyasında konuşuyorsun. 886 00:41:26,660 --> 00:41:29,730 >> Başlığı ile, tüm nedeni Bu karma var, biz ne var 887 00:41:29,730 --> 00:41:31,010 Kimlik düşündü. 888 00:41:31,010 --> 00:41:35,400 Yani bir kimlik her zaman olmalı HTML sayfası içinde benzersiz 889 00:41:35,400 --> 00:41:37,930 sen ne zaman ki buna atıfta sen 890 00:41:37,930 --> 00:41:41,990 Eğer sadece atıfta olduğunuzu biliyorum belirli bir şeye. 891 00:41:41,990 --> 00:41:46,270 Burada, bu durumda Yani bizim Burada h1, CS 50 yorum oturumu, 892 00:41:46,270 --> 00:41:47,810 başlığında bir kimliği var. 893 00:41:47,810 --> 00:41:54,280 Sadece başvurmak için sipariş Yani Bizim HTML parçası, bir karma başlığı yapmak. 894 00:41:54,280 --> 00:41:58,080 Sadece kongre tarafından, kimlikleri belirlenmiş önlerinde bir karma ile. 895 00:41:58,080 --> 00:42:01,650 Aynı şekilde, bkz Burada bilgi bir sınıftır. 896 00:42:01,650 --> 00:42:06,070 Ve böylece CSS ile sınıf bir nokta sınıf olarak adlandırılan 897 00:42:06,070 --> 00:42:08,895 veya sınıf ne olursa olsun nokta. 898 00:42:08,895 --> 00:42:10,850 Yani burada bu durumda, bu bilgileri var. 899 00:42:10,850 --> 00:42:13,090 >> Ben geri almak. 900 00:42:13,090 --> 00:42:16,200 Bunların her ikisi de olabilir Burada bizim CSS için pembe 901 00:42:16,200 --> 00:42:18,430 her ikisi de bilgi bir sınıf var çünkü. 902 00:42:18,430 --> 00:42:23,070 Ve bizim CSS dosyasında, biz tayin var bilgi bir sınıf o şey 903 00:42:23,070 --> 00:42:24,120 pembe olacaktır. 904 00:42:24,120 --> 00:42:25,968 Mantıklı mı? 905 00:42:25,968 --> 00:42:27,435 Evet? 906 00:42:27,435 --> 00:42:30,731 >> İZLEYİCİ: Eğer olsaydı yapmak Vücut beyaz şeyi, 907 00:42:30,731 --> 00:42:32,814 ve sonra yapmaya mavi bunun içinde bir şey, 908 00:42:32,814 --> 00:42:34,770 Bu sorunlara neden olur? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH: Yani CSS basamaklı stil sayfaları. 910 00:42:37,310 --> 00:42:40,730 Yani ne olursa olsun doğru olduğunu Alt öncelik alacak. 911 00:42:40,730 --> 00:42:44,080 Yani vücudun bir şey yaparsanız, ve her şey beyaz yapmak, 912 00:42:44,080 --> 00:42:49,300 ve daha sonra da sen başlığı değiştirmek veya vücut içindeki metni değiştirmek, 913 00:42:49,300 --> 00:42:50,560 o yazar. 914 00:42:50,560 --> 00:42:55,360 Doğru Yani bir şey Alt öncelik alacak. 915 00:42:55,360 --> 00:42:56,730 Evet? 916 00:42:56,730 --> 00:42:59,627 >> İZLEYİCİ: Ve kimlikleri, benzersiz ama sınıflar fazla olabilir? 917 00:42:59,627 --> 00:43:00,210 HANNAH: Sağ. 918 00:43:00,210 --> 00:43:06,320 Yani kimlikleri benzersiz olmalıdır, ve sınıflar can İstediğiniz gibi birçok şeyler bakın. 919 00:43:06,320 --> 00:43:07,580 Başka sorunuz var mı? 920 00:43:07,580 --> 00:43:09,800 Evet. 921 00:43:09,800 --> 00:43:11,210 >> İZLEYİCİ: [duyulamaz]. 922 00:43:11,210 --> 00:43:13,509 Ben merak ediyorum bir fark yaratıyor. 923 00:43:13,509 --> 00:43:15,217 HANNAH: Ben, özür dilerim Soru neydi? 924 00:43:15,217 --> 00:43:18,960 HEDEF KİTLE: Küçük var "F" ve sermaye "F." 925 00:43:18,960 --> 00:43:21,440 HANNAH: Yani fark küçük "f" ve sermaye arasındaki "F" 926 00:43:21,440 --> 00:43:22,606 bir fark olmamalıdır. 927 00:43:22,606 --> 00:43:26,330 Yani "f" 15 her iki şekilde olacak. 928 00:43:26,330 --> 00:43:28,130 Serin, başka bir şey var mı? 929 00:43:28,130 --> 00:43:29,930 İyi Herkes, CSS? 930 00:43:29,930 --> 00:43:30,850 Evet? 931 00:43:30,850 --> 00:43:31,790 >> İZLEYİCİ: Üzgünüm. 932 00:43:31,790 --> 00:43:35,550 Bir sınıf ve kimlik alabilir miyim? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH: Evet, yapabilirsiniz. 934 00:43:38,030 --> 00:43:40,420 Şeyler bir sınıf ve bir kimlik hem de sahip olabilir. 935 00:43:40,420 --> 00:43:44,670 Ve ben tavsiye Kendi bu test. 936 00:43:44,670 --> 00:43:50,480 Eğer yaparak iyi sadece öğreneceksiniz CSS şey, çok basit bir web sayfası, 937 00:43:50,480 --> 00:43:53,440 Bazı CSS hazırlanması, ve sadece Onlar nasıl etkileşimde görüyorum. 938 00:43:53,440 --> 00:43:56,970 Ve sen, çok iyi bir elde edersiniz nasıl çalıştığını sezgisel anlamda. 939 00:43:56,970 --> 00:43:58,810 >> Tamam, CSS ile iyi herkes? 940 00:43:58,810 --> 00:44:01,280 Tüm yapmak için gidiyoruz Şimdi CSS ile güzel web siteleri. 941 00:44:01,280 --> 00:44:05,460 Tamam, en iyi uygulamalar, sadece Akılda tutulması gereken şeyler, işler 942 00:44:05,460 --> 00:44:09,810 Biz rıhtım neden bu ki- olduğunu Eğer tasarımcı ve etajer için. 943 00:44:09,810 --> 00:44:11,820 Böylece tüm HTML etiketlerini kapatın. 944 00:44:11,820 --> 00:44:14,840 Eğer açık bir vücudu var ise, yakın bir gövde olmalıdır. 945 00:44:14,840 --> 00:44:18,180 Eğer açık bir paragraf varsa, yakın bir paragraf olmalıdır. 946 00:44:18,180 --> 00:44:19,555 Senin sayfa doğrular görmek için kontrol edin. 947 00:44:19,555 --> 00:44:23,330 Siz çok tanıdık olmalı Bu p-set yedi 948 00:44:23,330 --> 00:44:26,350 CS 50 finans W3 validator ile. 949 00:44:26,350 --> 00:44:28,340 Ve ben, daha önce de söylediğim gibi bizim büyük paradigmaların biri 950 00:44:28,340 --> 00:44:33,780 CSS ile stil ayıran HTML biçimlendirme, gelen. 951 00:44:33,780 --> 00:44:36,900 Ve sonra, tabii ki, biz buraya bu büyük XKCD. 952 00:44:36,900 --> 00:44:38,280 Yay, komik rahatlama! 953 00:44:38,280 --> 00:44:41,340 >> Tamam, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 Bu ve HTTP arasında, temelde ikisi de protokolleri konum. 955 00:44:44,650 --> 00:44:46,810 Yani sadece düşünebildiğim Bunlardan kurallar kümesi olarak 956 00:44:46,810 --> 00:44:50,110 nasıl şeyler yöneten o internet üzerinden hareket. 957 00:44:50,110 --> 00:44:53,410 Yani iletim kontrol protokol, ya da internet protokolü, 958 00:44:53,410 --> 00:44:57,280 emin olmak için sadece bir yoludur gidiyor nerede veri alır 959 00:44:57,280 --> 00:45:00,030 ve biz eğer biliyorum biz hiç eksik verileri ediyoruz. 960 00:45:00,030 --> 00:45:03,520 Yani siz eğer derse geri düşünmek David ile önce bir kaç hafta 961 00:45:03,520 --> 00:45:06,980 nerede onlar, dört zarf vardı Tüm dört biri gibi sayılı olduğunu, 962 00:45:06,980 --> 00:45:11,300 Dört iki dört, üç, dört Dört, bu kurallar sadece bir dizi olduğunu. 963 00:45:11,300 --> 00:45:13,830 Biz tamam, biz ne zaman konum, dedi Birden fazla paket gönderme, 964 00:45:13,830 --> 00:45:16,610 Biz numaraya gidiyoruz ne sayı ile o 965 00:45:16,610 --> 00:45:19,040 ve toplam kaç ki Kullanıcı almalısınız. 966 00:45:19,040 --> 00:45:22,540 >> Ve bu sadece anlatıyor kim veri onlar mı alıyor 967 00:45:22,540 --> 00:45:26,120 eğer her şeyi ya da aldık bir şey yolda kayboldu. 968 00:45:26,120 --> 00:45:28,840 Ve yine bunun için sormak gerekir. 969 00:45:28,840 --> 00:45:31,140 Bu gerçekten kurallar sadece bir dizi olduğunu. 970 00:45:31,140 --> 00:45:33,650 Yani tamam, bunu düşünmek nasıl mı? 971 00:45:33,650 --> 00:45:37,700 Ve ayrıca, bu bağlantı noktasını belirtir hangi Siz, ben ders sırasında biliyorum can-- 972 00:45:37,700 --> 00:45:39,170 onlar limanların bütün bir liste vardı. 973 00:45:39,170 --> 00:45:41,630 Ama şimdi burada onları yok. 974 00:45:41,630 --> 00:45:45,290 >> Yani köprü aktarım protokolü Yine, başka bir protokol vardır. 975 00:45:45,290 --> 00:45:48,630 Yani kurallar başka bir set var bu durumda, idare, 976 00:45:48,630 --> 00:45:51,130 köprü nasıl aktarılır. 977 00:45:51,130 --> 00:45:54,340 Yani sadece tarayıcıları veriyor web sunucularına konuşmak. 978 00:45:54,340 --> 00:45:56,910 Biz burada söylediğimiz gibi Ve, bu kadar İnsan el sıkışma gibi. 979 00:45:56,910 --> 00:46:00,480 Bu idare sadece bir yolu var nasıl web sunucusu 980 00:46:00,480 --> 00:46:02,690 Tarayıcınızın etkileşim olacak. 981 00:46:02,690 --> 00:46:05,660 Ve biz örneklerden sadece bir çift var. 982 00:46:05,660 --> 00:46:09,100 Biz burada bazı istekleri var nerede GET yöntemidir. 983 00:46:09,100 --> 00:46:13,760 Biz hangi, HTTP 1.1 var Bizim için protokol sürümü. 984 00:46:13,760 --> 00:46:17,230 Ve sonra, ev sahibi, ne olduğu biz aslında erişmeye çalışıyoruz. 985 00:46:17,230 --> 00:46:21,800 Ve sonra, burada gördüğünüz gibi, biz Bu 200 ile bazı yanıt almak 986 00:46:21,800 --> 00:46:25,032 Bizim HTTP yanıt kodu olarak Tamam. 987 00:46:25,032 --> 00:46:27,240 Biz gidiyorum büyük bir listesi var Bir saniye kadar çekin 988 00:46:27,240 --> 00:46:29,430 Siz aşina olması gerektiğini söyledi. 989 00:46:29,430 --> 00:46:35,750 Ve biz, bu içerik türü metin / HTML var hangi sadece verilerin ne tür diyor 990 00:46:35,750 --> 00:46:39,990 tamam, sunucudan alıyorsunuz? 991 00:46:39,990 --> 00:46:44,230 Bu konak ve bu içerik türü HTTP başlıkları parçasıdır. 992 00:46:44,230 --> 00:46:49,610 Sen olduğunca az veya az olabilir bağlamında için ne gerekiyorsa 993 00:46:49,610 --> 00:46:50,580 Eğer uğraşıyoruz. 994 00:46:50,580 --> 00:46:53,371 Bazen bir sürü olacak sunucudan gelen bilgiler. 995 00:46:53,371 --> 00:46:56,040 Belki onlar çok talebinde konum kullanıcı bilgileri. 996 00:46:56,040 --> 00:46:57,600 Bu bağlamda bağlı olarak değişir. 997 00:46:57,600 --> 00:47:01,144 Eğer CS 50 Çalışma bakarsanız, bu konuda çok daha fazla var. 998 00:47:01,144 --> 00:47:03,060 Ama biz almak için bir çok şey var bu yüzden gidiyorum, içinden 999 00:47:03,060 --> 00:47:05,760 Sağ önde gitmek için Bu sizinle Tamam? 1000 00:47:05,760 --> 00:47:07,960 Serin. 1001 00:47:07,960 --> 00:47:08,460 Tut. 1002 00:47:08,460 --> 00:47:11,182 Ben kesinlikle bu var ha of-- tüm liste! 1003 00:47:11,182 --> 00:47:13,140 Bu yüzden bilmiyorum buraya tüm yol. 1004 00:47:13,140 --> 00:47:15,660 Ben tam anlamıyla taşındı düşündüm Ben sitting-- o iken 1005 00:47:15,660 --> 00:47:16,540 >> DAVIN: bunu öğretmek istiyor musunuz? 1006 00:47:16,540 --> 00:47:17,420 Yoksa bana öğretmek istiyorsun? 1007 00:47:17,420 --> 00:47:20,010 >> İZLEYİCİ: Ben sandım Sadece başlamak için onlara göstermek. 1008 00:47:20,010 --> 00:47:22,210 Ben içine gidebilirsiniz demek ayrıca bunların, ancak 1009 00:47:22,210 --> 00:47:26,030 o I beri daha mantıklı düşünce sadece HTTP durumları hakkında konuşuyordu. 1010 00:47:26,030 --> 00:47:28,200 Yani burada bütün liste. 1011 00:47:28,200 --> 00:47:31,730 Ben ne olduğunu neler tahmin Davin sonra onlara gidecek. 1012 00:47:31,730 --> 00:47:35,330 Ama bütün liste, var tat önizleme gelmek. 1013 00:47:35,330 --> 00:47:41,640 Tamam, biz bu oluyor blow-- için gidiyoruz gibi başka bir PHP kurs olmak. 1014 00:47:41,640 --> 00:47:44,874 >> Peki PHP, hypertext preprocessor, Bir özyinelemeli backronym var, 1015 00:47:44,874 --> 00:47:46,540 hangi başka bir şey seçildi demektir. 1016 00:47:46,540 --> 00:47:49,050 Ve sonra, bu gibi idi Gerçekten mantıklı değil. 1017 00:47:49,050 --> 00:47:52,210 Yani onlar sadece bu-- adlı ve bir kısaltmadır oldu, 1018 00:47:52,210 --> 00:47:54,840 bu yüzden sadece PHP yapılan hypertext preprocessor, hangi 1019 00:47:54,840 --> 00:47:55,980 sadece hayır mantıklı. 1020 00:47:55,980 --> 00:47:57,714 Eğlenceli hikaye. 1021 00:47:57,714 --> 00:47:58,880 Bir programlama dili var. 1022 00:47:58,880 --> 00:48:02,360 Bunu vurgulamak Yani kadar HTML bir programlama dili değildir, 1023 00:48:02,360 --> 00:48:05,350 Bir biçimlendirme dili, PHP bulunuyor Bir programlama dilidir. 1024 00:48:05,350 --> 00:48:07,422 Eğer bu olduğunu biliyorum nasıl mantık var çünkü. 1025 00:48:07,422 --> 00:48:08,380 Koşul vardır. 1026 00:48:08,380 --> 00:48:12,750 Biz, değişkenler var biz ise HTML bu şeylerin hiçbiri. 1027 00:48:12,750 --> 00:48:16,960 >> Pekala, o zaman bu küçük var Biraz burada o PHP bir tat gibi. 1028 00:48:16,960 --> 00:48:20,510 Yani temelleri, değişken isimleri dolar işareti ile başlar. 1029 00:48:20,510 --> 00:48:21,500 Bunun gibi bir sürü insan. 1030 00:48:21,500 --> 00:48:22,371 Bize para hatırlatıyor. 1031 00:48:22,371 --> 00:48:22,995 Tüm harika. 1032 00:48:22,995 --> 00:48:25,280 Hepimiz PHP istiyoruz. 1033 00:48:25,280 --> 00:48:28,020 Yani biz bir belirtmeyen Artık değişkenin türü. 1034 00:48:28,020 --> 00:48:29,995 Bu çalışma sırasında belirlenir. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 tercüman, gibi olacak Ah, biz sadece, koşuyoruz edeceğiz 1037 00:48:35,890 --> 00:48:39,565 ve içeriğine göre, Biz türleri ne türlerini görürsünüz 1038 00:48:39,565 --> 00:48:41,560 Bu değişkenler olması gerekir. 1039 00:48:41,560 --> 00:48:42,815 Hiçbir ana işlevi yok. 1040 00:48:42,815 --> 00:48:43,690 Şeyler sadece çalışacaktır. 1041 00:48:43,690 --> 00:48:47,851 Sizin ithalat ile Siz sizin p-set son Bunu fark edeceksiniz. 1042 00:48:47,851 --> 00:48:49,350 Bir ana işlevi gerçekten yoktu. 1043 00:48:49,350 --> 00:48:52,070 Sadece yazdıklarını Eğer ne istediğini. 1044 00:48:52,070 --> 00:48:53,280 Ve bu sadece tür oldu. 1045 00:48:53,280 --> 00:48:56,760 Yani senin için PHP bulunuyor. 1046 00:48:56,760 --> 00:48:59,180 >> Diziler çok benzer. 1047 00:48:59,180 --> 00:49:01,270 Biz hala bu dirseği var. 1048 00:49:01,270 --> 00:49:05,940 Burada, bazı değişken var arr denir, ve eşit bulunuyor 1049 00:49:05,940 --> 00:49:08,540 amaçlara yönelik bizim normaldir var dirsek gösterimde. 1050 00:49:08,540 --> 00:49:10,630 Ve biz bazı önemli değere sahiptir. 1051 00:49:10,630 --> 00:49:14,630 Ve büyük fark C ve PHP dizileri arasında 1052 00:49:14,630 --> 00:49:19,330 Bu associate-- sahip olmasıdır Biz anahtarları değerleri ilişkilendirebilirsiniz. 1053 00:49:19,330 --> 00:49:22,440 Yani yerine sadece sahip endeksli bir dizi 1054 00:49:22,440 --> 00:49:26,630 numara veya pozisyona göre dizisi bu elemanın, 1055 00:49:26,630 --> 00:49:29,060 biz aslında bir anahtar ile ilişkilendirebilirsiniz. 1056 00:49:29,060 --> 00:49:36,700 Diyebiliriz durumlarda, tamam, ben istediğimi değer meyve ile ilişkilidir. 1057 00:49:36,700 --> 00:49:39,280 Ve belki de meyve muz gitti var. 1058 00:49:39,280 --> 00:49:41,760 Bu yüzden bize muz dönecekti. 1059 00:49:41,760 --> 00:49:44,100 >> Ama temelde, en Bu konuda güçlü bir şey 1060 00:49:44,100 --> 00:49:47,960 olduğunu siz hatırlarsanız nerede temelde ders den demo 1061 00:49:47,960 --> 00:49:53,050 rewrote PHP yazım ve Ben-- arama sadece gerçekten seviyorum, 1062 00:49:53,050 --> 00:49:55,007 Bu anahtar mevcut mu? 1063 00:49:55,007 --> 00:49:56,590 Yani bunun güç gerçekten naziksiniz. 1064 00:49:56,590 --> 00:49:58,560 Sen yineleme gerek yok senin dizi üzerinden. 1065 00:49:58,560 --> 00:50:00,311 Biliyorsunuz gerek yok ne uzay İçinde. 1066 00:50:00,311 --> 00:50:01,976 Sonunda ya başında olabilir. 1067 00:50:01,976 --> 00:50:04,790 Sürece anahtarı bildiğiniz gibi Bu değer ile ilişkili olan, 1068 00:50:04,790 --> 00:50:09,740 PHP sadece değer tükürmek olabilir Sağ Tamam, sana vazgeçme? 1069 00:50:09,740 --> 00:50:12,960 >> Ve sonra, biz de sadece var sadece çünkü biz 1070 00:50:12,960 --> 00:50:16,750 Anahtar değer çiftleri olabilir Eğer zorunda anlamına gelmez. 1071 00:50:16,750 --> 00:50:19,180 Ayrıca sadece oluşturabilirsiniz Normal bir dizi gibi burada, 1072 00:50:19,180 --> 00:50:21,540 bu kadar dipte Sadece bir, iki, üç, dört. 1073 00:50:21,540 --> 00:50:22,510 Bunlar bizim değerlerimizdir. 1074 00:50:22,510 --> 00:50:25,320 Ve aslında, kendi tuşları endeksleri vardır. 1075 00:50:25,320 --> 00:50:26,830 Yani biri için anahtar sıfır olacaktır. 1076 00:50:26,830 --> 00:50:28,610 iki anahtar biri olacaktır. 1077 00:50:28,610 --> 00:50:31,910 Yani ve benzeri, sürece açıkça bir tuşa atamak, 1078 00:50:31,910 --> 00:50:34,630 Eğer farz olabilir değeri sadece kendi endeksidir. 1079 00:50:34,630 --> 00:50:37,290 Bu herkese mantıklı mı? 1080 00:50:37,290 --> 00:50:38,070 Hiçbir soru? 1081 00:50:38,070 --> 00:50:38,930 Korku. 1082 00:50:38,930 --> 00:50:44,420 >> Tamam, foreach için bir yoldur senin diziler yineleme. 1083 00:50:44,420 --> 00:50:47,490 Bu yüzden, burada bir şey var Sadece genel yapısı. 1084 00:50:47,490 --> 00:50:51,020 Yani foreach, isim Bizim dizi, ne olursa olsun gibi 1085 00:50:51,020 --> 00:50:53,930 Her aramak istiyorum sizin dizideki eleman, 1086 00:50:53,930 --> 00:50:57,270 ve biz bir şeyler yapabiliriz Bu eleman veya değeri ile. 1087 00:50:57,270 --> 00:50:58,680 Yani biz burada bir örnek var. 1088 00:50:58,680 --> 00:51:05,770 Biz ilişkilendirilebilir var Bu iki girişleri ile dizi 1089 00:51:05,770 --> 00:51:10,080 çubuğuna sahip olan foo ile bağlantılıdır ve Baz ile bağlantılıdır qux. 1090 00:51:10,080 --> 00:51:12,180 Yani tuşları foo ve baz vardır. 1091 00:51:12,180 --> 00:51:13,650 Değerler bar ve qux vardır. 1092 00:51:13,650 --> 00:51:18,560 Yani foreach, bizim dizi var Burada, anahtar değer çifti olarak. 1093 00:51:18,560 --> 00:51:21,560 Bu erişim bize izin verir anahtar ve değer hem de. 1094 00:51:21,560 --> 00:51:23,680 Belki sadece istediğiniz değeri, bu durumda, 1095 00:51:23,680 --> 00:51:27,640 Sadece arr gibi yapabilirdi Daha sonra $ değer, ve gibi 1096 00:51:27,640 --> 00:51:30,640 sadece değer erişen Eğer yineleme gibi. 1097 00:51:30,640 --> 00:51:32,600 Ama belki, bazı nedeni, anahtarı istiyorum, 1098 00:51:32,600 --> 00:51:35,460 Ben seçtim hangi Bunun yerine, bu örnek,. 1099 00:51:35,460 --> 00:51:40,240 Yani aslında işleyebilirsiniz Bu durumda anahtar ve değer. 1100 00:51:40,240 --> 00:51:41,070 TAMAM MI? 1101 00:51:41,070 --> 00:51:41,905 Soru? 1102 00:51:41,905 --> 00:51:44,279 >> İZLEYİCİ: Eğer isteseydik Sadece, anahtarı olur işlemek 1103 00:51:44,279 --> 00:51:45,910 Yapmanız gereken foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON: Sağ. 1105 00:51:47,360 --> 00:51:50,560 Yani eğer istedim Sadece anahtar manipüle, 1106 00:51:50,560 --> 00:51:53,680 Hala bu gerekir sözdizimi sadece sizin çünkü eğer 1107 00:51:53,680 --> 00:51:56,930 bir şey olarak arr var, bir şey olarak, bu kadar 1108 00:51:56,930 --> 00:52:00,070 gidiş istediğiniz varsaymak değer, değil tuşuna basın. 1109 00:52:00,070 --> 00:52:06,780 Yani hiç adil gibi varsa belki bu $ elemanı gibi gibi arr, 1110 00:52:06,780 --> 00:52:11,670 Eğer soruyorsun varsaymak gidiyor Her noktada sadece değer. 1111 00:52:11,670 --> 00:52:13,879 Açıkça istiyorsanız tuşu ile bir şeyler yapmak, 1112 00:52:13,879 --> 00:52:16,170 sen gitmiyorsun bile değeri ile bir şey yapmak, 1113 00:52:16,170 --> 00:52:18,430 Bu yapıyı ihtiyacınız Burada var 1114 00:52:18,430 --> 00:52:22,330 nerede açıkça soruyorsun anahtar ve değer hem de. 1115 00:52:22,330 --> 00:52:24,170 Büyük soru. 1116 00:52:24,170 --> 00:52:25,940 Başka herhangi bir şey? 1117 00:52:25,940 --> 00:52:27,490 Serin. 1118 00:52:27,490 --> 00:52:29,911 >> Pekala, PHP ve HTML. 1119 00:52:29,911 --> 00:52:31,410 Ah, biz geri döndük p-set yine yedi. 1120 00:52:31,410 --> 00:52:35,380 Yani bu biraz tanıdık görünmelidir. 1121 00:52:35,380 --> 00:52:41,760 Yani bu basit bir HTML formu Bu merhaba bazı giriş adı vardır. 1122 00:52:41,760 --> 00:52:43,820 Ve biz GET bizim yöntemi var bakın. 1123 00:52:43,820 --> 00:52:47,430 Ve bizim p-kümesinden hatırlıyorum eğer, Bu form gönderildiğinde, 1124 00:52:47,430 --> 00:52:58,130 sahip olduğu $ _GET adında bir dizi gönderir Bu girişlerden veya değişkenler tüm 1125 00:52:58,130 --> 00:53:00,490 olmalıdır bir şekilde Bizim PHP manipüle. 1126 00:53:00,490 --> 00:53:03,320 Bu durumda, kullanıcı o kendi adını koymak istiyorum. 1127 00:53:03,320 --> 00:53:04,370 Onlar teslim. 1128 00:53:04,370 --> 00:53:07,810 Ve biz burada bazı dizi olsun görüyoruz. 1129 00:53:07,810 --> 00:53:09,080 Bizim GET dizi var. 1130 00:53:09,080 --> 00:53:11,510 Ve biz adını erişen. 1131 00:53:11,510 --> 00:53:15,070 >> Tamam, diyor ki, bana ver adı ile ilişkilendirilmiş değeri, 1132 00:53:15,070 --> 00:53:16,550 Burada anahtar olan isim. 1133 00:53:16,550 --> 00:53:21,400 Ve bu doğrudan harita ne bizim giriş ismi olduğunu söyledi. 1134 00:53:21,400 --> 00:53:28,960 Yani bu sana anahtarı vererek ne Burada dizide olacak. 1135 00:53:28,960 --> 00:53:31,220 Bu herkese mantıklı mı? 1136 00:53:31,220 --> 00:53:32,070 Evet? 1137 00:53:32,070 --> 00:53:36,240 >> İZLEYİCİ: adı olarak bakın GET mu [duyulamaz] mor çizgisine? 1138 00:53:36,240 --> 00:53:37,740 >> Alison: burada, bu ifade eder. 1139 00:53:37,740 --> 00:53:43,840 Yani burada bu alan, Burada bu isim anlamına gelir. 1140 00:53:43,840 --> 00:53:47,800 Yani bu ad verilmiş olabilir telefon numarası, ya da her neyse gibi. 1141 00:53:47,800 --> 00:53:51,790 Bu isim aslında, ne diyor Bu alanı diyorsun? 1142 00:53:51,790 --> 00:53:53,600 Nasıl gidiyor Bu alana bakın? 1143 00:53:53,600 --> 00:53:57,670 Ve bu isim bizim konum, gibi aslında bir Bu alanı söyleyerek isim denir. 1144 00:53:57,670 --> 00:53:59,224 İşte biz bunu erişmek için gidiyoruz nasıl. 1145 00:53:59,224 --> 00:54:02,070 >> İZLEYİCİ: Yani nasıldır, Giriş adı Bob eşittir, ve- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON: Sağ, sonra Orada Bob olsun istiyorum. 1147 00:54:04,380 --> 00:54:06,090 Kesinlikle. 1148 00:54:06,090 --> 00:54:07,800 Herkes serin? 1149 00:54:07,800 --> 00:54:10,990 Pekala, bu yüzden, POST karşı GET Bu iki ana yolu vardır 1150 00:54:10,990 --> 00:54:14,880 biz bir HTTP isteği veri aktarmak. 1151 00:54:14,880 --> 00:54:17,370 Siz görmeliydin Bu umarım iki. 1152 00:54:17,370 --> 00:54:20,940 GET ile bilgi Yani URL geçirilir. 1153 00:54:20,940 --> 00:54:23,490 Yani hiç Google'a yaparsanız aramalar, YouTube, sen olacak 1154 00:54:23,490 --> 00:54:25,130 muhtemelen bazı soru işareti fark. 1155 00:54:25,130 --> 00:54:28,230 Ve sonra, bütün kelimeler Bu sadece orada koymak. 1156 00:54:28,230 --> 00:54:31,410 Ve POST verilerini geçer HTTP ileti gövdesinde. 1157 00:54:31,410 --> 00:54:36,922 Yani GET aksine, ne tür düşünün Veri kullanıcıdan gizli olduğunu. 1158 00:54:36,922 --> 00:54:38,630 Ama gerçekten var anlamak önemlidir 1159 00:54:38,630 --> 00:54:44,040 bu hala olmasıdır GET kadar güvensiz. 1160 00:54:44,040 --> 00:54:48,780 Ben kullanmak istiyorum benzetme eğer olduğunu Eğer banka hesap numarası 1161 00:54:48,780 --> 00:54:52,795 ve dışında yazmak Bir zarf, bu oldukça güvensiz olduğunu. 1162 00:54:52,795 --> 00:54:55,920 Eğer olsaydı bir parça yazmak için Kağıt ve zarf içine koymak, 1163 00:54:55,920 --> 00:54:58,850 hala, çünkü gerçekten güvensiz var yapmanız gereken tüm açmak olduğunu 1164 00:54:58,850 --> 00:55:03,480 ve gerçek içeriği bakmak mesajın görmek için. 1165 00:55:03,480 --> 00:55:08,310 Yani bu "gizli" olduğunu ve insanlar gibi o güvenli olduğunu düşünüyorum, ama gerçekten değil. 1166 00:55:08,310 --> 00:55:11,000 Ve eminim Davin olacak Belki, o daha içine almak. 1167 00:55:11,000 --> 00:55:12,850 Ama bir önemli ayrım yapmak 1168 00:55:12,850 --> 00:55:15,820 ve gerçekten çok iyi bir şey anlamak için. 1169 00:55:15,820 --> 00:55:19,220 >> Tamam, SQL, Structured Query Language. 1170 00:55:19,220 --> 00:55:22,220 Tüm şeyler olduğunu biz çok yakın zamanda gördüm! 1171 00:55:22,220 --> 00:55:25,400 Yani temelde sadece tasarlanmıştır, Açıkçası, verileri yönetmek için. 1172 00:55:25,400 --> 00:55:30,560 Siz deneyim bir sürü vardı PHP myadmin ile tabloları bu. 1173 00:55:30,560 --> 00:55:34,100 Ve dört ortak sorguları vardır İstediğimiz ki siz bilmek. 1174 00:55:34,100 --> 00:55:37,304 Yani güncelleme, ekleme var, seçin ve silin. 1175 00:55:37,304 --> 00:55:38,970 Yani gerçekten de bu bildiğinizden emin olun. 1176 00:55:38,970 --> 00:55:40,960 Biz gidiyoruz gerçekten hızlı içlerinden. 1177 00:55:40,960 --> 00:55:44,340 >> Peki gibi, gerçekten, güncelleme ne Eğer öyle düşünebilir 1178 00:55:44,340 --> 00:55:46,740 o sadece veritabanındaki verileri günceller. 1179 00:55:46,740 --> 00:55:48,750 Yani biz burada bazı örnek var. 1180 00:55:48,750 --> 00:55:53,310 Bu genel bir Bir güncelleştirme sorgusu yapısı. 1181 00:55:53,310 --> 00:55:56,150 Bu yüzden tablosunu güncelleştirmek biz bahsediyoruz. 1182 00:55:56,150 --> 00:56:00,520 Ve biz belli ayarlamak istediğiniz değerleri, belirli bir sütun 1183 00:56:00,520 --> 00:56:02,600 Belirli değerlere eşit. 1184 00:56:02,600 --> 00:56:07,500 Yani bu sadece değişen tablo günceller Bu durumda tüm satırlar değerler. 1185 00:56:07,500 --> 00:56:13,690 Bu bir Yani buraya, bir gerçek örneğinde, insert-- içerir. 1186 00:56:13,690 --> 00:56:17,630 O slayt ileri bensiz farkında. 1187 00:56:17,630 --> 00:56:22,230 >> Peki bu güncellemeler tablosu eşit col1 set Evin eşittir VAL1 için "Sepici." 1188 00:56:22,230 --> 00:56:25,300 Ne bu yapmasıdır Bu sadece tek değişikliği 1189 00:56:25,300 --> 00:56:28,130 Belirli yerlerde bu değerleri günceller. 1190 00:56:28,130 --> 00:56:32,300 Yani bu ilk biri, bu değişiklikleri senin masada her şey için değerler, 1191 00:56:32,300 --> 00:56:32,860 TAMAM MI? 1192 00:56:32,860 --> 00:56:35,820 Bu değiştirmek için gidiyor her giriş için sütun, 1193 00:56:35,820 --> 00:56:37,020 her satır için. 1194 00:56:37,020 --> 00:56:40,840 Bu Ama nerede, sen-ebil Bir eleme olarak düşünüyorum. 1195 00:56:40,840 --> 00:56:44,020 Yani sadece değiştirmek için gidiyor çok özel yerlerde o. 1196 00:56:44,020 --> 00:56:47,840 Yani p-set, sizi yedi belki nakit miktarını güncellenmiş 1197 00:56:47,840 --> 00:56:53,050 kullanıcı olduğunu, muhtemelen vardı Bazı Kimlik doğru, oturum kimliği eşittir? 1198 00:56:53,050 --> 00:56:55,280 >> Eğer istemedim çünkü nakit miktarını değiştirmek 1199 00:56:55,280 --> 00:56:57,630 Her kişi için kim Web sitenizi kullanıyordum. 1200 00:56:57,630 --> 00:57:00,480 Sen biri için bunu değiştirmek istedim Belirli bir kişi, o kişi olmak 1201 00:57:00,480 --> 00:57:02,410 kim o anda kullanıyordu. 1202 00:57:02,410 --> 00:57:04,320 Doğru? 1203 00:57:04,320 --> 00:57:07,510 Tamam, bu yüzden, insert eklemek tablolar halinde bazı değerleri. 1204 00:57:07,510 --> 00:57:11,650 Bu olduğunuzda gibi yepyeni bir kullanıcı oluşturma. 1205 00:57:11,650 --> 00:57:14,240 Burada genel yapısı ne olursa olsun tabloya eklemek edilir 1206 00:57:14,240 --> 00:57:15,680 Bahsettiğimiz. 1207 00:57:15,680 --> 00:57:18,910 Değerler, varlık değerleri bu biz aslında eklemek istiyorum. 1208 00:57:18,910 --> 00:57:23,060 Tamam, biz burada gördüğünüz gibi yani, biz tabloya eklemek var. 1209 00:57:23,060 --> 00:57:27,790 Bu belirli sütunlar olduğunu bunların karşılık değerleri. 1210 00:57:27,790 --> 00:57:29,940 Yani bu, ekleme diyor içeren yeni bir satır 1211 00:57:29,940 --> 00:57:33,660 değerler val1 ve val2 altında Bu özel sütunlar. 1212 00:57:33,660 --> 00:57:39,240 >> Yani belki sadece doldurmak istiyor Bu satırda yarım şeyleri dışarı. 1213 00:57:39,240 --> 00:57:41,150 Yani bu kısmı burada yapmanız sağlar ne. 1214 00:57:41,150 --> 00:57:43,280 Aslında size sağlar hangi bölüm belirler. 1215 00:57:43,280 --> 00:57:44,244 Evet? 1216 00:57:44,244 --> 00:57:52,150 >> İZLEYİCİ: Can yalnızca [duyulamaz] satır [duyulamaz] hücreler? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON: Sadece doldurmanız halinde senin satır belirli bölümleri, 1218 00:57:55,000 --> 00:57:57,480 bu hücrelerin geri kalanı sadece boş. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 Sürece onları izin gibi boş, bu bir sorun değil. 1221 00:58:05,660 --> 00:58:09,570 Bunları erişmeye çalışırsanız, bu kadar Bazı boş eleman dönmek için gidiyoruz. 1222 00:58:09,570 --> 00:58:13,850 Ama bilmek önemlidir Bazı tablolarda olduğu, 1223 00:58:13,850 --> 00:58:16,690 Onlar boş izin edilmesi gerekir. 1224 00:58:16,690 --> 00:58:18,890 Bir çalıştırmak olabilir senin p-kümesi sırasında sorun 1225 00:58:18,890 --> 00:58:21,320 biz herhangi izin vermedi çünkü senin değerleri null. 1226 00:58:21,320 --> 00:58:26,110 Ama bir belirtebilirsiniz senin tabloda isteğe bağlı değer. 1227 00:58:26,110 --> 00:58:29,640 >> Tamam, seçeneğini, bu nedenle bu almanın bir yolu 1228 00:58:29,640 --> 00:58:33,790 Bir tablodan belirli bir veri de İstediğiniz bazı tanımlayıcı. 1229 00:58:33,790 --> 00:58:37,990 Tablodan nerede Yani seçin yıldız col, bir şey sadece anlamına eşittir 1230 00:58:37,990 --> 00:58:43,820 Bana ilişkili tüm verileri vermek nerede bu özel sütun doğrudur. 1231 00:58:43,820 --> 00:58:49,020 Yani bu durumda yıldızı olacak Tamam, size tüm satır dönmek? 1232 00:58:49,020 --> 00:58:54,880 >> Sonra, bu durumda, yıldızı seçmek tablo sadece size tüm tabloyu verir. 1233 00:58:54,880 --> 00:58:58,940 Ve sonra, tabii ki sadece silme tablo satır siler. 1234 00:58:58,940 --> 00:59:01,320 Yani tablodan silmek, ne olursa olsun tablo biz konum 1235 00:59:01,320 --> 00:59:06,830 nerede bazı özel, referans tanımlayıcı ya da bazı koşul doğrudur. 1236 00:59:06,830 --> 00:59:07,720 Evet? 1237 00:59:07,720 --> 00:59:08,700 >> İZLEYİCİ: Soru. 1238 00:59:08,700 --> 00:59:10,699 Neden çift kullanıyorsanız tırnak, ve sizin olsun 1239 00:59:10,699 --> 00:59:13,600 çift ​​tırnak veya tek yapmak tırnak, bir fark yapar? 1240 00:59:13,600 --> 00:59:18,235 >> Alison: Çift tırnak veya tek tırnak SQL bir fark yapmaz. 1241 00:59:18,235 --> 00:59:19,610 Ben başka bir soru gördüm. 1242 00:59:19,610 --> 00:59:20,814 Evet? 1243 00:59:20,814 --> 00:59:25,070 >> İZLEYİCİ: bu ne etkilemez sorgudan kaçtı alır? 1244 00:59:25,070 --> 00:59:27,945 >> Alison: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> ROB: Eğer ne demek istiyorsunuz sorgudan kaçtı? 1246 00:59:31,410 --> 00:59:36,870 >> İZLEYİCİ: Birisi varsa bir şeklinde tek sorgu of-- 1247 00:59:36,870 --> 00:59:39,862 >> ROB: Birisi olsaydı Bir tek tırnak koymak, 1248 00:59:39,862 --> 00:59:43,560 daha sonra sürece sterilize konum olarak senin girdi, o zaman önemli değil. 1249 00:59:43,560 --> 00:59:46,205 Ama bir tek kullanıyorsanız Gönder ve yanlış vardır 1250 00:59:46,205 --> 00:59:47,914 senin girişleri kaçan, o zaman evet, ihtiyaç duydukları 1251 00:59:47,914 --> 00:59:51,079 kırmak için bir tek tırnak koymak senin kodu. çift ​​tırnak kullanırsanız, 1252 00:59:51,079 --> 00:59:53,580 Onlar bir çift koymak gerekir kodunuzu kırmaya alıntı. 1253 00:59:53,580 --> 00:59:56,163 Ama sürece şeyler kaçmak gibi Doğru, bu önemli değil. 1254 00:59:56,163 --> 00:59:59,220 Sadece tercüme edilmesi için gidiyor Zaten doğru sembol. 1255 00:59:59,220 --> 01:00:02,332 >> İZLEYİCİ: kaçış ne anlama geliyor? 1256 01:00:02,332 --> 01:00:04,040 ALISON: Peki, gibi sterilize eden ve kaçış. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 Elimizdeki sınav, büyük XKCD komik var nerede yukarı çekin ki, 1259 01:00:13,820 --> 01:00:15,629 Oh-- 1260 01:00:15,629 --> 01:00:16,670 ROB: Bu son slayt var. 1261 01:00:16,670 --> 01:00:18,500 ALISON: Gerçekten, son slayt değil mi? 1262 01:00:18,500 --> 01:00:20,200 Aman Tanrım. 1263 01:00:20,200 --> 01:00:21,780 Orada mükemmel, gidin. 1264 01:00:21,780 --> 01:00:27,900 Tamam, bu nedenle temelde, enjekte edebilir Bu SQL sorgusu içine bir şey 1265 01:00:27,900 --> 01:00:30,560 nerede, sizin tatili kodu veya David gösterdi 1266 01:00:30,560 --> 01:00:38,460 sınıfta, biz bazı tek varsa Gönder 1 1 eşittir ve bizim kod eğer, 1267 01:00:38,460 --> 01:00:41,230 biz sadece doğrudan o kopyalayın ve biz biten tek alıntı, 1268 01:00:41,230 --> 01:00:44,740 ne olur biz olsun Bazı sentezleme bu 1269 01:00:44,740 --> 01:00:48,680 true değerlendirir olacak Birisi bizim veritabanı girmesine izin 1270 01:00:48,680 --> 01:00:51,720 ve veri almak ki Onları almak istemiyorum. 1271 01:00:51,720 --> 01:00:54,240 Yani girişleri sterilize Sadece emin demektir 1272 01:00:54,240 --> 01:00:57,680 bu kaçan bu karakterleri ve onları tayin 1273 01:00:57,680 --> 01:01:01,720 karakter değil şeyler gibi Bu izin verilmelidir 1274 01:01:01,720 --> 01:01:04,990 kelimenin tam anlamıyla alınacak Bizim SQL deyimi olarak. 1275 01:01:04,990 --> 01:01:09,980 >> Yani büyük bir şey dedik ki Siz kullanarak olmalıdır 1276 01:01:09,980 --> 01:01:13,650 HTML özel karakter vardı Hangi şey 1277 01:01:13,650 --> 01:01:15,730 Eğer bakmak isteyebilirsiniz. 1278 01:01:15,730 --> 01:01:17,240 Tamam, silin. 1279 01:01:17,240 --> 01:01:19,450 Veri türleri, bu online olacak. 1280 01:01:19,450 --> 01:01:23,510 Biz 15 dakika kaldı beri, ben değilim sadece sağ Bu yoluyla gidecek. 1281 01:01:23,510 --> 01:01:28,500 PHP ve SQL, temelde bu Sadece bir sorgu işlevi vardı 1282 01:01:28,500 --> 01:01:31,520 karşı korunmasına yardım Bu kötü niyetli saldırılar. 1283 01:01:31,520 --> 01:01:33,970 Peki ne zaman kullanmak Sorgu, biz emin edildi 1284 01:01:33,970 --> 01:01:36,560 Bu işler dezenfekte ve etajer edildi. 1285 01:01:36,560 --> 01:01:41,070 >> MVC, sadece bir tasarım paradigma böylece modeli, görünüm, denetleyici. 1286 01:01:41,070 --> 01:01:44,200 Bu şeyler tutmak için sadece bir yol var güzel ve aynı şekilde bölmek 1287 01:01:44,200 --> 01:01:47,100 Biz faktör eğiliminde olduğunu fonksiyonları içine kodu. 1288 01:01:47,100 --> 01:01:53,390 Bu sadece bir web tasarım çerçevesi Bu aynı şeyi yapmak için izin verir. 1289 01:01:53,390 --> 01:01:54,760 Ben bu atlamak için gidiyorum. 1290 01:01:54,760 --> 01:01:58,530 >> Bu şey olduğunu ben ile süper rahat olurdu. 1291 01:01:58,530 --> 01:02:01,132 Orada bir büyük küçük masa var. 1292 01:02:01,132 --> 01:02:03,090 Size fonksiyonunu verir Modelin bir örnek. 1293 01:02:03,090 --> 01:02:05,473 Ben sadece bu aracılığıyla çünkü ben gidiyorum Gerçekten Davin konuşabilmek istiyorum. 1294 01:02:05,473 --> 01:02:07,140 Herhangi bir sorunuz varsa, çekinmeyin. 1295 01:02:07,140 --> 01:02:07,931 Ben sonra burada olacağım. 1296 01:02:07,931 --> 01:02:10,360 Sadece benimle konuş gel. 1297 01:02:10,360 --> 01:02:13,380 Bunun üzerine, biz HTTP durumları var. 1298 01:02:13,380 --> 01:02:16,270 Ve Davin en darbe olacak 15 dakika içinde bu aracılığıyla. 1299 01:02:16,270 --> 01:02:17,560 Bu büyük olacak. 1300 01:02:17,560 --> 01:02:18,893 >> DAVIN: Tamam. 1301 01:02:18,893 --> 01:02:20,312 Ah, senin mikrofon? 1302 01:02:20,312 --> 01:02:22,210 Evet. 1303 01:02:22,210 --> 01:02:23,336 Özür dilerim. 1304 01:02:23,336 --> 01:02:24,460 ALISON: Way hazırlanacak. 1305 01:02:24,460 --> 01:02:25,335 DAVIN: Hayır, ben hazırım. 1306 01:02:25,335 --> 01:02:25,860 Ben hazırım. 1307 01:02:25,860 --> 01:02:28,790 Şimdi bu yapalım. 1308 01:02:28,790 --> 01:02:29,290 Bu hazır. 1309 01:02:29,290 --> 01:02:30,041 TAMAM MI. 1310 01:02:30,041 --> 01:02:30,540 Özür dilerim. 1311 01:02:30,540 --> 01:02:31,664 Ben kendime kahve döküldü. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 Ben daha çok yaşıyorum bilmiyorum Ben aptal bakmak üzgün, 1314 01:02:38,210 --> 01:02:40,600 ya da ben artık kahve yok. 1315 01:02:40,600 --> 01:02:44,480 Neyse, sadece hızlı bir duyuru levha hakkında siz var. 1316 01:02:44,480 --> 01:02:47,994 Böylece siz sahip bu levha değil quiz ne resmi. 1317 01:02:47,994 --> 01:02:49,660 Bu sınavda ne resmi olduğunu. 1318 01:02:49,660 --> 01:02:52,520 Ayrıca, web sitesinde, biz söylemek Eğer, tamam, bu sınav olacak. 1319 01:02:52,520 --> 01:02:55,020 Küçük hile sayfasında Yani Eğer resmi değil, var. 1320 01:02:55,020 --> 01:02:56,690 Ve bunun üzerine hatalar vardır. 1321 01:02:56,690 --> 01:03:01,490 Bu yüzden en iyi sadece körü körüne kullanmak için değil. 1322 01:03:01,490 --> 01:03:04,390 Yani evet, bu işte. 1323 01:03:04,390 --> 01:03:05,980 Yani bu gerçekten hızlı girmesine izin. 1324 01:03:05,980 --> 01:03:07,420 >> Peki, HTTP durumları. 1325 01:03:07,420 --> 01:03:10,430 Peki ne olur Web sitesi, her şey doğru. 1326 01:03:10,430 --> 01:03:11,144 Her şey Tamam. 1327 01:03:11,144 --> 01:03:13,310 Her şey geri geliyor Eğer bunu yolu istiyorum. 1328 01:03:13,310 --> 01:03:15,370 Sen 200 OK olsun. 1329 01:03:15,370 --> 01:03:19,250 301, nerede 301 önce gördük? 1330 01:03:19,250 --> 01:03:20,890 Ne var, Bekle? 1331 01:03:20,890 --> 01:03:23,250 Özür dilerim. 1332 01:03:23,250 --> 01:03:24,980 Biz güvenlik sırasında ben kalay ders gördüm. 1333 01:03:24,980 --> 01:03:30,690 Eğer öyleyse Yani güvenlik sırasında, David yazdığınız http ve daha sonra, cs50.net gitmek için çalıştı 1334 01:03:30,690 --> 01:03:31,940 Eğer 301 taşındı görmek için gidiyoruz. 1335 01:03:31,940 --> 01:03:32,440 Neden? 1336 01:03:32,440 --> 01:03:35,570 O yönlendirmek için gidiyor çünkü Bizim HTTPS için otomatik olarak. 1337 01:03:35,570 --> 01:03:38,649 >> Yani 301 sadece var, taşındı temelde bir yönlendirme. 1338 01:03:38,649 --> 01:03:40,190 Ve böyle düşünmek olabilir. 1339 01:03:40,190 --> 01:03:43,790 2 yıllardan ile başlayan durumların herhangi birisi, Bu her şey OK, OK, gibi. 1340 01:03:43,790 --> 01:03:46,530 Başlangıç ​​durumları Herhangi 3 ile, bu yönlendirme vardır. 1341 01:03:46,530 --> 01:03:49,571 4 ile başlayan statüler, araç olduğunu istemci hata çeşit var. 1342 01:03:49,571 --> 01:03:52,440 5 ile başlayan statüler, Bu sunucu hatası çeşit. 1343 01:03:52,440 --> 01:03:54,680 Yani bir tür kırmak Böyle durumları. 1344 01:03:54,680 --> 01:03:59,120 Yani 304 böylece, modifiye değil senin server.c p-setleri, o yüzden seni diyelim 1345 01:03:59,120 --> 01:04:00,600 Yüklenen cat.html. 1346 01:04:00,600 --> 01:04:03,360 Her şey, geri geliyor Eğer 200'ler, tamam, büyük olsun. 1347 01:04:03,360 --> 01:04:04,540 >> En bunu yenilenir diyelim. 1348 01:04:04,540 --> 01:04:07,310 Peki, bu iç cat.html, bir JPEG var. 1349 01:04:07,310 --> 01:04:09,520 Peki, bu JPEG değil gidiş yeniden almak için. 1350 01:04:09,520 --> 01:04:12,140 Başka göndermek için gitmiyoruz Sunucuya GET istemi, 1351 01:04:12,140 --> 01:04:13,980 ve sonra geri tüm bu bilgi alabilirsiniz. 1352 01:04:13,980 --> 01:04:17,560 Sadece bu görüntü şey olmak gidiyor gidiyor makinenizde önbelleğe alınacak. 1353 01:04:17,560 --> 01:04:19,540 Ve böylece görüntü 304 olacaktır. 1354 01:04:19,540 --> 01:04:20,720 Yani modifiye edilmiş değil. 1355 01:04:20,720 --> 01:04:24,600 Eğer dışarı kapatırsanız, net çerezleri ve sonra yenileyin 1356 01:04:24,600 --> 01:04:27,490 ve o sayfayı yüklemeyi deneyin yine, 200S görmek için gidiyoruz. 1357 01:04:27,490 --> 01:04:28,910 Bunu 304 görmek için gitmiyoruz. 1358 01:04:28,910 --> 01:04:32,340 >> 400, kötü istek, gerçek Hızlı, gibi eğer 1359 01:04:32,340 --> 01:04:34,880 Bir göndermek için gittiğini Sunucuya JSON nesne 1360 01:04:34,880 --> 01:04:38,090 ve JSON nesnesi, yanlış oldu Eğer böyle bir şey görürsünüz. 1361 01:04:38,090 --> 01:04:39,000 403, yasak. 1362 01:04:39,000 --> 01:04:40,330 Ne zaman bir yasak görürdünüz? 1363 01:04:40,330 --> 01:04:41,394 Muhtemelen Muhtemelen? 1364 01:04:41,394 --> 01:04:42,060 HEDEF KİTLE: Chmod. 1365 01:04:42,060 --> 01:04:42,950 DAVIN: Chmod, evet. 1366 01:04:42,950 --> 01:04:44,730 Yani set değil doğru izinleri. 1367 01:04:44,730 --> 01:04:45,577 404, bulunamadı. 1368 01:04:45,577 --> 01:04:46,410 Sadece orada değil. 1369 01:04:46,410 --> 01:04:48,670 Eğer yanlış URL yazarsanız Yani. 1370 01:04:48,670 --> 01:04:53,500 500, iç sunucu hatası, sunucu Muhtemelen doğru yapılandırılmamış. 1371 01:04:53,500 --> 01:04:56,260 Senin ucunda bir şey değil, ama Sunucu tarafında bir şey. 1372 01:04:56,260 --> 01:04:57,240 Ve 503? 1373 01:04:57,240 --> 01:04:59,502 Birçok insan gördüm Geçen p-sette 503s. 1374 01:04:59,502 --> 01:05:00,460 Bu ne zaman olur? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 Ben fısıltılar duydum. 1377 01:05:05,660 --> 01:05:07,767 >> İZLEYİCİ: Google Eğer bir robot karar verir. 1378 01:05:07,767 --> 01:05:10,350 DAVIN: Evet, ne zaman Google karar Eğer 503s olsun, bir robot. 1379 01:05:10,350 --> 01:05:11,560 Yani bir yük var. 1380 01:05:11,560 --> 01:05:14,620 Sunucudan talep ettiyseniz çok, genellikle geçici. 1381 01:05:14,620 --> 01:05:15,560 Ve size en çok fark ettim. 1382 01:05:15,560 --> 01:05:16,185 Yani 503 gördüm. 1383 01:05:16,185 --> 01:05:19,282 Biraz almış olabilir mola, sonra 503s, gittiler 1384 01:05:19,282 --> 01:05:20,490 ve her şey yolunda idi. 1385 01:05:20,490 --> 01:05:26,640 >> Gabe: Gerçek hızlı, siz alabilirim Muhtemelen 500 bu son sorunun set? 1386 01:05:26,640 --> 01:05:27,954 Evet? 1387 01:05:27,954 --> 01:05:30,906 >> İZLEYİCİ: Genellikle eğer Sunucu yanlış bir dosya vardır 1388 01:05:30,906 --> 01:05:34,650 veya [duyulamaz] onların Makine [duyulamaz]. 1389 01:05:34,650 --> 01:05:38,870 >> Gabe: Yani bir yapılandırma olabilir sunucu üzerinde PHP sorunu. 1390 01:05:38,870 --> 01:05:42,250 Ama sadece bir şey olabilir senin unuttum bir noktalı virgül gibi. 1391 01:05:42,250 --> 01:05:44,130 PHP yazarak ediyorsanız, Bazı yanlış sözdizimi 1392 01:05:44,130 --> 01:05:46,000 Sana böyle bir şey alabilirsiniz. 1393 01:05:46,000 --> 01:05:46,960 TAMAM MI? 1394 01:05:46,960 --> 01:05:48,610 >> DAVIN: Serin. 1395 01:05:48,610 --> 01:05:51,180 Bana AJAX kadar sadece kadar yapmak istiyor musunuz? 1396 01:05:51,180 --> 01:05:52,950 >> Gabe: [duyulamaz]. 1397 01:05:52,950 --> 01:05:53,450 DAVIN: Tamam. 1398 01:05:53,450 --> 01:05:54,230 Peki DOM ne? 1399 01:05:54,230 --> 01:05:55,290 DOM ne anlama geliyor? 1400 01:05:55,290 --> 01:05:56,990 >> İZLEYİCİ: Belge nesne modeli. 1401 01:05:56,990 --> 01:05:57,490 DAVIN: Güzel. 1402 01:05:57,490 --> 01:06:00,775 Ve neden bunu beğendin mi? 1403 01:06:00,775 --> 01:06:02,670 Korku. 1404 01:06:02,670 --> 01:06:06,651 Doğru, o yüzden sadece erişim bize izin verir HTML, çok hızlı bir şekilde sayfamızı erişin. 1405 01:06:06,651 --> 01:06:07,150 Neden? 1406 01:06:07,150 --> 01:06:09,980 Biz tedavi Çünkü bizim sayfa, bizim HTML etiketlerini tedavi, 1407 01:06:09,980 --> 01:06:11,730 tedavi herşey sanki nesneler konum. 1408 01:06:11,730 --> 01:06:13,710 Onlar gibisin, biz onları tedavi ediyorsanız nesneler, o zaman biz ne yapabiliriz? 1409 01:06:13,710 --> 01:06:15,210 Peki, biz onlara işlevleri çağırabilirsiniz. 1410 01:06:15,210 --> 01:06:16,460 Ve bu yüzden önemlidir? 1411 01:06:16,460 --> 01:06:19,200 Peki, biz kullanmak için gidiyoruz çünkü JavaScript bizim HTML güncellemek için, 1412 01:06:19,200 --> 01:06:20,500 Bu nesneleri güncelleştirmek. 1413 01:06:20,500 --> 01:06:23,869 Biz nesneler gibi davranmasını Yani eğer, biz sonra onlara işlevleri çağırabilirsiniz. 1414 01:06:23,869 --> 01:06:26,660 Ben bu biraz içine almak için gidiyorum JavaScript gittiğinizde daha, 1415 01:06:26,660 --> 01:06:30,510 ama hepsi gibi gördüm document.getElementById. 1416 01:06:30,510 --> 01:06:32,870 Yani belge şey sizin eleman, KODU elemanı olsun 1417 01:06:32,870 --> 01:06:35,087 böylece bakmak için gidiyoruz HTML etiketi bazı kimliği. 1418 01:06:35,087 --> 01:06:36,920 Ve sonra, bunu yapabilirsiniz Bu başka bir şey. 1419 01:06:36,920 --> 01:06:40,089 Örneğin, document.body gibi, sonra çocuğu ekleyebilirsiniz. 1420 01:06:40,089 --> 01:06:41,630 Yani belgeyi bulmak için gidiyoruz. 1421 01:06:41,630 --> 01:06:42,340 Belgeyi var. 1422 01:06:42,340 --> 01:06:43,629 Sen cesedini bulmak için gidiyoruz. 1423 01:06:43,629 --> 01:06:44,420 Cesedi bulundu. 1424 01:06:44,420 --> 01:06:46,545 Ve sonra, sen gidiyorsun Bunun üzerine bazı işlevini çağırın. 1425 01:06:46,545 --> 01:06:50,312 Yani çocuğu eklemek ve ekleyebilirsiniz vücudunuzdaki ucuna bazı HTML. 1426 01:06:50,312 --> 01:06:52,520 Yani temelde, sadece konum bir nesne gibi muamele. 1427 01:06:52,520 --> 01:06:54,515 HTML tedavi ediyoruz Bir nesne gibi etiketleri. 1428 01:06:54,515 --> 01:06:57,071 Ve o çok kolay ve hızlı onları geçmek. 1429 01:06:57,071 --> 01:06:59,070 Ama aynı zamanda size izin verir onlara işlevleri çağırmak için 1430 01:06:59,070 --> 01:07:04,410 böylece işleyebilirsiniz ve elemanları değiştirin. 1431 01:07:04,410 --> 01:07:10,162 >> Gabe: Bu göz önüne alındığında, neden böyle JavaScript Güzel bir dil HTML ile etkileşim? 1432 01:07:10,162 --> 01:07:12,870 İnsanlar seçerken zaman Oran, vardır tarayıcı için dil, 1433 01:07:12,870 --> 01:07:14,990 istemci tarafında için, JavaScript, gerçekten güzel 1434 01:07:14,990 --> 01:07:16,765 o nesneleri ele gerçekten iyi. 1435 01:07:16,765 --> 01:07:20,620 Ve nesneler tür gibi vardır HTML görünen nesneler, 1436 01:07:20,620 --> 01:07:23,940 bu yüzden JavaScript için çok kolay kullanım bu tür yapmak. 1437 01:07:23,940 --> 01:07:24,440 DAVIN: Güzel. 1438 01:07:24,440 --> 01:07:25,670 Yani burada sadece bir örnek. 1439 01:07:25,670 --> 01:07:29,020 Yani, geçen yılki sınavda düşünüyorum ya da belki iki yıl önce, biz 1440 01:07:29,020 --> 01:07:30,840 Bir ağacı oluşturmak istedi. 1441 01:07:30,840 --> 01:07:32,660 Yani bu ne yapacağını tam olarak budur. 1442 01:07:32,660 --> 01:07:34,255 Yani belge ile başlar. 1443 01:07:34,255 --> 01:07:36,130 Ve sonra temelde Sadece etiketleri bak. 1444 01:07:36,130 --> 01:07:38,100 Eğer, biz bakarsanız Yani HTML etiketi ile başlar. 1445 01:07:38,100 --> 01:07:41,660 Ve sonra, nasıl hakkında ipuçları almak girinti dayalı bunu. 1446 01:07:41,660 --> 01:07:43,870 Şube Yani kafa tür kapalı. 1447 01:07:43,870 --> 01:07:46,242 Kafa içinde, biz var başlık için başka bir etiket. 1448 01:07:46,242 --> 01:07:47,450 Öyleyse, biz bir başlık etiketi var. 1449 01:07:47,450 --> 01:07:49,760 Ve bu iç, bazı dize var. 1450 01:07:49,760 --> 01:07:52,210 Ve böylece biz temsil Bir daire içinde bir dize. 1451 01:07:52,210 --> 01:07:54,010 Ve tüm etiketler kareler vardır. 1452 01:07:54,010 --> 01:07:56,270 >> Ve sen bakarsanız, biz eğer Bir ağaç gibi bu düşünüyorum, 1453 01:07:56,270 --> 01:07:58,730 ve en HTML olduğunu varsayalım Bir ebeveyn, daha sonra baş ve vücut 1454 01:07:58,730 --> 01:07:59,772 kardeşler olacak. 1455 01:07:59,772 --> 01:08:01,813 Her ikisi de olacaksın Bu ebeveyn çocukları. 1456 01:08:01,813 --> 01:08:03,620 Onlar çünkü Yani Her iki kardeş, onlar 1457 01:08:03,620 --> 01:08:06,590 tür yanında olacak Bizim ağaç modeli birbirlerine. 1458 01:08:06,590 --> 01:08:08,590 Ve sonra, temelde aynı şeyi yapmak. 1459 01:08:08,590 --> 01:08:13,512 Yani zor, ama biz istediler quiz önce böyle sorular. 1460 01:08:13,512 --> 01:08:15,220 Gabe: Kimseyi mu Şimdiye kadar sorularım var? 1461 01:08:15,220 --> 01:08:16,357 Iyi mi? 1462 01:08:16,357 --> 01:08:16,856 DAVIN: Serin. 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScript, tamam, iyi şeyler. 1465 01:08:21,600 --> 01:08:24,069 Yani JavaScript JavaScript nedir? 1466 01:08:24,069 --> 01:08:28,370 Peki, JavaScript bulunuyor bu-- karmaşık, ancak bu 1467 01:08:28,370 --> 01:08:30,727 bazı olayları Bu akılda tutmak gerekir. 1468 01:08:30,727 --> 01:08:31,810 Birincisi, o gevşek yazdığınız oluyor. 1469 01:08:31,810 --> 01:08:33,529 Bu ne anlama geliyor? 1470 01:08:33,529 --> 01:08:35,596 Peki PHP ne var, evet Ben--? 1471 01:08:35,596 --> 01:08:39,854 >> İZLEYİCİ: Açıkça zorunda değilsiniz o değişkenin ne tür devlet. 1472 01:08:39,854 --> 01:08:40,479 DAVIN: Mükemmel. 1473 01:08:40,479 --> 01:08:43,270 Bu yüzden bunu yapmak zorunda değilsiniz dedi açıkça değişkenin tipini. 1474 01:08:43,270 --> 01:08:44,160 Bu tam olarak doğru. 1475 01:08:44,160 --> 01:08:49,700 Ben int olsaydı Yani C, ben 50 eşittir, sonra PHP, sadece bu gibi, $ i, 1476 01:08:49,700 --> 01:08:50,550 50 eşittir. 1477 01:08:50,550 --> 01:08:54,319 Sonra JavaScript, Çağrı ne olurdu? 1478 01:08:54,319 --> 01:08:55,260 Var değil mi? 1479 01:08:55,260 --> 01:08:56,566 Var i 50 eşit gibi olurdu. 1480 01:08:56,566 --> 01:08:58,649 Ama olmak zorunda değilsiniz gibi, tamam, bu bir int. 1481 01:08:58,649 --> 01:09:00,350 Tamam, bu bir dizedir. 1482 01:09:00,350 --> 01:09:01,731 Gerek yok bunu yapmak için. 1483 01:09:01,731 --> 01:09:02,939 Bu bir dil var. 1484 01:09:02,939 --> 01:09:04,904 Peki bu ne anlama geliyor? 1485 01:09:04,904 --> 01:09:06,340 >> İZLEYİCİ: derlenmiş değil. 1486 01:09:06,340 --> 01:09:10,470 >> DAVIN: anlamı nedir derlenmiş değil? 1487 01:09:10,470 --> 01:09:11,392 Evet? 1488 01:09:11,392 --> 01:09:15,336 >> İZLEYİCİ: Sen yok kodu yeniden yapılandırılması 1489 01:09:15,336 --> 01:09:18,294 için hazır olsun Bilgisayar çalıştırmak için. 1490 01:09:18,294 --> 01:09:23,144 Sadece zamanında almış yürütme ve bilgisayar [duyulamaz]. 1491 01:09:23,144 --> 01:09:25,560 DAVIN: Evet, bu yüzden gidiyor Bir tercüman geçer. 1492 01:09:25,560 --> 01:09:26,750 Ama haklısın. 1493 01:09:26,750 --> 01:09:28,319 Yani asla gidiyoruz Doğru, derlemek için? 1494 01:09:28,319 --> 01:09:30,399 Ne zaman yaptıklarını senin PHP ve JavaScript kodu, 1495 01:09:30,399 --> 01:09:31,365 Eğer derleme denir asla. 1496 01:09:31,365 --> 01:09:33,779 Sen gibi bir şey hiç aramadın yapmak veya böyle bir şey. 1497 01:09:33,779 --> 01:09:34,800 O yorumlanır çünkü budur. 1498 01:09:34,800 --> 01:09:37,319 Yani tarayıcısı üzerinden gider her zaman, bir tercüman geçer. 1499 01:09:37,319 --> 01:09:40,370 Ve bu yorumlamak için gidiyor Sadece hemen sizin için gerçek zamanlı olarak. 1500 01:09:40,370 --> 01:09:43,770 Yani bazı pozitif ve negatif nelerdir yorumlanmış bir dil olması için 1501 01:09:43,770 --> 01:09:45,258 ve derlenmiş bir dil olan? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 Peki ne oldu, evet compiling--? 1504 01:09:50,540 --> 01:09:52,444 >> İZLEYİCİ: yorumlanır yavaştır. 1505 01:09:52,444 --> 01:09:53,319 DAVIN: hangi anlamda? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> İZLEYİCİ: Senden sonra derlemek, sen yok 1508 01:09:59,091 --> 01:10:04,400 çalıştırmak için herhangi bir ekstra adımlar yapmak o, bu [inaudible] ise. 1509 01:10:04,400 --> 01:10:05,570 >> DAVIN: Sağ, mükemmel. 1510 01:10:05,570 --> 01:10:08,386 Yani sen ne dedi temelde bu derleme, 1511 01:10:08,386 --> 01:10:10,760 Eğer derleme yaparken, bir var ayarlıyoruz maliyetleri çok, değil mi? 1512 01:10:10,760 --> 01:10:11,760 Bunu derlemek için gidiyoruz. 1513 01:10:11,760 --> 01:10:13,750 Ama bunu derlemek sonra, derleyici optimize edecek. 1514 01:10:13,750 --> 01:10:14,840 Bu hızlı olacak. 1515 01:10:14,840 --> 01:10:16,170 Bu temelde gidiyor o olabilir gibi hızlı olmak. 1516 01:10:16,170 --> 01:10:18,830 Seni asla yorumlama ile O ayarlıyoruz maliyeti var. 1517 01:10:18,830 --> 01:10:22,260 Aksine, biraz daha yavaş olacak Bunu yorumlamak her zaman. 1518 01:10:22,260 --> 01:10:24,940 Ve sen sahip gidiyoruz o her zaman yorumlamak. 1519 01:10:24,940 --> 01:10:27,114 Yani bu sahip yerine bir kez maliyeti, şimdi sen 1520 01:10:27,114 --> 01:10:29,530 yorumlamak zorunda olacak Her zaman sayfası vermektedir. 1521 01:10:29,530 --> 01:10:31,890 >> Peki tercümanlar çünkü iyi bunu derlemek zorunda değilsiniz, 1522 01:10:31,890 --> 01:10:33,980 ama onlar her kötü konum bu, sayfa yükler zaman 1523 01:10:33,980 --> 01:10:35,771 zorunda olacak Bu JavaScript yorumlamak. 1524 01:10:35,771 --> 01:10:40,520 Ve biraz daha yavaş çalışmasına gidiyor bunu derlemek için olsaydı daha. 1525 01:10:40,520 --> 01:10:43,044 Eğer, oh communicate-- beklemek verir. 1526 01:10:43,044 --> 01:10:44,960 Işlemek için kullanılır içerik ve görünüş. 1527 01:10:44,960 --> 01:10:46,043 Biz sadece bu konuda konuştuk. 1528 01:10:46,043 --> 01:10:47,250 Bu DOM kullanır. 1529 01:10:47,250 --> 01:10:49,930 AJAX, biz içine alırsınız Biraz AJAX. 1530 01:10:49,930 --> 01:10:51,520 Ve sonra, istemci tarafı. 1531 01:10:51,520 --> 01:10:53,110 Yani PHP sunucu tarafı. 1532 01:10:53,110 --> 01:10:54,360 JavaScript istemci tarafı. 1533 01:10:54,360 --> 01:10:57,780 Bu olumlu nelerdir? 1534 01:10:57,780 --> 01:10:58,280 Onu diyor. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 Bu doğru, daha hızlı? 1537 01:11:02,780 --> 01:11:05,282 Daha hızlı olduğunu amaçlara yönelik zorunda değilsiniz çünkü. 1538 01:11:05,282 --> 01:11:07,490 Sen iletişim zorunda değilsiniz Bazı diğer cihazla. 1539 01:11:07,490 --> 01:11:08,790 Sadece üzerinde iseniz sizin İstemci, asla değilsin 1540 01:11:08,790 --> 01:11:11,280 gitmek zorunda olacak ve sunucuda ne olduğunu görmek 1541 01:11:11,280 --> 01:11:13,150 ve daha sonra rapor ya böyle bir şey. 1542 01:11:13,150 --> 01:11:15,410 Yani istemci tarafında eğilimi biraz daha hızlı. 1543 01:11:15,410 --> 01:11:17,910 >> Gabe: Evet, ama bu PHP anlamına gelmez 1544 01:11:17,910 --> 01:11:20,440 JavaScript daha hızlı veya benzeri bir şey. 1545 01:11:20,440 --> 01:11:23,270 Aynı içinde tür koşmak Hız ikisi de çünkü 1546 01:11:23,270 --> 01:11:24,490 yorumlanmış diller. 1547 01:11:24,490 --> 01:11:26,680 yavaş şey Burada talebidir. 1548 01:11:26,680 --> 01:11:28,870 Yani aslında gidiyoruz Brezilya üzerinden tüm yol 1549 01:11:28,870 --> 01:11:31,460 bazı bilgiler almak için orada yaşıyor. 1550 01:11:31,460 --> 01:11:34,590 Ama PHP ve JavaScript, onlar tür aynı hızda çalışır. 1551 01:11:34,590 --> 01:11:37,930 Bu değil biridir bulunuyor diğerinden daha hızlı. 1552 01:11:37,930 --> 01:11:40,600 Burada bu, aynı zamanda, hile soru. 1553 01:11:40,600 --> 01:11:47,338 Yani JavaScript olur asla doğru ya da yanlış makine kodu,? 1554 01:11:47,338 --> 01:11:48,590 >> İZLEYİCİ: Yanlış. 1555 01:11:48,590 --> 01:11:49,090 Gabe: Yanlış. 1556 01:11:49,090 --> 01:11:51,298 Bu makine haline vardır kod makine kodu çünkü 1557 01:11:51,298 --> 01:11:53,210 Tek şey makinesi anlar. 1558 01:11:53,210 --> 01:11:55,800 Derlenmiş değil olsa bile, hala makine kodu olur 1559 01:11:55,800 --> 01:11:59,120 tercüman sadece çünkü satır satır gider bir program 1560 01:11:59,120 --> 01:12:02,170 ve içine satır dönüşümleri şey bilgisayar anlar. 1561 01:12:02,170 --> 01:12:02,825 TAMAM MI? 1562 01:12:02,825 --> 01:12:03,325 Serin. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> DAVIN: Burada sadece çok temel Dünya JavaScript programı merhaba. 1565 01:12:12,890 --> 01:12:15,590 Eğer bu gördüm ve-- Yani bilmiyorum. 1566 01:12:15,590 --> 01:12:17,630 Ama sadece burada HTML var. 1567 01:12:17,630 --> 01:12:21,020 Ve yerine aslında koyarak Script etiketleri JavaScript, 1568 01:12:21,020 --> 01:12:22,810 böylece normalde kafasına koymak istiyorum. 1569 01:12:22,810 --> 01:12:24,030 Sen komut dosyası etiketleri var. 1570 01:12:24,030 --> 01:12:24,870 Orada bırakın. 1571 01:12:24,870 --> 01:12:28,350 Burada yaptık hepimiz in-- bağladıysanız olduğu bu yüzden bir JavaScript dosyası bağlantılı ettik 1572 01:12:28,350 --> 01:12:29,137 böyle. 1573 01:12:29,137 --> 01:12:30,470 Ve tüm bu, doğru yaptık? 1574 01:12:30,470 --> 01:12:34,740 Peki ne zaman jQuery ve kullandığınız Geçen p-set underscore.js, 1575 01:12:34,740 --> 01:12:38,700 Eğer kod up ton yok script etiketleri, kafanın içinde. 1576 01:12:38,700 --> 01:12:41,415 Bunu yapmak, ancak bunun yerine olabilir sadece bunu bağlıyoruz. 1577 01:12:41,415 --> 01:12:43,540 Ve sen bunu bağlıyoruz Sadece CSS ile yapmak gibi. 1578 01:12:43,540 --> 01:12:50,186 Sadece yapar bu yüzden daha kolay bu yüzden okumak 1.000 hatları uzun gibi değildir kodunuzu 1579 01:12:50,186 --> 01:12:52,310 fonksiyonların ton olduğu Kullandığınız olabilir. 1580 01:12:52,310 --> 01:12:53,518 >> Bunun yerine, sadece onu bağlamak. 1581 01:12:53,518 --> 01:12:55,050 Onu compartmentalizes. 1582 01:12:55,050 --> 01:13:00,110 Bazı başlık dosyası yazma gibi, ve Daha sonra C bu başlık dosyasını dahil 1583 01:13:00,110 --> 01:13:01,620 Sadece bu gibi düşün. 1584 01:13:01,620 --> 01:13:02,680 Peki bu ne işe yarıyor? 1585 01:13:02,680 --> 01:13:04,560 Peki, bu çalıştırmak için gidiyor. 1586 01:13:04,560 --> 01:13:05,410 Bu uyarmak için gidiyor. 1587 01:13:05,410 --> 01:13:08,020 Yani biraz almak için gidiyoruz denilen merhaba dünya açılır. 1588 01:13:08,020 --> 01:13:11,420 Hızlı bir soru, sadece aklı kontrol, böylece, vücutta burada görmek 1589 01:13:11,420 --> 01:13:13,160 Burada beden, HTML söylüyorlar. 1590 01:13:13,160 --> 01:13:14,080 Ne önce gelir? 1591 01:13:14,080 --> 01:13:16,864 Ben burada vücut, HTML görüyor musunuz, ya da ben ilk uyarı görüyorum? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> İZLEYİCİ: Uyarı. 1594 01:13:20,820 --> 01:13:21,470 >> DAVIN: Sağ. 1595 01:13:21,470 --> 01:13:22,110 O uyarı diyor. 1596 01:13:22,110 --> 01:13:22,610 Neden? 1597 01:13:22,610 --> 01:13:24,470 >> İZLEYİCİ: Çünkü sen yukarıdan aşağıya gidin. 1598 01:13:24,470 --> 01:13:25,600 >> DAVIN: Evet. 1599 01:13:25,600 --> 01:13:26,100 Mükemmel. 1600 01:13:26,100 --> 01:13:29,207 Bu yüzden size üst gitmek, diyor kesinlikle doğru alt. 1601 01:13:29,207 --> 01:13:30,790 Sen yukarıdan aşağıya doğru gidiyoruz. 1602 01:13:30,790 --> 01:13:34,790 Ve JavaScript, jQuery, bir var gibi Onload, ya da hazır fonksiyonu, 1603 01:13:34,790 --> 01:13:38,030 ve bu Tamam, bekleyin, diyor Bu HTML tüm yüklendikten. 1604 01:13:38,030 --> 01:13:39,580 Ve sonra, JavaScript arayın. 1605 01:13:39,580 --> 01:13:42,190 Burada, bu yok çünkü ne olacak ilk şey 1606 01:13:42,190 --> 01:13:43,920 bu yukarıdan aşağıya doğru gidecek olan. 1607 01:13:43,920 --> 01:13:46,310 O JS vurmak için gidiyor çağrı, bu uyarmak için gidiyor. 1608 01:13:46,310 --> 01:13:49,510 Bundan sonra Tamam 'ı tıklatın, Bu uyarı uzağa gider. 1609 01:13:49,510 --> 01:13:53,600 Sonra göstermek için gidiyor Burada vücut HTML. 1610 01:13:53,600 --> 01:13:54,590 Güzel. 1611 01:13:54,590 --> 01:14:00,880 >> Tamam, bu yüzden sadece gerçek hızlı yazma JavaScript süper hızlı. 1612 01:14:00,880 --> 01:14:02,710 Ilan için değişken, var adı. 1613 01:14:02,710 --> 01:14:07,070 Yani C, sen var, int i var o tip ne tür ilan. 1614 01:14:07,070 --> 01:14:08,040 PHP, $. 1615 01:14:08,040 --> 01:14:08,755 JavaScript, var. 1616 01:14:08,755 --> 01:14:09,630 Biz bu konuda konuştuk. 1617 01:14:09,630 --> 01:14:11,020 Pekala, gidelim. 1618 01:14:11,020 --> 01:14:12,510 >> Döngüler, aynı şey. 1619 01:14:12,510 --> 01:14:14,230 Aynı şey. 1620 01:14:14,230 --> 01:14:18,165 Fonksiyon bildirimleri, böylece sadece C gördüm gibi 1621 01:14:18,165 --> 01:14:21,290 Farklı olan tek şey, bu nedenle zaman olduğu Eğer diğer programlama dilleri olsun, 1622 01:14:21,290 --> 01:14:24,780 gibi 51 sonraki dönem alırken ve sen ocaml ile yapıyoruz 1623 01:14:24,780 --> 01:14:26,690 Eğer anonim fonksiyonları ile başa çıkabilirim. 1624 01:14:26,690 --> 01:14:28,240 Yani burada ne var tam olarak. 1625 01:14:28,240 --> 01:14:31,560 Yani toplam koymak istiyorum, toplam değeri çeşit. 1626 01:14:31,560 --> 01:14:33,870 Ama sadece bunu bir kez yapıyor olabilir. 1627 01:14:33,870 --> 01:14:37,310 Eğer işlev aramak istemiyorum Yani toplamı, bunu bir işlev bildirimi vermek. 1628 01:14:37,310 --> 01:14:39,830 Bunun yerine, sadece bunu kullanmak bir anonim işlev olarak. 1629 01:14:39,830 --> 01:14:42,469 Ve bu çok gördüm. 1630 01:14:42,469 --> 01:14:44,510 Sen bir örnek göreceksiniz Bir kaç slaytlar bu. 1631 01:14:44,510 --> 01:14:45,597 Evet, biz göreceğiz. 1632 01:14:45,597 --> 01:14:46,430 Gabe: İyi bir soru. 1633 01:14:46,430 --> 01:14:50,660 Eğer kullanmak isteyebilirsiniz zaman Burada bir anonim işlev? 1634 01:14:50,660 --> 01:14:54,111 Temelde, ne zaman bir şey istiyorum, bir olay gibi, gerçekleşmesi. 1635 01:14:54,111 --> 01:14:55,860 Yani fare olduğunda tıklandığında, örneğin, 1636 01:14:55,860 --> 01:14:57,790 Eğer bazı fonksiyon çağrılacak istiyorum. 1637 01:14:57,790 --> 01:15:00,570 Yani olaya geçmek işleyici, sen, olaya geçmek 1638 01:15:00,570 --> 01:15:02,870 tür, fonksiyon bu Eğer çağrılacak istiyorum. 1639 01:15:02,870 --> 01:15:04,710 Ve ne geçirerek sonunda gibidir 1640 01:15:04,710 --> 01:15:08,757 Günün sadece bir işaretçi için fonksiyonu bu talimat,. 1641 01:15:08,757 --> 01:15:11,090 Yani bunu geçiyoruz gibi değil tüm kod, sadece 1642 01:15:11,090 --> 01:15:12,173 işleve bir işaretçi. 1643 01:15:12,173 --> 01:15:17,871 Ve sonra, ne zaman birileri tıkladığında fare, o işlev çağrılır. 1644 01:15:17,871 --> 01:15:22,340 >> DAVIN: Diziler, size böylece Bir dizi beyanı var. 1645 01:15:22,340 --> 01:15:23,990 Ardından, bir dizi şeyler koymak için. 1646 01:15:23,990 --> 01:15:25,769 Gerçek hızlı, bu ne çıktı olacak? 1647 01:15:25,769 --> 01:15:27,060 Üçüncü unsur ne olacak? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> İZLEYİCİ: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> DAVIN: Sağ, olurdu "JS." 1651 01:15:33,940 --> 01:15:35,760 Bekle, geri dönmek. 1652 01:15:35,760 --> 01:15:37,100 Uzunluğu nedir? 1653 01:15:37,100 --> 01:15:38,117 >> İZLEYİCİ: Üç. 1654 01:15:38,117 --> 01:15:38,950 DAVIN: Üç, değil mi? 1655 01:15:38,950 --> 01:15:40,210 Tam olarak ne düşündüğünü. 1656 01:15:40,210 --> 01:15:42,072 Tamam, şimdi gidin. 1657 01:15:42,072 --> 01:15:43,530 Diziler, onlara bir şeyler ekleyebilirsiniz. 1658 01:15:43,530 --> 01:15:45,395 Yani ötesine gidebilir başlangıç ​​sınırları. 1659 01:15:45,395 --> 01:15:46,740 Sadece bir şey akılda tutmak. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, onlar biraz konum şeyler açısından biraz daha bağışlayıcı 1661 01:15:49,760 --> 01:15:50,570 böyle. 1662 01:15:50,570 --> 01:15:54,260 Nesneler, çok gibi yapılar C, çok 1663 01:15:54,260 --> 01:15:56,590 PHP ilişkisel diziler gibi. 1664 01:15:56,590 --> 01:15:58,720 Tüm bu deneyim yaşadım. 1665 01:15:58,720 --> 01:16:01,880 Eğer JSON geçiyoruz JSON, Yani ileri ve geri p-set sekiz, 1666 01:16:01,880 --> 01:16:03,260 Bu nesne var. 1667 01:16:03,260 --> 01:16:06,290 >> Yani evet, örnek, gerçek hızlı bir örnek. 1668 01:16:06,290 --> 01:16:07,880 Burada bir amacıdır. 1669 01:16:07,880 --> 01:16:12,700 Eğer bu başvuru yolu Nesne, hızlı, böylece sadece gerçek, 1670 01:16:12,700 --> 01:16:18,630 Diyelim ki bulmak istedim diyelim üzerinden, tamam, ders nedir? 1671 01:16:18,630 --> 01:16:20,681 Ve işte nesne adı CS50 olduğunu. 1672 01:16:20,681 --> 01:16:23,180 Ve sonra ben bir ilişkilendirilebilir olsaydı dizi, ben bunu nasıl yapardın? 1673 01:16:23,180 --> 01:16:24,580 Ben sağ, bir anahtar kullanarak olacak? 1674 01:16:24,580 --> 01:16:26,030 Yani dizinin adı var. 1675 01:16:26,030 --> 01:16:30,160 Ben, dirsek, tırnak, anahtar son tırnak, son aparatı, 1676 01:16:30,160 --> 01:16:33,610 ve o referans olacak Benim ilişkisel dizi içinde eleman. 1677 01:16:33,610 --> 01:16:37,646 Nasıl başvurulan yapmak Benim nesne içindeki ders? 1678 01:16:37,646 --> 01:16:39,170 Herkes biliyor musun? 1679 01:16:39,170 --> 01:16:40,622 >> İZLEYİCİ: [duyulamaz]. 1680 01:16:40,622 --> 01:16:41,784 >> DAVIN: Ne oluyor? 1681 01:16:41,784 --> 01:16:42,700 HEDEF KİTLE: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 DAVIN: Sağ, evet. 1683 01:16:43,510 --> 01:16:45,320 Yani CS50.course. 1684 01:16:45,320 --> 01:16:48,770 Yani yol şeyleri referans JSON nesnesi içinde bir nokta ile. 1685 01:16:48,770 --> 01:16:53,114 >> İZLEYİCİ: Ayrıca dizi sözdizimini kullanabilirsiniz. 1686 01:16:53,114 --> 01:16:54,050 >> DAVIN: İnce, tamam. 1687 01:16:54,050 --> 01:16:57,544 >> Gabe: Ayrıca CS50 konsolu kullanabilirsiniz, tırnak işaretleri gibi dize. 1688 01:16:57,544 --> 01:16:59,210 HEDEF KİTLE: Ben PHP aynı olduğunu düşünüyorum. 1689 01:16:59,210 --> 01:17:00,293 Gabe: Aynı şey. 1690 01:17:00,293 --> 01:17:02,487 DAVIN: Güzel! 1691 01:17:02,487 --> 01:17:03,945 Ama bu başka yerlerde göreceğiz. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 Evet, bu yüzden devam edin. 1694 01:17:10,480 --> 01:17:13,330 Bu sadece ne dedi. 1695 01:17:13,330 --> 01:17:17,840 JavaScript jQuery örnek haline Yani. 1696 01:17:17,840 --> 01:17:19,440 Yani bu benim DOM, değil mi? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 Gerçek hızlı, ben var bir Baş, merhaba dünya, vücut. 1699 01:17:25,410 --> 01:17:26,160 Ben bir düğme var. 1700 01:17:26,160 --> 01:17:27,870 Bu, "beni itmek" diyor o yüzden itmek istiyorum. 1701 01:17:27,870 --> 01:17:29,745 Ve ben bir şey yapmak istiyorum o tıklandığında. 1702 01:17:29,745 --> 01:17:31,220 Doğru, sonraki. 1703 01:17:31,220 --> 01:17:34,630 >> Sağ, bu yüzden bu benim JavaScript. 1704 01:17:34,630 --> 01:17:37,790 Yani jQuery sadece daha kolay yolu JavaScript yazmak için. 1705 01:17:37,790 --> 01:17:40,920 Bu yüzden, ben göstermek için gidiyorum ne sonraki, jQuery olacak 1706 01:17:40,920 --> 01:17:41,930 özdeştir. 1707 01:17:41,930 --> 01:17:43,990 Yani aynı şeyleri yapacağız. 1708 01:17:43,990 --> 01:17:45,974 Sadece jQuery biraz daha kolay olma eğilimindedir. 1709 01:17:45,974 --> 01:17:47,140 İnsanlar daha çok seviyorum eğilimindedir. 1710 01:17:47,140 --> 01:17:48,390 Bu işlevsellik bir yeri vardır. 1711 01:17:48,390 --> 01:17:49,830 Yani insanlar jQuery kullanmak eğilimindedir. 1712 01:17:49,830 --> 01:17:53,270 Tüm son p-sette jQuery kullandı. 1713 01:17:53,270 --> 01:17:54,270 Peki bu ne yapacak? 1714 01:17:54,270 --> 01:17:56,580 Ne olacak bu yüzden JavaScript-- Bu JavaScript sadece düz olduğunu. 1715 01:17:56,580 --> 01:17:57,430 Bu ne yapacak? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 Ne yapacağız? 1718 01:18:03,450 --> 01:18:04,890 >> Yani ilk pencere onload bakın. 1719 01:18:04,890 --> 01:18:05,390 Doğru? 1720 01:18:05,390 --> 01:18:06,640 Bu yüzden daha önce görmedim. 1721 01:18:06,640 --> 01:18:09,380 Yani bu beklemek için gidiyor Tüm pencere yükleri kadar. 1722 01:18:09,380 --> 01:18:12,770 Bu yüzden beklemek için gidiyor HTML, tüm görüntüleri yük 1723 01:18:12,770 --> 01:18:13,770 önce bir şey yok. 1724 01:18:13,770 --> 01:18:16,050 Yani bizim DOM yüklendikten diyelim. 1725 01:18:16,050 --> 01:18:17,270 Her şey var. 1726 01:18:17,270 --> 01:18:19,080 Sonra ne olacak ki? 1727 01:18:19,080 --> 01:18:19,922 Evet? 1728 01:18:19,922 --> 01:18:22,880 >> İZLEYİCİ: Düğme görünür. 1729 01:18:22,880 --> 01:18:25,201 >> DAVIN: düğmesi zaten var. 1730 01:18:25,201 --> 01:18:26,700 Evet, bu yüzden zaten orada düğme en. 1731 01:18:26,700 --> 01:18:31,190 Ama bu, söyleyecek Tamam, ben butonuna tıklarsanız, 1732 01:18:31,190 --> 01:18:33,650 böylece düğme zaten var Orada, HTML etiketi gibi. 1733 01:18:33,650 --> 01:18:35,980 Bekle, gerçek hızlı geri dönün. 1734 01:18:35,980 --> 01:18:39,470 Bu etiket hakkınız burada Zaten bir düğme olacak. 1735 01:18:39,470 --> 01:18:40,810 Bir düğme zaten var. 1736 01:18:40,810 --> 01:18:44,120 Ama sonra, JavaScript etiketi, burada, 1737 01:18:44,120 --> 01:18:46,160 Tamam, ben istiyorum, diyor No elemanı almak için, 1738 01:18:46,160 --> 01:18:50,300 böylece arama düğmesi sadece Tamam, ben istiyorum, diyor o düğmeye bu değişken eşleştirmek için. 1739 01:18:50,300 --> 01:18:53,120 Yani bu değişken sadece bir olduğunu Bu düğmeye erişmek için kolay bir yol. 1740 01:18:53,120 --> 01:18:57,300 Bunu tıklarsanız Ve ben, tamam, demek düğmesi, o öğeyi tıklatın eğer öyleyse, 1741 01:18:57,300 --> 01:18:59,560 ve bu element anlamına gelir düğmesi, bunu tıklarsanız, 1742 01:18:59,560 --> 01:19:00,875 Sonra ben bir işlevi çağırmak istiyorum. 1743 01:19:00,875 --> 01:19:03,500 İşte o isimsiz biri hakkında konuşuyorduk fonksiyonları. 1744 01:19:03,500 --> 01:19:04,840 >> Sadece bazı işlevini çağırın. 1745 01:19:04,840 --> 01:19:08,840 Bu işlev içinde, temelde bir şey biz bir sürü uyarı gördüm. 1746 01:19:08,840 --> 01:19:10,477 Sen arama düğmesini tıklatın. 1747 01:19:10,477 --> 01:19:12,060 Bu temelde bir düğme var olacak. 1748 01:19:12,060 --> 01:19:13,040 Bunu tıklayın. 1749 01:19:13,040 --> 01:19:14,040 O uyarı olsun. 1750 01:19:14,040 --> 01:19:14,850 X dışarı. 1751 01:19:14,850 --> 01:19:15,754 Işte bu. 1752 01:19:15,754 --> 01:19:16,254 Evet? 1753 01:19:16,254 --> 01:19:21,980 >> İZLEYİCİ: Yani koyarsanız komut HTML'nize [duyulamaz], komut etiketi? 1754 01:19:21,980 --> 01:19:24,300 >> DAVIN: Senaryoyu koyabilirsiniz baş etiket düz 1755 01:19:24,300 --> 01:19:30,667 Bu onload var çünkü. 1756 01:19:30,667 --> 01:19:32,000 Bu bir tık olması da bu. 1757 01:19:32,000 --> 01:19:34,166 Bu yüzden beklemek için gidiyor Eğer bir şey için tıklayınız. 1758 01:19:34,166 --> 01:19:37,470 Ama onload güvenli olması için sadece olduğunu yapmak HTML içine her şeyin yükler 1759 01:19:37,470 --> 01:19:38,170 önceden. 1760 01:19:38,170 --> 01:19:39,247 Evet? 1761 01:19:39,247 --> 01:19:40,330 Bir şey söylemek ister misin? 1762 01:19:40,330 --> 01:19:41,080 >> Gabe: [duyulamaz]. 1763 01:19:41,080 --> 01:19:42,485 DAVIN: Evet. 1764 01:19:42,485 --> 01:19:45,426 >> İZLEYİCİ: Yani onload önler Değişken arama butonuna tanımlayan 1765 01:19:45,426 --> 01:19:49,930 Sadece document.getElementById söyleyerek Arama düğmesi nokta [duyulamaz]. 1766 01:19:49,930 --> 01:19:52,320 >> DAVIN: Kesinlikle, ama sonra dize sadece büyük olur. 1767 01:19:52,320 --> 01:19:55,553 Kesinlikle, bu yüzden bu sadece etmektir evet, sizin için kolaylaştırır. 1768 01:19:55,553 --> 01:19:56,053 Evet? 1769 01:19:56,053 --> 01:19:57,886 >> İZLEYİCİ: biz mi window.onload oluşturmak? 1770 01:19:57,886 --> 01:19:58,951 Ya document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> DAVIN: Evet vardır. 1772 01:20:00,590 --> 01:20:02,094 Evet, orada kontrol edilir. 1773 01:20:02,094 --> 01:20:03,710 >> Gabe: onları umurumda değil için. 1774 01:20:03,710 --> 01:20:06,970 >> DAVIN: Tamam, ben gidiyorum Zaten söylemek. 1775 01:20:06,970 --> 01:20:11,005 Yani temelde, sadece genel olarak, yani window.onload tüm senin DOM kadar bekler 1776 01:20:11,005 --> 01:20:12,180 HTML, yükler. 1777 01:20:12,180 --> 01:20:13,513 Bu görüntüleri yük kadar bekler. 1778 01:20:13,513 --> 01:20:14,930 Her şeyi yükler kadar bekler. 1779 01:20:14,930 --> 01:20:18,410 document.ready, sadece DOM yükler kadar bekler. 1780 01:20:18,410 --> 01:20:22,190 HTML kez tüm orada, bir kez DOM var, çalışmaya başlar. 1781 01:20:22,190 --> 01:20:23,400 Tek fark bu. 1782 01:20:23,400 --> 01:20:24,700 >> Gabe: Hızlı aklı burada kontrol edin. 1783 01:20:24,700 --> 01:20:29,060 Yani bu tür görülebilir kod satırı gibi, değil mi? 1784 01:20:29,060 --> 01:20:33,600 Bu window.onload Çünkü şeyler bir grup eşittir. 1785 01:20:33,600 --> 01:20:39,030 JavaScript okuduğunda bu, doğru veya yanlış, fonksiyon idam olur. 1786 01:20:39,030 --> 01:20:40,020 Yanlış. 1787 01:20:40,020 --> 01:20:40,920 TAMAM MI? 1788 01:20:40,920 --> 01:20:44,470 Burada ne olur, sadece geçen ediyoruz bir anonim fonksiyonlar olarak bu işlev 1789 01:20:44,470 --> 01:20:45,300 window.onload için. 1790 01:20:45,300 --> 01:20:48,480 Ve sonra ne zaman gidiyor aslında idam almak için? 1791 01:20:48,480 --> 01:20:49,600 Ne zaman penceresi yükler. 1792 01:20:49,600 --> 01:20:50,420 Bu bir olay. 1793 01:20:50,420 --> 01:20:52,460 Yani biz konum jus t şey Doğru, daha önce bahsediyoruz? 1794 01:20:52,460 --> 01:20:54,580 Yani olay gerçekleştiğinde, fonksiyonu olur. 1795 01:20:54,580 --> 01:20:55,746 OnClick ile aynı şey. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> DAVIN: Tamam, bu yüzden birileri aldı uzakta document.ready. 1798 01:21:03,130 --> 01:21:04,698 Ama bu tam same-- olacak 1799 01:21:04,698 --> 01:21:06,864 HEDEF KİTLE: Dolar işareti, bir document.ready olan. 1800 01:21:06,864 --> 01:21:07,710 Bu bir kısayol var. 1801 01:21:07,710 --> 01:21:08,501 >> DAVIN: Ah, yani? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 Tamam, bu yüzden bu aracı document.ready, kısayol. 1804 01:21:15,500 --> 01:21:19,660 Ancak bu window.onload aynıdır O küçük fark dışında 1805 01:21:19,660 --> 01:21:20,680 Sana bahsettiğim. 1806 01:21:20,680 --> 01:21:21,870 Ve bu jQuery olduğunu. 1807 01:21:21,870 --> 01:21:25,190 Yani bu aynı olup Bu JavaScript şey--. 1808 01:21:25,190 --> 01:21:29,500 Bu, bazı insanlar bunu düşünüyorum sadece-- olduğunu Bir daha hafif olarak, şık versiyonu 1809 01:21:29,500 --> 01:21:32,370 Bu işlevsellik bir sürü vardır Bu muhtemelen kullanarak olacak. 1810 01:21:32,370 --> 01:21:34,500 Yani bu aynı şeyi yapar. 1811 01:21:34,500 --> 01:21:37,110 >> Şeyler tür işaret Yani. 1812 01:21:37,110 --> 01:21:40,364 Başka bir örnek olarak, bu yüzden biz , document.getElementById vardı 1813 01:21:40,364 --> 01:21:42,280 bu yüzden bu kadar uzun oldu almak için gidiyor dize 1814 01:21:42,280 --> 01:21:44,290 o ne varsa kimliği ile eleman. 1815 01:21:44,290 --> 01:21:46,470 İşte tam burada, bu çağrı ile değiştirilir. 1816 01:21:46,470 --> 01:21:50,860 Yani, dolar işareti görmek o zaman alıntı, hashtag bakın. 1817 01:21:50,860 --> 01:21:52,370 Hashtag her zaman seçici olduğunu. 1818 01:21:52,370 --> 01:21:54,730 Tamam, bu bir kimlikle ilgisi yoktur, diyor. 1819 01:21:54,730 --> 01:21:56,120 Bir sınıf için seçici nedir? 1820 01:21:56,120 --> 01:21:57,190 >> İZLEYİCİ: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> DAVIN: Nokta, doğru. 1822 01:21:57,960 --> 01:22:01,950 Sadece için gidiyoruz Bir etiketi, ne olduğunu belirleyin? 1823 01:22:01,950 --> 01:22:03,310 Bu tam olarak, sadece etiketi. 1824 01:22:03,310 --> 01:22:05,560 Ve siz de, burada bu kullanabilirsiniz. 1825 01:22:05,560 --> 01:22:08,560 >> Gabe: Ve etikete göre, biz gibi demek div, örneğin, ya da baş. 1826 01:22:08,560 --> 01:22:11,500 >> DAVIN: Ya vücut veya p veya böyle bir şey, evet. 1827 01:22:11,500 --> 01:22:14,390 Yani burada, tamam, diyerek yerine document.getElementById, 1828 01:22:14,390 --> 01:22:16,500 Bu sadece aynı şeydir. 1829 01:22:16,500 --> 01:22:17,990 Sadece jQuery, daha kısa olduğunu. 1830 01:22:17,990 --> 01:22:19,860 Yani basit değil. 1831 01:22:19,860 --> 01:22:23,420 Öyleyse, artık onclick, sadece tıklayın. 1832 01:22:23,420 --> 01:22:26,320 jQuery fonksiyonu, bu işlevini çağırın. 1833 01:22:26,320 --> 01:22:27,580 Uyarı aynı olduğunu. 1834 01:22:27,580 --> 01:22:29,452 Bu yüzden biraz var küçük, ya da biraz 1835 01:22:29,452 --> 01:22:32,410 kısa, biraz bit-- insanlar düşünmek dışarı yazmak için biraz daha kolay, 1836 01:22:32,410 --> 01:22:34,600 kolay biraz anlamak için. 1837 01:22:34,600 --> 01:22:35,640 Ancak bu jQuery. 1838 01:22:35,640 --> 01:22:37,887 Bir sürü insan biraz olsun biraz karışık ve endişeli 1839 01:22:37,887 --> 01:22:40,220 ve onlar Tamam, jQuery, düşünmek JavaScript farklıdır. 1840 01:22:40,220 --> 01:22:42,136 Ben bu hatırlamak zorunda İki farklı şeyler. 1841 01:22:42,136 --> 01:22:42,740 Öyle değil. 1842 01:22:42,740 --> 01:22:45,315 Ben farklı sözdizimi, demek. 1843 01:22:45,315 --> 01:22:46,970 Ama jQuery JavaScript. 1844 01:22:46,970 --> 01:22:50,050 Sadece görünüşte var Daha iyi sürüm olduğunu 1845 01:22:50,050 --> 01:22:51,967 daha kolay olabilir İnsanlar kullanmanız anlıyoruz. 1846 01:22:51,967 --> 01:22:53,716 Gabe: Evet, olmak Dürüst, bu dolar işareti 1847 01:22:53,716 --> 01:22:57,240 jQuery gördüğünüz, bu sadece jQuery tanımlayan bir işlev adı. 1848 01:22:57,240 --> 01:22:58,614 Bu özel bir şey yok. 1849 01:22:58,614 --> 01:23:03,140 Bu bir işlevin sadece isim mi sadece dolar işaretini tanımlayabilirsiniz seviyorum. 1850 01:23:03,140 --> 01:23:05,670 >> DAVIN: Evet, bu yüzden bu konuda konuştuk. 1851 01:23:05,670 --> 01:23:06,680 Bazı yararlı şeyler. 1852 01:23:06,680 --> 01:23:10,414 Ben geri eski sınavlar bakıyordu. 1853 01:23:10,414 --> 01:23:13,080 Geçtiğimiz birkaç sınavlar, onlar var Bu gibi şeyler kullanmak zorunda kaldı. 1854 01:23:13,080 --> 01:23:15,230 Böylece document.ready, yani her şeyin en olun 1855 01:23:15,230 --> 01:23:17,410 sizden önce yüklenen şeyler yapmaya başlayabilirsiniz. 1856 01:23:17,410 --> 01:23:20,120 Bir kimliği seçin veya Bir sınıf, sadece istiyorum 1857 01:23:20,120 --> 01:23:24,020 Bazı sınıf, son teklifi nokta alıntı olacak. 1858 01:23:24,020 --> 01:23:26,580 Sen eğer öyleyse, Gönder Bir formu ve çağrı göndererek 1859 01:23:26,580 --> 01:23:28,830 formdan sonra bu işlev sunar. 1860 01:23:28,830 --> 01:23:34,210 Değer, o yüzden ben bir form vardı diyelim sunulması, bir kullanıcı adı gibi, bir e-posta, 1861 01:23:34,210 --> 01:23:34,950 her neyse. 1862 01:23:34,950 --> 01:23:36,010 Ben bir metin kutusu vardı. 1863 01:23:36,010 --> 01:23:37,670 Yani bu metin kutusuna yazarak kulüpler. 1864 01:23:37,670 --> 01:23:42,170 Peki, sen değerini almak istiyorsanız Bu metin kutusu dışında, sen nokta val kullanın. 1865 01:23:42,170 --> 01:23:44,050 Ve sonra, buraya, nokta HTML aynıdır 1866 01:23:44,050 --> 01:23:47,710 Belge nokta gibi getElementById nokta innerHTML. 1867 01:23:47,710 --> 01:23:50,890 Yani dönmek için gidiyor Eğer bu ID HTML. 1868 01:23:50,890 --> 01:23:55,080 Burada, sadece bazı kullanmak Kimlik ya da her türlü nokta HTML. 1869 01:23:55,080 --> 01:23:56,930 O elemanın HTML alırsınız. 1870 01:23:56,930 --> 01:24:00,130 Eğer bunu değiştirmek istedim HTML, bunu bir şey geçebilir. 1871 01:24:00,130 --> 01:24:05,600 Yani o nokta HTML gibi, ve istiyorum içinde, tırnak, yeni bir HTML ya da bir şey. 1872 01:24:05,600 --> 01:24:07,490 >> Gabe: Tamam, AJAX, böylece. 1873 01:24:07,490 --> 01:24:10,347 Ben gerçekten anlamak istiyorum AJAX gerçekten iyi. 1874 01:24:10,347 --> 01:24:12,430 Yani sana göre çocuklar istiyorum Gerçekten de AJAX anlıyorum. 1875 01:24:12,430 --> 01:24:14,221 Eğer bunu yaparsanız Çünkü, hemen hemen gidiyoruz 1876 01:24:14,221 --> 01:24:16,810 Her şeyi anlamak için HTTP ile ilgisi yoktur, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript hepsi çünkü AJAX birlikte geliyor. 1878 01:24:21,080 --> 01:24:25,130 AJAX dil değildir. 1879 01:24:25,130 --> 01:24:27,000 AJAX bir tekniktir. 1880 01:24:27,000 --> 01:24:31,690 Ve farklı araçlar çok kullanır. 1881 01:24:31,690 --> 01:24:35,090 AJAX açılımı asenkron JavaScript, XML. 1882 01:24:35,090 --> 01:24:36,730 Yani yöntem, dil, veri. 1883 01:24:36,730 --> 01:24:40,610 >> Kullandığımız ana dili Yani AJAX'ta her tetiklemek için 1884 01:24:40,610 --> 01:24:42,830 ve her şeyi idare etmek Daha sonra JavaScript olduğunu. 1885 01:24:42,830 --> 01:24:45,160 O ilgilidir yüzden JavaScript çok yakın. 1886 01:24:45,160 --> 01:24:49,810 Ve sonra eşzamansızdır biz bunu yapmıyoruz çünkü 1887 01:24:49,810 --> 01:24:51,980 tek seferde biz sayfa yüklenirken yaparken. 1888 01:24:51,980 --> 01:24:57,190 Bu, biz bir şey paralel tür şeyler. 1889 01:24:57,190 --> 01:24:59,725 ardındaki ana fikir, AJAX istediğiniz olduğunu 1890 01:24:59,725 --> 01:25:02,170 bazı bilgi almak için. 1891 01:25:02,170 --> 01:25:06,450 Örneğin, yeni yazdığınız Bir kullanıcı adı kayıt kullanıcı adı, 1892 01:25:06,450 --> 01:25:08,520 Benim kullanıcı adı abc123 olduğunu. 1893 01:25:08,520 --> 01:25:11,671 Ve sonra, sonunda Form, Gönder düğmesini zorunda. 1894 01:25:11,671 --> 01:25:14,420 Ve bu, sunucuya gitmek zorunda ve sonra, veritabanında kontrol 1895 01:25:14,420 --> 01:25:15,594 ABC123 zaten yoktur. 1896 01:25:15,594 --> 01:25:18,510 Zaten varsa Ve bu, diyor zaten veritabanında kullanıcı adı. 1897 01:25:18,510 --> 01:25:21,010 Ve onlar, sen doldurmak zorunda Tüm formda tekrar dışarı. 1898 01:25:21,010 --> 01:25:23,110 Ve gerçekten, gerçekten kötü oldu. 1899 01:25:23,110 --> 01:25:25,440 >> Ve sonra insanlar söylüyorlar, Tamam, neden biz sadece olamaz 1900 01:25:25,440 --> 01:25:29,560 sadece kontrol için küçük bir HTTP isteği yapmak Bu kullanıcı veritabanında olup olmadığını görmek için 1901 01:25:29,560 --> 01:25:32,080 Kullanıcı vardı önce tüm formu göndermek? 1902 01:25:32,080 --> 01:25:36,350 Yani örneğin, zaman Kullanıcı, ABC123 yazarak tamamlanır 1903 01:25:36,350 --> 01:25:39,660 Sadece sunucuya biraz gidelim bit ve sadece bir doğru veya yanlış olsun 1904 01:25:39,660 --> 01:25:43,080 görmek için sunucudan Bu, geçerli bir kullanıcı adı ya da değil. 1905 01:25:43,080 --> 01:25:49,250 Tamam, böylece ana biri günümüzde hala AJAX kullanır. 1906 01:25:49,250 --> 01:25:52,130 >> DAVIN: in, hızlı Yani gerçek jQuery Ajax çağrısı, 1907 01:25:52,130 --> 01:25:54,770 size delalet olabilir senkron olmak istiyorum. 1908 01:25:54,770 --> 01:25:56,330 Bunu yapmamalıyız. 1909 01:25:56,330 --> 01:25:57,640 Ama bunu yapabilirsiniz. 1910 01:25:57,640 --> 01:25:59,277 Eğer, yaptım Ve eğer ne olur? 1911 01:25:59,277 --> 01:26:01,610 Peki, örneğin, zaman konum haber ya da her türlü alıyorum, 1912 01:26:01,610 --> 01:26:05,464 Tarayıcınız sadece beklemek için gidiyor O, tüm çağrı tamamlanana kadar 1913 01:26:05,464 --> 01:26:08,130 yerine icar diğer do Sağ sonra işler tıklayın. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> Gabe: Artık geçen değil. 1916 01:26:17,115 --> 01:26:19,681 Aman Tanrım. 1917 01:26:19,681 --> 01:26:20,180 Maalesef! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 Evet. 1920 01:26:23,601 --> 01:26:25,350 "Geçmişte, istemci isteğine ihtiyaç 1921 01:26:25,350 --> 01:26:26,840 Bir web sitesinin tüm içeriği. " 1922 01:26:26,840 --> 01:26:28,210 Ben ne dedi. 1923 01:26:28,210 --> 01:26:30,070 Bu göndermek için bize izin verir Ek GET veya POST 1924 01:26:30,070 --> 01:26:32,140 kalmadan talepler Bizim tarayıcı yeniden. 1925 01:26:32,140 --> 01:26:34,806 Günün sonunda Yani, biz konum aslında bir HTTP isteklerini yapma 1926 01:26:34,806 --> 01:26:35,740 Burada JavaScript kullanarak. 1927 01:26:35,740 --> 01:26:39,700 Önce Çünkü, biz sadece JavaScript kullanılan Zaten gelen HTML değiştirmek için. 1928 01:26:39,700 --> 01:26:43,110 Ve şimdi, biz arabirim için kullanabilirsiniz yanı sıra, web sunucuları ile. 1929 01:26:43,110 --> 01:26:46,140 Bu durumda yol biz müşteri olması. 1930 01:26:46,140 --> 01:26:47,340 Davin bir istemci. 1931 01:26:47,340 --> 01:26:50,797 Ve o bütün JavaScript var HTML Çünkü çalışan dilsiz olduğunu. 1932 01:26:50,797 --> 01:26:51,630 JavaScript akıllı. 1933 01:26:51,630 --> 01:26:54,690 Yani davin Davin onun akıllı vardır bölüm ve onun aptal bir parçası. 1934 01:26:54,690 --> 01:26:57,590 O şimdi onun akıllı bölümünü kullanmak için gidiyor. 1935 01:26:57,590 --> 01:27:00,860 O JavaScript kullanmak için gidiyor isteğe göre, örneğin, 1936 01:27:00,860 --> 01:27:04,340 ABC123 olup olmadığını veri tabanı ya da değil. 1937 01:27:04,340 --> 01:27:08,450 >> Peki Davin, lütfen, sadece Bana bir HTTP isteği gönderin. 1938 01:27:08,450 --> 01:27:09,197 Teşekkür ederim. 1939 01:27:09,197 --> 01:27:10,530 Yani o sadece bir HTTP isteği gönderdi. 1940 01:27:10,530 --> 01:27:11,270 Bunu gördün mü? 1941 01:27:11,270 --> 01:27:14,700 Ve bu sadece aynı yolu Herhangi bir HTTP isteği gönderilir söyledi. 1942 01:27:14,700 --> 01:27:16,830 tarayıcı, Google Krom ya da bir şey, bir 1943 01:27:16,830 --> 01:27:19,570 Davin en olduğunu görmek için gidiyor bir HTTP isteği göndermek için çalışıyor, 1944 01:27:19,570 --> 01:27:20,930 biraz hm yardımcı olacak. 1945 01:27:20,930 --> 01:27:23,950 Ve bu gidecek sunucuya tüm yol. 1946 01:27:23,950 --> 01:27:27,370 Şimdi, sunucu sahip oluyor Burada PHP, ya da başka bir dil. 1947 01:27:27,370 --> 01:27:29,990 Sadece normal bir HTTP isteği gibi. 1948 01:27:29,990 --> 01:27:31,950 Oldukça fazla normal bir HTTP isteği var. 1949 01:27:31,950 --> 01:27:33,658 >> Sonra, sunucu Tamam, demek oluyor, 1950 01:27:33,658 --> 01:27:37,270 Davin olmadığını kontrol etmemi istiyor Bu abc123 veritabanında. 1951 01:27:37,270 --> 01:27:38,310 Modeli konuşmak gitmek. 1952 01:27:38,310 --> 01:27:41,310 modeli olmadığını söylüyor. abc123 iyi bir kullanıcı adıdır. 1953 01:27:41,310 --> 01:27:47,940 Ve sonra, web sunucusu gidiyor Dosyanın çeşit işlemek için PHP kullanın. 1954 01:27:47,940 --> 01:27:52,280 Bu anlamıyla sadece bir dosya olabilir Bu hayır "içinde" evet "içeren veya, 1955 01:27:52,280 --> 01:27:53,315 ya böyle bir şey. 1956 01:27:53,315 --> 01:27:54,190 Bu herhangi bir dosya olabilir. 1957 01:27:54,190 --> 01:27:57,080 Ben gidiyorum gibi >> Bu olabilir Davin bir ördek bir resim gönderin 1958 01:27:57,080 --> 01:28:01,200 bu veritabanında ise ve Bir hamster bir resim gönderin 1959 01:28:01,200 --> 01:28:02,420 veritabanında değilse. 1960 01:28:02,420 --> 01:28:04,294 Bu tür olurdu aptal, ama işe yarayacaktır. 1961 01:28:04,294 --> 01:28:07,030 Tamam, bu yüzden Davin bir ördek gönderin. 1962 01:28:07,030 --> 01:28:08,150 Davin bir ördek var. 1963 01:28:08,150 --> 01:28:13,330 Ve şimdi, kim gidiyor ördek işlemek için? 1964 01:28:13,330 --> 01:28:16,390 Davin akıllı bölümü yine, böylece JavaScript, değil mi? 1965 01:28:16,390 --> 01:28:18,620 JavaScript gönderdi istek, ve JavaScript 1966 01:28:18,620 --> 01:28:22,300 isteği almak için gidiyor ve bazı şeklinde yorumlamak. 1967 01:28:22,300 --> 01:28:26,630 >> Ve bu anlamda, bu gidiyor Sonra ben iyiyim ördek eğer, tamam, demek. 1968 01:28:26,630 --> 01:28:30,770 Hamster, o zaman ben gidiyorum Zaten hayır, kullanıcı adı, söylemek 1969 01:28:30,770 --> 01:28:31,970 veritabanında var. 1970 01:28:31,970 --> 01:28:33,845 Ama genelde, sen değilsin Bir ördek göndermek için gidiyoruz. 1971 01:28:33,845 --> 01:28:36,740 Sen göndermek için gidiyoruz biraz daha akıllı bir şey. 1972 01:28:36,740 --> 01:28:40,320 Ve ne kullanmak XML. 1973 01:28:40,320 --> 01:28:42,690 Daha da son zamanlarda, JSON kullanın. 1974 01:28:42,690 --> 01:28:45,629 JSON sadece JavaScript Nesne Gösterimi, hangi 1975 01:28:45,629 --> 01:28:47,670 temelde bir olsun bir Tüm JavaScript nesne. 1976 01:28:47,670 --> 01:28:50,820 Ve sadece gibi, bir dosyaya koydu Siz gördüğünü CS50 nesnesi. 1977 01:28:50,820 --> 01:28:53,090 Sen bir dosyaya koyun ve Eğer Davin bunu üzerinden göndermek. 1978 01:28:53,090 --> 01:28:55,850 >> Peki bu durumda, yapardım bir JavaScript nesnesi yapmak 1979 01:28:55,850 --> 01:28:59,570 ve sadece kullanıcı var, evet demek. 1980 01:28:59,570 --> 01:29:01,630 Ya da kullanıcı hayır, var. 1981 01:29:01,630 --> 01:29:02,810 Ve ona geri göndermek. 1982 01:29:02,810 --> 01:29:03,830 Ve neden JSON? 1983 01:29:03,830 --> 01:29:07,330 Kişi Çünkü kim bu alan oluyor 1984 01:29:07,330 --> 01:29:10,030 JavaScript kullanmak için gidiyor yanıtı işlemek için. 1985 01:29:10,030 --> 01:29:14,970 Ve JavaScript çok iyi çünkü çalışıyor JavaScript Object Notation denir. 1986 01:29:14,970 --> 01:29:15,470 Doğru? 1987 01:29:15,470 --> 01:29:19,660 Yani o sadece bir fonksiyonu çağırmak ve alabilirsiniz yanıtı bu güzel nesne. 1988 01:29:19,660 --> 01:29:22,890 Ve sonra, o olmadığını bilmek gidiyor Bu kullanıcı veritabanında veya değil. 1989 01:29:22,890 --> 01:29:25,230 Gördüğünüz Yani >> bunun tüm geliyor Birlikte web sunucusu, 1990 01:29:25,230 --> 01:29:28,450 ve daha sonra isteği bir HTTP var ve bir HTTP yanıtı ve her şeyi. 1991 01:29:28,450 --> 01:29:30,600 Yani emin olun çocuklar Bu AJAX arama anlamak 1992 01:29:30,600 --> 01:29:37,260 yardımcı olur çünkü tüm anlamak kavramların biz bahsediyoruz. 1993 01:29:37,260 --> 01:29:40,260 >> Yani burada bir örnek jQuery ile AJAX. 1994 01:29:40,260 --> 01:29:42,130 Ve burada, biz olsun JSON ile yapmak. 1995 01:29:42,130 --> 01:29:45,660 Bu yüzden bir almaya çalışırken değil Burada bir kedi veya bir ördek görüntüsü. 1996 01:29:45,660 --> 01:29:48,110 Biz JSON dosyasını almak için çalışıyoruz. 1997 01:29:48,110 --> 01:29:51,184 Ve sonra kadar bekleyin bitti nokta, bitti. 1998 01:29:51,184 --> 01:29:52,850 Ben cevap bekliyorum demektir. 1999 01:29:52,850 --> 01:29:54,180 Biraz zaman alabilir. 2000 01:29:54,180 --> 01:29:56,360 Sonra, küçük bir yükleme bakın. 2001 01:29:56,360 --> 01:29:59,340 Web sitenizde yapmak istiyorsanız. 2002 01:29:59,340 --> 01:30:01,440 O zaman yapılır, ve dot ne bitti ne olur? 2003 01:30:01,440 --> 01:30:04,040 Bir anonim geçmek fonksiyonu, sadece biz önce gördüm gibi. 2004 01:30:04,040 --> 01:30:07,800 Yapılan Çünkü sadece bir olay Bir fare ya da her neyse tıklayarak gibi, 2005 01:30:07,800 --> 01:30:08,710 jQuery için. 2006 01:30:08,710 --> 01:30:13,710 Yani bu fonksiyonu ile geçmek veri, metin, durum ve jqXHR. 2007 01:30:13,710 --> 01:30:15,790 Ve temelde, işte sadece bazı değişkenler 2008 01:30:15,790 --> 01:30:22,160 Eğer var sonra kullanabilirsiniz HTTP isteğinin durumu, 2009 01:30:22,160 --> 01:30:24,470 gidiyor veri size geri göndermek için. 2010 01:30:24,470 --> 01:30:28,740 O zaman daha sonra bunu yorumlayabilir ve onunla anlamlı bir şey yapmak. 2011 01:30:28,740 --> 01:30:30,240 Başarısız olursa, ne zaman başarısız olabilir? 2012 01:30:30,240 --> 01:30:33,780 Peki, ne zaman HTTP isteği verir Eğer böyle bir 500 falan. 2013 01:30:33,780 --> 01:30:37,420 Sonra, size söyleyecek Durum, oldu başarısızlık ne tür, 2014 01:30:37,420 --> 01:30:38,420 ve şeyler her türlü. 2015 01:30:38,420 --> 01:30:40,630 Sen emin olmalıyız Her iki davalarını, 2016 01:30:40,630 --> 01:30:42,770 aksi takdirde program deli gider. 2017 01:30:42,770 --> 01:30:45,820 >> DAVIN: Yani evet, bu tam olarak Eğer son p-sette ne gördüm. 2018 01:30:45,820 --> 01:30:49,720 Gerçek AJAX çağrı olsun JSON olduğunu. 2019 01:30:49,720 --> 01:30:50,587 Bu çağrı. 2020 01:30:50,587 --> 01:30:52,920 Ve sonra, nokta yapılır gibi başarılı ise o kontrol eder. 2021 01:30:52,920 --> 01:30:55,620 Başarılı olursa, istediğiniz veri ile bir şeyler yapmak. 2022 01:30:55,620 --> 01:30:59,290 Bunu geri almak JSON isteği verileri. 2023 01:30:59,290 --> 01:31:00,600 Yani geri almak budur. 2024 01:31:00,600 --> 01:31:04,470 Yani p-kümesinden hatırlıyorum eğer, size bir sürü veri dirsek gibiydi i 2025 01:31:04,470 --> 01:31:06,302 veya ne olursa olsun, nokta bağlantı veya başlık. 2026 01:31:06,302 --> 01:31:08,260 Geri ne olursa olsun geliyor Bu JSON gelen her türlü 2027 01:31:08,260 --> 01:31:11,020 alanlar, yani JSON nesne içinde Bu geri alıyoruz budur. 2028 01:31:11,020 --> 01:31:12,394 Veri geri alıyoruz budur. 2029 01:31:12,394 --> 01:31:15,510 Metin durumu, sadece bir şey bu Ne olduğunu bilmenizi sağlar. 2030 01:31:15,510 --> 01:31:20,570 Sonra, jqXHR, bu sadece jQuery XML HTTP isteği. 2031 01:31:20,570 --> 01:31:21,990 Bu sadece bir nesne gibi. 2032 01:31:21,990 --> 01:31:23,932 Ve sonra Gabe dediği gibi, başarısız. 2033 01:31:23,932 --> 01:31:27,140 Gabe: abc123 bizim küçük örnekte Bu veritabanında ise sadece kontrol etmek için 2034 01:31:27,140 --> 01:31:32,260 veya veri size bir şey olurdu değil Veri nokta kullanıcı adı varsa, yapacağını, 2035 01:31:32,260 --> 01:31:37,720 PHP için oluşturulan ne hangi veri nokta kullanıcı adı daha sonra, varsa, eğer 2036 01:31:37,720 --> 01:31:40,880 Ben uyarmak için gidiyorum, kullanıcı adı zaten var. 2037 01:31:40,880 --> 01:31:44,300 Else, sadece izin gidiyorum Kullanıcı formu doldurarak devam. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 Tamam, güvenlik, serin. 2040 01:31:50,820 --> 01:31:52,060 >> DAVIN: Beni ister misiniz? 2041 01:31:52,060 --> 01:31:54,500 >> Gabe: Ben bunu seviyorum. 2042 01:31:54,500 --> 01:31:57,680 Yani bir şey tanıdık görünüyor. 2043 01:31:57,680 --> 01:31:59,750 Biz neredeyse bitti. 2044 01:31:59,750 --> 01:32:02,670 Yani bu sadece örnek Siz sınıfta gördüm. 2045 01:32:02,670 --> 01:32:04,860 Burada argv1 kullanıyorlardı. 2046 01:32:04,860 --> 01:32:06,460 Bu bir komut satırı argümanı gibi. 2047 01:32:06,460 --> 01:32:09,270 Ve biz kopyalama mem konum büyüklüğü 12 bir tampon içine. 2048 01:32:09,270 --> 01:32:12,560 Burada sorun nedir? 2049 01:32:12,560 --> 01:32:13,660 Tampon taşması! 2050 01:32:13,660 --> 01:32:15,400 Biz boyutu 12 bir tampon var çünkü. 2051 01:32:15,400 --> 01:32:18,400 argv1 iki milyardan bir boyuta sahip olabilir. 2052 01:32:18,400 --> 01:32:19,960 Biz herhangi bir sınır denetimi yapmıyoruz. 2053 01:32:19,960 --> 01:32:24,970 Bu yüzden çok fazla bellek kopyalama olabilir. 2054 01:32:24,970 --> 01:32:28,630 Ve biz özellikle olacak Bu konuda kötü. 2055 01:32:28,630 --> 01:32:32,600 Biz neler yapabileceğini Çok, çok, bu durumda demek? 2056 01:32:32,600 --> 01:32:33,278 Evet? 2057 01:32:33,278 --> 01:32:36,528 HEDEF KİTLE: iki milyar şeylerin Bölüm döner çalıştırılabilir kod içeriyor 2058 01:32:36,528 --> 01:32:38,127 [Duyulamaz]. 2059 01:32:38,127 --> 01:32:38,710 Gabe: Kesinlikle. 2060 01:32:38,710 --> 01:32:41,110 Yani bu tür insanların kullanımı şey 2061 01:32:41,110 --> 01:32:43,344 örneğin, bir iPhone firar. 2062 01:32:43,344 --> 01:32:44,260 Bu tür şeyler Yani. 2063 01:32:44,260 --> 01:32:48,610 Sadece cihaz yapmak Çünkü istediğiniz herhangi bir kod yürütmesine. 2064 01:32:48,610 --> 01:32:50,247 düzeltme, bu düzeltme kolaydır. 2065 01:32:50,247 --> 01:32:51,330 Sadece sınırları kontrol edin. 2066 01:32:51,330 --> 01:32:53,455 Sen boş çünkü kontrol biz her zaman boş kontrol 2067 01:32:53,455 --> 01:32:54,940 biz dizeleri ile uğraşıyoruz. 2068 01:32:54,940 --> 01:32:57,840 Ve sonra, almak dize uzunluğu önce. 2069 01:32:57,840 --> 01:33:00,150 Ve dize halinde uzunluk geçerli bir dizedir 2070 01:33:00,150 --> 01:33:03,700 0 içinde uzunluk, 12, daha sonra iyiyiz. 2071 01:33:03,700 --> 01:33:07,144 >> DAVIN: Eğer kontrol etmezseniz null, çabucak, ne olacak? 2072 01:33:07,144 --> 01:33:07,810 Bu hata seg edeceğiz. 2073 01:33:07,810 --> 01:33:10,850 Neden hata SEG olacak? 2074 01:33:10,850 --> 01:33:12,510 Eğer boş üzerindeki strlen aradığınız Çünkü. 2075 01:33:12,510 --> 01:33:13,010 Gabe: Evet. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 Birini kullanarak, doğru veya yanlış Parola iyi bir fikirdir. 2078 01:33:19,630 --> 01:33:20,430 >> İZLEYİCİ: Yanlış. 2079 01:33:20,430 --> 01:33:21,150 >> Gabe: Yanlış. 2080 01:33:21,150 --> 01:33:23,870 Birçok şifreleri, ve büyük, uzun olanları kullanın. 2081 01:33:23,870 --> 01:33:26,050 Kilit simgeleri güvenliğini sağlamak. 2082 01:33:26,050 --> 01:33:27,080 >> İZLEYİCİ: Yanlış. 2083 01:33:27,080 --> 01:33:27,749 >> Gabe: Yanlış. 2084 01:33:27,749 --> 01:33:28,790 Bir şey demek değildir. 2085 01:33:28,790 --> 01:33:30,480 Sadece bir simge var. 2086 01:33:30,480 --> 01:33:32,824 SSL karşı korur orta saldırı adam. 2087 01:33:32,824 --> 01:33:33,490 HEDEF KİTLE: Yanlış. 2088 01:33:33,490 --> 01:33:34,110 Gabe: Yanlış. 2089 01:33:34,110 --> 01:33:35,355 Tamam, bu yüzden tüm bu yanlış. 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 Güzel. 2092 01:33:39,490 --> 01:33:40,220 [Duyulamaz] 2093 01:33:40,220 --> 01:33:42,500 Bu konuda konuşmak ister misiniz? 2094 01:33:42,500 --> 01:33:43,259 Senin sıran. 2095 01:33:43,259 --> 01:33:45,050 DAVIN: saldırıların türleri, Ortada adam. 2096 01:33:45,050 --> 01:33:47,134 Orta saldırıda bir adam nedir? 2097 01:33:47,134 --> 01:33:48,050 HEDEF KİTLE: [duyulamaz]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 DAVIN: Eğer bir gönderirseniz HTTP istek, doğru, bu yapabilirdi? 2100 01:33:54,020 --> 01:33:57,890 Ama HTTPS gönderiyoruz, onlar Muhtemelen bunu yapmak mümkün olmayacaktır. 2101 01:33:57,890 --> 01:33:59,952 Puan sürü var senin bağlantı boyunca. 2102 01:33:59,952 --> 01:34:00,660 Sen yönlendiriciler var. 2103 01:34:00,660 --> 01:34:01,746 DNS sunucuları var. 2104 01:34:01,746 --> 01:34:04,120 Birisi fiziksel olarak mümkün ise Eğer gönderirken görmek, 2105 01:34:04,120 --> 01:34:06,140 böylece kimse yapabiliyor aslında aranıza almak, 2106 01:34:06,140 --> 01:34:08,840 istemci ve sunucu, ve bir Gönderdiğiniz şeyi görmek mümkün, 2107 01:34:08,840 --> 01:34:10,298 Bu orta saldırıda bir adam. 2108 01:34:10,298 --> 01:34:14,287 Yani almak için çalışıyoruz ne olduğunu görmek için Sunucu, ya da daha kötüsü see-- yapabiliyor 2109 01:34:14,287 --> 01:34:16,620 Eğer görmek mümkün olabilir kurabiye ya da onun gibi bir şey. 2110 01:34:16,620 --> 01:34:19,290 >> Örneğin, yani Eğer o, SSL kullanarak değil 2111 01:34:19,290 --> 01:34:21,900 görmek mümkün olabilir sizin oturum kimliği tanımlama. 2112 01:34:21,900 --> 01:34:25,460 Ve bu oturum kaçırma denir O Kimlik çerezleri görür, çünkü, 2113 01:34:25,460 --> 01:34:28,317 ve sonra o gitmek mümkün değil Web sitesi ve sizi taklit. 2114 01:34:28,317 --> 01:34:31,150 Sadece PHP gibi çünkü, unutmayın biz oturum açtığınızda, biz ne yapacağız? 2115 01:34:31,150 --> 01:34:33,340 Biz kimliği eşit oturum kimliğini ayarlamak. 2116 01:34:33,340 --> 01:34:34,810 Yani sizi tanımlar. 2117 01:34:34,810 --> 01:34:38,300 Eğer portföy görebilirsiniz Bu yüzden ve herkes başka portföyü. 2118 01:34:38,300 --> 01:34:42,320 >> Peki, ben bu çerez almak mümkün yaşıyorum, Sonra ben bu sayfaya oturum açabilirsiniz. 2119 01:34:42,320 --> 01:34:45,380 Ve sonra, ben sadece eşyalarını görebilirsiniz ve satın alma ve malzeme satan başlar. 2120 01:34:45,380 --> 01:34:46,800 Yani oturum kaçırma var. 2121 01:34:46,800 --> 01:34:50,810 Ama sen bu kadar güçlü amaçlara yönelik olmamalı orta saldırı adam kullanabilirsiniz 2122 01:34:50,810 --> 01:34:52,290 Hatta onlar SSL kullanarak eğer. 2123 01:34:52,290 --> 01:34:53,520 Ama mümkün olmamalıdır. 2124 01:34:53,520 --> 01:34:56,580 Onlar SSL kullanıyorsanız, Eğer oturum kaçırmak olamaz. 2125 01:34:56,580 --> 01:34:58,927 Neden? 2126 01:34:58,927 --> 01:35:01,135 Her şifreli için, değil mi? şifreli eğer, 2127 01:35:01,135 --> 01:35:03,509 ve ben hala bir adamım orta, ben hala veri almak. 2128 01:35:03,509 --> 01:35:04,279 Bu iyi. 2129 01:35:04,279 --> 01:35:05,070 Ama şifreli. 2130 01:35:05,070 --> 01:35:07,750 Yani ben gerçekten bunu kullanamaz. 2131 01:35:07,750 --> 01:35:09,840 Yani iki. 2132 01:35:09,840 --> 01:35:11,544 >> Gerçek hızlı, çapraz site istek sahteciliği. 2133 01:35:11,544 --> 01:35:13,960 Bir bağlantı varsa bu sadece ve bu bağlantı bir şey yapar 2134 01:35:13,960 --> 01:35:14,890 Eğer bunu yapmak gerektiğini sanmıyorum. 2135 01:35:14,890 --> 01:35:18,150 Yani, örneğin, bağlantı halinde oldu hisse senedi satın veya stokları satmak için gidiyor, 2136 01:35:18,150 --> 01:35:19,360 ve bunu bilmiyordum. 2137 01:35:19,360 --> 01:35:22,040 Sen, linke tıklandığında aldım bir istek gönderdi 2138 01:35:22,040 --> 01:35:24,240 ya da bir şey satılan Yapmanız istemedim. 2139 01:35:24,240 --> 01:35:25,120 Bu işte. 2140 01:35:25,120 --> 01:35:30,720 >> Çapraz site betik, burada çok, Eğer, değişken q yoluyla geçirerek konum 2141 01:35:30,720 --> 01:35:33,510 yerine bazı tür geçme değer, belki q adı gibi. 2142 01:35:33,510 --> 01:35:36,560 Bunun yerine q eşittir geçen Davin veya böyle bir şey, 2143 01:35:36,560 --> 01:35:38,740 HTML kullanmak istemiyorsanız Özel karakter, eğer 2144 01:35:38,740 --> 01:35:43,100 bu kadar emin olmak için bu kaçış yok Tamam, o zaman ben onun yerine de geçebileceği, 2145 01:35:43,100 --> 01:35:46,910 burada ben söylüyorum diyelim böyle baskı ya da bir şey, 2146 01:35:46,910 --> 01:35:51,070 Sonra ben burada bir komut dosyası çağrısı içinde geçebileceği. 2147 01:35:51,070 --> 01:35:53,140 >> Öyleyse, yerine Sadece bir değişkeni almak, 2148 01:35:53,140 --> 01:35:54,960 Ben o zaman bu komut çağrısını yürütmek istiyorum. 2149 01:35:54,960 --> 01:35:57,065 Bu komut dosyası içinde Yani çağrı, ne yapar? 2150 01:35:57,065 --> 01:36:00,190 Belge nokta konumu, o gidiyor Belgenin konumunu değiştirmek. 2151 01:36:00,190 --> 01:36:02,290 Yani yönlendirmek için gidiyorum başka bir yere. 2152 01:36:02,290 --> 01:36:08,170 Kötü adam olarak adlandırılır Bu örnek, çok iyi. 2153 01:36:08,170 --> 01:36:10,536 Kelime gelmiyordu. 2154 01:36:10,536 --> 01:36:12,410 Ve sonra, ne bile var kötü Ben gidiyorum olduğunu 2155 01:36:12,410 --> 01:36:16,832 Bazı o zaman set cookie için Değişken Bu web sitesinde yer var. 2156 01:36:16,832 --> 01:36:19,040 Ben eşit ayarlamak için gidiyorum Belge nokta çerez. 2157 01:36:19,040 --> 01:36:20,660 Bu nedenle, ben gidiyorum çerez çalmak için. 2158 01:36:20,660 --> 01:36:22,951 Ve ben yönlendirmek için gidiyorum Bir web sitesine bazı bilgiler 2159 01:36:22,951 --> 01:36:25,120 Bu sizi erişen edilmemelidir. 2160 01:36:25,120 --> 01:36:29,250 Sen çünkü bu tüm olur değil ne gördüm kaçan. 2161 01:36:29,250 --> 01:36:29,910 Evet? 2162 01:36:29,910 --> 01:36:32,160 >> İZLEYİCİ: Yani sadece kadar bu, açıkça yapmak 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com bu Bu açıktır. 2164 01:36:37,550 --> 01:36:39,300 Bu bağlantı görünebilir Yani herhangi bir sayfada. 2165 01:36:39,300 --> 01:36:42,200 Birisi, o tıklar vulnerable.com gider. 2166 01:36:42,200 --> 01:36:43,700 Sen vulnerable.com bir çerez var. 2167 01:36:43,700 --> 01:36:46,670 Facebook diyelim savunmasız, facebook.com böylece. 2168 01:36:46,670 --> 01:36:48,310 Sen Facebook çerez var. 2169 01:36:48,310 --> 01:36:50,925 Bu ne yapıyor, sen facebook.com gidiyor, 2170 01:36:50,925 --> 01:36:53,990 hemen yönlendirme var Eğer, badguy.com için 2171 01:36:53,990 --> 01:36:57,182 ancak çerez bilgiler dahil. 2172 01:36:57,182 --> 01:36:59,310 Bu yüzden hızlı bir yönlendirme var, ancak Facebook çerez 2173 01:36:59,310 --> 01:37:02,572 Bu yönlendirme ile birlikte, ve bu nasıl [duyulamaz] var. 2174 01:37:02,572 --> 01:37:04,280 Gabe: Evet, var bazı çok kötü şeyler 2175 01:37:04,280 --> 01:37:06,070 Bu varsa insanların yapabileceği. 2176 01:37:06,070 --> 01:37:09,190 Örneğin, Facebook eğer izin herkes, kullanıcı adını değiştirmek için 2177 01:37:09,190 --> 01:37:11,680 ve herhangi yapmadım aklı kontrolleri, size böylece 2178 01:37:11,680 --> 01:37:16,810 JavaScript şey eklemek olabilir bir hamster için görüntüyü değiştirir. 2179 01:37:16,810 --> 01:37:22,590 Ve aynı JavaScript ekler sizin sayfayı görüntüleyen herkes içine. 2180 01:37:22,590 --> 01:37:26,400 Sayfanızı Yani herkes kullanıcı adı aynı şeyi vardır. 2181 01:37:26,400 --> 01:37:30,104 Ve bu bir virüs çünkü, katlanarak yayılır. 2182 01:37:30,104 --> 01:37:32,270 DAVIN: Geçen atlamak bir, ve sonra bitti. 2183 01:37:32,270 --> 01:37:34,120 Yani bu sadece bir örnektir. 2184 01:37:34,120 --> 01:37:36,120 Yani bu değiller ise kendi SQL tablosu kaçan. 2185 01:37:36,120 --> 01:37:37,090 Yani bırakın. 2186 01:37:37,090 --> 01:37:38,805 Yani bir şeyler kaçmak istiyorum. 2187 01:37:38,805 --> 01:37:44,010 Bu önceki örnek oldu çapraz site scripting ile. 2188 01:37:44,010 --> 01:37:45,430 Maalesef biz biraz geç koştu. 2189 01:37:45,430 --> 01:37:46,870 Yarın, üzgünüm! 2190 01:37:46,870 --> 01:37:48,560 Yarın, ofis saatleri var. 2191 01:37:48,560 --> 01:37:50,870 11:00 Cabbot 8:00 Yani ofis saatleri. 2192 01:37:50,870 --> 01:37:55,240 ofis saatleri kesinlikle sınav soruları için. 2193 01:37:55,240 --> 01:37:56,587