[00:00:02] [پخش موسیقی] هنا: سلام، همه. با تشکر از شما بچه ها خیلی برای بیرون آمدن در آب و هوای نفرت انگیز برای مسابقه یک بررسی جلسه. همانطور که شما بچه ها می دانید، مسابقه یکی از این چهارشنبه است. بنابراین ما قصد رفتن از طریق یک دسته از موضوعات. داوین: با سلام، می توانم بگویم چیزی واقعی سریع؟ هنا: آره، به داوین رفتن به چیزی می گویند واقعی سریع است. داوین: با عرض پوزش. فقط سریع واقعی، اگر شما سوال در مورد مسابقه، شما می توانید آنلاین. برو به 2014 مسابقه یک، در مورد مسابقه. این تدارکات کردم در مورد به کجا بروید، زمانی که برای رفتن. اگر شما به طور همزمان ثبت نام، ما هستیم رفتن به مسابقه آرایش در 05:30. و یا اگر شما به من شماره ارسال می شود، شما برخی از موضوع های دیگر داشته باشد. اما 05:30 آرایش است زمان در روز چهارشنبه. اما اگر سوالی دارید، سوالات عمومی، آنلاین تمام تدارکات. بنابراین برای اولین بار از وجود تیک بزنید. [00:00:47] هنا: عالی. بنابراین در اینجا لیست بزرگ از موضوعات است که ما قصد داریم تا از طریق امروز بروید. من قصد دارم به پوشش دادن همه از C مسائل، این است که ستون اول. بنابراین چیزهای C که ما بعد از مسابقه صفر پوشیده شده است. شروع با یک لیست پیوندی، که شامل اشاره گر. [00:01:05] همه حق است، بنابراین ما با این دید در آخرین جلسه بررسی، بنابراین من قصد دارم به رفتن را از طریق این است کمی سریعتر. فقط دست خود را بالا می برد اگر شما من می خواهم به کم کردن سرعت یا چیزی رسیدگی بیشتر است. اما ما با استفاده از لیست به دلیل مرتبط ما در C با آرایه های آغاز شده است. و آرایه های بزرگ هستند، اما مشکل این است که آنها یک اندازه ثابت. لیست های پیوندی به ما اجازه ایجاد به صورت پویا ساختمان داده به اندازه. [00:01:28] و ما باید عملیات اساسی ما، درج، حذف، و جستجو کنید. و ما می توانیم درج در انجام بدترین حالت زمان ثابت اگر ما فقط آن را در همان ابتدا. حذف و جستجو، بدترین مورد بزرگ آه از زمان N. بنابراین دوباره، فقط به تلنگر از طریق این تصاویر، من می دانم که ما این زمان آخرین دیدم، اما ما می خواهید برای پیگیری لیست پیوندی ما با پیگیری از رئیس لیست پیوندی ما. از آنجا که ما می دانیم که هر یک از گره های ما فقط رفتن به نقطه را به گره بعدی در لیست پیوندی ما. [00:01:58] به طوری که ما چگونه پیگیری. حتی اگر این نیست قطعات مداوم از حافظه، ما می توانیم آنها را تنها با پیدا کردن پس از فلش های مختلف. در اینجا ساختار ما برای یک لیست گره در ارتباط است. ما این زمان آخرین دیدم. ما گره ساختار ما. و آن را دارای دو مشخصه. شماره یک، واقعی ارزش ما می خواهیم به ذخیره کنید. در این مورد، آن یک عدد صحیح است. این می تواند یک رشته، آن می تواند یک کاراکتر، هر آنچه که شما می خواهید. و پس از آن، ما باید برای پیگیری گره بعدی در لیست پیوندی ما. به طوری که برای رفتن به یک اشاره گر به گره بعدی. اگر شما فقط انجام شد جستجو، مثل من گفت قبل از، شما می خواهم که به دنبال فلش خود را کاهش دهید. درج، شما می توانید پیگیری از جایی که بقیه فهرست شما است. و شما می خواهید به تغییر مسیر سر به نقطه را به عنصر جدید ما، که در این مورد است، و سپس یک نقطه خواهد به باقی مانده از لیست پیوندی. بنابراین دوباره، من می دانم این است که کمی کمی از تکرار از مسابقه صفر است. بنابراین ما باید بسیار مراقب باشید در مورد جهت که در آن ما انجام این pointings بنابراین ما نمی از دست دادن آهنگ از پشت لیست. خوب، هر گونه سوال با فقط به تنهایی لیست های پیوندی؟ عالی، خوب، سرد. [00:03:06] بنابراین در حال حاضر، ما قصد داریم برای رفتن بر روی چیزی فقط کمی پیچیده تر است، مضاعف لیست مرتبط است. بنابراین علاوه بر نگه داشتن آهنگ از گره بعدی، ما همچنین می خواهم برای پیگیری از گره های قبلی است. و این ما اجازه می دهد تا به، اگر ما در برخی از نقطه در لیست پیوندی ما، نه تنها به جلو بروید، اما همچنین عقب تکرار. از آنجا که ما در دیدم لیست تنهایی مرتبط، اگر ما در برخی از گره بود، و همه ناگهانی، ما تصمیم گرفتیم، در واقع، من می خواهم برای رفتن به حق گره قبل از من، شما می خواهم که به همه در راه بازگشت به سر و تکرار از طریق تا زمانی که شما یافت گره شما به دنبال. [00:03:35] بنابراین این باعث می شود همه چیز کمی ساده تر به عنوان ما تلاش برای تکرار از طریق لیست پیوندی ما. اما این ما را ملزم به پیگیری یک اشاره گر بیشتر، بنابراین یک ستاره گره است. همه حق است، بنابراین در اینجا می آید بخشی از سرگرم کننده است. ما قصد داریم برای تمرین اجرای حذف برای لیست مضاعف مرتبط. بنابراین این چیزی است که است بازی کاملا عادلانه برای مسابقه. این در آزمونها گذشته نشان داد تا. بنابراین قطعا آماده کد کمی در C. فراموش نکنید که با تمام نمی این بازی سرگرم کننده پی اچ پی و جاوا اسکریپت، ما هنوز به خاطر داشته باشید به انجام C. بنابراین قلم مو رنگ کردن در آن اگر شما احساس زنگ زده. [00:04:12] همه حق است، بیایید ببینید که اگر ما می توانیم این کار را انجام. خوب، سرد. بنابراین ما در حال رفتن به سعی ویرایش سمت راست در اینجا، و امیدوارم این می رود به عنوان برنامه ریزی شده. همه حق است، آیا کسی می خواهم به من بدهید یک پیشنهاد که چگونه من باید شروع کنم؟ تنها فرض من گیری است که من در حال حاضر یک ساختار تعریف شده، یکی من در صفحه آخر نشان داد، در آخرین اسلاید. و من ذخیره سازی سر من مرتبط لیست در برخی از اشاره گر ها نامیده می شود. آیا کسی می خواهید برای دریافت به من آغاز شده؟ [00:04:42] رسید شما می توانید جدید ایجاد گره را از طریق لیست تماس بگیرید؟ [00:04:45] هنا: بسیار معروف، به طوری ما قصد داریم برای ایجاد یک گره جدید به این لیست خزیدن. من دوست دارم که. من فقط آن را اشاره گر اگر که خوب. و که در آن باید آن را در اصل شروع کنم؟ [00:04:57] رسید احتمالا در سر از لیست. هنا: زیبا. ما می خواهیم برای شروع در سر، که من گفتم در حال رفتن به در فهرست ذخیره می شود. عالی. تا کنون، خیلی خوب است. و در حال حاضر، هدف ما این است که تکرار از طریق لیست تا زمانی که ما گره با پیدا کردن ارزش N که ما می خواهیم را حذف کنید. باشه؟ [00:05:13] بنابراین در حال حاضر بخشی است که در آن ما می خواهیم به تکرار از طریق. آیا می توانم هر کسی پیشنهاد راه برای تکرار از طریق؟ [00:05:19] رسید حلقه. [00:05:20] هنا: حلقه. عاشقشم. به طور خاص، ما می توانیم یک حلقه در حالی که سعی می کنید. OK، و ما می دانیم که ما رسیده ایم پایان لیست ما زمانی که چه؟ رسید وقتی اشاره گر تهی است. هنا: هنگامی که اشاره گر تهی است. زیبا، من آن را دوست دارم. خوب، سرد. خیلی متاسفم اگر بریس محدوده من است نوع سقوط روی صفحه نمایش. ما آن را بازگرداند. خوب، سرد. گام بعدی چیست؟ [00:05:48] بنابراین ما می دانیم که ما می خواهیم را حذف کنید گره است که ارزش N. بنابراین اجازه دهید در مورد که در آن پیدا کردن ما در واقع گره ما را پیدا کنید. پس چگونه می کنید که من؟ من فقط می خواهم بگویم اگر اشاره گر، و پس از آن اگر من می خواهید برای دریافت مقدار از اشاره گر، من فقط نمی فلش N، برابر N، پارامتر که ما به این تابع داد، گره که ما می خواهیم به واقع حذف کنید. هر گونه سؤال تا اینجا؟ خیلی خوب. OK، بنابراین در حال حاضر اجازه دهید یک عکس سریع در قرعه کشی در هیئت مدیره به منظور تجسم این. [00:06:24] بنابراین اجازه دهید می گویند گره دوست داشتنی ما وجود دارد. و آن را تا مقدار، من فقط می گویند چهار. و آن را به آینده اشاره گره در لیست پیوندی ما. و هیچ چیز قبل از آن وجود دارد. بنابراین ما باید قبلی ما با اشاره به هیچ چیز نیست. در این مورد، ما اشاره به عقب. خوب، فقط راه اندازی من لیست بیش از اینجا مرتبط است. و ما یک لیست است که اشاره به این ساختار برای شروع با. من یکی بیشتر برای شما در قرعه کشی به خاطر کامل بودن. باشه. من این رو به جلو را در نقطه. و من که یکی پشت نقطه. اوه، ببخشید. آره، این عقب کردم. آیا آن را دوباره. خوب، وجود دارد که ما بروید. همه حق است، آن را کردم. خوب، در اینجا تصویر ما است. [00:07:21] خوب، پس ما می خواهیم به در نظر گرفتن دو مورد. مورد اول است اگر گره ما می خواهیم به حذف است در آغاز از لیست ما است. و پس از آن، مورد دوم که ما می خواهیم به نظر است اگر آن را هر جای دیگر. من درک می کنم که این کاملا رسم کثیف با تمام پاک کردن من، اما امیدوارم که ما سعی خواهیم کرد به این روشن با برخی از کد. [00:07:40] خوب، پس اجازه دهید در مورد پوشش که در آن ما در بر داشت گره ما، و آن را در بسیار است شروع از لیست پیوندی ما. همه به من بدهید پیشنهاد اینجا به آنچه به عنوان من باید انجام دهید تا در واقع گره ما را حذف کنم؟ این کمی روی حیله و تزویر. باشه؟ [00:07:56] رسید شما را به گره که قبل از آن می شود و آن را به نقطه یکی که پس از آن می شود، و گره که که پس از آن می شود و آن را به گره قبل از آن اشاره می کنند. هنا: دقیقا. خوب، پس این مورد where-- ما دو مورد. ما در مورد که در آن گره که ما به دنبال جلوی در لیست است. OK و سپس مورد که شما توضیح داده شده است در غیر این صورت، درست است؟ این در جایی دیگری در این فهرست است. بنابراین شما گفت، ما به نیاز در گره های قبلی نگاه کنید، و گره قبلی اشاره به گره بعدی. بنابراین اجازه دهید بگویم ما تلاش برای از بین بردن پنج در طراحی بسیار کثیف من اینجا. ما می خواهیم مطمئن شوید که چهار در حال حاضر به شش امتیاز. چهار نقاط در کنار شش. و شش نقاط قبلی به چهار. هدف ما این اینجا، درست است؟ این چیزی است که من به شما فکر می کنم فقط بیش از وجود دارد گفت. [00:08:56] خوب، پس اجازه دهید که قطعه اول است. بیایید انجام دارند اشاره گر قبلی قبلی. بنابراین چهار بعدی باید به چه نقطه؟ دقیقا، در این مورد، شش. بنابراین ما باید اشاره گر می گویند، در کنار. باشه؟ خیلی خوب. بنابراین بیایید از این تصویر زشت خلاص شدن از شر و سعی کنید به منظور جلب یک کمی بهتر. ما لیست سر ما در اینجا. و این اشاره به اولین گره در لیست پیوندی ما، که ما گفت که چهار است. در اینجا گره دوم ما، پنج است. و گره سوم ما، شش. فقط تلاش برای جلب دقیق عکس، فقط کمی تمیز تر است. خوب، پس چهار بعدی نوشته اصلی به پنج نقطه. پنج نقاط در کنار شش. شش نقاط قبلی به پنج. و پنج نقاط قبلی به چهار. بنابراین بسیار بهتر! خوب، سرد. [00:10:04] بنابراین در حال حاضر، آنچه که ما نه تنها در اینجا، این خط از کد، که می گوید اشاره گر قبلی بعد، پس چه معنا است؟ این بدان معناست که اگر ما به دنبال در پنج، رفتن به گره قبلی، و آن را آینده باید در حال حاضر نقطه به پنج بعدی. بنابراین اساسا، آنچه که انجام است که پاک کردن این فلش و آن را از سمت راست به بیش از پنج جست و خیز. این است که روشن؟ من می دانم که می تواند یک کمی ناقص. من مقداری گره سر را ببینید. خوبه. خوب، سرد. در حال حاضر، چه گام بعدی چیست؟ [00:10:39] من بعد از تنظیم مجدد شده است. در حال حاضر، که فلش دیگر من نیاز به تغییر؟ این یک حق در اینجا. شش قبلی. ما نمی خواهیم شش قبلی نمی به نقطه را به پنج دیگر. ما می خواهیم آن را به نقطه را به چهار. آیا این تصویر را حس؟ بنابراین در حال حاضر ما در واقع می تواند پنج نفر را. بنابراین اجازه دهید که قطعه. من قبل از من چه کاری باید انجام تنظیم مجدد شش قبلی به چهار؟ هر ایده وجود دارد؟ [00:11:14] رسید: رایگان گره بین آنها را با تنظیم آن را به تهی؟ هنا: دانلود. قطعا، به هدف پایان ما رفتن به آزاد گره. بنابراین ما می توانیم این حق در اینجا انجام. اشاره گر رایگان. کاملا. اما حتی قبل از آن، اجازه دهید از سمت راست به هدف ما just-- در اینجا این است که مجموعه اشاره گر بعدی قبلی برابر با اشاره گر قبلی. من می دانم این است که گرفتن تحت پوشش است. خوب، اجازه دهید take-- سرد. هر کس می تواند این خط پایین را ببینید؟ و یا آن را فوق العاده کوچک؟ [00:11:50] بنابراین قبل از اجرا ما این خط در اینجا، ما می خواهیم مطمئن شوید که اشاره گر بعدی است تهی نیست. از آنجا که اگر اشاره گر بعدی است تهی، چه نوع خطا خواهد من وقتی که من را امتحان کنید مرجع اشاره گر تهی؟ رسید گسل SEG. هنا: گسل SEG، زیبا. خوب، پس اگر که نیست تهی، پس ما می توانیم را بازنشانی کنید. و ما شش نقطه دوباره به چهار. سوالات تا این نقطه؟ بله؟ [00:12:17] رسید در اولین خود را اگر بیانیه ای، شما را انجام داد معنی به فلش بعدی، یا [نامفهوم]؟ هنا: من به معنای اشاره گر فلش N. بنابراین اساسا، آنچه من در تلاش برای انجام می گویند است، گره فعلی که من هستم شمارش، گره فعلی که من به دنبال در، من ذخیره سازی در اشاره گر. و من می خواهم به دانستن اشاره گر را ارزش، که در این مورد است N. و من می خواهم برای دیدن است، گره من به دنبال برای گره من هدف را حذف کنید؟ به طوری که به همین دلیل ما را در اینجا اشاره گر N. [00:12:47] رسید بنابراین فلش رفتن به N، شما مقدار و ذخیره آن در یک گره به نام N؟ [00:12:55] هنا: بنابراین آن را مانند اگر من است رفتن را از طریق این لیست پیوندی و با اشاره به پنج. اگر من می خواهم به که ارزش، اگر من می خواهم به این تعداد، 5، من باید انجام دهید اشاره گر فلش N. داغ؟ آره. [00:13:07] رسید از: آیا نفر نام متغیر؟ هنا: بله. بنابراین اگر ما تلنگر پشت یک اسلاید، N به نام است از ارزش داخل گره در لیست پیوندی ما. و من می دانم که می تواند کمی دریافت کمی گیج کننده به دلیل ما نیز خواستار چیزی که ما می خواهیم به حذف N. به طوری که که در آن است که یک خط می آید. آره؟ [00:13:27] رسید چه شما [نامفهوم] چگونه کار می کنند؟ اشاره گر [نامفهوم]؟ [00:13:35] هنا: مطمئنا. آیا شما about-- که خط صحبت کردن؟ رسید آخرین خط [نامفهوم]. [00:13:44] هنا: مطمئنا، OK. بنابراین اجازه دهید به تصویر در نگاه به منظور تلاش در توضیح این. متاسفم، برای دوربین، سوال بود می تواند ما اشاره گر توضیح فلش اشاره گر بعدی قبلی. خوب، پس اجازه دهید بگویم که ما در پنج هستید و هدف ما این است به حذف پنج. بنابراین بعدی اشاره گر، که از این سه گره می کند که ما را؟ که ما را به ارمغان می آورد به گره ششم، درست است؟ [00:14:10] OK، بنابراین در حال حاضر ما در حال درخواست برای قبلی شش است. باشه؟ و ما در حال بازنشانی این برابر به چهار، که رخ داده است به پنج قبلی. من می دانم، آن را فوق العاده سخت برای پیگیری. من واقعا به شما توصیه می تصاویر رسم اگر شما یک سوال شبیه به این را دریافت کنید. بله؟ [00:14:30] رسید از: آیا دلیل است که ما [نامفهوم] ندارد؟ [00:14:37] هنا: دقیقا. بنابراین سوال این بود، چرا ما لازم نیست برای بررسی در اینجا؟ چرا ما نیاز به بررسی کنید که اشاره گر قبلی است برابر با تهی نیست؟ و آن را به دلیل ایم در حال حاضر از هم جدا کردن مورد اگر اشاره گر را در آغاز بسیار. سوال بسیار خوبی است. هر چیز دیگری در این؟ خوب، سرد. بنابراین اجازه دهید آن را به پایان برساند تا. ما تقریبا وجود دارد. [00:14:59] بنابراین اگر آن را در سر است؟ چه می شود اگر به جای تلاش برای حذف پنج، ما در واقع می خواست چهار را حذف کنید؟ چه من باید انجام دهید؟ خوب، من می خواهم به تنظیم مجدد سر من به چه؟ فریاد آن را؟ رسید یکی پس از آن. هنا: زیبا. خوب، به ما می خواهیم لیست به اشاره شود به هر اشاره گر ما گره بعدی است. خوب است. و فقط برای کامل را خاطر، ما را می خواهم به بررسی کنید که تا زمانی که لیست ما است تهی نیست، تا زمانی که لیست ما نیست خالی، سپس ما می خواهیم به راه قبلی برابر ما به تهی. سوال تا کنون؟ در یک قدمی from--؟ [00:15:53] رسید آن را اگر می شود لیست برابر با تهی نیست؟ [00:15:55] هنا: بله، شما کاملا حق با شماست. خیلی متاسفم. لیست می باشد برابر با تهی نیست. عالی. تلاش برای آوردن این همه بر روی صفحه نمایش. این نوع از سقوط کردن. با عرض پوزش، بچه ها. و آخرین اما نه کم، تمام ما باید انجام دهیم بازگشت است. باشه. که بود بسیاری کهنه در واقعا به سرعت. نگاهی به دوم به نگاه این بیش از. به من بگو اگر شما هر گونه سوال. آره؟ [00:16:20] رسید اگر لیست در سر، then-- صبر کنید، بی خیال. [00:16:26] هنا: OK، خوب است. پس این است که اگر لیست در سر، ما آن را به هر که ما قرار داده حذف شده است. آره؟ [00:16:31] رسید آیا می توانید توضیح دهید اولین اگر دوباره بیانیه ای؟ اگر اشاره گر به N به N برابر است با؟ هنا: مطمئنا. بنابراین هدف ما از این تابع کل است گره است که ارزش N را حذف کنید. بنابراین اگر پیدا کنیم، به عنوان ما تکرار از طریق لیست ما، گره با مقدار N، که یکی از ما می خواهند را حذف کنید. بنابراین همه از حذف اتفاقی می افتد داخل که بزرگ اگر بیانیه. آیا که حس می کند؟ سرد. آره؟ [00:16:59] رسید شاید شما نه تنها می توانید ببینید آن، اما نمی شما همچنین نیاز به یک خط برای پیمایش از طریق لیست؟ هنا: عالی. بیایید این را یک کمی، و ما که درست در پایین پرتاب. شاید هیئت مدیره می اید یک ایده کمی بهتر شده است. پس چگونه می توانم حرکت اشاره گر به جلو؟ [00:17:17] رسید اشاره گر برابر اشاره گر به علاوه یک. [00:17:20] هنا: زیبا. به طوری که ما اجازه می دهد تا به از طریق ادامه تکرار. باشه. رسید نمی وجود دارد دیگری باشد؟ هنا: یک بار دیگر؟ رسید نمی وجود داشته باشد دیگری پس از قدیمی بزرگ اگر بیانیه [نامفهوم]؟ هنا: کدام بخش؟ متاسفم. [00:17:38] رسید پیمایش، باید چیزی دیگری؟ هنا: شما کاملا می تواند دیگری داشته باشد. از آنجا که من حق بازگشت دارند وجود دارد، شما دیگر نیاز ندارد. اما آره، سوال خوب است. خوب، بله؟ رسید آیا ما می توانیم از اشاره گر فکر می کنم است که از طریق لیست در حال حرکت به عنوان مصرف در ارزش از هر گره در لیست؟ یا اینکه ما باید از آن به عنوان فکر می کنم مرتب کردن بر اساس خارجی را به لیست؟ [00:18:00] هنا: در هر دو صورت یکی خوب است، من فکر می کنم. این طور که من تصور است من می گویم، خوب، من اشاره گر هستم. و این من است. این دست من است. من قصد دارم به نقطه را به مختلف چیزهایی که من می خواهم به تکرار از طریق. اول، من قصد دارم به نقطه به سر از لیست. و این من من می گوید رفتن به نقطه را به چهار. و به این ترتیب من، که خارج از لیست، من می توانم به هر یک از این عناصر اشاره. بنابراین من از خودم به عنوان اشاره گر فکر می کنم. رسید بنابراین، هنگامی که شما حذف یکی از آن عناصر، شما خودتان را حذف کنید، پس به صحبت می کنند. هنا: دقیقا. بنابراین شما چیزی حذف شما اشاره به در حال. بنابراین در مثال که ما شاهد که در آن ما تلاش برای حذف پنج، زمانی که من با اشاره به پنج، من می خواهم به حذف چیزی که من با اشاره به. دقیقا سمت راست. بله؟ رسید آیا ما مراقبت های گرفته شده از مورد که در آن n است در لیست نمی کند؟ هنا: اگر N است در لیست نمی کند؟ همه که اتفاق خواهد افتاد این است که شما هستید رفتن به طریق و تکرار تکرار از طریق، و پس از آن، شما در حال رفتن برای رسیدن به اشاره گر بودن تهی، و سپس شما قصد انجام شود. [00:18:48] رسید بنابراین ما باید برای بازگشت هر چیزی؟ هنا: ما می تواند. راه که اگر این تعریف تابع، من فقط می گویند که آن را برمی گرداند از درجه اعتبار ساقط بدون در نظر گرفتن. اما شما می توانید از چیزی مانند بازگشت یک عدد صحیح، و آن را بازگشت منفی 1 اگر نتواند. یه چیزی شبیه اون. سوالات with-- بله؟ رسید [نامفهوم]؟ هنا: با عرض پوزش؟ رسید [نامفهوم]؟ هنا: مطمئنا. به طوری که actual-- است زمانی که ما کرده ایم انجام تمام این کار در حال حرکت همه این فلش در اطراف، کل ما هدف این بود تا از گره خلاص شدن از شر که ما دنبال آن هستید. بنابراین در این مورد، آزاد اشاره گر، اگر من با اشاره به پنج، آن را مانند پاک کردن این گره وسط است. این بخش اشاره گر رایگان است. این حس را؟ [00:19:29] رسید بنابراین حتی تصور شما نمی [نامفهوم]؟ [00:19:31] هنا: بنابراین ما در آغاز فرض ما برخی از لیستی که بود already-- آنها این با هم قرار داده شده بود. بنابراین به منظور ساخت این لیست، آنها باشی [نامفهوم]. سرد. هر چیز دیگری با این؟ بله؟ [00:19:46] رسید: اگر لیست می کند خط صفر برابر نیست؟ [نامفهوم]؟ هنا: راست که اینجا هستید؟ رسید آره. هنا: OK، تمام من انجام است من فقط مطمئن شوید که قبل از من به لیست ارجاع امتحان کنید، قبل از من سعی می کنم برای دسترسی به گذشته، من می خواهم مطمئن شوید که آن را نمی صفر تا من یک گسل SEG می کنید. سرد. [00:20:08] خوب، من می دانم که این کاملا بود تا حد زیادی به نفوذ کنه. بنابراین این اسلاید خواهد بود در دسترس شما ساخته شده است. بنابراین شما می توانید از طریق آن با جزئیات بیشتر بروید. بله؟ [00:20:17] رسید چرا لیست [نامفهوم]؟ هنا: مطمئنا. بنابراین لیست واقعا به اشاره این عنصر حق در اینجا، عنصر اول در لیست. بنابراین آن را نمی توان قبلی را داشته باشد. بله؟ [00:20:31] رسید: آیا نقطه اشاره گر به همان آدرس در حافظه؟ آیا آن را به همان نقطه آدرس در حافظه به عنوان گره که آن را با اشاره به؟ [00:20:40] هنا: بله، آن را اشاره این گره در حافظه است. [00:20:43] رسید راست، بنابراین زمانی که شما [نامفهوم]؟ [00:20:47] هنا: در یک معنا، بله. باشه. همه حق است، اجازه دهید حرکت همراه با این. و اگر سوالات بیشتری، چوب در اطراف در پایان، و ما می توانیم از طریق آن دوباره بروید. خوب، سرد. در حال حاضر، ما را به حرکت در به هش جداول، تلاش می کند، و درختان، که به شما کردم فوق العاده آشنا با در-P مجموعه پنج، کتاب املاء. [00:21:04] بنابراین جدول هش است فقط یک آرایه با لیست تنهایی مرتبط و یا مضاعف لیست آینده خاموش از آن مرتبط است. بنابراین ما باید برخی از مرتب کردن بر اساس از آرایه انجمنی. و چگونه ما می دانیم که از این آرایه سطل برای وارد شدن ما با استفاده از یک تابع هش. بنابراین در این مورد، می توانید هر کسی حدس بزنید چه تابع هش می شود فقط در برخی از بر اساس از ورودی و خروجی؟ [00:21:31] رسید تعداد حروف الفبا. هنا: دقیقا. این فقط آنها را قرار می دهد به ترتیب حروف الفبا. همه چیز که با شروع می شود به سطل برای اولین بار قرار داده است. همه چیز با یک B است به قرار سطل دوم، غیره، و غیره. عالی، OK. و یک تابع هش هر است تابع طول می کشد که در یک کلمه و به شما خواهد گفت چه سطل آن را در تعلق دارد. بنابراین که ورود در ما آرایه آن متعلق به. [00:21:55] بنابراین هر بار که من را من هش تابع یک کلمه، باید آن را به من همان بگویید محل هر زمان تنها. بنابراین اگر ما با استفاده از تابع هش از اسلاید قبلی که در آن ما در حال مرتب سازی بر اساس حرف اول از حروف الفبا، هر بار که من را من تابع هش "اپل" همیشه باید به من دادن 0. بنابراین اگر من یک سیب در جدول هش من قرار داده، اگر من به "اپل" به تابع هش من، باید آن را می گویند، به آن را در سطل 0. اگر من به دنبال اپل در جدول هش من و من می گویم، که در آن سیب قدرت زندگی می کنند، شما تابع هش خود را بپرسید. و آن را می گوید، به سطل 0. خیلی خوب؟ سوالات با توابع هش؟ عالی. [00:22:34] در اینجا یک کمی بیشتر توضیح مفصل از آنچه یک تابع هش ممکن است مانند نگاه کنید. خیلی خوب. در حال حاضر، مشکل با هش توابع است در یک دنیای ایده آل، ما فقط یکی باید چیزی که در هر سطل. اما در واقعیت، وجود دارد نه تنها یک کلمه که با A. شروع می شود وجود ندارد تنها یک کلمه است که با B. پس شروع می شود در این مورد، اگر ما ناگهان دریافت "توت،" و ما می خواهیم آن را قرار داده به جدول هش ما، و ما می بینیم، آه، نه، موز است در حال حاضر وجود دارد، چه ما رو انجام دهید؟ [00:23:03] خب، ما دو گزینه. اولین گزینه است کاوش خطی، که فقط بدان معناست به پیدا کردن سطل خالی بعدی. برو پیدا ورود آرایه خالی بعدی. و فقط با قرار دادن "توت" وجود دارد. بنابراین من می دانم آن را به قرار با موز در سطل است. اما فقط آن را در سطل سه، چون سطل سه خالی است. یکی دیگر از گزینه است که احتمالا آنچه شما پیاده سازی در خود P-مجموعه، که در آن شما زنجیری جداگانه داشت. بنابراین هر یک از سطل خود را، هر یک از عناصر آرایه خود را، نه تنها دارای یک عبارت، اما در واقع دارای یک اشاره گر به یک لیست از کلمات. به طوری که اگر شما تا به حال موز در جدول هش شما و شما به طور ناگهانی می خواستم برای اضافه کردن انواع توت ها، هیچ مشکلی. فقط توت در به پایان، یا به اضافه ابتدا، از لیست پیوندی خود را. خوب، بسیار جذاب است. سوالات با هش جدول قبل از ما در برود؟ [00:23:58] خیلی خوب. درختان و تلاش می کند. خوب، پس این گزینه دیگری بود برای اجرای فرهنگ لغت. شما می توانید ساخته شده را امتحان کنید. پس از آن یک نوع خاص از درخت که رفتار مانند یک جدول هش چند سطح. بنابراین شما تصویر مشاهده می کنید که در آن شما باید یک آرایه که اشاره به یک دسته از آرایه آن نقطه به یک دسته از آرایه آن نقطه به یک دسته از آرایه های. و خواهیم دید دقیقا همان چیزی است که می خواهم در یک اسلاید آینده نگاه کنید. و به طور کلی، یک درخت فقط هر ساختار داده است که در آن داده است در برخی از سلسله مراتب سازمان یافته است. تا جایی که ما دیدیم ما نوعی از درک از سطح بالا، رسیدن به سطح بعدی، رسیدن به سطح بعدی، رسیدن به سطح بعدی. بنابراین این است که احتمالا روشن ترین با برخی از نمونه های خاص. بنابراین در اینجا درخت ماست. شما می توانید ببینید که آن سطوح خاص که ما با آن گره ریشه، یک شروع می شود. و ما می توانیم از طریق درخت ما بروید. [00:24:50] درخت دودویی است نوع خاصی از درخت. و تنها مشخصات برای یک درخت دودویی این است که هر گره است حداکثر دو برگ. بنابراین شما نمی خواهید برای دیدن هر از این گره باید سه یا چهار و یا برخی از تعداد دیگر از برگ. و پس از آن حتی مشخص تر یک درخت جستجوی دودویی است که در آن هر گره به سمت چپ از گره در حال رفتن به یک ارزش کوچکتر است. و هر ارزش به راست است برای رفتن به بزرگتر. بنابراین اگر شما نگاه کنید به 44 است در ریشه های ما، به سمت چپ، 11، 22، و 33 همه کمتر از ریشه ما. و در سمت راست همه تعداد bigger-- 66، 55، و 77. و این خاصیت صادق در هر سطح از درخت. [00:25:37] بنابراین، هنگامی که ما را به 22، 11، و 33، هنوز هم 11 است کوچکتر از 22 و 33 بزرگتر از 22 است. و این باعث می شود آن را آسان تر برای جستجو چرا که اگر ما به دنبال یک عدد، ما دقیقا می دانیم که شاخه به دنبال پایین. بنابراین این باید به شما یادآوری کمی از جستجوی دودویی. آره؟ [00:25:56] رسید بنابراین، هنگامی که شما هستید توصیف باینری، شما گفت که حداکثر دو برگ است؟ هنا: MM-HM. رسید می تواند از آن کمتر داشته باشد؟ هنا: آره. بنابراین اجازه دهید بگویم، به عنوان مثال، شما حتی تعدادی از چیزهای ندارد و شما نمی تواند پر کنید تا تمام خود را برگ، آن را خوب اگر یکی یکی. باشه؟ عالی. هر گونه سؤال دیگر در درختان؟ باشه. [00:26:16] بازگشت به تلاش ما را به عنوان من صحبت کردن در درباره کمی قبل از آن، چگونه ما باید این آرایه چند سطح. بنابراین در این مورد، ما در بالای شروع می شود. و ما می توانیم هر کلمه داده شده را دنبال کنید. بنابراین اجازه دهید بگویم ما می خواستیم برای تورینگ است. ما در T شروع، به دنبال آن پایین به یک آرایه که شامل U، و به دنبال آن پایین تا ما رسیدن به این دلتا کمی که می گوید ما، بله، شما یافت یک کلمه. پاک کردن در تلاش؟ هر چیزی به رفتن بیش از وجود دارد؟ بله؟ رسید: آیا نماد دلتا به اشغال فضای درون را امتحان کنید؟ هنا: آره، بنابراین آن را نمی کند لزوما حتی نیاز به یک دلتا. اما ما نیاز به برخی از راه برای بگویید ما computer-- با عرض پوزش، به طوری که ما می دانیم که TUR است یک کلمه نیست. از آنجا که اجازه دهید بگویم ما ندارد این مفهوم دلتا، این مفهوم از تبریک می گویم، شما یافت یک کلمه، آن را از طریق خواهند رفت و تکرار T-U-R، و سپس می گویند، جذاب، من آن را در بر داشت! این باید یک کلمه باشد. اما این واقعا نیست. ما می خواهیم کل تورینگ به یک کلمه. بنابراین ما باید چیزی در داشته پایان که می گوید، تبریک می گویم، شما یک کلمه مشروع پیدا کردم. رسید بنابراین اگر شما مانند به حال 26 نامه در الفبا، به نظر شما در واقع 27 کلید در خود را امتحان کنید؟ [00:27:24] هنا: عالی، آره. پس در واقع، من فکر می کنم که بر روی اسلاید بعدی باشد. TA-دا! جایی که اگر شما یک گره در خود را امتحان کنید، شما رفتن به 27 کودکان به جای 26. هر گونه سؤال با که؟ آره؟ رسید: چرا تلاش می کند را تا فضای زیادی [نامفهوم] تا شما را به؟ چرا نظر گرفته می شود [نامفهوم]؟ هنا: مطمئنا. اجازه بازگشت. سوال این است، چرا تلاش هستند، بسیار بزرگتر از چیزی شبیه به یک جدول هش. بنابراین برای هر یک از این سطوح، حتی اگر آنها در اینجا کشیده شده نیست، شما باید تمام 26 حرف می باشد. و دلیل که شما نمی توانید می گویند، آه، اما مانند برای تورینگ، من لازم نیست که هر یک از آن همه چیز در همان سطح U. خوب، اگر به طور ناگهانی به شما می خواستم برای اضافه کردن چیزی است که مانند T-H بود، شما می باید قابلیت اضافه کرد که کلمه. بنابراین برای هر حرف تنها، شما در حال رفتن به به یک دسته از آرایه های آینده خاموش از آن. بنابراین شما می توانید ببینید که چگونه آن را می خواهم دریافت واقعا بزرگ، واقعا سریع است. هر گونه سؤال دیگر؟ خیلی خوب. آره؟ [00:28:29] رسید وقتی که تلاش می کند هستند سریع تر از جداول هش؟ [00:28:33] هنا: هنگامی که تلاش می کند هستند سریع تر از جداول هش؟ بنابراین اگر شما تا به حال واقعا تابع هش بد است. بنابراین اجازه دهید بگویم من بود مانند، در اینجا تابع هش شما است. مهم نیست که چه کلمه شما به من بدهید، من همیشه رفتن به آن را در ورود به آرایه 0. و به این ترتیب ما تا پایان تنها با قرار دادن همه چیز در یکی از بزرگ لیست طولانی در ارتباط است. و به این ترتیب یک زمان مراجعه را در بدترین را N اگر آن را در پایان بسیار از لیست ما است. با امتحان کنید، ما فقط باید به تکرار از طریق حروف کلمه را. بنابراین حتی اگر ما اضافه یک دسته کلمات را امتحان کنید ما، آن را ما دیگر را ندارد برای پیدا کردن یک کلمه خاص است. [00:29:09] همه ما باید انجام دهیم این است، برای به عنوان مثال، در این مورد، اجازه دهید بگویم ما به دنبال زوم، ما فقط می خواهم که به تکرار بیش از Z-O-O-M، چهار حرف. به طوری که فقط طول زوم کلمه. مهم نیست که چگونه بسیاری از کلمات بیشتر ما در این امتحان قرار داده است. ما همیشه می توانید آن را دریافت در آن چهار مرحله. عالی. بله؟ [00:29:32] رسید: پس [نامفهوم] یک آرایه است، درست است؟ [00:29:34] هنا: MM-HM. رسید اگر شما به دنبال [نامفهوم]، به شما را از طریق رفتن آرایه خود را برای پیدا کردن [نامفهوم]؟ هنا: مطمئنا. رسید که آیا زمان بیشتری را ندارد؟ هنا: اگر من قصد دارم به می گویند که آرایه من همیشه رفتن به A، B، C، D، E، F، G، اه، اه، اه، بنابراین اگر من همیشه می دانم که این در جهت یکسان، اگر من همیشه می دانم که این به ترتیب حروف الفبا، من فقط می توانم بگویم O تعداد است چنین و چنان در الفبای. فقط به آن محل بروید. از آنجا که به یاد داشته باشید، با آرایه، ما می توانیم دسترسی هر عنصر از آرایه که در ثابت زمان اگر ما می دانیم که در آن ما به دنبال. آره؟ [00:30:09] رسید از قبلی اسلاید [نامفهوم] 27، اما 26 برای یکی از اولین. [00:30:14] هنا: با عرض پوزش؟ [00:30:15] رسید از: آیا اول یک 0، بنابراین آیا آن را نه 26؟ [00:30:18] هنا: مطمئنا، تا زمانی که ما می گویند 27، که رفتن به دادن شاخص با ما 0 تا 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، که به خواهد اتاق ما برای، در این مورد، من از جمله آپوستروف نیست. بنابراین ما در حال رسیدن 0 از طریق 25 هستند 26 حرف اول حروف الفبا، یا همه 26 حروف الفبا. و پس از آن که آخرین چیزی که، در ورود 26 است، رفتن به چک علامت گذاری به عنوان، و یا دلتا. هر چیز دیگری؟ عالی. فضای من دست داد. خوب، سرد. [00:31:31] بنابراین ما در حال حاضر بر این لمس کرد. اما تجارت بزرگ کردن بین تلاش می کند و جداول هش این است که تلاش می کند ارائه، در نظریه، ثابت نگاه کردن بار اما استفاده زیادی از حافظه است. همه راست، در حال حاضر ما کمی ساختار کمتر پیچیده، و ما با C انجام می شود، و ما حق همراه شما حرکت می کند. [00:31:49] بنابراین پشته، ما با این دید در سخنرانی که در آن شما چیزی شبیه به یک دارند پشته سینی که در آن آخرین چیزی که شما قرار داده در پشته است که به اولین چیزی که شما را خاموش. بنابراین این چیزی است که واقعا تعریف پشته این است که آخرین چیزی که شما را در رفتن به اولین چیزی که شما را خاموش. و اصطلاحات که استفاده می کنیم اگر ما قصد داریم برای قرار دادن چیزی، اگر ما قصد داریم به اضافه کردن چیزی به پشته ما، ما تماس بگیرید که هل دادن. و اگر ما چیزی را خاموش، ما آنرا گردانندگان سایت. و اگر ما قصد داریم به پیاده سازی پشته، ما باید مطمئن شوید که برای پیگیری هر دو اندازه و ظرفیت. بنابراین تعداد کل عناصر ما می توانیم تعداد جمعیت فعلی عناصر نگه دارید و که ما در حال برگزاری. [00:32:27] و بسیار به طور مشابه، ما باید صف. و تنها تفاوت است به جای با پشته، ما گفت: آخرین چیزی که ما را در اولین چیزی که ما را خاموش باشد. بنابراین با صف، اولین چیزی که ما در قرار در حال رفتن به اولین چیزی که ما را از. پس این است که مانند اگر شما در واقع پوشش در فروشگاه و شما در حال کمک، پس از آن اولین کسی در خط باید اولین کسی کمک شود. به طوری که می تواند یک صف. [00:32:52] بنابراین ما نیاز به پیگیری از اندازه، ظرفیت، و سر از آنجایی که ما هستیم رفتن به هر کس را خاموش جلو لیست به جای پشت. سوالات در آن؟ هر گونه سؤال C که شما را آزار؟ ساختمان داده، هر یک از چیزهای که سرگرم کننده؟ همه حق است، سرد است. بنابراین من آن را به دست به آلیسون پرش به برخی از برنامه نویسی بیشتر است. [00:33:14] آلیسون: اوه، خواهیم دید. خواهیم دید که چگونه به خوبی من در اینجا. خوب، من قصد دارم به سعی و پرواز از طریق این مسائل، بچه ها. هانا بسیار در رفت عمق در همه چیز او. من قصد دارم به سعی کنید شما یک دید کلی انفجار سریع به طوری که ما می توانیم به داوین با تمام دریافت سرگرم کننده جاوا اسکریپت و امنیت چیز که شاید شما در واقع می خواهید به شنیدن بیشتر در مورد. [00:33:33] خوب، به عنوان هانا گفت، اگر شما هر گونه سوال، من بیش از حد سریع رفتن، لطفا، اجازه دهید من می دانم. من به سوالات در صورت لزوم پاسخ. بنابراین برای شروع، ما قصد داریم برای شروع با احتمالا یکی از چیزهایی که اولین شما با وب یاد گرفته برنامه نویسی، مجوز. بنابراین سطح دسترسی، شما بچه ها باید بوده است کارشناسی ارشد در این با تمام وب برنامه نویسی که شما انجام شده است به تازگی. این اساسا فقط یک دستور که تغییر مجوز و یا مجوزهای دسترسی از ما اشیاء فایل سیستم. البته، در واقع دیدن این، اگر شما داشتن هر گونه مشکل با این در طول مجموعه مشکل شما، ممکن است شما LS -l، که طولانی استفاده می شود، برای دریافت نوع مشخصات مانند این، که در آن شما در واقع مشاهده همه مجوز برای یک فایل. [00:34:16] و واقعا، ما فقط رفتن به از طریق به سرعت فقط خیلی بسیار چه هر یک از این معنی. پس ما حق در اینجا د، که فقط برای دایرکتوری است. بدیهی است حق در اینجا، ما rwx را ببینید، که قابل خواندن، نوشتن، و اجرایی است. این نیز می تواند به عنوان بیت نشان داده می شود، که ما را به در صفحه بعد دریافت کنید. بنابراین هر سه تایی که ما دیدم در اینجا، پس از آن سه Triad ها ملاقات میکند. ما rwx اند، R چیزی X و R هیچ چیز X برای این فایل اول است. این ساختار به طور کلی است. [00:34:49] بنابراین ما باید برخی از دایرکتوری. ما برخی از گروه های کاربری با این مجوز. برخی از گروه است که این مجوز، و جهان است که اجازه. شما می توانید از این به عنوان یک سه گانه فکر می کنم. شما می توانید از این به عنوان سه بیت فکر می کنم. به طوری که آنها می توانند ارزش نگه در هر نقطه از 0 تا به 7، همین دلیل است که گاهی اوقات ما تا به حال شما انجام سطح دسترسی 600 به جای سطح دسترسی RW هر. ما به عنوان مثال وجود دارد. اما اساسا، شما می توانید فکر می کنم از این به صورت فقط rwx، یا شما می توانید از آنها به عنوان برخی فکر می کنم تعداد جایی که این یکی از اولین در اینجا نشان دهنده یک عدد بین 0 و 7، این یک ثانیه نشان دهنده یک عدد بین 0 و 7، و یک سوم نشان دهنده یک عدد بین 0 و 7، خوب؟ [00:35:38] R دارای ارزش 4. W تا به ارزش 2 و X تا به ارزش 1، همین دلیل است که این اجازه در اینجا خواهد بود سطح دسترسی 700. از آنجا که در این مورد در اینجا، آن را می گوید ما اند بیت اول بر بدبختانه وجود دارد. بنابراین ما باید 4 برای خوانده شده. بیت دوم است برای بدبختانه W، است که 2، بنابراین در حال حاضر ما 6. و بیت سوم است در بدبختانه برای X است که 1 است، بنابراین ما هفت. و البته، گروه ما جهان ما و هر 0 می باشد. بنابراین این نیز معادل سطح دسترسی 700. و من قطعا به تلاش درک نگاشت بین کسانی که. من مطمئن هستم که اگر آن را تا نه آمد تا در مسابقه قبل، اما این امر می تواند سوال که من ممکن است بپرسید. [00:36:18] فقط کمی رفتن حتی بیشتر به سطح دسترسی در اینجا، در اینجا است بسیار کلی ساختار یک تماس سطح دسترسی. بنابراین البته، ما در اینجا سطح دسترسی. منابع، چه این اشاره به است که ما می دهی این مجوز به یا که مصرف می کنیم این مجوز های دور از. بنابراین ما باید در اینجا در مجوز، مانند ما داده ام شما سطح دسترسی به علاوه X، همانطور که ما به زودی خواهید دید. فقط بدان معناست به این خاص مجوز به همه. آنها به تمام بدهد. بنابراین شما به خوبی می تواند تو علاوه X دارند و یا گرم به علاوه X یا O به علاوه X یا چند آن. به طوری که بخش اول همیشه رفتن به مراجع. چه کسی ما می دهی این مجوز به، یا که آنها را مصرف می کنیم به دور از؟ [00:37:03] دوم اپراتور است. بنابراین شما بچه ها بیشتر با اضافه پرداخته است. این را می دهد دسترسی به هر کس که شما آنها را دادن، در حالی که منهای، منطقی، آنها را حذف می کند. بنابراین هیچ چیز بیش از حد وحشتناک وجود دارد. و پس از آن حالت چیزی است که ما در مورد صحبت کردیم با خواندن، نوشتن، و یا اجرای. بنابراین علاوه X به معنی را اجرایی مجوز به همه. و پس از آن، البته، که در آن فایل خاص و یا دایرکتوری. باشه؟ هر کس خوب با سطح دسترسی؟ نه خیلی بد؟ [00:37:37] خوب، پس HTML، هر یک از شما قدیمی به اندازه کافی سن مای اسپیس to--؟ من این را به بخش من فرستاده، و به معنای واقعی کلمه نیمی از مردم به من نگاه کرد مثل من دیوانه بود. و من دوست دارم، بچه ها بود، ما که قدیمی نیست. بیا. بنابراین زبان نشانه گذاری ابرمتن، آن را صادقانه فقط یک راه را برای شما برای نمایش کارهای معینی را در وب. پس از آن یک زبان نشانه گذاری است. این یک زبان برنامه نویسی نیست. هیچ منطق در آن وجود دارد. این است که به سادگی برای تغییر راه چیزی نمایش داده می شود. OK، به طوری که مهم تمایز را. این نظر گرفته یک زبان نشانه گذاری، نه یک زبان برنامه نویسی. [00:38:12] بنابراین در اینجا ما باید تگ HTML است. در این اسلاید احتمالا بیشتر از آنهایی که شما باید با آن آشنا شود و واقعا راحت با. بنابراین بدیهی است، ما باید برچسب HTML ما، که تعیین که همه چیز در بین این دو خواهد بود HTML. ما برخی از لینک که بدیهی است که به شما می دهد یک لینک به یک صفحه وب خارجی. برخی از عنوان، در سر ما در اینجا. و ما با باید بدن ما H1، که یک ضربه، پس از آن خواهید آن را خوب را و درشت و بزرگتر است. و پس از آن، ما باید برخی از P، است که یک پاراگراف. شما احتمالا باید بدانید و با همه چیز آشنا مانند چگونه یک تصویر شما وارد است، هر کلاس هدر دیگر وجود دارد؟ من قطعا خواهد بود راحت با DIV. بنابراین این باید اکثریت برچسب ها که شما باید با آن آشنا باشد. اما البته، به عنوان با همه چیز در CS 50، لیست جامع نیست. بنابراین مطمئن شوید که شما قلم مو رنگ کردن در آن. [00:39:08] CSS، بنابراین CSS، اگر هر کدام از شما تماشا سمینار من از دو هفته پیش، واقعا تنها راه به سبک صفحه وب خود؟ OK، بنابراین ما باید برخی از زبان نشانه گذاری. HTML، که طول می کشد مراقبت از فقط متن و که در آن ممکن است بر روی صفحه است. اما CSS واقعا چه چیزی باعث آن بسیار. شما می توانید این را در HTML سایت خود بگذارید دارند فایل، اما همانطور که ما بعد صحبت در مورد، من کاملا مطمئن هستم که آن ممکن است شود در اسلاید بعدی، آن روش معمول است، و در واقع عمل که ما واقعا تشویق، را برای شما به نگه داشتن آنها را از هم جدا هنگامی که ما درباره MVC و کل الگوی صحبت کنید. این واقعا چه این تغذیه به. [00:39:42] بنابراین CSS تنها راه است همه چیز را نگاه بسیار. همه چیز در اینجا، مانند بدن و #title و اطلاعات، این انتخاب و آنچه به نام انجام می دهند این است که آنها همه چیز خاص را انتخاب کنید در فایل HTML شما و اعمال هر سبک، هر نوعی از چیزهایی که شما می خواهید، به که عنصر خاص از وب سایت خود را صفحه. بنابراین در اینجا، ما یک رنگ پس زمینه و رنگ و یک خانواده فونت که در حال اعمال شده به آنچه در بدن است. بنابراین اگر ما به اینجا نگاه، آن به عنوان مطرح شده ندارد اعمال می شود. این تنها به آنچه که اعمال می شود در این انتخاب بدن، خوب؟ [00:40:22] با عنوان اینجا، این است رفتن به همان چیز، رنگ متن بودن آبی تنها رفتن را تحت تاثیر قرار چه در داخل انتخاب عنوان. و همچنین اطلاعات در اینجا، متن صورتی خواهد بود، هر آنچه اطلاعات، که در اینجا ببینید. بنابراین تنها چیزی که خواهد بود صورتی در این صفحه عضویت Monday، 2014 نوامبر 17 است. خوب، پس CSS تنها راه است کنترل بیشتری over-- بله؟ [00:40:48] رسید: چرا شما برای استفاده از هش با عنوان؟ [00:40:51] هنا: اسلاید بعدی، قول می دهم! ما وجود دارد را دریافت کنید. پس این دلیل است که ما مجبور به استفاده از هش. بنابراین انتخاب در سه اصلی را فرم که ما به شما بچه ها در مورد صحبت کنید. من fyou می خواهید برای کسب اطلاعات بیشتر، مقدار زیادی وجود دارد. این اسناد CSS بزرگ وجود دارد. یک نام برچسب است که برای انجام وجود دارد فقط با برچسب های عادی خود را در HTML. بنابراین H1، ص، DIV، H2، کسانی که چیزها. و ما فقط می توانید آن را به عنوان نام. بنابراین به عنوان ما در اینجا با دیدن بدن، آن را به یک تگ طبیعی است. بنابراین ما فقط می توانید قرار بدن زمانی که ما در حال صحبت کردن در فایل CSS است. [00:41:26] با عنوان، کل دلیل ما این هش است ما چه ID در نظر گرفته. بنابراین ID همیشه باید منحصر به فرد در صفحه HTML خود را به طوری که وقتی شما اشاره به آن، شما می دانم که شما فقط اشاره به یک چیز خاص است. بنابراین در این مورد در اینجا، با ما H1 در اینجا، CS 50 جلسه بررسی، ما باید یک id از عنوان. بنابراین به منظور فقط به مراجعه قطعه ای از HTML ما، ما یک عنوان هش. فقط با کنوانسیون، شناسه ها تعیین شده با یک رشته هش در مقابل آنها. در راه همان، ما را ببینید اطلاعات در اینجا یک کلاس است. و به این ترتیب کلاس با CSS است به عنوان یک کلاس نقطه و یا نقطه هر چه که کلاس است. بنابراین در این مورد در اینجا، آن اطلاعات است. [00:42:10] بنابراین من آن را به عقب. هر دو از این خواهد بود برای CSS ما صورتی در اینجا چرا که آنها هر دو در یک کلاس اطلاعات. و در فایل CSS ما، ما را تعیین که هر چیزی که با یک کلاس از اطلاعات باید صورتی باشد. آیا این را حس؟ بله؟ [00:42:27] رسید به اگر شما بودند همه چیز در سفید بدن، و پس از آن شما سعی می کنید به چیزی در درون آن آبی، می که باعث مشکلات؟ [00:42:34] هنا: پس CSS است شیوه نامه آبشاری. بنابراین هر چه باشد به سمت پایین خواهد ارجحیت دارد. بنابراین اگر شما چیزی را با بدن، و شما همه چیز را سفید، و سپس بعد بر روی عنوان شما تغییر یا شما تغییر متن درون بدن، آن را بازنویسی کند. بنابراین هر چیزی نسبت به پایین خواهد ارجحیت دارد. بله؟ [00:42:56] رسید و شناسه منحصر به فرد هستند، اما کلاس می تواند بیشتر؟ هنا: راست. بنابراین شناسه باید منحصر به فرد باشد، و کلاس می تواند به عنوان بسیاری از چیزهای مراجعه به شما به عنوان می خواهم. هر گونه سؤال دیگر؟ بله. [00:43:09] رسید [نامفهوم]. می خواهم بدانم که آیا که باعث تفاوت. هنا: متاسفم، چه سوال بود؟ رسید کوچک وجود دارد "F" و سرمایه "اف" هنا: بنابراین تفاوت بین کوچک "F" و سرمایه "F" باید تفاوت را ندارد. بنابراین "F" خواهد بود 15 در هر صورت. داغ، هر چیز دیگری؟ هر کس خوب، CSS؟ بله؟ [00:43:30] رسید با عرض پوزش. آیا می توانید یک کلاس و ID؟ [00:43:35] هنا: بله، شما می توانید. چیزهایی که می تواند هر دو در یک کلاس و ID داشته باشد. و من به شدت توصیه تست این به خودی خود. CSS شما بهترین فقط با یادگیری چیزی، صفحه وب بسیار ساده است، طراحی برخی از CSS، و فقط دیدن چگونه آنها تداخل می کنند. و شما به دست آوردن بسیار خوب است، حس بصری برای چگونه کار می کند. [00:43:56] خوب، همه خوب با CSS؟ شما همه در حال رفتن به وب سایت های زیبا با CSS در حال حاضر. خوب، بهترین شیوه، فقط همه چیز را به خاطر داشته باشید، همه چیز that-- این دلیل است که ما اسکله شما برای طراح و فلان چیز. بنابراین همه تگ های HTML را ببندید. بنابراین اگر شما بدن باز، باید بدن نزدیک وجود داشته باشد. اگر شما یک بند باز، باید یک پاراگراف نزدیک وجود داشته باشد. بررسی کنید صفحه شما تایید. شما بچه ها باید بسیار آشنا باشد با این از-P مجموعه هفت با CS 50 امور مالی با اعتبار سنج W3. و همانطور که گفتم قبل، یکی از پارادایم های بزرگ ما جدا سبک خود را با CSS از نشانه گذاری خود را، که HTML. و پس از آن، البته، ما این XKCD بزرگ را در اینجا. ماهواره، تسکین خنده دار! [00:44:38] OK، TCP / IP. بین این و HTTP، اساسا آنها هر دو پروتکل است. بنابراین شما فقط می تواند فکر می کنم از آنها به عنوان مجموعه ای از قوانین که حکومت چگونه همه چیز حرکت در سراسر اینترنت است. بنابراین کنترل انتقال پروتکل، و یا پروتکل اینترنت، تنها راه مطمئن شوید است که داده می شود که در آن این رفتن و ما اگر می دانید ما همیشه از دست رفته داده. بنابراین اگر شما بچه ها فکر می کنم به سخنرانی چند هفته پیش با دیوید که در آن ما تا به حال چهار پاکت، آنها همه مانند یکی از چهار شماره شد، دو نفر از چهار، سه چهار، چهار نفر از چهار، این فقط مجموعه ای از قوانین است. ما گفت، خوب، هر زمان که ما هستیم ارسال بیش از یک بسته، ما می رویم به تعداد آن را با چه تعداد است و چگونه بسیاری از کل که کاربر باید دریافت کنید. [00:45:19] و این تنها گفتن هر کس دریافت داده که آیا آنها اگر همه چیز و یا بدست چیزی در امتداد راه گم شدم. و آنها باید برای آن به کار دوباره سوال. این است که واقعا فقط مجموعه ای از قوانین. این که شما چگونه می توانید از آن فکر می کنم، خوب؟ و همچنین، آن پورت، مشخص است که شما بچه ها can-- من در طول سخنرانی می دانید، آنها یک لیست کامل از بنادر به حال. اما ما آنها را در اینجا در حال حاضر وجود ندارد. [00:45:41] پروتکل انتقال ابرمتن (hypertext) پس است، دوباره، آن پروتکل دیگری است. پس از آن دیگری مجموعه ای از قوانین است حاکم، در این مورد، چگونه فرامتن منتقل شده است. پس از آن فقط اجازه می دهد تا مرورگرهای به صحبت می کنند به وب سرور. و همانطور که ما در اینجا گفت، آن را مانند دستدهی انسان است. این فقط یک راه برای حکومت است چگونه وب سرور است رفتن به تعامل با مرورگر شما. و ما فقط یک زن و شوهر از نمونه های. ما برخی از درخواست در اینجا که در آن می توانید از روش است. ما HTTP 1.1، که نسخه پروتکل برای ما. و پس از آن، میزبان، که همان چیزی است ما در واقع در تلاش برای دسترسی داشته باشید. و پس از آن، به عنوان شما در اینجا ببینید، ما گرفتن برخی از پاسخ به این 200 OK به عنوان کد HTTP پاسخ ما. ما یک لیست بزرگ من قصد دارم به جلو و در یک ثانیه که شما بچه ها باید با آن آشنا باشد. و ما این نوع محتوا متن / HTML، که فقط می گوید که چه نوع از داده ها ما از سرور دریافت، خوب؟ این میزبان و این نوع محتوا بخشی از هدر HTTP. شما می توانید به عنوان چند و یا به عنوان کمی به عنوان داشته لازم برای متن چه شما با خرید و فروش. گاهی اوقات شما یک مقدار زیادی از اطلاعات که از سرور شما. شاید آنها درخواست زیادی اطلاعات از کاربر. این بسته به زمینه. اگر شما در CS 50 مطالعه نگاه کنید، در بسیاری بیشتر در مورد آن وجود دارد. اما ما باید تا حد زیادی به دریافت از طریق، بنابراین من قصد دارم به بفرما اگر که OK با شما بچه ها؟ سرد. صبر کن. من قطعا که لیست کل of-- متعجب! من نمی دانم که چرا این است تمام راه را بیش از اینجا. من فکر کردم من به معنای واقعی کلمه منتقل آن در حالی که من sitting-- بود [00:47:15] داوین: آیا شما می خواهید به آن آموزش؟ و یا اینکه شما می خواهید من به آن آموزش؟ [00:47:17] رسید من فکر کردم ما می تواند فقط آنها را نشان می دهد برای شروع با. منظور من، شما می توانید به رفتن آنها بیشتر است، اما من فکر کردم این از آنجایی که من حس تر ساخته شده فقط در مورد وضعیت HTTP صحبت شد. بنابراین در اینجا کل لیست است. من حدس می زنم چه اتفاق خواهد افتاد است داوین در حال رفتن به به آنها به بعد. اما یک لیست کامل وجود دارد، پیش نمایش از طعم و مزه آمده است. خوب، ما قصد داریم به blow-- این است که به یک دوره سقوط پی اچ پی شبیه هیچ دیگر. [00:47:41] بنابراین پی اچ پی، پیش پردازنده فرامتن، آن backronym بازگشتی است، که به معنی آن چیز دیگری نامگذاری شد. و سپس آنها دوست دارند، این بود واقعا حس. به طوری که آنها فقط به نام it-- و آن مخفف بود، به طوری که آنها فقط آن را پی اچ پی ساخته شده پیش پردازنده فرامتن، که فقط باعث می شود هیچ حس. داستان سرگرم کننده است. این یک زبان برنامه نویسی است. بنابراین تا آنجا که تاکید می کنم که HTML غیر فعال است یک زبان برنامه نویسی نیست، آن را یک زبان نشانه گذاری، پی اچ پی یک زبان برنامه نویسی است. چگونه شما می دانید این است دلیل است منطق وجود دارد. می شرطی وجود دارد. ما متغیر، در حالی که ما هیچ یک از کسانی که همه چیز در HTML. [00:48:12] همه حق است، پس ما باید این کمی کمی در اینجا است که مانند یک طعم و مزه PHP است. بنابراین اصول اولیه، نام متغیر با علامت دلار شروع می شود. بسیاری از مردم آن را دوست دارم. به یاد ما پول است. این همه بزرگ است. همه ما می خواهیم پی اچ پی. بنابراین ما مشخص نیست نوع متغیر دیگر. آن است که در زمان اجرا تعیین می شود. مترجم مثل خواهد بود، آه، ما فقط از طریق اجرا شود، و با توجه به زمینه، ما چه نوع از انواع ببینید این متغیر باید. هیچ تابع اصلی وجود دارد. چیزهایی که فقط اجرا خواهد شد. شما بچه ها با واردات خود را در خود -P مجموعه گذشته، شما این اطلاع می دهد. بود واقعا وجود دارد یک تابع اصلی. شما فقط نوشت چه شما می خواستم به اتفاق می افتد. و آن را فقط نوعی از اتفاق افتاده است. به طوری که PHP را برای شما. [00:48:56] آرایه خیلی مشابه هستند. ما هنوز هم این براکت داشته باشد. در اینجا، ما برخی از متغیر نام ورود، و آن را برابر با to-- ما عادی ما نماد براکت. و ما باید برخی از ارزش های کلیدی است. و تفاوت بزرگ بین C و PHP آرایه این است که ما می توانیم این associate-- دارند ما می توانیم ارزش به کلید مرتبط. بنابراین به جای فقط داشتن یک آرایه است که نمایه شده توسط تعدادی و یا موقعیت آن عنصر در آرایه، ما در واقع می توانید آن را با یک کلید مرتبط. از کجا می توان گفت، خوب، من می خواهم هر چه ارزش با میوه همراه است. و شاید ما باید میوه به موز رفت. بنابراین آن را می خواهم موز را به ما بازگرداند. [00:49:41] اما در واقع، بیشتر چیزی که قدرتمند در مورد این این است که اگر شما بچه ها به یاد داشته باشید نسخه ی نمایشی از سخنرانی که در آن ما اساسا کتاب املاء بازنویسی در پی اچ پی، و آن مراجعه was-- واقعا فقط مانند، این کلید وجود دارد؟ این واقعا نوع از قدرت آن است. شما لازم نیست به تکرار از طریق آرایه خود را. شما لازم نیست که می دانم چه فضای آن در است. این می تواند در پایان یا آغاز شود. تا زمانی که شما می دانید کلید که با ارزش همراه، پی اچ پی فقط می توانید تف که ارزش حق بازگشت در شما، خوب؟ [00:50:09] و پس از آن، ما نیز فقط فقط چون ما می تواند جفت ارزش کلیدی به این معنا نیست که شما به. شما همچنین می توانید فقط ایجاد یک آرایه طبیعی مانند اینجا، در پایین، که در آن است فقط یک، دو، سه، چهار. کسانی که ارزش های ما هستند. و در واقع، کلید های خود را شاخص می باشد. بنابراین کلید برای یک خواهد بود صفر است. کلید برای دو خواهد بود. بنابراین و غیره، مگر اینکه شما به صراحت یک کلید اختصاص، شما می توانید که فرض ارزش فقط شاخص خود است. آیا این را حس برای همه؟ بدون پرسش؟ عالی. [00:50:38] OK، حلقه foreach راه است تکرار از طریق آرایه های خود را. بنابراین ما باید چیزی در اینجا، فقط ساختار کلی. بنابراین حلقه foreach، به نام آرایه ما، به عنوان هر شما می خواهید به تماس هر عنصر در آرایه خود را، و ما می توانیم چیزی را با انجام که عنصر یا با ارزش. بنابراین ما به عنوان مثال در اینجا. در حال حاضر انجمنی آرایه با این دو مدخل با نوار با مواد غذایی همراه و qux با باز همراه است. بنابراین کلید می غذ و باز. ارزش هستند نوار و qux. بنابراین حلقه foreach، ما باید آرایه ما در اینجا، به عنوان جفت ارزش کلیدی است. این به ما اجازه می دهد تا به دسترسی هر دو کلید و ارزش. شاید شما فقط می خواهید ارزش، که در این صورت شما فقط می تواند مانند ورود انجام به عنوان ارزش $، و سپس شما فقط دسترسی ارزش به شما به عنوان تکرار از طریق. اما شاید، برای برخی از دلیل، شما می خواهید کلید، همین دلیل است که من انتخاب این مثال به جای. بنابراین شما در واقع می تواند دستکاری کلید و ارزش در این مورد. باشه؟ سوال؟ [00:51:41] رسید اگر شما به خواست فقط دستکاری کلید، می شما باید انجام دهید foreach-- [00:51:45] آلیسون: راست. بنابراین اگر شما به خواست دستکاری فقط کلید، شما هنوز هم این نیاز نحو چرا که اگر شما فقط دارای ورود به عنوان چیزی، به عنوان یک چیز، آن را رفتن به فرض که شما می خواهید ارزش، نه کلیدی است. بنابراین اگر شما تا به حال فقط درست مثل دارند ورود به عنوان، شاید این است مانند $ عنصر، آن را به فرض کنیم که شما می گی فقط برای ارزش در هر نقطه. اگر شما به صراحت به خواهید انجام کاری با کلید، حتی اگر شما به قصد ندارم انجام هر کاری با ارزش، شما نیاز به این ساختار که ما را در اینجا که در آن شما به صراحت درخواست برای هر دو کلید و ارزش. سوال بزرگ. هر چیز دیگری؟ سرد. [00:52:27] همه راست، پی اچ پی و HTML. اوه، ما به هستی-P مجموعه هفت دوباره. بنابراین این باید کمی آشنا نگاه کنید. پس این نوعی HTML ساده است است که برخی از نام ورودی از سلام. و ما می بینیم ما روش ما را از دریافت کنید. و اگر ما از ما P-مجموعه ای به یاد داشته باشید، هنگامی که این فرم است را مشاهده کنید، آن یک آرایه به نام $ _GET است که می فرستد همه این ورودی یا متغیر از فرم که باید دستکاری در پی اچ پی ما. بنابراین در این مورد، کاربر در نام خود قرار داده است. آنها را از آن ارسال کنید. و ما می بینیم که ما برخی از آرایه دریافت کنید. ما آرایه GET ما. و ما دسترسی به نام. [00:53:11] به طوری که می گوید، خوب، من را ارزش که با نام همراه، نام بودن کلید در اینجا. و این نقشه را به طور مستقیم به آنچه ما گفت: نام ورودی ما است. پس این شد که شما به کلید به آنچه در حال رفتن به در آرایه خود را در اینجا. آیا این را حس برای همه؟ بله؟ [00:53:32] رسید: آیا نام در گرفتن مراجعه به خط بنفش در [نامفهوم]؟ [00:53:36] آلیسون: این به این اشاره دارد در اینجا. بنابراین این زمینه حق در اینجا، آن را به این نام اینجا اشاره دارد. بنابراین این می تواند به نام شده است مانند شماره تلفن، یا هر چیز دیگری. این نام در واقع می گوید، چه شما خواستار این زمینه؟ چگونه شما را به رفتن به این زمینه اشاره؟ و این نام است که در واقع دوست، ما هستیم گفت این زمینه است نام نامیده می شود. اینگونه است که ما در حال رفتن به آن دسترسی داشته باشید. [00:53:59] رسید بنابراین آن را دوست، نام ورودی برابر باب، and-- [00:54:02] آلیسون: راست، و سپس شما می باب پایین وجود دارد. دقیقا. هر کس سرد؟ همه حق است، بنابراین در مقابل POST GET، این دو راه اصلی هستند که ما عبور داده در یک درخواست HTTP. شما بچه ها باید دیده اند هر دو از این امیدوارم. بنابراین با GET، اطلاعات از طریق URL منتقل می شود. بنابراین اگر شما تا به حال انجام گوگل جستجو، یوتیوب، نظر شما احتمالا متوجه علامت سوال. و پس از آن، تمامی واژگان که شما فقط در آن وجود دارد قرار داده است. و بعد از عبور داده در بدن پیام HTTP. بنابراین بر خلاف، شما نوع در نظر که داده ها از کاربر پنهان است. اما آنچه واقعا مهم است که درک این است که این است که هنوز هم فقط به عنوان نا امن به عنوان دریافت کنید. قیاس من مایل به استفاده است اگر شما شماره حساب بانکی خود را و شما آن را ارسال در خارج از یک پاکت نامه، که بسیار پرخطر است. اگر شما آن را ارسال بر روی یک تکه مقاله و آن را در داخل پاکت، هنوز هم واقعا ناامن به دلیل همه شما باید انجام دهید این است که باز کردن و نگاه در محتویات واقعی از پیام که برای دیدن. پس این است که "پنهان" و مردم دوست دارند فکر می کنم این امن، اما آن را واقعا نمی. و من مطمئن هستم داوین خواهد شد دریافت به که بیشتر، شاید. اما این مهم تمایز به و چیزی واقعا خوب به درک. [00:55:15] OK، SQL، زبان ساختارمند جستجو. همه چیز که ما دیده ایم تا به تازگی! بنابراین آن را اساسا فقط طراحی، بدیهی است، برای مدیریت داده ها. شما بچه ها بسیاری از تجربه با حال این در جداول خود را با پی اچ پی MyAdmin. و چهار نمایش داده شد رایج وجود دارد که ما می خواهیم به شما بچه ها می دانم. بنابراین به روز رسانی، درج وجود دارد، را انتخاب کنید، و حذف. بنابراین مطمئن شوید که شما آن می دانند واقعا خوب است. ما قصد رفتن از طریق آنها واقعا سریع است. [00:55:40] بنابراین به روز رسانی، واقعا، به عنوان چه شما ممکن است فکر می کنم آن را ندارد، آن را فقط به روز رسانی داده ها در پایگاه داده خود را. بنابراین ما برخی از مثال در اینجا. این است که به طور کلی ساختار پرس و جو به روز رسانی. بنابراین جدول ما به روز رسانی که ما در حال صحبت کردن در مورد. و ما می خواهیم به راه خاص ارزش ها، ستون های خاص به ارزش های خاص برابر است. بنابراین این فقط به روز رسانی جدول، تغییر ارزش ها در تمام ردیف در این مورد. بنابراین در این یکی را در اینجا، واقعی به عنوان مثال، ما باید insert-- متاسفم. این اسلاید پیشرفته بدون من متوجه. [00:56:17] بنابراین این جدول به روز رسانی تنظیم col1 برابر به val1 که در آن خانه برابر "چرخمساز." چه این یکی است آن را تنها تغییر، تنها آن به روز رسانی این ارزش ها در مکان های خاص. بنابراین در این یکی از اولین، آن این تغییرات ارزش برای همه چیز در جدول خود را، باشه؟ آن را برای تغییر این ستون برای هر ورود به تک، برای هر سطر. اما این که در آن، شما می توانید از از آن به عنوان یک مقدماتی فکر می کنم. بنابراین آن را تنها رفتن به تغییر آن را در مکان های بسیار خاص است. بنابراین در-P مجموعه هفت، هنگامی که شما شاید مقدار پول نقد به روز شده که کاربر خود را به حال، شما احتمالا به حال برخی که در آن ID برابر جلسه ID، درست است؟ [00:56:53] از آنجا که شما نمی خواست تغییر مقدار پول نقد برای هر کسی که با استفاده از وب سایت شما. شما آن را تغییر دهید برای یک خواست فرد خاص، آن شخص بودن هر کس با استفاده از آن در آن زمان بود. درست است؟ خوب، پس وارد کردن، درج برخی از ارزش ها به جداول. این مثل این است که هنگامی که شما هستید ایجاد یک کاربر جدید با نام تجاری. ساختار کلی در اینجا به هر جدول درج ما در حال صحبت کردن در مورد. ارزش ها، بودن ارزش هایی که ما در واقع می خواهید برای وارد کردن. خوب، پس به عنوان ما در اینجا ببینید، ما به جدول وارد کنید. این ستون خاص با است ارزش مطابقت دارد خود را. بنابراین این می گوید، درج یک ردیف جدید شامل ارزش val1 و val2 تحت این ستون خاص. [00:57:33] بنابراین شاید شما فقط می خواهید برای پر کردن از نیمی از چیزهایی که در این ردیف. این چیزی است که این بخش در اینجا شما اجازه می دهد انجام دهد. این برنامه به شما امکان می دهد در واقع مشخص است که بخشی. بله؟ [00:57:44] رسید می توانید تنها [نامفهوم] سلول در سطر [نامفهوم]؟ [00:57:52] آلیسون: اگر شما فقط پر در بخش های خاصی از ردیف خود، بقیه سلول فقط خالی می باشد. تا زمانی که شما آنها را اجازه می دهد به خالی باشد، آن را یک مشکل نیست. اگر شما سعی می کنید به آنها دسترسی داشته باشید، آن را رفتن به بازگشت برخی از عنصر خالی می باشد. اما این مهم است که بدانید که در جداول خاص، آنها اجازه داده می شود به تهی. شما ممکن است به یک اجرا مشکل در طول خود را P-مجموعه از آنجا که ما هیچ اجازه نمی از ارزش های خود تهی باشد. اما شما می توانید مشخص کنید ارزش اختیاری در جدول خود را. [00:58:26] OK، انتخاب کنید، بنابراین این است تنها راه گرفتن اطلاعات خاص از یک جدول در برخی از شناسه که شما می خواهید. ستاره بنابراین انتخاب کنید و از جدول که در آن رده برابر چیزی فقط بدان معناست، من تمام اطلاعات مرتبط را که در آن این ستون خاص درست است. بنابراین ستاره در این مورد خواهد شد بازگشت به کل ردیف به شما، خوب؟ [00:58:49] و پس از آن، در این مورد، ستاره از انتخاب جدول فقط به شما می دهد که کل جدول. و پس از آن، بدیهی است حذف، آن را فقط حذف ردیف از جدول. بنابراین از جدول حذف، هر جدول ما ارجاع، که در آن برخی از خاص شناسه یا برخی از شرایط واقعی است. بله؟ [00:59:07] رسید سوال. چرا استفاده می دو نقل قول ها، و این که آیا شما انجام نقل از دو برابر و یا تک نقل قول ها، آن را ایجاد تفاوت؟ [00:59:13] آلیسون: به نقل از دو یا نقل قول تکی یک تفاوت در SQL را ندارد. من فکر کردم من یک سؤال دیگر دیدم. بله؟ [00:59:20] رسید: آیا آن تاثیر نمی گذارد چه می شود از پرس و جو فرار؟ [00:59:25] آلیسون: راب؟ [00:59:27] راب: چه چیزی شما را توسط معنی از پرس و جو فرار؟ [00:59:31] رسید: اگر کسی پرس و جو تنها در فرم of-- [00:59:36] راب: اگر کسی به بود قرار دادن یک نقل قول تنها در، پس از آن تا زمانی که شما در حال بهداشتی نمودن ورودی خود را، پس از آن مهم نیست. اما اگر شما با استفاده از یک نقل قول و شما اشتباه فرار ورودی خود را، پس بله، آنها نیاز برای قرار دادن نقل قول تنها به منظور شکستن کد شما. اگر شما استفاده از دو علامت، آنها نیاز به قرار دادن دو نقل قول برای شکستن کد شما. اما تا زمانی که شما همه چیز فرار به درستی، مهم نیست. این فقط رفتن به ترجمه به نماد درست به هر حال. [00:59:59] رسید به چه معنی فرار؟ آلیسون: خوب، مانند مطابق با اصول بهداشتی و فرار کنند. امتحان که ما، XKCD بزرگ کمیک که آنها را بالا بکشد که در آن شما را داشته باشد، oh-- راب: این آخرین اسلاید است. آلیسون: این آخرین اسلاید، واقعا؟ اوه خدای من. وجود دارد که ما بروید، کامل است. خوب، پس اساسا، شما می توانید تزریق چیزی به این پرس و جوی SQL که در آن می شکند شما کد و یا به عنوان دیوید نشان داد در کلاس، اگر ما به برخی از واحد نقل قول 1 برابر 1 و اگر در کد ما، ما فقط به طور مستقیم کپی که در، و ما یک نقل قول پایان دادن به تک، چه اتفاقی می افتد این است که ما را دریافت کنید برخی از بیان است که ارزیابی به درست است که خواهد شد اجازه دهید کسی وارد بانک اطلاعاتی ما و دریافت اطلاعات است که ما نمی خواهم آنها را برای به دست آوردن. بنابراین بهداشتی نمودن ورودی فقط بدان معناست مطمئن شوید که ما در حال فرار از این شخصیت ها و تعیین آنها به عنوان کاراکتر و چیز نمی که باید اجازه داده شود به معنای واقعی کلمه انجام شود به عنوان بیانیه SQL ما. [01:01:04] بنابراین چیزی که بزرگ است که ما گفت که شما بچه ها باید با استفاده از است کاراکتر های ویژه HTML بودند، که چیزی است که شما ممکن است بخواهید به نگاهی. OK، حذف کنید. انواع داده ها، این همه آنلاین است. از آنجا که ما 15 دقیقه، من هستم فقط رفتن به حق از طریق این. پی اچ پی و SQL، اساسا این است فقط ما یک تابع پرس و جو به حال که در برابر محافظت از کمک کرد این حملات مخرب. بنابراین هر زمان که شما استفاده پرس و جو، ما ساخت شد مطمئن که همه چیز فلان چیز بررسی شد. [01:01:36] MVC فقط یک پارادایم طراحی است، بنابراین مدل، مشخصات، کنترل. این فقط یک راه برای نگه داشتن چیزهای است زیبا و در راه همان تقسیم که ما تمایل به عامل کد را به توابع. این فقط یک چارچوب طراحی وب سایت است که اجازه می دهد تا شما را به انجام همان. من قصد دارم به جست و خیز این. [01:01:54] این چیزی است که من خواهد بود فوق العاده راحت با. این یک جدول بزرگ کمی وجود دارد. این به شما می دهد تابع به عنوان مثال از مدل. من فقط رفتن را از طریق این دلیل من واقعا می خواهید داوین قادر به صحبت کنید. اگر شما هر گونه سوال، لطفا در صورت تمایل. من در اینجا پس از خواهید بود. فقط می آیند با من صحبت کنی. با آن، ما باید وضعیت HTTP. و داوین رفتن به ضربه از طریق این در 15 دقیقه. این است برای رفتن به بزرگ است. [01:02:17] داوین: OK. آه، میکروفون خود را؟ آره. متأسفم. آلیسون: راه برای آماده می شود. داوین: نه، من آماده هستم. من حاضرم. بیا انجامش بدیم. آن را آماده. باشه. متأسفم. من قهوه در خودم ریخته. من نمی دانم اگر من بیشتر هستم ناراحت که من نگاه احمقانه، یا که من قهوه ندارد دیگر. به هر حال، فقط یک اعلام سریع در مورد ورق شما بچه ها داشته باشد. پس این ورق شما بچه ها داشته است این مقام چه در مسابقه. این مقام چه در مسابقه است. همچنین، بر روی وب سایت، ما بگویید شما، OK، این در مسابقه باشد. بنابراین در بازی ورق کمی شما، رسمی نیست. و اشتباهات در آن وجود دارد. بنابراین بهتر است به فقط کورکورانه از آن استفاده کنید. بنابراین بله، این است که. بنابراین اجازه دهید به این سریع واقعی دریافت کنید. [01:03:05] بنابراین وضعیت HTTP. پس چه اتفاقی می افتد زمانی که وب سایت، همه چیز درست است. OK همه چیز است. همه چیز می آید و به شما راه که می خواهید آن را به. شما دریافت می کنید 200 OK. 301، که در آن ما دیده می شود که 301 قبل از؟ صبر کنید، چه خبر؟ متأسفم. ما سخنرانی من قلع در طول امنیتی را دیدم. بنابراین در طول امنیتی، بنابراین اگر دیوید تایپ در HTTP و سپس سعی برای رفتن به cs50.net، شما در حال رفتن به 301 نقل مکان کرد. چرا؟ از آنجا که آن را به تغییر مسیر شما به طور خودکار به HTTPS ما. [01:03:35] بنابراین 301 نقل مکان کرد، فقط آن را اساسا یک تغییر مسیر. و شما می توانید در مورد آن را مانند این فکر می کنم. هر یک از وضعیت های که با 2 شروع، کسانی مانند، OK، OK همه چیز است. هر یک از وضعیت های که شروع با 3، کسانی هستند تغییر مسیر. وضعیت هایی که به با 4 شروع، این بدان معناست برخی از نوع خطا مشتری وجود دارد. وضعیت هایی که به با 5 شروع، که به نوعی از خطای سرور است. بنابراین شما نوع شکستن وضعیت مانند آن. بنابراین 304 تغییر نیست، بنابراین در خود server.c P-مجموعه، پس بیایید به شما می گویند cat.html لود. همه چیز به عقب می آید، شما 200S، OK، بزرگ است. [01:04:03] بیایید می گویند شما آن را تجدید. خب، در داخل که cat.html، شما باید JPEG. خب، که JPEG است رفتن به بارگذاری مجدد. شما نمی خواهید برای ارسال دیگر GET درخواست به سرور، و سپس تمام این اطلاعات را. آن را به تنها be-- که تصویر است رفتن به بر روی دستگاه شما ذخیره سازی می شود. و به طوری که تصویر خواهد بود 304. بنابراین آن را اصلاح نشده است. اگر شما پس از بستن، روشن کوکی ها، و پس از آن تازه و سعی کنید برای بارگذاری آن صفحه دوباره، شما در حال رفتن برای دیدن 200S. شما نمی دید که 304. [01:04:28] 400، درخواست بد، واقعی سریع، مانند اگر شما رفتن به ارسال شی JSON به سرور و جسم JSON شما نادرست بود، شما چیزی شبیه به آن را ببینید. 403، ممنوع است. وقتی که شما یک ممنوع؟ احتمالا احتمالا؟ رسید سطح دسترسی. داوین: سطح دسترسی، آره. بنابراین شما تنظیم نشده مجوز های صحیح می باشد. 404 پیدا نشد. این فقط وجود ندارد. بنابراین اگر شما در URL اشتباه تایپ کنید. 500، خطای داخلی سرور، سرور احتمالا شد به درستی پیکربندی نشده است. چیزی در پایان شما نیست، اما چیزی در سمت سرور. و 503؟ بسیاری از مردم را دیدم 503s در آخرین P-مجموعه. وقتی که که اتفاق می افتد؟ من زمزمه شنیده می شود. [01:05:05] رسید وقتی که گوگل تصمیم می گیرد که شما یک ربات هستید. داوین: آره، وقتی که گوگل تصمیم می گیرد شما در یک ربات هستید، شما 503s. به طوری که بیش از حد است. اگر شما از سرور درخواست کرده ام بیش از حد، آن را معمولا به طور موقت. و بسیاری از شما آن را متوجه. بنابراین شما دیدم 503. شما ممکن است کمی گرفته استراحت، سپس 503s رفت، و همه چیز تمام سمت راست بود. [01:05:20] گیب: رئال سریع، هنگامی که آیا شما بچه ها دریافت 500 در احتمالا این مشکل تاریخ و زمان آخرین مجموعه؟ بله؟ [01:05:27] رسید معمولا اگر سرور دارای یک فایل نابجا یا [نامفهوم] خود ماشین [نامفهوم]. [01:05:34] گیب: پس از آن ممکن است یک پیکربندی موضوع در پی اچ پی خود را بر روی سرور خود. اما ممکن است تنها چیزی مانند یک نقطه و ویرگول که خود را فراموش. اگر شما در حال تایپ کردن پی اچ پی، برخی نحو نادرست ممکن است شما چیزی شبیه به آن را دریافت کنید. باشه؟ [01:05:46] داوین: دانلود. آیا می خواهید به من برای انجام درست تا AJAX؟ [01:05:51] گیب: [نامفهوم]. داوین: OK. پس چه DOM است؟ چه DOM برای ایستادن؟ [01:05:55] رسید مدل شی سند. داوین: خوب. و چرا ما آن را دوست دارم؟ عالی. راست، پس از آن فقط به ما اجازه می دهد تا به دسترسی HTML، دسترسی به صفحه ما بسیار به سرعت. چرا؟ از آنجا که ما در حال درمان ما صفحه، درمان تگ های HTML ما، درمان همه چیز اگر آنها به عنوان اشیاء است. اگر ما آنها را درمان مانند آنها اشیاء، پس چه می توانیم بکنیم؟ خب، ما می توانیم توابع بر روی آنها تماس بگیرید. و این مهم به همین دلیل است؟ خب، چرا که ما قصد استفاده از جاوا اسکریپت برای به روز رسانی HTML ما، به روز رسانی این اشیاء. بنابراین اگر ما آنها را درمان مانند اشیاء، ما پس از آن می تواند توابع فراخوانی بر روی آنها. من قصد دارم به این کمی دریافت زمانی که به من به جاوا اسکریپت بروید، اما شما تمام مانند دیده می شود document.getElementByID. بنابراین سند خود است عنصر، دریافت عنصر توسط ID، بنابراین شما در حال رفتن به نگاه برای برخی از ID در یک تگ HTML. و پس از آن، شما می توانید انجام دهید چیز دیگری به آن. به عنوان مثال، مانند document.body، سپس شما می توانید کودک اضافه. بنابراین شما در حال رفتن به پیدا کردن سند. شما از این سند است. شما در حال رفتن به پیدا کردن بدن است. شما بدن یافت می شود. و پس از آن، شما در حال رفتن به تماس برخی از عملکرد بر روی آن. بنابراین کودک اضافه، و شما می توانید اضافه برخی از HTML بر روی پایان در داخل بدن شما. بنابراین اساسا، شما فقط هستید درمان آن را مانند یک شی. شما درمان HTML برچسب ها مانند یک شی. و آن را می سازد آن را بسیار آسان و سریع از طریق آنها بروید. اما آن را نیز به شما اجازه می دهد تا توابع را فراخوانی بر روی آنها بنابراین شما می توانید دستکاری و تغییر عناصر. [01:07:04] گیب: با توجه به این، چرا جاوا اسکریپت به گونه ای است زبان به خوبی با HTML تعامل؟ شانس هستند، زمانی که مردم انتخاب شد زبان برای مرورگر، برای سمت سرویس گیرنده، جاوا اسکریپت واقعا خوب است، واقعا در دست زدن به اشیاء خوب است. و اشیاء نوع دوست اشیاء که در HTML ظاهر می شود، پس از آن بسیار آسان برای جاوا اسکریپت به انجام این نوع از دست زدن به. داوین: خوب. بنابراین در اینجا فقط برای مثال است. بنابراین من در مسابقه سال گذشته فکر می کنم، و یا شاید دو سال پیش، ما از شما خواسته برای ایجاد یک درخت. پس این دقیقا همان چیزی است که شما می خواهم را انجام دهد. بنابراین شما شروع با سند. و سپس شما اساسا فقط در برچسب ها نگاه کنید. بنابراین اگر شما نگاه کنید، ما با یک تگ HTML شروع می شود. و پس از آن، شما سرنخ در مورد چگونگی گرفتن این بر اساس دندانه انجام دهد. بنابراین نوع سر شاخه کردن. در داخل سر، ما برچسب دیگری برای عنوان. بنابراین پس از آن، ما یک تگ عنوان. و در داخل آن، ما برخی از رشته. و به این ترتیب ما را نمایندگی یک رشته در یک دایره. و تمام برچسب ها در مربع می باشد. [01:07:54] و اگر شما نگاه کنید، اگر ما از این فکر می کنم به عنوان یک درخت، و اجازه دهید بگویم که HTML غیر فعال است پدر و مادر، و سپس سر و بدن در حال رفتن به خواهر و برادر. آنها هر دو رفتن به کودکان از آن پدر و مادر. بنابراین به دلیل آنها هر دو خواهر و برادر، آنها رفتن به نوع بعدی به هر یک از دیگر در مدل درخت ما. و پس از آن، شما اساسا همین کار را دقیق. بنابراین دشوار نیست، اما ما خواسته پرسش مانند این قبل از در مسابقه. گیب: آیا کسی سوالات تا کنون؟ آیا این خوب است؟ داوین: دانلود. جاوا اسکریپت، OK، چیزهای خوب است. بنابراین جاوا اسکریپت، چه جاوا اسکریپت است؟ خوب، جاوا اسکریپت is-- آن پیچیده است، اما این برخی از برجسته که شما باید در ذهن داشته باشیم. اول، آن را آزادانه تایپ. به چه معنا است؟ بنابراین PHP was-- آره، چه خبر؟ [01:08:35] رسید شما به صراحت ندارد دولت چه نوع متغیر است. داوین: کامل. بنابراین او گفت شما لازم نیست که به صراحت نوع متغیر حالت. این دقیقا همان سمت راست. بنابراین در C، اگر من تا به حال اعضای هیات من برابر با 50، پس از آن در پی اچ پی، آن را درست مثل این، $ من، برابر 50. سپس در جاوا اسکریپت، چه تماس می شود؟ ور، درست است؟ این می شود مانند ور من برابر با 50. اما شما لازم نیست که به مانند، OK، این یک int است. خوب، این رشته است. بدون نیاز به انجام این کار. این یک زبان تفسیر شده است. پس چه معنا است؟ [01:09:04] رسید وارد نشده است. [01:09:06] داوین: چه وارد این معنی نیست؟ آره؟ [01:09:11] رسید شما لازم نیست به بازسازی کد می توانید آن را برای آماده کامپیوتر آن را اجرا کنید. این فقط در زمان گرفته شده اعدام و کامپیوتر [نامفهوم]. داوین: آره، بنابراین آن را به عبور از طریق مترجم. اما شما دقیقا حق با شماست. بنابراین شما هرگز به آن کامپایل، درست است؟ هنگامی که شما انجام می دهند خود را پی اچ پی و کد جاوا اسکریپت، شما هرگز کامپایل نامیده می شود. شما هرگز چیزی شبیه به نام یا چیزی شبیه به آن. دلیلش این است که آن را تفسیر می شود. پس هر زمان آن را از طریق مرورگر می رود، آن را از طریق یک مترجم می رود. و که رفتن به آن تفسیر فقط در زمان واقعی حق دور برای شما. پس چه برخی از مثبت و منفی هستند به داشتن یک زبان تفسیر و داشتن یک زبان وارد؟ بنابراین compiling-- آره، چه خبر؟ [01:09:50] رسید تفسیر کندتر است. داوین: در چه حس؟ [01:09:57] رسید: پس از شما کامپایل، شما لازم نیست برای انجام هر گونه مراحل اضافی برای اجرای آن، در حالی که این [نامفهوم]. [01:10:04] داوین: راست، کامل است. پس چه می گفت اساسا که تدوین، زمانی که شما کامپایل، شما یک بسیاری از هزینه های در صف مقابل، درست است؟ شما در حال رفتن به آن کامپایل. اما پس از آن را به شما کامپایل، کامپایلر رفتن به بهینه سازی آن. این خبر به سرعت. این رفتن به اساسا به عنوان سریع به عنوان آن می تواند باشد. با تفسیر، شما هرگز که هزینه در صف مقابل. در عوض، آن را به کمی آهسته تر هر زمان تنها شما آن را تفسیر. و شما به به تفسیر هر زمان تنها آن. بنابراین به جای داشتن این یک زمان هزینه، در حال حاضر شما رفتن به باید آن را تفسیر هر بار که صفحه ارائه. [01:10:29] بنابراین مترجم خوب چون شما لازم نیست که به آن کامپایل، اما آنها در که هر بد زمان لود صفحه، آن را رفتن به تفسیر این جاوا اسکریپت. و آن را به اجرا کمی کندتر از اگر شما به آن کامپایل. اجازه می دهد تا شما را به communicate-- آه، صبر کنید. مورد استفاده برای دستکاری محتوا و ظاهر. ما فقط در مورد که صحبت کردیم. آن استفاده می کند DOM. AJAX، ما را به دریافت AJAX در کمی. و پس از آن، آن سمت سرویس گیرنده است. بنابراین PHP سمت سرور است. جاوا اسکریپت سمت کلاینت است. چه به آن مثبت است؟ این آن را می گوید. این سریع تر، درست است؟ از آنجا که شما لازم نیست to-- آن سریع تر است. شما لازم نیست برای برقراری ارتباط با برخی از دستگاه های دیگر. اگر شما فقط در حال شما مشتری، شما هرگز هستید رفتن به رفتن و ببینید چه چیزی بر روی سرور و پس از آن گزارش یا چیزی شبیه به آن. بنابراین سمت سرویس گیرنده تمایل به یک کمی سریعتر. [01:11:15] گیب: بله، اما این به این معنا نیست PHP است سریعتر از جاوا اسکریپت و یا چیز مشابه آن. آنها نوع اجرا در همان سرعت زیرا آنها هر دو هستیم زبان تفسیر شده است. چیزی که آهسته در اینجا به درخواست است. بنابراین شما در واقع رفتن تمام راه را به برزیل برای به دست آوردن برخی از اطلاعات که زندگی می کند وجود دارد. اما پی اچ پی و جاوا اسکریپت، آنها نوع در همان سرعت اجرا شود. این نیست که یکی است سریع تر از دیگر. این، نیز، سوال ترفند در اینجا. بنابراین جاوا اسکریپت هرگز می شود کد ماشین، درست یا غلط؟ [01:11:47] رسید کاذب. گیب: غلط. این برای تبدیل شدن به ماشین کد زیرا کد ماشین است تنها چیزی را که ماشین درک. حتی اگر آن را وارد نیست، هنوز هم کد ماشین تبدیل می شود به این دلیل که مترجم است فقط برنامه ای است که می رود خط به خط و تبدیل آن خط به چیزی که کامپیوتر را درک. باشه؟ سرد. [01:12:08] داوین: در اینجا فقط یک بسیار اساسی سلام برنامه جاوا اسکریپت جهان است. بنابراین من نمی دانم if-- شما این را دیده ام. اما شما فقط HTML را در اینجا. و به جای در واقع قرار دادن جاوا اسکریپت در تگ script، بنابراین شما به طور معمول می خواهم آن را در سر قرار داده است. شما باید تگ اسکریپت. شما آن را رها وجود دارد. همه ما در اینجا انجام داده ام است ما in-- مرتبط ام بنابراین ما در یک فایل جاوا اسکریپت مرتبط ام مثل این. و شما تمام انجام داده ام این، درست است؟ بنابراین، هنگامی که شما با استفاده از jQuery و underscore.js در آخرین P-مجموعه، شما تن از کد در ندارد برچسب ها اسکریپت خود را، تا در سر خود را. شما می توانید به جای انجام این کار، اما شما فقط آن ارتباط در. و از تو آن ارتباط در درست مثل شما با CSS انجام دهد. پس از آن فقط باعث می شود آن را آسان تر به عنوان خوانده شده بنابراین کد خود را مانند 1000 خطوط طولانی نیست با تن از توابع است که شما ممکن است با استفاده از شود. [01:12:52] در عوض، شما فقط آن را در پیوند. این آن compartmentalizes. آن را مانند نوشتن برخی از فایل هدر است، و پس از آن از جمله این که فایل هدر در C. فکر می کنم از آن درست مثل این. پس چه انجام این کار؟ خوب، این است که برای اجرای. این خبر را آگاه سازد. بنابراین شما در حال رفتن به کمی پاپ تا به نام جهان خوش آمدید. سوال سریع، چک سلامت عقل فقط، بنابراین شما در اینجا ببینید در بدن، می گویند بدن، HTML در اینجا. چه می آید برای اولین بار؟ آیا من بدن، HTML را ببینید در اینجا، و یا با هوشیاری برای اولین بار از دیدن من؟ [01:13:19] رسید هشدار. [01:13:20] داوین: راست. او می گوید هشدار. چرا؟ [01:13:22] رسید از آنجا که شما رفتن از بالا به پایین. [01:13:24] داوین: بله. کامل است. بنابراین او می گوید، شما را از بالا به رفتن پایین، که کاملا درست است. شما قصد رفتن از بالا به پایین. و در جاوا اسکریپت، جی کوئری، شما یک تابع که مانند onload، و یا آماده شدن است، و که می گوید، خوب، صبر کنید تا همه از این HTML لود شده است. و پس از آن، JavaScript در مرورگر تماس بگیرید. از آنجا که ما که در اینجا، نه اولین چیزی که اتفاق خواهد افتاد است این رفتن از بالا به پایین. این رفتن به ضربه که JS تماس بگیرید، آن را به هشدار. بعد از آن شما روی OK کلیک کنید، که هشدار از بین می رود. سپس آن را به نشان می دهد شما HTML بدن اینجا. زیبا. [01:13:54] خوب، پس فقط واقعی سریع، نوشتن در جاوا اسکریپت فوق العاده سریع است. به منظور اعلام یک متغیر، نام متغیر. بنابراین در C، شما باید اعضای هیات من، شما اعلام چه نوع از نوع آن است. پی اچ پی، $. جاوا اسکریپت، ور. ما در مورد این صحبت کردیم. همه حق است، اجازه دهید بروید. [01:14:11] حلقه، همین. همان چیزی که. اعلامیه تابع، بنابراین درست مثل شما در C. دیده ام تنها چیزی که متفاوت است بنابراین، هنگامی که شما را به زبان های برنامه نویسی دیگر، مانند وقتی که شما را 51 ترم بعدی و شما در حال انجام با OCAML، شما می توانید با توابع ناشناس رسیدگی کند. به طوری که این دقیقا همان چیزی است که شما را در اینجا. بنابراین شما می خواهید به در مجموع قرار داده، نوعی از ارزش مجموع. اما شما فقط ممکن است انجام آن یک زمان. بنابراین شما نمی خواهید به آن تماس بگیرید تابع مجموع، آن را یک اعلامیه تابع را. در عوض، شما فقط از آن استفاده کنید به عنوان یک تابع بی نام. و شما این زیادی را دیده ام. شما یک نمونه از دیدن این در چند اسلاید. آره، خواهیم دید. گیب: سوال خوب. هنگامی که ممکن است شما مایل به استفاده از یک تابع بی نام اینجا؟ در واقع، زمانی که شما می خواهید چیزی، مانند یک رویداد، اتفاق می افتد. بنابراین، هنگامی که ماوس است کلیک، به عنوان مثال، شما می خواهید برخی از تابع به نام. بنابراین شما به این رویداد عبور کنترل، شما را به این رویداد عبور، نوع، تابع که شما می خواهید به آن می شود. و آنچه را که شما عبور مانند است، در پایان از روز، فقط یک اشاره گر به که آموزش، به تابع. بنابراین آن را دوست ندارم شما در حال عبور تمام کد، فقط به عنوان یک اشاره گر به تابع. و پس از آن، وقتی کسی کلیک ماوس، پس از آن که تابع به نام می شود. [01:15:17] داوین: آرایه، بنابراین شما یک اعلامیه آرایه. سپس، یک آرایه برای قرار دادن همه چیز در. رئال سریع، چه خواهد شد این نسخه قابل چاپ کردن؟ عنصر سوم چه خواهد بود؟ [01:15:31] رسید "JS". [01:15:32] داوین: حق، آن خواهد بود "JS." صبر کنید، به عقب برگردید. طول چیست؟ [01:15:37] رسید سه. داوین: سه، درست است؟ دقیقا همان چیزی است که شما فکر می کنم. OK، در حال حاضر بروید. آرایه، شما می توانید همه چیز را به آنها اضافه کنید. بنابراین شما می توانید فراتر بروید مرزهای اولیه خود را. تنها چیزی که در ذهن نگه دارید. پی اچ پی، جاوا اسکریپت، آنها کمی هستید از نظر چیز کمی بخشنده تر که می خواهم. اشیاء، بسیار شبیه ساختمانها در C، بسیار مانند آرایه های انجمنی در پی اچ پی. شما تمام تجربه با این حال. بنابراین JSON، زمانی که شما عبور JSON عقب و جلو در-P مجموعه هشت، که جسم خود را. [01:16:03] بنابراین بله، به عنوان مثال، واقعی به عنوان مثال سریع است. در اینجا یک شی است. راه شما این مرجع شی، بنابراین فقط واقعی سریع، اجازه دهید بگویم من می خواستم برای پیدا کردن از، OK، چه دوره است؟ و به این ترتیب نام شی در اینجا CS50 است. و پس از آن اگر من تا به حال انجمنی آرایه، چگونه می توانم انجام دهم که؟ من با استفاده از یک کلید، درست است؟ بنابراین من به نام آرایه. من براکت، به نقل از، کلید، نقل قول پایان، پایان براکت، و است که مرجع است که عنصر در داخل آرایه انجمنی من. چگونه می توانم اشاره البته در داخل جسم من؟ کسی می داند؟ [01:16:39] رسید [نامفهوم]. [01:16:40] داوین: چه خبر؟ رسید CS50.course. داوین: راست، آره. بنابراین CS50.course. بنابراین راه شما چیزهایی مرجع در داخل یک شی JSON است با یک نقطه. [01:16:48] رسید شما همچنین می توانید نحو آرایه استفاده کنید. [01:16:53] داوین: OK، خوب است. [01:16:54] گیب: شما همچنین می توانید براکت CS50 استفاده، رشته، مانند علامت نقل قول. رسید من فکر می کنم آن را یکسان به PHP. گیب: این همان چیزی است. داوین: زیبا! اما تو این مکان های دیگر را ببینید. آره، بنابراین ادامه دهم. این چیزی است که من فقط گفت. بنابراین به یک مثال جاوا اسکریپت جی کوئری. بنابراین این DOM من است، درست است؟ رئال سریع، بنابراین من سر، سلام جهان، بدن. من یک دکمه داشته باشد. این گزارش می گوید "فشار من،" بنابراین من می خواهم به آن فشار. و من می خواهم برای انجام کاری هنگامی که آن را کلیک. راست، در کنار. [01:17:31] درست است، بنابراین این جاوا اسکریپت من است. بنابراین jQuery است فقط راحت تر راه برای ارسال به جاوا اسکریپت. بنابراین این، و آنچه من قصد دارم به نشان می دهد شما بعد، در حال رفتن به جی کوئری، یکسان هستند. به طوری که آنها خواهد همان چیزی را انجام دهید. فقط جی کوئری گرایش به کمی آسان تر است. افراد تمایل دارند که آن را دوست دارم بیشتر. از آن است که بسیاری از قابلیت های. بنابراین مردم تمایل به استفاده از جی کوئری. همه شما از jQuery در آخرین P-مجموعه استفاده می شود. پس چه انجام این کار خواهد شد؟ چه خواهد شد این JavaScript-- تا این ساده است فقط جاوا اسکریپت. چه این کار را انجام خواهد؟ آنچه در آن انجام خواهد داد؟ [01:18:03] بنابراین اول، شما پنجره onload را ببینید. درست است؟ بنابراین ما قبل از نمی بینم که. پس این است که رفتن به صبر تا زمانی که تمام پنجره بار. بنابراین آن را تا به صبر بار HTML، تمام تصاویر قبل از آن را هر چیزی. بنابراین اجازه دهید بگویم DOM ما لود شده است. همه چیز وجود دارد. پس چه اتفاقی خواهد افتاد؟ آره؟ [01:18:19] رسید دکمه به نظر می رسد. [01:18:22] داوین: دکمه در حال حاضر وجود دارد. آره، بنابراین دکمه در حال حاضر وجود دارد. اما این است که می گویند، خوب، اگر دکمه من کلیک کنید، تا دکمه در حال حاضر وجود دارد، مانند تگ HTML. صبر کنید، بازگشت واقعی سریع است. این برچسب راست راست در اینجا است برای رفتن به یک دکمه در حال حاضر. در حال حاضر یک دکمه وجود دارد. اما پس از آن، JavaScript در مرورگر برچسب، حق در اینجا، آن را می گوید، خوب، من می خواهم برای به دست آوردن عنصر توسط ID، بنابراین دکمه جستجو فقط می گوید، خوب، من می خواهم به نقشه این متغیر به آن را فشار دهید. به طوری که متغیر است فقط یک راه ساده تر برای دسترسی به دکمه. و من می گویم، خوب، اگر من کلیک کنید که را فشار دهید، بنابراین اگر من که عنصر کلیک کنید، و این عنصر اشاره به دکمه، اگر روی آن کلیک کنید من، پس از آن من می خواهم به تماس یک تابع. در اینجا یکی از آن ناشناس است توابع ما در مورد صحبت شد. [01:19:03] فقط برخی از عملکرد تماس بگیرید. در داخل آن تابع، اساسا چیزی که ما را دیده ام بسیاری، هشدار. شما با کلیک بر روی دکمه جستجو. آن را به یک دکمه اساسا داشته باشد. شما آن را کلیک کنید. شما دریافت می کنید که هشدار. X است. خودشه. آره؟ [01:19:16] رسید بنابراین اگر شما قرار داده اسکریپت [نامفهوم]، برچسب اسکریپت در HTML سایت خود بگذارید؟ [01:19:21] داوین: شما می توانید اسکریپت قرار داده مستقیم برچسب در سر دلیل این که شما این onload. این هم که شما یک کلیک. بنابراین آن را تا به صبر شما برای چیزی را کلیک کنید. اما onload فقط در امان باشند، به مطمئن بارهای همه چیز به HTML شما از قبل. آره؟ شما می خواهید به چیزی می گویند؟ [01:19:40] گیب: [نامفهوم]. داوین: آره. [01:19:42] رسید اجتناب بنابراین onload تعریف دکمه جستجو متغیر تنها با گفتن document.getElementByID جستجو دکمه نقطه [نامفهوم]. [01:19:49] داوین: قطعا، اما بعد از آن رشته خود را فقط بزرگ می شود. دقیقا، بنابراین این فقط به آن را برای شما آسان تر، آره. بله؟ [01:19:56] رسید از کجا ما ایجاد window.onload؟ و یا document.ready در؟ [01:19:58] داوین: بله است، وجود دارد. بله، وجود دارد، من بررسی می شود. [01:20:02] گیب: نه برای آنها را به مورد مراقبت. [01:20:03] داوین: خوب، پس من قصد دارم به هر حال به شما بگویم. بنابراین اساسا، فقط به طور کلی، به طوری که window.onload منتظر می ماند تا DOM خود را، تمام HTML خود را، بارهای. آن را تا بار تصاویر خود را منتظر. آن را تا بارهای همه چیز منتظر. document.ready در، آن را فقط منتظر می ماند تا بار DOM خود را. هنگامی که HTML غیر فعال است همه وجود دارد، یک بار DOM شما وجود دارد، شروع می شود در حال اجرا. این تنها تفاوت است. [01:20:23] گیب: سلامت عقل سریع چک کنید. بنابراین این دیده می شود نوع مانند یک خط از کد، درست است؟ از آنجا که آن را window.onload برابر یک دسته از مسائل. هنگامی که جاوا اسکریپت بار خوانده شده این، درست یا نادرست، تابع اجرا می شود. نادرست است. باشه؟ چه اتفاقی می افتد، شما فقط عبور این تابع به عنوان یک تابع ناشناس به window.onload. و پس از آن زمانی که آن را رفتن در واقع اعدام کنید؟ هنگامی که بارهای پنجره. است که یک واقعه است. به طوری که jus T چیزی که ما هستیم صحبت کردن در مورد قبل از آن، درست است؟ بنابراین، هنگامی که رویداد اتفاق می افتد، تابع اتفاق می افتد. همان چیزی که با onClick استفاده. [01:20:59] داوین: خوب، پس کسی در زمان دور document.ready در. اما این خواهد بود که same-- دقیق رسید علامت دلار، که document.ready در است. این یک میانبر است. [01:21:07] داوین: اوه، که است؟ خوب، این به این معناست document.ready در، میانبر. اما این همان window.onload است جز که تفاوت کمی من به شما در مورد گفت. و این jQuery است. پس این همان دقیق آن است thing-- این جاوا اسکریپت است. این است just-- برخی از مردم از آن فکر می کنم به عنوان یک سبک وزن تر، نسخه براق است که مقدار زیادی از قابلیت که شما احتمالا خواهید با استفاده از شود. پس این همین کار دقیق. [01:21:34] بنابراین همه چیز به نوع اشاره. بنابراین در مثال دیگر، ما حال document.getElementByID، بنابراین ما به حال این طولانی رشته که برای به دست آوردن این عنصر را با هر ID آن است. که توسط این تماس به جای حق در اینجا. بنابراین شما علامت دلار را ببینید، سپس شما نقل قول، هشتگ را ببینید. هشتگ همیشه یک انتخاب. این گزارش می گوید، خوب، این است که با ID. انتخاب برای یک کلاس چه خبر؟ [01:21:56] رسید نقطه. [01:21:57] داوین: نقطه، درست است. اگر شما فقط رفتن به برچسب، آنچه در آن است را انتخاب کنید؟ این فقط برچسب است، دقیقا. و شما می توانید که در اینجا نیز استفاده کنید. [01:22:05] گیب: و بر اساس برچسب، ما مانند معنی DIV، به عنوان مثال، یا سر. [01:22:08] داوین: یا بدن و یا P یا هر چیزی که می خواهم، آره. بنابراین در اینجا، OK، به جای گفت document.getElementByID، این همان چیزی دقیق آن است. فقط در jQuery، آن را کوتاه تر. پس از آن ساده تر. بنابراین پس از آن، بیش onClick استفاده، فقط کلیک کنید. تابع جی کوئری، به این تابع. هشدار همان دقیق آن است. بنابراین آن را کمی است کوچکتر یا کمی کوتاه تر، کمی از مردم bit-- فکر می کنم آن را کمی ساده تر برای نوشتن، یک کمی آسان تر به درک. اما این jQuery است. بسیاری از مردم کمی کمی گیج و نگران و آنها فکر می کنم، OK، جی کوئری متفاوت از جاوا اسکریپت است. من به یاد داشته باشید این دو چیز متفاوت است. این طور نیست. منظور من، آن نحو متفاوت است. اما جی کوئری جاوا اسکریپت است. این فقط یک ظاهر نسخه بهتر است که ممکن است راحت تر به درک که مردم استفاده کنید. گیب: آره، به صادق، که علامت دلار که شما در جی کوئری را مشاهده کنید، که فقط نام یک تابع که جی کوئری تعریف می کند. این کار چیز خاصی ندارد. آیا این فقط به نام از یک تابع، فقط می خواهم شما می توانید از علامت دلار را تعریف کنیم. [01:23:03] داوین: آره، بنابراین در مورد این صحبت کردیم. بعضی چیزها مفید است. من به دنبال بازگشت در آزمونها قدیمی. در چند آزمونها گذشته، آنها بوده ام مجبور به استفاده از چیزهایی مثل این. بنابراین document.ready در، بنابراین مطمئن شوید همه چیز قبل از اینکه شما لود شروع به انجام همه چیز. انتخاب ID، و یا انتخاب یک کلاس، آن را می خواهم فقط شود نقل قول نقطه برخی از کلاس، پایان نقل قول. ثبت کردن، بنابراین اگر شما هستیم ارسال یک فرم و تماس این تابع پس از فرم تسلیم. ارزش، بنابراین اجازه دهید بگویم من تا به حال یک فرم ارسال مقاله، مانند نام کاربر، یک ایمیل، هر. من یک جعبه متن بود. بنابراین من تایپ به آن جعبه متن. خوب، اگر شما می خواهید برای دریافت ارزش از این جعبه متن، شما با استفاده از نقطه وال. و پس از آن، در اینجا، نقطه HTML همان است مثل سند نقطه getElementByID نقطه innerHTML بطوری. به طوری که رفتن به بازگشت شما HTML از آن ID. در اینجا، شما فقط استفاده از برخی از ID یا هر نقطه HTML. که به دنبال HTML از آن عنصر است. اگر شما می خواهید به آن تغییر که HTML، شما می توانید آن چیزی منتقل می کند. بنابراین شما می خواهم نقطه HTML شود، و پس از آن در داخل، به نقل از، HTML جدید و یا چیزی. [01:24:05] گیب: خوب، پس AJAX. من واقعا دوست دارم به درک AJAX واقعا خوب است. بنابراین من می خواهید بچه ها به درک AJAX واقعا خوب است. از آنجا که اگر شما انجام دهید، شما تقریبا رفتن به درک که همه چیز است که با HTTP، پی اچ پی، جاوا اسکریپت به دلیل آن همه می آید با هم در AJAX. AJAX زبان است. AJAX یک تکنیک است. و آن را با استفاده تعداد زیادی از ابزار های مختلف. AJAX مخفف ناهمزمان جاوا اسکریپت XML. بنابراین روش، زبان، داده. [01:24:36] بنابراین زبان اصلی است که ما استفاده می کنیم در AJAX به ماشه همه چیز و برای رسیدگی به همه چیز بعد از جاوا اسکریپت است. به همین دلیل آن مربوط بسیار نزدیک به جاوا اسکریپت. و سپس ناهمزمان است چرا که ما این کار را انجام نمی همه در یک بار زمانی که ما در حال بارگذاری صفحه. این چیزی است که ما می توانیم انجام کارهای نوع موازی. ایده اصلی در پشت AJAX این است که شما می خواهید آن را به گرفتن برخی از اطلاعات خاص. به عنوان مثال، زمانی که شما تایپ جدید نام کاربری هنگامی که شما به ثبت نام کاربر، نام کاربری من است abc123. و پس از آن، در پایان از فرم، شما باید با کلیک بر روی ثبت کردن. و آن را به حال برای رفتن به سرور، و پس از آن اگر در پایگاه داده را بررسی کنید، abc123 در حال حاضر وجود دارد. و اگر آن را در حال حاضر وجود دارد، آن را می گوید، نام کاربری در حال حاضر در پایگاه داده. و آنها، شما باید برای پر کردن از کل فرم دوباره. و این واقعا، واقعا بد بود. [01:25:23] و پس از آن مردم می گویند، خوب، چرا ما نمی توانیم فقط انجام یک درخواست HTTP کوچک فقط به بررسی برای دیدن در صورتی که این کاربر در پایگاه داده قبل از کاربر به حال ارسال تمام فرم؟ بنابراین برای مثال، زمانی که کاربر اتمام تایپ abc123، اجازه دهید فقط به سرور کمی کمی و فقط درست یا غلط از سرور برای دیدن اگر که یک نام کاربری معتبر و یا نیست. OK، به طوری که یکی از اصلی است با استفاده از از AJAX امروزه هنوز هم. [01:25:49] داوین: خیلی واقعی سریع، در تماس آژاکس در jQuery، شما می توانید از نشان که شما می خواهم آن را به همزمان. شما باید این کار را انجام نمی شود. اما شما می توانید انجام این کار. و اگر شما را انجام داد، چه اتفاقی خواهد افتاد؟ خوب، برای مثال، زمانی که شما هستید گرفتن اخبار یا هر چیز دیگری، مرورگر شما فقط رفتن به صبر تا زمانی که کل تماس کامل است به جای اجازه دادن به شما انجام دهد دیگر همه چیز درست بعد از شما آن را کلیک کنید. [01:26:14] گیب: این عبور نمی کنه. اوه خدای من. با عرض پوزش! آره. "در گذشته، مشتری مورد نیاز برای درخواست کل محتوای یک وب سایت. " این چیزی است که من گفتم. این به ما اجازه می دهد تا برای ارسال GET اضافی و یا POST درخواست بدون نیاز به بازنگری مرورگر ما. بنابراین در پایان روز، ما هستیم در واقع ساخت یک درخواست HTTP در اینجا با استفاده از جاوا اسکریپت. از آنجا که قبل از، ما فقط جاوا اسکریپت استفاده می شود برای تغییر HTML که در حال حاضر آمد. و در حال حاضر، ما می توانیم آن را به رابط استفاده با وب سرور نیز هست. راه این اتفاق می افتد است که ما باید به مشتری. داوین مشتری است. و او تمام جاوا اسکریپت در حال اجرا به دلیل HTML گنگ است. جاوا اسکریپت هوشمند است. بنابراین داوین داوین است هوشمند خود بخشی و بخشی گنگ خود را. او قصد استفاده از بخش های هوشمند خود را در حال حاضر. او قصد استفاده از جاوا اسکریپت به درخواست، به عنوان مثال، آیا abc123 است در پایگاه داده یا نه. [01:27:04] بنابراین داوین، لطفا، شما فقط درخواست HTTP به من ارسال کنید. متشکرم. بنابراین او فقط یک درخواست HTTP ارسال می شود. شما می بینید که؟ و این فقط به همان شیوه است که هر درخواست HTTP فرستاده است. مرورگر، گوگل کروم و یا چیزی است، رفتن به که در داوین تلاش برای ارسال یک درخواست HTTP، رفتن به کمک HM کمی. و این برای رفتن تمام راه را به سرور. در حال حاضر، سرور در حال رفتن به پی اچ پی در اینجا، و یا هر زبان دیگر. فقط در یک درخواست HTTP عادی مانند. این یک درخواست HTTP نرمال است تقریبا. [01:27:31] و پس از آن، سرور رفتن به می گویند، خوب، داوین می خواهد من به چه چک این abc123 در پایگاه داده است. برو بحث به مدل. مدل می گوید این طور نیست. abc123 نام کاربری خوب است. و سپس، وب سرور در حال رفتن به استفاده از پی اچ پی به ارائه نوعی از فایل. این می تواند به معنای واقعی کلمه فقط یک فایل که شامل "بله" در آن است، و یا "نه، یا چیزی شبیه به آن. این می تواند هر فایل. [01:27:54] این می تواند مانند من قصد دارم به ارسال داوین یک عکس از یک اردک اگر آن را در پایگاه داده است و ارسال یک عکس از یک همستر اگر آن را در پایگاه داده نیست. این امر می تواند نوع گنگ، اما آن کار خواهد کرد. خوب، پس من یک اردک به داوین ارسال. داوین یک اردک. و در حال حاضر، که در حال رفتن که مسئولیت رسیدگی به اردک؟ بخش های هوشمند داوین دوباره، بنابراین جاوا اسکریپت، درست است؟ جاوا اسکریپت فرستاده درخواست، و جاوا اسکریپت رفتن به دریافت درخواست و تفسیر آن در بعضی از فرم. [01:28:22] و در این مفهوم، آن را به می گویند، خوب، اگر اردک پس از آن من خوب هستم. اگر همستر، سپس من قصد دارم می گویند، هیچ، نام کاربری در حال حاضر در پایگاه داده وجود دارد. اما معمولا، شما نمی رفتن به ارسال یک اردک. شما در حال رفتن به ارسال چیزی کمی دقیق. و آنچه ما استفاده از XML است. و اخیرا، ما با استفاده از JSON. JSON است فقط جاوا اسکریپت نشانه گذاری جسم، که اساسا شما دریافت کل شی جاوا اسکریپت. و شما آن را در یک فایل، فقط دوست دارم که شی CS50 که شما بچه ها را دیدم. شما آن را در یک فایل، و شما آن را ارسال را به داوین. [01:28:53] بنابراین در این مورد، من ایجاد یک شی جاوا اسکریپت و فقط می گویند، کاربر وجود دارد، بله. و یا کاربر وجود دارد، هیچ. و ارسال آن به او. و چرا JSON؟ از آنجا که شخص که دریافت این است رفتن به استفاده از جاوا اسکریپت که مسئولیت رسیدگی به پاسخ. و جاوا اسکریپت به خوبی به خاطر کار آن ابتدا باید جاوا اسکریپت نشانه گذاری شی نامیده می شود. درست است؟ بنابراین او فقط می توانید تماس بگیرید تابع و دریافت این شی بلندی از پاسخ. و پس از آن، او را برای رفتن به اینکه آیا می دانید که کاربر در پایگاه داده است یا نه. [01:29:22] بنابراین می بینید، همه آن را آینده با هم در سرور وب، و پس از آن یکی HTTP به درخواست وجود دارد و یک پاسخ HTTP و همه چیز. بنابراین مطمئن شوید که شما بچه ها را درک این تماس AJAX زیرا کمک می کند شما را در درک همه از مفاهیم ما در حال صحبت کردن در مورد. [01:29:37] بنابراین در اینجا یک مثال از AJAX با jQuery. و در اینجا، ما با JSON دریافت انجام دهد. بنابراین ما در حال تلاش برای به دست آوردن تصویری از یک گربه در اینجا، و یا یک اردک. ما در حال تلاش برای بدست آوردن یک فایل JSON. و پس از آن ما تا صبر آن را انجام داده، نقطه انجام می شود. این بدان معناست که من منتظر پاسخ. این ممکن است در حالی که کمی طول می کشد. سپس، شما در حال بارگذاری کمی را ببینید. اگر می خواهید برای انجام این کار در وب سایت شما. بنابراین نقطه انجام می شود، و پس از آن چه اتفاق می افتد زمانی که آن را انجام داده؟ شما در ناشناس عبور تابع، درست مثل ما قبل دیدم. از آنجا که انجام یک رویداد است، فقط مانند کلیک ماوس و یا هر چیز دیگری، برای جی کوئری. بنابراین شما در این تابع با عبور داده ها، متن، وضعیت، و jqXHR. و در واقع، که فقط برخی از متغیرهای که شما می توانید بعد از به استفاده از وضعیت درخواست HTTP، داده هایی را که آن را برای ارسال به شما. پس شما بعد از می توانید آن را تفسیر و انجام کاری با آن معنی دار. و اگر نتواند، زمانی که ممکن است آن را شکست؟ خوب، هنگامی که درخواست HTTP می دهد شما 500 یا چیزی شبیه به آن. سپس، آن را به شما بگویم وضعیت، چه نوع شکست که بود، و تمام انواع چیزهای. شما باید مطمئن شوید که مسئولیت رسیدگی به هر دو مورد، در غیر این صورت برنامه می رود دیوانه. [01:30:42] داوین: بنابراین بله، این دقیقا همان آنچه شما در گذشته P-مجموعه خود را دیدم. تماس AJAX واقعی در JSON دریافت است. این تماس است. و پس از آن، نقطه انجام است مانند آن را چک اگر آن را موفق. اگر موفقیت آمیز باشد، شما می خواهید برای انجام کاری با داده ها. شما به عقب بر گردیم از آن اطلاعات درخواست JSON. این چیزی است که شما به عقب بر گردیم. بنابراین اگر شما از شما P-مجموعه ای به یاد داشته باشید، بسیاری از شما می خواهم براکت داده بودند من یا هر چیز دیگری، لینک نقطه یا عنوان. هر آنچه به آینده از آن JSON، هر آنچه که زمینه که در آن شی JSON هستند، این چیزی است که شما در حال گرفتن پشت. اطلاعات چیزی است که شما در حال گرفتن پشت. وضعیت متن، تنها چیزی است که به شما اجازه می دانم که چه اتفاقی افتاده است. و پس از آن، jqXHR، که فقط جی کوئری درخواست XML HTTP. این درست مثل یک شی. و پس از آن شکست، درست مانند گیب گفت. گیب: در مثال کوچک ما از abc123 فقط برای بررسی در صورتی که در پایگاه داده یا نه، داده می شود چیزی است که شما را انجام دهد، اگر نقطه داده نام کاربری وجود دارد، است که آنچه PHP خود را تولید شده برای شما، اگر نام داده نقطه کاربر وجود دارد، پس از آن من قصد دارم برای هشدار، کاربر نام وجود دارد. دیگری، من فقط رفتن به اجازه کاربر ادامه پر کردن فرم. OK، امنیت، سرد. [01:31:50] داوین: من می خواهم به؟ [01:31:52] گیب: من دوست دارم این یکی. بنابراین چیزی است که به نظر می رسد آشنا. ما در حال تقریبا انجام می شود. بنابراین این فقط مثال است شما بچه ها در کلاس را دیدم. شما شد argv1 با استفاده از. که مانند یک استدلال خط فرمان است. و ما مم کپی که به یک بافر اندازه 12. مشکل در اینجا چیست؟ سرریز بافر! از آنجا که ما یک بافر اندازه 12. argv1 ممکن است به اندازه دو میلیارد داشته باشد. ما هیچ چک کردن مرز نمی کنند. بنابراین ما ممکن است مقدار زیادی از حافظه کپی کنید. و ما به ویژه خواهید بود بد در مورد این. ما چطور می توانیم انجام این کار است بسیار بسیار در این مورد چیست؟ بله؟ رسید بخشی از دو میلیارد همه چیز حاوی کد اجرایی که برمی گرداند [نامفهوم]. گیب: دقیقا. به طوری که نوع است چیزی که مردم استفاده به فرار از زندان آیفون، به عنوان مثال. بنابراین این نوع از چیزی. از آنجا که شما فقط می توانید دستگاه را اجرای هر کدی که دوست دارید. تعمیر، بنابراین مشکل خاصی نیست. فقط برای محدوده تیک بزنید. شما برای تهی به دلیل چک ما همیشه برای null به زمانی که ما در حال برخورد با رشته. و پس از آن، شما را از طول رشته قبل از. و اگر رشته طول یک رشته معتبر است طول، است که در 0 و 12، و سپس ما خوب است. [01:33:03] داوین: اگر شما برای بررسی نمی تهی، واقعی سریع، چه اتفاقی خواهد افتاد؟ آن را گسل از seg. چرا آن را SEG گسل؟ از آنجا که شما خواستار strlen در تهی. گیب: آره. درست یا غلط، با استفاده از یک رمز عبور یک ایده خوب است. [01:33:19] رسید کاذب. [01:33:20] گیب: غلط. استفاده از بسیاری از کلمات عبور، و بزرگ، بلند هستند. آیکون قفل اطمینان از امنیت. [01:33:26] رسید کاذب. [01:33:27] گیب: غلط. این هیچ معنی ندارد. این فقط یک آیکون است. SSL در برابر محافظت مرد در عمق حمله. رسید کاذب. گیب: غلط. خوب، پس تمام کسانی که نادرست است. زیبا. [نامفهوم] می خواهم در مورد این صحبت کنید؟ به نوبه خود شما. داوین: انواع حملات، مرد در وسط. یک مرد در عمق حمله چه خبر؟ رسید [نامفهوم]. داوین: اگر شما یک ارسال HTTP درخواست، آنها می توانند این کار، درست است؟ اما اگر شما در حال ارسال HTTPS، آنها احتمالا قادر نخواهد بود برای انجام این کار. بسیاری از نقاط وجود دارد همراه اتصال شما. شما باید روتر. شما باید سرور دی ان اس. اگر کسی قادر است به لحاظ جسمی ببینید چه چیزی شما ارسال، تا کسی قادر به است در واقع بین شما، مشتری و سرور، و است قادر به دیدن آنچه شما ارسال، این مرد در عمق حمله است. بنابراین برای دیدن آنچه که شما در حال تلاش برای از دریافت سرور، و یا قادر به see-- بدتر است، شما ممکن است قادر به دیدن کوکی ها و یا چیزی شبیه به آن. [01:34:16] بنابراین برای مثال، اگر شما با استفاده از SSL نیست، او ممکن است قادر به دیدن جلسه خود را کوکی ها ID. و این است جلسه ربودن نام چرا که او کوکی ها ID خود را می بیند، و پس از آن او قادر به رفتن به که وب سایت و تظاهر به شما باشد. از آنجا که فقط در پی اچ پی دوست، به یاد داشته باشید هنگامی که ما وارد شده، چه کنیم؟ ما ID جلسه به ID برابر مجموعه. به طوری که شما شناسایی می کند. به همین دلیل شما می توانید نمونه کارها خود را ببینید و نمونه کارها هر کسی نمی دیگری. [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.com، آن را بلافاصله هدایت شما به badguy.com، اما از جمله اطلاعات کوکی های خود را. پس از آن تغییر مسیر سریع است، اما کوکی فیس بوک خود را با که تغییر مسیر شامل، و این که چگونه آنها [نامفهوم]. گیب: آره، وجود دارد برخی از چیزهایی که بسیار متوسط که مردم می توانند انجام اگر این وجود دارد. برای مثال، اگر فیس بوک اجازه همه برای تغییر نام کاربری خود را، و آنها هیچ نمی چک سلامت عقل، بنابراین شما می تواند یک چیز جاوا اسکریپت درج که تصویر خود را به یک همستر تغییر می دهد. و این درج همان جاوا اسکریپت به هر کسی که بازدید شما. بنابراین هر کسی که بازدید شما است، همان چیزی که در نام کاربری. و چون آن یک ویروس است، آن گسترش می یابد نمایی. داوین: ما آخرین جست و خیز یکی، و سپس ما در حال انجام می شود. بنابراین این فقط یک مثال دیگر است. پس این است که آنها نمی فرار جدول SQL خود را. بنابراین شما می توانید آن را رها کنید. بنابراین شما می خواهید برای فرار از همه چیز. که مثال قبلی بود با اسکریپت سایت صلیب. با عرض پوزش ما کمی فرار دیر است. فردا، متاسفم! فردا، ما ساعات اداری. بنابراین ساعات اداری در Cabbot 8:00-11:00. ساعات کار اداری هستند به شدت برای سوالات مسابقه.