1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [9 सप्ताह] 2 00:00:02,570 --> 00:00:04,740 [डेविड जे Malan हार्वर्ड विश्वविद्यालय] 3 00:00:04,740 --> 00:00:07,170 [यह CS50 है. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 सही सभी. वापस स्वागत है. इस CS50 है, और यह 9 सप्ताह की शुरुआत है. 5 00:00:12,350 --> 00:00:16,600 आज हम डिजाइन, अब नहीं है पर सी के संदर्भ में विशेष रूप से ध्यान केंद्रित 6 00:00:16,600 --> 00:00:20,010 लेकिन PHP के संदर्भ और SQL का एक सा और जावास्क्रिप्ट के एक बिट में, 7 00:00:20,010 --> 00:00:23,730 विशेष रूप से दोनों 7 pset के अंत की ओर है और यह भी अपने अंतिम परियोजना. 8 00:00:23,730 --> 00:00:26,310 वास्तव में, यदि आप अपने अंतिम परियोजना में उस बिंदु पर कर रहे हैं 9 00:00:26,310 --> 00:00:30,100 जहां संभवतः या तो एक घंटे पहले आप के रूप में कम से कम करने के लिए कुछ सोचा देना शुरू कर दिया 10 00:00:30,100 --> 00:00:33,730 अपने अंतिम परियोजना के लिए और आप सोच रहे हैं आप 1 या 2 सहपाठियों के साथ सहयोग करना चाहते हैं, 11 00:00:33,730 --> 00:00:36,150 अगर आप परेशानी हो रही है के साथ जोड़ने के सहपाठियों ने कहा, 12 00:00:36,150 --> 00:00:40,570 बाहर cs50.net/partners/form पर फार्म भरने के लिए स्वतंत्र महसूस हो रहा है. 13 00:00:40,570 --> 00:00:42,880 यह सिर्फ आपसे पूछता है कि आप कौन हैं, परियोजना की तरह क्या आप के बारे में सोच रहे हैं, 14 00:00:42,880 --> 00:00:44,870 जहां आप साजो कारणों के लिए रहते हैं. 15 00:00:44,870 --> 00:00:49,510 और फिर अगर आप पर अगले सप्ताह या तो स्प्रेडशीट वहाँ यूआरएल पर नजर रखना चाहते हैं, 16 00:00:49,510 --> 00:00:53,520 आप तो गूगल डॉक्टर के एक संस्करण केवल पढ़ने के लिए देख सकते हैं 17 00:00:53,520 --> 00:00:56,010 जिसमें हम उस जानकारी एकत्रित कर रहे हैं. 18 00:00:56,010 --> 00:00:58,930 तो अगर आप किसी के साथ काम करना चाहते हैं, हर तरह से लोगों तक पहुंचने के लिए स्वतंत्र महसूस 19 00:00:58,930 --> 00:01:00,480 उस तंत्र के माध्यम से. 20 00:01:00,480 --> 00:01:02,690 लेकिन लोगों के बहुमत एकल काम करते हैं. यह पूरी तरह से ठीक है. 21 00:01:02,690 --> 00:01:06,120 ऐसा नहीं लगता कि यह किसी भी अनिवार्य रास्ते में है. 22 00:01:06,120 --> 00:01:09,680 शुक्रवार को यह सिर्फ मेरे और यहाँ में एक टीम के कुछ, 23 00:01:09,680 --> 00:01:11,100 अधिकांश भाग के लिए खाली थिएटर. 24 00:01:11,100 --> 00:01:14,600 वहाँ 3 पर्यटकों को वहाँ बैठे थे, इसलिए, कि थोड़ा अजीब था. 25 00:01:14,600 --> 00:01:18,970 बारे में हम बात क्या डेटाबेस था और हम pset 7 एक थोड़ा के बारे में बात की थी. 26 00:01:18,970 --> 00:01:22,200 और अगर आप वीडियो पर कि बस अभी तक पकड़ नहीं हुआ, वह ठीक है. 27 00:01:22,200 --> 00:01:26,770 मैं किसी भी दृष्टि को परिभाषित करने की कोशिश है कि हम अन्यथा के लिए दी ले जाएगा 28 00:01:26,770 --> 00:01:28,840 शुक्रवार व्याख्यान के आधार पर. 29 00:01:28,840 --> 00:01:32,550 >> लेकिन आज हम करने के लिए आप बात करने के लिए प्राप्त करने की कोशिश करने के लिए जा रहे हैं 30 00:01:32,550 --> 00:01:34,990 सिर्फ 7 pset की तरह कुछ करने में सक्षम नहीं किया जा रहा 31 00:01:34,990 --> 00:01:37,360 लेकिन वास्तव में समझ क्या हुड के नीचे जा रहा है, 32 00:01:37,360 --> 00:01:41,910 विशेष रूप से कुछ चीजें है कि हम functions.php फ़ाइल में जगह में डाल के 33 00:01:41,910 --> 00:01:45,780 अपने जीवन को थोड़ा आसान बनाने के लिए, लेकिन इतना है कि आप अंततः समझ 34 00:01:45,780 --> 00:01:48,760 इतना है कि जब कुछ ही हफ्तों में प्रशिक्षण के पहियों से आते हैं आप अभी भी जीवित रह सकते हैं 35 00:01:48,760 --> 00:01:53,750 और असली दुनिया में आप नीचे किसी भी CS50 ढांचे के बिना यह सब करने. 36 00:01:53,750 --> 00:01:57,500 आप में से जो लोग परिचित हैं के लिए यह देखना $ 37 00:01:57,500 --> 00:02:01,960 या जो पहले से ही शुक्रवार को वीडियो पकड़ा, सत्र क्या करते हैं कि हमें क्या 38 00:02:01,960 --> 00:02:04,330 एक PHP आधारित वेब आवेदन में? 39 00:02:04,330 --> 00:02:09,650 Superglobal चर, जिसका मतलब है कि यह भावना में समान है और पोस्ट 40 00:02:09,650 --> 00:02:13,970 और कुछ अन्य लोगों, लेकिन क्या इस बात के लिए उपयोगी है? 41 00:02:13,970 --> 00:02:18,320 >> सत्र के लिए प्रयोग किया जाता है? हाँ. [छात्र] अंदर लॉगिंग 42 00:02:18,320 --> 00:02:21,040 क्षमा करें? [छात्र] अंदर लॉगिंग अंदर दरअसल लॉगिंग. 43 00:02:21,040 --> 00:02:25,100 7 pset में हम इस सत्र superglobal उसमें लॉग इन करने की सुविधा का उपयोग कर रहे हैं 44 00:02:25,100 --> 00:02:28,600 और क्या इस superglobal के बारे में अच्छी बात यह है कि यह एक साहचर्य सरणी है. 45 00:02:28,600 --> 00:02:33,190 एक साहचर्य सरणी, याद है, बस एक सरणी है, लेकिन इंडेक्स जिसका नहीं रह नंबर होना चाहिए 46 00:02:33,190 --> 00:02:37,670 012 की तरह. वे संख्या हो या वे भी तार हो सकता है कर सकते हैं. 47 00:02:37,670 --> 00:02:44,890 और यदि ऐसा है तो आप 7 pset में डुबकी लगाई है अभी तक, आप याद कर सकते हैं कि हम एक कुंजी बुलाया आईडी भंडारण कर रहे हैं 48 00:02:44,890 --> 00:02:50,330 जिसका मूल्य 123 की तरह कुछ है इस साहचर्य सरणी के अंदर - 49 00:02:50,330 --> 00:02:53,780 वर्तमान में उपयोगकर्ता आईडी में लॉग इन किया है जो कुछ भी. 50 00:02:53,780 --> 00:02:59,470 इस के लिए प्रेरणा है कि बाद भी उपयोगकर्ता लोकलहोस्ट का दौरा किया है 51 00:02:59,470 --> 00:03:02,720 या मेरी वेबसाइट और आम तौर पर और फिर वे में लॉग इन किया है, 52 00:03:02,720 --> 00:03:07,320 भले ही वे एक लिंक क्लिक करें या 5 मिनट के लिए मेरी वेबसाइट पर लौटने 53 00:03:07,320 --> 00:03:10,730 या भी एक घंटे या एक दिन भी, लेकिन वे अपने ब्राउज़र विंडो को खुला छोड़ दें, 54 00:03:10,730 --> 00:03:14,370 मैं इस superglobal के माध्यम से याद है कि वे लॉग इन कर सकते हैं 55 00:03:14,370 --> 00:03:21,140 >> दूसरे शब्दों में, यह मुझे थोड़ा लंबी अवधि के कुछ भी मैं एक उपयोगकर्ता के बारे में चाहते हैं स्टोर करने के लिए अनुमति देता है. 56 00:03:21,140 --> 00:03:24,390 और आप इसे एक शॉपिंग कार्ट के अवतार के रूप में वास्तव में सोच सकते हैं. 57 00:03:24,390 --> 00:03:27,740 अमेज़न जैसी जगहों पर स्पष्ट रूप से जाने के लिए आप खरीदारी की टोकरी में बातें करना, 58 00:03:27,740 --> 00:03:32,230 लेकिन HTTP प्रोटोकॉल है कि वेब शक्तियों, राज्यविहीन है 59 00:03:32,230 --> 00:03:34,230 इस अर्थ में है कि, जब आप एक वेबसाइट पर जाएँ 60 00:03:34,230 --> 00:03:37,290 अधिकांश भाग के लिए आप कुछ निरंतर नेटवर्क कनेक्शन नहीं है 61 00:03:37,290 --> 00:03:39,270 अपने ब्राउज़र और सर्वर के बीच. 62 00:03:39,270 --> 00:03:42,190 जैसे ही आप HTML और JPEGs और GIFs डाउनलोड किया है और कहा कि सभी, 63 00:03:42,190 --> 00:03:48,200 कनेक्शन दूर हो जाता है और तुम सिर्फ सर्वर से HTML और whatnot की एक प्रति है. 64 00:03:48,200 --> 00:03:53,000 लेकिन अगर सर्वर आप के बारे में कुछ याद करना चाहता है, 65 00:03:53,000 --> 00:03:57,580 वास्तव में उस जानकारी को रिकॉर्ड करने के लिए सर्वर पर बोझ है. 66 00:03:57,580 --> 00:04:00,130 और इसलिए आप प्रोग्रामर जो सर्वर पर नियंत्रण 67 00:04:00,130 --> 00:04:04,400 सबसे कुछ भी आप चाहते हैं इस superglobal साहचर्य सरणी के अंदर डाल सकते हैं 68 00:04:04,400 --> 00:04:06,850 और यह वहाँ अगली बार जब उपयोगकर्ता वापस आता होगा, 69 00:04:06,850 --> 00:04:12,070 चाहे वह मिनट या दिनों के बाद, जब तक वे अपने ब्राउज़र विंडो बंद, 70 00:04:12,070 --> 00:04:14,360 जो बिंदु पर सत्र गायब हो जाता है. 71 00:04:14,360 --> 00:04:17,779 तो यह अल्पकालिक भंडारण है, यह गैर लगातार है, और इसे दूर जाने का मतलब है 72 00:04:17,779 --> 00:04:22,360 के रूप में जल्द ही के रूप में उपयोगकर्ता उनके ब्राउज़र बंद कर देता है - टैब, बस नहीं है कि अक्सर पूरे ब्राउज़र, 73 00:04:22,360 --> 00:04:24,930 इस तरह प्रभावी उपयोगकर्ता लॉग आउट. 74 00:04:24,930 --> 00:04:28,000 तो कैसे इस बात को वास्तव में लागू किया जाता है? 75 00:04:28,000 --> 00:04:31,360 चलो एक सरल उदाहरण हम शुक्रवार को देखा पर एक त्वरित देखो ले. 76 00:04:31,360 --> 00:04:33,340 अपरिचित उन लोगों के लिए, यह के रूप में इस रूप में सरल था. 77 00:04:33,340 --> 00:04:35,910 यह एक वेब पेज जिनका एकमात्र उद्देश्य जीवन में मुझे बताओ 78 00:04:35,910 --> 00:04:38,000 कितनी बार मैं इस पृष्ठ का दौरा किया. 79 00:04:38,000 --> 00:04:41,670 यह सोमवार को पहली बार यहाँ है कि मैं यह दौरा किया है, तो यह 0 बार कहते हैं. 80 00:04:41,670 --> 00:04:46,940 >> लेकिन अगर मैं इस पृष्ठ reloading शुरू, यह समय 1, 2, 3, 4, 5 कहते हैं, 81 00:04:46,940 --> 00:04:49,800 और यह अंततः बस गिनती पर रखना होगा, ऊपर, ऊपर, ऊपर, ऊपर 82 00:04:49,800 --> 00:04:53,130 हर बार के लिए मैं वास्तव में इस पर लोड करें क्लिक करें. 83 00:04:53,130 --> 00:04:58,830 तो यह कैसे काम कर रहा है? मुझे इस counter.php नामक एक फाइल के अंदर जाना. 84 00:04:58,830 --> 00:05:02,490 यह के शीर्ष भाग में सभी नीले टिप्पणी है, लेकिन यहाँ दिलचस्प हिस्सा है. 85 00:05:02,490 --> 00:05:06,670 13 लाइन पर हम इस समारोह session_start कहते हैं, 86 00:05:06,670 --> 00:05:09,600 और कहा कि सचमुच यह है कि तुम सब करने की जरूरत है अगर आप उपयोग करना चाहते हैं 87 00:05:09,600 --> 00:05:13,610 इस विशेष superglobal $ देखना बुलाया. 88 00:05:13,610 --> 00:05:17,430 कि यह सब संभव बनाता है, और हम सब कैसे है कि संभव है एक पल में देखेंगे. 89 00:05:17,430 --> 00:05:20,350 लाइन 16 नोटिस मैं क्या कर रहा हूँ. 90 00:05:20,350 --> 00:05:25,960 अगर दूसरे शब्दों में, मूल्य सूचकांक - "काउंटर" कुंजी, काउंटर बुलाया 91 00:05:25,960 --> 00:05:32,310 इस सरणी के अंदर मौजूद सत्र कहा जाता है, तो क्या मैं लाइन में हूँ इसके साथ नीचे कर रही है? 92 00:05:32,310 --> 00:05:36,650 18 लाइन क्या कर रही है? 93 00:05:36,650 --> 00:05:40,360 >> [अश्राव्य छात्र प्रतिक्रिया] वह क्या है? [छात्र] मूल्य भंडारण. अच्छा है. 94 00:05:40,360 --> 00:05:45,800 यह मूल्य है कि सत्र में भंडारण एक नए स्थानीय अस्थायी चर में अब ठीक है, 95 00:05:45,800 --> 00:05:48,250 सभी लोअरकेस में काउंटर $. 96 00:05:48,250 --> 00:05:50,770 सूचना है कि PHP पहले से ही एक छोटे से आलसी यहाँ किया जा रहा है. 97 00:05:50,770 --> 00:05:55,550 सूचना हम int या नाव या स्ट्रिंग या की तरह कुछ भी किसी भी उल्लेख नहीं है कि 98 00:05:55,550 --> 00:06:00,480 क्योंकि PHP कमजोर टाइप किया जाता है, तो आप एक चर के प्रकार को निर्दिष्ट जिससे नहीं है, 99 00:06:00,480 --> 00:06:03,310 और इस मामले में मैं भी यह अभी तक घोषित नहीं किया है. 100 00:06:03,310 --> 00:06:08,980 मैं यह घोषणा कर रहा हूँ इन घुंघराले ब्रेसिज़ के अंदर और सी के विपरीत, यह वास्तव में ठीक है. 101 00:06:08,980 --> 00:06:13,800 कोई बात नहीं कितना गहरा एक चर घोषणा नेस्टेड PHP में है - 102 00:06:13,800 --> 00:06:16,650 धनु धनुकोष्ठक, धनु धनुकोष्ठक और इस तरह के अंदर के अंदर 103 00:06:16,650 --> 00:06:21,230 यह उस पल में कार्यक्रम के शेष के लिए समय में मौजूद होगा, 104 00:06:21,230 --> 00:06:22,680 बेहतर या बदतर के लिए. 105 00:06:22,680 --> 00:06:26,930 तो इसे तुरंत वैश्विक हो जाता है जैसे ही आप इसे परिभाषित के रूप में हम यहाँ क्या कर रहे हैं. 106 00:06:26,930 --> 00:06:31,620 >> अन्यथा, अगर मैं नहीं मिल रहा है कि वहाँ सत्र superglobal में कुछ भी है, 107 00:06:31,620 --> 00:06:34,680 जाहिरा तौर पर मैं हूँ 0 से इस चर काउंटर आरंभ, 108 00:06:34,680 --> 00:06:37,580 जिससे बस मान उपयोगकर्ता यहाँ पहले कभी नहीं किया गया है. 109 00:06:37,580 --> 00:06:40,030 और जाहिर है यह तो कैसे काउंटर incrementing है? 110 00:06:40,030 --> 00:06:44,480 मैं इस साहचर्य सरणी के मूल्य कि अंदर अद्यतन कर रहा हूँ 111 00:06:44,480 --> 00:06:49,530 यह काउंटर जो कुछ भी वर्तमान में 1 + बराबर की स्थापना से. 112 00:06:49,530 --> 00:06:53,520 अगर मैं नीचे स्क्रॉल पृष्ठ के HTML के लिए यहाँ है, यह वास्तव में बहुत आसान है. 113 00:06:53,520 --> 00:06:58,920 मैं इस पृष्ठ के शरीर में है, "तुम इतना और इतनी बार इस साइट का दौरा किया." 114 00:06:58,920 --> 00:07:00,350 और यह एक PHP का निर्माण है. 115 00:07:00,350 --> 00:07:06,080 यदि आप <=, यह क्या कार्य करने के लिए प्रभावी ढंग से बराबर है? 116 00:07:07,920 --> 00:07:12,600 यह वास्तव में printf की तरह कुछ है, जो हम सी में कई बार देखा है करने के लिए बराबर है, 117 00:07:12,600 --> 00:07:15,940 के रूप में आप पहले से ही सात pset में कल्पना से पता कर सकते हैं, हालांकि, 118 00:07:15,940 --> 00:07:20,160 प्रिंट भी एक समारोह में कहा कि अभी कुछ प्रिंट बाहर है, यह वास्तव में प्रारूप कोड का उपयोग नहीं करता है, 119 00:07:20,160 --> 00:07:23,270 और आप वास्तव में गूंज के रूप में अच्छी तरह से कह सकते हैं. 120 00:07:23,270 --> 00:07:27,460 वे सभी कर रहे हैं कभी तो थोड़ा अलग भले ही शुद्ध प्रभाव अंततः एक ही है. 121 00:07:27,460 --> 00:07:31,270 के इस प्रयोग के हस्ताक्षर के बराबर होती है तो इसे करने का एक सुंदर तरीका सिर्फ तरह है 122 00:07:31,270 --> 00:07:34,910 अधिक से अधिक succinctly आप अन्यथा करने में सक्षम हो सकता है. 123 00:07:34,910 --> 00:07:38,370 तो यह है कि यह सभी साइट करता है. यह काउंटर के मूल्य प्रिंट. 124 00:07:38,370 --> 00:07:40,550 यह सब कैसे वास्तव में हो रहा है? 125 00:07:40,550 --> 00:07:43,250 आप एक सप्ताह को याद कर सकते हैं, या तो पहले हम हुड के नीचे देख शुरू 126 00:07:43,250 --> 00:07:47,910 पर कैसे एक वेब पेज इस इंस्पेक्टर टैब का उपयोग करके काम करता है. 127 00:07:47,910 --> 00:07:51,900 >> क्रोम मैक संस्करण, Windows संस्करण, और यहां तक ​​कि Linux के संस्करण में यह दोनों है, 128 00:07:51,900 --> 00:07:59,510 और फ़ायरफ़ॉक्स और IE इसी तरह के तंत्र है जिससे आप इस डिबगर में निर्मित है 129 00:07:59,510 --> 00:08:01,400 अंदर ब्राउज़र. 130 00:08:01,400 --> 00:08:03,040 चलो निम्नलिखित पर एक नज़र रखना. 131 00:08:03,040 --> 00:08:06,960 हम टैब्स की एक पूरी गुच्छा मिला है यहाँ है, और याद है कि leftmost एक तत्व है, 132 00:08:06,960 --> 00:08:10,700 और कोई फर्क नहीं पड़ता कि कैसे godawful HTML और जावास्क्रिप्ट एक पृष्ठ में है, 133 00:08:10,700 --> 00:08:15,710 याद करते हैं कि तत्वों टैब के साथ आप वास्तव में HTML पदानुक्रम नेविगेट कर सकते हैं 134 00:08:15,710 --> 00:08:17,050 और अच्छा है और बड़े करीने से. 135 00:08:17,050 --> 00:08:19,370 तो अगर आप गूगल या फेसबुक जैसी वेबसाइट से सीखने की कोशिश कर रहे हैं 136 00:08:19,370 --> 00:08:22,370 या वास्तव में किसी भी वेबसाइट का एहसास है कि आप शायद बेहतर बंद 137 00:08:22,370 --> 00:08:26,360 स्रोत कोड में इस तरह के कच्चे स्रोत को देखने के लिए विरोध के रूप में देख रहे हैं, 138 00:08:26,360 --> 00:08:29,580 जो एक गड़बड़ हो सकता है, जैसा कि हम विशेष रूप से गूगल की साइट पर देखा है. 139 00:08:29,580 --> 00:08:32,220 तो अगर मैं बजाय नेटवर्क टैब पर क्लिक करें, 140 00:08:32,220 --> 00:08:34,830 चलो देखते हैं कि क्या हो रहा है जब मैं इस पृष्ठ पर जाएँ. 141 00:08:34,830 --> 00:08:38,669 पहले मुझे अपने कैश साफ. 142 00:08:38,669 --> 00:08:43,570 मैं क्रोम में सेटिंग्स में जाना और फिर इतिहास जाना जा रहा हूँ 143 00:08:43,570 --> 00:08:46,420 और फिर सभी ब्राउज़िंग डेटा साफ़ करें. 144 00:08:46,420 --> 00:08:48,170 आप अन्य प्रयोजनों के लिए ऐसा करने के लिए इस्तेमाल किया जा सकता है, [हँसी] 145 00:08:48,170 --> 00:08:51,990 लेकिन जब यह वेबसाइटों के विकास के लिए आता है, यह वास्तव में उपयोगी है - 146 00:08:51,990 --> 00:08:55,980 अगर आप हँस रहे हैं आप जानते हैं. [हँसी] 147 00:08:55,980 --> 00:08:59,310 यह वास्तव में बहुत उपयोगी है जब वेबसाइटों को विकसित क्योंकि वास्तविकता यह है 148 00:08:59,310 --> 00:09:04,100 और कुकीज़ कैश्ड HTML फ़ाइलों, कैश्ड जावास्क्रिप्ट फाइलों की तरह चीजों की तरह बातें 149 00:09:04,100 --> 00:09:06,390 वास्तव में एक बड़ा सिरदर्द बन सकता है, क्योंकि अगर जो भी कारण के लिए 150 00:09:06,390 --> 00:09:11,500 ब्राउज़र के लिए कुछ फ़ाइल कैश का फैसला किया है और अभी तक आप उस फाइल करने के लिए सर्वर पर परिवर्तन कर दिया है 151 00:09:11,500 --> 00:09:14,670 लेकिन ब्राउज़र वास्तव में है कि फ़ाइल बदल गया है एहसास नहीं है 152 00:09:14,670 --> 00:09:19,060 और इसलिए वास्तव में नहीं करता है फिर से इसे डाउनलोड यहां तक ​​कि जब आप पुनः लोड बटन पर क्लिक करें, 153 00:09:19,060 --> 00:09:23,210 एक सबसे अचूक तरीके सिर्फ यकीन है कि गलती अपने कोड के साथ नहीं है, 154 00:09:23,210 --> 00:09:26,480 यह ब्राउज़र के व्यवहार के साथ है, अपने ब्राउज़र में यहाँ में जाना है 155 00:09:26,480 --> 00:09:29,950 और सिर्फ पूरे इतिहास साफ इतना है कि वहाँ कोई भ्रम नहीं है. 156 00:09:29,950 --> 00:09:33,210 >> और फिर अगर तुम सच में पागल होना चाहते हैं, ब्राउज़र छोड़ने, इसे पुनः आरंभ 157 00:09:33,210 --> 00:09:35,660 और तब यह सुनिश्चित करें कि सभी काम कर रहा है के रूप में की उम्मीद कर सकते हैं. 158 00:09:35,660 --> 00:09:38,820 तो संक्षेप में, समाशोधन कैश अच्छा है जब विकास कर रही है. 159 00:09:38,820 --> 00:09:40,690 तो यहाँ हम नेटवर्क टैब है. 160 00:09:40,690 --> 00:09:46,020 मैं पहले साइट 9 बार दौरा किया था, लेकिन अब मुझे आगे जाना है और लोड करें क्लिक करें. 161 00:09:46,020 --> 00:09:47,500 और मैं वापस नीचे 0 करने के लिए कर रहा हूँ. 162 00:09:47,500 --> 00:09:52,100 चलो वास्तव में देखने के लिए कैसे यह है कि इस सत्र superglobal कार्यान्वित किया जा रहा है. 163 00:09:52,100 --> 00:09:55,990 मैं 1 HTTP अनुरोध किया गया था कि पर क्लिक करने के लिए जा रहा हूँ, 164 00:09:55,990 --> 00:09:58,810 और इस डिबगिंग विंडो की मदद से मुझे उस के अंदर देखो. 165 00:09:58,810 --> 00:10:01,970 यहाँ मैं सिर्फ सर्वर है, जो दिलचस्प नहीं है से प्रतिक्रिया देखते हैं. 166 00:10:01,970 --> 00:10:04,030 मैं किसी भी तरीके की संख्या में यह देखा है. 167 00:10:04,030 --> 00:10:06,350 लेकिन क्या तकनीकी दिलचस्प है हेडर हैं. 168 00:10:06,350 --> 00:10:11,770 अगर मैं यहाँ नीचे स्क्रॉल करें और अनुरोध हेडर पर ध्यान केंद्रित करने और देखने के स्रोत क्लिक करें, 169 00:10:11,770 --> 00:10:14,400 मैं देखने के लिए जा रहा हूँ क्या सचमुच HTTP अनुरोध 170 00:10:14,400 --> 00:10:17,250 कि सिर्फ अपने ब्राउज़र से सर्वर के लिए चला गया, 171 00:10:17,250 --> 00:10:21,400 ऑपरेटिव शब्द जा रहा है और फिर / फ़ाइल नाम किया जा रहा है counter.php, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 सिर्फ HTTP के संस्करण किया जा रहा है कि मेरी ब्राउज़र का उपयोग कर रहा है. 173 00:10:25,670 --> 00:10:31,070 यहाँ यह लाइन ब्राउज़र से सर्वर के लिए एक छोटे से अनुस्मारक सर्वर का नाम क्या है 174 00:10:31,070 --> 00:10:33,020 कि यह बात करने के लिए करना चाहता है. 175 00:10:33,020 --> 00:10:38,200 और फिर इस के बाकी कभी कभी दिलचस्प है, लेकिन प्रासंगिक नहीं अब ठीक है. 176 00:10:38,200 --> 00:10:40,090 >> यह सिर्फ एक जिज्ञासा की तरह है. 177 00:10:40,090 --> 00:10:43,530 क्रिप्टिक हालांकि इस स्ट्रिंग है, किसी भी समय अपने ब्राउज़र एक वेबसाइट का दौरा 178 00:10:43,530 --> 00:10:47,110 यह सर्वर बताए है क्या आप ब्राउज़र का उपयोग कर रहे हैं 179 00:10:47,110 --> 00:10:50,040 और क्या आप ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं और क्या उसके संस्करण. 180 00:10:50,040 --> 00:10:52,650 तो अगर तुम कभी सीएनएन और whatnot की तरह कैसे वेबसाइटों आश्चर्य है 181 00:10:52,650 --> 00:10:56,860 पता है कि प्रतिशत क्या वेब, पीसी उपयोगकर्ताओं पर मैक उपयोगकर्ताओं के हैं, 182 00:10:56,860 --> 00:11:00,820 IE उपयोगकर्ताओं, क्रोम उपयोगकर्ताओं और इस तरह, यह है क्योंकि हमारे सभी ब्राउज़रों के 183 00:11:00,820 --> 00:11:04,300 हर एक वेबसाइट वहाँ से बाहर कह रही है कि हम क्या कर रहे हैं. 184 00:11:04,300 --> 00:11:07,410 यह जरूरी व्यक्तिगत रूप से पहचान योग्य जानकारी शामिल नहीं है, 185 00:11:07,410 --> 00:11:13,060 लेकिन यह सर्वर बताने के लिए अपने आईपी पता क्या है और क्या आप ब्राउज़र और OS का उपयोग कर रहे हैं. 186 00:11:13,060 --> 00:11:14,720 इतना है कि जहां इस जानकारी है. 187 00:11:14,720 --> 00:11:19,960 लेकिन क्या अब और अधिक दिलचस्प है जब यह इन सत्रों के लिए आता प्रतिक्रिया हेडर है. 188 00:11:19,960 --> 00:11:22,530 मुझे प्रतिक्रिया करने के लिए अगले स्रोत देखने के लिए क्लिक. 189 00:11:22,530 --> 00:11:24,590 दिलचस्प यहाँ क्या कुछ चीजें है. 190 00:11:24,590 --> 00:11:27,580 1, हम 200 की एक स्थिति कोड वापस मिल गया. 191 00:11:27,580 --> 00:11:29,840 हम देखते हैं, क्योंकि इसका मतलब है कि सब कुछ ठीक है यह स्थिति कोड नहीं है. 192 00:11:29,840 --> 00:11:32,920 यह सचमुच कुछ और करने के लिए विपरीत ठीक मतलब है. 193 00:11:32,920 --> 00:11:36,380 कभी कभी हम देखते हैं कि बुरा है एक संख्या क्या है? 404 [] छात्र. 194 00:11:36,380 --> 00:11:39,860 404 फ़ाइल नहीं मिला, आप 403 पर पहले से ही ठोकरें खाते हुए चल सकता है, 195 00:11:39,860 --> 00:11:43,660 जो मना किया है, जिसका अर्थ है आप chmod सबसे अधिक संभावना है, कुछ भूल गया. 196 00:11:43,660 --> 00:11:45,190 और दूसरों की एक गुच्छा है. 197 00:11:45,190 --> 00:11:47,760 >> यहाँ नीचे, यह एक छोटे से पागल है. 198 00:11:47,760 --> 00:11:52,340 मैं वास्तव में सिर्फ यह जीएडिट में चिपकाने के द्वारा इस फाइल के कुछ ही मिनट पहले लिखा था. 199 00:11:52,340 --> 00:11:57,100 इस पेज को 1981 में समय सीमा समाप्त हो क्यों था कि पहले वहाँ वास्तव में एक वेब था? 200 00:11:58,010 --> 00:12:00,730 वहाँ क्या हो रहा है? 201 00:12:00,730 --> 00:12:04,390 >> [अश्राव्य छात्र प्रतिक्रिया] समय स्टाम्प. लेकिन क्यों? 202 00:12:06,110 --> 00:12:09,120 यह कुछ मनमाना है, लेकिन यह वास्तव में उपयोगी है. 203 00:12:09,120 --> 00:12:15,500 क्या यह अपने ब्राउज़र के लिए कह रही है इस PHP फ़ाइल तुम सिर्फ पहले ही समाप्त हो गया है. 204 00:12:15,500 --> 00:12:18,580 वास्तव में, यह 30 साल पहले समाप्त हो गई है. 205 00:12:18,580 --> 00:12:20,260 लेकिन यह है कि क्या वास्तव में क्या मतलब है? 206 00:12:20,260 --> 00:12:22,500 यह सिर्फ अगली बार जब उपयोगकर्ता इस पृष्ठ का दौरा मतलब है, 207 00:12:22,500 --> 00:12:25,540 चाहे reloading या टाइपिंग पता पट्टी में URL, 208 00:12:25,540 --> 00:12:28,010 यकीन है कि तुम जाओ और इसके बारे में एक नई प्रतिलिपि लाने. 209 00:12:28,010 --> 00:12:30,840 इस कैश को ख़त्म करने का एक उदाहरण की तरह है, 210 00:12:30,840 --> 00:12:33,790 एक बेवकूफ शब्द है कि बस ब्राउज़रों को हतोत्साहित करने की कोशिश का मतलब 211 00:12:33,790 --> 00:12:37,260 वास्तव में कैशिंग HTML से है कि एक सर्वर से भेजा गया है 212 00:12:37,260 --> 00:12:41,490 ताकि आप गलती से पुनः लोड नहीं मारा करते हैं और फिर फ़ाइल का एक ही संस्करण देख. 213 00:12:41,490 --> 00:12:43,730 आप वास्तव में एक नई प्रतिलिपि भेजने के लिए सर्वर चाहते हैं. 214 00:12:43,730 --> 00:12:47,440 तो तथ्य यह है कि यह 1981 है सिर्फ मतलब है कि कि क्या उपकरण चुनने है 215 00:12:47,440 --> 00:12:50,280 अतीत में एक मनमाना तारीख के रूप में. 216 00:12:50,280 --> 00:12:53,380 लेकिन असली रसदार लाइन अब यह एक है. 217 00:12:53,380 --> 00:12:57,550 50 से पहले भी तो आप शायद थोड़ा कुकीज़ के साथ परिचित है. 218 00:12:57,550 --> 00:13:01,820 जैसा की अभी, विशेष रूप से कम आराम से या बीच में उन लोगों के बीच, 219 00:13:01,820 --> 00:13:04,120 क्या अपने को समझने में एक कुकी अब ठीक है 220 00:13:04,120 --> 00:13:06,980 भले ही हम अपनी समझ को और अधिक तकनीकी के बारे में कर रहे हैं? 221 00:13:08,150 --> 00:13:10,070 एक कुकी क्या है? हाँ. 222 00:13:10,070 --> 00:13:13,890 [छात्र] उपयोगकर्ता के बारे में जानकारी, जैसे अगर वे अपने उपयोगकर्ता नाम या कुछ लिखा है. 223 00:13:13,890 --> 00:13:17,370 >> अच्छा है. यह उपयोगकर्ता के बारे में जानकारी है, चाहे वे अपने उपयोगकर्ता नाम में टाइप किया है पहले से ही है. 224 00:13:17,370 --> 00:13:21,190 कूकिज एक तरीका है जिससे सर्वर एक उपयोगकर्ता के बारे में कुछ याद कर सकते हैं कर रहे हैं. 225 00:13:21,190 --> 00:13:25,810 और एक कुकी वास्तव में है क्या एक पाठ फ़ाइल या बाइट्स के कुछ दृश्य 226 00:13:25,810 --> 00:13:28,340 कि अपने ब्राउज़र के अंदर सर्वर द्वारा लगाया है, 227 00:13:28,340 --> 00:13:31,960 और पहचानकर्ता के अंदर है कि फ़ाइल या उन बाइट्स के बीच किसी तरह का है. 228 00:13:31,960 --> 00:13:35,640 शायद यह सचमुच अपने उपयोगकर्ता नाम है, लेकिन अधिक बार यह गुप्त दिखने कुछ है 229 00:13:35,640 --> 00:13:43,700 bo8dal3ct और बहुत आगे है - यह वास्तव में बड़ा अल्फ़ान्यूमेरिक स्ट्रिंग यहाँ इस बात की तरह 230 00:13:43,700 --> 00:13:47,050 कि वास्तव में सिर्फ है आप के लिए एक अद्वितीय पहचानकर्ता होने का मतलब. 231 00:13:47,050 --> 00:13:49,790 या आप इसे एक आभासी हाथ स्टांप की तरह के रूप में सोच सकते हैं. 232 00:13:49,790 --> 00:13:53,020 यदि आप कुछ क्लब या एक मनोरंजन पार्क करने के लिए जाना है, याद रखें कि आप वास्तव में भुगतान किया है 233 00:13:53,020 --> 00:13:55,850 और में चला गया है, वे किसी तरह की अपने हाथ पर एक छोटे से लाल स्टीकर डाल, 234 00:13:55,850 --> 00:13:59,270 और कि काउंटर है कि आप पहले से ही भुगतान किया है पर लोगों को याद दिलाता है 235 00:13:59,270 --> 00:14:01,340 और आप के आने और जाने के रूप में आप कृपया कर सकते हैं. 236 00:14:01,340 --> 00:14:04,250 कुकीज़ एक छोटे से आत्मा में है कि इसी तरह से कर रहे हैं. 237 00:14:04,250 --> 00:14:08,070 पहली बार मैं इस वेबसाइट का दौरा किया है, के रूप में मैं सिर्फ अपने कैश को साफ़ करने के बाद किया था, 238 00:14:08,070 --> 00:14:11,620 वेब सर्वर, इस मामले में उपकरण, मेरे हाथ पर एक मोहर लगा 239 00:14:11,620 --> 00:14:15,030 जिसका नाम है PHPSESSID, सत्र आईडी, 240 00:14:15,030 --> 00:14:18,260 जिसका मूल्य यह वास्तव में लंबे समय अल्फ़ान्यूमेरिक स्ट्रिंग है. 241 00:14:18,260 --> 00:14:22,470 >> तो यह है कि अब मेरे हाथ पर emblazoned की तरह है ताकि अगली बार जब मैं हिट पुनः लोड 242 00:14:22,470 --> 00:14:25,230 या मैन्युअल रूप से एक ब्राउज़र में इस URL पर जाएँ, 243 00:14:25,230 --> 00:14:29,230 परिभाषा HTTP के द्वारा अपने ब्राउज़र हाथ स्टांप उपस्थित जा रहा है 244 00:14:29,230 --> 00:14:31,940 फिर से और फिर से. 245 00:14:31,940 --> 00:14:34,550 तो भले ही सर्वर जरूरी नहीं कि मैं कौन हूँ पता नहीं है, 246 00:14:34,550 --> 00:14:39,610 वे कम से कम पता है कि मैं एक ही उपयोगकर्ता या कम से कम, और अधिक विशेष रूप से, एक ही ब्राउज़र हूँ. 247 00:14:39,610 --> 00:14:45,660 और इसलिए यह अंततः कैसे सत्र superglobal कार्यान्वित किया जाता है. 248 00:14:45,660 --> 00:14:51,200 सर्वर में कोई विचार है कि आप जो कर रहे हैं जब आप दूसरे के लिए एक वेबसाइट या तीसरी बार फिर से आना है 249 00:14:51,200 --> 00:14:53,410 जब तक आप इस हाथ टिकट प्रस्तुत करते हैं. 250 00:14:53,410 --> 00:14:55,530 और जैसे ही आप कि हाथ टिकट उपस्थित, 251 00:14:55,530 --> 00:14:59,370 वेब सर्वर अनिवार्य रूप से अपनी खुद की एक छोटे से डेटाबेस में चला जाता है 252 00:14:59,370 --> 00:15:06,040 और चेक, ठीक है, मैं सिर्फ उपयोगकर्ता bo8dal3ct के हाथ स्टांप देखा है और बहुत आगे है. 253 00:15:06,040 --> 00:15:09,850 मुझे देखने के लिए क्या जानकारी प्रोग्रामर संग्रहित है 254 00:15:09,850 --> 00:15:12,380 इस उपयोगकर्ता के बारे में superglobal के अंदर, 255 00:15:12,380 --> 00:15:17,000 और तो मुझे यकीन है कि उस डेटा फिर से superglobal सत्र के अंदर है 256 00:15:17,000 --> 00:15:19,830 इतना है कि प्रोग्रामर है कि डेटा फिर से उपयोग कर सकते हैं 257 00:15:19,830 --> 00:15:23,360 यहां तक ​​कि अगर यह कुछ मिनट या घंटे पहले स्थापित किया गया था. 258 00:15:23,360 --> 00:15:26,150 तो दूसरे शब्दों में, कुकीज़, जो कुछ समय के लिए एक बुरा आवाज मिल 259 00:15:26,150 --> 00:15:29,990 ब्राउज़रों में असुरक्षा की वजह से है और वे वास्तव में हमारी गोपनीयता का उल्लंघन कर सकते हैं और यह सब, 260 00:15:29,990 --> 00:15:31,900 वे वास्तव में उन्हें क्योंकि बिना बड़ी उपयोगिता है 261 00:15:31,900 --> 00:15:36,110 आप लगातार हर Facebook पृष्ठ आप यात्रा करने में लॉग इन होना 262 00:15:36,110 --> 00:15:40,680 या हर Gmail ईमेल पढ़ने के लिए अगर ब्राउज़र को याद करने का कोई रास्ता नहीं था 263 00:15:40,680 --> 00:15:43,320 है कि आप पहले से ही प्रमाणीकृत है. 264 00:15:43,320 --> 00:15:46,640 >> तो इस तरह से कुकीज़ को आगे और पीछे की तार के पार भेजा जाता है. 265 00:15:46,640 --> 00:15:52,470 कुकीज़ के बारे में एक और जिज्ञासा, विशेष रूप से यहाँ है, कि इस cleartext में पूरी तरह से है. 266 00:15:52,470 --> 00:15:54,930 वहाँ कोई एन्क्रिप्शन यहाँ पर जो भी जा रहा है, 267 00:15:54,930 --> 00:15:57,240 और वास्तव में मैं पल में HTTP का उपयोग कर रहा हूँ. 268 00:15:57,240 --> 00:16:00,890 CS50 में हमारे पसंदीदा क्षणों में से एक है, जो अब 2 साल पहले, 269 00:16:00,890 --> 00:16:04,750 समय के आसपास एक Firesheep नामक उपकरण बाहर आया था. 270 00:16:04,750 --> 00:16:08,320 इस सॉफ्टवेयर के एक मुक्त टुकड़ा था कि एक सुरक्षा शोधकर्ता द्वारा बनाया गया था 271 00:16:08,320 --> 00:16:13,250 समुदाय के लिए एक जगा फोन के रूप में कहने के लिए बस कैसे atrociously कार्यान्वित 272 00:16:13,250 --> 00:16:17,900 वेब पर कुछ प्रमाणीकरण तंत्र थे. 273 00:16:17,900 --> 00:16:22,880 इसलिए कुछ समय के लिए, Facebook HTTP, HTTPS पर लगभग पूरी तरह से था. 274 00:16:22,880 --> 00:16:25,640 और यहां तक ​​कि अगर आप कोई विचार कैसे क्रिप्टो काम करता है, एस सुरक्षित है 275 00:16:25,640 --> 00:16:27,950 तो यह मतलब है कि कम से कम कुछ एन्क्रिप्शन शामिल है. 276 00:16:27,950 --> 00:16:30,610 उपयोगकर्ता नाम और पासवर्ड एन्क्रिप्ट करने के लिए इस्तेमाल किया है, 277 00:16:30,610 --> 00:16:33,560 लेकिन जैसे ही आप अपने को देखा pokes या अपने संदेश या अपने समाचार फ़ीड, 278 00:16:33,560 --> 00:16:35,360 कि के सभी unencrypted किया गया था. 279 00:16:35,360 --> 00:16:37,870 सिर्फ एक या 2 साल पहले तक तो जीमेल था. 280 00:16:37,870 --> 00:16:41,100 किसी भी समय आप में लॉग इन, हाँ, वे सुरक्षित एन्क्रिप्शन का इस्तेमाल किया है, 281 00:16:41,100 --> 00:16:44,300 लेकिन उसके बाद वे नहीं किया. और क्यों है कि हो सकता है? 282 00:16:44,300 --> 00:16:49,210 क्यों क्रिप्टोग्राफी नहीं बस इस तरह से उपयोग के मामलों में समय के सभी का उपयोग करें? 283 00:16:49,210 --> 00:16:53,700 वह क्या है? मुझे लगता है कि मैंने कुछ सुना है. [छात्र] स्पीड. 284 00:16:53,700 --> 00:16:56,250 गति, है ना? वहाँ इस आस तरीके हैं. 285 00:16:56,250 --> 00:16:59,610 लेकिन अगर आप बस की तरह इसके बारे में तार्किक लगता है, अगर आप कुछ एन्क्रिप्ट 286 00:16:59,610 --> 00:17:01,820 आप कम से कम एक छोटे से अधिक काम करना है. 287 00:17:01,820 --> 00:17:05,460 2 pset में, जब आप सीज़र या Vigenere लागू या यहां तक ​​कि क्रैक 288 00:17:05,460 --> 00:17:07,760 सिर्फ एक स्ट्रिंग मुद्रण अपेक्षाकृत आसान है. 289 00:17:07,760 --> 00:17:12,040 और फिर एक स्ट्रिंग Encrypting न्यूनतम मुद्रण थोड़ा और अधिक काम की आवश्यकता है. 290 00:17:12,040 --> 00:17:14,520 >>  गूगल और फेसबुक जैसी सुपर लोकप्रिय वेबसाइटों के लिए, 291 00:17:14,520 --> 00:17:18,839 अगर आप प्रत्येक उपयोगकर्ता के लिए हर एक वेब पेज वे यात्रा के लिए और अधिक काम करना है, 292 00:17:18,839 --> 00:17:20,520 कि सिर्फ अधिक CPU समय लेता है. 293 00:17:20,520 --> 00:17:22,920 और अगर आप ज्यादा CPU समय की जरूरत है, तो आप अधिक सर्वर की आवश्यकता हो सकती है, 294 00:17:22,920 --> 00:17:24,270 जिसका मतलब है कि आप अधिक पैसे की जरूरत हो सकती है. 295 00:17:24,270 --> 00:17:27,579 और इतने सालों के लिए यह सिर्फ सच में सबसे अच्छा अभ्यास नहीं था. 296 00:17:27,579 --> 00:17:31,440 लोग केवल जब वे जरूरत SSL एन्क्रिप्शन का प्रयोग करेंगे. 297 00:17:31,440 --> 00:17:34,960 लेकिन यह पता चला है, और सुपर Firesheep साथ इस साथी के रूप में स्पष्ट कर दिया है, 298 00:17:34,960 --> 00:17:37,920 जब आप लोग जो फेसबुक पर वर्तमान में सही अब कर रहे हैं - 299 00:17:37,920 --> 00:17:39,880 बाहर जिज्ञासा का, चलो देखते हैं अगर आप fess हूँ. 300 00:17:39,880 --> 00:17:42,620 यदि आप फेसबुक पर अभी कुछ टैब में कर रहे हैं, तो भी यह नहीं foregrounded है, 301 00:17:42,620 --> 00:17:46,610 आपके यूआरएल HTTP या HTTPS है? 302 00:17:46,610 --> 00:17:50,560 [कई छात्रों] एस एस? [हँसी] 303 00:17:50,560 --> 00:17:55,510 ठीक है. किसी HTTP? बस 1? ठीक है. 304 00:17:55,510 --> 00:17:58,940 तो हम सब उस आदमी फेसबुक खाते सही अब हैक कर सकते हैं. 305 00:17:58,940 --> 00:18:04,100 अधिकांश भाग के लिए बन गया है डिफ़ॉल्ट रूप से चालू है, कम से कम कुछ वेबसाइटों में. 306 00:18:04,100 --> 00:18:08,120 और लंबी कहानी संक्षेप में, अगर अपने वेब यातायात एन्क्रिप्टेड नहीं है, 307 00:18:08,120 --> 00:18:12,960 न केवल HTML unencrypted WiFis भर में आगे और पीछे जाने के लिए, 308 00:18:12,960 --> 00:18:16,760 इसलिए कुकीज़ की तरह बातें हवा भर में आगे और पीछे जाने 309 00:18:16,760 --> 00:18:18,940 एन्क्रिप्शन के बिना किसी भी रूप में. 310 00:18:18,940 --> 00:18:23,540 तो अगर तुम सिर्फ प्रोग्रामिंग प्रेमी की एक बिट या कौशल Googling के एक बिट 311 00:18:23,540 --> 00:18:27,410 मुक्त सॉफ्टवेयर है कि इस करता मिल जाए, सब तुम्हें क्या करना है स्टारबक्स में बैठने 312 00:18:27,410 --> 00:18:30,680 या एक हवाई अड्डे में बैठने के लिए जहां आम तौर पर वाईफ़ाई unencrypted 313 00:18:30,680 --> 00:18:36,070 या PHPSESSID: और सिर्फ सेट कुकी जैसे खोजशब्दों के लिए घड़ी 314 00:18:36,070 --> 00:18:39,300 क्योंकि यदि आप तकनीकी प्रेमी है बस वाईफ़ाई देखने के लिए 315 00:18:39,300 --> 00:18:43,010 इस पद्धति के लिए हवा भर प्रवाह कि बिट्स के सभी के लिए, 316 00:18:43,010 --> 00:18:50,840 तुम तो कह है कि आदमी PHPSESSID और इतना आगे bo8dal होना होता कर सकते हैं. 317 00:18:50,840 --> 00:18:53,890 और फिर अगर आप पर्याप्त तकनीकी प्रेमी हो या सही उपकरण है, 318 00:18:53,890 --> 00:18:58,890 तुम तो बस reconfigure अपने ब्राउज़र कि हाथ टिकट पेश कर सकते हैं शुरू करने के लिए 319 00:18:58,890 --> 00:19:05,030 Facebook.com, और फेसबुक सिर्फ लगता है कि आपको लगता है कि आदमी जा रहा है 320 00:19:05,030 --> 00:19:09,880 क्योंकि वे जानते हैं कि आप जो कर रहे हैं, लेकिन यह है कि आप इस अद्वितीय पहचानकर्ता नहीं है. 321 00:19:09,880 --> 00:19:14,650 तो अगर आपको लगता है कि अद्वितीय पहचानकर्ता चोरी और अपने खुद के रूप में वेब सर्वर के लिए मौजूद है, 322 00:19:14,650 --> 00:19:16,860 वे सिर्फ आप उस व्यक्ति समाचार फ़ीड दिखाने जा रहे हैं 323 00:19:16,860 --> 00:19:18,980 या उस व्यक्ति संदेश या pokes. 324 00:19:18,980 --> 00:19:23,190 >> और अब मैं कैसे गूगल के लिए Facebook HTTPS को सक्रिय करने के लिए शायद होगा. 325 00:19:23,190 --> 00:19:25,150 लेकिन यह सच है कि जितना सरल है. 326 00:19:25,150 --> 00:19:27,660 और इसलिए फेसबुक और गूगल और इस तरह इस पर वास्तव में अच्छा मिल गया है, 327 00:19:27,660 --> 00:19:31,870 लेकिन किसी भी वेबसाइटों आप यात्रा है कि HTTP का उपयोग नहीं करते के लिए सभी को और अधिक बाहर एक नज़र रखना 328 00:19:31,870 --> 00:19:35,020 और संवेदनशील जानकारी के उन पर किसी तरह का है, 329 00:19:35,020 --> 00:19:37,490 चाहे वह वित्तीय या व्यक्तिगत है या पसंद है. 330 00:19:37,490 --> 00:19:43,180 यदि वे इस का उपयोग नहीं कर रहे हैं, काफी संभवतः इस तरह कुकीज़ चोरी हो बहुत आसानी से किया जा सकता है 331 00:19:43,180 --> 00:19:46,270 और फिर जाली, और कहा कि वास्तव में Firesheep क्या किया है. 332 00:19:46,270 --> 00:19:48,250 आप एक प्रोग्रामर होने के लिए नहीं था. 333 00:19:48,250 --> 00:19:51,680 तुम सब करना पड़ा था एक इंटरनेट कनेक्शन, यह मुफ़्त उपकरण डाउनलोड, 334 00:19:51,680 --> 00:19:56,490 और यह क्या करना होगा है कि आप में लॉग इन करने के लिए और फिर यह आप फेसबुक नाम दिखा सकते हैं 335 00:19:56,490 --> 00:20:00,170 सैंडर्स में हर कोई इस विशेष प्रदर्शन में आप के आसपास, 336 00:20:00,170 --> 00:20:03,260 और तुम सब करना पड़ा था उनके नाम पर क्लिक करें और सॉफ्टवेयर प्रक्रिया स्वचालित 337 00:20:03,260 --> 00:20:05,970 कि कुकी सूँघने, फेसबुक के लिए यह अपने खुद के रूप में पेश किया, 338 00:20:05,970 --> 00:20:07,990 और, voila, तुम अंदर लॉग इन कर रहे हैं 339 00:20:07,990 --> 00:20:11,190 तो यह उन लोगों में से एक और एक है आधिकारिक "यह मत करो." 340 00:20:11,190 --> 00:20:14,660 यदि आप अपने घर नेटवर्क है और आप टिंकर करने के लिए चाहते हैं, हर तरह से, 341 00:20:14,660 --> 00:20:17,530 पता नहीं लेकिन यह एक विश्वविद्यालय के माहौल पर रेखा को पार करता है. 342 00:20:17,530 --> 00:20:20,030 >> लेकिन यहाँ लक्ष्य वास्तव में जोर नहीं कि यह कैसे करना है 343 00:20:20,030 --> 00:20:22,320 लेकिन कैसे चीजों के इन प्रकार के खिलाफ की रक्षा करने के लिए. 344 00:20:22,320 --> 00:20:26,180 और तुच्छ यहाँ के समाधान है, भले ही यह ही त्रुटिपूर्ण है, 345 00:20:26,180 --> 00:20:31,360 वास्तव में किसी भी साइटों है कि HTTPS का लगातार उपयोग नहीं कर रहे हैं के उपयोग को कम करने के लिए है. 346 00:20:31,360 --> 00:20:34,520 तो फेसबुक और गूगल जैसी साइटों तेजी जांचपेटी को है 347 00:20:34,520 --> 00:20:36,200 आप में जहां इस तरह की बात करने के लिए चुन सकते हैं, 348 00:20:36,200 --> 00:20:40,000 बैंकों और इसी तरह के कारणों के लिए साल के लिए यह किया है. 349 00:20:40,000 --> 00:20:43,580 तो सिर्फ एक डर है कि अगर हम यह कर सकते हैं कारक का एक छोटा सा. लेकिन यह है कि यह एक संक्षेप में है. 350 00:20:43,580 --> 00:20:46,420 यही कारण है कि कैसे एक सर्वर को याद है कि आप कौन हैं. 351 00:20:46,420 --> 00:20:50,760 और जैसे ही वे याद कर सकते हैं कि आप कौन हैं, वे तुम्हारे बारे में कुछ भी याद कर सकते हैं 352 00:20:50,760 --> 00:20:56,140 कि प्रोग्रामर के अंदर इस विशेष $ बुलाया देखना superglobal संग्रहीत किया गया है. 353 00:20:56,140 --> 00:20:59,750 और के लिए 7 pset हम प्रयोग कर रहे हैं तुच्छता सिर्फ एक int को याद करने के लिए, 354 00:20:59,750 --> 00:21:02,260 अर्थात् जो उपयोगकर्ता में लॉग इन किया है की अद्वितीय ID, 355 00:21:02,260 --> 00:21:05,880 इतना है कि हम जानते हैं कि वे वहाँ से पहले किया गया है. 356 00:21:05,880 --> 00:21:12,450 सत्र या कुकीज़ या पसंद पर तो कोई सवाल? 357 00:21:12,450 --> 00:21:15,130 Firesheep के रूप में अच्छी तरह से काम नहीं करता है, 358 00:21:15,130 --> 00:21:18,310 और आप के लिए एक विशेष सिद्धांतशून्य मोड में आपके कंप्यूटर में डाल दिया है 359 00:21:18,310 --> 00:21:20,700 तो आप वास्तव में अपने आप के अलावा यातायात के लिए सुन रहे हैं. 360 00:21:20,700 --> 00:21:23,940 तो अगर आप वर्तमान Firesheep डाउनलोड कर रहे हैं, यह काफी के रूप में आसान नहीं पता है 361 00:21:23,940 --> 00:21:26,850 के रूप में इसे एक बार प्रदर्शित करने के लिए किया गया था. 362 00:21:26,850 --> 00:21:29,070 सही सभी. और यह सैंडर्स में नहीं करते. इसे घर पर करो. 363 00:21:29,070 --> 00:21:30,890 डेटाबेस. 364 00:21:30,890 --> 00:21:33,580 बातें हम 7 pset में बहुत जान - बूझकर किया 365 00:21:33,580 --> 00:21:37,780 हम आपको उपयोगकर्ताओं है कि कुछ उपयोगकर्ता IDs के लिए एक नमूना डेटाबेस तालिका दे, 366 00:21:37,780 --> 00:21:41,020 कुछ उपयोगकर्ता नाम, और उसमें कुछ एन्क्रिप्टेड पासवर्ड. 367 00:21:41,020 --> 00:21:44,520 और जैसा कि आप देखेंगे, अगर आप पहले से ही नहीं है, तो आप करने के लिए तालिका में एक छोटा सा बदल जा रहे हैं. 368 00:21:44,520 --> 00:21:47,710 आप करने के लिए कि तालिका में उपयोगकर्ताओं में से प्रत्येक के लिए कुछ कैश जोड़ने के लिए जा रहे हैं, 369 00:21:47,710 --> 00:21:51,130 और आप करने के लिए एक और इतिहास मेज, एक विभागों तालिका जोड़ने के लिए जा रहे हैं, 370 00:21:51,130 --> 00:21:53,310 या शायद यह कुछ और कहते हैं. 371 00:21:53,310 --> 00:21:56,740 लेकिन यह कैसे करना है के बारे में सोच के मामले में, चलो इस उपकरण खोलने 372 00:21:56,740 --> 00:22:00,570 जो हम शुक्रवार को प्रयोग किया जाता है, लेकिन अगर अपरिचित, उपकरण एक उपकरण के साथ आता है 373 00:22:00,570 --> 00:22:04,680 phpMyAdmin है जो संयोग से PHP में लिखा है, कहा जाता है, 374 00:22:04,680 --> 00:22:07,950 लेकिन जीवन में अपने उद्देश्य, यहाँ मैं jharvard रूप में क्रिमसन साथ लॉग इन करने के बाद, 375 00:22:07,950 --> 00:22:15,160 मुझे देखने और बदलने के अपने डेटाबेस की एक उपयोगकर्ता के अनुकूल तरीके से दे रहा है. 376 00:22:15,160 --> 00:22:18,040 >> डेटाबेस है कि मैं उपकरण पर चल रहा हूँ MySQL कहा जाता है. 377 00:22:18,040 --> 00:22:23,420 यह बहुत लोकप्रिय है, और यह एक मुक्त खुला स्रोत डेटाबेस है कि शानदार उपयोग करने के लिए आसान है, 378 00:22:23,420 --> 00:22:25,620 विशेष रूप से सामने इस तरह से समाप्त होता है. 379 00:22:25,620 --> 00:22:29,350 इस उपकरण के लिए मुझे क्या करने की अनुमति देता है, उदाहरण के लिए, टेबल के आसपास प्रहार है. 380 00:22:29,350 --> 00:22:30,890 मुझे आगे जाना है और यह नहीं है. 381 00:22:30,890 --> 00:22:36,580 शुक्रवार को हम एक तालिका छात्रों कि सुपर सरल था बुलाया बनाया. 382 00:22:36,580 --> 00:22:41,680 आईडी, नाम, और ईमेल - यह 3 कॉलम था और मैं स्वयं पंक्तियों की एक जोड़ी डाला 383 00:22:41,680 --> 00:22:44,420 इस विशिष्ट उदाहरण में दाऊद और माइक की तरह. 384 00:22:44,420 --> 00:22:47,290 चलो यह एक थोड़ा आगे ले, और चलो मान लेते हैं कि हम और अधिक याद रखना चाहते हैं 385 00:22:47,290 --> 00:22:49,660 की तुलना में सिर्फ एक उपयोगकर्ता के बारे में नाम, ईमेल. 386 00:22:49,660 --> 00:22:53,090 मुझे संरचना क्लिक करें शीर्ष पर यहाँ. 387 00:22:53,090 --> 00:22:55,440 और फिर, pset आप अपेक्षित यहाँ कदम के माध्यम से चलता है, 388 00:22:55,440 --> 00:22:58,150 यदि ऐसा है तो इस में से कुछ एक बिट जल्दी है चिंता मत करो. 389 00:22:58,150 --> 00:22:59,690 तो मैं यहाँ पर क्लिक करने के लिए जा रहा हूँ. 390 00:22:59,690 --> 00:23:02,270 मैं ईमेल के बाद स्तंभों की कुछ संख्या जोड़ने के लिए जा रहा हूँ 391 00:23:02,270 --> 00:23:04,130 क्योंकि मैं करने के लिए घर की तरह कुछ जोड़ना चाहते हैं. 392 00:23:04,130 --> 00:23:06,640 मैं एक छात्र के घर को रिकॉर्ड करने के लिए भूल गया. 393 00:23:06,640 --> 00:23:11,400 मुझे जाएँ क्लिक करें, और अब हम इस फार्म का है कि दुर्भाग्य से बाएँ से सही करने के लिए एक छोटे से विस्तृत है, 394 00:23:11,400 --> 00:23:13,710 लेकिन मैं इस क्षेत्र के घर के नाम कॉल करने के लिए जा रहा हूँ, 395 00:23:13,710 --> 00:23:16,050 और फिर प्रकार मैं अब चुनना है. 396 00:23:16,050 --> 00:23:18,870 तो चलो MySQL में विभिन्न प्रकार के बारे में एक संक्षिप्त बातचीत 397 00:23:18,870 --> 00:23:24,590 क्योंकि जबकि PHP कमजोर टाइप किया जाता है और यह की तरह तेजी से और प्रकार के साथ ढीला निभाता है, 398 00:23:24,590 --> 00:23:29,430 एक डेटाबेस में विशेष रूप से यह सुपर महत्वपूर्ण है वास्तव में अपने लाभ के लिए टाइपिंग का उपयोग 399 00:23:29,430 --> 00:23:33,260 क्योंकि बातें MySQL और अन्य डेटाबेस इंजन के एक तुम्हारे लिए क्या कर सकते हैं 400 00:23:33,260 --> 00:23:37,910 सुनिश्चित करें कि आप फर्जी डेटा अपने डेटाबेस में डाल नहीं है. 401 00:23:37,910 --> 00:23:41,850 यह आप के लिए उपलब्ध त्रुटि जाँच की तरह है. 402 00:23:41,850 --> 00:23:46,250 >> हम घर के लिए स्पष्ट रूप से यह एक int, जो MySQL में एक 32-bit मूल्य होने के लिए नहीं करना चाहती. 403 00:23:46,250 --> 00:23:49,810 हम शुक्रवार को संक्षेप में varchar, जो चर चार लंबाई के लिए खड़ा है के बारे में बात किया. 404 00:23:49,810 --> 00:23:54,720 यह क्या है? यह आपको यह निर्दिष्ट करने की अनुमति देता है कि आप यह किसी प्रकार की एक स्ट्रिंग होना चाहता हूँ. 405 00:23:54,720 --> 00:23:56,840 तुम सच कितना समय है अग्रिम में पता नहीं है, 406 00:23:56,840 --> 00:24:00,100 तो हम मनमाने ढंग से कहते हैं कि एक घर का नाम 255 वर्ण हो सकते हैं, 407 00:24:00,100 --> 00:24:04,190 लेकिन आप 32, 64 के साथ जा सकते हैं - किसी भी संख्या वास्तव में. 408 00:24:04,190 --> 00:24:10,700 लेकिन एक चार नामक क्षेत्र पर एक varchar का उपयोग करने के लाभ क्या है? 409 00:24:10,700 --> 00:24:15,110 बस intuitively अगर मैं यहाँ नीचे स्क्रॉल नोटिस, वहाँ चार है और वहाँ varchar है. 410 00:24:15,110 --> 00:24:19,520 Varchar चर चार लंबाई है, चार एक निश्चित चार लंबाई है. 411 00:24:19,520 --> 00:24:24,730 तो उस परिभाषा पर ही आधारित है, या इनमें से प्रत्येक के लाभ और नुकसान क्या है? 412 00:24:24,730 --> 00:24:30,490 दूसरे शब्दों में, जो अंतर के बारे में परवाह है, या तुम क्यों परवाह करूँ? 413 00:24:31,660 --> 00:24:35,750 >> हाँ. [छात्र] varchar अधिक लचीलापन है, लेकिन और अधिक स्मृति लेता है. 414 00:24:35,750 --> 00:24:40,730 अच्छा है. VARCHAR ऊपर लेता है - चलो देखते हैं. मुझे यकीन है कि अगर मुझे लगता है कि सही सुना नहीं कर रहा हूँ. 415 00:24:40,730 --> 00:24:42,360 आप कह सकते हैं कि एक बार और अधिक? 416 00:24:42,360 --> 00:24:45,850 [छात्र] मैंने कहा varchar शायद और अधिक लचीलापन है, लेकिन इसे और अधिक स्मृति लेता है. 417 00:24:45,850 --> 00:24:51,170 दिलचस्प है. ठीक है. VARCHAR शायद आप अधिक लचीलापन देता है, लेकिन और अधिक स्मृति लेता है. 418 00:24:51,170 --> 00:24:53,220 बाद जरूरी सच नहीं है. 419 00:24:53,220 --> 00:24:56,290 यह संदर्भ पर निर्भर करता है, लेकिन है कि वापस आने के. 420 00:24:56,290 --> 00:25:03,230 >> [अश्राव्य छात्र प्रतिक्रिया] बिल्कुल सही. 421 00:25:03,230 --> 00:25:06,900 यह वास्तव में मामला है कि चार आमतौर पर अधिक स्मृति का उपयोग करेगा 422 00:25:06,900 --> 00:25:10,950 क्योंकि एक चार, सी में की तरह, एक स्ट्रिंग की तरह है, यह वर्णों की एक सरणी है. 423 00:25:10,950 --> 00:25:13,690 तो अगर आप 255 लंबाई के चार क्षेत्र कहते हैं, 424 00:25:13,690 --> 00:25:16,910 डेटाबेस सचमुच आप 255 अक्षर दे रहा है. 425 00:25:16,910 --> 00:25:22,290 और अगर घर में समाप्त होता है माथर और 6 वर्ण कुल किया जा रहा है, 426 00:25:22,290 --> 00:25:25,090 आप 200 अक्षरों से अधिक बर्बाद कर रहे हैं. 427 00:25:25,090 --> 00:25:29,640 >> तो एक प्रभावी varchar केवल कई पात्रों के रूप में उपयोग करता है के रूप में आवश्यक है 428 00:25:29,640 --> 00:25:31,590 एक अधिकतम राशि है. 429 00:25:31,590 --> 00:25:35,470 लेकिन कीमत है जो आप भुगतान वास्तव में संभावित प्रदर्शन,. 430 00:25:35,470 --> 00:25:39,740 यदि आप पहले से जानते हैं कि अपने तार के सभी 8 वर्ण होने जा रहे हैं - 431 00:25:39,740 --> 00:25:43,090 उदाहरण के लिए, मान लीजिए कि आप 8 लंबाई के पासवर्ड की आवश्यकता होती है - 432 00:25:43,090 --> 00:25:47,350 इस अवसर पर एक चार क्षेत्र का उपयोग हालांकि अक्सर नहीं, उल्टा, 433 00:25:47,350 --> 00:25:51,100 एक पासवर्ड की तरह कुछ के लिए एक निश्चित लंबाई निर्दिष्ट 434 00:25:51,100 --> 00:25:53,300 क्योंकि अब डेटाबेस भी चालाक हो सकता है. 435 00:25:53,300 --> 00:25:58,160 यदि यह है कि हर चार क्षेत्र जानता है, एक स्तंभ में हर स्ट्रिंग एक ही लंबाई है, 436 00:25:58,160 --> 00:26:00,780 तुम वापस यादृच्छिक अभिगम की सुविधा मिलती है. 437 00:26:00,780 --> 00:26:05,110 आप के चारों ओर चार विभिन्न क्षेत्रों में अपने डेटाबेस तालिका में कूद कर सकते हैं 438 00:26:05,110 --> 00:26:07,940 क्योंकि पंक्तियों और स्तंभों के रूप में एक डेटाबेस के बारे में सोचना. 439 00:26:07,940 --> 00:26:11,670 तो अगर तारों में से हर एक को एक ही लंबाई है, 440 00:26:11,670 --> 00:26:17,820 आप जानते हैं कि पहले एक 0 बाइट पर है, अगले एक 8 बाइट 441 00:26:17,820 --> 00:26:20,240 और फिर 16 और फिर 24 और बहुत आगे है. 442 00:26:20,240 --> 00:26:24,500 तो अगर सभी एक ही लंबाई के तार कर रहे हैं, आप के आसपास और अधिक कुशलता से कूद कर सकते हैं. 443 00:26:24,500 --> 00:26:26,710 तो यह है कि प्रदर्शन के मामले में एक लाभ हो सकता है, 444 00:26:26,710 --> 00:26:29,420 लेकिन आम तौर पर आप अग्रिम में जानने के लक्जरी नहीं है, 445 00:26:29,420 --> 00:26:32,170 तो एक varchar जाने के लिए रास्ता है. 446 00:26:32,170 --> 00:26:36,030 यहाँ एक और विस्तार है कि यहां तक ​​कि फेसबुक अंततः में भाग गया है. 447 00:26:36,030 --> 00:26:39,670 Ints महान हैं, और हम तरह से उन्हें डिफ़ॉल्ट रूप से किसी भी समय हम एक नंबर का उपयोग, 448 00:26:39,670 --> 00:26:41,750 लेकिन यह केवल 32 बिट है. 449 00:26:41,750 --> 00:26:46,210 >> और भले ही फेसबुक काफी 4 अरब उपयोगकर्ताओं नहीं है अब, 450 00:26:46,210 --> 00:26:48,680 वहाँ निश्चित रूप से कई खातों के साथ कुछ लोगों को वहाँ से बाहर है 451 00:26:48,680 --> 00:26:50,960 या खातों कि खोला गया है और फिर बंद कर दिया है, 452 00:26:50,960 --> 00:26:55,130 और इतना ही Facebook मेरा मानना ​​है कि कुछ साल पहले int से संक्रमण के लिए किया था 453 00:26:55,130 --> 00:27:00,010 , के रूप में जिसे उपयुक्त कहा जाता है, bigint, जो सिर्फ 64 बिट के बजाय है. 454 00:27:00,010 --> 00:27:02,230 तो यह भी एक डिजाइन निर्णय है. 455 00:27:02,230 --> 00:27:06,570 तुम बहुत भाग्यशाली हो सकता है अगर अपने अंतिम परियोजना स्टार्टअप बदल जाता है, 456 00:27:06,570 --> 00:27:10,010 4 अरब डॉलर और 1 उपयोगकर्ताओं, दे या ले, 457 00:27:10,010 --> 00:27:13,200 जो मामले में ints का उपयोग करते हुए एक छोटे से अदूरदर्शा हो सकता है. 458 00:27:13,200 --> 00:27:16,230 लेकिन वास्तविकता में, अपने उपयोगकर्ताओं को तालिका शायद ints के साथ ठीक है. 459 00:27:16,230 --> 00:27:19,340 लेकिन 7 pset की तरह कुछ के लिए, अपने इतिहास की मेज की तरह, 460 00:27:19,340 --> 00:27:23,700 आप हजारों, लाखों उपयोगकर्ताओं के अगर आप etrade.com में विकसित हो सकता है. 461 00:27:23,700 --> 00:27:26,020 जबकि आप 4 अरब से अधिक उपयोगकर्ताओं नहीं हो सकता है, 462 00:27:26,020 --> 00:27:30,070 उन उपयोगकर्ताओं तुम है समय के साथ अधिक से अधिक 4 अरब लेनदेन हो सकता है - 463 00:27:30,070 --> 00:27:33,200 खरीदता है और बेचता है और अपने इतिहास में बातें. 464 00:27:33,200 --> 00:27:38,090 तो अगर आप आशा करते हैं - फिर, ये अच्छा है अगर आप इतना डेटा समस्याएं हैं - 465 00:27:38,090 --> 00:27:40,920 अगर आप एक int के आकार से अधिक डेटा की आशा करते हैं, 466 00:27:40,920 --> 00:27:47,740 bigint की तरह कुछ के साथ जाने के लिए एक दिशा डिजाइनरों द्वारा अक्सर पर्याप्त नहीं अपनाया है 467 00:27:47,740 --> 00:27:49,710 क्योंकि लोगों आंकड़ा है कि एक समस्या हो नहीं जा रहा है, 468 00:27:49,710 --> 00:27:51,930 लेकिन यह आसान है उस से भी बड़ा कुछ का चयन. 469 00:27:51,930 --> 00:27:55,380 दशमलव हम pset 7, जो निश्चित परिशुद्धता निर्दिष्ट में प्रयोग कर रहे हैं 470 00:27:55,380 --> 00:27:59,840 तो आप मंगाई और युगल और reals और इस तरह से जुड़े मुद्दों से बचने के लिए कर सकते हैं. 471 00:27:59,840 --> 00:28:02,440 >> और फिर वहाँ कुछ अन्य क्षेत्रों यहाँ है. हम उन पर कुछ हद तक हमारे हाथ लहर हूँ. 472 00:28:02,440 --> 00:28:07,270 लेकिन दिनांक, समय सभी MySQL में एक निर्धारित प्रारूप है, 473 00:28:07,270 --> 00:28:10,830 और तिथियाँ और varchars नहीं के रूप में भंडारण दिनांक का लाभ 474 00:28:10,830 --> 00:28:15,730 मतलब यह है कि डेटाबेस वास्तव में उन्हें विभिन्न स्वरूपों में पुन: स्वरूपित कर सकते हैं, 475 00:28:15,730 --> 00:28:18,800 कि एक अमेरिकी प्रारूप या यूरोपीय प्रारूप या तरह - लेकिन आप यह चाहते हैं - 476 00:28:18,800 --> 00:28:22,700 और अधिक कुशलता से अगर यह सिर्फ कुछ सामान्य varchar थे. 477 00:28:22,700 --> 00:28:25,150 और फिर वहाँ कुछ अन्य बाइनरी, varbinary, blobs है. 478 00:28:25,150 --> 00:28:28,580 इन द्विआधारी बड़ी वस्तुओं रहे हैं, और आप भी बाइनरी डेटा स्टोर कर सकते हैं 479 00:28:28,580 --> 00:28:30,750 के रूप में अच्छी तरह से एक डेटाबेस में ज्यामितीय डेटा के रूप में. 480 00:28:30,750 --> 00:28:34,350 लेकिन हमारे लिए हम आम तौर पर ints और varchars है और इस तरह के बारे में ध्यान देंगे. 481 00:28:34,350 --> 00:28:36,230 चलो घर के साथ इस उदाहरण खत्म. 482 00:28:36,230 --> 00:28:40,030 हाउस मैं मनमाने ढंग से कहने जा रहा हूँ 255 वर्ण हो जाएगा. 483 00:28:40,030 --> 00:28:42,850 फिर डिफ़ॉल्ट मान हम यह कर सकते हैं. 484 00:28:42,850 --> 00:28:47,440 हम मैथर सदन में डिफ़ॉल्ट रूप से हर कोई डाल सकता है, उदाहरण के लिए. 485 00:28:47,440 --> 00:28:49,710 यही कारण है कि हम कैसे निर्दिष्ट कर सकता है कि डेटाबेस 486 00:28:49,710 --> 00:28:52,460 सुनिश्चित करें कि किसी को हमेशा एक मूल्य है. लेकिन मैं चलता हूँ कि हो. 487 00:28:52,460 --> 00:28:55,270 वास्तव में, जो लोग परिसर से दूर रहते हैं और एक घर में नहीं के लिए, 488 00:28:55,270 --> 00:28:59,590 हो सकता है कि मैं वास्तव में यह निर्दिष्ट करने के लिए चाहते हैं कि घर के लिए डिफ़ॉल्ट मान रिक्त है, 489 00:28:59,590 --> 00:29:04,890 और फिर मैं इस बॉक्स को चेक और डेटाबेस यह ठीक है अगर उपयोगकर्ता के घर रिक्त है बताने की जरूरत है. 490 00:29:04,890 --> 00:29:07,270 >> फिर, यह एक सुरक्षा तंत्र तुम जगह में डाल सकते हैं 491 00:29:07,270 --> 00:29:10,590 तो आप भी अपने PHP कोड में डाल यह जरूरी नहीं है. 492 00:29:10,590 --> 00:29:14,630 डेटाबेस यह सुनिश्चित करेंगे कि बातें कर रहे हैं या रिक्त नहीं हैं. 493 00:29:14,630 --> 00:29:17,310 और फिर अंत में, गुण. 494 00:29:17,310 --> 00:29:18,920 इनमें से कोई भी वास्तव में प्रासंगिक हैं. 495 00:29:18,920 --> 00:29:22,880 द्विचर, अहस्ताक्षरित उन में से कोई एक varchar के लिए प्रासंगिक हैं. 496 00:29:22,880 --> 00:29:24,220 सूचकांक. 497 00:29:24,220 --> 00:29:27,320 क्या किसी को पता है या याद करने के लिए या एक सूचकांक क्या है के रूप में एक अनुमान है 498 00:29:27,320 --> 00:29:29,510 घर की तरह कुछ के लिए? 499 00:29:29,510 --> 00:29:35,240 यह भी वास्तव में एक महत्वपूर्ण और अपेक्षाकृत आसान डिजाइन निर्णय है. 500 00:29:35,240 --> 00:29:39,200 जो लोग अभी तक इसे नहीं देखा है, शुक्रवार को हम प्राथमिक कुंजी के बारे में संक्षेप में बात की. 501 00:29:39,200 --> 00:29:43,240 एक डेटाबेस तालिका में एक प्राथमिक कुंजी क्षेत्र या स्तंभ है 502 00:29:43,240 --> 00:29:46,270 कि विशिष्ट तालिका में पंक्तियों को पहचानती है. 503 00:29:46,270 --> 00:29:49,150 तो वर्तमान तालिका हम आईडी है, हम नाम और ईमेल है. 504 00:29:49,150 --> 00:29:52,050 उन में से जो सबसे अच्छा उम्मीदवार के लिए एक प्राथमिक कुंजी है, 505 00:29:52,050 --> 00:29:55,810 जिसका भूमिका के लिए विशिष्ट पंक्तियों की पहचान है? 506 00:29:55,810 --> 00:29:57,530 शायद आईडी. 507 00:29:57,530 --> 00:29:59,930 बेशक, हालांकि हम भी क्या इस्तेमाल कर सकते हैं? 508 00:29:59,930 --> 00:30:02,860 शायद आपको ईमेल का उपयोग करें, क्योंकि सिद्धांत रूप में यह अद्वितीय है हो सकता है 509 00:30:02,860 --> 00:30:05,380 जब तक लोगों को ईमेल खातों को साझा कर रहे हैं. 510 00:30:05,380 --> 00:30:09,980 लेकिन वास्तविकता यह है कि यदि आप 1234 की तरह एक संख्यात्मक आईडी का उपयोग कर रहे हैं, 511 00:30:09,980 --> 00:30:14,170 है कि केवल 32 बिट, जबकि एक ईमेल पते यह कई बाइट्स या यह कई बाइट्स हो सकता है. 512 00:30:14,170 --> 00:30:16,610 तो अनन्य पहचानकर्ता के लिए दक्षता के मामले में, 513 00:30:16,610 --> 00:30:19,270 यह सिर्फ एक int का उपयोग करने के लिए अच्छा अभ्यास हो जाता है 514 00:30:19,270 --> 00:30:23,090 यहां तक ​​कि अगर आप कुछ स्ट्रिंग उम्मीदवार है कि आप यकीनन इस्तेमाल कर सकते हैं. 515 00:30:23,090 --> 00:30:26,760 >> घर की तरह कुछ के लिए, यह एक प्राथमिक कुंजी नहीं होना चाहिए 516 00:30:26,760 --> 00:30:30,770 क्योंकि तब केवल 1 व्यक्ति माथर में रहते हैं और Currier और ऐसे में एक व्यक्ति को हो सकता है. 517 00:30:30,770 --> 00:30:32,790 इसी तरह, यह अनूठा नहीं होना चाहिए. 518 00:30:32,790 --> 00:30:37,830 प्राथमिक और अद्वितीय के बीच अंतर कि हमारे वर्तमान तालिका के मामले में है, 519 00:30:37,830 --> 00:30:42,620 आईडी प्राथमिक हो सकता है, लेकिन ईमेल प्राथमिक कारण है कि हम अभी उल्लेख किया है के लिए नहीं है - 520 00:30:42,620 --> 00:30:44,740 प्रदर्शन है, लेकिन यह अभी भी अद्वितीय होना चाहिए. 521 00:30:44,740 --> 00:30:47,200 तो आप अभी भी दावा कर रही है बिना विशिष्टता को लागू कर सकते हैं 522 00:30:47,200 --> 00:30:49,520 कि यह एक सुपर महत्वपूर्ण प्राथमिक क्षेत्र है. 523 00:30:49,520 --> 00:30:52,610 लेकिन यह एक काफी उपयोगी है: सूचकांक. 524 00:30:52,610 --> 00:30:56,180 यदि आप अपने अंतिम परियोजना के लिए अग्रिम में 7 pset के लिए, या सामान्य में पता है,, 525 00:30:56,180 --> 00:30:59,480 है कि इस क्षेत्र के घर के लिए कुछ है आप एक बहुत पर खोज होने जा रहा है 526 00:30:59,480 --> 00:31:01,910 चयन खोजशब्द या कुछ और का प्रयोग, 527 00:31:01,910 --> 00:31:05,180 तो आप preemptively डेटाबेस बताने के लिए अपने जादू काम कर सकते हैं 528 00:31:05,180 --> 00:31:10,510 और यकीन है कि यह स्मृति में किसी भी फैंसी डेटा संरचनाओं बनाता आवश्यक 529 00:31:10,510 --> 00:31:13,770 घर पर आधारित खोजों में तेजी लाने के लिए. 530 00:31:13,770 --> 00:31:17,860 शायद यह एक हैश तालिका का उपयोग करेगा, शायद यह एक लिंक सूची का प्रयोग करेंगे. 531 00:31:17,860 --> 00:31:21,260 वास्तव में, यह एक पेड़ का उपयोग करने के लिए जाता है, अक्सर एक संरचना एक बी पेड़ कहा जाता है - 532 00:31:21,260 --> 00:31:24,090 बाइनरी नहीं लेकिन एक एक बी पेड़ के पेड़ - जो एक बहुत व्यापक पेड़ है 533 00:31:24,090 --> 00:31:27,370 है कि आप एक वर्ग में CS124, डाटा संरचनाओं वर्ग की तरह देख सकते हैं. 534 00:31:27,370 --> 00:31:31,800 लेकिन संक्षेप में, आप कि जब स्मार्ट डेटाबेस सॉफ्टवेयर का उपयोग कर के बारे में चिंता करने की ज़रूरत नहीं है. 535 00:31:31,800 --> 00:31:35,890 आप सिर्फ यह बताओ, "सूचकांक इस क्षेत्र तो मैं उस पर और अधिक कुशलता से खोज कर सकते हैं." कर सकते हैं 536 00:31:35,890 --> 00:31:40,250 >> यदि आप इस छोड़ना और आप जो डेटाबेस माथर में रहती में हर किसी के लिए खोज करने की कोशिश 537 00:31:40,250 --> 00:31:42,710 यह रैखिक खोज में उतरना होगा. 538 00:31:42,710 --> 00:31:45,360 और अगर आप 6000 undergrads मिल गया है कुछ घर में सभी जीवित, 539 00:31:45,360 --> 00:31:47,900 आप संपूर्ण तालिका खोज करने के Matherites मिल जा रहे हैं, 540 00:31:47,900 --> 00:31:52,190 जबकि अगर आप कहते हैं कि सूचकांक, उम्मीद है कि यह एक लघुगणकीय खोज करने के लिए कुछ बंद हो जाएगा 541 00:31:52,190 --> 00:31:54,510 उन के प्रकार छात्रों को मिल. 542 00:31:54,510 --> 00:31:56,750 यह सिर्फ एक मुफ्त सुविधा है पर बारी, 543 00:31:56,750 --> 00:31:59,530 भले ही यह अंतरिक्ष की कुछ राशि की एक कीमत पर आता है. 544 00:31:59,530 --> 00:32:02,690 अन्त में, ऑटो वेतन वृद्धि, इस ऐ क्षेत्र, 545 00:32:02,690 --> 00:32:05,830 जो सिर्फ मतलब है कि अगर यह एक int है और आप करने के लिए यह अपने आप को वेतन वृद्धि की परवाह नहीं करना चाहती 546 00:32:05,830 --> 00:32:07,570 हर बार जब वहाँ एक नया उपयोगकर्ता है, कि जांच, 547 00:32:07,570 --> 00:32:11,910 और प्रत्येक उपयोगकर्ता है कि डाला जाता है स्वचालित रूप से एक नई पहचान मिल जाएगा. 548 00:32:11,910 --> 00:32:15,620 चलो सहेजें क्लिक करें, और अब हम इस डिजाइन के साथ गलती खोजने के लिए. 549 00:32:15,620 --> 00:32:20,200 यदि मैं ब्राउज़, सूचना है कि दोनों माइक और मेरे घर के नल है में जाना. 550 00:32:20,200 --> 00:32:22,420 मैं phpMyAdmin का उपयोग करने के लिए इस मैन्युअल रूप से संपादित कर सकते हैं. 551 00:32:22,420 --> 00:32:25,110 मैं यहाँ में और प्रकार माथर में जा सकते हैं और फिर हिट दर्ज करें, 552 00:32:25,110 --> 00:32:27,740 और अब नोटिस तालिका अलग है. 553 00:32:27,740 --> 00:32:29,270 नोटिस लेकिन मैं कुछ और के रूप में अच्छी तरह से कर सकता है. 554 00:32:29,270 --> 00:32:33,530 डेविड आईडी है 1 है तो, फिर सिर्फ एक प्रशासनिक उपकरण है phpMyAdmin; 555 00:32:33,530 --> 00:32:35,970 यह कुछ अपने उपयोगकर्ताओं को कभी देखने के लिए जा रहे हैं नहीं है. 556 00:32:35,970 --> 00:32:38,810 तो अगर मैं बजाय ऊपर शीर्ष SQL टैब पर क्लिक करें - 557 00:32:38,810 --> 00:32:41,450 और फिर, 7 pset आप इन प्रश्नों को लागू करेगा - 558 00:32:41,450 --> 00:32:45,260 मैं स्वयं SQL संरचित क्वेरी भाषा आदेश पर अमल कर सकते हैं 559 00:32:45,260 --> 00:32:56,410 अद्यतन उपयोगकर्ताओं घर = जहां आईडी = 1 'Pfoho' निर्धारित किया है. 560 00:32:56,410 --> 00:33:00,830 इन एसक्यूएल प्रश्नों हैं, अच्छी तरह से करने के लिए पर्याप्त है, बहुत से सही करने के लिए छोड़ दिया पठनीय. 561 00:33:00,830 --> 00:33:04,350 उपयोगकर्ताओं को तालिका अद्यतन, Pfoho घर बुलाया क्षेत्र सेट 562 00:33:04,350 --> 00:33:06,830 जहाँ उपयोगकर्ता आईडी 1 है. 563 00:33:06,830 --> 00:33:11,480 या मैं भी कर सकता है जहां ईमेल = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 इतने लंबे समय के रूप में है कि विशिष्ट मुझे पहचानती है, उस के रूप में अच्छी तरह से काम करेगा. 565 00:33:14,860 --> 00:33:18,810 लेकिन आईडी के लिए उच्च प्रदर्शन हो जाता है, तो चलो कि करना. 566 00:33:18,810 --> 00:33:22,950 चलो जाएँ क्लिक करें. ठीक है, lecture.users मौजूद नहीं है. मेरी गलती क्या है? 567 00:33:22,950 --> 00:33:26,220 वास्तव में यहाँ बुलाया तालिका क्या है? 568 00:33:26,220 --> 00:33:28,770 यह छात्रों को कहा जाता है, सिर्फ इसलिए कि हम क्या ऊपर छोड़ दिया पर यहाँ था. 569 00:33:28,770 --> 00:33:31,860 यह छात्रों, उपयोगकर्ताओं को नहीं कहा जाता है. तो अब जाएँ क्लिक करें. 570 00:33:31,860 --> 00:33:34,330 1 पंक्ति प्रभावित. प्रश्न 0.01 सेकंड लिया. 571 00:33:34,330 --> 00:33:38,010 यदि मैं अब ब्राउज़ करें, अब क्लिक करें Malan जीवन में Pfoho. 572 00:33:38,010 --> 00:33:42,070 तो यह है कि SQL का एक और स्वाद है, लेकिन pset आप एक सा है कि अधिक के माध्यम से चलना होगा. 573 00:33:42,070 --> 00:33:44,710 >> वहाँ एक बेवकूफ निर्णय है मैं पहले से ही यहाँ बनाया है. 574 00:33:44,710 --> 00:33:47,820 मैं तर्क होता है कि यह डेटाबेस डिजाइन अक्षम है 575 00:33:47,820 --> 00:33:51,650 क्योंकि अधिक लोगों मैं छात्रों की मेज को जोड़ने, 576 00:33:51,650 --> 00:33:54,730 हम में से अधिक मैं जोड़ने, TFS मैं जोड़ने शुरू की अधिक शुरू, 577 00:33:54,730 --> 00:33:58,320 हम देखने के लिए क्या इस तालिका में redundancies शुरू करने के लिए जा रहे हैं? 578 00:34:00,840 --> 00:34:06,020 >> हाँ. [छात्र] देख रहा है कि यह छात्रों में है, हम एक ही प्रयोग कर रहे हैं [अश्राव्य] 579 00:34:06,020 --> 00:34:07,360 एक ही है - ठीक है, बिल्कुल. 580 00:34:07,360 --> 00:34:10,400 तो अगर 400 लोगों माथर में रहते हैं, दे या ले, 581 00:34:10,400 --> 00:34:15,000 अंततः इस तालिका के लिए 400 पंक्तियों है कि "Mather," "माथर का कहना है, किया जा रहा है" 582 00:34:15,000 --> 00:34:16,590 "Mather," "Mather," "माथर." 583 00:34:16,590 --> 00:34:19,820 हम इन सभी बाइट्स की बर्बाद कर रहे हैं, और वहाँ takeaways के एक जोड़े वहाँ है. 584 00:34:19,820 --> 00:34:23,080 1, वहाँ पागल कोने मामला है जहां अगर किसी को पैसे की एक बहुत कुछ देता है 585 00:34:23,080 --> 00:34:25,949 और renames माथर, हम अब हमारे पूरे डेटाबेस तालिका को बदलने की है. 586 00:34:25,949 --> 00:34:29,730 यह अक्सर होता नहीं जा रहा है, हालांकि Pfoho एक बार उत्तर हाउस 15 साल पहले कहा था, 587 00:34:29,730 --> 00:34:32,310 तो यह होता है. लेकिन यह है कि है कि सभी बाध्यकारी नहीं है. 588 00:34:32,310 --> 00:34:36,000 अधिक की तरह है कि थोक में डेटा को अद्यतन करने के लिए की जरूरत के एक कोने मामले से सम्मोहक 589 00:34:36,000 --> 00:34:41,150 एक डेटाबेस के लिए क्यों कर रहे हैं आप माथर फिर से और फिर भंडारण और फिर? 590 00:34:41,150 --> 00:34:43,020 वह घर का काम, 6 chars की एक बहुत कुछ है. 591 00:34:43,020 --> 00:34:45,500 नहीं, हम Pforzheimer के लिए विशेष रूप से, उससे भी बेहतर कर सकते हैं? 592 00:34:45,500 --> 00:34:48,320 निश्चित रूप से हम कि कई पात्रों की तुलना में बेहतर कर सकते हैं. 593 00:34:48,320 --> 00:34:51,790 क्यों हर घर के साथ एक अद्वितीय पहचानकर्ता संबद्ध नहीं 594 00:34:51,790 --> 00:34:55,020 और प्रत्येक उपयोगकर्ता के लिए है कि दुकान? तो चलो इस प्रयास करें. 595 00:34:55,020 --> 00:35:00,610 बल्कि सिर्फ छात्रों की मेज का उपयोग करें, मुझे मेरे व्याख्यान डेटाबेस के लिए ऊपर छोड़ दिया पर यहाँ जाना. 596 00:35:00,610 --> 00:35:02,600 यहाँ सूचना यह कहते हैं तालिका बनाएँ. 597 00:35:02,600 --> 00:35:04,550 मुझे एक नए घरों बुलाया तालिका बनाने के. 598 00:35:04,550 --> 00:35:08,880 स्तंभों की संख्या 2 हो जा रहा है. दर्ज करें. 599 00:35:08,880 --> 00:35:11,200 अब मैं 2 क्षेत्रों है. 600 00:35:11,200 --> 00:35:14,600 मैं नाम इस फोन करने के लिए जा रहा हूँ, और यह 255 लंबाई की एक varchar होने जा रहा है, 601 00:35:14,600 --> 00:35:18,770 >> लेकिन वह काफी मनमाना है. मुझे यह नीचे सम्मेलन द्वारा यहाँ डाल. 602 00:35:18,770 --> 00:35:22,840 यहाँ तो एक आईडी डाल दिया. हर घर में एक अद्वितीय पहचानकर्ता दे. 603 00:35:22,840 --> 00:35:25,360 हर घर में एक नाम दे दो. 604 00:35:25,360 --> 00:35:30,980 चलो निर्दिष्ट है कि पहचानकर्ता सम्मेलन द्वारा अहस्ताक्षरित होने के लिए केवल सकारात्मक संख्या का उपयोग करेगा. 605 00:35:30,980 --> 00:35:35,020 चलो आगे जाना है और अब के लिए यह एक ऑटो वेतन वृद्धि क्षेत्र दे. 606 00:35:35,020 --> 00:35:38,160 और क्या हम कुछ और की जरूरत है? 607 00:35:38,160 --> 00:35:41,010 चलो आगे जाना है और सहेजें क्लिक करें. 608 00:35:41,010 --> 00:35:42,480 अब मैं एक दूसरी तालिका है. 609 00:35:42,480 --> 00:35:45,860 सूचना एक अलग रूप में इस थोड़ा गुप्त SQL आदेश 610 00:35:45,860 --> 00:35:50,280 कि आप स्वयं टाइप अगर phpMyAdmin की तरह एक प्रशासनिक उपकरण का उपयोग नहीं करना पड़ता था. 611 00:35:50,280 --> 00:35:51,990 तो एक और कारण है कि हम इसे उपयोग. 612 00:35:51,990 --> 00:35:55,480 Pedagogically के शानदार उपयोगी प्रकार है क्योंकि आप चारों ओर क्लिक कर सकते हैं 613 00:35:55,480 --> 00:36:01,050 और बाहर आंकड़ा कैसे चीजें सिर्फ नकल और चिपकाने phpMyAdmin क्या किया काम. 614 00:36:01,050 --> 00:36:04,150 लेकिन टेबल बनाएं आदेश है कि क्या सिर्फ मार डाला गया था, और यहाँ मेरी मेज है. 615 00:36:04,150 --> 00:36:11,370 चलो अब मुझे आगे जाना है और सम्मिलित करें टैब पर क्लिक करके कच्चे बजाय SQL oversimplify. 616 00:36:11,370 --> 00:36:15,040 मुझे घरों में सम्मिलित करते हैं, 617 00:36:15,040 --> 00:36:22,230 और मैं कहना है कि घर के नाम के 'माथर' एक मूल्य है जा रहा है के लिए जा रहा हूँ. 618 00:36:22,230 --> 00:36:24,790 बस. इस वाक्य रचना थोड़ा और अधिक एक गुप्त है. 619 00:36:24,790 --> 00:36:26,660 यह खेतों हम सम्मिलित करना चाहते हैं के नाम है. 620 00:36:26,660 --> 00:36:30,390 मानों हम उन क्षेत्रों में सम्मिलित करना चाहते हैं. मुझे जाएँ क्लिक करें. 621 00:36:30,390 --> 00:36:34,410 1 डाला पंक्ति 0.02 सेकंड लिया. मुझे अब ब्राउज़ करें क्लिक करें. 622 00:36:34,410 --> 00:36:42,020 >> सूचना अगर मैं ब्राउज़ करें क्लिक करें, माथर, जिसका आईडी स्वचालन द्वारा नंबर 1 है. 623 00:36:42,020 --> 00:36:45,000 मुझे एक दूसरे के कार्य. मुझे SQL टैब में जाने. 624 00:36:45,000 --> 00:36:52,950 घरों में डालने. घर के नाम Pfoho के एक मूल्य किया जा रहा है और बहुत आगे है. 625 00:36:52,950 --> 00:36:56,350 जाओ. और मैं यह फिर से और फिर कर रख सकते हैं. 626 00:36:56,350 --> 00:36:59,470 या यदि आप phpMyAdmin का उपयोग कर ऊब मिलता है, तो आप सिर्फ सम्मिलित करें टैब का उपयोग कर सकते हैं 627 00:36:59,470 --> 00:37:01,000 और नहीं कच्चे एसक्यूएल लिखें. 628 00:37:01,000 --> 00:37:04,690 तुम बस इसे धमाके के टाइपिंग से बाहर कर सकते हैं और अधिक जल्दी से, उदाहरण के लिए, Currier दर्ज, 629 00:37:04,690 --> 00:37:07,610 और अब अगर हम ब्राउज़ करें क्लिक करें, 3 के एक आईडी के साथ Currier है. 630 00:37:07,610 --> 00:37:09,920 तो यह है कि हम क्या ऑटो वेतन वृद्धि से मतलब है. 631 00:37:09,920 --> 00:37:12,280 लेकिन अब हम करने के लिए छात्रों में कुछ तय है. 632 00:37:12,280 --> 00:37:16,240 घर के क्षेत्र के छात्रों में डेटा प्रकार अब क्या होना चाहिए? 633 00:37:16,240 --> 00:37:19,450 यह एक int होना चाहिए, सही? 634 00:37:19,450 --> 00:37:23,950 तो यहाँ लक्ष्य के लिए बाहर कारक है, अन्यथा मानक के अनुसार के रूप में जाना जाता है, तालिकाओं 635 00:37:23,950 --> 00:37:27,940 इतना है कि हम जानकारी के किसी भी मेरी मेज में प्रचुरता से नहीं स्टोर करते हैं. 636 00:37:27,940 --> 00:37:31,130 और फिर, हम यहाँ पर थे पथ Mather, माथर कहने जा रहा है, 637 00:37:31,130 --> 00:37:34,220 माथर, माथर Pfoho, Pfoho, Pfoho, Pfoho, जो बहुत बेमानी है 638 00:37:34,220 --> 00:37:36,240 वर्ण की अपव्ययिता के मामले में. 639 00:37:36,240 --> 00:37:40,820 तो मुझे आगे जाना है और क्लिक संरचना द्वारा इस परिवर्तन, 640 00:37:40,820 --> 00:37:44,620 और मुझे आगे जाना है और घर क्षेत्र, बदलें क्लिक करें, 641 00:37:44,620 --> 00:37:46,990 और अब मैं इसे बदलने के लिए एक int होने जा रहा हूँ. 642 00:37:46,990 --> 00:37:49,490 255 नहीं रह गया है प्रासंगिक है. 643 00:37:49,490 --> 00:37:54,010 मुझे आगे जाना है और कहना है कि ठीक है अगर यह अभी भी रिक्त है. सहेजें. 644 00:37:54,010 --> 00:37:55,870 अब तालिका छात्रों को सफलतापूर्वक बदल दिया गया है, 645 00:37:55,870 --> 00:37:59,090 और फिर नोटिस घर एक int है. 646 00:37:59,090 --> 00:38:02,220 एक अलग रूप में, कोष्ठक में संख्या की अनदेखी जब यह ints करने के लिए आता है. 647 00:38:02,220 --> 00:38:03,770 >> यह विरासत कारणों के लिए है. 648 00:38:03,770 --> 00:38:06,920 दिन में वापस जब आप GUIs नहीं था, आप के बजाय एक कमांड लाइन वातावरण था, 649 00:38:06,920 --> 00:38:11,580 क्रमश: 10 और 11 निर्दिष्ट कितने वर्ण दिखाना चाहिए 650 00:38:11,580 --> 00:38:13,950 टर्मिनल विंडो में वास्तव में फ़ील्ड प्रदर्शित करने के लिए. 651 00:38:13,950 --> 00:38:19,150 यह वास्तविक क्षेत्र के बिट लंबाई के साथ कुछ नहीं करना है, इसलिए हम अभी के लिए कि उपेक्षा करेंगे. 652 00:38:19,150 --> 00:38:20,990 अब मैं इस तालिका में जाने की है. 653 00:38:20,990 --> 00:38:24,610 और अगर दाऊद माथर में रहता है, घर नहीं 0 होना चाहिए, 654 00:38:24,610 --> 00:38:27,350 जो एक डिफ़ॉल्ट int नल निकटतम मूल्य है. 655 00:38:27,350 --> 00:38:29,810 वह एक घर में रहना चाहिए. 656 00:38:29,810 --> 00:38:36,870 चलो मनमाने ढंग से कहना है कि माइक Pfoho में रहता है, तो घर संख्या 2. 657 00:38:36,870 --> 00:38:40,160 अब मेरी मेज थोड़ा और अधिक एक गुप्त लग रहा है. 658 00:38:40,160 --> 00:38:41,960 लेकिन दक्षता पर विचार करें. 659 00:38:41,960 --> 00:38:44,860 अब मैं केवल 32 बिट का उपयोग कर रहा हूँ करने के लिए घर की पहचान करने के लिए, 660 00:38:44,860 --> 00:38:49,530 जिसका अर्थ है वहाँ केवल 1 मेरे घर माथर और Pfoho विहित परिभाषा 661 00:38:49,530 --> 00:38:52,090 और कि घरों तालिका में है. 662 00:38:52,090 --> 00:38:55,880 तो अगर मैं अब इन तालिकाओं को फिर से जोड़ना चाहते हैं, यह इस तरह के बारे में सोचना है. 663 00:38:55,880 --> 00:39:01,980 यहाँ मैं अपने छात्रों की मेज है, और दाएँ हाथ की ओर इन नंबरों, 1 और 2. 664 00:39:01,980 --> 00:39:04,180 माथर है 1, 2 Pfoho है. 665 00:39:04,180 --> 00:39:08,580 हम इस अन्य तालिका में उन एक ही नंबर है, जो घरों कहा जाता है, 666 00:39:08,580 --> 00:39:11,020 1 और 2 और 3 उन 3 घरों के लिए. 667 00:39:11,020 --> 00:39:14,990 अब हम क्या करना चाहते हैं कोड, PHP और SQL में क्षमता है, 668 00:39:14,990 --> 00:39:18,800 की तरह इन तालिकाओं को फिर से जोड़ना है, जहां अगर इन छात्रों को कर रहे हैं और इन घरों रहे हैं, 669 00:39:18,800 --> 00:39:22,050 हम किसी भी तरह उन्हें एक साथ इतनी है कि 1 लाइनों को गठबंधन करना चाहते हैं, 670 00:39:22,050 --> 00:39:25,670 2 के साथ 2 लाइनों, और इसलिए है कि हम समझ सकते हैं जहां दाऊद 671 00:39:25,670 --> 00:39:28,000 और जहां माइक और जहां हर किसी के रहता है. 672 00:39:28,000 --> 00:39:31,850 ऐसा करने के लिए हम निम्नलिखित की तरह एक एसक्यूएल क्वेरी को निष्पादित कर सकते हैं. 673 00:39:31,850 --> 00:39:40,470 छात्रों पर घरों में शामिल SELECT * FROM - 674 00:39:40,470 --> 00:39:43,000 और अब क्षेत्रों क्या हम पर शामिल होने के लिए चाहते हो? 675 00:39:43,000 --> 00:39:49,520 Students.house = houses.id तो. 676 00:39:49,520 --> 00:39:54,150 >> एक छोटी सी गुप्त, लेकिन इस भाग का मतलब सचमुच एक नया अस्थायी तालिका बनाने 677 00:39:54,150 --> 00:39:56,690 कि छात्रों और घरों में शामिल होने का नतीजा है. 678 00:39:56,690 --> 00:40:00,340 और आप अपनी उंगलियों के सुझावों यहाँ गठबंधन कैसे करना चाहते हैं? 679 00:40:00,340 --> 00:40:05,280 छात्रों ID फ़ील्ड घर घरों के बराबर क्षेत्र सेट. 680 00:40:05,280 --> 00:40:10,220 और अगर मैं अब जाएँ क्लिक करें, मैं वापस मिलता है कि क्या वास्तव में मैं आशा व्यक्त की. 681 00:40:10,220 --> 00:40:15,890 दाऊद माथर में है, माइक Pfoho में है, और मैं भी अद्वितीय पहचानकर्ता देखने. 682 00:40:15,890 --> 00:40:18,640 लेकिन बात अब मैं एक पूर्ण तालिका है. 683 00:40:18,640 --> 00:40:23,020 और इसलिए यहाँ 7 pset लिए takeaway या वास्तव में अंतिम परियोजना के लिए: 684 00:40:23,020 --> 00:40:25,830 यदि आपको लगता है कि आप जानकारी के किसी भी टुकड़ा redundantly भंडारण कर रहे हैं, 685 00:40:25,830 --> 00:40:28,850 चाहे वह एक घर है, शायद यह एक शहर, राज्य, और ज़िप 686 00:40:28,850 --> 00:40:32,050 जहां ज़िप लेकिन आमतौर पर नहीं हमेशा एक अद्वितीय पहचानकर्ता के रूप में इस्तेमाल किया जा सकता है, 687 00:40:32,050 --> 00:40:35,810 व्यायाम के माध्यम से phpMyAdmin की तरह कुछ के साथ मानसिक रूप से और फिर जाना 688 00:40:35,810 --> 00:40:40,660 कि आम डेटा बाहर फैक्टरिंग है क्योंकि खासकर के रूप में अपनी वेबसाइट और अधिक अच्छी तरह से इस्तेमाल हो जाता है 689 00:40:40,660 --> 00:40:45,440 और अधिक लोकप्रिय, यह है कि आप यकीन है कि सब कुछ सुपर फास्ट है, 690 00:40:45,440 --> 00:40:51,930 विशिष्टता के रूप में संभव के रूप में कई संकेत के रूप में डेटाबेस देकर. 691 00:40:51,930 --> 00:40:53,860 यह एक बहुत कुछ था. 692 00:40:53,860 --> 00:40:59,010 कोई सवाल? सही सभी. चलो एक 5 मिनट का ब्रेक लेने के लिए और फिर से संगठित. 693 00:41:01,600 --> 00:41:03,540 सही सभी. 694 00:41:03,540 --> 00:41:08,680 निम्नलिखित एक उदाहरण है कि कुछ साल पहले इस्तेमाल किया गया था जब मैं CS161 ले लिया है, 695 00:41:08,680 --> 00:41:10,960 जो कॉलेज में ऑपरेटिंग सिस्टम वर्ग है 696 00:41:10,960 --> 00:41:15,160 जो अद्भुत होने के लिए जाना जाता है लेकिन काम की एक पागल राशि, 697 00:41:15,160 --> 00:41:19,810 और यह वास्तव में है कि ऑपरेटिंग सिस्टम में उत्पन्न कम स्तर की समस्याओं में से कुछ पर ध्यान केंद्रित 698 00:41:19,810 --> 00:41:22,700 और भी डेटाबेस की दुनिया में भी. 699 00:41:22,700 --> 00:41:27,040 >> कहानी है कि मेरे प्रोफेसर, जर्मनी का रासायनिक जल मार्गो, बताया गया था कि वर्ष के रूप में इस प्रकार है. 700 00:41:27,040 --> 00:41:30,990 मान लीजिए कि आप आप और अपने रूममेट के लिए एक छोटे से छात्रावास फ्रिज 701 00:41:30,990 --> 00:41:34,030 और तुम दोनों वास्तव में दूध की तरह. 702 00:41:34,030 --> 00:41:36,360 तो आप एक दिन क्लास से घर आते हैं, अपनी रूममेट अभी तक वहाँ नहीं है, 703 00:41:36,360 --> 00:41:39,650 आप फ्रिज खोलते हैं, और तुम्हें पता है, "ओह, लानत, हम दूध से बाहर रहे हैं." 704 00:41:39,650 --> 00:41:42,070 तो आप फ्रिज बंद करते हैं, तो आप सीवीएस के लिए सड़क के पार चलना 705 00:41:42,070 --> 00:41:45,830 और तेजी से लंबी लाइनों में CVS में कुछ दूध खरीदते हैं. 706 00:41:45,830 --> 00:41:48,470 इस बीच, अपने रूममेट अपने या उसे कक्षा से घर आता है, 707 00:41:48,470 --> 00:41:51,690 कमरे में आता है, वास्तव में कुछ दूध चाहते फ्रिज खोलता है, 708 00:41:51,690 --> 00:41:54,130 फ्रिज खोलता है और, "अरे, दूध नहीं है." 709 00:41:54,130 --> 00:41:57,890 तो वह या वह फ्रिज बंद कर देता है, दरवाजे से बाहर चलता है, और ABP जाता है 710 00:41:57,890 --> 00:42:00,910 या कहीं CVS जहां आप एक दूसरे में टक्कर के लिए नहीं जा रहे हैं के अलावा अन्य 711 00:42:00,910 --> 00:42:02,790 कुछ दूध मिल जाना. 712 00:42:02,790 --> 00:42:04,820 बेशक कुछ ही मिनट बाद, तुम दोनों घर वापस पाने के 713 00:42:04,820 --> 00:42:07,740 और अब आप दो बार के रूप में ज्यादा दूध के रूप में आप वास्तव में चाहता था. 714 00:42:07,740 --> 00:42:10,670 और दूध किया जा रहा है, अब यह बुरा जाना जा रहा है क्योंकि आप दूध की तरह 715 00:42:10,670 --> 00:42:14,200 लेकिन क्या तुम सच में दूध की तरह नहीं करते हैं, तो अब आप बहुत ज्यादा दूध है, तो यह खट्टे करने के लिए जा रहा है. 716 00:42:14,200 --> 00:42:16,830 यह एक भयानक, भयानक स्थिति है. 717 00:42:16,830 --> 00:42:22,920 इस दुर्दशा का हल क्या हो सकता है अगर आप पहली रूममेट घर थे? हां. 718 00:42:22,920 --> 00:42:25,970 [छात्र] आप एक नोट छोड़ दिया जाना चाहिए. [हँसी] 719 00:42:25,970 --> 00:42:28,090 अच्छा है. आप एक नोट छोड़ दिया जाना चाहिए. 720 00:42:28,090 --> 00:42:32,320 आप कह रही है, जैसे एक नोट पोस्ट या रखा जाना चाहिए "दूध के लिए चला गया है," 721 00:42:32,320 --> 00:42:36,830 और फिर अपने रूममेट धारणात्मक कि वास्तव में कर के किया गया है बाहर बंद कर दिया. 722 00:42:36,830 --> 00:42:38,010 या फिर आप एक कदम आगे जा सकते हैं. 723 00:42:38,010 --> 00:42:41,060 तुम सचमुच ताला के कुछ प्रकार के साथ रेफ्रिजरेटर ताला सकता है, 724 00:42:41,060 --> 00:42:44,870 और अब अपने रूममेट सचमुच फ्रिज के बाहर होगी बंद किया जा. 725 00:42:44,870 --> 00:42:48,520 यदि हम प्रोग्रामिंग करने के लिए वापस सामान्यीकरण, 726 00:42:48,520 --> 00:42:51,610 आप लगभग चर के कुछ प्रकार या एक struct के रूप में फ्रिज के बारे में सोच सकते हैं, 727 00:42:51,610 --> 00:42:53,500 जानकारी के लिए कंटेनर के कुछ प्रकार. 728 00:42:53,500 --> 00:42:58,290 मौलिक समस्या यहाँ है कि आप दोनों के निरीक्षण करने के लिए अनुमति दी गई है 729 00:42:58,290 --> 00:43:02,370 या इस डेटा संरचना के राज्य पढ़ा, 730 00:43:02,370 --> 00:43:08,050 लेकिन आप इसे अलग अलग समय पर देखा और अभी तक तुम दोनों एक निर्णय लिया 731 00:43:08,050 --> 00:43:11,920 समय में उन विभिन्न क्षणों में दुनिया की स्थिति पर आधारित है. 732 00:43:11,920 --> 00:43:15,570 तो आप रेफ्रिजरेटर बंद किया था, आप कम से कम अपने रूममेट से बचा होगा 733 00:43:15,570 --> 00:43:19,070 से करने के लिए दुनिया की स्थिति का निरीक्षण करने में सक्षम किया गया है, 734 00:43:19,070 --> 00:43:22,530 तो वह या वह है कि एक ही निर्णय नहीं किया जा सका है. 735 00:43:22,530 --> 00:43:25,780 डेटाबेस तो, के रूप में यह पता चला है, इस समस्या लगातार है. 736 00:43:25,780 --> 00:43:31,050 >> चलो देखते हैं अगर हम एक परिदृश्य का निर्माण कर सकते हैं. 737 00:43:31,050 --> 00:43:34,310 मान लीजिए कि आप एक बुरा आदमी की तरह कर रहे हैं और आप बैंक ऑफ अमेरिका के लिए जाना 738 00:43:34,310 --> 00:43:37,950 या उस तरफ से एक जोड़ी एटीएम पक्ष वर्ग में अन्य स्थानों में से एक, 739 00:43:37,950 --> 00:43:41,200 और किसी भी तरह से आप पता लगा कि कैसे एक एटीएम कार्ड की नकल करने के लिए है कि सभी मुश्किल नहीं है. 740 00:43:41,200 --> 00:43:42,730 यह सिर्फ एक चुंबकीय पट्टी है. 741 00:43:42,730 --> 00:43:45,180 और इसलिए आप करने की कोशिश करना चाहते हैं क्या है इस खेल को खेलने 742 00:43:45,180 --> 00:43:49,060 जिससे आप 1 मशीन में 1 कार्ड डाला, अन्य मशीन में एक और कार्ड, 743 00:43:49,060 --> 00:43:51,980 और आप अनिवार्य रूप से करने के लिए पैसे वापस लेने का एक साथ करने की कोशिश करना चाहते हैं, 744 00:43:51,980 --> 00:43:54,930 क्योंकि कल्पना है कि कहानी इस प्रकार के रूप में चला जाता है. 745 00:43:54,930 --> 00:43:57,350 बाईं तरफ मशीन आपके कार्ड और अपना पिन लेता है, 746 00:43:57,350 --> 00:44:00,240 और फिर आप कहते हैं, "मुझे 100 डॉलर दे." 747 00:44:00,240 --> 00:44:04,790 एटीएम के लिए 1 अपने डेटाबेस या समकक्ष पर एक का चयन करने के लिए क्रमादेशित है - 748 00:44:04,790 --> 00:44:10,780 डेटाबेस जो कुछ भी यह का उपयोग कर रहा है - देखने के लिए इस उपयोगकर्ता करता है उसके खाते में कम से कम 100 डॉलर है? 749 00:44:10,780 --> 00:44:16,180 यदि हां, तो बाहर $ 100 थूक और उनके संतुलन से $ 100 घटाना. 750 00:44:16,180 --> 00:44:20,470 लेकिन निश्चित रूप से अगर वहाँ कई मशीनों यहाँ है या निरीक्षण के कई तरीके 751 00:44:20,470 --> 00:44:23,560 कि दुनिया के राज्य, बैंक की तिजोरी देखने के लिए, आप कितना पैसा है, 752 00:44:23,560 --> 00:44:26,780 बाईं तरफ मशीन मौका है कि बस लगता है और सही 753 00:44:26,780 --> 00:44:30,140 दोनों समय में लगभग एक ही पल में यह सवाल पूछते हैं. 754 00:44:30,140 --> 00:44:34,160 >> और यह निश्चित रूप से हो सकता है. एटीएम कंप्यूटर रहे हैं इन दिनों. 755 00:44:34,160 --> 00:44:37,670 तो अगर बाईं तरफ मशीन कहते हैं, "हाँ, आप कम से कम 100 डॉलर है," 756 00:44:37,670 --> 00:44:42,150 इस बीच सही पर मशीन का कहना है, "हाँ, आप कम से कम 100 डॉलर है," 757 00:44:42,150 --> 00:44:47,420 फिर उन दोनों के लिए अपने कार्यक्रमों को समाप्त करने के लिए आगे बढ़ना है और वास्तव में बाहर $ 100 थूक 758 00:44:47,420 --> 00:44:50,820 और कहते हैं, "पहले आप $ 200 था." 759 00:44:50,820 --> 00:44:54,890 "मुझे चर का अद्यतन करने के लिए अब 100 डॉलर खाते में छोड़ दिया हो." 760 00:44:54,890 --> 00:44:58,780 लेकिन अगर उन दोनों को अपने खाते की शेष राशि की जाँच की है और पाया है कि यह 200 डॉलर है 761 00:44:58,780 --> 00:45:02,000 100, और उन दोनों को फिर गणित और कहना 200 762 00:45:02,000 --> 00:45:06,990 मशीनों संभावित थूक प्रत्येक मशीन में दो $ 100 के बिल, 763 00:45:06,990 --> 00:45:11,360 लेकिन वे केवल अपने राशि खाते की शेष राशि को नवीनीकृत किया है $ 100 होना. 764 00:45:11,360 --> 00:45:15,130 दूसरे शब्दों में, आप $ 200 कर लिया है, लेकिन क्योंकि वे दुनिया की स्थिति का निरीक्षण किया 765 00:45:15,130 --> 00:45:18,840 एक साथ और फिर एक है कि मूल्य के आधार पर निर्णय लिया, 766 00:45:18,840 --> 00:45:21,930 वे गणित अंततः सही ढंग से नहीं हो सकता है. 767 00:45:21,930 --> 00:45:25,520 तो एक बैंक की स्थिति में भी आप वास्तव में तालाबंदी के कुछ प्रकार है चाहता हूँ 768 00:45:25,520 --> 00:45:28,450 इतना है कि जैसे ही आप कुछ चर की स्थिति की जाँच की है 769 00:45:28,450 --> 00:45:31,220 अपने खाते की शेष राशि की तरह है कि वास्तव में महत्वपूर्ण है, 770 00:45:31,220 --> 00:45:36,070 चलो किसी और उस पर आधारित निर्णय कर जब तक आप अपनी बात कर किया जाता है नहीं, 771 00:45:36,070 --> 00:45:38,920 जहां इस मामले में आप बाईं तरफ एटीएम हैं. 772 00:45:38,920 --> 00:45:41,160 हर किसी के बाहर ताला. 773 00:45:41,160 --> 00:45:44,650 आप वास्तव में अलग अलग तरीकों की एक जोड़ी में इस प्रभाव को प्राप्त कर सकते हैं. 774 00:45:44,650 --> 00:45:48,660 >> MySQL में सरल तरीका एसक्यूएल की एक पंक्ति है कि हम तुम्हें दे दिया है 775 00:45:48,660 --> 00:45:52,030 समस्या सेट विनिर्देश है कि वास्तव में इस तरह दिखता है. 776 00:45:52,030 --> 00:45:57,420 जो कुछ भी यह कहा जाता है - एक आईडी, एक प्रतीक है, और एक शेयर, शेयरों की संख्या तालिका में सम्मिलित करें 777 00:45:57,420 --> 00:45:59,660 निम्न मानों में, उदाहरण के लिए. 778 00:45:59,660 --> 00:46:03,370 यदि आप कल्पना अभी तक पढ़ा नहीं है, यह एक उदाहरण आप कैसे जाने के बारे में शामिल है 779 00:46:03,370 --> 00:46:07,340 राष्ट्रपति Skroob के लिए यह पैसा शेयर के 10 शेयरों को खरीदने, 780 00:46:07,340 --> 00:46:10,340 जिसका उपयोगकर्ता आईडी नंबर 7 होता है? 781 00:46:10,340 --> 00:46:14,070 यह कहते हैं निम्नलिखित आईडी, प्रतीक, और शेयरों की संख्या तालिका में सम्मिलित 782 00:46:14,070 --> 00:46:18,200 7 की, 'DVN.V', और 10. 783 00:46:18,200 --> 00:46:21,510 लेकिन - लेकिन, लेकिन, लेकिन दूसरी पंक्ति महत्वपूर्ण एक है. 784 00:46:21,510 --> 00:46:26,310 नकली चाबी अद्यतन शेयरों पर = के शेयरों + मान (शेयर). 785 00:46:26,310 --> 00:46:28,350 पहली नज़र में तो पूरी तरह से गुप्त देख रहे हैं. 786 00:46:28,350 --> 00:46:31,990 लेकिन तथ्य यह है कि इस एसक्यूएल क्वेरी, भले ही यह 2 लाइन पर wraps, 787 00:46:31,990 --> 00:46:35,920 1 लंबा प्रश्न है, इसका मतलब यह परमाणु है 788 00:46:35,920 --> 00:46:41,000 इस अर्थ में है कि इस क्वेरी या तो सभी एक साथ या नहीं मार डाला जाएगा सब पर. 789 00:46:41,000 --> 00:46:45,100 और MySQL की परिभाषा से, है कि कैसे वे इस प्रश्न लागू. 790 00:46:45,100 --> 00:46:51,010 यह मैनुअल में सभी में एक बार या नहीं निष्पादित की गारंटी में परिभाषा के द्वारा है. 791 00:46:51,010 --> 00:46:54,020 इस के लिए प्रेरणा के रूप में इस प्रकार है. 792 00:46:54,020 --> 00:46:58,540 अगर इस मामले में आप स्टॉक के 10 शेयरों को खरीदने की कोशिश कर रहे हैं, 793 00:46:58,540 --> 00:47:02,260 यह दूध के रूप में एक ही कहानी की तरह है, यह एटीएम के रूप में एक ही कहानी की तरह है. 794 00:47:02,260 --> 00:47:04,970 >> यदि आप की गलती का उपयोग नहीं इस वाक्यविन्यास 795 00:47:04,970 --> 00:47:09,610 लेकिन बजाय डेटाबेस से चयन को देखने के लिए यह पैसा शेयर के कितने शेयर 796 00:47:09,610 --> 00:47:13,750 करता राष्ट्रपति Skroob है, और लगता है कि वह 10 शेयर हैं, 797 00:47:13,750 --> 00:47:19,330 और फिर कुछ दूसरे विभाजन के बाद तुम तो एक अद्यतन बयान करते हैं, 798 00:47:19,330 --> 00:47:24,810 जो एसक्यूएल में एक बयान दिया था कि कहते हैं, आगे जाना है और 10 से अधिक के शेयरों जोड़ने 799 00:47:24,810 --> 00:47:28,700 अपने वर्तमान 10 से इतना है कि आदर्श कुल 20 है, 800 00:47:28,700 --> 00:47:33,490 समस्या आज डेटाबेस सिस्टम में क्योंकि और क्योंकि आज के कंप्यूटर में 801 00:47:33,490 --> 00:47:35,990 आप कई प्रोसेसर, कई कोर - 802 00:47:35,990 --> 00:47:38,920 दूसरे शब्दों में, कंप्यूटर सचमुच एक बार में कई बातें कर रही हो - 803 00:47:38,920 --> 00:47:44,270 वहाँ कोई गारंटी नहीं है कि आपका चयन करें और इस मामले में अपने अद्यतन 804 00:47:44,270 --> 00:47:46,150 वापस होने के लिए वापस जा रहे हैं. 805 00:47:46,150 --> 00:47:49,140 तो एक बुरा परिदृश्य होगा SELECT करना 806 00:47:49,140 --> 00:47:51,670 देखने के लिए कितने इस पैसा शेयर के शेयरों Skroob है, 807 00:47:51,670 --> 00:47:54,710 और फिर बस मौका द्वारा एक और डेटाबेस क्वेरी मार डाला है - 808 00:47:54,710 --> 00:47:57,740 शायद अन्य ब्राउज़र विंडो में अपने Skroob 10 के शेयरों को खरीदने की कोशिश कर रहा 809 00:47:57,740 --> 00:48:00,700 कुल मिलाकर, एक अन्य विंडो में ज्यादा एटीएम की तरह - 810 00:48:00,700 --> 00:48:05,410 और लगता है कि एक अन्य प्रश्न चुनें और अपडेट के बीच में हो जाता है. 811 00:48:05,410 --> 00:48:10,210 यह मामला हो सकता है कि Skroob अब शेयरों की कुछ संख्या खो देता 812 00:48:10,210 --> 00:48:14,340 क्योंकि किसी अन्य प्रक्रिया उसकी दुनिया की स्थिति का निरीक्षण कर रहा है, 813 00:48:14,340 --> 00:48:17,800 या वह और अधिक के शेयरों की तुलना में वह होना चाहिए हो जाता है. 814 00:48:17,800 --> 00:48:23,250 हम क्या वास्तव में उन विशेष कहानी लाइनों होगा के ब्यौरे में नहीं जाना होगा, 815 00:48:23,250 --> 00:48:28,380 लेकिन मुद्दा यह है कि अगर आप एक चर मूल्य की जाँच करें और फिर एक निर्णय करना है, 816 00:48:28,380 --> 00:48:32,500 , अगर वहाँ किसी और उन 2 बयानों के बीच में कुछ करने का एक खतरा है 817 00:48:32,500 --> 00:48:36,220 के रूप में बहु प्रणालियों में multicore प्रणाली में, हो सकता है, 818 00:48:36,220 --> 00:48:41,220 करने के लिए एक ही बार में कई चीजों को करने की क्षमता के साथ कंप्यूटर, बुरी बातें होती हैं कर सकते हैं 819 00:48:41,220 --> 00:48:44,530 बैंक खातों की तरह गलत नामे लिखा गया जा रहा है, दो बार के रूप में ज्यादा दूध खरीद, 820 00:48:44,530 --> 00:48:46,730 इस मामले में या शेयरों के गलत नंबर. 821 00:48:46,730 --> 00:48:48,370 लेकिन इस बारे में सोचने के लिए एक आसान तरीका है. 822 00:48:48,370 --> 00:48:53,290 >> यह पता चला है कि SQL का भी समर्थन करता है, अगर आप अपनी टेबल को ठीक से विन्यस्त, 823 00:48:53,290 --> 00:48:56,920 लेनदेन बुलाया कुछ है, जो मैं तर्क होता है वास्तव में है भी समझने में अधिक आसान 824 00:48:56,920 --> 00:49:00,650 इस से है, लेकिन यह एक 1-लाइनर, नहीं है तो यह वास्तव में एक सा है और अधिक शामिल है. 825 00:49:00,650 --> 00:49:04,960 वहाँ का शाब्दिक एसक्यूएल में एक बयान START TRANSACTION बुलाया है. 826 00:49:04,960 --> 00:49:08,300 जैसे वहाँ का चयन करें, अद्यतन, INSERT, हटाने और JOIN है और दूसरों की एक गुच्छा, 827 00:49:08,300 --> 00:49:10,970 वहाँ स्टार्ट लेनदेन जैसे खोजशब्दों हैं. 828 00:49:10,970 --> 00:49:13,560 और तुम क्या तो 7 pset के संदर्भ में करते हैं - 829 00:49:13,560 --> 00:49:17,270 आप 7 pset के लिए यह नहीं करना है, यह स्पष्ट रूप से आवश्यक के रूप में नहीं disclaimed है, 830 00:49:17,270 --> 00:49:18,830 लेकिन अंतिम परियोजनाओं के लिए यह उपयोगी हो सकता है - 831 00:49:18,830 --> 00:49:22,820 अगर आप स्टार्ट लेनदेन के एक क्वेरी और फिर एक अन्य प्रश्न फोन 832 00:49:22,820 --> 00:49:25,620 और फिर एक और क्वेरी और फिर एक, एक और, और एक अन्य, 833 00:49:25,620 --> 00:49:31,860 उन प्रश्नों को वास्तव में नहीं हो सकता है जब तक आप कॉल SQL कथन COMMIT निष्पादित किया जाएगा, 834 00:49:31,860 --> 00:49:37,220 जो बिंदु पर, चाहे वह 2 बयान या 20 बयान है, वे सभी एक ही बार में मार डाला जाएगा, 835 00:49:37,220 --> 00:49:42,770 जिसका मतलब है कि कोई और नहीं एक गलती से भी ज्यादा दूध या बहुत ज्यादा पैसे डेबिट खरीद सकते हैं 836 00:49:42,770 --> 00:49:46,340 या भी कई शेयरों को खरीदने की वजह से अपने प्रश्नों के सभी पर अमल करेंगे 837 00:49:46,340 --> 00:49:48,410 वापस करने के लिए वापस वापस वापस करने के लिए. 838 00:49:48,410 --> 00:49:51,580 और यह सुपर महत्वपूर्ण है, खासकर जब आप कुछ इस तरह कर रहे हैं. 839 00:49:51,580 --> 00:49:54,900 यह एक मनमाना उदाहरण है कि का कहना है कि हम बैंक खाते को अपडेट 840 00:49:54,900 --> 00:50:00,200 द्वारा $ 1000 जहां खाता संख्या 2 है - एक संतुलन के लिए बराबर संतुलन स्थापित. 841 00:50:00,200 --> 00:50:04,260 और फिर दूसरा बयान अब है कि 1000 डॉलर जमा 842 00:50:04,260 --> 00:50:07,310 में किसी और बैंक खाता जिनकी संख्या 1 है. 843 00:50:07,310 --> 00:50:10,400 >> दूसरे शब्दों में, इस का एक आदर्श उदाहरण है जहां आप यह सुनिश्चित करना चाहते हैं 844 00:50:10,400 --> 00:50:13,590 कि इन बयानों के दोनों हो या बिल्कुल नहीं 845 00:50:13,590 --> 00:50:15,450 क्योंकि अन्यथा ग्राहक के लिए दबाव डाला जा रहा है 846 00:50:15,450 --> 00:50:17,670 और आप अपने पैसे लेने के लिए जा रहा है और कहीं यह जमा नहीं कर रहे हैं, 847 00:50:17,670 --> 00:50:20,470 या बैंक के लिए दबाव डाला जा रहा है जहाँ आप के लिए पैसे जमा करने के लिए जा रहे हैं 848 00:50:20,470 --> 00:50:23,140 लेकिन यह वास्तव में उपयोगकर्ता के खाते से घटाना नहीं. 849 00:50:23,140 --> 00:50:25,810 तो तुम उन दोनों को एक साथ निष्पादित करने के लिए करना चाहते हैं. 850 00:50:25,810 --> 00:50:29,140 इस तरह दुनिया के लेनदेन में प्रवेश करती है. 851 00:50:29,140 --> 00:50:31,360 तो यह है कि अपने मन की पीठ में रखने के लिए कुछ है, 852 00:50:31,360 --> 00:50:34,710 सिर्फ एक अंतिम परियोजना के उद्देश्यों के लिए इतना काफी नहीं है, 853 00:50:34,710 --> 00:50:36,700 लेकिन अगर आप अपने अंतिम परियोजना को कहीं ले जाना चाहता हूँ, 854 00:50:36,700 --> 00:50:39,040 अगर आप को चारों ओर कुछ कंपनी शुरू करना चाहते हैं, 855 00:50:39,040 --> 00:50:41,270 अगर आप परिसर में कुछ छात्र समूह की समस्या को हल करना चाहते हैं 856 00:50:41,270 --> 00:50:45,210 और वास्तव में एक जीवित, सक्रिय वेबसाइट है, इन सूक्ष्म कीड़े है कि पैदा कर सकते हैं की तरह कर रहे हैं 857 00:50:45,210 --> 00:50:49,480 अगर आप काफी के माध्यम से नहीं लगता है कि क्या हो सकता है अगर 2 लोगों 858 00:50:49,480 --> 00:50:54,190 सचमुच समय में एक ही पल में अपनी वेबसाइट का उपयोग करने की कोशिश कर रहा है, 859 00:50:54,190 --> 00:50:56,890 अपने प्रश्नों interwoven जिससे अन्यथा हो सकता है. 860 00:50:58,840 --> 00:51:01,420 >> कुछ जावास्क्रिप्ट, उसके चिढ़ाने के लिए तैयार है? 861 00:51:01,420 --> 00:51:04,320 यह हमारे सेमेस्टर के लिए अंतिम भाषा है. सही सभी. 862 00:51:04,320 --> 00:51:09,940 शुक्र है, जावास्क्रिप्ट बहुत, बहुत, बहुत 2 भाषाओं, सी और PHP के लिए समान दिखता है, 863 00:51:09,940 --> 00:51:11,140 हम इस प्रकार दूर किया है. 864 00:51:11,140 --> 00:51:14,340 वहाँ 7 pset में कोई जावास्क्रिप्ट है, लेकिन यह एक अविश्वसनीय रूप से उपयोगी उपकरण 865 00:51:14,340 --> 00:51:18,840 जब यह वेब आधारित अंतिम परियोजनाओं कर रहे हैं या वास्तव में सिर्फ वेब प्रोग्रामिंग आम तौर पर और अधिक करने के लिए आता है. 866 00:51:18,840 --> 00:51:20,950 तो डोम बुलाया कुछ की एक त्वरित अवलोकन. 867 00:51:20,950 --> 00:51:23,600 यहाँ एक सुपर सरल वेब पेज है कि वास्तव में सिर्फ नमस्ते, दुनिया का कहना है 868 00:51:23,600 --> 00:51:25,970 दोनों शीर्षक और शरीर में. 869 00:51:25,970 --> 00:51:29,270 के रूप में कुछ समय के लिए खरोज सुझाव दे गया है, 870 00:51:29,270 --> 00:51:31,380 वहाँ वास्तव में वेब पृष्ठों को एक पदानुक्रम है. 871 00:51:31,380 --> 00:51:34,220 मैं एक पेड़ के रूप में HTML के इस एक ही टुकड़ा आकर्षित कर सकता है, 872 00:51:34,220 --> 00:51:37,470 सी में हमारे डेटा संरचनाओं की चर्चा करने के लिए वापस सोच है, के रूप में इस प्रकार है. 873 00:51:37,470 --> 00:51:40,710 मैं कुछ विशेष रूट नोड दस्तावेज नोड बुलाया है, 874 00:51:40,710 --> 00:51:43,650 और हम बस एक पल में जावास्क्रिप्ट में इस के अनुरूप देखेंगे. 875 00:51:43,650 --> 00:51:48,330 पहली बार जा रहा है और इस मामले में उस के ही बच्चे बच्चे HTML टैग है. 876 00:51:48,330 --> 00:51:49,880 Doctype का कोई सीधा मानचित्रण है. 877 00:51:49,880 --> 00:51:53,170 यह एक विशेष बात है, तो हम इसे अनदेखा चाहिए जब यह इस डोम करने के लिए आता है, 878 00:51:53,170 --> 00:51:55,810 इस दस्तावेज़ ऑब्जेक्ट मॉडल पेड़. 879 00:51:55,810 --> 00:51:59,530 सूचना है कि HTML टैग, जो मैं मनमाने ढंग से एक आयत के रूप में दर्शाया गया है, 880 00:51:59,530 --> 00:52:02,890 : 2 बच्चों के सिर और शरीर है. 881 00:52:02,890 --> 00:52:04,840 >> इसी तरह उन आयतों के रूप में तैयार कर रहे हैं. 882 00:52:04,840 --> 00:52:08,970 यह सार्थक pictorially है कि सिर शरीर के बाईं ओर है. 883 00:52:08,970 --> 00:52:11,960 निहितार्थ यह है कि सिर पेड़ में पहले आता है. 884 00:52:11,960 --> 00:52:14,910 तो वहाँ वास्तव में एक पेड़ के लिए आदेश देने जब आप इसे इस तरह से आकर्षित है, 885 00:52:14,910 --> 00:52:17,460 भले ही आकार और whatnot मनमाने ढंग से कर रहे हैं. 886 00:52:17,460 --> 00:52:20,360 प्रमुख इस बीच एक एकल खिताब नामक बच्चा है, 887 00:52:20,360 --> 00:52:25,170 और शीर्षक वास्तव में अपने खुद के बच्चे है, जो "नमस्ते, दुनिया" है, 888 00:52:25,170 --> 00:52:32,210 जो मैं जानबूझ यहाँ एक अंडाकार यह आयत से थोड़ा अलग बनाने के रूप में आकर्षित किया. 889 00:52:32,210 --> 00:52:37,420 इन आयतों तत्व हैं, जबकि नमस्ते, दुनिया वास्तव में एक पाठ नोड है. 890 00:52:37,420 --> 00:52:39,850 तो यह पेड़ में एक नोड है, लेकिन यह नोड के एक अलग प्रकार है 891 00:52:39,850 --> 00:52:41,730 इसलिए मैं यह मनमाने ढंग से अलग तरीके से आकर्षित किया. 892 00:52:41,730 --> 00:52:45,000 इसी तरह शरीर के एक बच्चे को बुलाया हैलो, के रूप में अच्छी तरह से दुनिया है, 893 00:52:45,000 --> 00:52:47,910 इतना अलग नोड भले ही वे संयोग से एक ही पाठ कर रहे हैं, 894 00:52:47,910 --> 00:52:52,100 लेकिन मैं इसे तैयार किया है एक ही आकार का उपयोग. तो कौन परवाह करता है? 895 00:52:52,100 --> 00:52:56,820 खैर, क्या HTML के बारे में अच्छी बात यह है कि यह इस पदानुक्रमित प्रकृति है. 896 00:52:56,820 --> 00:53:01,010 और क्या जावास्क्रिप्ट और विशेष रूप से पुस्तकालयों है कि स्वतंत्र रूप से उपलब्ध हैं के बारे में अच्छा है 897 00:53:01,010 --> 00:53:07,120 और jQuery की तरह लोकप्रिय, आप तो आश्चर्यजनक आसान पेड़ संरचना नेविगेट कर सकते हैं. 898 00:53:07,120 --> 00:53:11,790 सामान हम संकेत और traversing के पेड़ के साथ सी में किया था की किसी भी और नोड्स पर recursing 899 00:53:11,790 --> 00:53:15,300 सही बच्चे को छोड़ दिया बच्चे, अचानक हम की तरह कर सकते हैं लेने के लिए दी 900 00:53:15,300 --> 00:53:19,450 आश्चर्यजनक शिक्षाप्रद किया जा रहा है अगर निराशा होती है एक सा नहीं के रूप में 901 00:53:19,450 --> 00:53:22,470 लेकिन एक कुशल प्रोग्रामिंग के बारे में जाने के लिए रास्ता लगभग नहीं है. 902 00:53:22,470 --> 00:53:24,470 और इसलिए इन जावास्क्रिप्ट की तरह उच्च स्तरीय भाषाओं के साथ 903 00:53:24,470 --> 00:53:28,340 हम इस पेड़ और अधिक intuitively नेविगेट करने में सक्षम हो जाएगा. 904 00:53:28,340 --> 00:53:30,430 >> और वास्तव में वाक्यविन्यास काफी परिचित होने जा रहा है. 905 00:53:30,430 --> 00:53:32,950 यदि आप JavaScript पहले कभी नहीं देखा है, यह एक बहुत अच्छा संदर्भ है 906 00:53:32,950 --> 00:53:35,910 मोज़िला लोगों से, जो लोग फ़ायरफ़ॉक्स बनाने के लिए, 907 00:53:35,910 --> 00:53:38,370 इतना कि अपनी सुविधानुसार ब्राउज़ मुक्त महसूस करते हैं. 908 00:53:38,370 --> 00:53:41,590 तुम क्या मिल जाएगा और इन स्लाइड क्या हम दूसरे दिन इस्तेमाल करने के लिए समान हैं - 909 00:53:41,590 --> 00:53:44,030 इसी तरह, मुख्य चला गया है. 910 00:53:44,030 --> 00:53:47,010 तो जब आप जावास्क्रिप्ट में एक प्रोग्राम लिखने, वहाँ कोई मुख्य कार्य है. 911 00:53:47,010 --> 00:53:48,690 तुम सिर्फ कोड लिखने शुरू करते हैं. 912 00:53:48,690 --> 00:53:51,660 लेकिन जावास्क्रिप्ट और सी और PHP के बीच एक महत्वपूर्ण अंतर 913 00:53:51,660 --> 00:53:55,890 यह है कि सी और PHP जबकि इस प्रकार अब तक सर्वर साइड क्रियान्वित किया गया है 914 00:53:55,890 --> 00:53:59,180 इस मामले में उपकरण द्वारा या अधिक आम तौर पर एक सर्वर से, 915 00:53:59,180 --> 00:54:04,270 डिजाइन द्वारा जावास्क्रिप्ट आमतौर पर एक ब्राउज़र द्वारा मार डाला है. 916 00:54:04,270 --> 00:54:08,440 दूसरे शब्दों में, आप जावास्क्रिप्ट कोड लिखने के लिए, के रूप में हम कर रहे हैं के बारे में हो सकता है, 917 00:54:08,440 --> 00:54:13,080 उपकरण में एक सर्वर है, लेकिन आप इसे अपने HTML के बीच अपने सीएसएस के बीच, शामिल हैं पर, 918 00:54:13,080 --> 00:54:16,100 अपने GIFs और PNGs और अपने JPEGs के बीच 919 00:54:16,100 --> 00:54:19,170 इतना है कि जब उपयोगकर्ता अपने वेब पेज का दौरा किया है, अगर आप JavaScript का उपयोग कर रहे हैं, 920 00:54:19,170 --> 00:54:21,770 कि जावास्क्रिप्ट कोड सर्वर से ब्राउज़र के लिए आता है, 921 00:54:21,770 --> 00:54:24,540 और यह ब्राउज़र है कि वास्तव में इसे कार्यान्वित है. 922 00:54:24,540 --> 00:54:27,960 तो यह भी बौद्धिक संपदा के लिए सार्थक प्रभाव पड़ता है. 923 00:54:27,960 --> 00:54:32,600 यह मूर्ख की तरह भी अपने आईपी की रक्षा के बारे में लगता है कि जब यह जावास्क्रिप्ट कोड के लिए आता है 924 00:54:32,600 --> 00:54:37,560 क्योंकि भाषा की प्रकृति से यह आमतौर पर ब्राउज़र पक्ष मार डाला जाता है. 925 00:54:37,560 --> 00:54:40,360 >> आप यह अंधेरा करना, जिसका मतलब है कि आप कर सकते हैं यह पागल और बदसूरत लग सकते हैं 926 00:54:40,360 --> 00:54:45,400 कोई रहितसफेद के साथ भयानक चर नाम, यह मुश्किल के लिए लोगों को अपने आईपी चोरी करने के लिए, 927 00:54:45,400 --> 00:54:48,120 लेकिन महत्वपूर्ण यह है कि यह ब्राउज़र पक्ष मार डाला है. 928 00:54:48,120 --> 00:54:51,790 हालांकि एक अलग जावास्क्रिप्ट इस्तेमाल किया जा सकता है सर्वर साइड के रूप में, 929 00:54:51,790 --> 00:54:54,480 सबसे आम उपयोग के मामले में सही अब ब्राउज़र पर अब भी है. 930 00:54:54,480 --> 00:54:59,800 और यहाँ है क्या यह जैसा दिखता है. यहाँ एक है कि अगर और अगर और सी की तरह सिर्फ बस PHP तरह, निर्माण. 931 00:54:59,800 --> 00:55:02,420 यहाँ एक बूलियन अभिव्यक्ति है जब आप "या" 2 बातें एक साथ. 932 00:55:02,420 --> 00:55:04,330 जब "और" आप एक साथ 2 बातें. 933 00:55:04,330 --> 00:55:08,300 यहाँ एक स्विच बयान है, जो PHP के लिए इसी तरह की है 934 00:55:08,300 --> 00:55:10,810 में है कि आप मूल्यों के विभिन्न प्रकार पर स्विच कर सकते हैं. 935 00:55:10,810 --> 00:55:15,180 Loops इसी तरह loops के लिए यहाँ है, जो हूबहू हम पहले क्या देखा है के लिए संरचित कर रहे हैं. 936 00:55:15,180 --> 00:55:18,110 जबकि loops, हम loops जबकि मिला है. 937 00:55:18,110 --> 00:55:20,290 चर, कभी तो थोड़ा अलग है. 938 00:55:20,290 --> 00:55:24,560 आप चर घोषणा करते हैं जैसे आप PHP और सी में, 939 00:55:24,560 --> 00:55:27,860 लेकिन इसी तरह जावास्क्रिप्ट दुर्बलता से लिखा गया है. 940 00:55:27,860 --> 00:55:32,730 आप int या नाव या स्ट्रिंग या आमतौर पर उस तरह कुछ भी निर्दिष्ट नहीं है. 941 00:55:32,730 --> 00:55:34,240 आप var निर्दिष्ट कर सकते हैं. 942 00:55:34,240 --> 00:55:38,040 आप के लिए var निर्दिष्ट नहीं है, लेकिन यह प्रभाव पड़ता है अगर तुम नहीं करते. 943 00:55:38,040 --> 00:55:42,000 आमतौर पर अगर आप var छोड़ देते हैं, तो आप गलती से स्थानीय के बजाय एक वैश्विक चर बना सकते हैं. 944 00:55:42,000 --> 00:55:46,420 तो मुझे प्रस्ताव है कि आप लगभग हमेशा सिर्फ var कहते हैं और फिर चर के नाम. 945 00:55:46,420 --> 00:55:48,740 यह एक प्रकार की नहीं है, यह सिर्फ चर के लिए var है. 946 00:55:48,740 --> 00:55:52,930 यह एक उदाहरण हो सकता है, होगा कि क्या यह 123 या "हैलो दुनिया," है. 947 00:55:52,930 --> 00:55:58,910 Arrays वर्तमान और वाक्य रचना PHP के लिए समान हैं. 948 00:55:58,910 --> 00:56:03,690 मैं var संख्या कहना है और फिर मैं फिर से वर्ग कोष्ठक का उपयोग करने के लिए एक चर घोषित 949 00:56:03,690 --> 00:56:08,870 जिसका प्रकार सरणी में इन विशेष संख्या अल्पविराम के द्वारा अलग किया गया है. 950 00:56:08,870 --> 00:56:11,740 और फिर अंत में, यह केवल एक है कि वास्तव में अलग लग रहा है. 951 00:56:11,740 --> 00:56:16,700 स्मरण करो कि हम PHP में एक छात्र के लिए एक साहचर्य सरणी लागू होगा 952 00:56:16,700 --> 00:56:20,220 Zamyla जैसे कि इस तरह लग सकता है, जहां चर छात्र कहा जाता है. 953 00:56:20,220 --> 00:56:23,370 वर्ग कोष्ठक का मतलब है यहाँ एक सरणी आता है. 954 00:56:23,370 --> 00:56:28,500 >> तथ्य यह है कि मैं संख्यात्मक सूचकांक लेकिन तार नहीं कर रहा हूँ - आईडी, घर, और नाम - 955 00:56:28,500 --> 00:56:30,990 मतलब यह है कि यह एक साहचर्य सरणी है, 956 00:56:30,990 --> 00:56:34,490 और साथ इन तीरों पर हस्ताक्षर और angled कोष्ठक के बराबर 957 00:56:34,490 --> 00:56:37,310 मतलब है कि कुंजी "आईडी" है, मान 1 है; 958 00:56:37,310 --> 00:56:39,310 कुंजी "घर" है, मूल्य Winthrop हाउस है; 959 00:56:39,310 --> 00:56:41,800 कुंजी "नाम" है, मूल्य Zamyla चान है. 960 00:56:41,800 --> 00:56:47,110 तो वहाँ इस साहचर्य सरणी है, जिनमें से प्रत्येक का अपना महत्व है के अंदर 3 कुंजी है. 961 00:56:47,110 --> 00:56:52,880 हम जानते हैं कि 7 pset, या आप में जल्द ही, जावास्क्रिप्ट एक ही विचार में देखा है, 962 00:56:52,880 --> 00:56:55,220 लेकिन यह इस तरह लग रहा है. 963 00:56:55,220 --> 00:57:00,070 तो var छात्र - कोई डॉलर के हस्ताक्षर और प्रकार का कोई जिक्र नहीं है, लेकिन अभी भी var - 964 00:57:00,070 --> 00:57:05,860 बराबर है और फिर घुंघराले ब्रेसिज़ खोलने है क्योंकि जावास्क्रिप्ट में जब आप महत्वपूर्ण मूल्य जोड़े हैं, 965 00:57:05,860 --> 00:57:08,900 आप वास्तव में कुछ एक वस्तु बुलाया का उपयोग करें. 966 00:57:08,900 --> 00:57:13,490 और आप में से जो APCs ले गए थे या जैसे जावा से वस्तुओं को याद हो सकता है 967 00:57:13,490 --> 00:57:15,140 या इसी तरह की भाषा. 968 00:57:15,140 --> 00:57:17,880 जावास्क्रिप्ट जावा, सब से पहले नहीं है. 969 00:57:17,880 --> 00:57:21,600 यह एक जानबूझकर डिजाइन निर्णय साल पहले किया गया था के लिए रवाना कुछ और है कि लोकप्रिय था दस्तक, 970 00:57:21,600 --> 00:57:25,640 उसका नाम है, भले ही यह कोई मौलिक ही जावा संबंध है. 971 00:57:25,640 --> 00:57:31,490 जावास्क्रिप्ट वस्तुओं है, और आप उन्हें धनु धनुकोष्ठक अंकन के रास्ते बनाने के द्वारा. 972 00:57:31,490 --> 00:57:36,710 जावास्क्रिप्ट में वस्तुओं को बहुत ज्यादा PHP में साहचर्य arrays के बराबर हैं 973 00:57:36,710 --> 00:57:40,030 जब यह उन के अंदर भंडारण डेटा के लिए आता है. 974 00:57:40,030 --> 00:57:44,100 >> लेकिन इससे भी ज्यादा शक्तिशाली जावास्क्रिप्ट में आप बहुत आसानी से कार्य संबद्ध कर सकते हैं 975 00:57:44,100 --> 00:57:48,040 एक वस्तु के अंदर, और हालांकि आप अन्य भाषाओं में यह कर सकते हैं, 976 00:57:48,040 --> 00:57:50,040 यह काफी एक आम प्रतिमान है, जैसा कि हम देखेंगे. 977 00:57:50,040 --> 00:57:54,380 संक्षेप में, यह वस्तु एक छात्र का प्रतिनिधित्व करता है, जो विशेष रूप से Zamyla है, 978 00:57:54,380 --> 00:58:00,380 और यह इसी तरह की धारणात्मक है, बस के वाक्य रचना में इस से अलग है. 979 00:58:00,380 --> 00:58:03,840 चलो वास्तव में एक फ़ाइल में जावास्क्रिप्ट का उपयोग. 980 00:58:03,840 --> 00:58:05,570 यह जाता है वहाँ एक स्क्रिप्ट टैग है. 981 00:58:05,570 --> 00:58:08,180 हम एक शैली टैग देखा है और हम अन्य HTML टैग देखा है. 982 00:58:08,180 --> 00:58:11,510 स्क्रिप्ट टैग वास्तव में कुछ जावास्क्रिप्ट कोड शामिल होंगे. 983 00:58:11,510 --> 00:58:15,500 मुझे उपकरण में जाने के लिए जहां हम कुछ स्रोत कोड पूर्व बनाया है. 984 00:58:15,500 --> 00:58:18,700 मैं इसे अभी तक तैनात नहीं है वेबसाइट पर है, लेकिन मैं कक्षा के बाद ऐसा करेंगे. 985 00:58:18,700 --> 00:58:21,770 चलो यह एक खुला, blink.html. 986 00:58:21,770 --> 00:58:27,560 1990 के दशक में वापस, वहाँ सचमुच एक HTML टैग झपकी टैग कहा था, 987 00:58:27,560 --> 00:58:30,340 और यह इंटरनेट पर एक सबसे शानदार overused टैग 988 00:58:30,340 --> 00:58:36,140 जिससे आप 1990 के दशक के कुछ शैली वेब पेज पर जाएँ और पाठ देखकर आप इस तरह चमकती शुरू चाहते हैं, 989 00:58:36,140 --> 00:58:39,810 marquis टैग का परिणाम है, जो पाठ इस तरह से जा रहा था. 990 00:58:39,810 --> 00:58:45,070 एक कुछ समय जहां दुनिया वास्तव में एक वेब मानक पर सहमत हो गया है, 991 00:58:45,070 --> 00:58:48,250 बोर्ड भर में सभी झपकी टैग कुछ साल पहले मार डाला. 992 00:58:48,250 --> 00:58:52,860 लेकिन हम शक्ति आपके पास के एक प्रदर्शन के रूप में जावास्क्रिप्ट के साथ इसे जीवित कर सकते हैं 993 00:58:52,860 --> 00:58:56,660 जब आप एक वेब पेज के अंदर एक प्रोग्राम लिख सकते हैं. 994 00:58:56,660 --> 00:59:00,240 पहले नए सामान पर छोड़ और पुराने पर ही ध्यान केंद्रित करने के लिए. 995 00:59:00,240 --> 00:59:01,780 >> यहाँ इस उदाहरण में पुराने सामान है. 996 00:59:01,780 --> 00:59:06,350 मैं एक HTML टैग, एक सिर टैग, और एक शीर्षक टैग है. 997 00:59:06,350 --> 00:59:11,210 तो मैं एक div के साथ एक शरीर टैग यहाँ है, याद है जो सिर्फ पृष्ठ का एक आयताकार विभाजन 998 00:59:11,210 --> 00:59:14,720 कि मैं मनमाने ढंग से करने के लिए "ग्रीटिंग" की एक अद्वितीय आईडी दिया है, 999 00:59:14,720 --> 00:59:18,320 अभी तो मैं विशिष्ट यह जिक्र करने का एक तरीका है, जो कुछ बहुत ही सरल पाठ है: 1000 00:59:18,320 --> 00:59:20,220 हैलो, दुनिया. 1001 00:59:20,220 --> 00:59:23,940 अब मुझे इस फाइल के शीर्ष पर स्क्रॉल करें और देखें कि क्या नया है. 1002 00:59:23,940 --> 00:59:27,710 पहली बात यह है कि नए शीर्ष स्क्रिप्ट टैग है, 1003 00:59:27,710 --> 00:59:31,280 और स्क्रिप्ट टैग नोटिस के अंदर मैं एक समारोह की घोषणा की है. 1004 00:59:31,280 --> 00:59:34,610 जावास्क्रिप्ट में एक समारोह, सुंदर PHP के लिए समान घोषित 1005 00:59:34,610 --> 00:59:37,930 आप सचमुच समारोह तो समारोह के नाम, कोष्ठक लिखते हैं, 1006 00:59:37,930 --> 00:59:40,400 और शायद कुछ तर्क है अगर यह किसी भी लेता है. 1007 00:59:40,400 --> 00:59:43,510 तब मैं अपने सामान्य रूप से धनु धनुकोष्ठक मिल गया है, और अब हम कुछ थोड़ा नया कोड है, 1008 00:59:43,510 --> 00:59:45,230 लेकिन हम देखते हैं यह क्या मतलब है. 1009 00:59:45,230 --> 00:59:48,670 Var div तो, यह सिर्फ मुझे एक चर बुलाया div देने का मतलब है. 1010 00:59:48,670 --> 00:59:50,530 मैं इसे foo बुलाया हो सकता है, लेकिन मैं यह div कहा जा चाहता था 1011 00:59:50,530 --> 00:59:52,620 के लिए कारण है कि एक दूसरे में स्पष्ट हो जाएगा. 1012 00:59:52,620 --> 00:59:57,480 तो यह पता चला है जावास्क्रिप्ट में - और यह अपने वेब पेज में जावास्क्रिप्ट एम्बेड कोड है - 1013 00:59:57,480 --> 01:00:01,760 दस्तावेज़ बुलाया प्रकार के एक विशेष वैश्विक चर है. 1014 01:00:01,760 --> 01:00:04,780 जावास्क्रिप्ट वास्तव में एक वस्तु उन्मुख भाषा है. 1015 01:00:04,780 --> 01:00:07,230 हम विस्तार में कि क्या मतलब है के रूप में 50 में नहीं जाना होगा, 1016 01:00:07,230 --> 01:00:11,180 लेकिन अब पता चला है कि एक वस्तु एक struct की तरह बहुत ज्यादा है. 1017 01:00:11,180 --> 01:00:14,740 जैसे हम जिस तरह से वापस देखा जब में जल्द से जल्द समस्या का सेट 1018 01:00:14,740 --> 01:00:17,150 जहां हम एक struct में जानकारी का एक बहुत डाल दिया, 1019 01:00:17,150 --> 01:00:21,330 इसी तरह एक विशेष struct दस्तावेज़ है कि ब्राउज़र के साथ आता है, 1020 01:00:21,330 --> 01:00:24,810 किसी भी वेब पेज के साथ आता है. यह कुछ मैंने बनाया नहीं है. 1021 01:00:24,810 --> 01:00:28,210 इस दस्तावेज़ की संरचना के अंदर, हालांकि, आप न केवल डेटा है 1022 01:00:28,210 --> 01:00:30,010 लेकिन आप भी कार्य किया है. 1023 01:00:30,010 --> 01:00:34,090 >> और किसी भी समय आप एक संरचना के अंदर एक वस्तु के अंदर एक समारोह है, 1024 01:00:34,090 --> 01:00:36,490 यह एक विधि कहा जाता है. लेकिन यह एक ही बात है. 1025 01:00:36,490 --> 01:00:40,110 एक विधि एक समारोह में कहा कि ऐसा करने के लिए कुछ और के अंदर होना होता है. 1026 01:00:40,110 --> 01:00:42,990 तो इसका मतलब है कि इस विशेष वैश्विक चर दस्तावेज़ बुलाया 1027 01:00:42,990 --> 01:00:47,690 एक समारोह getElementById कि सचमुच यह नहीं है कि कहा जाता है. 1028 01:00:47,690 --> 01:00:52,460 यह आप डोम, दस्तावेज़ ऑब्जेक्ट मॉडल पेड़ से एक तत्व मिल जाएगा, 1029 01:00:52,460 --> 01:00:55,520 जिसका आईडी इस मामले में ग्रीटिंग में है. 1030 01:00:55,520 --> 01:00:59,200 दूसरे शब्दों में, कि हर बार हम डेटा संरचनाओं पर खर्च यहाँ खेलने में आता है. 1031 01:00:59,200 --> 01:01:01,400 एक डोम की यह तस्वीर है कि हम एक पल पहले था, 1032 01:01:01,400 --> 01:01:06,100 भले ही पृष्ठ के एक छोटे से अलग है, अगर मैं इस तस्वीर में एक div था, 1033 01:01:06,100 --> 01:01:11,180 मेरे लिए क्या document.getElementById लौटेंगे प्रभावी रूप से एक सूचक होगा 1034 01:01:11,180 --> 01:01:15,440 पेड़, पेड़ में आयत के लिए एक संदर्भ में आयत. 1035 01:01:15,440 --> 01:01:18,410 तो है कि क्या यह वास्तव में उन कार्यों में से एक कॉल का मतलब है. 1036 01:01:18,410 --> 01:01:21,960 इस मामले में फिर से यह एक div है. यह एक शरीर या एक शीर्षक नहीं है. 1037 01:01:21,960 --> 01:01:26,480 तो चलो देखते हैं कि क्या मैं तो इस div के साथ अब है कि मैं इसे इस चर नामक div के अंदर है. 1038 01:01:26,480 --> 01:01:32,580 यह जावास्क्रिप्ट के साथ बाहर निकलता है आप अपने पृष्ठ के सीएसएस गतिशील tweak करने की क्षमता है. 1039 01:01:32,580 --> 01:01:39,060 अब तक, सीएसएस हम किया है, सीमित यद्यपि, के सभी शैली विशेषताओं में है, 1040 01:01:39,060 --> 01:01:41,730 या किसी और जहाँ हम सीएसएस डाल दिया है? 1041 01:01:42,730 --> 01:01:45,810 मैं खराब कर दिया है कि एक की तरह. फ़ाइल के शीर्ष पर शैली टैग में. 1042 01:01:45,810 --> 01:01:49,180 या तीसरे स्थान पर किया गया है? 1043 01:01:50,710 --> 01:01:54,590 >> एक बाहरी फ़ाइल, कुछ सीएसएस. 1044 01:01:54,590 --> 01:01:56,730 तो उन 3 स्थानों पर हम सीएसएस इस प्रकार दूर किया है, 1045 01:01:56,730 --> 01:01:59,310 लेकिन पकड़ है हम कड़ी मेहनत से यह सब कोडित है. 1046 01:01:59,310 --> 01:02:04,060 आप का फैसला किया है के रूप में आप 7 pset में कबूतर, हमने फैसला किया कि पहले व्याख्यान हमारे सीएसएस क्या होगा. 1047 01:02:04,060 --> 01:02:07,380 लेकिन अगर आप अपने सीएसएस बदलना चाहते हैं, तो आप वास्तव में है कि कर सकते हैं 1048 01:02:07,380 --> 01:02:09,370 एक बार आप एक वास्तविक प्रोग्रामिंग भाषा है. 1049 01:02:09,370 --> 01:02:13,910 सीएसएस, HTML नहीं प्रोग्रामिंग भाषाओं. जावास्क्रिप्ट है. 1050 01:02:13,910 --> 01:02:18,200 तो यह पता चला है कि जैसे ही आप पेड़ से उन आयतों 1051 01:02:18,200 --> 01:02:23,050 डोम कहा जाता है, यह अपने आप के अंदर कुछ डेटा है. 1052 01:02:23,050 --> 01:02:27,820 तो div है कि मैं सिर्फ पेड़ से पकड़ा है कि क्या हम इसे के अंदर एक संपत्ति को बुलाता हूँ 1053 01:02:27,820 --> 01:02:34,390 शैली कहा जाता है, और शैली संपत्ति ही बुलाया संपत्ति दृश्यता है. 1054 01:02:34,390 --> 01:02:37,330 मैं एक सीएसएस उपयोगकर्ता पुस्तिका देख ही यह पता होगा. 1055 01:02:37,330 --> 01:02:41,160 यह जाता है वहाँ दृश्यता सीएसएस संपत्ति है कि यह क्या कहता है. 1056 01:02:41,160 --> 01:02:44,530 यह कुछ दृश्य या नहीं, या नहीं दिखाई पड़ता. 1057 01:02:44,530 --> 01:02:46,810 और कैसे आपको लगता है कि यह है. 1058 01:02:46,810 --> 01:02:50,510 मैं प्रोग्राम पूछ रहा हूँ अगर इस div की दृश्यता छिपा हुआ है, 1059 01:02:50,510 --> 01:02:53,390 क्या मैं इसे बदलने के लिए है? दिखाई देता है. 1060 01:02:53,390 --> 01:02:58,840 और अगर इस पृष्ठ की दृश्यता छिपा नहीं है, तार्किक मैं यह छिपा नहीं है. 1061 01:02:58,840 --> 01:03:04,070 मैं पता नहीं क्यों यह दिखाई देता है और छिपा हुआ है और दिखाई नहीं है और अदृश्य है. 1062 01:03:04,070 --> 01:03:06,000 यह जिस तरह से साथ एक गरीब डिजाइन का फैसला किया गया था. 1063 01:03:06,000 --> 01:03:09,530 लेकिन वे वास्तव में कर रहे हैं: सीएसएस में विपरीत दिखाई और छिपा. 1064 01:03:09,530 --> 01:03:15,520 यह सब करता है यह मतलब है कि मेरी फाइल के सीएसएस बदलने पर और बंद है, पर और बंद 1065 01:03:15,520 --> 01:03:16,870 है कि विशेष रूप से div के लिए. 1066 01:03:16,870 --> 01:03:20,630 लेकिन फिर, यह एक झपकी समारोह बुलाया है. जब पलक समारोह में कहा जाता है? 1067 01:03:20,630 --> 01:03:24,080 यह पता चला है कि वहाँ एक और विशेष वैश्विक चर बुलाया खिड़की है, 1068 01:03:24,080 --> 01:03:28,220 दस्तावेज़ के लिए भावना में समान है, लेकिन जबकि दस्तावेज़ अपने वेब पेज के लिए संदर्भित करता है, 1069 01:03:28,220 --> 01:03:31,700 डोम वृक्ष की तरह, आप HTML सर्वर से भेजा, 1070 01:03:31,700 --> 01:03:35,250 खिड़की इसे चारों ओर क्रोम, पता बार, शीर्षक पट्टी करने के लिए संदर्भित करता है, 1071 01:03:35,250 --> 01:03:37,880 और अपने वेब पेज के आसपास है कि सामान की सभी. 1072 01:03:37,880 --> 01:03:42,800 >> और यह पता चला है कि खिड़की वस्तु की एक विशेष समारोह के अंदर setInterval कहा जाता है 1073 01:03:42,800 --> 01:03:44,360 कि यह क्या कहता है. 1074 01:03:44,360 --> 01:03:48,600 यह एक अंतराल सेट होगा - इस मामले में हर 500 मिसे - 1075 01:03:48,600 --> 01:03:52,270 और, एक अनुमान ले, यह क्या करने के लिए हर 500 मिसे जा रहा है? 1076 01:03:52,270 --> 01:03:55,240 यह है कि समारोह में पलक पर अमल हो रहा है. 1077 01:03:55,240 --> 01:03:58,560 और अच्छा यहाँ क्या है कि हम सी में यह किया जा सकता है भले ही हम कभी नहीं किया था. 1078 01:03:58,560 --> 01:04:01,580 सी समारोह संकेत कहा जाता है जहाँ आप कुछ कार्यों के आसपास पारित कर सकते हैं 1079 01:04:01,580 --> 01:04:03,140 तर्क के रूप में. 1080 01:04:03,140 --> 01:04:07,620 इसी तरह जावास्क्रिप्ट में आप एक अन्य समारोह में एक समारोह का नाम दे सकते हैं. 1081 01:04:07,620 --> 01:04:10,630 सूचना और मैं क्या कर रहा हूँ. मैं यह नहीं कर रहा हूँ. 1082 01:04:10,630 --> 01:04:14,380 यदि मैं झपकी के बाद कोष्ठकों डाल दिया, कि झपकी समारोह कॉल का मतलब होगा. 1083 01:04:14,380 --> 01:04:17,430 अगर मैं उन्हें छोड़ देते हैं, इसका मतलब है कि यहाँ झपकी समारोह है 1084 01:04:17,430 --> 01:04:21,330 इसलिए कि setInterval यह हर 500 मिसे कॉल कर सकते हैं. 1085 01:04:21,330 --> 01:04:28,200 तो अंत परिणाम नृशंस हालांकि यह है, कि अगर मैं लोकलहोस्ट में जाने और blink.html के लिए जाना है, 1086 01:04:28,200 --> 01:04:32,120 मैं अब यह हो रहा है फिर से और फिर है. 1087 01:04:32,120 --> 01:04:34,950 और अगर मैं वास्तव में तत्व का निरीक्षण, चलो देखते हैं अगर हम यह देख सकते हैं. 1088 01:04:34,950 --> 01:04:38,550 मुझे तत्व का निरीक्षण, मुझे नीचे बस एक छोटा सा, 1089 01:04:38,550 --> 01:04:44,320 मुझे यहाँ पर तत्वों का चयन करने के लिए, और क्रोम निरीक्षक डोम के अंदर नोटिस. 1090 01:04:44,320 --> 01:04:48,840 यह सचमुच आगे और पीछे हर 500 मिसे बदल रहा है. 1091 01:04:48,840 --> 01:04:55,660 यदि हम हमारे दोस्त नैट जाना, 1092 01:04:55,660 --> 01:05:00,020 अगर तुम कभी एक अंतराल के साथ कैसे काम कर रहा है, इसी तरह के विचार की सोच रहा था, 1093 01:05:00,020 --> 01:05:04,810 लेकिन नैट वास्तव में इस विशेष मामले में रंग का बहुत प्रभावी उपयोग कर रहा है. 1094 01:05:04,810 --> 01:05:07,350 अधिक तो क्या हम वास्तव में इस के साथ कर सकते हैं? 1095 01:05:07,350 --> 01:05:09,990 चलो एक और उदाहरण खोलने के लिए और कुछ करने की कोशिश 1096 01:05:09,990 --> 01:05:12,940 कि प्रोग्राम भी अधिक बातें झपकी बनाने से अधिक उपयोगी है. 1097 01:05:12,940 --> 01:05:17,990 मुझे आज हमारे रूपों निर्देशिका में जाना और form0 में जाने. 1098 01:05:17,990 --> 01:05:20,820 यह ugliest संभव रूप है कि मैं के साथ आ सकता था, 1099 01:05:20,820 --> 01:05:23,290 और मुझे सिर्फ तुम्हें दिखाने यह क्या एक ब्राउज़र में की तरह लग रहा है. 1100 01:05:23,290 --> 01:05:28,960 >> चलो मुझे लोकलहोस्ट / रूपों में जाना है, और इस form0 है. 1101 01:05:28,960 --> 01:05:33,400 यह एक सुपर बदसूरत HTML फार्म है कि ईमेल के लिए कुछ क्षेत्रों पासवर्ड के लिए है, 1102 01:05:33,400 --> 01:05:37,190 पासवर्ड, और फिर एक छोटा चेकबॉक्स कुछ नियम और शर्तों से सहमत. 1103 01:05:37,190 --> 01:05:41,350 पकड़ है अगर मैं इस प्रपत्र पर जाएँ और मैं आप अपने ईमेल पते नहीं देना चाहती है, 1104 01:05:41,350 --> 01:05:44,730 मैं करने के लिए नियम और शर्तों से शायद सहमत नहीं करना चाहता, मैं रजिस्टर पर क्लिक कर सकते हैं 1105 01:05:44,730 --> 01:05:46,920 और यह मुझे वैसे भी देता है के माध्यम से. 1106 01:05:46,920 --> 01:05:50,800 यह एक बेवकूफ PHP dump.php नामक एक फाइल करने के लिए प्रस्तुत करने के लिए होता है. 1107 01:05:50,800 --> 01:05:58,420 यह सब होता है नैदानिक ​​प्रयोजनों के लिए सिर्फ $ _GET की सामग्री मुद्रित. 1108 01:05:58,420 --> 01:06:01,580 यह था कि उपयोगकर्ता द्वारा प्रस्तुत किया गया था अभी. 1109 01:06:01,580 --> 01:06:05,010 लगता है लेकिन हम वास्तव में मान्य उपयोगकर्ता के फार्म जमा करना चाहते हैं. 1110 01:06:05,010 --> 01:06:06,530 मुझे 1 संस्करण में जाना. 1111 01:06:06,530 --> 01:06:11,420 यह form1.html है. यह aesthetically बस के रूप में बुरा लग रहा है, लेकिन नोटिस फैंसी यह कैसे होता है. 1112 01:06:11,420 --> 01:06:15,450 अगर मैं सहयोग के बिना रजिस्टर क्लिक करें, मैं पर चिल्लाया मिलता है. 1113 01:06:15,450 --> 01:06:17,320 "आप अपने ईमेल पते को प्रदान करनी चाहिए." 1114 01:06:17,320 --> 01:06:21,670 सही सभी. तो मुझे की कोशिश है कि. Malan@harvard.edu तो. मैं एक पासवर्ड की जरूरत नहीं है. 1115 01:06:21,670 --> 01:06:25,100 रजिस्टर. "आप एक पासवर्ड प्रदान करना चाहिए." सही सभी. 1116 01:06:25,100 --> 01:06:28,470 तो मैं क्रिमसन के एक पासवर्ड प्रदान करेगा. रजिस्टर. 1117 01:06:28,470 --> 01:06:32,300 "पासवर्ड मेल नहीं खाते" मैं अब यहाँ गहरा लाल में टाइप है. 1118 01:06:32,300 --> 01:06:35,710 मैं गलती से जाँच की. रजिस्टर. 1119 01:06:35,710 --> 01:06:39,860 "आप नियमों और शर्तों के लिए सहमत होना होगा." सही सभी. वहाँ सहमत हूँ. रजिस्टर. 1120 01:06:39,860 --> 01:06:43,700 और अब यह मुझे वहाँ पर नैदानिक ​​उत्पादन से पता चलता है. 1121 01:06:43,700 --> 01:06:45,630 >> तो क्या हुआ? 1122 01:06:45,630 --> 01:06:48,330 हम इस फार्म प्रस्तुतियाँ को मान्य करने की क्षमता है. 1123 01:06:48,330 --> 01:06:51,420 वास्तव में, यदि आप 7 pset में गोता किया है, वहाँ एक माफी माँगता हूँ समारोह 1124 01:06:51,420 --> 01:06:54,620 कि यह बहुत आसान करने के लिए स्क्रीन पर एक संदेश के साथ उपयोगकर्ता पर चिल्लाना बनाता है. 1125 01:06:54,620 --> 01:06:57,580 मैं एक से थोड़ा अलग तंत्र, चेतावनी समारोह का उपयोग कर रहा हूँ, 1126 01:06:57,580 --> 01:07:03,690 जो कि एक समारोह पर मेहरबान है, क्योंकि यह बहुत बदसूरत उपयोगकर्ता संदेश बनाता है नहीं है. 1127 01:07:03,690 --> 01:07:05,710 लेकिन मैं यहाँ क्या कर रहा हूँ. 1128 01:07:05,710 --> 01:07:09,620 यह form1.html है, और लगता है कि मैं कुछ बहुत परिचित वाक्यविन्यास है: 1129 01:07:09,620 --> 01:07:12,920 शरीर टैग, फार्म टैग, कार्रवाई विशेषता, विधि विशेषता. 1130 01:07:12,920 --> 01:07:17,050 नोटिस लेकिन मैं अपने फार्म की सुविधा के लिए एक अद्वितीय ID दिया है. 1131 01:07:17,050 --> 01:07:19,190 तो मैं एक ईमेल फ़ील्ड प्रकार जिसका पाठ है मिल गया है, 1132 01:07:19,190 --> 01:07:23,780 एक पासवर्ड क्षेत्र प्रकार जिसका पासवर्ड, पुष्टि फ़ील्ड प्रकार जिसका पासवर्ड है, 1133 01:07:23,780 --> 01:07:28,070 और फिर एक चेकबॉक्स जिसका नाम यहाँ पर समझौता है, प्रकार चेकबॉक्स है. 1134 01:07:28,070 --> 01:07:30,380 और फिर मैं एक बटन सबमिट मिल गया है. 1135 01:07:30,380 --> 01:07:33,050 लेकिन शीर्ष पर नोटिस क्या मैं. 1136 01:07:33,050 --> 01:07:35,810 सबसे पहले, वहाँ स्क्रिप्ट टैग का एक और उपयोग है. 1137 01:07:35,810 --> 01:07:40,520 यदि आप किसी अन्य फ़ाइल में सीएसएस के साथ की तरह कुछ जावास्क्रिप्ट कोड है, तो आप इसे शामिल कर सकते हैं. 1138 01:07:40,520 --> 01:07:44,530 और आप स्क्रिप्ट स्रोत के साथ करते हैं कि, और फिर मैं जाहिरा तौर पर जोड़ने हूँ नोटिस 1139 01:07:44,530 --> 01:07:50,349 एक बहुत लंबा रास्ता googleapis.com लेकिन जिसका फ़ाइल नाम jquery.min में समाप्त होता है 1140 01:07:50,349 --> 01:07:52,420 न्यूनतम के लिए जे एस. 1141 01:07:52,420 --> 01:07:55,969 jQuery जावास्क्रिप्ट के लिए एक सुपर लोकप्रिय पुस्तकालय है कि सिर्फ जावास्क्रिप्ट बनाता है 1142 01:07:55,969 --> 01:07:58,230 सभी को और अधिक उपयोग करने के लिए उपयोगकर्ता के अनुकूल है. 1143 01:07:58,230 --> 01:08:00,610 यह प्रभावी रूप से एक वास्तविक मानक बन गया है. 1144 01:08:00,610 --> 01:08:04,090 तो भले ही आप क्या कर रहे हैं के बारे में देखने के शुद्ध जावास्क्रिप्ट प्रति से नहीं है, 1145 01:08:04,090 --> 01:08:09,340 यह CS50 पुस्तकालय की तरह बहुत जावास्क्रिप्ट के शीर्ष पर एक पुस्तकालय एक परत है 1146 01:08:09,340 --> 01:08:13,670 कम स्तर सी कोड के शीर्ष पर, वास्तविकता यह है कि इंटरनेट पर लगभग हर कोई इसे का उपयोग करता है. 1147 01:08:13,670 --> 01:08:18,030 तो इन प्रशिक्षण पहिये नहीं कर रहे हैं. यह बस इन दिनों अभ्यास. 1148 01:08:18,030 --> 01:08:22,830 अब नीचे नोटिस कि मेरी खुद की स्क्रिप्ट टैग है, और नोटिस मैं यहाँ क्या किया है. 1149 01:08:22,830 --> 01:08:27,450 यह पता चला है कि jQuery के एक छोटे से कल्पना कुछ भी करता है. 1150 01:08:27,450 --> 01:08:29,660 जावास्क्रिप्ट डॉलर के संकेत है, लेकिन वे व्यर्थ कर रहे हैं. 1151 01:08:29,660 --> 01:08:32,870 >> वे पत्र ए या बी या सी की तरह हैं 1152 01:08:32,870 --> 01:08:36,670 jQuery बस तथ्य यह है या रखी दावे की सम्मेलन तरह अपनाया 1153 01:08:36,670 --> 01:08:40,280 कि उनके विशेष प्रतीक होगा. 1154 01:08:40,280 --> 01:08:44,950 इसलिए जैसे ही आप इस वैश्विक जावास्क्रिप्ट फ़ाइल लोड स्क्रिप्ट टैग के साथ यहाँ, 1155 01:08:44,950 --> 01:08:49,080 तुम कि $ कहा जाता है एक विशेष वैश्विक चर का उपयोग कर सकते है. 1156 01:08:49,080 --> 01:08:53,009 यह अधिक ठीक jQuery कहा जाता है, लेकिन है कि लगभग रूप में डॉलर के रूप में सेक्सी नहीं लगती है. 1157 01:08:53,009 --> 01:08:56,250 लेकिन कोई विशेष अर्थ नहीं है. PHP में यह विशेष अर्थ था. 1158 01:08:56,250 --> 01:08:58,440 आप इसे एक चर के सामने किया था. 1159 01:08:58,440 --> 01:09:01,670 यह सिर्फ एक सेक्सी बात यह है कि वे पर ले लिया है. 1160 01:09:01,670 --> 01:09:03,389 यहाँ पर क्या हो रहा है? 1161 01:09:03,389 --> 01:09:08,830 मैं jQuery समारोह के लिए अपने वैश्विक चर दस्तावेज़ गुजर रहा हूँ 1162 01:09:08,830 --> 01:09:10,860 और फिर मैं बुला रहा हूँ. तैयार है. 1163 01:09:10,860 --> 01:09:15,480 क्या jQuery अनिवार्य है यह आप कुछ वेनिला जावास्क्रिप्ट चीजें लेने के लिए अनुमति देता है 1164 01:09:15,480 --> 01:09:17,889 दस्तावेज़ वस्तु की तरह, खिड़की वस्तु, 1165 01:09:17,889 --> 01:09:20,790 और यदि आप इसे jQuery समारोह में पारित करने के लिए - 1166 01:09:20,790 --> 01:09:24,429 और फिर स्पष्ट हो, यह एक jQuery समारोह बुलाया है - 1167 01:09:24,429 --> 01:09:28,240 यह क्या करता है यह आप के लिए दस्तावेज़ के एक विशेष संस्करण देता है 1168 01:09:28,240 --> 01:09:30,700 कि अधिक कार्यक्षमता के साथ जुड़े है. 1169 01:09:30,700 --> 01:09:34,760 तो कच्चे जावास्क्रिप्ट में कोई तैयार समारोह है, 1170 01:09:34,760 --> 01:09:37,810 लेकिन अगर आप jQuery समारोह के लिए दस्तावेज़ 1 गुजरती हैं, 1171 01:09:37,810 --> 01:09:40,960 यह आप के लिए दस्तावेज़ ऑब्जेक्ट का एक विशेष संस्करण रिटर्न 1172 01:09:40,960 --> 01:09:43,030 अधिक फैंसी सुविधाओं है. 1173 01:09:43,030 --> 01:09:48,230 और यही कारण है कि लोगों को यह पसंद है. यह सिर्फ बातें करने के लिए आसान बनाता है, के रूप में हम को देखने के बारे में कर रहे हैं. 1174 01:09:48,230 --> 01:09:49,820 तो कोड की इस पंक्ति का क्या मतलब है? 1175 01:09:49,820 --> 01:09:52,690 कोड की इस पंक्ति यहाँ मतलब है जब दस्तावेज़ तैयार है - 1176 01:09:52,690 --> 01:09:56,830 दूसरे शब्दों में, एक बार ब्राउज़र इस फ़ाइल को ऊपर से नीचे पढ़ने किया जाता है - 1177 01:09:56,830 --> 01:09:59,200 आगे जाना है और निम्न कार्य निष्पादित. 1178 01:09:59,200 --> 01:10:03,540 क्या वास्तव में जावास्क्रिप्ट में दिलचस्प है और PHP के रूप में अच्छी तरह से है - 1179 01:10:03,540 --> 01:10:05,450 गुमनाम कार्यों है. 1180 01:10:05,450 --> 01:10:10,560 जावास्क्रिप्ट में कार्य करता है कि कोई नाम नहीं है, लेकिन वे एक शरीर है की घोषणा कर सकते हैं. 1181 01:10:10,560 --> 01:10:12,570 सूचना है कि यहां क्या हो रहा है. 1182 01:10:12,570 --> 01:10:16,220 >> यह एक समारोह तैयार कहा जाता है, और यह सिर्फ निम्नलिखित करने का अर्थ 1183 01:10:16,220 --> 01:10:20,220 जब पूरे वेब पेज तैयार है, जब यह सब सर्वर से किया गया है में पढ़ा है. 1184 01:10:20,220 --> 01:10:23,090 आप क्या करना चाहते हैं? मैं कोड का एक हिस्सा निष्पादित करने के लिए करना चाहते हैं. 1185 01:10:23,090 --> 01:10:27,120 सूचना है कि हम इस कोड सही दूर निष्पादित नहीं करना चाहती. 1186 01:10:27,120 --> 01:10:34,350 अगर मैं इस छोड़े गए हैं, इसका मतलब यह तुरंत कोड की इन पंक्तियों को क्रियान्वित करने के लिए शुरू होगा. 1187 01:10:34,350 --> 01:10:39,040 लेकिन तथ्य यह है कि मैं नहीं, नहीं, नहीं कह रहा हूँ, इस तरह एक गुमनाम समारोह में इस लपेटो 1188 01:10:39,040 --> 01:10:43,000 मतलब है कि यह अभी तक अमल नहीं करते हैं, यह अंततः फोन. 1189 01:10:43,000 --> 01:10:45,430 हम यह हमारे पिछले प्रपत्र उदाहरण में एक पल पहले देखा था. 1190 01:10:45,430 --> 01:10:49,990 समारोह क्या हम अंत में फोन किया था, 500 मिसे बाद? पलक. 1191 01:10:49,990 --> 01:10:51,480 इसलिए एक ही विचार है. 1192 01:10:51,480 --> 01:10:53,950 फिर, भले ही यह थोड़ा अजीब लग रहा है, सिर्फ विश्वास पर अब के लिए ले 1193 01:10:53,950 --> 01:10:57,060 कि एक गुमनाम समारोह की घोषणा करने के लिए कहा जाता है कि अंततः, 1194 01:10:57,060 --> 01:11:01,720 आप बस समारोह () लिखने { 1195 01:11:01,720 --> 01:11:05,380 तो क्या हम कोड को अंततः निष्पादित करने के लिए जा रहे हैं? निम्नलिखित. 1196 01:11:05,380 --> 01:11:10,460 यह भी एक छोटे से नया लग रहा है, लेकिन यह यहाँ मतलब jQuery समारोह है, 1197 01:11:10,460 --> 01:11:13,430 और अब यह एक शॉर्टकट है. 1198 01:11:13,430 --> 01:11:18,830 पाठ्यक्रम के स्क्रीन के नीचे HTML का यह टुकड़ा कुछ पेड़ प्रतिनिधित्व किया है. 1199 01:11:18,830 --> 01:11:21,730 यह ऐसा नहीं है. यह पृष्ठ इस हैलो, उदाहरण दुनिया की तुलना में और अधिक दिलचस्प है. 1200 01:11:21,730 --> 01:11:25,210 लेकिन वहाँ कुछ पेड़ कि इस HTML मेल खाती है. 1201 01:11:25,210 --> 01:11:28,910 यह गर्दन में दर्द हो सकता है करने के लिए पुनरावर्ती समारोह के कुछ प्रकार लागू होगा 1202 01:11:28,910 --> 01:11:34,380 रूट नोड में शुरू करने के लिए और फिर नोड आईडी जिसका पंजीकरण है. 1203 01:11:34,380 --> 01:11:38,340 तो क्या jQuery सुपर लिए आसान बनाता है हमें सचमुच यह. 1204 01:11:38,340 --> 01:11:43,000 आगे बढ़ो और मुझे पाने के लिए जो div या जो भी फार्म, जो HTML तत्व 1205 01:11:43,000 --> 01:11:45,820 पंजीकरण के एक आईडी है. 1206 01:11:45,820 --> 01:11:52,440 यह document.getElementById ('पंजीकरण) के लिए बराबर है. 1207 01:11:52,440 --> 01:11:54,170 >> JQuery की तरह लोगों को क्यों करते हैं? 1208 01:11:54,170 --> 01:12:00,110 क्योंकि यह कम करने के लिए लिखें. लेकिन यह है कि यह सब है. यह एक ही विचार है. 1209 01:12:00,110 --> 01:12:02,630 मुझे टैग आईडी जिसका पंजीकरण है. 1210 01:12:02,630 --> 01:12:06,300 और जब कि टैग प्रस्तुत की है, जो करने के लिए एक फार्म होना होता, 1211 01:12:06,300 --> 01:12:08,300 आगे जाना है और इस कोड को निष्पादित. 1212 01:12:08,300 --> 01:12:11,320 तो चलो एक कैसे हम फार्म का सत्यापन कर रहे हैं पर अब देखो. 1213 01:12:11,320 --> 01:12:15,950 वाक्यविन्यास वैसे पहली बार में गुप्त है, लेकिन क्या हो रहा है? 1214 01:12:15,950 --> 01:12:21,050 यदि कोड की इस पंक्ति सच है, मैं उपयोगकर्ता पर चिल्लाना अपने या अपने ईमेल पते प्रदान करने के लिए जा रहा हूँ. 1215 01:12:21,050 --> 01:12:22,970 तो क्या कोड की इस पंक्ति है? 1216 01:12:22,970 --> 01:12:25,560 $ JQuery का मतलब है. अब यह नोटिस. 1217 01:12:25,560 --> 01:12:27,920 यह सीएसएस की तरह की तरह है. 1218 01:12:27,920 --> 01:12:33,370 यदि आप सीएसएस में डुबकी लगाई है अभी तक, तो आपको पता चल जाएगा कि इस तत्व आईडी जिसका पंजीकरण है का मतलब है. 1219 01:12:33,370 --> 01:12:39,840 अंतरिक्ष का मतलब है कि एक बच्चे को या पंजीकरण के एक वंशज जिसका नाम इनपुट है. 1220 01:12:39,840 --> 01:12:42,970 और फिर वर्ग कोष्ठक में इस बात को एक छोटे से फिल्टर है. 1221 01:12:42,970 --> 01:12:47,010 और यहां तक ​​कि अगर इस गुप्त लग रहा है, यह सिर्फ मतलब है कि फार्म का आईडी जिसका पंजीकरण है, 1222 01:12:47,010 --> 01:12:51,230 कि जिसका नाम ईमेल के इनपुट तत्व के अंदर करने के लिए जाना है, 1223 01:12:51,230 --> 01:12:55,440 और फिर अपने मूल्य प्राप्त करने के लिए, जो कुछ भी अपने मूल्य के लिए होता है - 1224 01:12:55,440 --> 01:12:59,670 asdf कि सभी मैं टाइप या malan@harvard.edu है कि अगर है कि मैं क्या टाइप यदि. 1225 01:12:59,670 --> 01:13:05,250 तो अगर फार्म का ईमेल == क्षेत्र कुछ भी नहीं के मूल्य, उपयोगकर्ता पर चिल्लाना. 1226 01:13:05,250 --> 01:13:09,700 और अगर पासवर्ड क्षेत्र के मूल्य == कुछ भी नहीं है, उपयोगकर्ता पर चिल्लाना. 1227 01:13:09,700 --> 01:13:19,520 >> वरना अगर पासवर्ड क्षेत्र के मूल्य पुष्टि क्षेत्र के मूल्य नहीं के बराबर है, 1228 01:13:19,520 --> 01:13:22,850 जो अन्य फार्म तत्व था, उपयोगकर्ता पर चिल्लाना. 1229 01:13:22,850 --> 01:13:25,680 और फिर अंत में - और यह भी एक अपनी खुद की कुछ नई वाक्यविन्यास है, 1230 01:13:25,680 --> 01:13:29,270 लेकिन एक बार आप इसे देखा है, यह कम से कम एक छोटे से अधिक उचित है - 1231 01:13:29,270 --> 01:13:34,060 और अगर फार्म जिसका आईडी पंजीकरण है एक इनपुट तत्व जिसका नाम समझौते है 1232 01:13:34,060 --> 01:13:39,720 और यह जाँच की है, आगे बढ़ो और उपयोगकर्ता पर चिल्लाना. 1233 01:13:39,720 --> 01:13:42,520 तो मैं पूरी तरह से स्वीकार करते हैं यह पहली नज़र में पूरी तरह से भारी है. 1234 01:13:42,520 --> 01:13:46,530 यह नया वाक्यविन्यास की एक बहुत है. लेकिन jQuery के पैटर्न के इन प्रकार के इस प्रकार है. 1235 01:13:46,530 --> 01:13:49,880 और ईमानदारी से, मैं भी यह अस्तित्व कुछ मिनट पहले तक नहीं पता था. 1236 01:13:49,880 --> 01:13:53,640 मैं Googled, "आप अगर एक चेकबॉक्स jQuery में जाँच की है जांच कैसे करूं?" 1237 01:13:53,640 --> 01:13:55,680 और इस वाक्य रचना है, क्योंकि वहाँ यह करने के विभिन्न तरीके 1238 01:13:55,680 --> 01:13:58,010 वास्तविक कच्चे जावास्क्रिप्ट कोड के साथ. 1239 01:13:58,010 --> 01:14:01,030 के रूप में तो समस्या 7 सेट के पहले ही पेज पर जोर देती है, 1240 01:14:01,030 --> 01:14:04,500 7 pset बहुत ज्यादा अपने आप bootstrapping में एक व्यायाम है 1241 01:14:04,500 --> 01:14:08,650 हम, जहां प्रदान की है उम्मीद है, जो एक साथ करने के लिए pset से निपटने के लिए एक वैचारिक ढांचे. 1242 01:14:08,650 --> 01:14:12,280 >> लेकिन जैसा कि अक्सर वेब डिजाइन के साथ मामला है, यह आप पर निर्भर है वास्तव में चारों ओर से प्रहार करने के लिए, 1243 01:14:12,280 --> 01:14:16,680 वेब से कोड के टुकड़े और उदाहरण शामिल इतने लंबे समय के रूप में आप उन्हें अदालत में तलब करना 1244 01:14:16,680 --> 01:14:17,960 कि पहले पत्रक पर शर्तों के अनुसार, 1245 01:14:17,960 --> 01:14:21,460 और पता है कि HTML, सीएसएस, जावास्क्रिप्ट और भी एसक्यूएल सीखने 1246 01:14:21,460 --> 01:14:26,020 वास्तव में इस अभ्यास में घर के रूप में हम इन प्रशिक्षण के पहियों से दूर ले शुरू होने का मतलब. 1247 01:14:26,020 --> 01:14:29,150 एहसास है और भी वहाँ इतने अधिक बातें आप एक ब्राउज़र के साथ कर सकते हैं. 1248 01:14:29,150 --> 01:14:33,790 इन तत्वों में से अधिकांश के अंदर अन्य घटना संचालकों बुलाया बातें कर रहे हैं. 1249 01:14:33,790 --> 01:14:37,140 और फिर भी हम सिर्फ लोगों को देखा onsubmit और onready बुलाया, 1250 01:14:37,140 --> 01:14:40,310 आप onkeydown, onkeyup की तरह बातें कर सकते हैं, 1251 01:14:40,310 --> 01:14:43,410 पसंद है जब उपयोगकर्ता एक कुंजी को छू, कि और कुंजी के लिए सुन सकते हैं. 1252 01:14:43,410 --> 01:14:45,940 जीमेल कुंजीपटल शॉर्टकट है. 1253 01:14:45,940 --> 01:14:49,490 गूगल रचना के लिए कैसे करता है सी की तरह कीबोर्ड शॉर्टकट को लागू? 1254 01:14:49,490 --> 01:14:54,120 वे घटनाओं के लिए सुनो, के रूप में वे, onkeypress या onkeyup और onkeydown की तरह कर रहे हैं बुलाया. 1255 01:14:54,120 --> 01:14:56,360 यदि आप कभी भी कुछ मेनू विकल्प पर अपने माउस hovered 1256 01:14:56,360 --> 01:15:00,180 और अचानक देखा, सभी एक मेनू प्रकट होता है या ग्राफिक परिवर्तन रंग, 1257 01:15:00,180 --> 01:15:01,920 है कि वे कैसे कर रहे हैं? 1258 01:15:01,920 --> 01:15:06,940 Onready या onsubmit के लिए सुनने के बजाय, आप onmouseover या onmouseout के लिए सुनो. 1259 01:15:06,940 --> 01:15:10,920 >> तो संक्षेप में, ये बहुत ही सरल बुनियादी बातों के साथ कि हम आज की सतह खरोंच शुरू कर दिया है 1260 01:15:10,920 --> 01:15:13,940 और हम आगे बुधवार को गोता है, तेजी से हूँ, 1261 01:15:13,940 --> 01:15:17,530 चीजें हैं जो आप पहले से ही परिचित की तरह लागू करने की शक्ति है. 1262 01:15:17,530 --> 01:15:21,620 तो चलो वहाँ अंत, और हम बुधवार को जारी रखेंगे. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]