1 00:00:00,000 --> 00:00:03,388 >> [მუსიკალური სათამაშო] 2 00:00:03,388 --> 00:00:09,196 3 00:00:09,196 --> 00:00:10,180 >> დევიდ ჯ Malan: Hello. 4 00:00:10,180 --> 00:00:12,600 მოდით გავლა პრობლემა Set 8 Mashup, 5 00:00:12,600 --> 00:00:15,880 რომელიც აპირებს დაუპირისპირდეს თქვენ დაეყრდნოს ელემენტები Google Maps 6 00:00:15,880 --> 00:00:20,905 ელემენტებით Google News და mash მათ ერთად შევიდა ვებ აპლეტი 7 00:00:20,905 --> 00:00:24,150 საშუალებას იძლევა მომხმარებლის მოძებნა რუკა news ადგილობრივი 8 00:00:24,150 --> 00:00:26,780 კონკრეტული ქალაქის, ქალაქები და საფოსტო კოდები. 9 00:00:26,780 --> 00:00:31,040 ამის გაკეთება, ჩვენ ვაპირებთ ინტეგრირება ზოგიერთ HTML, CSS, PHP, SQL, 10 00:00:31,040 --> 00:00:34,390 JavaScript და ტექნიკა საყოველთაოდ ცნობილია, როგორც AJAX, რათა 11 00:00:34,390 --> 00:00:36,850 შექმნა ამ immersive მომხმარებლის, გამოცდილება. 12 00:00:36,850 --> 00:00:38,920 >> მოდით პირველი Google Maps თავად. 13 00:00:38,920 --> 00:00:41,220 ეს, რა თქმა უნდა, არის, ალბათ, ნაცნობი ინტერფეისი. 14 00:00:41,220 --> 00:00:45,070 მაგრამ აღმოჩნდება, რომ Google Maps ასევე უზრუნველყოფს API-- განცხადება 15 00:00:45,070 --> 00:00:48,360 პროგრამირების ინტერფეისი მეშვეობით, რომელიც თქვენ შეგიძლიათ მიიღოს ელემენტები Google Maps 16 00:00:48,360 --> 00:00:50,740 და მათ ინტეგრაციას საკუთარი პროგრამა. 17 00:00:50,740 --> 00:00:52,650 მართლაც, მთელი ამ პროცესი, თქვენ აპირებს 18 00:00:52,650 --> 00:00:55,140 იპოვოს რამდენიმე მისამართები განსაკუთრებით სასარგებლოა, რომ 19 00:00:55,140 --> 00:00:57,820 ნახსენები დაზუსტება პრობლემა Set 8, 20 00:00:57,820 --> 00:01:00,980 სპეციალურად ამ ნაცნობობა სახელმძღვანელოს ან შემქმნელი სახელმძღვანელო 21 00:01:00,980 --> 00:01:07,640 for Google Maps API Version 3, ასევე როგორც Google Maps JavaScript API 22 00:01:07,640 --> 00:01:10,260 v3 მინიშნება, რომელიც ცოტა უფრო arcane წაკითხული 23 00:01:10,260 --> 00:01:14,600 მაგრამ რეალურად აქვს ყველა ქვედა დონეზე დეტალები, თუ რა ფუნქციები და მეთოდები 24 00:01:14,600 --> 00:01:18,220 და ობიექტების და თვისებები და მოვლენები რეალურად მოდის API, 25 00:01:18,220 --> 00:01:20,720 ძალიან მსგავსი სულისკვეთებით [INAUDIBLE] გვერდებზე. 26 00:01:20,720 --> 00:01:23,480 >> ახლა თუ ჩვენ შევხედოთ at Google News, თქვენ 27 00:01:23,480 --> 00:01:25,370 ალბათ ვხედავთ ნაცნობი ინტერფეისი აქ. 28 00:01:25,370 --> 00:01:29,350 მაგრამ აღმოჩნდება, ასევე შეგიძლიათ მოძებნოთ Google News კონკრეტული გეოგრაფია 29 00:01:29,350 --> 00:01:32,000 მეშვეობით HTTP პარამეტრი ეწოდება geo. 30 00:01:32,000 --> 00:01:35,100 ფაქტობრივად, თუ მე zoom აქ, თქვენ დაინახავთ, რომ 31 00:01:35,100 --> 00:01:41,672 მე ვარ news.google.com/news/section?geo=02138. 32 00:01:41,672 --> 00:01:43,630 და, მართლაც, თუ მე zoom გარეთ, დაინახავთ, რომ მე ვარ 33 00:01:43,630 --> 00:01:47,090 ეძებს გვერდზე მთელი bunch of შეხედულებები კემბრიჯი, მასაჩუსეტსი. 34 00:01:47,090 --> 00:01:50,620 >> ამასობაში, თუ რეალურად შეცვლის URL არ უნდა იყოს zip კოდი მოსწონს, 35 00:01:50,620 --> 00:01:55,580 მაგრამ რაღაც ცოტა მძიმეა როგორიცაა Cambridge, + Massachusetts, 36 00:01:55,580 --> 00:02:00,740 სადაც plus არის გზა encode ფართი პერსონაჟი URL და დააჭიროთ, 37 00:02:00,740 --> 00:02:02,907 დაინახავთ, რომ მე რეალურად , თითქმის იგივე ამბავია. 38 00:02:02,907 --> 00:02:05,489 ალბათ ეს ცოტა განსხვავებული იმიტომ, Cambridge რეალურად 39 00:02:05,489 --> 00:02:06,910 მრავლობითი საფოსტო კოდები. 40 00:02:06,910 --> 00:02:09,410 ახლა რა ვიცი, რომ და, ფაქტობრივად, როგორ შეიძლება მე რატომღაც 41 00:02:09,410 --> 00:02:12,940 ჰალსტუხი და პატარა ქალაქების zip კოდები შემთხვევაში მე 42 00:02:12,940 --> 00:02:15,064 გვინდა, რომ საშუალებას მისცემს მომხმარებელს ეძებოთ ან? 43 00:02:15,064 --> 00:02:17,480 ისე, გამოდის, რომ იქ ნახვა out არსებობს ე.წ. 44 00:02:17,480 --> 00:02:20,060 geonames.org რომელიც ინიციატივა აქვს 45 00:02:20,060 --> 00:02:23,760 თავისუფლად ხელმისაწვდომი მონაცემთა ბაზის ყველა სახის გეოგრაფიული ინფორმაცია, 46 00:02:23,760 --> 00:02:27,040 არა მარტო აშშ, არამედ სხვა ქვეყნებშიც. 47 00:02:27,040 --> 00:02:30,430 ფაქტობრივად, თუ მე ამ URL აქ, რომელიც ასევე აღნიშნულია, პრობლემა შეიქმნა 48 00:02:30,430 --> 00:02:34,510 დაზუსტება, დაინახავთ სამ ჩამონათვალი მთელი bunch of zip ფაილი 49 00:02:34,510 --> 00:02:36,400 ნებისმიერი, რომელიც შეიძლება გადმოწერილი მიერ. 50 00:02:36,400 --> 00:02:39,900 ფაქტობრივად, ამ პრობლემის მითითებული თქვენ ვაპირებთ ჩამოტვირთოთ us.zip. 51 00:02:39,900 --> 00:02:43,790 ახლა ამ ფაილს, მთელი bunch of მონაცემები ტექსტურ ფორმატში. 52 00:02:43,790 --> 00:02:47,760 ფაილი არის ძალიან ჰგავს CSV-- მძიმით გამოყოფილი მნიშვნელობები ფაილი 53 00:02:47,760 --> 00:02:51,294 მაგრამ ეს რეალურად იყენებს ჩანართების დემარკაცია სფეროებში. 54 00:02:51,294 --> 00:02:53,710 ახლა კი, ამ დროს, თუ გადავხედავთ აქ რა მე ხაზგასმით, 55 00:02:53,710 --> 00:02:56,459 სფეროში ამ ფაილის ვაპირებთ იყოს რამ, როგორიცაა ქვეყნის კოდები, 56 00:02:56,459 --> 00:02:58,980 საფოსტო კოდები, ტოპონიმები, და მაშინ, გარკვეული ფორმით 57 00:02:58,980 --> 00:03:04,230 ან სხვა, სახელმწიფოები და ქვეყნები, თემებში, და სხვა. 58 00:03:04,230 --> 00:03:06,630 ფაქტობრივად, მე უკვე გადმოწერილი ფაილის წინასწარ. 59 00:03:06,630 --> 00:03:09,750 ნება მომეცით წავიდეთ წინ და გახსნა აქ us.text-- და, რა თქმა უნდა, თქვენ 60 00:03:09,750 --> 00:03:16,660 თუ მე გადახვევა ქვემოთ ხაზი 16.792 დაინახავთ რამდენიმე ჩანაწერი Cambridge, 61 00:03:16,660 --> 00:03:19,120 Massachusetts და მისი სხვადასხვა zip კოდები. 62 00:03:19,120 --> 00:03:22,150 რა აგრეთვე, არსებობს ქვეყანა, ზოგიერთი ნომრები, რომ მე ნამდვილად არ 63 00:03:22,150 --> 00:03:24,500 მესმის, მაგრამ ასევე ყველა გზა მარჯვენა 64 00:03:24,500 --> 00:03:27,170 ზოგიერთი GPS კოორდინატები გრძედი და განედი. 65 00:03:27,170 --> 00:03:30,440 ეს არის დიდი, რადგან ერთ-ერთი თვისებები Google Maps API 66 00:03:30,440 --> 00:03:33,670 არის უნარი აღმოაჩინოს სადაც თქვენ გეოგრაფიულად 67 00:03:33,670 --> 00:03:36,850 თვალსაზრისით GPS კოორდინატები. 68 00:03:36,850 --> 00:03:40,210 >> ახლა დავიწყოთ გაერკვნენ, თუ როგორ უნდა დაიწყოს ჩვევების ეს ყველაფერი ერთად. 69 00:03:40,210 --> 00:03:42,900 ჩვენ მოცემული მთელი bunch განაწილების კოდი, 70 00:03:42,900 --> 00:03:44,970 ისევე როგორც MySQL მონაცემთა ბაზაში. 71 00:03:44,970 --> 00:03:49,100 სინამდვილეში, თუ მე გაიყვანოს phpMyAdmin მქონე უკვე იმპორტირებული, როგორც თქვენ მალე, 72 00:03:49,100 --> 00:03:54,800 pset8.SQL, დაინახავთ MySQL მაგიდა, რომელიც ასე გამოიყურება, ID სფეროში, ქვეყნის 73 00:03:54,800 --> 00:03:57,400 კოდი, საფოსტო კოდი, ადგილი სახელი და სხვა. 74 00:03:57,400 --> 00:04:00,490 სახის ყველა იმ სვეტები მე მიღებული, უბრალოდ, 75 00:04:00,490 --> 00:04:03,870 კითხულობს readme.text ფაილი აქ, რომ მითითებული 76 00:04:03,870 --> 00:04:07,330 თუ არა ველი რიცხვი, ან varchar ან მოსწონს. 77 00:04:07,330 --> 00:04:10,510 >> ამიტომ, ჩვენ შევქმენით, რომ მაგიდა თქვენ და მოცემული SQL ბრძანებები 78 00:04:10,510 --> 00:04:12,770 შეასრულოს, რათა შევქმნათ, რომ მაგიდაზე თქვენი საკუთარი მონაცემთა ბაზა, 79 00:04:12,770 --> 00:04:15,290 მაგრამ არსებობს რეალურად მონაცემები არ ამაზე. 80 00:04:15,290 --> 00:04:19,600 უფრო მეტიც, თქვენ აპირებთ უნდა ჩამოტვირთვა us.zip ან ნებისმიერი ქვეყნის zip 81 00:04:19,600 --> 00:04:21,500 შეიტანოს, რომ URL არსებობს. 82 00:04:21,500 --> 00:04:24,940 და მაშინ ვაპირებთ უნდა დაწეროს ბრძანების სკრიპტი PHP, რომ 83 00:04:24,940 --> 00:04:28,420 ვაპირებ გახსნას, რომ ტექსტი შეიტანოს, iterate მისი ხაზები, 84 00:04:28,420 --> 00:04:31,180 და შემდეგ თითოეული იმ ხაზები გავაკეთოთ ჩასმა 85 00:04:31,180 --> 00:04:34,940 შევიდა, რომელიც განათავსებს მაგიდა თქვენი MySQL მონაცემთა ბაზაში. 86 00:04:34,940 --> 00:04:37,880 ასე რომ, ეს პროცესი დასასრულს, თქვენ არ აწარმოებს, რომ სცენარი საბოლოოდ 87 00:04:37,880 --> 00:04:39,610 მხოლოდ ერთხელ თეორია. 88 00:04:39,610 --> 00:04:41,780 სინამდვილეში თქვენ ალბათ გაუშვით რამოდენიმე ჯერ 89 00:04:41,780 --> 00:04:45,460 ხოლო ცდილობს დააფიქსიროს სხვადასხვა შეცდომებს. 90 00:04:45,460 --> 00:04:48,440 >> საბოლოო ჯამში, თქვენ აპირებს აქვს მართლაც დიდი მონაცემთა ბაზა ათასობით 91 00:04:48,440 --> 00:04:50,139 და ათასობით გეოგრაფიული რიგები. 92 00:04:50,139 --> 00:04:52,930 მაშინ თქვენ აპირებს დააყენოს, რომ იმპორტი script გარდა კიდევ ის სამუშაო 93 00:04:52,930 --> 00:04:55,140 და თქვენს მონაცემთა ბაზაში არის ლამაზი და სწორი, ხოლო შემდეგ 94 00:04:55,140 --> 00:04:58,880 თქვენ აპირებს გადავიდეს რეალურად ახორციელებს mashup თავად. 95 00:04:58,880 --> 00:05:01,670 Mashup აპირებს გამოიყურებოდეს ცოტა რაღაც მსგავსი. 96 00:05:01,670 --> 00:05:05,165 ამავე mashup.cs50.net, ჩვენ აქვს პერსონალის გადაწყვეტა 97 00:05:05,165 --> 00:05:06,990 რომ გამოიყურება პატარა რაღაც მსგავსი. 98 00:05:06,990 --> 00:05:11,070 მართლაც, თუ მე დააჭირეთ ამ გაზეთი ხატი კემბრიჯი, მასაჩუსეტსი, 99 00:05:11,070 --> 00:05:13,300 დაინახავთ spinning icon მოკლედ და შემდეგ 100 00:05:13,300 --> 00:05:16,370 უბრძანა სიაში, ბურთულებიანი სია სტატიები 101 00:05:16,370 --> 00:05:18,280 დაკავშირებული კემბრიჯი, მასაჩუსეტსი. 102 00:05:18,280 --> 00:05:20,352 თუ მე დააწკაპუნეთ Charlestown, Massachusetts, 103 00:05:20,352 --> 00:05:21,685 მე ვხედავ იგივე ქალაქია. 104 00:05:21,685 --> 00:05:24,174 და თუ მე დააკლიკეთ WATERTOWN, მასაჩუსეტსის, 105 00:05:24,174 --> 00:05:26,090 იქ არ უნდა იყოს ნებისმიერი ახალი ამბები from Watertown, 106 00:05:26,090 --> 00:05:28,630 ასე რომ თქვენ ხედავთ, რაღაც როგორც ნელი news ყოველდღე. 107 00:05:28,630 --> 00:05:32,140 >> ახლა კი, ამ დროს, ზედა მარცხენა რამდენიმე ნაცნობი Google Maps კონტროლი 108 00:05:32,140 --> 00:05:34,980 ნება თქვენ დააშორებს, პან up, down, მარცხნივ და მარჯვნივ, 109 00:05:34,980 --> 00:05:37,360 არამედ საძიებო ველში, რომ ჩვენ იქ. 110 00:05:37,360 --> 00:05:40,910 ასე რომ, თუ მე მოძებნოთ, გულწრფელად, მხოლოდ სხვა საფოსტო ინდექსი ვიცი, 111 00:05:40,910 --> 00:05:45,020 90210, ჩვენ რეალურად ვხედავთ Beverly Hills, California. 112 00:05:45,020 --> 00:05:48,550 როდესაც დაწკაპავთ გამახსენა California და მთელი bunch 113 00:05:48,550 --> 00:05:50,369 საინფორმაციო შესახებ Beverly Hills. 114 00:05:50,369 --> 00:05:51,910 ახლა შეამჩნია, ძალიან, იქ რა მოხდა. 115 00:05:51,910 --> 00:05:57,040 თუ მე ამ დროს ძიების 02138 ან თუნდაც Cambridge მძიმით Massachusetts ან რამდენიმე 116 00:05:57,040 --> 00:06:00,300 ვარიანტი მისი, თქვენ მიიღებთ პატარა autocomplete dropdown. 117 00:06:00,300 --> 00:06:03,840 ახლა ამ გამოყენებით მოდული ბიბლიოთეკა მოუწოდა jQuery, 118 00:06:03,840 --> 00:06:05,732 და რომ მოდული ეწოდება typeahead. 119 00:06:05,732 --> 00:06:07,440 ჩვენ უბრალოდ წავიკითხე მეშვეობით დოკუმენტაცია, 120 00:06:07,440 --> 00:06:13,150 გადმოწერილი Js ფაილი ინტეგრირებული შევიდა განაწილების კოდი ისე, რომ თქვენ 121 00:06:13,150 --> 00:06:16,900 საბოლოოდ შეუძლია დაწეროს კოდი, რომელიც ავსებს, რომ dropdown menu ერთად ავტო 122 00:06:16,900 --> 00:06:19,350 არჩევანი ან განცხადება წინადადებები. 123 00:06:19,350 --> 00:06:23,820 >> ახლა განაწილების კოდი, მიუხედავად იმისა, რომ თქვენ მიიღო არ აკეთებს თითქმის იმდენი. 124 00:06:23,820 --> 00:06:26,860 თქვენ მიიღებთ Google Map ჩართული, და თქვენ მიიღებთ კონტროლის ზედა მარცხენა, 125 00:06:26,860 --> 00:06:28,240 და თქვენ მიიღებთ საძიებო ველში. 126 00:06:28,240 --> 00:06:32,760 მაგრამ თუ მე აკრიფოთ რაღაც 02138, არ ადგილები ნაპოვნი არ არის. 127 00:06:32,760 --> 00:06:34,730 ასე რომ, ეს იქნება ერთი ჩვენი მიზნები აქ. 128 00:06:34,730 --> 00:06:37,430 უფრო მეტიც, თუ თქვენ მიიღოს ნაბიჯი უკან და შევხედოთ რუკა თავად, 129 00:06:37,430 --> 00:06:38,950 არ არსებობს news განაწილებაზე. 130 00:06:38,950 --> 00:06:41,780 მაშინაც კი, თუ მე დააჭირეთ და drag, არ მარკერები რეალურად 131 00:06:41,780 --> 00:06:45,560 როგორც ჩანს, ახალი ამბების იმიტომ, რომ გამოწვევა რჩება ასევე. 132 00:06:45,560 --> 00:06:48,490 >> მოდით შევხედოთ შემდეგ განაწილების კოდი. 133 00:06:48,490 --> 00:06:51,460 ერთხელ თქვენ გადმოწერილი pset8.zip და unzipped მას 134 00:06:51,460 --> 00:06:54,430 თქვენი vhost დირექტორია CS50 ელექტრო მოწყობილობების, 135 00:06:54,430 --> 00:06:56,550 დაინახავთ ამ დირექტორიები აქ შიგნით. 136 00:06:56,550 --> 00:07:00,200 Bin-- რომელიც ზოგადად დგას ორობითი შესრულებადი პროგრამების 137 00:07:00,200 --> 00:07:04,870 მოიცავს, როგორც pset7, ზოგიერთი PHP ფაილი, რომელიც სხვა ფაილი მოიცავს, 138 00:07:04,870 --> 00:07:06,710 შემდეგ საჯარო, რომელიც ფაილი, რომელიც უნდა 139 00:07:06,710 --> 00:07:09,369 უნდა იყოს საჯაროდ ხელმისაწვდომი მომხმარებელი ბრაუზერში. 140 00:07:09,369 --> 00:07:11,410 მოდით შევხედოთ ბინ კატალოგი, და ჩვენ 141 00:07:11,410 --> 00:07:13,890 , რომ არსებობს ფაილი იქ უკვე მოუწოდა იმპორტი. 142 00:07:13,890 --> 00:07:17,591 თუ ჩვენ გახსნა ამ gedit, ჩვენ დავინახავთ, რომ, სამწუხაროდ, იქ არ არის ბევრი 143 00:07:17,591 --> 00:07:18,090 არსებობს. 144 00:07:18,090 --> 00:07:20,250 ყველა, რომ არსებობს, თუმცა, არის shebang ზედა 145 00:07:20,250 --> 00:07:23,410 რომელიც განსაზღვრავს, რომელიც interpreter-- ამ შემთხვევაში PHP-- 146 00:07:23,410 --> 00:07:25,759 გამოყენებული უნდა იქნას რეალურად შეასრულოს ამ ფაილის. 147 00:07:25,759 --> 00:07:27,550 მაგრამ შემდეგ, სადაც იგი აცხადებს TODO არის, სადაც თქვენ 148 00:07:27,550 --> 00:07:31,130 აპირებთ უნდა დაეწერა რაღაც კოდი რომ ალბათ მოითხოვს config 149 00:07:31,130 --> 00:07:35,820 ფაილი, რომელიც არის მოიცავს დირექტორია როგორც ჩვენ გავაკეთეთ ადრე ერთად PHP ფაილი. 150 00:07:35,820 --> 00:07:38,180 და მაშინ თქვენ აპირებს უნდა როგორმე გახსნას 151 00:07:38,180 --> 00:07:41,920 us.text რომელიც თქვენ სავარაუდოდ არ unzipped უკვე. 152 00:07:41,920 --> 00:07:44,690 მაშინ თქვენ აპირებთ უნდა გადაურბინოთ ხაზები, რომ ფაილი, 153 00:07:44,690 --> 00:07:47,800 შესაძლოა, გარკვეული ფუნქციები შესთავაზა დაზუსტება. 154 00:07:47,800 --> 00:07:51,390 შემდეგ ჩადეთ თითოეული იმ ხაზები შევიდა MySQL მონაცემთა ბაზაში 155 00:07:51,390 --> 00:07:54,940 გამოყენებით შეკითხვის ფუნქცია, რომელიც ჩვენ ისევ იმ პირობით, თქვენ with-- 156 00:07:54,940 --> 00:07:58,010 ან მინიმუმ ვარიანტი აქედან გამომდინარე functions.php, 157 00:07:58,010 --> 00:07:59,560 რომელიც ჩვენ დავინახავთ, რაღაც მომენტში. 158 00:07:59,560 --> 00:08:04,430 >> ახლა მოდით დახუროს იმპორტისა და დაბრუნდეს ჩვენი დირექტორია და ამ დროს წასვლას 159 00:08:04,430 --> 00:08:05,300 მოიცავს. 160 00:08:05,300 --> 00:08:09,210 და თუ ls არსებობს, დაინახავთ სამი ფაილი საკმაოდ მოსწონს პრობლემა უცნობია 7. 161 00:08:09,210 --> 00:08:13,760 და მოდით მიიღოს სწრაფი შევხედოთ, მაგალითად, დილის config.php. 162 00:08:13,760 --> 00:08:16,730 იქ, არის ნაკლები ხაზები ვიდრე ადრე, და ეს 163 00:08:16,730 --> 00:08:20,712 როგორც ჩანს, ეს ფაილი შეიცავს constants.php და functions.php. 164 00:08:20,712 --> 00:08:23,670 ჩვენ გამოყენებით ოდნავ განსხვავებული ტექნიკა ამ დროს გარშემო რეალურად 165 00:08:23,670 --> 00:08:30,910 დააკონკრეტა, რომ ეს ფაილი არის ნათესავი მიმდინარე დირექტორია __ DIR__ 166 00:08:30,910 --> 00:08:35,280 წარმოადგენს რომელ დირექტორია ამ ფაილი, config.php, არის თავად. 167 00:08:35,280 --> 00:08:37,600 ასე რომ ეს არის უფრო გამოკვეთილ გზა განსაზღვროს 168 00:08:37,600 --> 00:08:40,100 რა სხვა ფაილი გსურთ მოითხოვს. 169 00:08:40,100 --> 00:08:44,020 >> ახლა თუ დახურო ეს ფაილი და გახსენით constants.php ნაცვლად, 170 00:08:44,020 --> 00:08:47,430 დაინახავთ ფაილი ძალიან თქვენში რომ პრობლემა არის მითითებული 7, ასევე, თუმცა 171 00:08:47,430 --> 00:08:50,050 სხვადასხვა მონაცემთა ბაზაში მოუწოდა pset8. 172 00:08:50,050 --> 00:08:54,020 ბოლოს და ბოლოს, functions.php, ჩვენ დავინახავთ, მხოლოდ ერთი ფუნქცია 173 00:08:54,020 --> 00:08:55,942 ამ დროს მოუწოდა შეკითხვაზე. 174 00:08:55,942 --> 00:08:59,150 ეს არის თითქმის იგივე გარდა ჩვენ გაუმკლავდეს შეცდომები ამ დროს გარშემო ცოტა 175 00:08:59,150 --> 00:09:02,860 სხვაგვარად, მაგრამ ეს გამოყენება ისევე, როგორც პრობლემა ნაკრები შვიდი. 176 00:09:02,860 --> 00:09:08,090 >> ახლა მოდით დავუბრუნდეთ ჩვენს pset8 დირექტორია, წასვლას საჯარო და იქ 177 00:09:08,090 --> 00:09:14,420 თუ ls, დაინახავთ გაკეთება articles.php, index.html, search.php, 178 00:09:14,420 --> 00:09:16,940 და update.php-- ყველა ფაილი. 179 00:09:16,940 --> 00:09:22,010 და მაშინ css შრიფტები, img, და js დირექტორია საკმაოდ მოსწონს pset7. 180 00:09:22,010 --> 00:09:24,660 >> მოდით შევხედოთ index.html, რომელიც 181 00:09:24,660 --> 00:09:27,290 იქნება ნამდვილად შესვლის წერტილი smashup. 182 00:09:27,290 --> 00:09:31,820 ახლა index.html, დაინახავთ, მთელი რამოდენიმე ბმული ელემენტების ხელმძღვანელი, 183 00:09:31,820 --> 00:09:36,540 კონკრეტულად, ჩატვირთვის ჩვენი საკუთარი CSS მოჰყვა მთელი bunch of script 184 00:09:36,540 --> 00:09:41,520 tags რამ, როგორიცაა რუკები, API თავისთავად, სპეციალური მარკერი ეტიკეტების 185 00:09:41,520 --> 00:09:44,950 უტილიტა, რომელიც ჩვენ ნახსენები დაზუსტება ხელმისაწვდომი, 186 00:09:44,950 --> 00:09:48,420 jQuery თავისთავად, ჩატვირთვის თავად, და კიდევ ერთი ბიბლიოთეკა 187 00:09:48,420 --> 00:09:50,990 მოუწოდა ხაზგასმა, რომელიც ჩვენ ვსაუბრობთ სპეც. 188 00:09:50,990 --> 00:09:57,031 Underscore.js როგორიცაა jquery.js არის JavaScript ბიბლიოთეკა 189 00:09:57,031 --> 00:10:00,280 რომელსაც აქვს მთელი bunch ფუნქციონალობას რომ ბევრი ადამიანი მსოფლიოში სურვილი 190 00:10:00,280 --> 00:10:02,020 არსებობდა JavaScript თავად. 191 00:10:02,020 --> 00:10:04,560 ასე რომ ყველა მათგანი რეალურად საკმაოდ პოპულარულია. 192 00:10:04,560 --> 00:10:07,140 ჩვენ ასევე აღნიშნა, typeahead რომელიც არის ბიბლიოთეკაში, რომ 193 00:10:07,140 --> 00:10:11,180 აკეთებს, რომ autocomplete dropdown და საბოლოოდ ბმული ჩვენი საკუთარი JavaScript. 194 00:10:11,180 --> 00:10:13,880 >> იმავდროულად, და, ალბათ, საბედნიეროდ, ამ mashup 195 00:10:13,880 --> 00:10:17,550 ამოძრავებს შედარებით პატარა HTML ქვემოთ აქ ბოლოში. 196 00:10:17,550 --> 00:10:22,330 ცნობა, რომ ჩვენ მითითებული div in ჩვენი სხეულის კლასის კონტეინერი სითხე. 197 00:10:22,330 --> 00:10:24,610 ამ, თითო ჩატვირთვის მიერ დოკუმენტაცია, უბრალოდ 198 00:10:24,610 --> 00:10:29,840 იმას ნიშნავს, რომ ამ div აპირებს შეავსოთ ხედის ფანჯრის ან ბრაუზერის ფანჯრის სრულად. 199 00:10:29,840 --> 00:10:33,020 >> იმავდროულად, ქვემოთ, რომ ჩვენ გვაქვს div რომ გაიხსნა და მაშინვე დაიხურა 200 00:10:33,020 --> 00:10:34,790 უნიკალური ID რუკა ტილო. 201 00:10:34,790 --> 00:10:37,400 ეს ახლა არის Google Maps დოკუმენტაცია 202 00:10:37,400 --> 00:10:42,490 მისი API, რომლითაც მე უბრალოდ უნდა გაქვთ ცარიელი div რომელშიც მიეცეს, 203 00:10:42,490 --> 00:10:44,470 საბოლოო ჯამში, ფაქტობრივი Google Maps. 204 00:10:44,470 --> 00:10:46,310 მაგრამ უფრო, რომ მხოლოდ ცოტა. 205 00:10:46,310 --> 00:10:48,850 >> და ბოლოს, არსებობს ფორმა შიგნით აქ, რომელიც 206 00:10:48,850 --> 00:10:52,930 ახორციელებს ტექსტში ყუთი up ზედა მარცხენა ჩვენს ინტერფეისი ძებნას. 207 00:10:52,930 --> 00:10:54,730 ცნობა, რომ ჩვენ გამოყენებული ცოტა ჩატვირთვის 208 00:10:54,730 --> 00:10:57,670 აქ ძალიან რამ, როგორიცაა ფორმა inline და ფორმა ჯგუფი. 209 00:10:57,670 --> 00:11:00,080 ჩვენ, ყოფილ უნიკალური ID ფორმა. 210 00:11:00,080 --> 00:11:04,510 და შემდეგ, საბოლოო ჯამში, მე რეალურად შეყვანის ტიპის, რომელიც არის საკმაოდ ნაცნობი, 211 00:11:04,510 --> 00:11:06,440 რომლის ID არის ქ. 212 00:11:06,440 --> 00:11:07,230 მხოლოდ კონვენციას. 213 00:11:07,230 --> 00:11:09,234 Q for შეკითხვის შეეძლო უკვე მოუწოდა არაფერი. 214 00:11:09,234 --> 00:11:11,400 და შემდეგ placeholder, იმავდროულად, ქალაქი, სახელმწიფო, 215 00:11:11,400 --> 00:11:16,200 საფოსტო კოდი, რომელიც თქვენ ალბათ გახსოვთ, ხედავს ჩვენს mashup დემო ადრე. 216 00:11:16,200 --> 00:11:17,980 მოდით დახურვა ფაილი. 217 00:11:17,980 --> 00:11:24,460 >> ახლა შევხედოთ PHP ფაილი, რომელიც დაელოდება და შემდეგ JavaScript ფაილი. 218 00:11:24,460 --> 00:11:27,700 ჩვენი PHP ფაილი, ჩვენ გვაქვს უკვე განხორციელდა, თქვენ, 219 00:11:27,700 --> 00:11:29,960 მაგალითად, განახლებები. 220 00:11:29,960 --> 00:11:35,060 Update.php-- ჩვენ არ დახარჯოს დიდი დროის აქ მოკლედ 221 00:11:35,060 --> 00:11:38,400 არის ფაილი, რომ ჩვენი JavaScript კოდი აპირებს 222 00:11:38,400 --> 00:11:41,610 წიგნში მეშვეობით AJAX, რომ ასინქრონული ტექნიკა, რომელიც არის 223 00:11:41,610 --> 00:11:45,980 ჩაშენებული JavaScript ამ დღეებში, რომ აპირებს საშუალებას მოგვცემს ვთხოვო update.php 224 00:11:45,980 --> 00:11:47,410 დამატებითი ინფორმაციისათვის. 225 00:11:47,410 --> 00:11:50,045 >> კერძოდ, ნებისმიერ დროს მომხმარებლის ტრანსვესტიტები რუკა 226 00:11:50,045 --> 00:11:53,310 ან ასრულებს ძიების, რომ გადასვლა მომხმარებელი სხვა ადგილას, 227 00:11:53,310 --> 00:11:55,250 ჩვენი JavaScript კოდი, როგორც ჩვენ მალე, არის 228 00:11:55,250 --> 00:11:59,610 ვაპირებ მოვუწოდო update.php და ითხოვენ 10 ან იმდენად მარკერები 229 00:11:59,610 --> 00:12:02,630 ფარგლებში ხედის დაფუძნებული on GPS კოორდინატები 230 00:12:02,630 --> 00:12:06,510 ზედა და ქვედა კუთხეში რომ რუკაზე. 231 00:12:06,510 --> 00:12:10,520 ჩვენ შეგვიძლია მაშინ აივსო რუკა არის, რომ მომხმარებლის გადავიდა ეკრანზე, რათა 232 00:12:10,520 --> 00:12:14,210 რომ 10 ალბათ new მარკერები სხვადასხვა ქალაქებში. 233 00:12:14,210 --> 00:12:18,340 იმავდროულად, ეს ფაილი საბოლოოდ აპირებს შეასრულოს SQL query 234 00:12:18,340 --> 00:12:21,680 წინააღმდეგ ჩვენი მონაცემთა ბაზა მაგიდა სახელწოდებით ადგილებში, რომელიც 235 00:12:21,680 --> 00:12:26,380 დაბრუნებას აპირებს იმ 10 ან ნაკლები ადგილას. 236 00:12:26,380 --> 00:12:32,620 >> იმავდროულად, articles.php, კიდევ ერთი წარადგინოს ჩვენ წერილობითი მთლიანად. 237 00:12:32,620 --> 00:12:35,820 ეს არის ძალიან მსგავსი სულისკვეთებით პრობლემა Set 7 საძიებელი ფუნქცია, 238 00:12:35,820 --> 00:12:39,450 რომელიც დაუკავშირდა Yahoo Finance თქვენთვის. 239 00:12:39,450 --> 00:12:43,710 ეს ფაილი კონტაქტები Google News თქვენ, საბოლოო ჯამში, grabbing 240 00:12:43,710 --> 00:12:46,050 მანქანით წაკითხვადი version-- რაღაც 241 00:12:46,050 --> 00:12:49,720 ე.წ. RSS format-- საინფორმაციო კემბრიჯის ან Beverly Hills 242 00:12:49,720 --> 00:12:52,880 ან რასაც ქალაქის თქვენ ჩხრეკა for ეფუძნება, რომ geoparameter. 243 00:12:52,880 --> 00:12:57,250 ჩვენ გარჩევის რომ RSS, რომელიც მხოლოდ ტიპის markup ენის მოუწოდა XML, 244 00:12:57,250 --> 00:13:00,740 და მაშინ ჩვენ რეალურად დაუბრუნონ იგი თქვენს ბრაუზერში 245 00:13:00,740 --> 00:13:03,570 და თქვენი JavaScript კოდი, კერძოდ, ფორმატი მოუწოდა 246 00:13:03,570 --> 00:13:06,097 JSON, JavaScript Object ნოტაცია. 247 00:13:06,097 --> 00:13:08,180 ახლა თქვენ დაინახავთ specification-- ჩვენ აღვნიშნო, რომ თქვენ 248 00:13:08,180 --> 00:13:10,720 როგორ შეგიძლიათ რეალურად ვხედავ ზოგიერთი JSON უახლოეს back-- 249 00:13:10,720 --> 00:13:15,210 რომ ეს ფუნქცია საბოლოოდ გაძლევთ populate იმ popup მენიუები ასე 250 00:13:15,210 --> 00:13:16,960 რომ როდესაც თქვენ დააჭირეთ on მარკერის რუკა 251 00:13:16,960 --> 00:13:19,430 თქვენ რეალურად ვხედავ მთელი bunch ტყვიები, რომელთაგან თითოეული 252 00:13:19,430 --> 00:13:21,020 ბმულები სტატია. 253 00:13:21,020 --> 00:13:25,000 >> ახლა მოდით შევხედოთ ერთი ბოლო PHP ფაილი, რომელიც, საბედნიეროდ, არ 254 00:13:25,000 --> 00:13:27,970 აქვს ბევრი აპირებს on-- უბრალოდ საკმაოდ დიდი TODO. 255 00:13:27,970 --> 00:13:32,170 ახლა ეს ფაილი აცხადებს მასივი მოუწოდა ადგილებში. 256 00:13:32,170 --> 00:13:35,980 და მაშინ საბოლოოდ ანაბეჭდები რომ მასივი JSON format-- 257 00:13:35,980 --> 00:13:38,720 pretty-ბეჭდვა ეს მხოლოდ ისე, რომ რამ ადვილია გამართვისა. 258 00:13:38,720 --> 00:13:41,480 სამწუხაროდ, შუა არსებობს ამ TODO, 259 00:13:41,480 --> 00:13:46,890 რომელიც მოუწოდებს გაძლევთ მოძებნოთ მონაცემთა ადგილებში შესატყვისი geo HTTP 260 00:13:46,890 --> 00:13:47,490 პარამეტრი. 261 00:13:47,490 --> 00:13:49,865 >> და, მართლაც, ამ აპირებს იყოს ერთი თქვენი challenges-- 262 00:13:49,865 --> 00:13:54,240 განახორციელოს ამ ფუნქციის აქ ასე რომ, როდესაც თქვენ დაუკავშირდით ეს ფაილი 263 00:13:54,240 --> 00:14:00,610 URL მოსწონს ძებნა. php? geo = რაღაც, თქვენი კოდი საბოლოოდ დაბრუნების JSON 264 00:14:00,610 --> 00:14:05,020 მასივი ყველა ადგილას თქვენი მონაცემთა ბაზის ცხრილში რომ ემთხვევა, რომ შეყვანა. 265 00:14:05,020 --> 00:14:08,960 ასე რომ, თუ მომხმარებლის ტიპის Cambridge, თქვენი ფაილი აქ search.php 266 00:14:08,960 --> 00:14:12,680 საბოლოოდ დაბრუნების JSON მასივი ყველა მატჩი კემბრიჯის, 267 00:14:12,680 --> 00:14:16,990 რომელიც შეიძლება იყოს Massachusetts მაგრამ შეიძლება იყოს კიდევ სადმე სხვაგან. 268 00:14:16,990 --> 00:14:21,040 >> და ბოლოს, მოდით შევხედოთ ორი ფაილი, რომელიც არის სტატიკური ultimately-- 269 00:14:21,040 --> 00:14:23,680 თქვენი CSS ფაილი და თქვენი JavaScript ფაილი. 270 00:14:23,680 --> 00:14:26,779 თუ მე წასვლას ჩვენი CSS დირექტორია, არსებობს მთელი bunch of ფაილი არსებობს, 271 00:14:26,779 --> 00:14:28,070 მაგრამ მათი უმრავლესობა ბიბლიოთეკები. 272 00:14:28,070 --> 00:14:31,530 მე ვაპირებ შევხედოთ, კერძოდ, styles.css, 273 00:14:31,530 --> 00:14:35,440 რაც ჩვენი გლობალური CSS, რომ აპირებს stylize ეს მთელი mashup. 274 00:14:35,440 --> 00:14:38,840 მე დატოვოს იგი წაიკითხოთ მეშვეობით კომენტარები შესაბამისად, მაგრამ, მოკლედ, 275 00:14:38,840 --> 00:14:43,490 ეს არის CSS, რომელიც უზრუნველყოფს, რომ ჩვენი mashup, ჩვეულებრივ იმ ყუთი, 276 00:14:43,490 --> 00:14:46,950 გამოიყურება ზუსტად ისე, როგორც ჩვენ გვინდა it-- რუკის შევსების კალენდარი პორტი 277 00:14:46,950 --> 00:14:49,720 და ძებნის ყუთი up ზედა მარცხენა. 278 00:14:49,720 --> 00:14:52,870 ჩვენ ასევე მიღებული თავისუფლების stylizing რომ typeahead dropdown 279 00:14:52,870 --> 00:14:55,170 მენიუ ცოტა, ისევე. 280 00:14:55,170 --> 00:14:58,030 >> ყველაზე მნიშვნელოვანი ფაილი ალბათ, ამ პრობლემის მითითებული 281 00:14:58,030 --> 00:15:01,070 ეს არის ბოლო ერთი, scripts.js. 282 00:15:01,070 --> 00:15:03,800 შიგნით თქვენი JS დირექტორია კიდევ უფრო ფაილი. 283 00:15:03,800 --> 00:15:08,090 ყველა მათგანი ბიბლიოთეკის ფაილი გარდა ამ ერთი, scripts.js. 284 00:15:08,090 --> 00:15:11,460 თუ ჩვენ გახსნა up, ავიღოთ ჩვენი ფინალური ტური მეშვეობით ფუნქციები, რომელიც 285 00:15:11,460 --> 00:15:13,820 ჩაშენებული ეს ფაილი თქვენ და ყურადღებას 286 00:15:13,820 --> 00:15:16,200 რომ TODOs რომ კიდევ წინ. 287 00:15:16,200 --> 00:15:19,110 >> ზედა ფაილი, სამი გლობალური ცვლადები. 288 00:15:19,110 --> 00:15:22,910 ერთი რუკა, რომელიც აპირებს იყოს მინიშნება ჩვენი Google რუკა. 289 00:15:22,910 --> 00:15:25,510 შეგიძლიათ წარმოიდგინოთ, რომ ეს სახის მაჩვენებელი. 290 00:15:25,510 --> 00:15:27,710 იმავდროულად, ჩვენ გვაქვს სხვა გლობალური ცვლადი 291 00:15:27,710 --> 00:15:31,500 მოუწოდა ინფორმაცია, რომელიც, როგორც ჩანს, შენახვის დაბრუნების ღირებულება ზარი 292 00:15:31,500 --> 00:15:34,170 ახალი google.maps.InfoWindow. 293 00:15:34,170 --> 00:15:37,835 JavaScript ოპერირებს ობიექტი, რომელიც ძალიან მსგავსი სულისკვეთება Struts. 294 00:15:37,835 --> 00:15:40,250 და რა ეს ხაზი ჩვენი მიზნებისთვის აკეთებს 295 00:15:40,250 --> 00:15:42,820 ქმნის ახალ ინფორმაცია window მეხსიერება და შემდეგ 296 00:15:42,820 --> 00:15:46,330 შენახვა გარშემო მინიშნება მასთან ცვლადში ინფორმაცია. 297 00:15:46,330 --> 00:15:48,330 და მათ შორის, ვინც, იმავდროულად, არის ის, რაც, როგორც ჩანს, 298 00:15:48,330 --> 00:15:51,060 უნდა იყოს ცარიელი JavaScript მასივი მოუწოდა მარკერები. 299 00:15:51,060 --> 00:15:55,392 ყველა იმ გაზეთის ხატები, ან თქვენ შესაძლოა აირჩიოს სხვა ხატი საერთოდ, 300 00:15:55,392 --> 00:15:57,350 ვაპირებთ იყოს შენახული საბოლოო ჯამში ამ მასივი 301 00:15:57,350 --> 00:16:01,570 ასე რომ ჩვენ შეგვიძლია ძალიან ადვილად რჩეულებში რუკა და ამოიღონ მათ რუკაზე. 302 00:16:01,570 --> 00:16:03,990 >> ახლა მოდით გადახვევა ქვემოთ ცოტა და პროგრამირებაში 303 00:16:03,990 --> 00:16:07,690 მეშვეობით კოდი, რომელიც იქნება შესრულებული, როგორც კი DOM ან დოკუმენტი 304 00:16:07,690 --> 00:16:10,480 ობიექტის მოდელი და გვერდზე თავად მზად არის. 305 00:16:10,480 --> 00:16:12,942 შეგახსენებთ, რომ ეს სინტაქსი აქ უბრალოდ აკონკრეტებს 306 00:16:12,942 --> 00:16:14,900 რომ შემდეგი კოდი უნდა განხორციელდეს მხოლოდ 307 00:16:14,900 --> 00:16:17,840 როდესაც ბრაუზერის დაასრულა ჩატვირთვის ყველაფერი. 308 00:16:17,840 --> 00:16:19,750 >> ჩვენ გამოვაცხადებთ მთელი bunch of სტილის, 309 00:16:19,750 --> 00:16:22,410 რომელიც დასრულდება up stylizing რუკაზე თითო სპეც. 310 00:16:22,410 --> 00:16:24,790 ჩვენ მაშინ განაცხადოს მთელი bunch of პარამეტრები, 311 00:16:24,790 --> 00:16:28,630 რომელიც შემდგომი სახის Google რუკა, რომელიც ჩვენ შესახებ ხმა. 312 00:16:28,630 --> 00:16:32,090 ჩვენ მაშინ გამოიყენოს ცოტა jQuery კოდი, რომელიც განმარტა ცოტა უფრო დეტალურად 313 00:16:32,090 --> 00:16:35,000 სპეც, რათა დაიბრუნოს რომ ელემენტს, რუკა ტილო 314 00:16:35,000 --> 00:16:36,980 რომ ჩვენ ასე ცალსახად განსაზღვრული. 315 00:16:36,980 --> 00:16:40,640 და შემდეგ ეს ხაზი აქ რა ჩანს magically მოგვცეს 316 00:16:40,640 --> 00:16:43,560 Google რუკა შიგნით ჩვენი საკუთარი განცხადების საფუძველზე, 317 00:16:43,560 --> 00:16:47,020 შენახვის მინიშნება მასთან ამ ცვლადში რუკაზე. 318 00:16:47,020 --> 00:16:50,550 >> და ბოლოს, ქვემოთ აქ ჩვენ რეგისტრაცია რა მოუწოდა მსმენელს. 319 00:16:50,550 --> 00:16:54,690 ვფიქრობ back-- გზა, გზა back-- კვირის ნულოვანი in CS50 320 00:16:54,690 --> 00:16:57,430 როცა ჩვენ შევხედეთ Scratch და თავისი მხარდაჭერა მეშვეობით გარეშე 321 00:16:57,430 --> 00:16:59,935 მეშვეობით რამ მოუწოდა ღონისძიებები და მაუწყებლობს. 322 00:16:59,935 --> 00:17:01,810 თქვენ შეიძლება არ გამოიყენება იგი საკუთარ თავს, მაგრამ ეს 323 00:17:01,810 --> 00:17:03,900 მექანიზმი, რომლის დროსაც ბრაუზერის ამ შემთხვევაში 324 00:17:03,900 --> 00:17:07,940 შეგიძლიათ მიიღოთ ჩვენს ყურადღებას, როდესაც ეს მზად რეალურად შეასრულოს ზოგიერთი კოდი. 325 00:17:07,940 --> 00:17:12,170 ამ შემთხვევაში, ის აპირებს მოუსმინოთ რუკის ღონისძიება სახელწოდებით მოჩვენებითი. 326 00:17:12,170 --> 00:17:14,930 ეს ნიშნავს, რომ ბრაუზერის აქვს დასრულდა ჩატვირთვისას Google რუკა. 327 00:17:14,930 --> 00:17:18,380 ამ ეტაპზე ფუნქცია მოუწოდა კონფიგურაცია უნდა, საბოლოო ჯამში, 328 00:17:18,380 --> 00:17:19,339 შესრულდება. 329 00:17:19,339 --> 00:17:22,510 რომ ფუნქცია, კონფიგურაცია, ჩვენ დავინახავთ, მიერ დაწერილი us. 330 00:17:22,510 --> 00:17:24,550 >> ახლა ქვემოთ აქ არის ფუნქცია რომ, სამწუხაროდ, 331 00:17:24,550 --> 00:17:25,871 მხოლოდ TODO add მარკერი. 332 00:17:25,871 --> 00:17:28,620 პოსტი სპეც. თქვენ აპირებთ უნდა დაწერა კოდი, რომელიც რეალურად 333 00:17:28,620 --> 00:17:32,840 დასძენს marker-- თუ არა ეს გამოიყურება როგორც გაზეთში, ან thumb tack, 334 00:17:32,840 --> 00:17:35,360 ან რამე else-- Google რუკა. 335 00:17:35,360 --> 00:17:37,720 აქ არის ის არის, რომ ფუნქცია ე.წ. კონფიგურაცია. 336 00:17:37,720 --> 00:17:40,390 მე დავტოვებთ მას, რომ თქვენ წაიკითხოთ ამ უფრო დეტალურად, 337 00:17:40,390 --> 00:17:42,600 მაგრამ გახსოვდეთ, რომ ჩვენ დაამატოთ bunch მეტი მსმენელი 338 00:17:42,600 --> 00:17:46,620 ასე რომ ჩვენ შეგვიძლია შეასრულოს კოდი, როდესაც მომხმარებელი დააჭერს და ტრანსვესტიტები რუკაზე. 339 00:17:46,620 --> 00:17:50,730 ჩვენ ასევე გვაქვს კოდი აქ, რომ ველში რომ typeahead მოდული 340 00:17:50,730 --> 00:17:53,120 ისე, რომ dropdown მენიუ რეალურად მუშაობს. 341 00:17:53,120 --> 00:17:55,690 >> მაგრამ მოდით ფოკუსირება მხოლოდ რამდენიმე ადგილებში შესაბამისად. 342 00:17:55,690 --> 00:17:57,590 კერძოდ, ეს უნდა გავაკეთოთ აქ. 343 00:17:57,590 --> 00:18:00,410 მე თვლიან ონლაინ დოკუმენტაცია და დაზუსტება 344 00:18:00,410 --> 00:18:02,530 როგორ უნდა შეავსოთ ამ TODO. 345 00:18:02,530 --> 00:18:05,890 მაგრამ მოკლედ, ამ ბიბლიოთეკაში typeahead საშუალებას გაძლევთ გაივლის 346 00:18:05,890 --> 00:18:09,790 რა საყოველთაოდ ცნობილია, როგორც შაბლონი, რომელსაც აქვს რამდენიმე ცვლადი placeholders 347 00:18:09,790 --> 00:18:13,690 ძალიან მსგავსი სულისკვეთება printf ს%. * s. 348 00:18:13,690 --> 00:18:16,030 მაგრამ ამ შემთხვევაში, თარგი თითო Spec 349 00:18:16,030 --> 00:18:18,760 გაძლევთ საშუალებას რა ცვლადები გსურთ 350 00:18:18,760 --> 00:18:24,880 მიეცეს მონაცემები, მოდის უკან რაღაც PHP 351 00:18:24,880 --> 00:18:29,810 ფაილი, რომელიც თქვენ წერილობითი რომ ასხივებენ JSON გამომავალი. 352 00:18:29,810 --> 00:18:35,170 >> ახლა ქვემოთ აქ მიხვდებიან, რომ ჩვენ მოსმენის typeahead არჩევანი 353 00:18:35,170 --> 00:18:38,050 როდესაც მომხმარებელს რეალურად ატარებს ძიება და ირჩევს მნიშვნელობა. 354 00:18:38,050 --> 00:18:40,270 ეს არის თუ როგორ ჩვენ, ფაქტობრივად, მოისმენენ, რომ 355 00:18:40,270 --> 00:18:42,250 და შეასრულოს გარკვეული კოდი შედეგად. 356 00:18:42,250 --> 00:18:45,300 მაშინ ჩვენ გავაგრძელებთ კონფიგურაციის mashup უბრალოდ ცოტა. 357 00:18:45,300 --> 00:18:48,000 და, საბოლოო ჯამში, ჩვენ მოვუწოდებთ ეს ფუნქცია განახლება. 358 00:18:48,000 --> 00:18:49,640 განახლებები მარკერები ეკრანზე. 359 00:18:49,640 --> 00:18:51,529 უფრო, რომ რაღაც მომენტში. 360 00:18:51,529 --> 00:18:53,570 ამავდროულად, არსებობს რამდენიმე პატარა ფუნქციები აქ. 361 00:18:53,570 --> 00:18:56,820 რომელთაგან ერთი hideInfo რომელიც უბრალოდ ხურავს InfoWindow. 362 00:18:56,820 --> 00:19:00,020 სხვა ფუნქცია აქ, რაც, საბოლოო ჯამში, არ იქნება ძალიან დიდი ხანია, ამოიღონ მარკერები. 363 00:19:00,020 --> 00:19:03,580 რომ აპირებს გაუქმება რასაც თქვენი add მარკერის ფუნქცია აქვს. 364 00:19:03,580 --> 00:19:04,960 და შემდეგ ქვევით აქ არის მოძებნილი. 365 00:19:04,960 --> 00:19:08,610 და ეს ერთი არის საინტერესო, რადგან ჩვენ დაწერილი JavaScript კოდი, რომელიც არის 366 00:19:08,610 --> 00:19:13,490 დაველაპარაკები search.php შესახებ სერვერზე და დავუბრუნდეთ გარკვეული პასუხი. 367 00:19:13,490 --> 00:19:16,110 >> თქვენ, რა თქმა უნდა, ჯერ კიდევ უნდა განახორციელოს search.php, 368 00:19:16,110 --> 00:19:18,310 მაგრამ ჩვენ განხორციელდა JavaScript კოდი, რომელიც არის 369 00:19:18,310 --> 00:19:22,480 აპირებს გაუმკლავდეს ფაქტობრივად ასრულებენ ეძებს, რომ ტექსტში ყუთი. 370 00:19:22,480 --> 00:19:25,340 კერძოდ, ცნობა რომ ამ ფუნქციის აქ, 371 00:19:25,340 --> 00:19:29,160 ძებნა, არ მოვუწოდებთ search.php მეთოდით მოუწოდა 372 00:19:29,160 --> 00:19:31,072 მიიღეთ JSON, რომელიც ჩვენ ვნახეთ ლექციების. 373 00:19:31,072 --> 00:19:32,780 და სინტაქსი აქ არის პატარა სხვადასხვა 374 00:19:32,780 --> 00:19:37,110 ლექცია, რომ ჩვენ გამოყენებით jQuery ე.წ. დაპირება ინტერფეისი. 375 00:19:37,110 --> 00:19:38,479 უფრო, რომ სპეც. 376 00:19:38,479 --> 00:19:40,520 ეს უბრალოდ ნიშნავს, რომ ჩვენი მიზნებისათვის არის, რომ იქ 377 00:19:40,520 --> 00:19:43,870 ორი სპეციალური ფუნქციების ჩვენ უნდა მოვუწოდებთ ერთად dot notation 378 00:19:43,870 --> 00:19:46,230 აქ მაშინვე მოუწოდებს მიიღოს JSON. 379 00:19:46,230 --> 00:19:47,510 ერთი ეწოდება გაკეთდეს. 380 00:19:47,510 --> 00:19:49,870 ერთი ეწოდება ვერ. 381 00:19:49,870 --> 00:19:51,790 შეგიძლიათ წარმოიდგინოთ, რომ ეს როგორც წარმატება კურატორმა 382 00:19:51,790 --> 00:19:54,960 და მარცხი კურატორმა მხოლოდ იმ შემთხვევაში, თუ რაღაც მიდის არასწორი. 383 00:19:54,960 --> 00:19:57,760 >> ახლა მოდით შევხედოთ ბოლო რამდენიმე ფუნქციები ამ ფაილის. 384 00:19:57,760 --> 00:20:00,180 ქვემოთ აქ არის ფუნქცია მოუწოდა showInfo, რომელიც 385 00:20:00,180 --> 00:20:03,090 აჩვენებს ინფორმაცია ერთ იმ პატარა ინფორმაცია ფანჯრები, რომ 386 00:20:03,090 --> 00:20:05,380 pops up როდესაც მომხმარებელი იმოქმედებს მარკერი. 387 00:20:05,380 --> 00:20:08,470 ქვემოთ აქ უფრო არის რომ განახლების ფუნქცია 388 00:20:08,470 --> 00:20:10,510 რომ ჩვენ განვახორციელეთ თქვენთვის. 389 00:20:10,510 --> 00:20:15,250 იგი განსაზღვრავს საზღვრები რუკაზე. 390 00:20:15,250 --> 00:20:19,360 რა არის GPS კოორდინატები მისი ჩრდილო და სამხრეთ-დასავლეთ კუთხეში აქ. 391 00:20:19,360 --> 00:20:22,780 ჩვენ მზად რაღაც HDP პარამეტრები აქ და შემდეგ გაიარა მათ საბოლოოდ 392 00:20:22,780 --> 00:20:26,160 to update.php, რომელიც ჩვენ გვაქვს ასევე განხორციელდა თქვენთვის. 393 00:20:26,160 --> 00:20:31,390 რომ საბოლოოდ იღებს უკან ზოგიერთი JSON საწყისი ფაილი სახელად update.php 394 00:20:31,390 --> 00:20:34,050 და შემდეგ შლის ნებისმიერი მარკერები ეკრანზე 395 00:20:34,050 --> 00:20:36,650 და მაშინ iterates მეტი მონაცემები, რომ დავბრუნდებით 396 00:20:36,650 --> 00:20:40,350 საწყისი update.php, რომელიც ერთხელ არის მხოლოდ JSON მასივი. 397 00:20:40,350 --> 00:20:45,130 და მაშინ საბოლოოდ დასძენს მარკერის თითოეული იმ ადგილებში, გატარება მარცხი 398 00:20:45,130 --> 00:20:47,750 ან შეცდომები, რომლებიც შეიძლება ძალიან კარგად მოხდება. 399 00:20:47,750 --> 00:20:51,550 >> ახლა მხოლოდ გადმოგცეთ გემოვნების, თუ როგორ შეიძლება წავიდეს გამართვის ამ პროექტის, 400 00:20:51,550 --> 00:20:55,420 გააცნობიეროს, რომ მე გაიხსნა წინასწარ ამ tab აქ ამ URL, 401 00:20:55,420 --> 00:21:01,320 pset8 / articles.php? geo = 02138. 402 00:21:01,320 --> 00:21:04,050 ახლა, ისევ, სტატიები PHP ჩვენ განხორციელებული თქვენთვის 403 00:21:04,050 --> 00:21:06,320 ასე რომ, ეს არ არის იმდენად ის, რაც თქვენ უნდა გამოყენებით 404 00:21:06,320 --> 00:21:08,190 გამართვის, არამედ ტექნიკით. 405 00:21:08,190 --> 00:21:10,590 შეამჩნია, რომ მე ეძებდნენ კემბრიჯის ZIP კოდი აქ, 406 00:21:10,590 --> 00:21:15,260 და მე მიღებული თავში, მართლაც, JSON მასივი JSON ობიექტების შიგნით, რომელიც 407 00:21:15,260 --> 00:21:17,640 ორი keys-- ბმულზე და სათაური. 408 00:21:17,640 --> 00:21:19,860 >> ასე რომ, ეს ფუნქციონირებისთვის მუშაობს უკვე თქვენთვის. 409 00:21:19,860 --> 00:21:24,330 მაგრამ ამ ტექნიკას ხელით აპირებს რომ URL მოსწონს ეს რაღაც 410 00:21:24,330 --> 00:21:31,710 search.php? geo = კემბრიჯის ან 02138 ან მიუხედავად შესახებ უკვე აკრეფილი უნდა 411 00:21:31,710 --> 00:21:35,770 ადასტურებს, ფასდაუდებელი, როგორც თქვენ, საკუთარ თავს, ცდილობენ გაერკვნენ ზუსტად თუ რატომ 412 00:21:35,770 --> 00:21:38,510 search.php მუშაობს თუ არა. 413 00:21:38,510 --> 00:21:41,720 >> საბოლოო ჯამში, მაშინ, თქვენ უნდა რამდენიმე TODOs წინ თქვენ. 414 00:21:41,720 --> 00:21:44,250 თქვენ აპირებს პირველი იარაღები რომ იმპორტის სცენარი, რომ 415 00:21:44,250 --> 00:21:46,520 ნათქვამია us.text თქვენს მონაცემთა ბაზაში. 416 00:21:46,520 --> 00:21:48,760 თქვენ მაშინ აპირებს უნდა განახორციელოს search.php 417 00:21:48,760 --> 00:21:51,320 ისე, რომ იგი იქცევა ზუსტად მითითებული. 418 00:21:51,320 --> 00:21:54,170 თქვენ მაშინ აპირებს მინდა ფოკუსირება scripts.js 419 00:21:54,170 --> 00:21:57,520 და საბოლოოდ ახორციელებს იმ რამდენიმე TODOs, 420 00:21:57,520 --> 00:21:59,950 მათ შორის კონფიგურაცია და რომ template, 421 00:21:59,950 --> 00:22:03,220 რჩეულებში მარკერები, ამოიღონ მარკერები და შემდეგ ბოლო, მაგრამ არანაკლებ, ერთი 422 00:22:03,220 --> 00:22:04,330 პირადი შეხება. 423 00:22:04,330 --> 00:22:07,477 >> მას შემდეგ, რაც თქვენ გაქვთ თქვენი mashup სამუშაო საკმაოდ, როგორიც ჩვენია, მიზანი მხრივ 424 00:22:07,477 --> 00:22:09,560 თქვენთვის დაამატოთ პირადი შეეხოთ თქვენი mashup, 425 00:22:09,560 --> 00:22:11,290 თუ არა ეს ესთეტიკური და ფუნქციური. 426 00:22:11,290 --> 00:22:13,950 მიიღოს mashup ოდესმე ასე ოდნავ მომდევნო დონეზე. 427 00:22:13,950 --> 00:22:18,330 ასე რომ, სანამ დააყენებს თავს მიღმა თქვენი მნიშვნელოვანია იმ სპეც თავად 428 00:22:18,330 --> 00:22:20,840 და შეარჩიო ერთი ტექნიკა ახალი, თუნდაც ეს მხოლოდ 429 00:22:20,840 --> 00:22:25,610 რაღაც ესთეტიკური როგორიცაა შეცვლის განლაგება რუკაზე რომ თქვენ იყენებთ, 430 00:22:25,610 --> 00:22:28,070 ფარგლებში, რომ ჩვენ ველით კმაყოფილი იქნება. 431 00:22:28,070 --> 00:22:30,260 რომ არის მაშინ პრობლემა Set 8 Mashup. 432 00:22:30,260 --> 00:22:33,070 ადევნეთ თვალყური მეტი დაზუსტება და საუკეთესო luck 433 00:22:33,070 --> 00:22:36,400 მოგვარება ამ, თქვენი ბოლო CS50 პრობლემა კომპლექტი ოდესმე. 434 00:22:36,400 --> 00:22:39,750 >> [მუსიკალური სათამაშო] 435 00:22:39,750 --> 00:22:43,542