[00:00:02] [संगीत खेल] हन्ना: हाय, सब लोग। आप बाहर आने के लिए बहुत बहुत लोगों को धन्यवाद प्रश्नोत्तरी के लिए एक बहुत ही घृणित मौसम में सत्र की समीक्षा करें। तुम लोग, प्रश्नोत्तरी रूप में जानते हैं एक इस बुधवार है। तो हम जाने के लिए जा रहे हैं विषयों की एक गुच्छा के माध्यम से। Davin: अरे, मैं कह सकता हूँ असली जल्दी कुछ और? हन्ना: हाँ, डेविन की जा रही है असली जल्दी कुछ कहने के लिए। Davin: क्षमा करें। बस जल्दी असली, यदि आप प्रश्न हैं प्रश्नोत्तरी के बारे में है, तो आप ऑनलाइन जाने के लिए कर सकते हैं। प्रश्नोत्तरी के बारे में, 2014 प्रश्नोत्तरी एक के पास जाओ। इसके बारे में रसद मिल गया है जहां जाने के लिए, जब जाने के लिए। आप एक साथ दाखिला कर रहे हैं, हम कर रहे हैं 5:30 पर एक मेकअप प्रश्नोत्तरी के लिए जा रहा। या फिर आप मुझे एक मुद्दा भेजा, आप कुछ अन्य मुद्दा है। लेकिन 5:30 मेकअप है बुधवार को समय। लेकिन यदि आप प्रश्न हैं, सामान्य सवाल, ऑनलाइन सभी रसद है। तो सबसे पहले वहाँ की जाँच करें। [00:00:47] हन्ना: बहुत बढ़िया। तो यहाँ विषयों की बड़ी सूची है हम आज के माध्यम से जाने के लिए जा रहे हैं। मैं सी के सभी को कवर करने के लिए जा रहा हूँ कि प्रथम स्तंभ है जो सामान,। तो सी सामान है कि हम प्रश्नोत्तरी शून्य के बाद कवर किया। एक लिंक की गई सूची के साथ शुरू, जो संकेत भी शामिल है। [00:01:05] सब ठीक है, तो हम यह देखा अंतिम समीक्षा सत्र में, इसलिए मुझे लगता है के माध्यम से जाने के लिए जा रहा हूँ यह एक छोटा सा तेज है। तुम मुझे चाहते हैं तो बस अपना हाथ बढ़ा धीमी गति से नीचे या आगे कुछ पता। लेकिन हम क्योंकि सूचियों जुड़ा हुआ उपयोग हम सरणियों के साथ सी में शुरू कर दिया। और सारणियों महान हैं, लेकिन समस्या यह है कि वे एक निश्चित आकार है। लिंक सूचियों हमें बनाने के लिए अनुमति गतिशील रूप से डेटा संरचनाओं आकार। [00:01:28] और हम अपने बुनियादी कार्य किया है, सम्मिलित हटाने के लिए, और खोज। और हम में डालने के लिए कर सकते हैं सबसे खराब स्थिति लगातार समय हम सिर्फ यह बहुत शुरुआत में डाल दिया है। सबसे खराब हटाएँ और खोज ओह एन समय का बड़ा मामला। तो फिर, बस फ्लिप करने के लिए इन तस्वीरों के माध्यम से, मुझे लगता है हम इन आखिरी बार देखा था पता है, लेकिन हम हमारे लिंक की गई सूची का ट्रैक रखने के लिए चाहते हैं का ट्रैक रखने के द्वारा हमारे लिंक की गई सूची के सिर। हम जानते हैं कि क्योंकि हमारे नोड्स में से हर एक बस को इंगित करने के लिए जा रहा है हमारे लिंक की गई सूची में अगले नोड। [00:01:58] तो यह है कि हम ट्रैक रखने के लिए है। इन नहीं कर रहे हैं, भले ही स्मृति के निरंतर टुकड़े, हम बस से उन्हें मिल सकता है विभिन्न तीर निम्नलिखित। यहाँ हमारे संरचना है एक लिंक सूची नोड के लिए। हम यह आखिरी बार देखा था। हम अपने संरचना नोड है। और यह दो गुण है। नंबर एक, वास्तविक मूल्य हम संग्रहीत करना चाहते हैं। इस मामले में, यह एक पूर्णांक है। यह एक स्ट्रिंग हो सकता है, यह हो सकता है आप जो चाहते हैं एक चार, हो। और फिर, हम का ट्रैक रखने के लिए है हमारे लिंक की गई सूची में अगले नोड। तो यह है कि एक होने जा रहा है अगले नोड के लिए सूचक। अगर आप अभी कर रहे थे खोज मैंने पहले कहा, जैसे आप अपने नीचे तीर का पालन करने के लिए होगा। निवेशन, आप ट्रैक रखना होगा अपनी सूची के बाकी है, जहां की। और अगर आप सिर पुनर्निर्देशित करना चाहते हैं हमारे नए तत्व, इंगित करने के लिए जो इस मामले में, एक है और फिर एक बात करेंगे लिंक की गई सूची के शेष के लिए। तो फिर, मैं इस एक छोटे से पता है प्रश्नोत्तरी शून्य से एक दोहराने का एक सा है। इसलिए हम बहुत सावधान रहना होगा आदेश के बारे में जो हम हम नहीं करते तो इन pointings करना सूची के पीछे का ट्रैक खो देते हैं। साथ ठीक है, किसी भी सवाल सिर्फ अकेले सूचियों जुड़ा हुआ? बहुत बढ़िया, ठीक है, शांत। [00:03:06] तो अब, हम कुछ पर जाने के लिए जा रहे हैं बस थोड़ा और अधिक जटिल है, दोगुना सूचियों से जुड़े। रखने के अलावा में तो अगले नोड का ट्रैक, हम भी ट्रैक रखने के लिए चाहते हैं पिछले नोड की। हम कर रहे हैं और अगर यह करने के लिए हमें की अनुमति देता है हमारे लिंक की गई सूची में कुछ बिंदु पर, न केवल फारवर्ड जाना है, लेकिन भी पीछे की ओर पुनरावृति। हम में देखा था क्योंकि जैसा एक अकेले लिंक सूची, हम कुछ नोड पर थे, और अगर अचानक, हम फैसला किया है, वास्तव में, मैं करने के लिए जाना चाहता हूँ मुझे पहले नोड सही, आप सभी को जाना होगा वापस सिर करने के लिए रास्ता आप पाया और जब तक माध्यम से पुनरावृति आप के लिए देख रहे थे नोड। [00:03:35] तो यह बातें करता है हम कर रहे हैं के रूप में थोड़ा आसान पुनरावृति करने की कोशिश कर हमारे लिंक की गई सूची के माध्यम से। लेकिन यह एक का ट्रैक रखने की आवश्यकता है हमें अधिक सूचक है, तो एक और नोड सितारा। सब ठीक है, तो यहाँ मजा हिस्सा आता है। हम लागू करने का अभ्यास करने के लिए जा रहे हैं दोगुना लिंक सूचियों के लिए हटा दें। तो यह है कि कुछ तो है प्रश्नोत्तरी के लिए पूरी तरह से निष्पक्ष खेल। यह पिछले क्विज़ पर दिखाया। तो निश्चित रूप से तैयार रहना सी में एक छोटा सा कोड के लिए सभी के साथ मत भूलना कि इस मज़ा PHP और जावास्क्रिप्ट, हम अभी भी याद है सी है तो उस पर ब्रश करने के लिए अगर आप जंग महसूस कर रहे हैं। [00:04:12] सब ठीक है, हम यह कर सकते हैं अगर चलो देखते हैं। शांत, ठीक है। इसलिए हम कोशिश करने के लिए जा रहे हैं यहाँ में सही संपादित करने के लिए, योजना के रूप में और उम्मीद है कि यह हो जाता है। सब ठीक है, किसी ने मुझे देने के लिए चाहता है मैं शुरू कर देना चाहिए के रूप में कैसे एक सुझाव? मैं हूँ ही धारणा बनाने मुझे लगता है कि पहले से ही है एक संरचना को परिभाषित किया है, एक मैं पिछले पृष्ठ पर दिखाया अंतिम स्लाइड पर। और मैं जुड़े मेरी के सिर के संचय कर रहा हूँ कुछ सूचक में सूची का आह्वान किया। किसी ने मुझे शुरू करने के लिए करना चाहते हैं? [00:04:42] दर्शक: आप एक नया बना सकते हैं नोड सूची के माध्यम से कॉल करने के लिए? [00:04:45] हन्ना: बहुत बढ़िया है, इसलिए हम बनाने के लिए जा रहे हैं एक नए नोड सूची के माध्यम से क्रॉल करने के लिए। मुझे वह पसंद है। यह ठीक है अगर मैं सिर्फ सूचक फोन करता हूँ। और जहां यह मूल रूप से शुरू कर देना चाहिए? [00:04:57] दर्शक: शायद कम सूची के सिर। हन्ना: सुंदर। हम सिर, पर शुरू करना चाहते हैं जो मैं इस सूची में संग्रहित किया जा रहा है कहा। बहुत बढ़िया। अब तक सब ठीक है। और अब, हमारे लक्ष्य के लिए है सूची के माध्यम से पुनरावृति हम नोड के साथ लगता है जब तक हम हटाना चाहते हैं कि मूल्य एन। ठीक है? [00:05:13] तो अब हिस्सा है, जहां हम के माध्यम से पुनरावृति करना चाहते हैं। किसी को भी एक सुझाव कर सकते हैं रास्ते के माध्यम से पुनरावृति करने के लिए? [00:05:19] दर्शक: एक पाश। [00:05:20] हन्ना: एक पाश। मुझे यह अच्छा लगता है। विशेष रूप से, हम थोड़ी देर के पाश की कोशिश कर सकते हैं। ठीक है, और हम हम तक पहुंच गए हैं कि पता है हमारी सूची में जब क्या का अंत? दर्शक: सूचक शून्य है जब। हन्ना: सूचक शून्य है जब। सुंदर, मैं इसे प्यार करता हूँ। शांत, ठीक है। मेरे सीमांकन गले लगा है तो अगर खेद एक तरह से बंद स्क्रीन गिरने। हम इसे वापस लाया। शांत, ठीक है। आगे क्या है? [00:05:48] तो हम हटाना चाहते जानते हैं मान N है कि नोड। तो चलो मामले पाते हैं जहां जाने हम वास्तव में हमारे नोड पाते हैं। तो कैसे मुझे लगता है कि जांच होगी? मैं सिर्फ सूचक अगर, और उसके बाद अगर कह सकता हूँ मैं सूचक के बाहर मूल्य प्राप्त करना चाहते हैं, मैं तो बस, एन तीर है एन, पैरामीटर के बराबर होती है हम इस समारोह को दे दिया है कि, हम वास्तव में हटाना चाहते हैं कि नोड। यहाँ तक ऊपर कोई सवाल? ठीक है। ठीक है, तो अब हम एक त्वरित तस्वीर खींचना बोर्ड पर इस क्रम में कल्पना करने के लिए। [00:06:24] तो चलो हमारी प्यारी नोड वहाँ का कहना हैं। और यह एक मूल्य है, मैं सिर्फ चार कहूँगा। और यह अगले करने के लिए अंक हमारे लिंक की गई सूची में नोड। और यह पहले कुछ भी नहीं है। तो हम हमारे पिछले है कुछ भी नहीं करने की ओर इशारा करते। इस मामले में, हम पीछे की ओर इशारा करते हैं। ठीक है, बस की स्थापना मेरी यहाँ पर सूची जुड़े। और हम बताते हैं कि एक सूची है इस संरचना के साथ शुरू करने के लिए। मैं के लिए एक अधिक आकर्षित करेंगे पूर्णता की खातिर। ठीक है। मैं इस आगे बात करेंगे। और मुझे लगता है कि एक पीठ बात करेंगे। ओह, माफ करना। हाँ, पीछे की ओर इस मिला है। इसे फिर से करना। ठीक है, हम वहाँ जाते हैं। सब ठीक है, यह मिल गया। ठीक है, यहाँ हमारे तस्वीर है। [00:07:21] ठीक है, तो हम दो मामलों पर विचार करना चाहते हैं। पहला मामला अगर है नोड हम हटाना चाहते हैं हमारी सूची के बहुत शुरू में है। और फिर, दूसरे मामले में हम चाहते हैं कि यह कहीं और अगर विचार करने के लिए है। मैं पूरी तरह से समझते हैं कि गन्दा मेरे सारे मिटा साथ ड्राइंग, लेकिन उम्मीद है कि हम करने की कोशिश करेंगे कुछ कोड के साथ यह स्पष्ट करना। [00:07:40] ठीक है, तो मामले को कवर करते हैं जहां हम अपने नोड पाया और यह बहुत कम है हमारे लिंक की गई सूची में से शुरू करते हैं। किसी ने मुझे एक दे करने के लिए यहाँ के रूप में सुझाव क्या मैं वास्तव में हमारे नोड दूर करने के लिए क्या करना चाहिए? यह थोड़ा मुश्किल है। ठीक है? [00:07:56] दर्शक: आप ले जाना है यह पहले होगा कि नोड और यह करने के लिए बात कर इसके बाद होगा कि एक, और नोड ले कि यह करने के बाद हो सकता है और करना होगा यह इसके पहले नोड के लिए इशारा करते हैं। हन्ना: बिल्कुल। ठीक है, तो यह मामला है where-- हम दो मामलों है। हम मामले जहां है हम देख रहे हैं कि नोड सूची के सामने है। ठीक है, और फिर मामला है कि आप वर्णित सही, अन्यथा है? यह सूची में कहीं और है। तो आप ने कहा, हम करने की जरूरत है पिछले नोड को देखो, और पिछले नोड बनाने अगले नोड के लिए इशारा करते हैं। तो चलो हम कर रहे हैं, हम कहते हैं पाँच बाहर ले जाने की कोशिश कर रहा यहाँ पर मेरी बहुत गंदा ड्राइंग में। हम चाहते हैं कि बनाना चाहते चार अब छह अंक। छह से चार का अगला अंक। और चार से छह के पिछले अंक। यही हमारा लक्ष्य है यहाँ, सही है? यह मैं आपको क्या लगता है बस वहाँ पर कहा। [00:08:56] ठीक है, तो चलो कि पहला टुकड़ा मिलता है। है चलो पिछले सूचक पिछले। तो अगले चार की क्या बात करनी चाहिए? वास्तव में, इस मामले में, छह में। इसलिए हम अगले, सूचक कहना चाहिए। ठीक है? ठीक है। तो चलो इस बदसूरत तस्वीर से छुटकारा पाने के चलो और एक थोड़ा अच्छे एक आकर्षित करने के लिए प्रयास करें। हम यहाँ हमारी सूची सिर है। और कहा कि पहला नोड में करने के लिए अंक जैसा कि हमने कहा है, जो हमारे लिंक सूची, चार है। यहाँ हमारे दूसरे नोड, पांच है। और हमारे तीसरे नोड, छह। बस ठीक उसी आकर्षित करने के लिए कोशिश कर रहा चित्र, सिर्फ एक छोटे से अधिक सफाई। ठीक है, तो चार का अगला मूल रूप से पांच अंक। छह के लिए पोस्टल का अगला अंक। पांच से छह के पिछले अंक। और चार को पाँच के पिछले अंक। इतना अच्छा! शांत, ठीक है। [00:10:04] तो अब, हम क्या किया बस यहाँ, कोड की इस पंक्ति, जो पिछले सूचक का कहना है अगले है, तो इसका क्या मतलब है? हम देख रहे हैं, तो इसका मतलब है कि पांच, पिछले नोड के लिए जाना है, और अब यह अगले चाहिए पांच की अगली इंगित करने के लिए। तो अनिवार्य रूप से, क्या कर रहा है कि इस तीर को मिटाकर है और यह सही पाँच पर छोड़ कर रही है। यह स्पष्ट है? मुझे लगता है कि एक छोटा सा ढांचे के रूप में हो सकता है। मैं कुछ सिर सिर हिलाते हैं देखते हैं। अच्छी बात हे। शांत, ठीक है। अब, अगला कदम क्या है? [00:10:39] मैं अगले रीसेट कर दिया है। अब, जो अन्य तीर मैं बदलने की जरूरत है? यहीं यह एक। छह के पिछले। हम छह के पिछले नहीं करना चाहते अब और पांच को इंगित करने के लिए। हम इसे चार को इंगित करना चाहते हैं। उस तस्वीर मतलब? तो अब हम वास्तव में पाँच बाहर ले जा सकते हैं। तो चलो कि टुकड़ा मिलता है। मुझे लगता है मैं पहले क्या करना चाहिए छह के पिछले चार पुनर्स्थापित करने के लिए? वहाँ किसी भी विचार? [00:11:14] दर्शक: के बीच नोड नि: शुल्क यह शून्य करने के लिए निर्धारित करके उन्हें? हन्ना: कूल। निश्चित रूप से, हमारे अंतिम लक्ष्य है नोड को मुक्त करने के लिए किया जा रहा है। तो हम यहीं कर सकते हैं। नि: शुल्क सूचक। बिल्कुल। लेकिन यह भी है कि इससे पहले, चलो हमारे लक्ष्य सही just-- जाने यहां अगले सूचक स्थापित करने के लिए है बराबर पिछले पिछले सूचक करने के लिए। मैं इस कवर हो रही है। ठीक है, शांत take-- करते हैं। हर कोई इस लब्बोलुआब यह है कि देख सकते हैं? या यह सुपर छोटे है? [00:11:50] हम पर अमल करने से पहले तो यहां इस लाइन, हम चाहते हैं सुनिश्चित करें कि सूचक अगले रिक्त नहीं है। सूचक बगल में है क्योंकि अगर त्रुटि के अशक्त, किस तरह मैं करने के लिए प्रयास करते हैं तो मैं मिल जाएगा एक शून्य सूचक संदर्भ? दर्शक: Seg गलती है। हन्ना: एक SEG गलती है, सुंदर है। यदि ऐसा है तो ठीक है, नहीं है कि अशक्त, तो हम फिर से कायम कर सकते हैं। और हम चार को फिर से छह बिंदु है। इस बिंदु तक सवाल? हाँ? [00:12:17] दर्शक: अपनी पहली में बयान करते हैं, तो तुमने किया तीर है करने के लिए मतलब इसके बाद, या [अश्राव्य]? हन्ना: मैं सूचक तीर एन मतलब। तो बुनियादी तौर पर, मैं क्या करने की कोशिश कर रहा हूँ , मैं कर रहा हूँ कि वर्तमान नोड का कहना है पर iterating, वर्तमान नोड कि मुझे लगता है मैं सूचक में भंडारण कर रहा हूँ, पर देख रहा हूँ। और मैं सूचक का पता करने के लिए करना चाहते हैं इस मामले में n है जो मूल्य,। और मैं देखना चाहता है, मैं देख रहा हूँ नोड नोड के लिए मैं नष्ट करने के लिए लक्ष्य कर रहा हूँ? हम यहाँ है एन सूचक तो यही कारण है कि है। [00:12:47] दर्शक: तो तीर जा रहा n करने के लिए, आप मान सेट और एन नामक एक नोड में यह दुकान? [00:12:55] हन्ना: तो यह है कि मैं कर रहा हूँ अगर की तरह है इस लिंक की गई सूची के माध्यम से जा रहा और पांच की ओर इशारा करते। मैं अगर, कि मूल्य प्राप्त करना चाहते हैं मुझे लगता है कि संख्या, 5 प्राप्त करना चाहते हैं मैं सूचक तीर एन क्या करना है। बिंदास? हाँ। [00:13:07] दर्शक: चर का नाम n है? हन्ना: हाँ। हम एक वापस फ्लिप तो अगर स्लाइड, एन नाम है के अंदर मूल्य की हमारे लिंक की गई सूची में नोड। और मैं इसे एक छोटे से प्राप्त कर सकते हैं थोड़ा भ्रमित भी हम क्योंकि बात बुला रहे हैं हम n हटाना चाहते हैं। तो यह है कि वह कहाँ है एक लाइन से आता है। हाँ? [00:13:27] दर्शक: तुम्हारे पास क्या है [अश्राव्य] वे कैसे काम करते हैं? एक सूचक [अश्राव्य]? [00:13:35] हन्ना: यकीन है। आप about-- जो लाइन में बात कर रहे हैं? दर्शक: अंतिम पंक्ति [अश्राव्य]। [00:13:44] हन्ना: यकीन है, ठीक है। तो चलो चित्र में हम देखते हैं आदेश यह समझाने की कोशिश करने के लिए। के लिए मैं माफी चाहता हूँ, कैमरा, सवाल था हम सूचक समझा सकता है अगले सूचक पिछले तीर। ठीक है, तो चलो हम पांच में कर रहे हैं, हम कहते हैं और हमारे लक्ष्य के पाँच नष्ट करने के लिए है। तो, अगली सूचक इनमें से कौन सा तीन नोड्स कि हमें देता है? यह ठीक है, छठे नोड के लिए हमें लाता है? [00:14:10] ठीक है, तो अब हम पूछ रहे हैं छह के पिछले लिए। ठीक है? और हम इस को रीसेट कर रहे हैं चार के बराबर हो सकता है, जो पांच की पिछली हो हुआ। मैं यह सुपर है, पता है कड़ी मेहनत का ट्रैक रखने के लिए। मैं वास्तव में आप तस्वीरें खींचना की सिफारिश आप इस तरह से एक सवाल मिलता है। हाँ? [00:14:30] दर्शक: कारण यह है कि हम एक [अश्राव्य] नहीं है? [00:14:37] हन्ना: बिल्कुल। सवाल था तो, क्यों करते हैं हम यहाँ की जांच की जरूरत नहीं है? क्यों हम चाहते हैं कि जांच की जरूरत नहीं है पिछले सूचक अशक्त के बराबर नहीं है? हम है और क्योंकि यह है पहले से ही बाहर अलग किया मामला अगर सूचक बहुत शुरुआत में। बहुत अच्छा सवाल है। इस पर कुछ और? शांत, ठीक है। तो चलो इसे खत्म कर देना। हम लगभग वहाँ रहे हैं। [00:14:59] क्या इसलिए यदि यह सिर पर है? क्या बजाय अगर पांच को नष्ट करने की कोशिश कर, हम वास्तव में चार को नष्ट करना चाहते थे? मुझे क्या करना होगा? खैर, मैं क्या करने के लिए अपने सिर को रीसेट करना चाहते हैं? यह चिल्लाओ बाहर? दर्शक: यह एक के बाद एक। हन्ना: सुंदर। ठीक है, तो हम ओर इशारा करते हुए जा करने के लिए सूची चाहते हैं जो कुछ भी करने के लिए हमारे सूचक अगले नोड है। अच्छा। और बस पूर्णता के लिए खातिर, हम करेंगे हमारी सूची के रूप में लंबे समय है कि जाँच करना चाहते हैं के रूप में लंबे समय से हमारी सूची में नहीं है, के रूप में अशक्त नहीं है खाली है, तो हम सेट करना चाहते हैं अशक्त करने के लिए हमारे पिछले बराबर। प्रश्न अब तक? एक कदम दूर from--? [00:15:53] दर्शक: यह हो सकता है अगर सूची रिक्त करने के बराबर नहीं है? [00:15:55] हन्ना: हाँ, आप पूरी तरह से सही हो। मुझे खेद है। है सूची अशक्त के बराबर नहीं है। बहुत बढ़िया। सभी स्क्रीन पर लाने की कोशिश कर रहा। यह एक तरह से बंद हो रही है। क्षमा करें, दोस्तों। और कम से कम पिछले नहीं बल्कि, सभी हम वापसी करना है। ठीक है। यह एक बहुत crammed था सच में जल्दी में। इस पर देखने के लिए एक दूसरा ले लो। अगर आप किसी भी प्रश्न हैं मुझे बताओ। हाँ? [00:16:20] दर्शक: सूची में है सिर, कोई बात नहीं, प्रतीक्षा then--। [00:16:26] हन्ना: ठीक है, अच्छा है। सूची सिर पर है तो यह है, हम हम डाला जो कुछ भी करने के लिए इसे हटा दें। हाँ? [00:16:31] दर्शक: आप व्याख्या कर सकते हैं फिर से बयान यदि पहले? N करने के लिए सूचक n करने के लिए बराबर है? हन्ना: यकीन है। इसलिए इस पूरे समारोह के हमारे लक्ष्य है मान N है कि नोड को हटाने के लिए। तो अगर हम कर रहे हैं, जैसा कि हम पाते हैं हमारी सूची के माध्यम से पुनरावृति, मूल्य एन के साथ नोड, कि एक हम हटाना चाहते हैं। इसलिए हटाने का सब होता है कि बड़ा अगर बयान के अंदर। वह समझ में आता है? बिंदास। हाँ? [00:16:59] दर्शक: हो सकता है कि आप अभी देख नहीं सकते यह है, लेकिन आप भी एक लाइन की जरूरत नहीं है सूची के माध्यम से स्क्रॉल करने के लिए? हन्ना: बहुत बढ़िया। चलो थोड़ा सा इस लाने करते हैं, और हम नीचे में है कि सही फेंक देंगे। हो सकता है कि बोर्ड होता एक से थोड़ा बेहतर विचार किया गया। तो मैं कैसे आगे सूचक ले जाएगा? [00:17:17] दर्शक: सूचक सूचक प्लस एक बराबर होती है। [00:17:20] हन्ना: सुंदर। तो यह है कि हमें की अनुमति देता पुनरावृति के माध्यम से जारी है। ठीक है। दर्शक: वहाँ एक और को नहीं होगा? हन्ना: एक बार? दर्शक: नहीं होगा अगर बड़ी पुरानी होने के बाद एक और को बयान [अश्राव्य]? हन्ना: कौन सा हिस्सा है? मुझे माफ कर दो। [00:17:38] दर्शक: चंक्रमण, वहाँ एक और को नहीं होना चाहिए? हन्ना: आप बिल्कुल एक किसी और हो सकता था। मैं एक वापसी का अधिकार है क्योंकि वहाँ, आप एक और की जरूरत नहीं है। लेकिन हाँ, अच्छा सवाल है। हां, ठीक है? दर्शक: हम सूचक के बारे में सोच सकते हैं उस सूची के माध्यम से आगे बढ़ रहा है मूल्य पर लेने के रूप में सूची में प्रत्येक नोड के? या हम के रूप में इसके बारे में सोचना चाहिए सूची के लिए बाहरी की तरह? [00:18:00] हन्ना: या तो एक ठीक है, मुझे लगता है। मैं यह सोच तरीका है मैं ठीक है, मैं सूचक हूँ, कहते हैं। और यह मुझे है। यह मेरे हाथ है। मैं अलग करने के लिए बात करने के लिए जा रहा हूँ मैं के माध्यम से पुनरावृति करना चाहते हैं कि चीजें। सबसे पहले, मैं बात करने के लिए जा रहा हूँ सूची के सिर पर। और कहा कि मैं कर रहा हूँ मुझसे कहता है चार को इंगित करने जा रही है। और इसलिए मुझे, सूची के लिए बाहरी किया जा रहा है मैं इन तत्वों में से प्रत्येक के लिए बात कर सकते हैं। इसलिए मैं सूचक के रूप में खुद के बारे में सोचना। दर्शक: तो आप हटाना जब उन तत्वों में से एक, आप इतनी बात करने के लिए, अपने आप को हटा दें। हन्ना: बिल्कुल। तो अगर आप बात हटाना आप की ओर इशारा कर रहे हैं। उदाहरण में तो यह है कि हम हम कहाँ रहे देखा पांच को नष्ट करने की कोशिश कर, मैं पाँच की ओर इशारा कर रहा हूँ, मैं हटाना चाहते हैं बात मैं की ओर इशारा कर रहा हूँ। बिल्कुल सही। हाँ? दर्शक: हम का ख्याल रखा है एन सूची में नहीं है, जहां मामला? हन्ना: N सूची में नहीं है? होने जा रहा है कि सभी आप कर रहे है के माध्यम से और पुनरावृति पुनरावृति के लिए जा रहा के माध्यम से, और फिर, आप जा रहे हैं जा रहा है शून्य सूचक को पाने के लिए, और फिर आप से किया जा जा रहे हैं। [00:18:48] दर्शक: तो हम क्या ज़रूरत है कुछ भी वापस जाने के लिए? हन्ना: हम कर सकते थे। जिस तरह से इस परिभाषित है कि अगर समारोह में, मैं सिर्फ यह है कि रिटर्न का कहना है की परवाह किए बिना शून्य। लेकिन अगर आप कुछ हो सकता था एक पूर्णांक लौटने की तरह, और इसे वापस कर दिया है यह विफल रहता है अगर एक नकारात्मक। ऐसा कुछ। प्रश्न हाँ with--? दर्शक: [अश्राव्य]? हन्ना: क्षमा करें? दर्शक: [अश्राव्य]? हन्ना: यकीन है। हम है तो एक बार उस actual-- है चलती का किया यह सब काम इन सभी तीरों के आसपास है, हमारे पूरे लक्ष्य नोड से छुटकारा पाने के लिए किया गया था कि हम देख रहे हैं। इस मामले में तो, मुक्त कराने के सूचक, मैं पाँच की ओर इशारा कर रहा हूँ, यह इस बीच नोड मिटाकर की तरह है। यही कारण है कि मुक्त सूचक हिस्सा है। कि मतलब? [00:19:29] दर्शक: तो भी सोचा आप नहीं [अश्राव्य] किया था? [00:19:31] हन्ना: तो हम शुरुआत में ग्रहण किया हम था कि कुछ सूची थी already-- वे एक साथ रखा था। तो इस का निर्माण करने के क्रम में सूची, वे [अश्राव्य] होगा। बिंदास। इस के साथ कुछ और? हाँ? [00:19:46] दर्शक: क्या सूची अगर अशक्त रेखा के समान नहीं है? [अश्राव्य]? हन्ना: ठीक है यहाँ? दर्शक: हाँ। हन्ना: ठीक है, सब मैं कर रहा हूँ मैं सिर्फ यह सुनिश्चित कर रहा हूँ है कि मैं भिन्नता सूची के लिए प्रयास करने से पहले, मैं पिछले उपयोग करने के लिए प्रयास करने से पहले, ऐसा नहीं है कि मैं सुनिश्चित करना चाहते हैं अशक्त तो मैं एक SEG गलती नहीं मिलता है। बिंदास। [00:20:08] ठीक है, मैं यह काफी था पता एक बहुत माध्यम से प्राप्त करने के लिए। तो इस स्लाइड होगा आप के लिए उपलब्ध कराया। तो आप और अधिक विस्तार में यह माध्यम से जाना जा सकता है। हाँ? [00:20:17] दर्शक: क्यों करता सूची [अश्राव्य]? हन्ना: यकीन है। तो सूची वास्तव में करने के लिए अंक यहीं इस तत्व, सूची में पहले तत्व। तो यह पिछले एक नहीं हो सकता। हाँ? [00:20:31] दर्शक: सूचक बिंदु करता है स्मृति में एक ही पते पर? यह उसी को इंगित करता है नोड के रूप में स्मृति में पता यह करने के लिए इशारा कर रहा है? [00:20:40] हन्ना: हाँ, यह बताते हैं स्मृति में इस नोड के लिए। [00:20:43] दर्शक: ठीक है, तो जब आप [अश्राव्य]? [00:20:47] हन्ना: एक मायने में, हाँ। ठीक है। सब ठीक है, चलो इस के साथ साथ चलते हैं। और अगर आप अधिक प्रश्न हैं, अंत में चारों ओर लकड़ी, और हम इसे फिर से जाने के माध्यम से कर सकते हैं। शांत, ठीक है। अब, हम पर स्थानांतरित करने के लिए मिलता है टेबल, कोशिश करता है हैश करने के लिए, और पेड़, आप सुपर जो मिला पी-सेट, पांच वर्तनीकार में से परिचित। [00:21:04] तो हैश तालिका सिर्फ एक है अकेले लिंक सूचियों के साथ सरणी या दोगुना इसे दूर आ रही सूचियों से जुड़े। इसलिए हम किसी प्रकार का है साहचर्य सरणी की। और हम जानते हैं कि कैसे इन में से कौन सा बाल्टी में पाने के लिए सरणियों, हम एक हैश समारोह का उपयोग करें। तो इस मामले में कर सकते हैं, किसी को भी क्या हैश समारोह अनुमान सिर्फ कुछ के आधार पर किया जाएगा इनपुट और आउटपुट की? [00:21:31] दर्शक: वर्णमाला के पत्र संख्या। हन्ना: बिल्कुल। यह सिर्फ वर्णमाला क्रम में उन्हें डालता है। एक साथ शुरू होता है कि सब कुछ एक पहले बाल्टी में डाल दिया है। एक बी के साथ सब कुछ में डाल दिया है दूसरी बाल्टी, इतने पर है, और बहुत आगे है। बहुत बढ़िया, ठीक है। और एक हैश समारोह किसी भी है एक शब्द में लेता है कि समारोह और क्या आप बता देंगे इसमें अंतर्गत आता है बाल्टी। में जो प्रविष्टि तो हमारे सरणी में यह अंतर्गत आता है। [00:21:55] तो हर बार मैं अपने दे हैश, एक शब्द में कार्य यह मुझे एक ही बता देना चाहिए हर एक बार जगह है। हम हैश समारोह का उपयोग तो अगर पिछली स्लाइड से हम कहाँ से छंटाई कर रहे हैं वर्णमाला के पहले अक्षर, मैं दे हर बार मेरी हैश समारोह "एप्पल" यह हमेशा शून्य मुझे वापस दे देनी चाहिए। मैं एक सेब है तो मेरे हैश तालिका में डाल दिया है, मैं अपने हैश समारोह के लिए "एप्पल" दे, यह बाल्टी 0 में डाल दिया जाना है, कहना चाहिए। मैं एक के लिए देख रहा हूँ मेरे हैश तालिका में सेब और मुझे लगता है कि जहां हो सकता है कि एप्पल का कहना है, रहते हैं, आप अपने हैश समारोह में पूछते हैं। और यह शून्य बाल्टी के लिए जाना है, कहते हैं। ठीक है? हैश कार्यों के साथ प्रश्न? बहुत बढ़िया। [00:22:34] यहाँ एक से थोड़ा अधिक है विस्तृत विवरण एक हैश समारोह की तरह लग सकता है की। ठीक है। हैश के साथ अब, समस्या काम करता है, एक आदर्श दुनिया में है हम केवल एक ही होता है प्रत्येक बाल्टी में बात। लेकिन वास्तविकता में, वहाँ न केवल एक शब्द कि वहाँ नहीं है ए के साथ शुरू होता है बी तो साथ शुरू होता है कि केवल एक शब्द इस मामले में, हम अगर अचानक, "बेरी" मिल और हम यह करना चाहते हैं हमारे हैश तालिका में, और हम ओह, नहीं, केला है, देखते हैं वहां पहले से ही, हम क्या करने वाले हैं? [00:23:03] खैर, हम दो विकल्प हैं। पहला विकल्प है रेखीय, की जांच कर रही है, जो बस मिल जाने का मतलब अगले खाली बाल्टी। अगले खाली सरणी प्रविष्टि मिल जाओ। और बस वहाँ "बेरी" डाल दिया। इसलिए मैं यह माना जाता है पता है बाल्टी में एक केले के साथ चलते हैं। लेकिन बस, बाल्टी तीन में डाल दिया बाल्टी क्योंकि तीन खाली है। एक अन्य विकल्प शायद है आप को लागू करने में क्या अपने पी-सेट, जहां आप में अलग श्रृंखलन था। तो अपने बाल्टी में से प्रत्येक के, अपने सरणी तत्वों में से प्रत्येक, न केवल एक शब्द रखती है, लेकिन वास्तव में शब्दों की एक सूची के लिए एक सूचक रखती है। आप था इतना है कि अगर अपने हैश तालिका में केला और आप अचानक चाहता था बेरी, कोई समस्या नहीं जोड़ने के लिए। बस अंत करने के लिए, या करने पर बेर जोड़ने शुरुआत में, अपने लिंक की गई सूची की। ठीक है, बहुत बढ़िया। हैश के साथ सवाल टेबल हम पर जाने से पहले? [00:23:58] ठीक है। पेड़ों और कोशिश करता है। ठीक है, तो यह एक और विकल्प नहीं था शब्दकोश को लागू करने के लिए। आप एक कोशिश बना सकते थे। तो यह पेड़ की एक विशेष प्रकार का है कि एक बहु स्तरीय हैश तालिका की तरह बर्ताव करती है। तो अगर आप तस्वीर देखेंगे आप एक सरणी है कि जहां सरणियों का एक गुच्छा के लिए अंक सरणियों का एक गुच्छा है कि बिंदु सरणियों का एक गुच्छा है कि बिंदु। और हम वास्तव में क्या देखेंगे कि एक भविष्य स्लाइड पर लग जाएगा। और अधिक आम तौर पर, एक पेड़ बस किसी भी डेटा संरचना है जिसमें डेटा है कुछ पदानुक्रम में आयोजन किया। तो हम हमारे पास देखा था जहां समझ के कुछ प्रकार एक शीर्ष स्तर के, एक अगले स्तर, एक अगले स्तर, एक अगले स्तर। तो यह शायद सबसे स्पष्ट है कुछ विशिष्ट उदाहरण के साथ। तो यहाँ हमारे पेड़ है। आप यह देख सकते हैं कि विशेष स्तर है हम चाहते हैं कि रूट नोड, एक के साथ शुरू करते हैं। और हम अपने पेड़ के माध्यम से नीचे जा सकते हैं। [00:24:50] एक द्विआधारी पेड़ है एक पेड़ के विशेष प्रकार के। और केवल विनिर्देश एक द्विआधारी पेड़ के लिए प्रत्येक नोड है कि सबसे दो पत्ते पर। तो अगर आप किसी को देखने के लिए नहीं जा रहे हैं इन नोड्स तीन या चार से या पत्तियों के कुछ अन्य संख्या। और तो और भी अधिक विशिष्ट एक द्विआधारी खोज वृक्ष है जहां के बाईं ओर हर नोड नोड एक मूल्य के छोटे किया जा रहा है। और हर मूल्य सही बड़ा होने जा रहा है। आप 44 हमारे जड़ में है देखते हैं तो, बाएं, 11, 22, और 33 को हमारे जड़ से सब कम हैं। और सही पर सभी कर रहे हैं संख्या 66, 55, और 77 bigger--। और इस संपत्ति धारण सच पेड़ के हर स्तर पर। [00:25:37] हम करने के लिए नीचे जाना तो जब अभी भी 22, 11, और 33, 11 छोटे से अधिक 22 और 33 22 से भी बड़ा है। और यह आसान खोज करने के लिए बनाता है हम एक नंबर के लिए देख रहे हैं, क्योंकि हम ठीक से पता है, जो शाखा नीचे का पालन करें। तो यह आपको एक याद दिलाना चाहिए द्विआधारी खोज का थोड़ा सा। हाँ? [00:25:56] दर्शक: तो आप कर रहे हैं जब बाइनरी वर्णन आप यह सबसे अधिक दो पत्ते पर है कहा? हन्ना: एम एम-एचएम। दर्शक: यह कम हो सकता था? हन्ना: हाँ। तो तुम, उदाहरण के लिए, हम कहते हैं चीजों की एक भी नंबर नहीं था और तुम भर नहीं सकता है आपके सभी एक से एक है अगर पत्ते, यह ठीक है। ठीक है? बहुत बढ़िया। पेड़ों पर कोई अन्य प्रश्न? ठीक है। [00:26:16] पीछे हमारी कोशिश करता है के लिए मैं बात कर रहा था के रूप में एक छोटा सा पहले के बारे में, हम कैसे इन बहु स्तरीय सरणियों है। इस मामले में तो, हम शीर्ष पर शुरू करते हैं। और हम नीचे किसी भी शब्द का पालन कर सकते हैं। तो चलो हम चाहते थे हम कहते हैं ट्यूरिंग के लिए देखने के लिए। हम टी पर शुरू, इसे नीचे का पालन करें यू में शामिल है कि एक सरणी के लिए, और हम जब तक यह नीचे का पालन करें इस छोटे से डेल्टा तक पहुँचने जो अमेरिका, हाँ, तुम एक शब्द भी पाया बताता है। कोशिश करता है पर स्पष्ट है? कुछ भी वहाँ पर जाने के लिए? हाँ? दर्शक: डेल्टा के प्रतीक करता है कोशिश भीतर स्थान पर कब्जा करने के लिए है? हन्ना: हाँ, तो यह नहीं करता है जरूरी भी एक डेल्टा होने की जरूरत है। लेकिन हम किसी तरह से करने की जरूरत है हमारे computer-- खेद बताओ, इतना है कि हम अरहर में एक शब्द भी नहीं पता है कि। क्योंकि हम नहीं था कहते हैं एक डेल्टा की इस अवधारणा, इस अवधारणा बधाई हो, आप एक शब्द पाया, यह, टी यू आर के माध्यम से जाने के लिए और पुनरावृति होगी और फिर मैं यह पाया, भयानक, कहते हैं! यह एक शब्द होना चाहिए। लेकिन यह सच नहीं है। हम पूरे ट्यूरिंग एक शब्द होना चाहते हैं। इसलिए हम पर कुछ होगा कहते हैं कि अंत, बधाई हो, आप एक वैध शब्द पाया है। दर्शक: आप की तरह था तो अगर वर्णमाला में 26 अक्षर, आप वास्तव में होता है अपनी कोशिश में 27 चाबियाँ? [00:27:24] हन्ना: बहुत बढ़िया, हाँ। तो वास्तव में, मुझे लगता है कि अगली स्लाइड पर होगा। टा डा! यदि आपके पास एक कहां अपनी कोशिश में नोड, आप कर रहे हैं के बजाय 26 से 27 बच्चों के लिए किया जा रहा। उस के साथ कोई सवाल? हाँ? दर्शक: क्यों की कोशिश करता है ताकि हाथ में ले लिया है ज्यादा जगह [अश्राव्य] के रूप में तुम जाओ? ऐसा क्यों है कि [अश्राव्य] माना जाता है? हन्ना: यकीन है। चलो वापस चलते हैं। सवाल है, क्यों है कोशिश करता है इतना बड़ा कर रहे हैं एक हैश तालिका तरह से कुछ अधिक है। इन स्तरों में से प्रत्येक के लिए तो, यहां तक ​​कि, वे यहाँ तैयार नहीं कर रहे हैं आप सभी 26 पात्रों के लिए है। कारण और है कि तुम नहीं कर सकते मैं, ट्यूरिंग के लिए ओह, कहते हैं, लेकिन जैसे उन में से किसी की जरूरत नहीं है अमेरिकी खैर के स्तर पर ही बातें, अचानक अगर आप जोड़ना चाहते थे टी-एच की तरह था कि कुछ है, आप की जरूरत होगी उस शब्द को जोड़ने की क्षमता। हर एक पत्र के लिए तो, आपके पास करने के लिए जा रहे हैं का एक गुच्छा है इसे दूर आ रहा सरणियों। तो क्या आप यह मिलता था कि कैसे देख सकते हैं सच में बड़ा, वास्तव में तेजी से। कोई अन्य प्रश्न? ठीक है। हाँ? [00:28:29] दर्शक: जब कोशिश करता हैं हैश तालिकाओं की तुलना में तेजी? [00:28:33] हन्ना: जब कोशिश करता हैं हैश तालिकाओं की तुलना में तेजी? तो अगर आप एक बहुत था बुरा हैश समारोह। तो चलो मैं जैसा था, हम कहते हैं, यहाँ अपने हैश समारोह है। कोई फर्क नहीं पड़ता कि क्या शब्द तुम मुझे दे, मैं हमेशा से रहा हूँ सरणी प्रविष्टि 0 में डाल दिया जा रहा है। और इसलिए हम सिर्फ डालने के साथ खत्म एक बड़ी लंबी लिंक की गई सूची में सब कुछ। और इसलिए एक खोज समय में सबसे खराब ले जाएगा n यह हमारी सूची के बहुत अंत में अगर। कोशिश के साथ, हम सिर्फ पुनरावृति करने के लिए है शब्द में पत्र के माध्यम से। हम एक गुच्छा जोड़ा तो भी अगर हमारी कोशिश करने के लिए और अधिक शब्दों, यह हमें किसी भी अब नहीं ले जाएगा एक विशेष शब्द को खोजने के लिए। [00:29:09] हमें क्या करना है, सभी के लिए है उदाहरण के लिए, इस मामले में, हम ज़ूम के लिए देख रहे हैं, हम कहते हैं, हम सिर्फ अधिक पुनरावृति करना होगा जेड-ओ-ओ-एम, चार पत्र। तो है कि बस शब्द जूम की लंबाई। यह कितने फर्क नहीं पड़ता अधिक शब्दों हम इस कोशिश में डाल दिया। हम हमेशा के लिए इसे प्राप्त कर सकते उन चार चरणों में। बहुत बढ़िया। हाँ? [00:29:32] दर्शक: तो [अश्राव्य] ठीक है, एक सरणी है? [00:29:34] हन्ना: एम एम-एचएम। दर्शक: आप कर रहे हैं [अश्राव्य] के लिए देख रहे हैं, आप के माध्यम से जाना होगा अपने सरणी [अश्राव्य] खोजने के लिए? हन्ना: यकीन है। दर्शक: कि अधिक समय नहीं लगता? हन्ना: मैं करने जा रहा हूँ मेरे सरणी हमेशा कहते हैं कि ए, बी, सी, डी होने जा रहा, ई, एफ, जी, ब्ला ब्ला ब्ला, मैं हमेशा से जानते हैं, इसलिए यदि यह बात है एक ही सटीक क्रम में, मैं हमेशा पता है अगर यह बात है वर्णमाला क्रम में, मैं सिर्फ हे संख्या है कह सकते हैं इतना और इतनी वर्णमाला में। बस उस जगह के लिए कूद। साथ याद है, क्योंकि सरणियों, हम उपयोग कर सकते हैं निरंतर में उस सरणी के किसी भी तत्व हम देख रहे हैं जहां हम जानते हैं कि अगर समय। हाँ? [00:30:09] दर्शक: पिछले पर [अश्राव्य] 27 स्लाइड लेकिन पहले एक के लिए 26। [00:30:14] हन्ना: क्षमा करें? [00:30:15] दर्शक: पहली बार नहीं है एक शून्य है, तो यह 26 नहीं होगा? [00:30:18] हन्ना: हम 27 का कहना है कि जब यकीन है, इसलिए, कि हमें 26 के माध्यम से शून्य सूचकांक देने के लिए जा रहा है। लेकिन अगर आप वास्तव में गिनती अगर उन बाहर, यह 27 होने जा रहा है। अच्छा सवाल है। कुछ और? हाँ? [00:30:31] दर्शक: तो कोशिश करता हैं हैश तालिकाओं की तुलना में धीमी? [00:30:34] हन्ना: कोशिश में, होने जा रहे हैं सिद्धांत, की तुलना में तेजी हैश तालिकाओं लेकिन और अधिक स्मृति ले। हाँ? दर्शक: [अश्राव्य]? [00:30:45] हन्ना: माफी चाहता हूँ मैं, मैं तुम्हें सुन नहीं था। दर्शक: [अश्राव्य]। 0-25 आप 26 देता है। [00:30:54] हन्ना: 0-25 होगा ठीक है, आप 26 दे। [00:30:56] दर्शक: और तब [अश्राव्य]। हन्ना: ठीक है। इसलिए हम निर्दिष्ट कर रहे हैं संख्या है हमारे सरणी में बातें की संख्या। हम 27 है, तो यह बात है हमें देने के लिए जा 0 26 के माध्यम से, जो दे देंगे इस मामले में के लिए हमें कक्ष, मैं एक apostrophe सहित नहीं कर रहा हूँ। इसलिए हम 25 के माध्यम से शून्य कर रहे हैं हो रही है वर्णमाला के पहले 26 अक्षर, वर्णमाला के लिए या सभी 26 अक्षरों। और फिर है कि पिछले बात, प्रविष्टि 26 में है, चेक होने जा रहा मार्क, या डेल्टा। कुछ और? बहुत बढ़िया। मेरे अंतरिक्ष खोया। शांत, ठीक है। [00:31:31] इसलिए हम पहले से ही इस पर छुआ। लेकिन बड़ा व्यापार बंद कोशिश करता है और हैश तालिकाओं के बीच कोशिश करता है में, प्रदान करता है सिद्धांत, लगातार ऊपर देखो टाइम्स लेकिन स्मृति की एक पूरी बहुत का उपयोग करें। सब ठीक है, अब हम थोड़ा है कम जटिल संरचनाओं, और हम सी के साथ किया जाएगा, और हम सही साथ कदम होगा। [00:31:49] ढेर तो, हम यह देखा जहां व्याख्यान में आप एक तरह कुछ है ट्रे जहां के ढेर तुम डाल आखिरी बात ढेर पर जा रहा है आप से दूर ले पहली बात हो। तो यह है कि वास्तव में एक ढेर को परिभाषित करता है क्या आखिरी बात आप पर डाल दिया है कि पहली बार होने जा रहा है बात आप से दूर ले। और हम का उपयोग करने वाले शब्दों के अगर हम कुछ डाल करने के लिए जा रहे हैं, हम करने के लिए कुछ जोड़ने के लिए जा रहे हैं हमारे ढेर, हम जोर दे रहा है कि कहते हैं। और हम कुछ ले बंद, हम पॉपिंग कहते हैं। और हम करने जा रहे हैं , हम एक ढेर को लागू का ट्रैक रखने के लिए सुनिश्चित करने की आवश्यकता आकार और क्षमता दोनों। तत्वों की कुल संख्या हम कर सकते हैं तो पकड़ और तत्वों की वर्तमान संख्या कि हम पकड़ रहे हैं। [00:32:27] और बहुत इसी तरह, हम कतार है। और सिर्फ इतना फर्क , बजाय ढेर के साथ की है हमने कहा कि हम पर डाल आखिरी बात हम से दूर ले पहली बात है। इसलिए कतारों के साथ, हम में डाल पहली बात होने जा रहा है पहली बात यह है कि हम बाहर ले। तो यह है कि आप कर रहे हैं की तरह है वास्तव में एक दुकान पर ऊपर की परत और आपको मदद की जा रही हो, लाइन में तो पहले व्यक्ति मदद की जाने वाली पहली व्यक्ति होना चाहिए। तो यह है कि एक कतार होगा। [00:32:52] इसलिए हम का ट्रैक रखने की जरूरत है आकार, क्षमता, और सिर हम कर रहे हैं के बाद से सामने से दूर हर किसी के लिए ले जा रहा के बजाय पीछे की सूची की। उस पर प्रश्न? तुम्हें परेशान कर रहे हैं कि किसी भी सी सवाल? डाटा संरचनाओं, कि मज़ा सामान के किसी भी? सब ठीक है, शांत। इसलिए मैं एलिसन करने के लिए इसे हाथ में लेंगे कुछ और प्रोग्रामिंग में कूद। [00:33:14] एलिसन: ओह, हम देखेंगे। हम मैं यहाँ कितनी अच्छी तरह देखेंगे। ठीक है, मैं कोशिश करते हैं और उड़ान भरने के लिए जा रहा हूँ इस सामान के माध्यम से, दोस्तों। हन्ना में बहुत चला गया सब उसकी बातों पर गहराई। मैं देने के लिए प्रयास करने के लिए जा रहा हूँ आप एक त्वरित विस्फोट अवलोकन हम सब के साथ डेविन के लिए मिल सकता है, ताकि मज़ा जावास्क्रिप्ट और सुरक्षा बातें हो सकता है कि आप वास्तव में के बारे में अधिक जानना चाहते हैं। [00:33:33] ठीक है, हन्ना ने कहा, अगर अगर आप किसी भी प्रश्न हैं, मैं भी तेजी से जा रहा हूँ, कृपया मुझे पता है। मैं आवश्यक के रूप में सवालों का जवाब देंगे। शुरू करने के लिए तो, हम साथ शुरू करने जा रहे हैं बहुत पहले चीजों में से शायद एक आप वेब के साथ सीखा प्रोग्रामिंग, अनुमतियाँ। तो chmod, तुम लोगों को किया गया है चाहिए सभी वेब के साथ इस पर स्वामी आपने कि प्रोग्रामिंग हाल ही में कर दिया गया। यह मूल रूप से सिर्फ एक आदेश है कि परिवर्तन अनुमतियाँ या पहुँच अनुमतियाँ हमारे फाइल सिस्टम वस्तुओं की। बेशक, के लिए वास्तव में आप कर रहे हैं, तो ये देखना इन के साथ किसी भी परेशानी हो रही है आपकी समस्या सेट के दौरान, आप लंबे समय तक है, जो रास -l, इस्तेमाल हो सकता है इस तरह के दृश्य तरह पाने के लिए, आप वास्तव में सब देख जहां एक फ़ाइल के लिए अनुमतियों। [00:34:16] और वास्तव में, हम सिर्फ जाने के लिए जा रहे हैं बहुत जल्दी के माध्यम से सिर्फ सुंदर बहुत इनमें से प्रत्येक क्या मतलब है। तो हम यहीं घ है जो बस निर्देशिका के लिए खड़ा है। जाहिर है यहीं, हम rwx देखना जो पठनीय, लेखनीय है, और निष्पादन योग्य है। ये भी बिट्स के रूप में प्रतिनिधित्व किया जा सकता है, जो हम अगले पेज पर में मिल जाएगा। हमने देखा है ताकि प्रत्येक त्रय यहाँ है, तो यह तीन तीनों है। हम आर कुछ नहीं एक्स और आर rwx है कुछ भी नहीं यह पहली फ़ाइल के लिए एक्स। यह इस सामान्य संरचना है। [00:34:49] इसलिए हम कुछ निर्देशिका है। हम कुछ उपयोगकर्ता समूह है इन अनुमतियों के साथ। इन अनुमतियाँ है कि कुछ समूह, और एक विश्व एक की अनुमति है कि। आप एक त्रय के रूप में इन के बारे में सोच सकते हैं। आप तीन बिट्स के रूप में इन के बारे में सोच सकते हैं। इसलिए वे मूल्यों को पकड़ कर सकते हैं कहीं भी शून्य से ऊपर 7 को, जो क्यों कभी कभी होता है हम आपको chmod करना पड़ा बजाय जो कुछ भी आरडब्ल्यू chmod के 600। हम वहाँ एक उदाहरण में मिल जाएगा। लेकिन मूल रूप से, आप सोच सकते हैं बस rwx रूप में या तो इनमें से, या आप कुछ के रूप में उनमें से सोच सकते हैं संख्या जहां इस यहाँ पहले एक बीच की एक संख्या का प्रतिनिधित्व करता है 0 और 7, यह दूसरा एक बीच की एक संख्या का प्रतिनिधित्व करता है 0 और 7, और तीसरा एक ठीक है, 0 और 7 के बीच एक नंबर का प्रतिनिधित्व करता है? [00:35:38] आर 4 के एक मूल्य w है एक दो के मूल्य, और एक्स है यही कारण है जो एक के एक मूल्य है, यहां अनुमति के 700 chmod किया जाएगा। यहाँ इस मामले में, यह है कि हम कहते हैं, क्योंकि पहले थोड़ा वहाँ पर रूप से फ़्लिप किया है। तो हम पढ़ने के लिए 4 है। दूसरी बिट के लिए पर रूप से फ़्लिप अब हम 6 है तो, 2 है, जो डब्ल्यू। और तीसरा बिट पर रूप से फ़्लिप एक है जो एक्स, के लिए है, तो हम सात मिलता है। और हां, हमारे समूह और हमारी दुनिया प्रत्येक शून्य हैं। तो यह भी है chmod 700 के बराबर। और मैं निश्चित रूप से करने की कोशिश करेगा उन दोनों के बीच मानचित्रण समझते हैं। अगर यह है मुझे यकीन नहीं कर रहा हूँ पहले एक प्रश्नोत्तरी पर आते हैं, लेकिन यह एक होगा मैं यह पूछ सकता है कि सवाल। [00:36:18] बस थोड़ा सा भी जा रहा आगे यहाँ chmod, यहाँ में बहुत सामान्य है एक chmod कॉल की संरचना। तो ज़ाहिर है, हम यहाँ chmod है। यह है को संदर्भित करता है क्या सन्दर्भ, जो हम करने के लिए इन अनुमतियों को दे रहे हैं या जो हम इन ले रहे हैं दूर से अनुमतियाँ। तो हम यहाँ एक अनुमतियाँ में है, जैसे हम आपको एक प्लस एक्स chmod दिया है, हम जल्द ही देखेंगे के रूप में। एक बस इन विशिष्ट दे मतलब है हर किसी के लिए अनुमति। सब करने के लिए उन्हें दे। तो आप बहुत अच्छी तरह से यू प्लस एक्स हो सकता था या जी प्लस एक्स या ओ प्लस एक्स या एकाधिक तत्संबंधी। पहले भाग में हमेशा इतना है कि सन्दर्भ होने जा रहा। हम जो करने के लिए इन अनुमतियों को दे रहे हैं या जो हम दूर से उन्हें ले जा रहे हैं? [00:37:03] दूसरा एक ऑपरेटर है। तो तुम लोग ज्यादातर प्लस के साथ पेश किया है। यह करने के लिए अनुमतियाँ देता है जो कोई भी आप उन्हें दे रहे हैं, ऋण जबकि, तार्किक, उन्हें हटा। वहां तो कुछ नहीं भी भयानक। और फिर मोड बारे में हम बात क्या है पढ़ना, लिखना, या क्रियान्वित करने के साथ। तो एक से अधिक एक्स निष्पादन योग्य देने का मतलब हर किसी के लिए अनुमति। और फिर, ज़ाहिर है, जिस पर विशिष्ट फ़ाइल या निर्देशिका। ठीक है? Chmod साथ अच्छा सब लोग? बहुत बुरा नहीं है? [00:37:37] ठीक है, आप में से किसी भी कर रहे हैं, एचटीएमएल इसलिए पुराने पर्याप्त माइस्पेस उम्र to--? मैं अपने अनुभाग के लिए यह भेजा और सचमुच आधे लोग मैं पागल हो गया था की तरह मुझे देखा। और मुझे लगता है, दोस्तों, जैसा था हम चाहते हैं कि पुरानी नहीं कर रहे हैं। आओ ना। तो हाइपरटेक्स्ट मार्कअप लैंग्वेज, यह ईमानदारी से आप के लिए सिर्फ एक रास्ता है वेब पर कुछ बातें प्रदर्शित करने के लिए। तो यह एक मार्कअप भाषा है। यह एक पटकथा भाषा नहीं है। इसमें कोई तर्क नहीं है। इसे बदलने के लिए बस है जिस तरह से कुछ प्रदर्शित किया जाता है। ठीक है, इसलिए कि एक महत्वपूर्ण है भेद करना। यह एक मार्कअप भाषा माना जाता है, नहीं एक पटकथा भाषा। [00:38:12] तो यहाँ हम हमारे एचटीएमएल टैग नहीं है। इस स्लाइड पर शायद का सबसे रहे हैं आप से परिचित होना चाहिए कि लोगों को और सच के साथ सहज हो। तो जाहिर है, हम हैं हमारे एचटीएमएल टैग, जो सब कुछ है कि में designates के बीच इन दो HTML किया जाएगा। हम कुछ लिंक है, जो जाहिर है आप दे देंगे एक बाहरी वेब पेज के लिए एक कड़ी। कुछ शीर्षक है, यहाँ हमारे सिर के भीतर। और हम साथ हमारे शरीर है एक शीर्षक है जो एच 1, इसलिए यह अच्छा बना देंगे और बोल्ड और बड़ा। और फिर, हम कुछ है एक पैरा है जो पी। तुम्हें शायद पता होना चाहिए और बातों के साथ परिचित होना आप एक छवि डालने कैसे कर रहे हैं, जैसे वहाँ किसी भी अन्य हेडर वर्गों? मैं निश्चित रूप से होगा div के साथ आराम से। इसलिए इन टैग का बहुमत है आप से परिचित होना चाहिए। लेकिन ज़ाहिर है, सब कुछ के साथ के रूप में सीएस 50, सूची संपूर्ण नहीं है। तो तुम उस पर ब्रश सुनिश्चित करें। [00:39:08] सीएसएस, ताकि सीएसएस, आप में से किसी को देखने अगर दो हफ्ते पहले से मेरे संगोष्ठी, वास्तव में सिर्फ एक रास्ता है अपने वेब पेज शैली के लिए? ठीक है, तो हम कुछ मार्कअप भाषा है। सिर्फ पाठ का ख्याल रखता है कि एचटीएमएल, और यह पेज पर हो सकता है, जहां। लेकिन सीएसएस यह बहुत बनाता है क्या वास्तव में है। आप अपने HTML में इन हो सकता था फाइलें, लेकिन हम बाद में बात करेंगे, के रूप में मैं यह हो सकता है पूरा यकीन यह अगली स्लाइड हो आम बात है, और वास्तव में हम वास्तव में प्रोत्साहित करते हैं कि अभ्यास, आप रखने के लिए उन्हें अलग कर जब हम MVC और कहा कि पूरे प्रतिमान के बारे में बात करते हैं। यही कारण है कि इस मामले में खिलाती है क्या वास्तव में है। [00:39:42] तो सीएसएस करने के लिए सिर्फ एक रास्ता है बातें बहुत लग रही हो। यहाँ चीजों की तरह, शरीर और #title और .info, इन चयनकर्ताओं और क्या कहा जाता है वे विशिष्ट बातों का चयन करना है अपने HTML फ़ाइल के भीतर और जो कुछ भी शैली लागू होते हैं, जो कुछ भी आप चाहते हैं कि चीजों की तरह, अपने वेब के उस विशिष्ट तत्व के लिए पृष्ठ। तो यहाँ, हम एक पृष्ठभूमि रंग और एक रंग और एक फ़ॉन्ट परिवार की जा रही है कि शरीर में जो कुछ भी करने के लिए आवेदन किया। हम यहाँ वापस देखा तो, अगर यह शीर्षक के लिए लागू नहीं होगा। यह केवल क्या है के लिए लागू होगा इन शरीर चयनकर्ताओं में, ठीक है? [00:40:22] यहाँ शीर्षक के साथ, यह है एक ही बात होने जा रहा, पाठ का रंग नीले रंग की ही जा रहा है किया जा रहा है भीतर क्या है, को प्रभावित करने के लिए शीर्षक चयनकर्ताओं। के रूप में अच्छी तरह से यहाँ जानकारी के रूप में, पाठ, गुलाबी हो जाएगा यहीं है जो जो कुछ भी की जानकारी,। केवल बात तो यह है कि इस पृष्ठ पर गुलाबी होगा तिथि, सोमवार, 17 नवम्बर, 2014 है। ठीक है, तो सीएसएस करने के लिए सिर्फ एक रास्ता है हाँ over-- अधिक नियंत्रण है? [00:40:48] दर्शक: क्यों आप की क्या ज़रूरत है शीर्षक के साथ हैश का उपयोग करने के लिए? [00:40:51] हन्ना: अगली स्लाइड, वादा करता हूँ! हम वहाँ मिल जाएगा। हम हैश का उपयोग करने के लिए है तो यह है क्यों। इसलिए चयनकर्ताओं तीन मुख्य पर ले हम के बारे में आप लोगों से बात कि रूपों। मैं और अधिक जानने के लिए चाहते fyou, बहुत सारे वहाँ से बाहर है। महान सीएसएस प्रलेखन नहीं है। क्या करना है, जो एक टैग का नाम, वहाँ HTML में बस अपनी सामान्य टैग के साथ। एच 1, पी, div, H2 तो, चीजों के उन प्रकार की। और हम बस के रूप में उन लोगों के नाम कर सकते हैं। हम यहाँ के साथ देखते हैं तो शरीर, यह एक सामान्य टैग है। इसलिए जब हम सिर्फ शरीर को रख सकते हैं हम अपने सीएसएस फ़ाइल में बात कर रहे हैं। [00:41:26] शीर्षक, पूरे कारण के साथ हम इस हैश है कि हम क्या कर सकते है एक आईडी पर विचार किया। तो एक आईडी हमेशा होना चाहिए अपने HTML पृष्ठ के भीतर अद्वितीय आप कर रहे हैं इतना है कि जब यह जिक्र है, तो आप आप केवल बात कर रहे हैं पता है कि एक विशेष बात करने के लिए। साथ ही, यहां इस मामले में तो हमारे यहां एच 1, सीएस 50 समीक्षा सत्र, हम शीर्षक से एक आईडी है। बस उस का उल्लेख करने के क्रम में तो हमारे HTML का टुकड़ा है, हम एक हैश शीर्षक से करते हैं। बस कन्वेंशन द्वारा, आईडी नामित कर रहे हैं उनके सामने एक हैश के साथ। उसी तरह, हम देखते हैं यहाँ जानकारी एक वर्ग है। और तो सीएसएस के साथ वर्ग है एक डॉट वर्ग के रूप में नामित या उस वर्ग है जो कुछ डॉट। यहाँ तो इस मामले में, यह जानकारी है। [00:42:10] इसलिए मैं इसे वापस ले। इन दोनों को होगा हमारे यहाँ सीएसएस के लिए गुलाबी वे दोनों जानकारी का एक वर्ग है क्योंकि। और हमारे सीएसएस फ़ाइल में, हम नामित किया है जानकारी के एक वर्ग के साथ कुछ भी है कि गुलाबी होगा। कि मतलब? हाँ? [00:42:27] दर्शक: अगर तुम थे बनाने के लिए शरीर सफेद में सब कुछ है, और फिर तुम बनाने की कोशिश नीले इसके अंदर कुछ है, कि समस्याओं का कारण होगा? [00:42:34] हन्ना: तो सीएसएस व्यापक स्टाइल शीट्स। इसलिए जो कुछ ओर है नीचे पूर्वता ले जाएगा। तो अगर आप शरीर के साथ कुछ करते हैं, और तुम सब कुछ सफेद बनाने, और फिर बाद में आप शीर्षक बदल या आप शरीर के भीतर पाठ बदलने, यह उस पर लिख देगा। ओर तो कुछ भी नीचे पूर्वता ले जाएगा। हाँ? [00:42:56] दर्शकों: और आईडी, अद्वितीय हैं लेकिन कक्षाओं में अधिक हो सकता है? हन्ना: ठीक है। तो आईडी अद्वितीय होना चाहिए, और कक्षाओं में कर सकते हैं आप चाहें के रूप में कई चीजों को देखें। कोई अन्य प्रश्न? हाँ। [00:43:09] दर्शक: [अश्राव्य]। मैं सोच रहा हूँ कि कि एक फर्क पड़ता है। हन्ना: मैं माफी चाहता हूँ, सवाल क्या था? दर्शक: छोटे नहीं है "एफ" और "राजधानी एफ" हन्ना: तो फर्क छोटे 'एफ' और पूंजी के बीच 'एफ' एक फर्क नहीं करना चाहिए। तो 'एफ' के 15 या तो तरीका होगा। कूल, और कुछ? अच्छा हर कोई है, सीएसएस? हाँ? [00:43:30] दर्शक: क्षमा करें। यदि आप एक वर्ग और एक आईडी मिल सकता है? [00:43:35] हन्ना: हाँ, आप कर सकते हैं। हालात एक वर्ग और एक आईडी दोनों हो सकते हैं। और मैं अत्यधिक की सिफारिश अपने दम पर इन परीक्षण। आप बनाकर सबसे अच्छा सिर्फ सीखना होगा सीएसएस कुछ बहुत ही सरल वेब पेज, कुछ सीएसएस ड्राइंग, और बस वे बातचीत कैसे देखकर। और तुम, एक बहुत अच्छा मिलेगा यह कैसे काम करता है के लिए सहज ज्ञान युक्त भावना। [00:43:56] ठीक है, सीएसएस के साथ अच्छा सबको? तुम सब करने के लिए जा रहे हैं अब सीएसएस के साथ सुंदर वेबसाइटों। ठीक है, सर्वोत्तम प्रथाओं, बस ध्यान में रखने की बातें, बातें हम गोदी क्यों इस that-- है आप डिजाइनर और whatnot के लिए। इतना सब अपने एचटीएमएल टैग को बंद करें। आप एक खुले शरीर है, तो एक करीबी शरीर होना चाहिए। आप एक खुला पैरा है, एक करीबी पैरा होना चाहिए। अपने पृष्ठ पुष्टि देखने के लिए जाँच करें। तुम लोग बहुत परिचित होना चाहिए से इस के साथ पी-सेट सात सीएस 50 वित्त के साथ W3 सत्यापनकर्ता साथ। और मैं पहले कहा था, के रूप में हमारे बड़े मानदंड में से एक सीएसएस के साथ अपनी शैली अलग है HTML है जो अपने मार्कअप, से। और फिर, बेशक, हम हैं यहाँ नीचे इस महान xkcd। याय, हास्य राहत! [00:44:38] ठीक है, टीसीपी / आईपी। इन और HTTP के बीच, मूल रूप से वे दोनों प्रोटोकॉल रहे हैं। तो तुम सिर्फ सोच भी नहीं सकते उनमें से नियमों का एक सेट के रूप में कैसे चीजों को नियंत्रित करने वाले इंटरनेट के पार ले। तो ट्रांसमिशन कंट्रोल प्रोटोकॉल, या इंटरनेट प्रोटोकॉल, सुनिश्चित करने के लिए सिर्फ एक रास्ता है यह कहाँ जा रहा है कि डेटा हो जाता है और अगर हम जानते हैं कि हम कभी भी डेटा याद कर रहे हैं। तो तुम लोग अगर व्याख्यान के लिए वापस लगता है दाऊद के साथ पहले एक दो सप्ताह जहां हम वे चार लिफाफे था सभी चार में से एक की तरह गिने जा रहे थे, चार में से दो, चार में से तीन के चार चार, इस नियम का सिर्फ एक सेट है। हम ठीक है, हम जब भी कर रहे हैं, ने कहा कि एक से अधिक पैकेट भेजने, हम नंबर करने जा रहे हैं यह क्या है संख्या के साथ यह और कितने कुल कि उपयोगकर्ता मिलना चाहिए। [00:45:19] और यह सिर्फ कह रही है कि जो कोई भी डेटा वे चाहे प्राप्त कर रहा है अगर सब कुछ या मिल गया है कुछ रास्ता साथ खो गया। और वे इसके लिए फिर से पूछने की जरूरत है। यह वास्तव में नियमों का सिर्फ एक सेट है। यही कारण है कि आप ठीक है, इसके बारे में सोच सकते हैं कि कैसे है? और यह भी, यह बंदरगाह, जो निर्दिष्ट आप दोस्तों, मैं व्याख्यान के दौरान पता है can-- वे बंदरगाहों की एक पूरी सूची थी। लेकिन हम यहाँ अभी उन्हें नहीं है। [00:45:41] तो हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल फिर, यह एक प्रोटोकॉल है, है। तो यह नियमों का एक और सेट है कि इस मामले में शासन करना, हाइपरटेक्स्ट कैसे स्थानांतरित कर रहा है। तो यह सिर्फ ब्राउज़रों की अनुमति देता है वेब सर्वर करने के लिए बात करने के लिए। हम यहाँ के रूप में कहा है, यह है मानव handshaking की तरह। यह नियंत्रित करने के लिए सिर्फ एक रास्ता है कैसे वेब सर्वर है अपने ब्राउज़र के साथ बातचीत करने के लिए जा रहा है। और हम सिर्फ उदाहरण के एक जोड़ी है। हम यहाँ कुछ अनुरोध किया है कहां से मिल विधि है। हम है, जो HTTP 1.1 है हमारे लिए प्रोटोकॉल संस्करण। और फिर, मेजबान, जो है क्या हम वास्तव में उपयोग करने के लिए कोशिश कर रहे हैं। और फिर, आप यहाँ देख के रूप में, हम इस 200 के साथ कुछ प्रतिक्रिया मिल हमारे HTTP प्रतिक्रिया कोड के रूप में ठीक है। हम मैं जा रहा हूँ एक बड़ी सूची है एक सेकंड में ऊपर खींचने के लिए तुम लोगों के साथ परिचित होना चाहिए कि। और हम इस सामग्री प्रकार पाठ / html है जो सिर्फ आंकड़ों की किस प्रकार का कहना है हम ठीक है, सर्वर से प्राप्त कर रहे हैं? यह मेजबान और इस सामग्री प्रकार HTTP हेडर का हिस्सा हैं। आप के रूप में कुछ के रूप में या कम कर सकते हैं के संदर्भ के लिए आवश्यक है क्या आप के साथ काम कर रहे हैं। कभी कभी आप का एक बहुत कुछ होगा अपने सर्वर से आ रही जानकारी। हो सकता है कि वे एक बहुत अनुरोध कर रहे हैं उपयोगकर्ता से जानकारी की। यह संदर्भ पर निर्भर करता है। आप सीएस 50 अध्ययन में देखो, उस पर एक बहुत अधिक है। लेकिन हम प्राप्त करने के लिए एक बहुत कुछ है इसलिए मैं जा रहा हूँ, के माध्यम से ठीक है आगे जाने के लिए अगर कि तुम लोगों के साथ ठीक है? बिंदास। रूको। मैं निश्चित रूप से लगता है कि हुह of-- पूरी सूची! क्यों है यह मैं नहीं जानता यहाँ पर सभी तरह। मुझे लगता है मैं सचमुच चले गए सोचा मैं sitting-- यह था जबकि [00:47:15] Davin: यदि आप इसे सिखाने के लिए करना चाहते हैं? या फिर आप मुझे यह सिखाने के लिए करना चाहते हैं? [00:47:17] दर्शक: मैं हम कर सकते थे सोचा बस के साथ शुरू करने के लिए उन्हें दिखा। मैं आप में जा सकते हैं, इसका मतलब यह उन्हें आगे है, लेकिन मैं यह मैं के बाद से अधिक मतलब नहीं बनता सोचा सिर्फ HTTP स्थितियों के बारे में बात कर रहा था। तो यहाँ पूरी सूची है। मैं ऐसा करने के लिए किया जाता है क्या हो रहा है लगता है डेविन उन्हें बाद में जाना जा रहा है। लेकिन एक पूरी सूची एक, वहाँ स्वाद का पूर्वावलोकन आने के लिए। ठीक है, हम यह जा रहा है blow-- लिए जा रहे हैं कोई अन्य की तरह एक PHP क्रैश कोर्स किया जाना है। [00:47:41] तो पीएचपी, Hypertext पूर्वप्रक्रमक, यह एक पुनरावर्ती backronym है, जो यह कुछ और नाम रखा गया है इसका मतलब है। और फिर वे इस तरह से थे वास्तव में मतलब नहीं है। तो वे बस it-- नामित और यह एक परिचित करा रहा था, ताकि वे सिर्फ यह पीएचपी बनाया Hypertext पूर्वप्रक्रमक, जो बस नहीं समझ में आता। मजेदार कहानी। यह एक प्रोग्रामिंग भाषा है। मैं जोर है कि इतनी के रूप में के रूप में ज्यादा एचटीएमएल एक प्रोग्रामिंग भाषा नहीं है, यह एक मार्कअप भाषा, पीएचपी है एक प्रोग्रामिंग भाषा है। यदि आप इस पता है कि कैसे तर्क है क्योंकि वहाँ। सशर्त, कर रहे हैं। हम चर है हम, जबकि HTML में उन चीजों में से कोई नहीं है। [00:48:12] सब ठीक है, तो हम इस छोटी सी है सा है कि यहाँ पीएचपी की एक स्वाद की तरह है। तो मूल बातें, चर नाम एक डॉलर के हस्ताक्षर के साथ शुरू करते हैं। यह जैसे लोगों के बहुत सारे। हमें पैसे की याद दिलाता है। यह सब बहुत अच्छा है। हम सभी पीएचपी चाहते हैं। इसलिए हम एक निर्दिष्ट नहीं करते अब और चर का प्रकार। इसे चलाने के समय पर निर्धारित होता है। दुभाषिया, की तरह हो जाएगा ओह, हम बस के माध्यम से चलने देंगे और संदर्भ के अनुसार, हम प्रकार की किस प्रकार देखेंगे इन चर की आवश्यकता है। कोई मुख्य समारोह में नहीं है। चीजें सिर्फ चलेंगे। में अपने आयात के साथ तुम लोग अपने पी-सेट पिछले है, यदि आप इस पर ध्यान देंगे। एक मुख्य समारोह वास्तव में नहीं था। तुम बस क्या लिखा है आप ऐसा करना चाहता था। और यह सिर्फ तरह से हुआ। तो यह है कि आप के लिए PHP है। [00:48:56] सारणियों बहुत समान हैं। हम अभी भी इस ब्रैकेट है। यहाँ, हम कुछ परिवर्तनशील है आगमन कहा जाता है, और यह बराबर है to-- हम अपने सामान्य है ब्रैकेट अंकन। और हम कुछ महत्वपूर्ण मूल्य है। और बड़ा अंतर सी और पीएचपी सरणियों के बीच हम इस associate-- हो सकता है हम चाबियाँ करने के लिए मूल्यों को संबद्ध कर सकते हैं। तो बजाय सिर्फ होने अनुक्रमित है कि एक सरणी नंबर या स्थिति से सरणी में उस तत्व की, हम वास्तव में एक कुंजी के साथ संबद्ध कर सकते हैं। हम कह सकते हैं कहां, ठीक है, मैं चाहता हूँ कि जो कुछ भी मूल्य फल के साथ जुड़ा हुआ है। और शायद हम फल केले के लिए चला गया है। इसलिए यह हमारे लिए केले वापसी चाहते हैं। [00:49:41] लेकिन असल में, सबसे इस बारे में शक्तिशाली बात है कि तुम लोगों को याद है जहां हम मूल रूप से व्याख्यान से डेमो दुबारा लिखा PHP में वर्तनीकार, और यह was-- देखने का सिर्फ सच था की तरह है, इस कुंजी मौजूद है? यही कारण है कि यह की शक्ति का सच तरह है। आप पुनरावृति की जरूरत नहीं है अपने सरणी के माध्यम से। तुम्हें पता करने की जरूरत नहीं है क्या अंतरिक्ष में यह है। यह अंत या शुरुआत में हो सकता है। जब तक आप कुंजी पता है कि मूल्य के साथ जुड़ा हुआ है, पीएचपी सिर्फ इतना है कि मूल्य थूक कर सकते हैं सही ठीक है, तुम पर वापस बाहर? [00:50:09] और फिर, हम भी बस सिर्फ क्योंकि हम महत्वपूर्ण मूल्य जोड़े हो सकता है आप के लिए है मतलब नहीं है। आप भी सिर्फ बना सकते हैं एक सामान्य सरणी यहाँ की तरह, यह है नीचे, जहां पर सिर्फ एक, दो, तीन, चार। वे हमारे मान रहे हैं। और वास्तव में, उनके चाबियाँ सूचकांकों हैं। तो एक के लिए कुंजी शून्य होगा। दो के लिए महत्वपूर्ण होगा। इतने पर और बहुत आगे है, जब तक आप स्पष्ट रूप से एक चाबी आवंटित, आपको लगता है कि मान सकता है मूल्य सिर्फ अपनी सूचकांक है। कि हर किसी को मतलब? कोई सवाल नहीं? बहुत बढ़िया। [00:50:38] ठीक है, foreach के लिए एक रास्ता है अपने सरणियों के माध्यम से पुनरावृति। इसलिए हम यहां कुछ है सिर्फ सामान्य संरचना। तो foreach, नाम हमारे सरणी, जो कुछ भी रूप में आप प्रत्येक कॉल करना चाहते हैं अपने सरणी में तत्व, और हम साथ में कुछ कर सकते उस तत्व या कि मूल्य के साथ। तो हम यहाँ एक उदाहरण है। हम एक साहचर्य है इन दो प्रविष्टियों के साथ सरणी पट्टी के साथ foo के साथ संबद्ध किया जा रहा और बाज के साथ जुड़े होने qux। तो चाबियाँ फू और बाज हैं। मान बार और qux हैं। तो foreach, हम अपने सरणी है यहाँ, कुंजी मान जोड़ी के रूप में। इस का उपयोग करने की अनुमति देता है हमें कुंजी और मूल्य दोनों। शायद तुम सिर्फ चाहते हैं मूल्य, जो मामले में तुम सिर्फ आगमन की तरह कर सकता है तो $ मूल्य, और आप के रूप में बस मूल्य तक पहुँच रहे हैं आप के माध्यम से पुनरावृति के रूप में। लेकिन हो सकता है, के लिए कुछ कारण, आप कुंजी चाहते हैं, मैं चुना है, यही वजह है बजाय इस उदाहरण। तो अगर आप वास्तव में हेरफेर कर सकते हैं इस मामले में महत्वपूर्ण है और मूल्य। ठीक है? सवाल? [00:51:41] दर्शक: अगर तुम चाहते थे बस, कुंजी होगा हेरफेर तुम्हें क्या करना है foreach-- [00:51:45] एलिसन: ठीक है। तो अगर तुम चाहते थे बस कुंजी हेरफेर, आप अभी भी इस आवश्यकता होगी वाक्य रचना सिर्फ तुम क्योंकि अगर कुछ के रूप में आगमन है, एक बात के रूप में, यह है जा रहा है कि आप चाहते हैं कि कल्पना करने के लिए मूल्य, न कि कुंजी। तो आप कभी सिर्फ बस की तरह है , शायद इस $ तत्व की तरह है के रूप में आगमन, यह आप पूछ रहे हैं कि कल्पना करने के लिए जा रहा है प्रत्येक बिंदु पर सिर्फ मूल्य के लिए। आप स्पष्ट रूप से चाहते हैं कुंजी के साथ कुछ करना, आप के लिए नहीं जा रहे हैं, भले ही मूल्य के साथ कुछ भी करते हैं, आप इस संरचना की जरूरत है हम यहाँ है कि जहां आप स्पष्ट रूप से पूछ रहे हैं कुंजी और मूल्य दोनों के लिए। बड़ा सवाल है। कुछ और? बिंदास। [00:52:27] सब ठीक है, PHP और एचटीएमएल। ओह, हम करने के लिए वापस आ गए हैं पी-सेट फिर से सात। तो यह एक छोटे से परिचित दिखना चाहिए। तो यह कुछ सरल HTML फार्म है कि नमस्कार के कुछ इनपुट नाम है। और हम हम मिल के बारे में हमारी विधि है देखते हैं। और हम हमारे पी-सेट से याद है, इस प्रपत्र प्रस्तुत किया जाता है, यह है कि $ _GET नामक एक सरणी भेजता इन सूचनाओं या चर से की सभी होना चाहिए कि प्रपत्र हमारे PHP में हेरफेर किया। इस मामले में, उपयोगकर्ता तो उनके नाम पर रखा जाएगा। वे इसे सबमिट करें। और हम यहाँ कुछ सरणी मिलता है कि देखते हैं। हम अपने प्राप्त सरणी है। और हम नाम तक पहुँच रहे हैं। [00:53:11] ऐसा कहता है कि, ठीक है, मुझे दे नाम के साथ जुड़ा हुआ है कि मूल्य, यहां महत्वपूर्ण यह जा रहा है नाम है। और उस पर सीधे मानचित्र क्या हम अपने इनपुट नाम है। तो यह आप के लिए चाबी दे रहा था क्या यहाँ अपने सरणी में होने जा रहा है। कि हर किसी को मतलब? हाँ? [00:53:32] दर्शक: नाम में उल्लेख मिलता है [अश्राव्य] में बैंगनी लाइन करने के लिए? [00:53:36] एलिसन: यह यहाँ यह करने के लिए संदर्भित करता है। तो यहीं इस क्षेत्र है, यह यहां इस नाम का उल्लेख है। तो यह नाम दिया गया है सकते हैं फोन नंबर, या जो भी पसंद है। यह नाम है, वास्तव में क्या कहते हैं अगर आप इस क्षेत्र बुला रहे हैं? कैसे आप करने जा रहे हैं इस क्षेत्र को देखें? और इस नाम हम कर रहे हैं, वास्तव में पसंद किया जाता है इस क्षेत्र को कह नाम कहा जाता है। यही कारण है कि हम इसे उपयोग करने के लिए जा रहे हैं कि कैसे है। [00:53:59] दर्शक: तो यह की तरह है, इनपुट नाम बॉब के बराबर होती है, and-- [00:54:02] एलिसन: ठीक है तो आप, वहाँ नीचे बॉब मिलेगा। बिल्कुल सही। हर कोई शांत? ठीक है, तो, पोस्ट बनाम जाओ इन दो मुख्य तरीके हैं कि हम एक HTTP अनुरोध में डेटा गुजरती हैं। तुम लोग देखना चाहिए था इन उम्मीद है कि दोनों। मिलता है, के बारे में जानकारी तो यूआरएल के माध्यम से पारित कर दिया है। तो तुम कभी गूगल करते हैं खोजों, यूट्यूब, तुम हूँ शायद कुछ प्रश्न चिह्न नोटिस। और फिर, सभी शब्दों कि तुम सिर्फ वहाँ में डाल दिया। और पोस्ट डेटा गुजरता HTTP के संदेश के मुख्य भाग में। इतना मिलता है के विपरीत, आप एक तरह से करने पर विचार डेटा उपयोगकर्ता से छिपा है कि। लेकिन क्या वास्तव में है समझने के लिए महत्वपूर्ण यह अभी भी है मिल के रूप में बस के रूप में असुरक्षित। मैं का उपयोग करना पसंद सादृश्य अगर है आप अपने बैंक खाता संख्या है और आप के बाहर पर यह लिखना एक लिफाफा, कि बहुत असुरक्षित है। अगर तुम थे के एक टुकड़े पर इसे लिखने के लिए कागज और लिफाफे के अंदर डाल दिया, यह अभी भी है क्योंकि वास्तव में असुरक्षित है आप सभी के लिए है कि ऊपर खुला है और वास्तविक सामग्री को देखने संदेश की है कि देखने के लिए। तो यह "छिपा" है और करने के लिए जैसे लोगों यह सुरक्षित है, लेकिन यह सच नहीं है। और मुझे यकीन है कि डेविन होगा हो सकता है, कि अधिक में मिलता है। लेकिन यह एक महत्वपूर्ण है भेद करना और वास्तव में कुछ अच्छा समझते हैं। [00:55:15] ठीक है, एसक्यूएल, संरचित क्वेरी भाषा। सभी सामान कि हम तो हाल ही में देखा है! तो यह मूल रूप से बस तैयार है, जाहिर है, डेटा के प्रबंधन के लिए। तुम लोगों के साथ अनुभव का एक बहुत कुछ था पीएचपी MyAdmin के साथ अपने टेबल में इस। और चार आम प्रश्नों रहे हैं हम चाहते हैं कि आप लोगों को पता करने के लिए। तो अद्यतन, सम्मिलित नहीं है, चयन करें, और हटा दें। तो क्या तुम सच में अच्छी तरह से उन लोगों को पता सुनिश्चित करें। हम जाने के लिए जा रहे हैं वास्तव में तेजी से उन के माध्यम से। [00:55:40] तो, के रूप में वास्तव में, अद्यतन करें क्या यदि आप यह नहीं करता है लगता है कि हो सकता है यह सिर्फ अपने डेटाबेस में डेटा अद्यतन करता है। तो हम यहाँ कुछ उदाहरण है। यह सामान्य है एक अद्यतन क्वेरी की संरचना। तो हम तालिका अद्यतन उस के बारे में हम बात कर रहे हैं। और हम निश्चित सेट करना चाहते हैं मूल्यों, कुछ स्तंभों विशिष्ट मूल्यों के बराबर। तो यह सिर्फ बदल रहा है, तालिका अपडेट इस मामले में सभी पंक्तियों में मान। इस एक में तो यहाँ नीचे, एक वास्तविक उदाहरण के लिए, हम insert-- खेद है। उस स्लाइड उन्नत मेरे बिना इसे साकार। [00:56:17] इसलिए इस अद्यतन तालिका बराबर col1 सेट घर के बराबर होती है, जहां VAL1 करने के लिए "Currier।" क्या इस एक करता है यह केवल यह केवल परिवर्तन विशिष्ट स्थानों में इन मूल्यों को अद्यतन करता है। तो यह पहले से एक में, यह इन परिवर्तनों अपनी तालिका में सब कुछ के लिए मूल्यों, ठीक है? यह इस बदलाव करने जा रहा है हर एक में प्रवेश के लिए स्तंभ, हर एक पंक्ति के लिए। इस जहां लेकिन, तुम सकता है एक क्वालीफायर के रूप में लगता है। तो यह केवल बदल रहा है बहुत विशिष्ट स्थानों में यह। इतने में पी-सेट, जब आप सात शायद नकद राशि की अद्यतन अपने उपयोगकर्ता था कि, आप शायद था कुछ आईडी, सही सत्र आईडी के बराबर होती है कहाँ? [00:56:53] करने के लिए आप नहीं चाहते थे क्योंकि नकदी की मात्रा में परिवर्तन हर व्यक्ति के लिए जो अपनी वेबसाइट का उपयोग किया गया था। आप एक के लिए इसे बदलने के लिए करना चाहता था विशिष्ट व्यक्ति, उस व्यक्ति को किया जा रहा है जो कोई भी उस समय यह उपयोग कर रहा था। अधिकार? ठीक है, तो, डालने डालने तालिका में कुछ मूल्यों। यह आप कर रहे हैं, जब की तरह है एक ब्रांड के नए उपयोगकर्ता बनाने। यहां सामान्य संरचना जो कुछ तालिका में सम्मिलित किया जाता है हम के बारे में बात कर रहे हैं। मान जा रहा है, मानों कि हम वास्तव में सम्मिलित करना चाहते हैं। ठीक है, हम यहाँ देखें, ताकि हम तालिका में सम्मिलित किया है। इस के साथ विशिष्ट स्तंभों है उनके corresponded मूल्यों। तो यह डालने का कहना है युक्त एक नई पंक्ति मूल्यों VAL1 और val2 के तहत इन विशिष्ट स्तंभों। [00:57:33] इसलिए हो सकता है कि आप केवल भरना चाहते हैं इस पंक्ति में आधा बातें बाहर। यही कारण है कि इस भाग यहाँ आप कर देता है। यह वास्तव में आप की सुविधा देता है जो हिस्सा निर्धारित करते हैं। हाँ? [00:57:44] दर्शक: आप कर सकते हैं केवल [अश्राव्य] पंक्ति [अश्राव्य] में कोशिकाओं? [00:57:52] एलिसन: आप केवल में भरने अपनी पंक्ति के कुछ भागों, उन कोशिकाओं के बाकी अभी खाली हैं। जब तक आप करने के लिए उन्हें अनुमति खाली हो सकता है, यह एक समस्या नहीं है। आप उन्हें उपयोग करने की कोशिश करते हैं, तो यह बात है कुछ खाली तत्व वापस करने के लिए जा रहा है। लेकिन यह जानना महत्वपूर्ण है कुछ तालिकाओं में है कि, वे अशक्त होने की अनुमति दी जाना है। तुम एक में चलाने हो सकता है अपने पी-सेट के दौरान समस्या हम किसी भी ऐसा नहीं था क्योंकि के अपने मूल्यों अशक्त हो। लेकिन अगर आप एक निर्दिष्ट कर सकते हैं अपनी तालिका में वैकल्पिक मूल्य। [00:58:26] ठीक है, का चयन करें, तो यह है हो रही का सिर्फ एक रास्ता एक मेज से विशिष्ट डेटा पर आप चाहते हैं कि कुछ पहचानकर्ता। मेज, जहां से तो चुनिंदा स्टार कर्नल, कुछ बस का अर्थ है बराबर होती है मुझे जुड़े सभी डेटा दे जहां इस विशिष्ट स्तंभ सच है। तो इस मामले में स्टार जाएगा ठीक है, आप के लिए पूरी पंक्ति वापसी? [00:58:49] और फिर, इस मामले में, से स्टार का चयन तालिका बस आप संपूर्ण तालिका देता है। और फिर, जाहिर है यह बस नष्ट तालिका से पंक्ति को हटाता है। तो टेबल से हटा सकते हैं, जो कुछ तालिका हम कर रहे हैं जहां कुछ विशिष्ट, संदर्भित पहचानकर्ता या कुछ शर्त सही है। हाँ? [00:59:07] दर्शक: प्रश्न। क्यों आप डबल का उपयोग कर रहे हैं उद्धरण, और आप चाहे डबल उद्धरण या एकल करना उद्धरण, यह एक फर्क पड़ता है? [00:59:13] एलिसन: डबल उद्धरण या एकल उद्धरण एसक्यूएल में कोई फर्क नहीं पड़ता। मुझे लगता है मैं एक और सवाल देखा सोचा। हाँ? [00:59:20] दर्शक: यह क्या प्रभावित नहीं करता है क्वेरी से बच जाता है? [00:59:25] एलिसन: रोब? [00:59:27] रोब: आप से क्या मतलब है क्वेरी से बच गए? [00:59:31] दर्शक: किसी को है, तो एक फार्म में ही प्रश्न of-- [00:59:36] रोब: किसी के लिए गए थे में एक भी बोली डाल दिया, तो जब तक आप sanitizing रहे हैं अपने इनपुट, तो यह कोई फर्क नहीं पड़ता। लेकिन आप एक ही उपयोग कर रहे हैं बोली और आप गलत कर रहे हैं आपकी जानकारी के भागने, तो हाँ, वे की जरूरत है तोड़ने के क्रम में एक भी बोली डाल करने के लिए अपने कोड। आप डबल उद्धरण का उपयोग करते हैं, वे एक डबल खड़ा करने की जरूरत अपने कोड को तोड़ने के लिए बोली। लेकिन जब तक आप चीजों से बचने के रूप में सही तरीके से, यह बात नहीं है। यह सिर्फ अनुवाद किया जा रहा है वैसे भी सही प्रतीक करने के लिए। [00:59:59] दर्शक: भागने का क्या मतलब है? एलिसन: ठीक है, की तरह sanitizing और भागने। हम हैं कि परीक्षा, महान xkcd हास्य तुम्हारे पास है, जहां वे अपने आप को रोकना है कि, oh-- रोब: यह पिछली स्लाइड है। एलिसन: यह वास्तव में, पिछले स्लाइड है? हे भगवान। वहाँ हम सही, जाओ। ठीक है, तो बुनियादी तौर पर, आप इंजेक्षन कर सकते हैं इस एसक्यूएल क्वेरी में कुछ जहां यह अपने ब्रेक कोड, या दाऊद से पता चला है के रूप में कक्षा में, हम कुछ ही है, तो बोली 1 1 के बराबर होती है और हमारे कोड में अगर, हम तो बस सीधे उस में कॉपी, और हम एक न खत्म होने वाली एकल बोली है, क्या होता है जब हम मिल रहा है कुछ अभिव्यक्ति है कि सच करने के लिए मूल्यांकन कि करेंगे कोई हमारे डेटाबेस में प्रवेश और डेटा मिलता है कि हम उन्हें पाने के लिए नहीं करना चाहती। तो आदानों sanitizing सिर्फ यकीन है कि बनाने का मतलब हम इन से बचने कर रहे हैं वर्ण और उन्हें designating घर का काम नहीं है और चीजों के रूप में कि अनुमति दी जानी चाहिए सचमुच लिया जा करने के लिए हमारे एसक्यूएल बयान के रूप में। [01:01:04] इतनी बड़ी बात यह है कि हमने कहा है कि तुम लोगों को उपयोग किया जाना चाहिए कि एचटीएमएल विशेष वर्ण थे, जो कुछ है आप पर एक नज़र रखना चाहते हो सकता है। ठीक है, हटा दें। डेटा प्रकार, यह सब ऑनलाइन हो जाएगा। हम 15 मिनट के लिए छोड़ दिया है के बाद से, मैं कर रहा हूँ सिर्फ सही इस के माध्यम से जाना जा रहा है। PHP और एसक्यूएल, मूल रूप से यह है बस हम एक क्वेरी समारोह था कि के खिलाफ की रक्षा में मदद की इन दुर्भावनापूर्ण हमले। इसलिए जब भी आप का उपयोग क्वेरी, हमें यकीन है कि बना रहे थे चीजें हैं जो साफ और whatnot थे। [01:01:36] MVC के लिए, बस एक डिजाइन प्रतिमान है इसलिए मॉडल, देखें, नियंत्रक। यह चीजें रखने के लिए सिर्फ एक रास्ता है अच्छा है और उसी तरह से अलग हो जाते हैं हम कारक के लिए करते हैं कि कार्यों में बाहर कोड। यह सिर्फ एक वेब डिजाइन ढांचा है कि आप एक ही बात करने की अनुमति देता है। मैं इस छोड़ जा रहा हूँ। [01:01:54] यह कुछ ऐसा है कि मैं साथ सुपर आराम होगा। यह वहाँ एक बड़ा सा तालिका है। यह आप समारोह देता है मॉडल का उदाहरण है। मैं सिर्फ इस माध्यम से मैं क्योंकि जा रहा हूँ वास्तव में डेविन बात करने में सक्षम होना चाहता हूँ। अगर आप किसी भी प्रश्न हैं, संकोच न करें। मैं यहाँ के बाद हो जाएगा। बस मुझसे बात आओ। उस के साथ, हम http स्थितियां है। और डेविन के फटने वाला 15 मिनट में इस के माध्यम से। इस महान होने जा रहा है। [01:02:17] Davin: ठीक है। उह, अपनी माइक? हाँ। सॉरी। एलिसन: जिस तरह से तैयार किया जाना है। Davin: नहीं, मैं तैयार हूँ। मैं तैयार हूं। चलो यह करते हैं। यह तैयार है। ठीक है। सॉरी। मैं खुद पर कॉफी गिरा दिया। मैं अधिक रहा हूँ अगर मुझे नहीं पता मैं मूर्ख है कि देखो परेशान, या मैं अब और कॉफी की जरूरत नहीं है कि। वैसे भी, सिर्फ एक त्वरित घोषणा चादर के बारे में तुम लोगों को है। तो तुम लोग इस चादर नहीं है प्रश्नोत्तरी पर क्या सरकारी। इस प्रश्नोत्तरी पर क्या सरकारी है। इसके अलावा, वेबसाइट पर, हम बता आप, ठीक है, इस प्रश्नोत्तरी पर होगा। थोड़ा धोखा शीट में तो आप सरकारी नहीं है। और उस पर गलती कर रहे हैं। तो सबसे अच्छा बस आँख बंद करके इसे उपयोग करने के लिए नहीं। तो हाँ, वह है कि। तो चलो इस असली जल्दी में मिलता है। [01:03:05] तो HTTP के स्थितियों। तो क्या होता है जब वेबसाइट, सब कुछ ठीक है। सब कुछ ठीक है। सब कुछ करने के लिए वापस आता है क्या आप इसे करने के लिए जिस तरह से करना चाहते हैं। आप एक 200 ठीक मिलता है। 301, जहां हम 301 से पहले कि देखा है? क्या हो रहा है, रुको? सॉरी। हम सुरक्षा के दौरान मैं टिन व्याख्यान देखा। यदि ऐसा है तो इसलिए सुरक्षा के दौरान, डेविड में टाइप http और फिर, cs50.net करने के लिए जाने की कोशिश की आप 301 चले गए देखने के लिए जा रहे हैं। क्यूँ? यह रीडायरेक्ट करने के लिए जा रहा है क्योंकि हमारे HTTPS के लिए स्वचालित रूप से आप। [01:03:35] तो 301 सिर्फ यह है, ले जाया गया मूल रूप से एक पुनर्निर्देशन। और अगर आप इसे इस तरह के बारे में सोच सकते हैं। दो के साथ शुरू करते हैं कि स्थितियों में से कोई, उन सब कुछ ठीक है, ठीक है, की तरह हैं। शुरू कि स्थितियों में से कोई भी 3 के साथ, उन पुर्ननिर्देशन हैं। 4 के साथ शुरू करते हैं कि स्थितियों, इसका मतलब है कि ग्राहक त्रुटि किसी तरह का नहीं है। 5 के साथ शुरू है कि स्थितियों, सर्वर है कि त्रुटि के कुछ प्रकार है। तो आप किस तरह का ब्रेक-अप की तरह है कि स्थितियां। तो 304 में तो, संशोधित नहीं नहीं आपके server.c पी-सेट, तो आप कहते हैं कि भरी हुई cat.html। सब कुछ वापस आता है आप 200s, ठीक है, महान मिलता है। [01:04:03] मान लीजिए कि आप यह ताजा कहते हैं। खैर, कि अंदर cat.html, आप एक जेपीईजी है। खैर, कि जेपीईजी नहीं है जा रहा पुनः लोड करने के लिए। आप एक और पोस्ट करने के लिए नहीं जा रहे हैं सर्वर से अनुरोध प्राप्त, और फिर वापस है कि सभी जानकारी मिलती है। यह सिर्फ इतना है कि छवि है be-- जा रहा है जा रहा आपकी मशीन पर कैश किया जाना है। और इतना है कि छवि एक 304 किया जाएगा। तो इसे संशोधित नहीं किया गया है। आप तो बाहर बंद करते हैं, स्पष्ट कुकीज़, और फिर ताज़ा करें और उस पृष्ठ लोड करने की कोशिश फिर, आप 200s को देखने के लिए जा रहे हैं। आपको लगता है कि 304 को देखने के लिए नहीं जा रहे हैं। [01:04:28] 400, बुरा अनुरोध, असली जल्दी, अगर आप की तरह एक भेजने के लिए जा रहे थे सर्वर से JSON वस्तु और अपने JSON वस्तु, गलत था आप ऐसा कुछ देखेंगे। 403, मना किया। जब आप एक वर्जित देखना होगा? शायद शायद? दर्शक: हमें। Davin: chmod, हाँ। तो आप सेट नहीं किया है सही ढंग से अनुमतियाँ। 404 नहीं मिला। यह बस नहीं है। आप गलत URL में टाइप इसलिए यदि। 500, आंतरिक सर्वर त्रुटि, सर्वर शायद ठीक से कॉन्फ़िगर नहीं किया गया था। अपने अंत पर कुछ नहीं है, लेकिन सर्वर साइड पर कुछ और। और 503? लोगों का एक बहुत कुछ देखा पिछले पी-सेट में 503s। जब कि क्या होगा? मैं फुसफुसाते हुए सुना। [01:05:05] दर्शक: जब गूगल आप एक रोबोट रहे हैं का फैसला किया। Davin: हाँ, जब गूगल का फैसला करता है क्या आप 503s मिलता है, एक रोबोट रहे हैं। तो यह है कि एक अधिभार है। आप सर्वर से अनुरोध किया है, तो बहुत ज्यादा, यह आमतौर पर अस्थायी है। और आप में से ज्यादातर यह देखा। तो अगर आप 503 देखा। आप एक छोटे से ले सकता है तोड़, तो 503s, दूर चला गया और सब कुछ ठीक था। [01:05:20] Gabe: असली जल्दी, तुम लोग जब मिलता है शायद में 500 यह पिछले समस्या सेट? हाँ? [01:05:27] दर्शक: आम तौर पर अगर सर्वर खो एक फ़ाइल है या [अश्राव्य] उनके मशीन [अश्राव्य]। [01:05:34] Gabe: तो यह एक विन्यास हो सकता है आपके सर्वर पर अपने PHP में मुद्दा। लेकिन यह सिर्फ कुछ हो सकता है अपनी भूल गया कि एक अर्धविराम की तरह। आप PHP टाइप कर रहे हैं, कुछ ग़लत सिंटैक्स आपको लगता है कि ऐसा कुछ हो सकता है। ठीक है? [01:05:46] Davin: कूल। तुम मुझे AJAX का जब तक अभी तक ऐसा करने के लिए करना चाहते हैं? [01:05:51] Gabe: [अश्राव्य]। Davin: ठीक है। तो डोम क्या है? डोम क्या अर्थ होता है? [01:05:55] दर्शक: दस्तावेज़ ऑब्जेक्ट मॉडल। Davin: अच्छा। और क्यों हम इसे पसंद करते हैं? बहुत बढ़िया। ठीक है, यह तो बस का उपयोग करने के लिए हमें की अनुमति देता है एचटीएमएल, बहुत जल्दी से हमारे पेज का उपयोग। क्यूँ? हम इलाज कर रहे हैं क्योंकि हमारे पेज, हमारे एचटीएमएल टैग का इलाज, इलाज के लिए सब कुछ के रूप में यदि वे वस्तुओं रहे हैं। वे कर रहे हैं जैसे हम उन्हें इलाज कर रहे हैं वस्तुओं, तो हम क्या कर सकते हैं? खैर, हम उन पर कार्य कॉल कर सकते हैं। और ऐसा क्यों महत्वपूर्ण है? खैर, हम प्रयोग करने जा रहे हैं, क्योंकि जावास्क्रिप्ट हमारे HTML अद्यतन करने के लिए, इन वस्तुओं का अद्यतन करें। हम वस्तुओं की तरह उन्हें इलाज तो, अगर हम तो उन पर कार्य कॉल कर सकते हैं। मैं यह एक छोटी सी में शामिल होने के लिए जा रहा हूँ मैं जावास्क्रिप्ट में जाने के लिए जब अधिक है, लेकिन आप सभी की तरह देखा है document.getElementById। तो दस्तावेज़ अपनी है तत्व, आईडी के आधार पर तत्व मिल ताकि आप को देखने के लिए जा रहे हैं एक एचटीएमएल टैग में कुछ पहचान पत्र के लिए। और फिर, आप कर सकते हैं कि कुछ और। उदाहरण के लिए, document.body की तरह, तो आप बच्चे को संलग्न कर सकते हैं। तो क्या आप दस्तावेज़ को खोजने के लिए जा रहे हैं। आप दस्तावेज है। आप शरीर को खोजने के लिए जा रहे हैं। आप शरीर पाया। और फिर, आप करने जा रहे हैं इस पर कुछ समारोह कॉल। तो बच्चे को संलग्न हैं, और आप पीछे कर सकते हैं अपने शरीर के अंदर अंत पर कुछ HTML। तो बुनियादी तौर पर, अगर आप अभी कर रहे हैं एक वस्तु की तरह इसे इलाज। आप HTML इलाज कर रहे हैं एक वस्तु की तरह टैग। और यह यह बहुत आसान बना देता है और जल्दी उन के माध्यम से जाने के लिए। लेकिन यह भी आप की अनुमति देता है उन पर कार्य कॉल करने के लिए ताकि आप हेरफेर कर सकते हैं और तत्वों बदल जाते हैं। [01:07:04] Gabe: यह देखते हुए, क्यों ऐसे जावास्क्रिप्ट है एक अच्छी भाषा एचटीएमएल के साथ बातचीत करने के लिए? लोगों को चुन रहे थे जब बाधाओं, कर रहे हैं ब्राउज़र के लिए भाषा, ग्राहक पक्ष के लिए, जावास्क्रिप्ट, वास्तव में अच्छा है यह वस्तुओं से निपटने में वास्तव में अच्छा है। और वस्तुओं की तरह की तरह कर रहे हैं एचटीएमएल में दिखाई देने वाली वस्तुओं, इसलिए यह जावास्क्रिप्ट के लिए बहुत आसान है से निपटने के उस तरह करना है। Davin: अच्छा। यहाँ तो सिर्फ एक उदाहरण है। इसलिए मुझे लगता है, पिछले साल की प्रश्नोत्तरी पर लगता है या हो सकता है दो साल पहले, हम एक पेड़ बनाने के लिए कहा। तो यह है कि आप क्या चाहते हैं कि वास्तव में क्या है। तो अगर आप दस्तावेज़ के साथ शुरू करते हैं। और फिर आप मूल रूप से बस टैग को देखो। आप, हम देखते हैं तो अगर एक एचटीएमएल टैग के साथ शुरू करते हैं। और फिर, आप कैसे के बारे में सुराग के लिए मिल खरोज पर आधारित यह करते हैं। शाखाओं के तो सिर तरह बंद। सिर के अंदर, हमारे पास खिताब के लिए एक और टैग। तो फिर, हम एक शीर्षक टैग है। और उस के अंदर है, हम कुछ स्ट्रिंग है। और इसलिए हम प्रतिनिधित्व एक सर्कल में एक स्ट्रिंग। और सभी टैग वर्गों में हैं। [01:07:54] और अगर तुम देखो, हम अगर एक पेड़ के रूप में इस के बारे में सोच, और चलो कि HTML है हम कहते हैं एक माता पिता, फिर सिर और शरीर भाई बहन के होने जा रहे हैं। वे दोनों हो जा रहे हैं कि माता-पिता के बच्चों को। वे कर रहे हैं, क्योंकि तो दोनों भाई बहन, वे कर रहे हैं एक तरह से अगले करने के लिए होने जा रहा हमारे पेड़ मॉडल में एक दूसरे को। और फिर, आप मूल रूप से सटीक एक ही बात करते हैं। इतना मुश्किल है, लेकिन हम नहीं कहा प्रश्नोत्तरी पर पहले इस तरह के सवाल। Gabe: किसी करता है अब तक सवाल है? यह अच्छा है? Davin: कूल। जावास्क्रिप्ट, ठीक है, अच्छी चीजें। इसलिए जावास्क्रिप्ट, जावास्क्रिप्ट क्या है? खैर, जावास्क्रिप्ट यह है is-- जटिल है, लेकिन इन मुख्य आकर्षण के कुछ कर रहे हैं कि आप ध्यान में रखना चाहिए। सबसे पहले, यह शिथिल टाइप किया है। इसका क्या मतलब है? तो पीएचपी क्या हो रहा है, हाँ was--? [01:08:35] दर्शक: आप स्पष्ट रूप से करने की जरूरत नहीं यह है चर की किस प्रकार राज्य। Davin: बिल्कुल सही। तो वह आप के लिए नहीं है कहा स्पष्ट रूप से चर के प्रकार राज्य है। यह बिल्कुल सही है। मैं पूर्णांक था तो अगर सी में, मैं 50 के बराबर होती है, फिर PHP में, यह सिर्फ इस तरह है, $ मैं, 50 के बराबर होती है। फिर जावास्क्रिप्ट में, कॉल क्या होगा? वार, है ना? वर मैं 50 के बराबर होती है जैसे कि यह होगा। लेकिन अगर आप होना जरूरी नहीं है जैसे, ठीक है, यह एक पूर्णांक है। ठीक है, यह एक स्ट्रिंग है। कोई ज़रूरत नहीं है कि क्या करना है। यह एक व्याख्या की भाषा है। तो इसका क्या मतलब है? [01:09:04] दर्शक: संकलित नहीं। [01:09:06] Davin: क्या मतलब संकलित नहीं करता है? हाँ? [01:09:11] दर्शक: तुम नहीं है कोड का पुनर्गठन करने के लिए के लिए यह तैयार हो जाओ कंप्यूटर इसे चलाने के लिए। यह बस के समय में ले लिया है निष्पादन और कंप्यूटर [अश्राव्य]। Davin: हाँ, तो यह जा रहा है एक दुभाषिया के माध्यम से गुजरती हैं। लेकिन आप बिल्कुल ठीक कह रहे हैं। तो तुम कभी नहीं जा रहे हैं ठीक है, यह संकलन करने के लिए? जब आप क्या कर रहे थे अपने PHP और जावा स्क्रिप्ट कोड, आप संकलन कभी नहीं कहा जाता। आप ऐसा कुछ कहा कभी नहीं बनाने के लिए या ऐसा कुछ। यह व्याख्या की है वह है। तो यह ब्राउज़र के माध्यम से चला जाता है हर बार, यह एक दुभाषिया के माध्यम से चला जाता है। और कहा कि यह व्याख्या करने के लिए जा रहा है सिर्फ सही दूर आप के लिए वास्तविक समय में। तो कुछ सकारात्मक और नकारात्मक क्या कर रहे हैं एक व्याख्या की भाषा होने के लिए और एक संकलित भाषा कर रहे हैं? तो क्या हो रहा है, हाँ compiling--? [01:09:50] दर्शक: व्याख्या धीमी है। Davin: क्या मायने में? [01:09:57] दर्शक: आप के बाद संकलन, तुम नहीं है निष्पादित करने के लिए कोई अतिरिक्त उपाय करने के यह इस [अश्राव्य] जबकि। [01:10:04] Davin: ठीक है, बिल्कुल सही। तो तुम है क्या कहा मूल रूप से यह है कि संकलन, आप संकलन है, जब आप एक है अग्रिम लागत का बहुत कुछ है, है ना? आप यह संकलन करने के लिए जा रहे हैं। लेकिन अगर आप यह संकलन के बाद, संकलक यह अनुकूलन करने के लिए जा रहा है। यह तेजी से होने जा रहा है। यह मूल रूप से करने जा रहा है यह हो सकता है के रूप में के रूप में तेजी से हो। , आप कभी नहीं की व्याख्या के साथ कि अग्रिम लागत है। दरअसल, यह थोड़ा धीमी होने जा रहा है आप यह व्याख्या हर एक बार। और आप के लिए करने जा रहे हैं यह हर बार की व्याख्या। तो यह होने के बजाय एक समय लागत, अब आप कर रहे हैं यह व्याख्या करने के लिए किया जा रहा हर बार पृष्ठ renders। [01:10:29] तो दुभाषियों क्योंकि अच्छे हैं आप यह संकलन के लिए नहीं है, लेकिन वे कहते हैं कि हर में बुरा कर रहे हैं यह बात है, पेज लोड समय करने के लिए किया जा रहा इस जावास्क्रिप्ट व्याख्या। और यह थोड़ा धीरे चलाने के लिए जा रहा है आप यह संकलन करने के लिए थे की तुलना में। तुम, ओह communicate-- प्रतीक्षा करने के लिए अनुमति देता है। हेरफेर किया सामग्री और दिखावट। हम सिर्फ उस बारे में बात की थी। यह डोम का उपयोग करता है। AJAX, हम में मिल जाएगा एक छोटा सा में AJAX का। और फिर, यह ग्राहक की ओर है। तो पीएचपी सर्वर साइड है। जावास्क्रिप्ट ग्राहक की ओर है। उस के लिए सकारात्मक रहे हैं? यह कहते हैं। यह सही है, तेजी से हो रहा है? यह तेजी से है to-- आपके पास नहीं है। आप से संवाद करने की जरूरत नहीं है कुछ अन्य उपकरण के साथ। आप बस पर हैं, तो आपके ग्राहक, आप कभी नहीं कर रहे हैं जाने के लिए किया जा रहा है और सर्वर पर क्या देखना और फिर वापस रिपोर्ट या ऐसा कुछ। तो ग्राहक पक्ष के लिए जाता है एक छोटा सा तेजी से हो। [01:11:15] Gabe: हाँ, लेकिन इस पीएचपी है मतलब यह नहीं है जावास्क्रिप्ट की तुलना में तेजी या इस तरह का कुछ भी। वे उसी में एक तरह से चलाने के लिए गति वे दोनों कर रहे हैं क्योंकि व्याख्या की भाषा। धीमी है कि बात यहाँ अनुरोध है। तो क्या आप वास्तव में जा रहे हैं ब्राजील के लिए सब कुछ खत्म रास्ता कुछ जानकारी प्राप्त करने के लिए कि वहाँ रहता है। लेकिन PHP और जावास्क्रिप्ट, वे एक तरह से एक ही गति में चला रहे हैं। ऐसा नहीं है कि एक है अन्य की तुलना में तेजी से। यहां यह भी, चाल सवाल। इसलिए जावास्क्रिप्ट हो जाता है कभी नहीं सही है या गलत मशीन कोड,? [01:11:47] दर्शक: झूठा। Gabe: गलत। यह मशीन बन गया है कोड मशीन कोड है क्योंकि केवल बात यह है कि मशीन को समझता है। यह संकलित नहीं है, भले ही यह अभी भी मशीन कोड हो जाता है दुभाषिया सिर्फ इसलिए है क्योंकि लाइन से लाइन में चला जाता है कि एक कार्यक्रम और में है कि लाइन बदल देती है कुछ कंप्यूटर समझता है। ठीक है? बिंदास। [01:12:08] Davin: यहाँ सिर्फ एक बहुत ही बुनियादी है दुनिया जावास्क्रिप्ट कार्यक्रम हैलो। आप यह देखा है if-- तो मैं नहीं जानता। लेकिन तुम बस यहाँ एचटीएमएल है। और के बजाय वास्तव में डाल स्क्रिप्ट टैग में जावास्क्रिप्ट, ताकि आप सामान्य रूप से सिर में डाल दिया था। आप स्क्रिप्ट टैग नहीं है। तुम वहाँ ड्रॉप। हम यहाँ किया है हम सब in-- लिंक किया गया है इसलिए हम एक जावास्क्रिप्ट फ़ाइल में लिंक किया है इस तरह। और तुम यह सब सही किया है? तो जब आप jQuery और उपयोग कर रहे थे पिछले पी-सेट में underscore.js, आप में कोड के टन की जरूरत नहीं है अपनी स्क्रिप्ट टैग, अपने सिर में ऊपर। तुम्हें पता है कि क्या करना है, लेकिन इसके बजाय सकता है आप बस में लिंक कर रहे हैं। और अगर आप में यह लिंक कर रहे हैं बस आप सीएसएस के साथ क्या पसंद है। यह सिर्फ बनाता है तो यह आसान तो पढ़ने के लिए 1000 लाइनों लंबे समय की तरह नहीं है अपने कोड कार्यों के टन के साथ कि आप का उपयोग नहीं किया जा सकता है। [01:12:52] इसके बजाय, आप बस में लिंक। यह यह compartmentalizes। यह कुछ हेडर फाइल लिखने की तरह है, और तो सी में है कि हेडर फाइल सहित बस इसे इस तरह के बारे में सोचो। तो यह क्या करता है? खैर, यह चला जा रहा है। यह सचेत करने के लिए जा रहा है। इसलिए यदि आप एक छोटे से प्राप्त करने के लिए जा रहे हैं कहा जाता नमस्ते विश्व पॉप अप। त्वरित सवाल है, सिर्फ मानसिक स्वास्थ्य की जांच, इसलिए यदि आप शरीर में यहाँ देखें यहां शरीर, एचटीएमएल का कहना है। क्या पहले आता है? मैं यहाँ शरीर, एचटीएमएल देखते हैं, या मैं पहली बार चेतावनी देखते हैं? [01:13:19] दर्शक: चेतावनी। [01:13:20] Davin: ठीक है। उन्होंने चेतावनी कहते हैं। क्यूँ? [01:13:22] दर्शक: तुम क्योंकि ऊपर से नीचे तक जाने के लिए। [01:13:24] Davin: हाँ। परफेक्ट। तो वह आप को ऊपर से जाने का कहना है, बिल्कुल सही है, जो नीचे। आप ऊपर से नीचे तक जाने के लिए जा रहे हैं। और जावास्क्रिप्ट, jQuery में, आप एक है जैसे ऑनलोड, या तैयार है कि समारोह, और कहा कि ठीक है, जब तक इंतजार कहते हैं, इस HTML के सभी भरी हुई है। और फिर, जावास्क्रिप्ट कहते हैं। हम यहाँ, कि जरूरत नहीं है क्योंकि होने जा रहा है कि बहुत पहले की बात यह ऊपर से नीचे तक जाने के लिए जा रहा है। ऐसा लगता है कि जे एस मारा जा रहा है कहते हैं, यह सचेत करने के लिए जा रहा है। उसके बाद आप ठीक क्लिक करें, उस चेतावनी दूर चला जाता है। तो फिर यह दिखाने के लिए जा रहा है आप यहाँ शरीर एचटीएमएल। अच्छा लगा। [01:13:54] ठीक है, तो बस जल्दी असली, लेखन जावास्क्रिप्ट में सुपर जल्दी है। घोषित करने के लिए आदेश में एक चर, वर नाम। तो सी में, क्या आप हैं, पूर्णांक मैं है यह है प्रकार की किस तरह की घोषणा करने के लिए। पीएचपी, $। जावास्क्रिप्ट, वर। हम इस बारे में बात की थी। सब ठीक है, चलो चलते हैं। [01:14:11] लूप्स, एक ही बात है। वही बात। समारोह घोषणाओं, इसलिए सिर्फ तुम सी में देखा है की तरह अलग ही बात है तो जब है आप अन्य प्रोग्रामिंग भाषाओं के लिए मिलता है, जैसे आप 51 अगले सेमेस्टर जब ले और तुम, OCaml के साथ कर रहे हैं आप गुमनाम कार्यों के साथ सौदा कर सकते हैं। तो यह है कि आप यहाँ क्या ठीक है। तो तुम योग में डाल करना चाहते हैं, योग मूल्य में किसी तरह का। लेकिन आप केवल यह एक समय क्या कर रही हो सकता है। आप समारोह कॉल करने के लिए नहीं करना चाहते तो योग, यह एक समारोह घोषणा दे। इसके बजाय, आप बस इसे इस्तेमाल एक गुमनाम समारोह के रूप में। और आप यह एक बहुत कुछ देखा है। आप का एक उदाहरण देखेंगे एक जोड़े स्लाइड्स में इस। हाँ, हम देखेंगे। Gabe: अच्छा सवाल है। आप उपयोग करना चाहते हो सकता है जब यहाँ एक गुमनाम समारोह? असल में, जब आप कुछ करना चाहते हैं, एक घटना की तरह है, ऐसा करने के लिए। तो चूहा है जब क्लिक किया है, उदाहरण के लिए, यदि आप कुछ समारोह के नाम से जाना चाहते हैं। तो आप इस घटना को पारित हैंडलर, आप इस घटना के लिए पारित एक तरह से, समारोह है कि आप के नाम से जाना चाहते हैं। और तुम क्या गुजर रहे हैं अंत में, की तरह है दिन की, बस एक संकेतक के लिए कार्य करने के लिए है कि शिक्षा,। तो यह आप गुजर रहे हैं नहीं है पूरे कोड, बस के रूप में समारोह के लिए एक सूचक। और फिर, जब किसी को क्लिक करता है माउस, तो उस समारोह बुलाया जाता है। [01:15:17] Davin: सारणियों, तो आप ऐसा एक सरणी घोषणा की है। फिर, एक सरणी में बातें करना। असली जल्दी, यह क्या बाहर प्रिंट होगा? तीसरा तत्व क्या होगा? [01:15:31] दर्शक: "जे एस"। [01:15:32] Davin: ठीक है, यह "जे एस।" होगा रुको, वापस जाओ। लंबाई क्या है? [01:15:37] दर्शक: तीन। Davin: तीन, है ना? वास्तव में आप क्या सोचते हैं। ठीक है, अब जाओ। Arrays, आप उन चीजों को जोड़ सकते हैं। तो अगर आप बाहर जा सकते हैं उनकी प्रारंभिक सीमा। बस कुछ मन में रखने के लिए। पीएचपी, जावास्क्रिप्ट, वे एक छोटे से कर रहे हैं चीजों के मामले में थोड़ा और अधिक क्षमाशील ऐसे ही। वस्तुओं, बहुत बहुत पसंद है structs सी में, बहुत ज्यादा PHP में साहचर्य arrays की तरह। आप इस सब के साथ अनुभव किया है। आप JSON के गुजर रहे हैं जब से JSON, तो आगे और पीछे पी-सेट आठ में, कि अपने उद्देश्य है। [01:16:03] तो हाँ, उदाहरण के लिए, वास्तविक त्वरित उदाहरण। यहाँ एक वस्तु है। आप इस संदर्भ रास्ता वस्तु, जल्दी तो बस असली, मैं जानना चाहता था हम कहते हैं बाहर, ठीक है, बेशक क्या है? और तो यहां वस्तु नाम CS50 है। और फिर मैं एक साहचर्य था सरणी, मुझे लगता है कि कैसे करना होगा? मैं सही, एक कुंजी का उपयोग होगा? इसलिए मैं सरणी का नाम है। मैं, वर्ग, उद्धरण, कुंजी है अंत उद्धरण, अंत ब्रैकेट, और कहा कि उस संदर्भ जाएगा मेरे साहचर्य सरणी के अंदर तत्व। मैं कैसे संदर्भित करते हैं मेरा उद्देश्य के अंदर कोर्स? किसी को पता है? [01:16:39] दर्शक: [अश्राव्य]। [01:16:40] Davin: क्या चल रहा है? दर्शक: CS50.course। Davin: ठीक है, हाँ। तो CS50.course। तो जिस तरह से आप चीजों को संदर्भित एक JSON वस्तु के अंदर एक बिंदु के साथ है। [01:16:48] दर्शक: तुम भी सरणी सिंटैक्स का उपयोग कर सकते हैं। [01:16:53] Davin: ठीक है, ठीक है। [01:16:54] Gabe: तुम भी, CS50 ब्रैकेट उपयोग कर सकते हैं उद्धरण चिह्नों की तरह स्ट्रिंग,। दर्शक: मैं यह PHP के समान लगता है। Gabe: यह एक ही बात है। Davin: ठीक है! लेकिन अगर आप यह अन्य स्थानों पर देखेंगे। हाँ, तो रख रहा है। यह मैं अभी क्या कहा है। एक जावास्क्रिप्ट jQuery के उदाहरण में तो। तो यह मेरा डोम, सही है? असली जल्दी है, तो मैं एक सिर, नमस्ते दुनिया, शरीर। मैं एक बटन है। यह ", मुझे धक्का कहते हैं," इसलिए मैं इसे धक्का करना चाहते हैं। और मैं कुछ करना चाहते हैं क्लिक करते हैं। ठीक है, अगले। [01:17:31] ठीक है, तो यह मेरे लिए JavaScript है। तो jQuery का सिर्फ एक आसान है रास्ते जावास्क्रिप्ट लिखने के लिए। यह इसलिए है, और मैं दिखाने के लिए जा रहा हूँ आप अगले, jQuery के होने जा रहा है समान हैं। ताकि वे एक ही बातें करेंगे। बस jQuery का एक आसान सा हो जाता है। लोग इसे अधिक पसंद करते हैं। यह कार्यक्षमता की एक बहुत कुछ है। ताकि लोगों को jQuery का उपयोग करते हैं। आप सभी पिछले पी-सेट में jQuery का उपयोग किया जाता है। तो यह क्या करेंगे? क्या होगा इस JavaScript-- इसलिए इस जावास्क्रिप्ट सिर्फ सादा है। यह क्या करना होगा? यह क्या करेंगे? [01:18:03] तो सबसे पहले, आप विंडो ऑनलोड देखते हैं। अधिकार? इसलिए हम पहले कि नहीं देखा था। तो यह प्रतीक्षा करने के लिए जा रहा है पूरे खिड़की भार तक। तो यह तक इंतजार करने के लिए जा रहा है एचटीएमएल, सभी छवियों को लोड इससे पहले कि वह कुछ भी करता है। तो चलो हमारे डोम भरी हुई है कहते हैं। सब कुछ नहीं है। तो फिर क्या होने जा रहा है? हाँ? [01:18:19] दर्शक: बटन दिखाई देता है। [01:18:22] Davin: बटन वहाँ पहले से ही है। हाँ, तो वहां पहले से ही बटन की। लेकिन यह कहने के लिए जा रहा है ठीक है, मैं बटन क्लिक करते हैं, इसलिए बटन पहले से ही है वहाँ, कि एचटीएमएल टैग की तरह। रुको, असली जल्दी वापस जाओ। इस टैग को सही सही यहाँ है पहले से ही एक बटन होने जा रहा। एक बटन वहां पहले से ही है। लेकिन फिर, जावास्क्रिप्ट टैग, यहीं, यह ठीक है, मैं चाहता हूँ कहते हैं, आईडी के आधार पर तत्व प्राप्त करने के लिए, इसलिए खोज बटन बस ठीक है, मैं चाहता हूँ कहते हैं, उस बटन को इस चर मैप करने के लिए। तो यह है कि चर सिर्फ एक है उस बटन का उपयोग करने के लिए आसान तरीका है। मैं उस पर क्लिक करें और अगर मैं ठीक है, का कहना है बटन, मुझे लगता है कि तत्व क्लिक करते हैं तो, और इस तत्व को संदर्भित करता है बटन, मैं इसे क्लिक करते हैं, फिर मैं एक समारोह कॉल करना चाहते हैं। यहाँ उन गुमनाम से एक है हम के बारे में बात कर रहे थे काम करता है। [01:19:03] बस कुछ समारोह कॉल। उस समारोह के अंदर, मूल रूप से कुछ हम एक बहुत कुछ है, चेतावनी देखा है। आप खोज बटन पर क्लिक करें। यह मूल रूप से एक बटन किया जा रहा है। आप इसे क्लिक करें। आपको लगता है कि चेतावनी मिलता है। एक्स बाहर। यह बात है। हाँ? [01:19:16] दर्शक: तो तुम डाल अगर स्क्रिप्ट अपने एचटीएमएल में [अश्राव्य], स्क्रिप्ट टैग? [01:19:21] Davin: आप स्क्रिप्ट डाल सकते हैं सिर में टैग सीधे आप इस ऑनलोड किया है। यह आप एक क्लिक होना भी है। तो यह तक इंतजार करने के लिए जा रहा है तुम कुछ के लिए क्लिक करें। लेकिन ऑनलोड सुरक्षित करने के लिए बस है, बनाने के लिए अपने एचटीएमएल में यकीन है कि सब कुछ भार पहले से। हाँ? तुम कुछ कहना चाहते हैं? [01:19:40] Gabe: [अश्राव्य]। Davin: हाँ। [01:19:42] दर्शक: तो ऑनलोड टाल चर खोज बटन को परिभाषित बस document.getElementById कह कर खोज बटन डॉट [अश्राव्य]। [01:19:49] Davin: निश्चित रूप से, लेकिन फिर अपने स्ट्रिंग सिर्फ बड़ा हो जाता है। बिल्कुल सही है, तो यह सिर्फ करने के लिए है हाँ, आप के लिए यह आसान बनाते हैं। हाँ? [01:19:56] दर्शक: हम कहाँ था window.onload बना? या document.ready? [01:19:58] Davin: हाँ, वहाँ है। हाँ, मैं वहाँ जाँच की है। [01:20:02] Gabe: उनके बारे में परवाह नहीं करने के लिए। [01:20:03] Davin: ठीक है, तो मैं जा रहा हूँ वैसे भी आपको बताने के लिए। तो बुनियादी तौर पर, सिर्फ सामान्य रूप में है, इसलिए window.onload सभी को अपनी डोम तक इंतजार कर रहा है अपने एचटीएमएल, भार। यह आपकी छवियों को लोड तक इंतजार कर रहा है। यह सब कुछ भार तक इंतजार कर रहा है। document.ready, यह सिर्फ अपने डोम भार तक इंतजार कर रहा है। एचटीएमएल एक बार सब वहाँ है, एक बार अपने डोम है, वहाँ चल रहा शुरू होता है। यही फर्क सिर्फ इतना है। [01:20:23] Gabe: त्वरित विवेक यहाँ की जाँच करें। तो इस तरह के देखा जा सकता है कोड की एक पंक्ति की तरह है, है ना? यह window.onload क्योंकि है सामान का एक गुच्छा के बराबर होती है। जावास्क्रिप्ट पढ़ता है जब यह सच है या झूठी, समारोह मार डाला जाता है। झूठी। ठीक है? यहाँ क्या होता है, तो आप सिर्फ गुजर रहे हैं एक गुमनाम कार्यों के रूप में इस समारोह window.onload करने के लिए। और फिर जब यह जा रहा है वास्तव में मार डाला पाने के लिए? जब खिड़की भार। यह एक घटना है। तो यह है कि हम कर रहे हैं जूस टी बात है ठीक है, पहले के बारे में बात कर रही है? इसलिए घटना जब ऐसा होता है, समारोह होता है। Onclick साथ वही बात। [01:20:59] Davin: ठीक है, किसी ने ले लिया ताकि दूर document.ready। लेकिन इस सटीक same-- हो जाएगा दर्शक: डॉलर के हस्ताक्षर, कि एक document.ready है। यही कारण है कि एक शॉर्टकट है। [01:21:07] Davin: ओह, यह क्या है? ठीक है, तो इसका मतलब है document.ready, शॉर्टकट। लेकिन इस window.onload के रूप में ही है उस छोटे से अंतर के अलावा मैं तुम्हारे बारे में बताया। और यह jQuery का है। तो इस सटीक एक ही है इस जावास्क्रिप्ट है thing--। यह कुछ लोगों को यह सोचने के just-- है एक और अधिक हल्के वजन के रूप में, चिकना संस्करण कि कार्यक्षमता के बहुत सारे है कि आप शायद का उपयोग होगा। इसलिए इस सटीक एक ही बात करता है। [01:21:34] तो बातें तरह से बाहर बात करने के लिए। अन्य उदाहरण में तो, हम , document.getElementById था इसलिए हम इस लंबी था प्राप्त करने के लिए जा रहा है कि स्ट्रिंग यह जो कुछ भी आईडी के आधार पर तत्व। यह सही यहाँ इस कॉल के द्वारा बदल दिया है। तो तुम, डॉलर के हस्ताक्षर देखना तो आप बोली, हैशटैग देखते हैं। हैशटैग हमेशा के लिए एक चयनकर्ता है। यह ठीक है, यह एक आईडी के साथ नहीं है, कहते हैं। एक वर्ग के लिए चयनकर्ता क्या है? [01:21:56] दर्शक: डॉट। [01:21:57] Davin: डॉट, सही है। तुम सिर्फ करने के लिए जा रहे हैं एक टैग, यह क्या है का चयन करें? यह वास्तव में, बस टैग है। और आप के रूप में अच्छी तरह से, कि यहाँ इस्तेमाल कर सकते हैं। [01:22:05] Gabe: और टैग द्वारा, हम जैसे मतलब div के, उदाहरण के लिए, या सिर के लिए। [01:22:08] Davin: या शरीर या पी या ऐसा कुछ है, हाँ। यहाँ तो, ठीक है, बजाय कह document.getElementById, यह सिर्फ सटीक एक ही बात है। बस jQuery में, यह कम है। इसलिए यह आसान है। तो फिर, कोई और अधिक onclick, बस क्लिक करें। jQuery के समारोह, इस समारोह को बुलाओ। चेतावनी सटीक एक ही है। इसलिए यह एक छोटा सा है छोटे, या थोड़ा सा छोटे कद के, एक छोटे से bit-- लोगों को लगता है इसे लिखने के बाहर करने के लिए एक आसान सा है, आसान एक छोटा सा समझने के लिए। लेकिन इस jQuery का है। बहुत सारे लोग एक छोटे से मिलता है थोड़ा उलझन में है और चिंतित और वे ठीक है, jQuery का लगता है, जावास्क्रिप्ट तुलना में अलग है। मैं इन याद है दो अलग अलग चीजें हैं। यह। मैं यह अलग वाक्य रचना है, मतलब है। लेकिन जावास्क्रिप्ट है। यह सिर्फ एक मालूम होता है बेहतर संस्करण है कि करने के लिए आसान हो सकता है लोगों का उपयोग करने वाले को समझते हैं। Gabe: हाँ, होना करने के लिए ईमानदार, कि डॉलर के हस्ताक्षर आप jQuery में देखते हैं, सिर्फ है कि jQuery के परिभाषित करता है कि एक समारोह का नाम। यह कुछ खास नहीं है। , यह एक समारोह का सिर्फ नाम है सिर्फ तुम डॉलर के हस्ताक्षर को परिभाषित कर सकता पसंद है। [01:23:03] Davin: हाँ, तो इस बारे में बात की थी। कुछ उपयोगी बातें। मैं वापस पुराने क्विज़ को देख रहा था। पिछले कुछ क्विज़ में, वे है इस तरह से चीजों का इस्तेमाल करना पड़ा। तो document.ready, इसलिए यकीन है कि सब कुछ कर आप पहले से भरी हुई बातें कर रही शुरू करते हैं। एक आईडी का चयन करें, या चयन एक वर्ग है, यह सिर्फ था कुछ वर्ग, अंत बोली डॉट भाव हो। आप कर रहे हैं, इसलिए यदि भेजें एक फार्म और कॉल प्रस्तुत करने प्रपत्र के बाद इस समारोह में प्रस्तुत करें। मूल्य है, तो मैं एक रूप था हम कहते हैं प्रस्तुत है, एक उपयोगकर्ता नाम की तरह, एक ईमेल, व्हाटेवर। मैं एक पाठ बॉक्स था। इसलिए मुझे लगता है कि पाठ बॉक्स में टाइप कर रहा हूँ। ठीक है, तुम मूल्य प्राप्त करना चाहते हैं उस पाठ बॉक्स से बाहर, तुम डॉट वैल का उपयोग करें। और फिर, यहाँ नीचे, डॉट एचटीएमएल ही है दस्तावेज़ डॉट की तरह है getElementByID डॉट innerHTML। तो यह है कि वापस जाने के लिए जा रहा है आपको लगता है कि आईडी से एचटीएमएल। यहाँ, आप बस कुछ का उपयोग आईडी या जो कुछ भी डॉट एचटीएमएल। यही कारण है कि उस तत्व से HTML मिलेगा। तब आप उस बदलना चाहते थे, तो एचटीएमएल, आप इसे कुछ पारित कर सकते हैं। तो क्या आप फिर डॉट एचटीएमएल की तरह हो सकता है, और चाहते हैं अंदर, उद्धरण, नए HTML या कुछ और। [01:24:05] Gabe: ठीक है, AJAX के इतने। मैं वास्तव में समझने की पसंद AJAX का वास्तव में अच्छी तरह से। तो मैं तुम्हें करने के लिए लोग चाहते हैं वास्तव में अच्छी तरह से AJAX समझते हैं। यदि आप करते हैं, क्योंकि तुम बहुत ज्यादा जा रहे हैं सब कुछ समझने के लिए कि HTTP के साथ क्या करना है, पीएचपी, जावास्क्रिप्ट यह सब इसलिए क्योंकि AJAX में एक साथ आता है। AJAX एक भाषा नहीं है। AJAX एक तकनीक है। और यह विभिन्न उपकरणों के बहुत सारे उपयोग करता है। AJAX के लिए खड़ा है अतुल्यकालिक जावास्क्रिप्ट एक्सएमएल। तो विधि, भाषा, डेटा। [01:24:36] कि हम का उपयोग मुख्य भाषा तो AJAX में सब कुछ करने के लिए ट्रिगर और सब कुछ संभाल करने के लिए पर बाद में जावास्क्रिप्ट है। यह संबंधित है यही कारण है कि जावास्क्रिप्ट को बहुत करीब है। और फिर अतुल्यकालिक है हम ऐसा नहीं करते हैं, क्योंकि सभी को एक बार हम पेज लोड कर रहे हैं। इसका अर्थ है कि हम कर सकते हैं बात है समानांतर में तरह की बातें करते हैं। पीछे मुख्य विचार AJAX का है कि आप चाहते है यह कुछ विशेष जानकारी प्राप्त करने के लिए। उदाहरण के लिए, जब आप नए टाइप कर रहे हैं यदि आप एक उपयोगकर्ता नाम रजिस्टर जब उपयोगकर्ता नाम, अपने उपयोगकर्ता नाम abc123 है। और फिर, के अंत में फार्म, भेजें पर क्लिक करने के लिए है। और यह सर्वर के लिए जाना पड़ा और फिर, डेटाबेस में अगर जांच abc123 वहाँ पहले से ही है। यह पहले से ही वहाँ है और अगर यह कहते हैं, पहले से ही डेटाबेस में उपयोगकर्ता नाम। और वे आप को भरने के लिए है पूरे फॉर्म को फिर से। और यह वास्तव में, वास्तव में बुरा था। [01:25:23] और फिर लोगों का कहना है, ठीक है, हम क्यों नहीं कर सकता बस की जांच करने के लिए एक छोटा सा HTTP अनुरोध करते हैं इस उपयोगकर्ता डेटाबेस में है देखने के लिए उपयोगकर्ता के लिए किया था पहले पूरे फार्म जमा? तो उदाहरण के लिए, जब उपयोगकर्ता, abc123 टाइपिंग खत्म चलो बस सर्वर एक छोटे से चलते हैं बिट और सिर्फ एक सही है या गलत मिलता है देखने के लिए अगर सर्वर से कि एक वैध उपयोगकर्ता नाम या नहीं है। ठीक है, तो यह है कि मुख्य में से एक है आजकल अभी भी AJAX का उपयोग करता है। [01:25:49] Davin: तो में, जल्दी असली jQuery में एक AJAX फोन, आप आपको लगता है कि सूचित कर सकते हैं यह तुल्यकालिक होना चाहते हैं। यदि आप ऐसा नहीं करना चाहिए। लेकिन अगर आप ऐसा कर सकते हैं। आप किया है कि, अगर और क्या होगा? खैर, उदाहरण के लिए, आप जब कर रहे हैं खबर है या जो कुछ भी हो रही है, अपने वेब ब्राउज़र को अभी इंतजार करने जा रहा है कि पूरे कॉल पूर्ण होने तक बजाय दे आप अन्य करना सही है आप के बाद चीजों को इसे क्लिक करें। [01:26:14] Gabe: यह अब और नहीं गुजर रहा है। हे भगवान। सॉरी! हां। "अतीत में, ग्राहक अनुरोध करने की जरूरत एक वेबसाइट की संपूर्ण सामग्री। " यही कारण है कि मैं क्या कहा है। इसे भेजने के लिए अनुमति देता है हमें अतिरिक्त प्राप्त या पोस्ट बिना अनुरोधों हमारे ब्राउज़र को फिर से लोड करने के लिए। दिन के अंत में तो, हम कर रहे हैं वास्तव में एक HTTP अनुरोध कर रही है यहाँ जावास्क्रिप्ट का उपयोग। क्योंकि इससे पहले, हम केवल जावास्क्रिप्ट का इस्तेमाल किया पहले से ही आया है कि एचटीएमएल बदलने के लिए। और अब, हम इंटरफेस करने के लिए इसका इस्तेमाल कर सकते के रूप में अच्छी तरह से वेब सर्वर के साथ। ऐसा होता है रास्ता हम ग्राहक है। डेविन एक ग्राहक है। और वह सभी के लिए JavaScript है एचटीएमएल क्योंकि चल गूंगा है। जावास्क्रिप्ट स्मार्ट है। तो Davin डेविन अपने स्मार्ट है भाग और उसके गूंगा हिस्सा है। अब वह अपने स्मार्ट भाग का उपयोग करने के लिए जा रहा है। उन्होंने कहा कि जावास्क्रिप्ट का उपयोग करने के लिए जा रहा है अनुरोध करने के लिए, उदाहरण के लिए, abc123 में है कि क्या डेटाबेस या नहीं। [01:27:04] तो डेविन, कृपया, आप बस मुझे एक HTTP अनुरोध भेजें। धन्यवाद। तो वह सिर्फ एक HTTP अनुरोध भेजा। आप देखते हैं कि? और कहा कि सिर्फ एक ही रास्ता है किसी HTTP अनुरोध भेजा जाता है। ब्राउज़र, गूगल क्रोम या कुछ और है, डेविन की है कि देखने के लिए जा एक HTTP अनुरोध भेजने के लिए कोशिश कर रहा, एक छोटा सा एचएम मदद करने के लिए जा रहा है। और कहा कि जाने के लिए जा रहा है सर्वर के लिए सभी तरह। अब, सर्वर किया जा रहा है यहाँ पीएचपी, या किसी भी अन्य भाषा। बस एक सामान्य HTTP अनुरोध में पसंद है। यह बहुत ज्यादा एक सामान्य HTTP अनुरोध है। [01:27:31] और फिर, सर्वर ठीक है, कहने के लिए जा रहा है, डेविन जाँच करें कि क्या मुझे चाहता है इस abc123 डेटाबेस में है। मॉडल से बात करो। मॉडल यह नहीं है कहते हैं। abc123 एक अच्छा उपयोगकर्ता नाम है। और फिर, वेब सर्वर करने जा रहा है फ़ाइल के कुछ फार्म प्रस्तुत करना करने के लिए PHP का उपयोग करें। यह सचमुच सिर्फ एक फाइल किया जा सकता है कि कोई "उस में 'हां' में शामिल है, या, या ऐसा कुछ। यह किसी भी फाइल किया जा सकता है। [01:27:54] मैं जा रहा हूँ जैसे कि यह हो सकता है डेविन एक बतख की एक तस्वीर भेजने के लिए यह डेटाबेस में है और अगर एक हम्सटर की एक तस्वीर भेजने के लिए यह डाटाबेस में नहीं है। उस तरह का होगा गूंगा है, लेकिन यह काम करेगा। ठीक है, तो मैं डेविन के लिए एक बतख भेजें। डेविन एक बतख मिला है। और अब, जो हो रहा है बतख संभाल करने के लिए? डेविन की स्मार्ट हिस्सा फिर से, इसलिए जावास्क्रिप्ट, है ना? जावास्क्रिप्ट भेजा अनुरोध है, और जावास्क्रिप्ट अनुरोध प्राप्त करने के लिए जा रहा है और किसी न किसी रूप में यह व्याख्या। [01:28:22] और इस अर्थ में, यह करने के लिए जा रहा है तो मैं अच्छा हूँ बतख हैं, तो ठीक है, का कहना है। हम्सटर, तो मैं जा रहा हूँ पहले से ही नहीं, उपयोगकर्ता नाम, कहने के लिए डेटाबेस में मौजूद है। लेकिन आम तौर पर, यदि आप नहीं कर रहे हैं एक बतख भेजने के लिए जा रहा है। आप भेजने के लिए जा रहे हैं थोड़ा होशियार कुछ। और क्या हम प्रयोग एक्सएमएल है। और हाल ही में, हम JSON का उपयोग करें। JSON के बस जावास्क्रिप्ट है वस्तु संकेतन, जो मूल रूप से आप एक मिल रहा है पूरे जावास्क्रिप्ट वस्तु। और तुम बस की तरह, एक फाइल में डाल दिया आप लोगों को देखा है कि कि CS50 वस्तु। आप एक फाइल में डाल दिया है, और आप डेविन करने के लिए इस पर भेजें। [01:28:53] तो इस मामले में, मैं करूंगा एक जावास्क्रिप्ट वस्तु बनाने और बस, उपयोगकर्ता मौजूद है, हाँ कहते हैं। या उपयोगकर्ता नहीं, मौजूद है। और उसे करने के लिए वापस भेज देते हैं। और क्यों JSON? व्यक्ति के कारण यह कौन है प्राप्त है जावास्क्रिप्ट का उपयोग करने के लिए जा रहा प्रतिक्रिया संभाल करने के लिए। और जावास्क्रिप्ट इतनी अच्छी तरह से काम करता है क्योंकि यह जावास्क्रिप्ट वस्तु संकेतन कहा जाता है। अधिकार? तो वह सिर्फ एक समारोह फोन और प्राप्त कर सकते हैं प्रतिक्रिया से यह अच्छा वस्तु। और फिर, वह पता है कि क्या हो रहा है कि उपयोगकर्ता डेटाबेस में है या नहीं। [01:29:22] आप देखते हैं तो, यह सब आने वाले एक साथ वेब सर्वर में, और फिर अनुरोध करने के लिए एक HTTP के वहाँ और एक HTTP प्रतिक्रिया और सब कुछ। तो यकीन है कि तुम लोगों को बनाने के इस AJAX फोन को समझने यह मदद करता है क्योंकि आप सब समझते हैं अवधारणाओं के बारे में हम बात कर रहे हैं। [01:29:37] तो यहाँ एक उदाहरण है jQuery के साथ AJAX का। और यहाँ पर हम पाते हैं JSON के साथ करते हैं। इसलिए हम एक पाने के लिए कोशिश नहीं कर रहे हैं यहाँ एक बिल्ली है, या एक बतख की छवि। हम एक JSON फ़ाइल पाने के लिए कोशिश कर रहे हैं। और फिर हम जब तक इंतजार यह किया डॉट, हो चुका है। यही कारण है कि मैं प्रतिक्रिया के लिए इंतज़ार कर रहा हूँ मतलब है। यह थोड़ा समय लग सकता है। फिर, आप एक छोटे से लोड हो रहा है देखते हैं। आप अपनी वेबसाइट में ऐसा करना चाहते हैं। तो फिर क्या किया, और डॉट क्या जब यह किया है क्या होता है? आप एक अनाम में पारित समारोह, बस हम पहले देखा पसंद है। किया क्योंकि सिर्फ एक घटना है एक माउस या जो कुछ भी क्लिक करने की तरह है, jQuery के लिए। तो अगर आप इस समारोह के साथ में पारित डेटा, पाठ, स्थिति, और jqXHR। और मूल रूप से, कि बस कुछ चर आपके पास करने के लिए बाद में उपयोग कर सकते हैं HTTP अनुरोध की स्थिति यह जा रहा है कि डेटा आप को वापस भेजने के लिए। तो फिर आप पर बाद में यह व्याख्या कर सकते हैं और इसके साथ कुछ सार्थक करना। यह विफल रहता है, तो जब यह विफल हो सकता है? खैर, जब HTTP अनुरोध देता है आप की तरह है कि एक 500 या कुछ और। तो फिर, यह आपको बताने के लिए जा रहा है स्थिति थी, कि विफलता किस तरह का, और हर तरह की बातें। आपको यह सुनिश्चित करना है दोनों ही मामलों को संभालने के लिए, अन्यथा कार्यक्रम पागल हो जाता है। [01:30:42] Davin: तो हाँ, यह ठीक है कि आप अपने पिछले पी-सेट पर क्या देखा। वास्तविक AJAX कॉल मिलता है JSON में है। यही कारण है कि फोन है। और फिर, डॉट किया की तरह है यह सफल है अगर यह जाँच करता है। यह सफल होता है, आप चाहते हैं डेटा के साथ कुछ करने के लिए। तुम उस से वापस पाने के लिए JSON के अनुरोध डेटा। यही कारण है कि आप वापस पाने के लिए क्या है। तो अगर आप अपने पी-सेट से याद है, आप में से बहुत डेटा ब्रैकेट की तरह थे मैं या जो भी हो, डॉट लिंक या शीर्षक। वापस जो भी आ रहा है कि JSON, से जो कुछ भी खेतों, कि JSON वस्तु में हैं कि तुम वापस हो रही है। डाटा आप वापस हो रही है। पाठ की स्थिति, सिर्फ कुछ है कि आप क्या हुआ पता है। और फिर, jqXHR, सिर्फ है कि jQuery के एक्सएमएल HTTP अनुरोध। वह सिर्फ एक वस्तु की तरह है। और फिर Gabe कहा, जैसे असफल। Gabe: abc123 के हमारे छोटे से उदाहरण में कि डेटाबेस में अगर सिर्फ जांच करने के लिए या, डेटा आप कुछ होगा नहीं डेटा डॉट उपयोगकर्ता नाम से मौजूद है, तो क्या होगा, अपने PHP के लिए उत्पन्न क्या जो है आप डेटा डॉट उपयोगकर्ता नाम तो है, मौजूद है, अगर मैं सचेत करने के लिए जा रहा हूँ, उपयोगकर्ता नाम पहले से ही मौजूद है। वरना, मैं सिर्फ यह बताने के लिए जा रहा हूँ उपयोगकर्ता फॉर्म को भरने के लिए आगे बढ़ें। ठीक है, सुरक्षा, शांत। [01:31:50] Davin: मुझे करना चाहते हैं? [01:31:52] Gabe: मुझे यह पसंद है। तो कुछ परिचित लग रहा है। हम लगभग पूरा हो गया। तो यह सिर्फ उदाहरण है तुम लोगों को कक्षा में देखा था। आप यहाँ argv1 उपयोग कर रहे थे। यही कारण है कि एक कमांड लाइन तर्क की तरह है। और हम नकल मेम रहे हैं आकार 12 के एक बफर में। समस्या यह है कि यहां क्या हो रहा है? बफर अतिप्रवाह! हम आकार 12 के एक बफर है क्योंकि। argv1 दो अरब का एक आकार हो सकता है। हम किसी भी सीमा की जाँच नहीं करते। इसलिए हम स्मृति का एक बहुत की प्रतिलिपि सकता है। और हम विशेष रूप से हो जाएगा इस बारे में बुरा नहीं है। हम यह है कि क्या कर सकता है बहुत, बहुत ही इस मामले में क्या मतलब है? हाँ? दर्शक: दो अरब चीजों का हिस्सा रिटर्न कि निष्पादन योग्य कोड शामिल [अश्राव्य]। Gabe: बिल्कुल। तो यह है कि जिस तरह का है लोगों का उपयोग करें कि बात उदाहरण के लिए, एक iPhone भागने के लिए। उस तरह की बात तो। तुम सिर्फ डिवाइस बना सकते हैं क्योंकि आप की तरह है कि किसी भी कोड को निष्पादित। तय है, तो तय करना आसान है। बस सीमा के लिए जाँच करें। तुम अशक्त क्योंकि लिए जाँच हम हमेशा अशक्त के लिए जाँच जब हम तार के साथ काम कर रहे हैं। और फिर, आप ले स्ट्रिंग की लंबाई से पहले। और स्ट्रिंग अगर लंबाई एक मान्य स्ट्रिंग है 0 भीतर है, जो लंबाई, और 12 है, तो हम अच्छा कर रहे हैं। [01:33:03] Davin: आप के लिए जाँच नहीं करते हैं अशक्त, जल्दी असली, क्या होगा? यह गलती SEG करेंगे। क्यों यह गलती SEG होगा? आप शून्य पर strlen बुला रहे हैं। Gabe: हाँ। एक का उपयोग कर, यह सच है या झूठ पासवर्ड एक अच्छा विचार है। [01:33:19] दर्शक: झूठा। [01:33:20] Gabe: गलत। कई पासवर्ड, और बड़े, लंबे समय से लोगों का उपयोग। ताला माउस को सुरक्षा सुनिश्चित करते हैं। [01:33:26] दर्शक: झूठा। [01:33:27] Gabe: गलत। यह कुछ भी मतलब नहीं है। यह सिर्फ एक आइकन है। एसएसएल एक के विरुद्ध सुरक्षा मध्यम हमले में आदमी। दर्शक: झूठा। Gabe: गलत। ठीक है, तो उन सभी झूठे हैं। अच्छा लगा। [अश्राव्य] इस बारे में बात करना चाहते हैं? अब आपकी बारी है। Davin: हमलों के प्रकार, बीच में आदमी। मध्यम हमले में एक आदमी क्या है? दर्शक: [अश्राव्य]। Davin: यदि आप एक भेजने के लिए HTTP अनुरोध है, वे सही, यह कर सकता है? लेकिन आप HTTPS भेज रहे हैं, तो वे शायद ऐसा करने में सक्षम नहीं होगा। अंक के बहुत सारे है अपने कनेक्शन के साथ। आप routers है। आप डीएनएस सर्वर है। किसी को शारीरिक रूप से करने में सक्षम है आप भेज रहे हैं क्या देखते हैं, तो किसी को करने में सक्षम है वास्तव में आप के बीच मिलता है, ग्राहक, और सर्वर, और है आप भेज रहे हैं क्या देखने के लिए सक्षम, इस बीच हमले में एक आदमी है। तो तुम से प्राप्त करने के लिए कोशिश कर रहे हैं देखने के लिए क्या सर्वर, या बुरा see-- करने में सक्षम है आप को देखने के लिए सक्षम हो सकता है कुकीज़ या ऐसा कुछ। [01:34:16] उदाहरण के लिए, यदि हां आप वह SSL का उपयोग नहीं कर रहे हैं देखने के लिए सक्षम हो सकता है अपने सत्र आईडी कुकीज़। और इस सत्र के अपहरण में कहा जाता है वह अपनी पहचान कुकीज़ को देखता है, क्योंकि और फिर वह उस पर जाने के लिए सक्षम है वेबसाइट और आप होने का नाटक। सिर्फ PHP में पसंद है, क्योंकि याद हम में लॉग इन करते हैं, तो हम क्या करें? हम आईडी के बराबर सत्र आईडी निर्धारित किया है। तो यह है कि आप को पहचानता है। आप अपने पोर्टफोलियो को देख सकते हैं यही कारण है कि और नहीं हर कोई के पोर्टफोलियो। [01:34:38] खैर, मुझे लगता है कि कुकी प्राप्त करने में सक्षम हूँ, तो मुझे लगता है कि पेज पर लॉग इन कर सकते हैं। और फिर, मैं सिर्फ अपने सामान को देख सकते हैं और खरीदने और सामान की बिक्री शुरू। तो यह है कि सत्र के अपहरण है। लेकिन क्या आप इतने सक्षम to-- नहीं होना चाहिए मध्यम हमले में आदमी का उपयोग कर सकते हैं यहां तक ​​कि वे SSL का उपयोग कर रहे हैं। लेकिन आप करने में सक्षम नहीं होना चाहिए। वे एसएसएल का उपयोग कर रहे हैं, आप सत्र अपहरण नहीं कर सकते हैं। क्यूँ? यह सब एन्क्रिप्टेड है, क्योंकि सही? यह एन्क्रिप्टेड है, तो और मैं अभी भी एक आदमी हूँ मध्य, मैं अभी भी अपने डेटा मिलता है। वह ठीक है। लेकिन यह एन्क्रिप्टेड है। इसलिए मैं वास्तव में इसका इस्तेमाल नहीं कर सकते हैं। तो यह है कि दो है। [01:35:09] जल्दी असली, क्रॉस साइट अनुरोध जालसाजी। एक कड़ी है कि अगर वहाँ सिर्फ है कि और उस लिंक पर कुछ भी करता है तुम्हें यह करना चाहिए नहीं लगता है कि। तो उदाहरण के लिए, लिंक अगर था शेयर खरीदने या शेयरों को बेचने के लिए जा रहा है, और आपको लगता है कि पता नहीं था। तुम्हें पता है, लिंक पर क्लिक किया खरीदा एक अनुरोध भेजा या कुछ और कि बेचा आपको बस इतना करना मतलब नहीं था। वह है कि। [01:35:25] क्रॉस साइट स्क्रिप्टिंग, यहाँ तो, आप, चर क्यू के माध्यम से गुजर रहे हैं बजाय किसी तरह गुजर की मूल्य का है, शायद क्यू एक नाम की तरह है। तो बजाय क्यू बराबर गुजर का डेविन या ऐसा कुछ, आप HTML का प्रयोग नहीं करते विशेष वर्ण, आप अगर यह सुनिश्चित करने के लिए इस से बच नहीं करते ठीक है, तो मैं बजाय में पारित कर सकता है, यहाँ में मैं कह रहा हूँ कि हम कहते हैं लगता है कि जैसे प्रिंट या कुछ और, तो मैं यहाँ एक स्क्रिप्ट कॉल में पारित कर सकता है। [01:35:51] तो फिर, बजाय सिर्फ एक चर हो रही है, मैं तो इस स्क्रिप्ट कॉल पर अमल होगा। उस स्क्रिप्ट के अंदर तो कहते हैं, यह क्या करता है? दस्तावेज़ डॉट स्थान, कि जा रहा है दस्तावेज़ के स्थान बदल जाते हैं। इसलिए मैं रीडायरेक्ट करने के लिए जा रहा हूँ कहीं और करने के लिए। यह बुरा आदमी में कहा जाता है इस उदाहरण है, बहुत अच्छा। शब्द का सोच भी नहीं सकता। और फिर, क्या और भी है बदतर मैं जा रहा हूँ वह यह है कि कुछ है जो फिर सेट कुकी, करने के लिए चर मैं इस वेबसाइट में है। मैं इसे बराबर सेट करने के लिए जा रहा हूँ दस्तावेज़ डॉट कुकी के लिए। इसलिए, मैं जा रहा हूँ अपने कुकी चोरी करने के लिए। और मैं रीडायरेक्ट करने के लिए जा रहा हूँ एक वेबसाइट के बारे में कुछ जानकारी कि आप पहुँचने नहीं किया जाना चाहिए। आप कर रहे हैं और क्योंकि यह सब होता है नहीं तुम क्या देखा है भागने। हाँ? [01:36:29] दर्शक: तो बस के लिए यह है, कि स्पष्ट करना vulnerable.com कि इस की चपेट में है। उस लिंक पर भी दिखाई दे सकता है तो किसी भी पृष्ठ पर। कोई है, उस पर क्लिक करता है vulnerable.com को जाता है। आप vulnerable.com करने के लिए एक कुकी है। फेसबुक का कहना है कि चलो कमजोर, facebook.com इसलिए। आप अपने Facebook कुकी है। यह कर रहा है क्या, आप कर रहे हैं facebook.com जा रहा है, इसे तुरंत पुनः निर्देशित कर रहा है यदि आप badguy.com को लेकिन अपने कुकी जानकारी भी शामिल है। इसलिए यह एक त्वरित रीडायरेक्ट है, लेकिन अपने फेसबुक कुकी कि रीडायरेक्ट के साथ शामिल है, और कहा कि वे कैसे [अश्राव्य] है। Gabe: हाँ, वहाँ है कुछ बहुत ही मतलब बातें इस अगर वहाँ जो लोग कर सकते हैं। उदाहरण के लिए, सुझाव यदि अनुमति दी सब लोग, अपने उपयोगकर्ता नाम बदलने के लिए और वे किसी भी तरह से नहीं किया विवेक चेक, अगर आप इतना एक जावास्क्रिप्ट बात सम्मिलित हो सकता है कि एक हम्सटर के लिए अपनी छवि को बदल देता है। और कहा कि एक ही जावास्क्रिप्ट सम्मिलित अपने पृष्ठ विचारों सब लोग जो में। अपने पृष्ठ विचारों, जो इसलिए सब लोग उपयोगकर्ता के नाम पर एक ही बात है। और यह एक वायरस है, क्योंकि यह तेजी से फैलता है। Davin: हम पिछले छोड़ देंगे एक, और फिर हम कर रहे हैं। तो यह सिर्फ एक उदाहरण है। तो यह है कि वे नहीं कर रहे है उनके एसक्यूएल तालिका भागने। तो आप इसे छोड़ सकते हैं। तो आप चीजों से बचने के लिए चाहते हैं। यही कारण है कि पिछले उदाहरण था क्रॉस साइट स्क्रिप्टिंग के साथ। माफ करना, हम देर से एक छोटा सा भाग गया। कल, खेद है! कल, हम कार्यालय घंटे हैं। 11:00 Cabbot 8:00 में तो कार्यालय समय। कार्यालय समय के हैं सख्ती से प्रश्नोत्तरी सवालों के लिए।