1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:04,810 [MÜZİK OYUN] 3 00:00:04,810 --> 00:00:06,940 >> Doug LLOYD: Yani bir daha kavramının tür olduğunu 4 00:00:06,940 --> 00:00:12,120 tür çatısı altında düşüyor JavaScript AJAX denilen şeydir. 5 00:00:12,120 --> 00:00:15,310 Bu noktaya kadar, adresimizi JavaScript ile etkileşim 6 00:00:15,310 --> 00:00:17,727 Bir itmek için sınırlı kalmıştır düğmesi ve bir şey olur. 7 00:00:17,727 --> 00:00:19,560 Ve özel olarak ise, olur bir şey 8 00:00:19,560 --> 00:00:22,950 Bizim web siteleri bakmak ve değişiklikleri hissediyorum. 9 00:00:22,950 --> 00:00:23,450 Sağ? 10 00:00:23,450 --> 00:00:26,540 Özellikle de olduğu gibi, in belge nesne modeli, video, 11 00:00:26,540 --> 00:00:29,060 Ben arka plan rengi değişti. 12 00:00:29,060 --> 00:00:33,240 Ben yaptım ama ne zaman, ben yoktu herhangi bir özel ekstra istekleri yapmak. 13 00:00:33,240 --> 00:00:36,800 Bunu istemek yoktu Sunucu bana yeni bir sayfa göndermek. 14 00:00:36,800 --> 00:00:39,620 Ben sadece zaten ne vardı değişti. 15 00:00:39,620 --> 00:00:42,245 Ben, benim sayfayı yeniden yoktu ve işler kesinlikle değişti 16 00:00:42,245 --> 00:00:43,760 böylece bu harika. 17 00:00:43,760 --> 00:00:48,400 Ama kesinlikle orada bazı manuel kullanıcı etkileşimi çıkıyor. 18 00:00:48,400 --> 00:00:53,140 AJAX sağlayan serin bir tekniktir bize sayfanın içeriğini güncellemek için, 19 00:00:53,140 --> 00:00:55,750 ve sadece görünüm ve yüklemeden, hissediyorum. 20 00:00:55,750 --> 00:00:58,610 >> Ve ne zaman, özellikle I Bir sayfanın içeriğini güncelleyerek demek, 21 00:00:58,610 --> 00:01:01,990 Sanırım yeniden demiyorum JavaScript kullanarak sayfa. 22 00:01:01,990 --> 00:01:06,560 Ben aslında talep söylüyorum Sunucudan fazla bilgi 23 00:01:06,560 --> 00:01:08,640 sayfamızı yeniden yüklemek zorunda kalmadan. 24 00:01:08,640 --> 00:01:10,850 >> Bir bit Şimdi bu tür daha gelişmiş bir tekniktir 25 00:01:10,850 --> 00:01:11,950 Konuşmamız gidiyoruz Bu video hakkında. 26 00:01:11,950 --> 00:01:13,720 Biz bazı etkileşim zorunda gidiyoruz. 27 00:01:13,720 --> 00:01:17,750 Biz ne zaman Ama olacağım web sunucusuna isteklerini yapma. 28 00:01:17,750 --> 00:01:21,140 Bu durumda, sadece ne Benim Apache web sunucusu çalıştıran. 29 00:01:21,140 --> 00:01:25,010 Ben ek yapma gibi gidiyorum istekler Ben, bir web sayfasını ziyaret ediyorum ederken 30 00:01:25,010 --> 00:01:26,890 ama benim sayfa yenilenmez. 31 00:01:26,890 --> 00:01:30,000 >> Sadece gidiyor zaman uyumsuz benim sayfayı güncellemek. 32 00:01:30,000 --> 00:01:31,840 Ve bu, aslında, bu AJAX açılımı, hangi 33 00:01:31,840 --> 00:01:35,400 Asynchronous JavaScript ve XML olduğunu. 34 00:01:35,400 --> 00:01:37,910 XML biçimlendirmesi bir başka türüdür dil, ve size sıralayabilirsiniz 35 00:01:37,910 --> 00:01:39,680 Sadece HTML gibi düşün. 36 00:01:39,680 --> 00:01:42,990 Bu, tamamen aynı şey değil ama bu temelde sadece bir biçimlendirme dili var. 37 00:01:42,990 --> 00:01:47,770 Yani bir asenkron var JavaScript ve bir biçimlendirme dili. 38 00:01:47,770 --> 00:01:50,590 >> Yani bu kullanmak için AJAX technique-- AJAX 39 00:01:50,590 --> 00:01:52,230 Ayrı bir programlama dili değildir. 40 00:01:52,230 --> 00:01:55,300 Bu sadece bir tür var techniques-- biz seti 41 00:01:55,300 --> 00:01:57,870 Özel oluşturmanız gerekir JavaScript nesne, hangi 42 00:01:57,870 --> 00:02:00,689 XMLHttpRequest olarak adlandırılır. 43 00:02:00,689 --> 00:02:01,980 Şimdi, bunu yapmak çok kolay. 44 00:02:01,980 --> 00:02:04,550 Biz sadece söylemek var, ne olursa olsun Bu nesneyi aramak istiyorum, 45 00:02:04,550 --> 00:02:07,030 Yeni XMLHttpRequest eşittir. 46 00:02:07,030 --> 00:02:11,050 Ve şimdi biz şimdi almış nesnenin bir AJAX tür 47 00:02:11,050 --> 00:02:14,370 veya XMLHttpRequest sağlayacak nesne 48 00:02:14,370 --> 00:02:18,360 Bize zaman uyumsuz sayfamızı güncellemek için. 49 00:02:18,360 --> 00:02:23,100 >> Bu yeni kazanılmış sonra Nesne, bu XMLHttpRequest, 50 00:02:23,100 --> 00:02:27,760 biz bir şeyler yapmak zorundayız onun onreadystatechange davranış. 51 00:02:27,760 --> 00:02:30,360 Onreadystatechange davranış gerçekten sadece bir 52 00:02:30,360 --> 00:02:34,080 Eğer bir istek yaptığınızda Bir web sayfasına, sayfa 53 00:02:34,080 --> 00:02:35,880 bir dizi adım bu geçer. 54 00:02:35,880 --> 00:02:37,370 İlk olarak, bir istek gönderildi edilmemiştir. 55 00:02:37,370 --> 00:02:39,860 Ardından, istek olmuştur gönderdi, ama üzerine harekete geçti değil. 56 00:02:39,860 --> 00:02:41,580 Sonra istek üzerine hareket edilmiştir. 57 00:02:41,580 --> 00:02:43,680 Sonra istek size geri gönderiliyor. 58 00:02:43,680 --> 00:02:46,930 >> Ardından, istek tam sayfanıza yüklendi. 59 00:02:46,930 --> 00:02:48,640 Bunlar farklı durumlardır. 60 00:02:48,640 --> 00:02:53,890 Ve böylece bizim ayarlamanız gerekir Yeni XMLHttpRequest nesnesi 61 00:02:53,890 --> 00:02:58,740 Hazır olduğunda durum değişiklikleri değiştirmek için. 62 00:02:58,740 --> 00:03:01,925 Ve tipik, biz bunu Bir anonim işlev tanımlamak hangi 63 00:03:01,925 --> 00:03:04,490 biz kimden aşina Şimdi JavaScript, o 64 00:03:04,490 --> 00:03:09,840 Hazır olduğunda durum değişiklikleri denir. 65 00:03:09,840 --> 00:03:11,340 Bundan daha gerçekten çok fazla. 66 00:03:11,340 --> 00:03:14,340 Biz sadece bir tanımlama için gidiyoruz anonim işlev, bir çeşit ne gibi 67 00:03:14,340 --> 00:03:16,440 Biz yapıyorduk JavaScript, biz olur 68 00:03:16,440 --> 00:03:18,750 bir anonim işlevi var tıklama bir cevap, 69 00:03:18,750 --> 00:03:23,230 ya da biz bir harita yaptıklarını zaman Dizideki çeşitli nesneler. 70 00:03:23,230 --> 00:03:25,220 >> Bir şey ne oldu bir şey tıklandığında edildi. 71 00:03:25,220 --> 00:03:28,810 Bu durumda, sadece bir şey olduğunu oluyor bizim sayfanın durumu 72 00:03:28,810 --> 00:03:30,160 değişir. 73 00:03:30,160 --> 00:03:32,730 İki diğer özellikler vardır sıralama of-- değiller ki 74 00:03:32,730 --> 00:03:35,524 sadece özellikler XMLHttpRequest doğasında, 75 00:03:35,524 --> 00:03:36,940 ancak oldukça önemli olanları değil. 76 00:03:36,940 --> 00:03:39,815 ReadyState denilen bir şey var, hangi muhtemelen tahmin edebileceğiniz gibi, 77 00:03:39,815 --> 00:03:41,750 onreadystatechange ilgili olduğunu. 78 00:03:41,750 --> 00:03:44,250 Aslında size söyler readyState nedir. 79 00:03:44,250 --> 00:03:46,289 0, 1, 2, 3 ve 4 olan Orada olanakları, 80 00:03:46,289 --> 00:03:48,080 ve onlar tür kabaca karşılık Ne 81 00:03:48,080 --> 00:03:50,030 Ben sadece bir saniye önce bahsediyordu. 82 00:03:50,030 --> 00:03:53,100 >> Ve sonra durumu, hangi Umarım herşey yolunda giderse, 83 00:03:53,100 --> 00:03:56,710 kısa olduğu, 200 için, tabii ki, tamam 84 00:03:56,710 --> 00:03:58,330 Biz Http dan aşina olan. 85 00:03:58,330 --> 00:04:03,735 Yani biz umuyoruz bizim hazır devlet Dört ve bizim durumu 200. 86 00:04:03,735 --> 00:04:07,940 Ve hazır durumda eğer Dört ve tepki 87 00:04:07,940 --> 00:04:11,490 koymak için hazır sayfa ve durum 200, 88 00:04:11,490 --> 00:04:13,580 Biz bunu başardık Her şey başarıyla 89 00:04:13,580 --> 00:04:17,209 şimdi biz zaman uyumsuz olabilir sayfamızı güncelleme 90 00:04:17,209 --> 00:04:21,730 yeniden yüklemek zorunda kalmadan Bunun tüm içeriği. 91 00:04:21,730 --> 00:04:27,710 >> Biz ne tanımladıktan sonra onreadystatechange davranışı, 92 00:04:27,710 --> 00:04:31,020 ve bunu kontrol ettik readyState , 4 ve durum 200 93 00:04:31,020 --> 00:04:33,900 Daha sonra yapmamız gereken tek şey Bir uyumsuz açmak 94 00:04:33,900 --> 00:04:38,530 istek, sadece yapıyor Bir Http genellikle isteği GET. 95 00:04:38,530 --> 00:04:41,950 Sadece programlı yapıyor, Bunun yerine web tarayıcısı üzerinden evi. 96 00:04:41,950 --> 00:04:43,786 Ve sonra biz bu isteği gönderin. 97 00:04:43,786 --> 00:04:45,660 Peki belki bu yapar bağlamda benziyor? 98 00:04:45,660 --> 00:04:49,790 Yani burada bir fonksiyon olduğunu AJAX istekleri ile ilgilenir. 99 00:04:49,790 --> 00:04:50,290 Tamam mı? 100 00:04:50,290 --> 00:04:52,430 Ve ben keyfi söyledim bir argüman kabul eder. 101 00:04:52,430 --> 00:04:55,550 Ve bu bir tür Burada genel iskelet. 102 00:04:55,550 --> 00:05:00,890 Başından, biz olsun Kendimizi yeni bir XMLHttpRequest nesnesi. 103 00:05:00,890 --> 00:05:03,830 Sonra, ben ayarlamanız gerekir onreadystatechange davranış. 104 00:05:03,830 --> 00:05:06,970 Ve bu yüzden söylemek için gidiyorum zaman readyState değişikliği, 105 00:05:06,970 --> 00:05:10,110 Ben bu işlevi çağırmak istiyorum. 106 00:05:10,110 --> 00:05:12,570 >> Soracağım Hangi soru readyState eğer 107 00:05:12,570 --> 00:05:17,240 readyState değişmişse, 4'ü 4 olacak ve durum 200 oldu, 108 00:05:17,240 --> 00:05:20,799 bu yüzden ben, başarılı bir isteği vardı sayfaya bir şeyler yapmak istiyorum. 109 00:05:20,799 --> 00:05:22,590 Ve biz göz atacağız bir örnekle neyi 110 00:05:22,590 --> 00:05:25,010 O şey bir saniyede olabilir. 111 00:05:25,010 --> 00:05:27,830 Öyleyse, şimdi ben tanımladığınız Benim anonim işlev, 112 00:05:27,830 --> 00:05:31,340 Benim tepki işlevi her readyState değişir. 113 00:05:31,340 --> 00:05:37,120 >> Yani o zaman sadece bir açmanız gerekiyor Açık yöntemini kullanarak, rica ederim. 114 00:05:37,120 --> 00:05:39,160 Ve sonra, ben bu isteği gönderin. 115 00:05:39,160 --> 00:05:41,980 Ve en az bir göz atalım daha somut bir örnek 116 00:05:41,980 --> 00:05:46,290 Neyin AJAX web sayfalarında yapabilirsiniz. 117 00:05:46,290 --> 00:05:49,740 Yani burada çok basit var sayfa home.html denir. 118 00:05:49,740 --> 00:05:53,620 Ve ben bir bilgi gider var Burada ve açılır menüden bir çeşit. 119 00:05:53,620 --> 00:05:55,390 >> Ve biz bir saniye içinde bu tekrar edeceğiz. 120 00:05:55,390 --> 00:05:59,150 Ama biz şimdi almak gerektiğini düşünüyorum Gerçek kaynak kodu bakmak. 121 00:05:59,150 --> 00:06:01,080 Ve bu yüzden, ben home.html açmak için gidiyorum. 122 00:06:01,080 --> 00:06:03,490 123 00:06:03,490 --> 00:06:04,740 Ve biz neler göreceğiz. 124 00:06:04,740 --> 00:06:08,240 Burada çok üstünde yukarı Yani, var oluyor bazı JavaScript şeyler. 125 00:06:08,240 --> 00:06:12,470 >> Ve burada, görünüşte var kimin kimliği infodiv bir div, 126 00:06:12,470 --> 00:06:15,290 ve bazı bilgiler oraya gidecek. 127 00:06:15,290 --> 00:06:16,374 Ve sonra bu form var. 128 00:06:16,374 --> 00:06:18,081 Bu iç Form, ben bir şey var 129 00:06:18,081 --> 00:06:20,200 Select adı verilen bu Sadece bir açılır menü 130 00:06:20,200 --> 00:06:22,150 farklı seçenekler bir demet. 131 00:06:22,150 --> 00:06:26,150 Ve bu, ne zaman değişir görünüşe zaman seçildikten seçeneği vardır 132 00:06:26,150 --> 00:06:30,600 değişti, ben diyeceğim Bazı işlev cs50Info, 133 00:06:30,600 --> 00:06:33,190 ve sonra ben gidiyorum this.value geçmek, 134 00:06:33,190 --> 00:06:35,740 burada, bu değinmektedir Hangi seçeneği seçildi, 135 00:06:35,740 --> 00:06:39,820 ve değer, burada seçeneği bunlardan biridir value = eşittir boş, "Blumberg," 136 00:06:39,820 --> 00:06:42,610 "bowden", "chan" ve "malan." 137 00:06:42,610 --> 00:06:45,090 >> Peki aslında ne olabilir Bunu yaparken burada ne? 138 00:06:45,090 --> 00:06:48,800 Peki, bir alalım blumberg.html bak. 139 00:06:48,800 --> 00:06:51,330 140 00:06:51,330 --> 00:06:53,924 Bu sadece bir var gibi görünüyor Bazı Html pasajı. 141 00:06:53,924 --> 00:06:56,090 Ve aslında, ne umuyorum Burada ne olacak 142 00:06:56,090 --> 00:07:00,020 Ben fiş edebilmek için gidiyorum olduğunu Benim web sayfasına doğrudan bu Html 143 00:07:00,020 --> 00:07:02,970 yeniden yüklemek zorunda kalmadan sayfa, örneğin o zaman 144 00:07:02,970 --> 00:07:07,510 Ben Açılır menüden Hannah seçim Menü, Hannah hakkında bilgiler, 145 00:07:07,510 --> 00:07:11,100 Özellikle, bu bilgi Burada blumberg.html olarak, 146 00:07:11,100 --> 00:07:12,574 sayfadaki gösterir budur. 147 00:07:12,574 --> 00:07:13,740 Ve ben yenilemek zorunda değilsiniz. 148 00:07:13,740 --> 00:07:16,842 Ve ben, başkası seçerseniz onların bilgi sırıtmak olur. 149 00:07:16,842 --> 00:07:17,550 Bunu nasıl yaparsın? 150 00:07:17,550 --> 00:07:20,290 Yine, bunu gerektirir Bize biraz AJAX kullanmak için. 151 00:07:20,290 --> 00:07:22,540 Ve böylece, biz ajax.js. açacaksın 152 00:07:22,540 --> 00:07:25,550 Ve burada, cs50Info o fonksiyondur. 153 00:07:25,550 --> 00:07:27,410 Adı başka bir şey ise, ben dönmek. 154 00:07:27,410 --> 00:07:31,450 Ben eğer bir şey yapmak için gitmiyorum Boş bir seçenek seçilmiştir. 155 00:07:31,450 --> 00:07:35,420 Aksi takdirde, ben gidiyorum Yeni XMLHttpRequest oluşturun. 156 00:07:35,420 --> 00:07:39,020 Ve sonra, ne zaman söylemek için gidiyorum readyState değişiklikler, bu işlevini çağırın. 157 00:07:39,020 --> 00:07:43,630 >> Ve readyState ise 4 ve durum 200, 158 00:07:43,630 --> 00:07:45,740 Burada biraz var hat 13 jQuery. 159 00:07:45,740 --> 00:07:50,450 Ama söylediğini yapıyorum, tüm infodiv içeriğini değiştirmek 160 00:07:50,450 --> 00:07:57,820 Ben geri aldım ne olmak Benim HttpRequest yanıtı. 161 00:07:57,820 --> 00:07:59,590 >> Benim HttpRequest nedir? 162 00:07:59,590 --> 00:08:02,020 Peki, bu doğru Burada hat 18 ve 19. 163 00:08:02,020 --> 00:08:08,550 Satır 18, ben temelde hazırlıyorum Bir isim + .html talebini GET. 164 00:08:08,550 --> 00:08:11,170 Ve yine, adı burada oldu argüman 165 00:08:11,170 --> 00:08:14,280 cs50Info bir parametre olarak geçirilen. 166 00:08:14,280 --> 00:08:18,460 >> Yani temelde, ben birilerinin geçen am seçenekler bu dizi, hangi isim 167 00:08:18,460 --> 00:08:22,980 Biz gördüm açılır menüsünü şeklinde. 168 00:08:22,980 --> 00:08:24,450 Ben bu ismi alıyorum. 169 00:08:24,450 --> 00:08:29,530 Ve ben seni istiyorum diyorum benim için file.html alınız, 170 00:08:29,530 --> 00:08:31,020 ve o istek gönderebilirsiniz. 171 00:08:31,020 --> 00:08:34,820 >> Ve böylece onreadystatechange gidiyor dinleme ve bekleme ve bekleme olmak 172 00:08:34,820 --> 00:08:39,460 ve readyState kadar bekleme 4 ve durumu 200'dür. 173 00:08:39,460 --> 00:08:44,970 Bu yüzden, hizmet için hazır ve istek başarılı oldu. 174 00:08:44,970 --> 00:08:49,500 Ve eğer o zaman, gidiyor infodiv içeriğini değiştirmek 175 00:08:49,500 --> 00:08:53,030 Ben döndüm tepki metin olmak. 176 00:08:53,030 --> 00:08:54,930 >> Yani bu nasıl görelim Aslında işe yarayabilir. 177 00:08:54,930 --> 00:08:58,860 Bu yüzden benim tarayıcı üzerinde kafa edeceğiz Pencere ve biz burada bakacağız. 178 00:08:58,860 --> 00:09:01,359 Yani bir göz atalım Ne AJAX burada oluyor. 179 00:09:01,359 --> 00:09:03,400 Bu yüzden birilerini seçeceğim Açılan menüden. 180 00:09:03,400 --> 00:09:06,079 Bu durumda Yani, haydi Sadece Hannah seçin. 181 00:09:06,079 --> 00:09:08,120 Ve haber o Hannah bilgi değişti, 182 00:09:08,120 --> 00:09:11,030 ama any-- yoktu benim sayfası tamamen yeniden vermedi. 183 00:09:11,030 --> 00:09:12,190 Şeyler kaldı. 184 00:09:12,190 --> 00:09:13,320 Şeyler çoğu kaldı. 185 00:09:13,320 --> 00:09:14,320 AJAX Testi değişmedi. 186 00:09:14,320 --> 00:09:16,700 Düğmesine kendisi bu açılan menü değişmedi. 187 00:09:16,700 --> 00:09:18,260 Ama bilgiler var değişikliği yaptı. 188 00:09:18,260 --> 00:09:20,218 Ve nasıl bağlı hızla benim bilgisayar hamle, 189 00:09:20,218 --> 00:09:24,430 aslında içerik olduğunu görebilirsiniz kaybolur ve daha sonra gerçekten yeniden görünür 190 00:09:24,430 --> 00:09:24,930 çabuk. 191 00:09:24,930 --> 00:09:27,320 Bu varlık içerik var infodiv silinir 192 00:09:27,320 --> 00:09:29,940 ve daha sonra yerine Yeni uyumsuz bir istek. 193 00:09:29,940 --> 00:09:34,410 >> Söylemek için bunu geçerseniz Yani, Rob-- ve yine bir göz atın, 194 00:09:34,410 --> 00:09:38,379 ve belki de aslında görürsünüz kaybolur ve hızlı bir şekilde yeniden. 195 00:09:38,379 --> 00:09:38,920 Gördün mü? 196 00:09:38,920 --> 00:09:41,400 Nasıl sadece uzakta attı ve sonra doldurulmuş? 197 00:09:41,400 --> 00:09:43,640 Bu AJAX isteği var meydana tür. 198 00:09:43,640 --> 00:09:46,060 Ve böylece bağlı kişi ben değilim, seçim 199 00:09:46,060 --> 00:09:50,690 Farklı uyumsuz hale Farklı bir dosyaya istek 200 00:09:50,690 --> 00:09:52,730 Benim sunucu üzerinde olması. 201 00:09:52,730 --> 00:09:55,550 Ve içeriği benim infodiv güncelliyoruz, 202 00:09:55,550 --> 00:09:58,457 Ben seçtiğim bu hangi dayalı. 203 00:09:58,457 --> 00:10:00,040 Yani gerçekten tüm AJAX orada var. 204 00:10:00,040 --> 00:10:04,090 Bizi bu asenkron yapmanızı sağlar istekleri, bir sayfaya güncellemeleri. 205 00:10:04,090 --> 00:10:06,450 Gerek kalmadan tüm sayfayı yenilemek, 206 00:10:06,450 --> 00:10:08,520 yeni almak için gidiyoruz yaparak ondan içeriği 207 00:10:08,520 --> 00:10:11,170 sunucuya yeni taze bir istek. 208 00:10:11,170 --> 00:10:13,420 Ve böylece, bizim sayfalar olabilir biraz daha dinamik. 209 00:10:13,420 --> 00:10:15,128 >> Ve biz daha fazla olsun ve daha gelişmiş, seni 210 00:10:15,128 --> 00:10:17,700 gibi şeyler alabilirsiniz diyelim ki, e-posta gelen kutusu, 211 00:10:17,700 --> 00:10:19,850 nerede bir şey yapmanız gerekmez. 212 00:10:19,850 --> 00:10:22,560 Bir tıklamak zorunda değilsiniz açılır menüsünde ya da bir şey tıklatın 213 00:10:22,560 --> 00:10:25,920 ve aniden, en yeni E-posta üstündeki gösterir. 214 00:10:25,920 --> 00:10:27,840 Bu da sadece bir Ajax isteği var. 215 00:10:27,840 --> 00:10:30,460 Ajax istiyor senin Sunucu, e-posta sunucusu, 216 00:10:30,460 --> 00:10:33,360 Tüm bilgiler üzerinde göndermek için En son e-postalar hakkında, 217 00:10:33,360 --> 00:10:38,110 ve gördüklerinizi değişen Ekran e-postalar için yeni set olmak. 218 00:10:38,110 --> 00:10:41,080 Ve yeni bir tane var ise Bu div var, o içerik 219 00:10:41,080 --> 00:10:44,580 yansıtacak şekilde değişecektir güncellenmiş içeriği. 220 00:10:44,580 --> 00:10:45,480 Ben Doug Lloyd değilim. 221 00:10:45,480 --> 00:10:47,500 Bu CS50 olduğunu. 222 00:10:47,500 --> 00:10:49,229