R.J. آکینو: اجازه دهید شروع کنید. پس این امتحان 1 است. در اینجا برخی از اطلاعات در سطح بالا است. صفحه درباره برای آزمون می باشد در این URL، دیگر CS50.net ندارد، هر چند که هنوز هم کار می کنند. این CS50.harvard.edu/quizzes/2013/1 است. این بزرگ درباره صفحه، گفتن شما که در آن و زمانی، یعنی چهارشنبه بعد در یک دسته از اتاق. و روز چهارشنبه بعد، من از حالا به معنی دو روز. تمام این اطلاعات وجود دارد. اما آن انباشته است. بنابراین همه چیز از نیمه اول سال است به طور بالقوه در مسابقه، دلیل این که شما واقعا نمی توانید انجام دهید پیشرفته همه چیز در C بدون اگر شرایط و برای حلقه ها و مانند آن. اما وجود خواهد داشت تاکید بر مواد پوشش داده شده از امتحان 0، شروع با ساختارها و فایل I / O. این به طور معمول به چالش کشیدن از امتحان 0. نمره متوسط ​​و به طور معمول پایین تر است. سخت درس بخواند. در حالی که شما در حال مطالعه، لازم است به استفاده از CS50/discuss به ارسال سوالات خود و خواندن سوالات افراد دیگر. بنابراین اگر شما هر گونه سوال ندارد، ورود و به عنوان خوانده شده سوالات دوستان خود را. آنها احتمالا سوال خوب است. و آزمونها عمل. ما شده ایم دادن آزمونها برای هفت یا هشت سال در حال حاضر. آنها همه آنلاین. سوالات آینده مشابه هستند به پرسش های قدیمی. که ما چگونه آنها را. مسابقه هنوز موجود نیست. هیچ یک از ما آن را دیده اند. اما آن را مانند نگاه آزمونها قبلی. برای این جلسه بررسی، این است که یک لیست جامع از موضوعات. شما نمی توانید فقط این شرکت و پس از آن کاملا برای مسابقه آماده شده است. در غیر این صورت، آن را نمی خواهد که خیلی از مسابقه. و این نیز نه لزوما همه چیز شما نیاز به در مورد هر دانم با توجه به موضوع. این به معنای به شما در معرض چیز ما تحت پوشش، شما را به یاد چیزی است که ما پوشش داده شده، و راه را در که ما آن را پوشش داده است. اما شما باید برای رفتن بیشتر و عمیق تر زمانی که شما به دو بررسی مطالعه که شما همه چیز را در مورد هر داده دانم موضوع و که شما را در پر کرده ام همه گوشه ها که بودند تحت پوشش در سخنرانی. یادداشت مسابقه به شما بگویم که برای رفتن به یادداشت کاتب، تماشای فیلم سخنرانی. این یک راه خوب برای مطمئن شوید که شما را تمام پایگاه های خود را پوشش داده است. بنابراین شروع به کار، زمانی که من این ساخته شده اسلاید، من سعی کردم برای قرار دادن که من پیدا کردم اطلاعات. بنابراین برای فایل I / O، به عنوان مثال، هفته 7، دوشنبه سخنرانی، و ارسال شده بخش 6 و مجموعه مسائل همه اطلاعات در مورد فایل I / O. من انجام داده ام این برای هر موضوع. بنابراین کسانی که اسلاید عنوان ممکن است برای شما مفید باشد. بنابراین در اینجا ما فایل I / O. به یاد داشته باشید، در مجموعه مسائل 5، با استفاده از fopen، fclose، fwrite، از fread و fseek. پس از بهبود 30ish عکس JPEG و با تغییر اندازه و خراب با مپ، شما باید بسیار آشنا باشد با این توابع و چگونه کار می کنند. اگر شما دیگر آشنا، قطعا آنها را بررسی می کند. و مطمئن شوید که شما را در درک آنچه استدلال های مختلف، زمانی که آنها استفاده می شود. اما شایع اشکالات مربوط به فایل شما ممکن است در مورد خواسته - خوب، اگر شما را فراموش کرده ام به چک کردن fopen در واقع قبل از اینکه شما به کار کرده است تغییر یک فایل. است که می تواند بد باشد. اگر شما را فراموش کرده ام به fclose یک فایل که شما fopened ام، که شبیه به نشت حافظه. این خیلی بد است. و فراموش کردن برای بررسی اگر شما قبل از انتهای فایل رسیده است شروع به نوشتن به آن. بنابراین اگر شما می گویند، با سلام، من در هستم در پایان فایل. من 5 کلمه در ادامه متن می دهد. خوب، که احتمالا رفتن به نمی کار از راه شما انتظار می رود. این واقعا آن را برای فایل I / O، چرا که بسیار از آن با مشکل تنظیم شده است. بنابراین اگر شما درک آنچه که قرار بود در تاریخ در مجموعه مسائل 5، به یاد داشته باشید bitmats و عکس JPEG، پس شما احتمالا تمام هستی تنظیم برای فایل I / O. در صورتی که یک بیت است فازی، قطعا بررسی این مشکل تنظیم و مواد همراه است. ساختار موضوع است که بر روی بودند خط بین امتحان 0 و امتحان 1. آیا کاملا برش برای امتحان 0 را ندارد. به طوری که آنها قطعا می باشد مسابقه 1، هفته 7، روز دوشنبه. ساختار چیست؟ در اینجا ما یک ساختار نشان می دهد. آن را مانند یک نوع جدید است. آن را مانند یک ظرف است برای زمینه های متعدد. در این مورد، ما ساختار را اعلام کرده ام دانشجویی که دارای دو رشته - یک رشته که ما خواستار نام و یک int است که ما خواستار سن. بنابراین، هنگامی که من در اطراف دانشجویان تصویب و یا I تغییر دانش آموزان، من قادر به نام و نام خانوادگی و سن آنها دسترسی داشته باشید. اجازه دهید به بعضی کد نگاه کنید برای آن. در اینجا ما می بینیم که من اعلام کرده ام یک دانش آموز است، درست مثل من اعلام می کنم هر متغیر - اعضای هیات ایکس، y هوشمند، و غیره. در اینجا دانشجو است. او را با هیچ چیز در زمینه های خود را شروع می شود. بنابراین اجازه دهید آنها را. شما مجموعه ای زمینه یک ساختار با نقطه. بنابراین من در اینجا گفته ام که s.name = RJ. و s.age = 21. شما همچنین می توانید زمینه های بروز رسانی به همان شیوه شما می خواهم به روز رسانی مقدار یک متغیر. بنابراین من می خواهم نام من تغییر از RJ با هیچ دوره به R.J. نوشته راه درست باشد. این امر می تواند s.name = RJ، همان که ما آن گفت: در اصل. و پس از آن شما می توانید آنها دسترسی داشته باشید. بنابراین ما آنها را تنظیم کرده ام. ما آنها را به روز کرده ام. شما همچنین می توانید به آنها دسترسی در همان راه. بنابراین در اینجا، من چاپ R.J. آیا 21 سال. و من دسترسی به این ارزش ها با s.name و s.age. به طوری که دسترسی به ساختمانها با نماد نقطه. جهت مشاهده فرم خرید، سوال؟ یک مدعو: آیا دلیل بر وجود دارد اسلاید قبلی که شما قرار داده نشده دانش آموز را در خط بالا، مانند typedef دانشجوی ساختار و پس از آن دانش آموز در پایان؟ R.J. آکینو: پس پرسش این بود، در این اسلاید، ما به طور معمول دیده می شود typedef گره ساختار و پس از آن زمینه های ساختار و پس از آن گره کلمه. و چگونه به اینجا می آیند من می گویند، typedef نمی دانشجوی ساختار و پس از آن زمینه های ساختار و پس از آن دانش آموز است؟ دلیل آن این است که من لازم نیست آن را در داخل از ساختار دسترسی پیدا کنید. پس از آن OK آن را ترک بدون نام. من فقط می توانید آن را به عنوان ترک ساختار ناشناس. دلیل ما این کار را برای لیست های پیوندی و چیز است، زیرا در درون شما نیاز دارید برای ارجاع به یک ستاره گره ساختار. بنابراین ساختار است به یک نام، بنابراین شما می توانید آن را بعدا دسترسی پیدا کنید. این جزئیات کوچک است. اما شما به طور معمول خواهیم typedef struct را ببینید آکولاد اگر شما لازم نیست نام و typedef ساختار برخی از نام پس از آکولاد اگر شما خواهد شد نیاز به نام. به طوری که سوال خوبی است. و در آن لحظه، ما تمایل به تغییر ساختمانها و عبور در اطراف ساختمانها توسط مرجع، نه با ارزش. بنابراین ما فقط عبور در اطراف اشاره گر به ساختار به جای عبور از اطراف خود ساختار. بنابراین شما به دفعات رفتن به با استفاده از، در این مورد، دانش آموز * یا ساختار گره * یا گره * به جای از دانش آموزان و یا گره. بنابراین در اینجا، من گفته ام، OK، PTR متغیر است برای رفتن به آدرس بازدید کنندگان. آن را به اشاره گر به دانش آموز R.J. بنابراین ما می توانیم در این زمینه ها را دریافت کنید همان که ما هر چیزی را دریافت کنید. اول، ID مرجع اشاره گر برای دریافت ساختار. که * PTR است و پس از آن یک نقطه و سپس سن. بنابراین برای دسترسی به این زمینه، و من به روز شده ام آن در حال حاضر به 22، به دلیل، اجازه دهید مثلا تولد من بود. یک نحو میانبر وجود دارد با استفاده از فلش در اینجا. بنابراین PTR فلش سن فقط همان * ptr.age. در حال حاضر، این چیزی است که شما باید به به خاطر سپردن و به یاد داشته باشید. شما از آن استفاده زیادی در pset6، pset هجی. اما این است که در واقع چه خبر است در زیر هود. این هرگاه اشاره گر و پس از آن دسترسی به آن را. سوال؟ یک مدعو: [نامفهوم]. R.J. آکینو: پس چرا با استفاده از ما اشاره گر به ساختار به جای آن از خود ساختارها؟ به این دلیل خواهد بود اگر شما در حال عبور ساختار به تابع، شما احتمالا می خواهم به تصویب اطراف، فقط 4 یا بیشتر بایت است که نشان دهنده اشاره گر، به عنوان مخالف به طور بالقوه 30 یا 40 بایت هستند که ساختار. پس از عبور چیزی را به یک تابع آسان تر است که چیزی در کوتاه مدت کوچکتر است. سوال؟ یک مدعو: شما ممکن است این ذکر در آغاز، اما وجود دارد دیگر لام تا در [نامفهوم]؟ R.J. آکینو: این اسلاید خواهد بود تا پس از جلسه بررسی. ما آنها را بر روی وب سایت ارسال. بنابراین در حال حرکت و در حال حرکت کمی سریع تر، ما قصد داریم تا در مورد اطلاعات صحبت سازه ها. هستند بسیاری وجود دارد. ما یک دسته از آنها را پوشش داده است. در اینجا چیزی است که شما باید درک کنند در مورد ساختار داده ها. شما واقعا باید در بالا درک سطح چیزی است که هر یک از ساختار است. آیا می توانید به زبان انگلیسی برای توضیح خود را از دوستانم که CS50 گرفته که چگونه ما در حال سازماندهی داده های ما و به همین دلیل ما می خواهم با استفاده از چیزی است که در این راه؟ چیزی که یکی است. چیزی که دو، درک پیاده سازی. بنابراین درک چگونه به استفاده از این چیزها در C. و ما خواهید بود رفتن بیش از این. و پس از آن چیزی که سه خواهد شد می دانم که زمان اجرا و محدودیت های سازه های مختلف استفاده می کنید. بنابراین درک اینکه چرا شما را با استفاده از به جای یک آرایه هش جدول. درک کنند که چگونه به سرعت، به طور متوسط، دسترسی به یک جدول هش است. درک آنچه عملیات به سرعت در لیست پیوندی اما آهسته در آرایه ها و بالعکس. بنابراین درک کنند که، شما به درک نماد O بزرگ فقط می دانم چگونه در مورد این صحبت انواع چیزهای. و ما در مورد آن صحبت کنید. بنابراین اولین چیزی که، لیست ها مرتبط است. در اینجا یک عکس در سطح بالا است از یک لیست پیوندی. ما این را نشان می دهد در کلاس. ما به طور معمول 10 نفر ایستاده در مرحله. اما ما باید یک سری از گره که در آن هر گره تا به برخی از ارزش و یک اشاره گر به مقدار بعدی آن است. پس از یک گره دریافت به بعد، شما فقط می گویند، من گره بعدی را. شما باید آن گره. من گره بعدی را. شما باید آن گره. من گره بعدی را و به همین ترتیب تا زمانی که هیچ چپ گره وجود دارد. بنابراین ادامه به بحث در مورد آن را در سطح بالا است. این بسیار آسان است برای وارد کردن همه چیز به یک لیست پیوندی. اگر شما در مورد منظور اهمیتی نمی دهند، شما فقط می توانید آن را رها کنید درست در آغاز. که زمان ثابت است. اما آن را سخت برای پیدا کردن یک مقدار است. اگر شما در حال تلاش برای درخواست، هفت در لیست من است؟ شما را از طریق رفتن هر مقدار واحد. آیا این هفت؟ آیا این هفت؟ آیا این هفت؟ آیا این هفت؟ دوباره و دوباره. و آن O (n) است. بنابراین، هنگامی که مطالعه برای آزمون، مقایسه این با آرایه ها. این است که OK؟ چراغ کم نور رفت. OK. هنگامی که یک لیست پیوندی بهتر است؟ هنگامی که آرایه ای بهتر است؟ بنابراین اجازه دهید در برخی از کد است. در اینجا یک گره بالقوه است. این یک ساختار است. این تعداد اعضای هیات، که خواهد بود ارزش ما. و آن را تا یک گره ساختار * بعدی، که اشاره گر ما به گره بعدی است. بنابراین در اینجا، ما می توانید ببینید که ما اتفاق افتاده است به یک int در گره ما قرار داده است. اما اگر این یک لیست پیوندی از کاراکتر بودند ستاره و یا یک لیست پیوندی از شناور، ما کاملا می تواند که بیش از حد انجام دهد. به یاد داشته باشید در pset6، شما احتمالا تا به حال لیست پیوندی از ستاره کاراکتر یا فقط آرایه کاراکتر استاتیک می باشد. اجازه دهید در اینجا در یک عملیات. بنابراین ما می خواهیم برای قرار دادن جدید N به لیست پیوندی است. ما شروع با یک اشاره گر سر این است که یک اشاره گر به گره است که مقدار ازت و بعد از یک اشاره گر است که امتیاز به این گره ارزش است n و بعد از تهی، به دلیل این آخرین گره است. بنابراین به نفع زمان، من خواهد شد قرار دادن تمام کد بر روی صفحه نمایش. و ما را از طریق آن راه رفتن چند خط در یک زمان. بنابراین در اینجا از کد است. من امیدوارم که آن را قابل خواندن است. اولین چیزی که ما انجام شده است ما یک گره جدید malloc. بنابراین آن را می سازد یک اشاره گر به گره جدید است که کاملا نیست که هر چیزی مجموعه در آن نشده است. ما را بررسی کنید تا مطمئن شوید که گره جدید تهی نیست. در غیر این صورت، ما باید تسلیم. بنابراین با بررسی که ما در حال حاضر مجموعه ای از ارزش ها در گره. پس ما N جدید را در قسمت N ما قرار داده است. و ما مجموعه ای از اشاره گر بعد به نقطه را به سر اصلی، به طوری که ما می توانیم در حال حاضر این قرار داده اند گره را به لیست ما است. در نهایت، ما را به نقطه سر جهانی به گره جدید ما، به طوری که اگر ما به بود شروع در سر، ما را در این گره جدید برای اولین بار به جای گره قدیمی برای اولین بار. و هنگامی که این تابع خارج می شود، متغیر گره جدید دیگر وجود ندارد، چرا که آن را به تابع بود. بنابراین این دولت از جهان است. سر جهانی ما اشاره به جدید ما گره اول، که اشاره به ما گره اولین اصلی که نقاط به گره بعد از آن. که درج شد. من امیدوارم که نسبتا بود ساده را دنبال کنید. هنگامی که شک دارید، قرعه کشی یک عکس. بنابراین پیدا کنم که صحبت کردن در مورد لیست های پیوندی و به دنبال در کد بسیار مفید است. در حالی که به دنبال یک عکس از یک مرتبط فهرست اجازه می دهد من فکر می کنم، آه، پس من این گره را در اینجا. اما در صورتی که اشاره گر به روز کنم، آن را به پایان می رسد تا قطع. و من فراموش کرده ام که در آن گره می رود. و کد خارج می شود. و شما باید چند گره که در حال قطع شده است. و شما پایان ندارد تا با لیست شما می خواهید. بنابراین اگر شما به تصویر جلب و آن را انجام دهید گام به گام، امیدوارم، شما خواهید دید در جهت درست از مسائل را در نظر به روز رسانی اشاره گر مطمئن شوید که در لیست می آید با هم. درج نسبتا سر راست است. یکی از پیچیده تر خواهد بود درج در فهرست طبقه بندی شده اند. یک تابع پیچیده تر است حذف و پیدا کردن، بنابراین به دنبال از طریق یک لیست به ببینید اگر چیزی است که وجود دارد. شاید شما این را در pset6 زمانی که شما رو به جدول هش خود را و شما گفت، خوب، سیب کلمه است در لیست پیوندی من؟ بنابراین شما ممکن است در حال حاضر این انجام می شود. اما قطعا، تازه کردن حافظه خود را و سعی کنید به reimplement پیدا کردن و reimplement حذف برای یک لیست پیوندی. توجه داشته باشید طرف پاپ، نیز وجود دارد با پیوند مضاعف لیست ها، که در آن شما اشاره گر است که هر دو رو به جلو و نقطه رو به عقب، به طوری که شما می توانید به به گره بعدی و گره قبلی است. و یک سوال در سال گذشته وجود دارد مسابقه از این نوع، صحبت کردن در مورد لیست مضاعف مرتبط است. در حال حاضر، که یک ساختار است که شما را نسبتا آشنا با، به دلیل اینکه اکثر از شما احتمالا آنها را در pset6 استفاده می شود. در اینجا است که کمی کمتر آشنا است. یک نکته، من فکر می کنم که امتحان 1 است در درجه اول سخت تر از امتحان 0، به دلیل چیز شما انجام، شما اند به همان اندازه انجام می شود. برای قرار دادن که دیگر، برای امتحان 0، شما مقدار زیادی از C. نوشته بود و ما در مورد C. از شما خواسته برای امتحان 1، ما قصد داریم به شما در مورد درخواست PHP و جاوا اسکریپت، که می اند به همان اندازه از نه نوشته شده است. ما قصد داریم به شما در مورد C-کد بخواهید که شما نوشته شده است به همان اندازه از، این مسائل پیشرفته C. پس قطعا، تمرین ما چیزهای در مورد در سخنرانی صحبت کرد که شما لزوما نمی در مسئله تنظیم شده است. صحبت از آن، شما نوشته شده است پشته بر روی یک مشکل تنظیم شده است. اما آن را در سخنرانی بود. در اینجا تصویر سطح بالا است پشته است که ما هر سال نشان می دهد. این پشته از سینی در سالن ناهار خوری مادر. در سطح بالا، پشته آخر در، اول از ساختمان داده. این بدان معناست که شما قصد برای قرار دادن همه چیز در - 1، 3، 7، 12، 14، منفی 0. یک چیزی که من نمی توانست گفت: - منفی 3، 0. شما دادن تمام این کارها شوید و یکی از آخرین شما را در قرار دادن اول یکی که رفتن به بیرون می آیند. بنابراین شما باید دو عملیات - فشار و پاپ. همه از قرار دادن در بود که من قیافه مثل این فشار. و پس از آن زمانی که من در به چنگ زدن به رسیدن چیزی یا رسیدن در بالا برای گرفتن چیزی که پاپ است. بنابراین ما در حال به پیاده سازی پشته. و ما آنها را در سخنرانی نشان داد با استفاده از آرایه ها. اما شما می توانید آنها را انجام دهد با استفاده از لیست های پیوندی. پشته داده های مفهومی است ساختار، یک دوست ندارم یک پیاده سازی خاص. پس چه خواهد بود که به نظر می رسند؟ این امر نوعی شبیه به این. شما می اندازه عدد صحیح داشته باشد. و شما می خواهم مجموعه ای از ارزشها که ما خواستار سینی، چرا که آنچه که در تصویر بود ما - اعضای هیات سینی - و پس از آن برخی از حداکثر ظرفیت. بنابراین آنچه را که شبیه فشار؟ خوب، اگر ما یک پشته ها، پس از آن به فشار چیزی بر روی بازدید کنندگان، ما را دریافت کنید اندازه است. و این خواهد بود که بعدی نقطه باز از آرایه است. بنابراین اگر ما سه چیز در پشته ما، سپس سینی های 3 خواهد بود که بعدی نقطه ای باز، به خاطر 0، 1، و 2 در حال حاضر پر شده است. بنابراین ما ارزش به قرار s.trays [s.size]، نقطه سوم. و بعد ما افزایش s.size می گویند، با سلام، ما سه چیز به حال قبل. در حال حاضر، ما چهار. پس دفعه بعد شما فشار، شما رفتن به قرار دادن چیزی در 4. و یا دفعه بعد که شما موسیقی پاپ، شما در 3 جای 4 یا هر چیز دیگری است. و پس از آن ما تا به راست مثلا، با سلام، ما موفق بوده است. این کار کرده است. به عنوان یک قاعده کلی، اگر یک تابع که قرار است تا به راست و یا نادرست همیشه مقدار درست، شما ممکن است چیزی را اشتباه انجام داده اند. بنابراین کار می کند؟ خوب، آن را خوب کار می کند برای 1، و 2 و 3 و 4 و پنج. اما اجازه دهید بگویم من ظرفیت من برسد. من پس از آن به یک مشکل اجرا، به دلیل اگر اندازه همان ظرفیت است، من هستم اکنون در تلاش برای قرار دادن چیزی به مجموعه ای که در آن من فضا ندارد. بنابراین یک بررسی کوتاه به رفع این. اگر s.size ظرفیت ==، بازگشت کاذب. در غیر این صورت، و انجام کاری که ما کردیم. پس چه چیز دیگری می تواند بپرسید ما در مورد آمدن؟ چه چیز دیگری باید به شما مطالعه؟ چه چیز دیگری باید به شما تمرین می کنید؟ خوب، اجرای موسیقی پاپ. ما در حال حاضر انجام فشار. من این مشکل رفع شود. اجرای غیر آرایه، که در آن شما با استفاده از لیست پیوندی، شاید. اجرای غیر هوشمند. ما نوع داده int در اینجا. اما می تواند شناور بوده است. من می توانم رشته بوده است. این می تواند ستاره کاراکتر بوده است. در آزمونها گذشته برای انواع نگاه سوالات ما در مورد پشته خواسته ام. من می گویم که ما پشته اطراف تحت پوشش همان که ما آنها را در تحت پوشش سال گذشته. بنابراین سوالات آزمون باید یک نشانه خوب است. حرکت رو به جلو و حتی سریع تر، صف. آنها مانند پشته است. اما آنها برای اولین بار در هستید، برای اولین بار از. اگر بریتانیا هستید، صف کلمه احتمالا بسیاری از حس به شما ساخته شده است. در غیر این صورت، ممکن است شما را از آن به عنوان یک خط شنیده می شود. آنها مثل خط کار در فروشگاه اپل. اولین کسی که به نشان می دهد تا در 03:00 در اول صبح است فرد به خرید آی پد خود را. بنابراین ما باید دو عملیات - در نوبت قراردادن و dequeue. در نوبت قراردادن کسی قرار می دهد در خط. Dequeue کشد اول فرد در خارج از خط. باز هم، ما می تواند پیاده سازی این کار را با یک آرایه. بنابراین چیزی که ما ساختار است در سخنرانی نشان داد؟ این یکی. باز هم، اعداد. باز هم، اندازه و این چیزی که جلوی جدید. چرا چیزی به نام جبهه وجود دارد؟ این شاخص از بعدی عنصر به dequeue. این فقط در داخل پیگیری آن مرد اول برای نشان دادن، به طوری که ما می توانید آن را بیرون بکشد زمانی که ما نیاز به. قطعا در یادداشت ها سخنرانی کنید و سعی کنید برای پیاده سازی در نوبت قراردادن و dequeue به هنگام مطالعه از مسابقه. چیزهایی مهم در مورد فکر می کنم. بسته بندی در سراسر اگر جلو به علاوه اندازه پایان می رسد تا بزرگتر از ظرفیت. باز هم، اگر ساختار خود را کامل است، شما در حال رفتن مشکل داشته باشند. جدول شما دیده ام پیش هش. بسیاری از شما احتمالا اجرا این در pset6. این یک ساختار است که هدف برای O (1) درج زمان ثابت و O (1) مراجعه به زمان ثابت است. در CS50، ما این را به عنوان اجرا مجموعه ای از فهرست های مرتبط است. جزء کلیدی را به یک جدول هش تابع هش است. بنابراین آن را تبدیل ورودی خود، اجازه دهید بگویم، یک کلمه فرهنگ لغت، به تعداد، است که برای رفتن به صفحه ما. و ما رو تو که شاخص استفاده به آرایه است. بنابراین در اینجا یک عکس زیبا کمی است از study.50.net. ما پرتاب تمام کلمات را به تابع هش ما. و تابع هش به ما می گوید که در آن برای قرار دادن این کلمات. این همه بزرگ است در زمین که در آن فقط یک کلمه برای هر اسلات وجود دارد. اما به عنوان شما را از pset6 به یاد داشته باشید، وجود دارد کلمات بیشتری نسبت به اسلات می باشد. پس چه اتفاقی می افتد زمانی که شما دریافت یک برخورد؟ بجای ذخیره یک مقدار در، اجازه دهید بگویم، جدول هش 3، شما یک لیست پیوندی ذخیره می نماید. و به این ترتیب به جای داشتن طالبی در اینجا، شما می توانید یک لیست پیوندی داشته باشد، که در آن گره اول طالبی است. و گره بعدی گربه است. و در گره سوم برخورد است، اجازه دهید می گویند، چرا که همه این کلمات شروع با C. بنابراین بسیاری از شما این کار را برای pset6 بود. اگر شما یک جدول هش در pset6 نمی و شما چیزی شبیه به تلاش یک درخت پیشوندی، قطعا جداول هش فایل نقد می نویسید. اگر شما این کار را در pset6، قطعا بررسی جداول هش. و اگر شما آن را در pset6 انجام داد و آن را نداشت کار کردن کاملا درست و شما بسیاری از مشکلات با آن حال، قطعا بررسی جداول هش. پس درس واقعا قطعا بررسی جداول هش. اقلیت قریب به اتفاق شما سعی در pset6 تلاش می کند. تصویر در سطح بالا. این چیزی شبیه به این، که در آن هر گره دارای مجموعه ای از کودکان، که در آن هر کودک به نامه مربوط. و هر گره نیز می گوید، با سلام، من یک کلمه است. بنابراین در این مثال، کلمه ماکسول، اگر شما به دنبال M به به X-W-E-L-L و سپس به دنبال آن یکی بیشتر. و شما می توانید این نماد، دلتا، که ما نشان به معنی این کلمه است. بنابراین ماکسول یک کلمه است. این دلتا در سراسر دلالت می که چیزهایی کلمات و که همه چیز نیست. بنابراین در pset6، داده ها ذخیره می شود در کنار هر یک از گره های ما بود "من هستم کلمه "و نکته جالب در مورد تلاش می کند است که نشان می دهد درج و گرین کارت آمریکا در O (طول یک کلمه). پس فقط از طریق ماکسول، آن را M-A-X-W-E-L-L. بنابراین هفت یا هشت - من نمی توانم به حساب - مراحل را برای رسیدن به پایان و همه چیز را بررسی کنید. اجرای خیلی سریع در اینجا. راب از طریق یک زنجیر لیست در مرگ او. بنابراین بررسی کنید که از. متأسفم. از طریق یک درخت پیشوندی در مرگ او رفت. بنابراین بررسی کنید که از. اما شما اصولا از هر گره دارای 27 اشاره گر به گره بعدی و یک بولی برای من یک کلمه است. اتمام مرگ راب برای چگونه این در واقع پیاده سازی شده است. ساختار نهایی ما، درختان ما و درخت جستجوی دودویی. بنابراین نگاه کردن به این، این تحت پوشش قرار گرفتند اخیرا هفته 8، دوشنبه. یک درخت شبیه به یک درخت پیشوندی است، به جز شما لزوما دارای 27 گره در نمی هر نقطه. و شما از این داده ها در هر ندارد گام به گام است که دلالت کند که آیا - مسیر مهم نیست. در حالی که یک درخت پیشوندی، مسیر از بالا به پایین، ماکسول، برای ما مهم بود. اما هر گره دارای چند کودکان، شاید. در حال حاضر برخی لغات است. ریشه درخت است در بالا بسیار. و ما می گویند که بسیار پایین ترین گره های که هیچ کودکان برگ می باشد. پس مثل یک درخت، یک درخت است ساختار گره. یک نوع متداول از درخت است که ما در حال رفتن به بحث در مورد یک درخت دودویی است که در آن هر گره دارای بدون فرزند و یا یک فرزند یا دو فرزند. بنابراین به این تصویر اینجا نیست یک درخت دودویی، به خاطر گره 3 دارای سه فرزند. اما اگر ما به چشم پوشی از آن، بقیه از آن است که یک درخت دودویی است چرا که نشان می دهد که مالکیت است که هر گره صفر، یک، یا دو فرزند دارد. پس چگونه می تواند ما این بیان در کد؟ ما می تواند یک گره که در آن هر گره دارای دارند یک عدد صحیح در داخل از آن، و همچنین به عنوان یک اشاره گر به درخت در سمت چپ و یک اشاره گر به درخت در سمت راست، به طوری که دو فرزند. چگونه این مفید است؟ خوب، اگر ما را از قوانین در مورد که در آن ما قرار دادن گره ها، ما می توانید جستجوی سریع تر. پس یک مفهوم جستجوی دودویی وجود دارد درخت، که در آن تمام گره ها در زیر درخت سمت چپ یک مقدار کوچکتر از گره ما به دنبال در. و تمام گره در زیر درخت سمت راست یک مقدار بزرگتر از گره ریشه. در حال حاضر، که به نظر می رسد مانند بسیاری از کلمات. من قصد دارم به آن را در داخل از دو نقل قول ها و به شما نشان دهد یک عکس. بنابراین در اینجا یک مثال از است یک درخت جستجوی دودویی. ببینید که ما با 10 شروع می شود. همه چیز به سمت چپ 10 کوچکتر از آن است. و همه چیز را به سمت راست بزرگتر از آن است. اما بیشتر از آن، هر گره در درخت بیان این اموال. بنابراین گره 7 دارای 3 به چپ و 9 به سمت راست. بنابراین همه کسانی که کمتر از 10 می باشد. اما به دنبال فقط کسانی که، 7 است 3 به سمت چپ و 9 آن به سمت راست آن است. و به همین ترتیب در سمت راست، 15 تا 14 به سمت چپ و 50 آن به سمت راست آن است. پس از سه گره بیش از وجود دارد، 15، 14، و 50، همچنین یک درخت دودویی معتبر هستند و یا یک درخت جستجوی دودویی معتبر است. و همه آنها بزرگتر از 10 است. به طوری که آنها اجازه داده است در سمت راست وجود دارد. یک سوال وجود دارد؟ یک مدعو: چگونه می توانم به شما برخورد هنگام شما دو نفره؟ R.J. آکینو: آره. چگونه می توانم شما را با دو مقدار معامله که یکسان هستند؟ برخی از درختان جستجوی دودویی می گویند که شما چشم پوشی از موارد تکراری، چرا که هدف این است که فقط به گفتن نیست، من دیده ام این چیزها تا کنون. برخی از درختان جستجوی دودویی می توان گفت یک تعداد در داخل گره. دیگران ممکن است بگویند که همه چیز را به سمت چپ کمتر از یا مساوی است. و همه چیز را به سمت راست بزرگتر از است. این فقط بستگی دارد که چه مشکل این است که شما در حال حل. بنابراین در فرهنگ لغت، به عنوان مثال، شما در مورد تکراری نه مراقبت. شما می توانید آنها را بزنند. اما بعضی از مشکل های دیگر شما ممکن است مراقبت. یک مدعو: آیا ممکن است به 1 در سمت چپ 15، که کمتر از 10 است؟ R.J. آکینو: شماره اگر 14 اینجا بود 1، در این صورت، یک درخت جستجوی دودویی معتبر نیست، چرا که همه چیز را در سمت راست 10 باید بزرگتر از آن است. و خواهیم دید که چرا. اگر در سرزمین جستجوی هدف من است برای پیدا کردن 14، I در ریشه شروع می شود. بنابراین من نگاه کنید. OK. ما قصد داریم برای شروع در ریشه. در 10 نگاه کنید. خوب، 14، هدف ما، بزرگتر از 10 است. بنابراین باید آن را در سمت راست باشد. این بسیار شبیه به تمام تلفن چیزی که کتاب ما کردیم، باینری جستجو وجود دارد. اما به جای جستجوی دودویی در یک آرایه، ما باینری هستیم جستجو در این درخت. بنابراین ما هنوز هم برای 14 به دنبال. خوب، 14 کوچکتر از 15 است. بنابراین اگر آن را در درخت ما است، آن را باید اینجا در این منطقه باشد. باید آن را در سمت راست است 10 و در سمت چپ 15. و بنابراین ما بررسی این گره. و ماهواره، ما 14 در بر داشت. من قصد ندارم از آن عبور کند. اما در اینجا از کد است. این در واقع نسبتا ساده، چرا که این بازگشتی است. چه چیزی می تواند که از شما در یک مسابقه انجام دهید؟ ما می تواند شما بخواهید برای نوشتن این کد. ما می تواند از شما بخواهد که در این کد نگاه و تغییر این کد و توضیح آنچه آن را انجام می دهند. آره. سوال؟ یک مدعو: آیا این اسلاید برای رفتن به در دسترس ساخته شده است و زمان آخرین بود؟ R.J. آکینو: بله. بنابراین این اسلاید قطعا خواهد شد نوشته شده. یک مدعو: آنها در واقع ارسال شده در حال حاضر در وب سایت. دیوید فقط کار را انجام داد. R.J. آکینو: اسلاید می باشد در حال حاضر در وب سایت. من احتمالا پچ تا چند غلط املایی من اشاره کرد و آنها را تعمیر. اما در حال حاضر وجود دارد نسخه در سایت. دیگر چیزهایی که ما می تواند از شما بخواهد انجام - ارسال قرار دادن. ارسال یک نسخه تکراری از تابع بازگشتی ما فقط به شما نشان داد و یا صحبت در مورد این چیزها، مثل پاراگراف ها، در کلمات، در حکم. مقایسه زمان اجرا و توضیح آنچه شما می خواهید به استفاده از یک فایل باینری درخت جستجو برای جای هش جدول، به عنوان مثال. بنابراین این ساختار درک در سطح بسیار عمیق است. درک چگونه آنها را ارسال، چگونه به استفاده از آنها را، چگونه در مورد آنها صحبت کنید. و شما خواهید بود تمام مجموعه. سوال؟ یک مدعو: هنگامی که شما در حال نوشتن درخت جستجوی دودویی، چگونه شما انجام دهد تعیین ارزش به آن را به عنوان ریشه؟ R.J. آکینو: پس پرسش این بود، چه ارزش به نظر شما ریشه را؟ بسته به کد خود، شما ممکن است ریشه جهانی داشته باشد. بنابراین شما ممکن است به احتمال زیاد در حال pset6 یک جدول هش جهانی است. یا شما ممکن است ریشه عبور در به عنوان آرگومان. پس این تابع جستجو در اینجا یک آرگومان یک گره * طول می کشد. و به این ترتیب هر گره شما اتفاق می افتد به دنبال یکی از شما در حال درمان است به عنوان ریشه خود را هنگامی که شما آن را منتقل می شوید و من تمام مجموعه هستم. این اسلاید من هستند. فرد بعدی می تواند مبادله آمده است در لپ تاپ و میکروفون. ROB BOWDEN: من فکر می کنم من ممکن است که سوال تفسیر متفاوت است. اما من آن را به عنوان تفسیر، اگر شما اعداد 1، 2، و 3، چگونه کار می کنیم بدانید که برای ساخت 2 ریشه به 1 و یا 3 مخالف؟ اگر ما 2 ریشه را، سپس آن را به خوبی 1 و 3 را به سمت چپ و راست. اما اگر 1 ریشه است، سپس آن را 1 به بالا، 2 سمت راست، 3 به سمت راست. بنابراین به طور پیش فرض، شما نمی دانید چه چیزی را به ریشه. و برای هر الگوریتم ما در حال انتظار شما، فقط اولین چیزی که شما را درج می شود ریشه. یا ما می خواهم به شما یک درخت دودویی را که در حال حاضر وجود دارد که دارای یک ریشه. اما الگوریتم های دیگر وجود دارد به طوری که ریشه را بروز می کند، به طوری که اگر شما در نهایت در موقعیتی که در آن به 1، 2، 3، به طور خودکار به روز رسانی را 2 به ریشه های جدید، به طوری که آن را هنوز هم به سادگی و متعادل کننده شده. ANGELA LI: دانلود. سلام، بچه ها. I آنجلا هستم. و من قصد دارم کار رو تموم C ما و پس از آن به برخی از وب سایت ما بروید فن آوری - HTTP، HTML و CSS. پس اولین کاری که بافر است حملات سرریز. بنابراین اجازه دهید نگاهی به این کد. خیلی ساده است. یک تابع تولی وجود دارد. و هیچ چیزی بر نمی گرداند. اما آن را در یک اشاره گر طول می کشد به یک رشته به نام میاره. و آن را به اعلام این بافر است، که یک شخصیت آرایه که دارای 12 اسلات. و آن را با استفاده memcpy، که فقط یک تابع است که کپی از یک آدرس به دیگری. بنابراین این در تلاش است برای کپی کردن به بافر ما از هر نوار با اشاره به. بنابراین هر ایده چه چیزی اشتباه است با این کد؟ یک مدعو: اگر نوار دیگر از است C، آنها را بازنویسی خواهد شد. ANGELA LI: بله، دقیقا. ما هیچ تضمینی وجود ندارد که نوار در حال رفتن به کمتر از 12. ما فقط ساخته شده برخی از شماره های دلخواه 12. و ما مثل، امیدوار بودند که ورودی کاربر ما کمتر از است 12 کاراکتر باشد. بنابراین در یک دنیای ایده آل، اگر ورودی ما است همیشه به عنوان انتظار می رود، پس از آن ما را دریافت کنید چیزی شبیه به، سلام. که کمتر از 12 حرف می باشد. این می شود به کاراکتر C به عنوان خوانده شده. و بعد ما انجام کاری با آن. این واقعا مهم نیست. اما یک فرد مخرب می تواند انجام دهد چیزی شبیه به این، جایی که آنها ما را هر بار با اشاره به، آن را به نقطه را به این آرایه بسیار بزرگ از فقط یک است. و این است که راه طولانی تر از 12. بنابراین آن را به تمام راه را در اینجا به که در آن بازگشت آدرس استفاده می شود. بنابراین اجازه دهید می گویند این تابع است که به نام تولی. شاید تولی از سوی برخی دیگر نامیده می شد تابع، که اصلی نامیده می شد. بنابراین، هنگامی که تولی در حال اجرا است، به آن نیاز دارد می دانم که در آن به بازگشت به. اگر تولی از سوی برخی از تابع به نام نامیده شد باز، آن را به می دانم که این رو به بازگشت به باز. و این چیزی است که آدرس بازگشت را در اینجا به ما می گوید. اما اگر ما آن را بازنویسی با برخی دیگر آدرس، در این مورد، این است که نمایندگی از آدرس در آغاز از این بافر، سپس آنچه در واقع اتفاق می افتد این است که به جای بازگشت دوباره به باز، که به نام تابع ما، آن را فقط رفتن به جبهه از این کد. و اگر این وجود بود، زیرا شخص هکر های مخرب آمد و این تزریق، پس شاید این مقدار از تاریخ است که در واقع نیست. و این در واقع فقط کد است که می شکند کامپیوتر و یا چیزی شما. بنابراین به دفاعی در مورد این نوع از چیزی، شما را به تصور نکنید که ورودی کاربر خاص است مقدار از شخصیت های. به عنوان مثال، هنگامی که شما انجام می دهند هجی، شما گفته شد که عبارت بودند فقط رفتن به 40 کاراکتر حداکثر طول دارد. و این خوب بود. اما اگر نه، پس شما را به مطمئن شوید که به تنها در 45 به عنوان خوانده شده شخصیت در یک زمان. در غیر این صورت، شما ممکن است بازنویسی بافر خود را. هر گونه سؤال در آن. آره. رسید می توانید فقط صحبت کمی بیشتر در مورد این؟ ANGELA LI: متاسفم. بله. یک مدعو: میکروفون تنها برای ویدئو است. من سعی می کنم و پروژه. سلام، بچه ها. SUP؟ بنابراین اجازه دهید بیش از چند چیز در کتابخانه CS50، که شما با استفاده از تمام ترم، عمدتا برای دریافت ورودی از کاربر. همانطور که می دانید، شما شامل CS50 کتابخانه و تنها با انجام CS50.h، که شامل تمام نمونه های اولیه از توابع است که شما می توانید استفاده کنید، مانند GetString و GetInt، و GetFloat، و غیره. و در این خط در CS50 وجود دارد کتابخانه که تعریف یک رشته، که شما بچه ها همه در حال حاضر می دانیم فقط یک کاراکتر * می باشد. اما اجازه دهید نگاهی زیرچشمی نگاه کردن در چگونه کار می کند GetString. این نسخه بسیار کوتاه است. شما می توانید بکشید تا فایل های کتابخانه CS50 از، من فکر می کنم، manuals.CS50.net. و شما می توانید از طریق به عنوان خوانده شده عملکرد واقعی. اما این را پوشش می دهد برخی از بخش های مهم است. بنابراین ما برخی از بافر ایجاد کرده اید با برخی از ظرفیت. و آنچه ما انجام می دهیم ما یکی از شخصیت ها در یک زمان از n استاندارد. که جایی که ورودی های کاربر است متن در کنسول. و به این ترتیب ما در حال رفتن به خواندن در یک شخصیت تا زمانی که آن را به یک موضوع تازه ای نیست خط و آن را از فایل پایان نیست، که در پایان از ورودی استاندارد است. و برای هر شخصیت که ما خوانده شده در، در صورتی که کاراکتر به پایان می رسد تا با اضافه کردن به تعدادی از شخصیت های ذکر شده در و که بیش از ظرفیت و توانایی ما است، پس از آن چه ما انجام می دهیم این است که ما فقط تغییر اندازه ما بافر به طوری که آن را به دو برابر طولانی است. بنابراین دوباره، این محافظت در برابر بافر حملات سرریز، چرا که شما به عنوان خوانده در یک شخصیت در یک زمان. و اگر در هر نقطه ای که شما خواندن در بیش از حد بسیاری از افراد، شما فقط گسترش بافر خود را. شما آن را با دو ضرب. و سپس شما اتاق را بیشتر. در غیر این صورت، شما فقط اضافه کردن یک شخصیت به بافر. و بعد از اینکه شما در تمام خوانده ام شخصیت، آن را به بافر کوچک به پایین به اندازه طبیعی، اضافه کردن یک نابودگر تهی، و سپس بازگشت. در حال حاضر، اجازه دهید نگاهی به GetInt نگاه کنید. آیا می توانید بچه ها به عنوان خوانده شده این؟ من می توانم در یک مقدار زوم. من نمی دانم که چگونه کامپیوتر کار می کنند. اهمیتی ندارد. من نمی توانم زوم به درستی. این واقعا سخت است. من متاسفم. اجازه دهید فقط به این نگاه کنید. پس چه GetInt کند این است که آن را برای اولین بار خوانده شده در یک رشته از GetString، که ما قبل از اجرا کرده ام. و بخش مهم توجه داشته باشید در اینجا است اگر این به اشتراک گذاری است که آن را به پایان می رسد خواندن است مانند در واقع یک رشته، پس ما فقط INT_MAX بازگشت به نشان دهنده شکست. چرا به جای INT_MAX بازگشت ما از منفی 1 و یا 1؟ هر گونه ایده ها؟ یک مدعو: [نامفهوم] منفی 1 در یک. ANGELA LI: بله، دقیقا. پس شما راه بیشتر به احتمال زیاد فقط می خواهم به ورودی 1 یا منفی 1 وقتی از شما خواسته برای یک n ام و هر maxes n ام. این بزرگ. شما احتمالا نمی خواهید از آن استفاده کنید. پس این است که مانند یک تصمیم طراحی به مطمئن شوید که شما به طور تصادفی نمی بازگشت خطا یا شما بر نمی گرداند 1، که ممکن است تجزیه به عنوان پاسخ صحیح. بنابراین اگر یک خط وجود ندارد، ما به INT-MAX. در غیر این صورت، ما از sscanf، که مثل scanf. اما آن را از یک رشته می خواند. و ما باید این فرمت رشته، من٪٪ C است. و ما سعی می کنیم و مطابقت با هر کاربر را به ما داد. ما می خواهیم تعدادی از چیزهایی همسان به 1، به این معنی که ما فقط واقعا می خواهید برای مطابقت با یک عدد صحیح احاطه شده توسط شاید سفید فضا، شاید نه. در این مورد، اگر شما در چیزی قرار داده مانند نوار، نوار مطابقت ندارد در همه، به دلیل نیاز به وجود دارد یک عدد صحیح در آغاز. بنابراین هرگز sscan 0 تبدیل شده است. بنابراین شما نمی گرداند که. روش دیگر، اگر شما در چیزی قرار داده مانند 1، 2، 3، A، B، C، که مسابقات هر دو عدد صحیح، بلکه شخصیت پس از آن. بنابراین sscanf باز خواهد گشت 2، که همچنین ایده آل نیست. شما نمی خواهید 1، 2، 3، A، B، C به یک بین المللی معتبر. به طوری که هم کار نمی کند. اما می گویند که شما را در چیزی شبیه به 50 قرار داده است. است که٪ مطابقت با من، که به معنی آن را دریافت خواهد کرد به عنوان خوانده شده به n. و در حال حاضر، N تعداد 50 باشد. و سپس شما می توانید آن را بازگشت. در غیر این صورت، به شما ضربه دوباره. و سپس آن را بیش از می رود دوباره تا شما یک ورودی مناسب را از کاربر. هر گونه سؤال در آن؟ رسید بنابراین اگر شما به نسخه قابل چاپ کردن ارزش GetInt در [نامفهوم] می شود آن را فقط عدد صحیح و حداکثر؟ ANGELA LI: آره. بنابراین اگر شما استفاده از GetInt، شما باید فرض که شما حداکثر n ام می خواهم نه یک ورودی معتبر، چرا که شما در حال رفتن به فرض که که بد بود. یک مدعو: اگر ما کاراکتر C دارند و نه کسی که در 1، 2، 3، سام قرار داده، آن را هنوز هم برای 1، 2، 3 کار می کند؟ ANGELA LI: من فکر می کنم آن را به کار می کنند. اما شما 123Sam به را نمی خواهم یک ورودی معتبر شده توسط یک کاربر. این واقعا یک int است. پس از آن به نظر می رسد منصفانه نیست آن را تجزیه به عنوان یک int. OK. در آن صورت، اجازه حرکت در به اینترنت. بنابراین HTTP یک زبان است. HTTP تنها مجموعه ای از استانداردهای است چگونه شما همه چیز ارسال از مشتریان، که شما را به سرور. که مردم دیگر بر روی وب است. بنابراین HTTP مخفف ابرمتن انتقال پروتکل. این قلب و روح است از کل وب. بخش ابرمتن (hypertext) فقط اشاره به HTML. انتقال مشتریان مانند است شما درخواست برای ارسال سرویس دهنده ها، که پاسخ خواهد داد. و پروتکل فقط، چگونه شما انتظار می رود در سرور را به رفتار؟ و چگونه شما قرار است به رفتار به طوری که شما می توانید این ساده فرایند ارتباط؟ بنابراین درخواست HTTP نگاه بسیاری مانند این. GET نوع درخواست است. شما بچه ها را دیده اند، درخواست های GET و درخواست های POST. این چیز وجود دارد، / من، که فقط URI یا URL های که در آن شما می خواهم به داخل میزبان بروید. بنابراین این درخواست برای درخواست صفحه، مانند www.facebook.com / من. و این یک درخواست GET است. و پس از آن این HTTP/1.1، که فقط نسخه HTTP استفاده می کنید. این تقریبا همیشه 1.1. و سپس یک دسته وجود دارد از مسائل دیگر بیش از حد. در واقع شما می توانید این اگر شما باز کردن کنسول خود را هنگامی که شما مرور وب است. پاسخ به نظر چیزی بیشتر شبیه به این. بخش بالا است، دوباره، نوع HTTP شما با استفاده از به دنبال یک کد وضعیت. بنابراین 200 OK همه چیز کار می کرد. در اینجا مطالب خود را است. مطالب خود را در حال رفتن به دنبال. و سپس آن را به شما خواهد گفت که چه نوع مطالب و چیزهای دیگر بیش از حد. کدهای وضعیت، چند وجود دارد آنهایی که مهم است که شما باید بدانید. 200 OK مثل طلایی همه چیز است. همه چیز کار می کند. 403 ممنوعه. این شما احتمالا دیده می شود اگر شما را فراموش به سطح دسترسی چیزی به درستی. این بدان معنی است که شما لازم نیست مجوز حق دسترسی که بر روی سرور. این مثل، نه، شما نمی توانید آن را ببینید. 404 بدان معنی است که چیزی وجود ندارد. یافت نشد. شما احتمالا دیده می شود که بسیاری. 500 خطای داخلی سرور است که معمولا مانند چیزی اشتباه در سمت رفت از سرور. بنابراین، هنگامی که شما اجرا شد pset7، اگر شما تا به حال خطاهای PHP، شما می توانید در واقع به این صفحه بروید و ببینید تمام دسته از PHP مسائل خطا. اما این هنوز به طور معمول اتفاق می افتد، زیرا وب سایت های واقعا نمی خواهید به به شما بگویم که چرا سایت خود را شکسته است. آنها احتمالا فقط بازگشت 500 خطای داخلی سرور. و پس از آن 418 من یک قوری هستم وجود دارد. یک داستان کل در مورد وجود دارد به همین دلیل است که یک چیز است. اما شما می توانید در مورد آن خوانده شده در زمان خود تغییر دهید. یک دسته کامل از وجود دارد دیگر کدهای وضعیت بیش از حد. اما این آنهایی که می شما باید بدانید. بنابراین اجازه دهید در مورد HTML صحبت کنید. HTML، به یاد داشته باشید است، نمی زبان های برنامه نویسی. این یک زبان نشانه گذاری است. این بدان معناست که آن را توصیف محتوا. این به شما می گوید که چه چیزی یک سند HTML به نظر می رسد دوست دارم یا نه آنچه آن را مانند به نظر می رسد اما چگونه آن را ساخته شده است. پس از آن یک ساختار تعریف می کند و معناشناسی از صفحات وب است. آن را مانند است، این یک پاراگراف است. این یک لیست مرتب شده. این مانند یک بخش از صفحه من. در اینجا عنوان شده است. این کار چیزهای مانند آن. این کار هر یک از این سبک نیست، زیرا این چیزی است که شما در CSS انجام دهد. و آن را مانند یک سری به نظر می رسد تگ های تو در تو. بنابراین استفاده از یک مثال از یک واقعا عمومی صفحه HTML، شما باید DOCTYPE بیانیه وجود دارد. این اعلام DOCTYPE است گفت: ما با استفاده از HTML5. سپس شما باید از تگ HTML بزرگ است. این کارت دارای یک سر و یک بدن است. در داخل سر، شما را به عنوان. این چیزی است که می رود در عنوان نوار مرورگر خود. ما یک تگ لینک که لینک در یک CSS خارجی. و پس از آن ما باید یک اسکریپت است که نیش ترمزی میزند از جاوا اسکریپت خارجی نیز هست. و پس از آن در داخل بدن ما است که در واقع چه می شود بر روی صفحه نشان داده شده است. ما یک پاراگراف کردم و پس از آن تصویر داخل بند. این یکی یک عکس از بچه گربه ها است. توجه داشته باشید که تصویر برچسب خود را می بندد. بنابراین به جای باز شدن با یک تصویر و پس از آن انجام می دهند / تصویر دیگر، شما فقط باید این علامت ممیز کوچک در اینجا، که آن را می بندد. و بر چسب تصویر نیز دارای این کلید ویژگی value به نام ALT. این متن جایگزین است که اتفاق می افتد زمانی که شما بیش از آن شناور. اکثر عناصر HTML برخی از ارزش های کلیدی چیزهایی که شما می توانید آن را مختلف را، سفارشی. آره. یک مدعو: [نامفهوم]. ANGELA LI: خوب، پس از آن صفت از تگ. بنابراین اگر شما با استفاده از جی کوئری، شما می توانید انجام image.getAttribute را انتخاب کنید. و سپس شما می توانید برای جستجو دریافت صفت Alt. و آن را به شما بچه گربه ها را. اگر شما به یاد داشته باشید اشکال در HTML، ورودی عناصر ویژگی ها نام دارند. و این چیزی است که PHP استفاده می کند به ارسال درخواست زمانی که یک فرم ارسال می شود. یک مدعو: آیا شما اشاره به چیزی در مورد چگونگی در صورت استفاده از kittens.jpg و یا چیزی است که گم شده پوشه فایل یا فایل های دیگر؟ ANGELA LI: بله. پس این چیزی است که نسبت به نام راه، چون من نمی دادن شما مسیر کامل. این مثل زمانی که در C اگر شما fopen برخی از فایل، اگر شما hi.txt fopen، که hi.txt انتظار می رود که در همان دایرکتوری، مگر اینکه شما آن را بیشتر مسیر پیچیده است. رسید بنابراین شما می توانید مشخص کنید که پوشه [نامفهوم]؟ ANGELA LI: آره. و شما می توانید نگاه کردن که چگونه به انجام این کار. اما اگر من می خواستم برای دریافت kittens.jpg از راهنمای پدر و مادر، من می خواهم انجام .. / kittens.jpg. آره. متأسفم. آره. آه مرد، من این سوال را فراموش کرده. چه سوال بود؟ اوه، سوال این است، kittens.jpg بود انتظار می رود که در همان شاخه بود؟ و در این مورد، در آن است. اما شما همچنین می توانید آن را به یک مسیر خاص را به طوری که آن را ندارد به. خوب است؟ CSS. بنابراین CSS، مانند HTML است، نه یک زبان برنامه نویسی. CSS فقط یک سری از قوانین یک ظاهر طراحی شده است. این برای شیوه نامه آبشاری است. و شما از آن استفاده کنید در رابطه با HTML به صفحات سبک. بنابراین سه راه وجود دارد شما می توانید آن باشد. یکی از راه های که شما می توانید آن را در سر بخشی از HTML شما، شما فقط می توانید باز کردن یک برچسب سبک و پس از آن چوب برخی از CSS قوانین در آن وجود دارد. این بسیار OK. آره. رسید می توانید آن را تگ های سبک در بین، اجازه دهید مثلا، بدن و / بدن است. و پس از آن شما خواهد بود یک ظاهر طراحی شده تنها در بدن است. ANGELA LI: شما می توانید. آن را به کار می کنند. اما شما باید نیست، زیرا یک ظاهر طراحی شده است نوع ابرداده است که باید در به سر از سند خود را. بدن باید واقعا فقط شامل چیزی که در واقع رفتن به نشان می دهد تا بر روی صفحه شما. رسید بنابراین شما می خواهم به سبک قرار داده در سر خود را به سبک کل صفحه وب، درست است؟ ANGELA LI: آره. بنابراین قرار دادن سبک در اینجا، این قوانین CSS به تمام صفحه بر اساس درخواست انتخاب آنها. پس راه بهتر برای انجام آن است به جای داشتن یک تگ سبک در سر خود را، شما این لینک به سبک خارجی ورق مثل من شما را در نشان داد مثال قبلی. چه می کند این است که تلاش می کند و می یابد فایل را ببندید و سپس آن را می کشد در و استفاده می کند که به عنوان سبک برای صفحه. و ببندید خود را فقط شبیه به این. این فقط می تواند یک دسته از CSS. و در نهایت، یکی دیگر از راه شما وجود دارد می تواند شامل CSS، که واقعا به شما باید هرگز انجام دهد. این یک ظاهر طراحی شده درون خطی تماس است. و به این ترتیب هر عنصر HTML همچنین می توانید یک ویژگی سبک. و پس از آن در که ویژگی سبک، شما می توانید آن قوانین CSS را. بنابراین در این مورد، هر آنچه DIV من تعریف حق در اینجا، آن را به دارای یک پس زمینه سیاه و سفید و رنگ متن به رنگ سفید. اما شما باید این کار را انجام ندهید، زیرا آنچه این است آن را یک ظاهر طراحی شده خود را در داخل HTML خود را. و من می دانم که ما شده ایم در مورد HTML صحبت کردن ساختار و CSS سبک است. اگر شما این کار، آن را به مخلوط آنها را با هم. و این بسیار تمیز نیست. بنابراین کار را نمی کنند. با استفاده از نمونه ای از CSS، وجود دارد، ما فقط به بدن از HTML را انتخاب کنید مستند. و ما مثل همه چیز هستند رفتن به طنز بدون. من هم توصیه نمی که. اما شما می توانید انجام این کار. قانون دوم حق در اینجا، این رفتن برای انتخاب عنصر در صفحه اصلی با ID. بنابراین هر آنچه HTML عنصر، گفت: من ID = اصلی، من قصد دارم به که حاشیه 20 پیکسل و همه چیز ردیف، تمام متن، به مرکز. آخرین چیزی که توسط کلاس CSS انتخاب می کند. بنابراین هر عنصر در صفحه ای که من به یک کلاس بخش، من قصد دارم آن را رنگ پس زمینه آبی روشن. بله. این تمام من است. سوال؟ یک مدعو: چه hashtag قبل از اصلی انجام دهید؟ ANGELA LI: سوال این است، چه hashtag قبل از انجام اصلی؟ در این مورد، مخلوط در CSS به معنای توسط ID را انتخاب کنید. بنابراین اگر من تا به حال برخی از عناصر HTML مانند divID = اصلی، این CSS حکومت انتخاب چیزی که با اصلی ID. و به همین ترتیب، دوره در مقابل بخش های کلاس CSS یا انتخاب کنید توسط کلاس HTML را انتخاب کنید. یک مدعو: چرا وجود دارد تا قبل از 6 در رنگ پس زمینه؟ ANGELA LI: آره. بنابراین سوال این است، چرا وجود دارد مخلوط قبل از 6؟ این متفاوت از آن مخلوط است. این به این معنی است که شما در حال دادن رنگ هگزادسیمال. رنگ پس سحر و جادو، این فقط نشان دهنده رنگ. و شما به یاد داشته باشید سه RGB زمانی شما pset پزشکی قانونی بود؟ این مشابه است. دو رقم اول نشان دهنده چه مقدار قرمز را در رنگ می باشد. دوم دو نشان چقدر سبز. و سوم نشان دهنده چه مقدار آبی است. و مخلوط است این است که برای نشان دادن یک رنگ. بنابراین هر چیزی از 0، 0، 0، 0، 0، 0 تا F، F، F، F، F، F معتبر است. این برخی از رنگ معتبر است که می تواند در شود توسط مرورگر شما نمایش داده شود. سوال؟ یک مدعو: تفاوت بین چیست با استفاده از ID و کلاس؟ ANGELA LI: سوال این است که چه چیزی تفاوت بین با استفاده از ID و کلاس؟ شما فقط می توانید یک عنصر در یک دارند سند HTML است که دارای ID داده شده است. بنابراین فقط یک چیز را در صفحه من مجاز است به اصلی ID. بنابراین شما از آن استفاده کنید برای این هدر است. این ناوبری است. این بالا و پایین صفحه است. کلاس های مختلف هستند، چرا که شما می توانید اعمال کلاس ها به عنوان بسیاری از عناصر HTML به عنوان شما می خواهید. بنابراین برای مثال، I بخش کلاس انجام داد، چرا که احتمالا وجود دارد بیش از یک بخش در صفحه من. شما فقط مجاز به عنوان بسیاری از عناصر در صفحه با همان کلاس اما تنها یک با یک ID خاص. رسید بنابراین نقطه نشان دهنده کلاس؟ ANGELA LI: آره. یک نقطه نشان دهنده یک کلاس. دانلود. این همه من، بچه ها است. متشکرم. [تشویق حضار] ZAMYLA CHAN: سلام، همه. I Zamyla هستم. من قصد دارم به پوشش PHP، MVC، و SQL است. بسیاری از مواد که من خواهم بود پوشش حال رفتن به تقریبا سمت راست از pset7. بسیار خوب. پس چه PHP است؟ PHP مخفف PHP ابرمتن پیش پردازنده. پس از آن، به خودی خود، یک بازگشتی است نام، که بسیار سرد است. PHP یک زبان برنامه نویسی سمت سرور است، و آن را فراهم می کند باطن و شالوده های منطقی از وب سایت ما. بنابراین آنجلا صحبت زیادی در مورد HTML و CSS است که ساختار را وب سایت. اما اگر شما می خواهید به تغییر است که محتوا به صورت پویا و یا اگر آن متفاوت است بر اساس کاربر و یا شرایط خاصی؟ در این جاست که PHP می آید. در حال حاضر، به طور معمول، PHP ممکن است چند را خطوط کمتر برای اجرای همان چیزی در C. دلیلش این است که PHP دسته حافظه مدیریت برای برنامه نویس، به ما نیاز به malloc مخالف آزاد، چیزهایی مانند آن. اما از آنجا که PHP تفسیری است زبان، به طور معمول، ممکن است اجرا به آرامی کمی بیشتر از C، که زبان های کامپایل شده است. از آنجا که ما در حال حرکت برنامه نویسی زبان، اجازه دهید نگاهی به چگونگی نحو متفاوت خواهد بود. اجازه دهید بسیار مراقب باشید که نمی شود دریافت با این اشتباه گرفته شود. بنابراین با سینتکس PHP، که آیا شما تعبیه PHP خود را در داخل یک HTML فایل ها و یا درون یک فایل پی اچ پی. خود را، شما نیاز به محصور کد در باز PHP و تگ بسته PHP مانند شرح زیر است، مانند بر روی صفحه نمایش. متغیرها در PHP. هر متغیر تنها با شروع خواهد شد علامت $ را به دنبال نام متغیر خود را. در حال حاضر، متغیرها در PHP هستند از نوع بی قاعده، که بدان معنی است که شما لازم نیست نشان می دهد که چه نوع داده زمانی است که شما آن را اعلام. با این حال، این بدان معنا نیست که آنها انجام هر نوع را نه در همه. بنابراین اگر من یک متغیر تعریف کنید و فقط مجموعه آن را به 1 برابر، و پس از آن من اعلام می کنم متغیر دیگر، آن را برابر "1" و یکی دیگر 1.0، خوب، بسته به نوع برابری اپراتورهای I استفاده کنید، اگر من می خواهم برای مقایسه در تمام انواع، و سپس آنها برابر خواهد بود. اما اگر من می خواهم به مطمئن شوید که انواع برابر هستند، PHP هنوز هم می توانید انجام دهید که، حتی اگر ما را نشان نمی دهد چه نوع از آن است که هنگامی که ما برای اولین بار فایل را. در حال حاضر، در PHP، حتی اگر ما تعویض بیش از برنامه نویسی زبان از C، ما هنوز هم ما قابل اعتماد اگر شرایط، درست مثل این. ما هنوز حلقه در حالی که ما، فقط مانند این، که در آن شما در قرار خود را شرایط و پس از آن بدنه حلقه. و سپس ما نیز ما را برای حلقه داشته باشد، که به طور معمول مانند این به نظر می رسد. پس اگر من می خواستم به تکرار بیش از همه نه psets و ارسال تماس گرفته و عملکرد submitPset، پس من می توانید انجام دهید که در اینجا، که شما بچه ها همه اند های انجام شده توسط این نقطه است. تبریک می گویم، به هر حال. برای دوربین، مردم گفت، متشکرم. در حال حاضر، اگر شما فقط می خواهم نیست این استفاده کنید حلقه for، پس از آن PHP در واقع هم تا همه چیز به نام حلقه حلقه foreach. بنابراین اگر من تا به حال یک آرایه از اعداد صحیح، 0 از طریق 8، ذخیره شده در psets آرایه، پس از آن من می تواند یک حلقه foreach که تکرار بیش از هر عدد در psets. و پس از آن من می تواند همان تماس بگیرید عملکرد هشت بار، درست مثل من قبل از انجام. پس این برای هر یک از حلقه خوب است، چرا که شما لازم نیست که اگر شما نمی دانید طول دقیق از آرایه است که شما اند، و سپس با استفاده از این حلقه foreach مراقبت از است که برای شما خواهد شد. بنابراین من psets به عنوان یک آرایه ساخته شده است. اجازه دهید که در آن نگاه کنید. آرایه ها در PHP به طور معمول همان آنهایی که ما در C، داشته ایم که در آن شما می توانید یک آرایه اعلام کنند. و در اینجا، من می توانم یک آرایه خالی اعلام و پس از آن ساخت تا به صورت پویا با استفاده از شاخص به عنوان اعداد صحیح. بنابراین شاخص 0، من قصد دارم به ذخیره یک عدد صحیح به نام 1. در صفحه 1 از لیست من، من قصد دارم برای ذخیره ارزش 2. و در شاخص سوم اما شماره دوم، من قصد دارم ذخیره شماره 12. در حال حاضر، این خوب است که در با این نسخهها کار آن را به خوبی کار می کند. اما می گویند آن را به من اهمیت آنچه هر شاخص نگه می دارد. برای من، شاخص 0 به معنی چگونه بسیاری از گربه من. و شاخص 1 به معنی چگونه بسیاری از جغدها من. و یک بعدی به این معنی است که چگونه بسیاری از سگ. خب، پس آن را مشخص کرد که، به جای از اینکه به یاد داشته باشید 0 مربوط به گربه و 1 تا جغدها، من می توانید استفاده کنید آرایه های انجمنی، به این معنی که به جای آن از اعداد صحیح به عنوان شاخص های من، من در واقع می تواند رشته ها استفاده کنید. پس این است که بسیار مفید است. و شما فقط جایگزین کرده ام اعداد صحیح را با رشته ها. و در آنجا شما آرایه انجمنی. آره. یک مدعو: آیا به همین دلیل وجود دارد وجود دارد تاکید برای دوم بخشی، چرا که لیست من تا به آرایه. ZAMYLA CHAN: سوال این بود، است وجود دارد به همین دلیل است وجود دارد تاکید بین و لیست من؟ شماره که چقدر من نامگذاری متغیر است. رسید در اولین خط، آن را به یک کلمه است. ZAMYLA CHAN: عذر خواهی من. من این مشکل رفع شود. آره. آنها باید همان نام متغیر باشد. گرفتن خوب است. OK. بنابراین اجازه دهید تا به رشته حرکت الحاق. اگر من می خواستم به دو رشته، پس از آن من می توانید آنها را الحاق با عملگر نقطه. بنابراین اگر من میلو به عنوان نام اول و موز به عنوان یک نام گذشته، پس از آن الحاق با عملگر نقطه و پس از قرار دادن فاصله در بین یک رشته که شامل میلو را موز، که من پس از آن می تواند اکو و یا، نه، از چاپ. صحبت از اکو، اجازه دهید صحبت کنید در مورد چند مفید - اوه. من متاسفم. چند توابع مفید PHP. بنابراین ما از این - مشکلات فنی. دوم. من آن ارسال می شود. مشکلات پاورپوینت. و ما به عقب با توابع PHP. و ما به عقب با توابع PHP. بنابراین ما نیاز به تابع، که در آن اگر شما در یک فایل منتقل می شود، در اینجا است که فقط در یک نمونه از فایل است که من ممکن است منتقل می شوید پس از آن که شامل کد PHP از آن فایل که من نشان می دهد. و آن را ارزیابی خواهد کرد که وارد سپس ما نیز انعکاس داشته باشد، که به موازات چون printf است. خروج موازی برای شکستن است، که خارج بلوک کدی که شما وارد کنید و سپس چک خالی که آیا با توجه به متغیر است مانند تهی یا صفر یا هر چه با خالی بودن برابر دانسته شود. آره. رسید برای الحاق رشته نقطه یک اپراتور، در PHP، این است که همان است که در جاوا اسکریپت که در آن با استفاده از نقطه برای الحاق به معنای به علاوه؟ بنابراین برای نام کامل، شما می توانید از دلار دارند اولین علامت + و سپس + آخرین؟ ZAMYLA CHAN: آره. بنابراین سوال این بود که آیا در PHP ما می توانید به همان الحاق رشته استفاده همانطور که در جاوا اسکریپت با علامت +. یوسف را به که بعد دریافت کنید. من فکر می کنم او یک اسلاید بر روی آن. در واقع، این متفاوت است. بنابراین در جاوا اسکریپت، شما نیاز به استفاده از به علاوه به الحاق رشته ها. و در PHP، شما را به استفاده از عملگر نقطه. به طوری که آنها متفاوت هستند. OK. بنابراین در حال حاضر که ما همه تحت پوشش این PHP، جایی که آن را ندارد واقعا در مفید آمده است؟ خوب، آن را در دستی می آید وقتی که ما می توانید آن را با HTML ما ترکیب. بنابراین PHP ما به ما قدرت را به تغییر می دهد محتوای HTML صفحه قبل بارگذاری آن است. بنابراین بر اساس شرایط مختلف، معمولا کاربر خاص که وارد شده، ما می توانید صفحه نمایش اطلاعات متفاوت است. لیندا، آیا شما سوالی دارید؟ یک مدعو: آیا می توانید الحاق یک عدد صحیح نیز؟ ZAMYLA CHAN: بله، شما می توانید. بنابراین اگر شما می توانید سوال بود الحاق اعداد صحیح و یا دیگر variable.s در حال حاضر، ما در حرکت به MVC، که یک پارادایم است که ما در استفاده است pset7 و بسیاری از طراحان وب برای استفاده سازماندهی کد در فایل ها در وب سایت خود. M مخفف مدل. و اساسا، فایل های مدل برخورد خواهد کرد با تعامل با پایگاه داده. مشاهده فایل، آنها را به ارتباط زیبایی شناسی از وب سایت. و دسته کنترل درخواست کاربر، تجزیه داده ها، منطق دیگر. در pset7، ما مدل ترکیبی و کنترل. و ما فقط آنها را کنترل نامیده می شود و آنها را در دایرکتوری های عمومی است. و فایل های نمایش، ما از آنها استفاده به عنوان قالب را در پوشه قالب. بنابراین این نمودار در اینجا نیز نشان دهنده که همین نوع از تقسیم بندی با مدل و کنترل در بنفش در اینجا در سمت چپ و این دیدگاه در سمت راست. این یک طرح کلی است که برخی از شما ممکن است در ساعات کاری و یا دیده می شود نمودار که ما به شما به عنوان رسم شد بدانند شد از pset شما. بنابراین در اینجا، در یک کنترل کننده داده می شود، یک مدل کنترل، ما باید توابع که به پرس و جو از SQL مرتبط پایگاه داده، اجرای منطق PHP. شاید شما می توانید نگاه کردن سهام در یاهو امور مالی. یا شاید، شما را فقط برای بررسی دیدن اینکه آیا یک کاربر را ارائه کرده بودند را تشکیل می دهند در حال حاضر قبل از صفحه شما بازدید کرده است. و سپس شما را ارائه تشکیل بیش از اینجا. پس از آن فرم ارسال شده است توسط کاربر، عمل بود مشخص شده در تگ HTML فرم به صفحه نشان می دهد که آن را به را برمی گرداند که داده ها را به. بنابراین تمام آن اطلاعات خواهد بود بازگشت به کنترل شما ارسال می شود. سپس شما احتمالا یک کمی بیشتر منطق در آن و شاید اجرای چند نمایش داده شد بیشتر در پایگاه داده SQL و پس از آن، در نهایت، آمد تا با سادگی مجموعه ای بسته بندی شده از اطلاعات است که شما می عبور در به برخی قالب های دیگر که که اطلاعات نمایش داده شود. در حال حاضر، چگونه ما در واقع بسته بندی که اطلاعات رو؟ خب، ما باید یک تابع به نام بارگزاری که در فایل functions.php در بود pset7، که در آن شما به نام عبور یک فایل، نام یک الگو. و سپس شما نیز در عبور یک آرایه انجمنی. و به طوری که آرایه انجمنی نشان دهنده اطلاعات مختلف که شما می خواهید به تصویب شوید در حال حاضر، آنچه در ثابت است این مثال ها این است که کلید و یا، نه، از کلید های انجمنی آرایه ها، آن ها چه خواهد بود انتظار می رود که از قالب ثابت است، چرا که آن را می داند به آن نیاز دارد چیزی به نام پیام و یا به نام نام. و پس از آن چیزهایی که در سمت راست، ارزش واقعی است، بنابراین در این مورد، که در یک پسر خوب و میلو، کسانی که در حال رفتن به ارزش هایی که در حال تغییر که کنترل کننده در هر زمان تغییر می و یا بر اساس شرایط خاص و عبور است که وارد بنابراین در اینجا در قالب ها، ما می بینیم که ما با استفاده از کاراکترهای خاص HTML، که تنها اساسا بدان معنی است که ما می خواهیم برای دریافت رشته همتا که کاربر قرار داده اید. و ما می خواهیم به جای ارسال در وجود دارد. بنابراین، هنگامی که ما در واقع مشاهده و پس از آن فایل، های خاص اطلاعات منتقل می شوید توجه داشته باشید که کلید چگونه ارائه آثار است که از کلید های انجمنی آرایه ها، آن دسته از متغیر تبدیل نام در اینجا. و به این ترتیب ارزش های است که کلیدی در آرایه انجمنی پس از آن می شود مقدار متغیر. در حال حاضر، اجازه دهید تا به SQL حرکت می کند. آن را برای ساخت غرفه زبان پرس و جو. و به این ترتیب این فقط یک برنامه نویسی زبان طراحی شده برای مدیریت پایگاه های داده. و آن را در دستی برای ما در آمد وب سایت امور مالی pset7 ما. در اصل، آن را فقط یک راه آسان برای است ردیابی و مدیریت اشیاء و جداول و اتصال آنها به یکدیگر. در حال حاضر، از پایگاه داده SQL شما فکر می کنم اساسا به عنوان یک فایل اکسل، شاید، با ورق جدولبندیشده متعدد. بنابراین شما می توانید از جداول چندگانه داشته باشد، شاید، که به یک دیگر مرتبط است. و بسیار شبیه به اکسل، ما باید بسیاری از قابلیت های که ما می خواهیم. به عنوان مثال، ما می توانید انتخاب کنید ردیف خاص. ما می توانیم اطلاعات را وارد کنید. ما می توانیم ردیف به روز رسانی. و ما نیز می تواند کارها را حذف کنید. SQL انتخاب آثار با انتخاب ردیف و یا یک ردیف از ستون ها مشخص شده از پایگاه داده که مطابقت دارند خاص معیار است که شما نشان می دهد. بنابراین در اینجا زمانی که من را انتخاب کنید * از جادوگران که در آن خانه = ریونکلاو، پس از آن من انتخاب *، که به معنی من انتخاب هر ستون هم در آن سطر از جدول جادوگران اما تنها در صورتی ستون خانه برابر ریونکلاو. در حال حاضر، این خالص و یا SQL است. بنابراین اگر من را از phpMyAdmin، که رفت راه خاص است که استفاده می کنیم برای مدیریت پایگاه های داده SQL، سپس من می توانم وارد که به وب سایت از phpMyAdmin. و این اجرا. اما ما در واقع می خواهیم انجام دهیم که در کنار PHP. بنابراین ما چگونه انجام این کار؟ خب، ما با استفاده از تابع پرس و جو، که اساسا که پرس و جو SQL اجرا می کند. با استفاده از؟ به عنوان یک حفره یا سوراخ، ما می توانیم در برخی عبور ارزش به رشته ما است که ما می خواهند به جای. بنابراین شاید من ذخیره سازی های مختلف ارزش ها در curr_house، که نشان دهنده از خانه فعلی که من رفتن را از طریق. بنابراین من می توانم پاس را که به عنوان یک حفره یا سوراخ با علامت سوال. و پس از آن من اساسا خواهید اجرا همان چیزی که من قبل از انجام، به جز در حال حاضر، من در PHP هستم. و پرس و جو خواهد شد بازگشت آرایه انجمنی. و من قصد دارم به ذخیره آن را در ردیف. در حال حاضر، پرس و جو همیشه می تواند شکست بخورد. شاید پرس و جو SQL می تواند اجرا نمی چرا که در جدول وجود نداشت. یا شاید، ستون وجود نداشت. چیزی را اشتباه رفت. خب، در آن صورت، شما می خواهید به مطمئن شوید که شما که آیا بررسی پرس و جو نادرست بازگشت. و این با استفاده از سه عملیات برابر وجود دارد. و پس از آن من عذرخواهی می کنیم، که دیگر عملکرد CS50، عبور در ارسال پیام. و اگر شما را به عذرخواهی می کنیم، همه آن را نگاه کنید واقعا است ارائه apology.php. آره. رسید می توانید آنچه را که توضیح می دهند ستاره بین را انتخاب کنید و از کند؟ ZAMYLA CHAN: بله، کاملا. بنابراین ستاره در بین را انتخاب کنید و از بدان معنی است که من می خواهم برای انتخاب کل کل ردیف از جدول من. من می توانم انتخاب نشان داد ام نام، سال، خانه. و من تنها کسانی که سه ستون ها در جدول من. اما اگر من می گویم را انتخاب کنید *، پس از آن من همه چیز در آن ستون. سپس من قصد دارم به شما به در پشت اولین. یک مدعو: پس این است که هنوز هم در SQL، درست است؟ آیا این پرس و جو و یا این PHP است؟ ZAMYLA CHAN: ما در یک پرس و جو است. بنابراین این در PHP است. بنابراین با استفاده از پرس و جو PHP تابع، ما در حال اجرای یک پرس و جو SQL. یک مدعو: آیا در SQL مانند انتخاب حروف حساس است و یا جادوگران یا خانه؟ ZAMYLA CHAN: آیا در SQL حساس؟ به اعتقاد من تا، بله. من باور دارم که SELECT و FROM و که در آن حروف حساس است. هیچ؟ ROB BOWDEN: بنابراین، آن را مخالف است. نام ستون ها و ابزار جدول، همه کسانی که حروف حساس است می باشد. اما هر یک از کلمات خروجی زیر کلید، مانند را انتخاب کنید، FROM، و که در آن، کسانی که نمی حروف حساس است. OK. بنابراین عکس آنچه من گفتم. پس همه از کلمات کلیدی خروجی زیر - را انتخاب کنید، از، که در آن - آن حساس نیست. اما هر چیز دیگری است. OK. شما در مقابل. یک مدعو: اگر من ردیف از نظر دلار بیشتر از یک سطر، آیا معنی است فقط یک آرایه انجمنی می شود؟ ZAMYLA CHAN: بنابراین سوال این بود اگر ردیف بیش از یک سطر در آن، می کند آن را تبدیل به یک آرایه انجمنی؟ پس از آن مجموعه ای از انجمنی است آرایه ها در حال حاضر. بنابراین حتی اگر فقط یک ردیف وجود دارد بازگشت، پس از آن شما می خواهم که برای رفتن به شاخص 0 از این نتیجه. و پس از آن شما می خواهم که سطر اول را داشته باشد. بله، بلیندا؟ رسید هنگام استفاده از ===، این تنها نمونه است؟ و یا دیگران وجود دارد؟ ZAMYLA CHAN: بنابراین در این مورد، === یک مقایسه در میان انواع است. متأسفم. === مقایسه است که نوع مقایسه می کند. و پس از آن == در تمام انواع مقایسه می کند. یک مدعو: آیا می توانید آنچه را توضیح دهد ردیف در این وضعیت است؟ آیا از داده های ردیف؟ ZAMYLA CHAN: در اسلاید بعدی، من هستم رفتن به توضیح آنچه که ردیف است. بنابراین اگر شما از ذهن نیست برگزاری کردن در آن. و سپس شما را در پشت؟ یک مدعو: برای توابع مانند پرس و جو، ارائه و معذرت خواهی [نامفهوم]؟ ZAMYLA CHAN: سوال که آیا این توابع - پرس و جو، عذرخواهی، و ارائه - در سراسر PHP رایج است. این هستند که CS50 برای pset7 نوشت. و جی؟ یک مدعو: هنگامی که شما نیاز به گفتن نیست $ _SESSION، این است که فقط برای شناسه؟ و یا می تواند به شما گفته اند که در اینجا؟ ZAMYLA CHAN: پس پرسش این بود، هنگامی که استفاده می کنیم $ _SESSION، که خاص بود متغیر جهانی است که ما با استفاده از. در اینجا، این متغیر به رفتن به برای تابع ما محلی است. بنابراین ما فقط اعلام یک متغیر جدید. یک مدعو: چگونه است عذرخواهی می کنیم اجرا؟ ZAMYLA CHAN: سوال این بود، چگونه معذرت اجرا؟ و من فکر می کنم این است که در واقع بسیار تمرین خوبی برای شما بچه ها برای رفتن به بخش functions.php قرار و در نگاه عذرخواهی می کنیم و ببینید که چگونه شما می توانید از خود را انجام داده است. بنابراین من به شما ترک که اما فقط می گویند که اگر شما در نگاه عذر خواهی، پس از آن طول می کشد این پیام است که شما ارسال شده به عذرخواهی می کنیم و سپس آن را که این پیام را ارائه میدهد. هر گونه سؤال بیشتر؟ من عاشق سوالات. بنابراین آنها را به آینده نگه دارید. یک مدعو: [نامفهوم] اکو یا چاپ وجود دارد؟ ZAMYLA CHAN: سوال این بود، می تواند ما نه فقط قرار داده اند اکو و یا چاپ وجود دارد. به طوری که چیزی را انجام داده اند کمی متفاوت است. که پرس و جو چاپ شکست خورد، به که - خوب، در حال حاضر، ما در واقع می در کنترل ما. پس ما در واقع نمی دارند HTML تنظیم کنید. عذر خواهی های ارائه apologize.php در واقع شما تغییرمسیر به apology.php. OK. بنابراین در حال حاضر، اجازه دهید در رفتن به آدرس سوال از قبل از آن در مورد آنچه واقعا ردیف است. خب، پرس و جو باز خواهد گشت مجموعه ای از ردیف. و در هر سطر نشان داده شده است توسط یک آرایه انجمنی. بنابراین اگر من برخی از پرس و جو SQL و اعدام کرده ام I در نتیجه در ردیف ذخیره کرده اید، پس از آن با استفاده از یک حلقه foreach، سپس آرایه ردیف - نام یکی از اولین وجود دارد. و سپس من قصد دارم به تماس هر سطر در آن وجود دارد $ ردیف. بنابراین تکرار بیش از آن، من می توانم پس از آن دسترسی به نام ستون ردیف داده شده است، ستون سال، و ستون خانه. توجه داشته باشید که من قادر به نبود این کار را با ردیف، چرا که شاخص ردیف نام و نام خانوادگی وجود ندارد. ردیف فقط یک آرایه از است آرایه های انجمنی. بنابراین شما باید دو سطح وجود دارد. هنگامی که شما آرایه ای از سطر، شما باید به آن دریافت کنید. و سپس شما می توانید ستون ها دسترسی پیدا کنید. آیا آن را روشن؟ آره، در مقابل؟ یک مدعو: [نامفهوم] باز براکت برای [نامفهوم]؟ ZAMYLA CHAN: من ببخشید؟ یک مدعو: براکت باز. ZAMYLA CHAN: این که اینجا هستید؟ که من اجازه می دهد که شامل که متغیر است. آره. یک مدعو: هنگامی که شما نسخه قابل چاپ، شما چاپ به کد HTML؟ ZAMYLA CHAN: بله. وقتی که من چاپ، این در اینجا این است در داخل الگو در حال حاضر، تا به نظر من از روش MVC. پس من چاپ به HTML. یک مدعو: پس اگر ما را به توسعه رفت ابزار پس از اجرا این، ما می تواند که در واقع در کد؟ ZAMYLA CHAN: این بزرگ سوال، آره. بنابراین اگر شما به ابزار توسعه دهنده کرد در فایرفاکس با استفاده از اتش افروز یا کروم، پس بله، شما می توانید از HTML خاص را ببینید. بنابراین آن را مبلغ ردیف ["نام"] نشان نمی دهد. این امر هر کدام نشان می دهد نام و نام خانوادگی در آن ردیف است. یک مدعو: فقط یک مسئله به طور کلی، چه TR و TD تعریف شده به عنوان؟ چرا ما [نامفهوم]؟ ZAMYLA CHAN: TR ردیف جدول، جدول سپس TD ستون. OK. یک مدعو: آره، آن را داده های جدول. ZAMYLA CHAN: داده های جدول. آره. یک مدعو: این یک ردیف است که در آن ردیف مانند یک ستون درمان می شود؟ ZAMYLA CHAN: متاسفم. آیا می توانم دوباره تکرار کنید؟ یک مدعو: چگونه می خواهید تجسم ردیف؟ ZAMYLA CHAN: چگونه شما تجسم ردیف در چه نوع از راه؟ آیا شما در مورد این صحبت کردن در ردیف اینجا و یا ردیف TR؟ یک مدعو: ردیف. ZAMYLA CHAN: این ردیف در اینجا؟ من می خواهم این را به عنوان تجسم من پرس و جو من را اجرا کند. و آن را می گوید، OK، من یا 0 تا N مقدار ردیف که مطابقت دارند ضوابط که شما تردید کرده بود. بنابراین من به برخی از تعداد سطرها. بنابراین ردیف، ردیف $، فروشگاه های هر یکی از آن ردیف در یک آرایه. بنابراین حتی اگر آن را فقط به یکی از آنها، آن را هنوز هم مجموعه ای از ردیف است که در آن هماهنگ باشد. بنابراین پس از آن، به عنوان مثال، این است که شبیه به زمانی که شما در ذهن حافظه نهان از کاربران است. و معیار بود که در آن وجود دارد ID برابر با ID را وارد نمایید. واقعا وجود دارد تنها یک ردیف است است که می تواند مطابقت. اما هنوز هم ردیف فقط بازگشت یک ردیف. بنابراین شما می خواهم که برای رفتن به سطر، صفحه اول 0، کش شاخص به در واقع به کش خود را دریافت کنید. یک مدعو: آیا تابع چاپ در اکو همان چیزی؟ ZAMYLA CHAN: بله. بله. نسخه قابل چاپ اکو از همان. یک مدعو: آیا حلقه foreach تنها راه شاخص به سطرها؟ ZAMYLA CHAN: آیا حلقه foreach تنها راهی است که شما می توانید تکرار از طریق ردیف؟ شماره شما همچنین می توانید برای استفاده از حلقه، ارائه که شما می دانید طول از آرایه ردیف است. رسید می توانید آن را دسترسی با استفاده از یک ردیف به عنوان [نامفهوم]؟ ZAMYLA CHAN: بنابراین شما می توانید آن دسترسی پیدا کنید فقط با استفاده از ردیف اگر شما لازم نیست حلقه foreach به شرطی که شما ردیف کرده اند اعلام شده است. بله. بله، در سفید. یک مدعو: بنابراین چه چیزی TR و TD انجام دهید؟ ZAMYLA CHAN: بنابراین TR و TD برچسب های HTML می باشد. TR نشان می دهد آغاز از یک ردیف جدول. و هر TD نشان می دهد جدول جدید ستون داده ها. رسید برای تصویری از آنچه در یک ردیف مانند، فقط تصور کنید که SQL، چگونه آنها یک ردیف. [نامفهوم]. ZAMYLA CHAN: آره. این یک نقطه بزرگ است. شما می توانید ردیف به عنوان تنها تجسم مانند در جدول اکسل، فقط لیست ردیف. OK. بسیار خوب. بنابراین در حال حاضر که ما بیش از را انتخاب کنید، اگر رفته نه هر گونه سوال وجود دارد، ما رفتن بر روی قرار دادن. پس اگر من می خواستم برای وارد کردن به برخی از جدول و قرار دادن ستون خاص ارزش ها، من می توانم خودم وارد به ریونکلاو در سال 7. اما گاهی اوقات ممکن است وجود داشته باشد تکراری ارزش ها، به عنوان ما در pset7 دیدم زمانی که ما نمونه کارها ما را به روز رسانی شد. بنابراین در این مورد، ما مایل به استفاده از ON DUPLICATE KEY UPDATE، به طوری که ما نمی ذخیره ردیف های متعدد را با همان ارزش بلکه به روز رسانی آن است. سپس ما در واقع به روز رسانی، است که درج نشده است. این فقط یک به روز رسانی که در آن شما به روز رسانی است در یک جدول خاص با توجه به ضوابط و پس از آن، در نهایت، حذف، که نشانی از یک چیزی که بسیار مشابه است. رسید می توانید به طور خلاصه بیش از کلید های تکراری برود؟ ZAMYLA CHAN: آره. در اصل در اینجا، من INSERT INTO گرینگوتز، است، galleons، این ارزش ها. اما ID، احتمالا، یک کلید منحصر به فرد است ارزش در جدول MySQL گذاشته. بنابراین اگر من در حال حاضر که ID راه اندازی، پس از آن من می تواند یک ردیف جدید درج نشده است. بنابراین اگر آن وجود ندارد در حال حاضر، پس من باید آن را بروز رسانی. در وسط در رنگ سفید. رسید بنابراین درج، بروز رسانی، حذف، و را انتخاب کنید، آن همه در دسترس محلی [نامفهوم]؟ ZAMYLA CHAN: بنابراین قرار دادن، بروز رسانی، حذف، و انتخاب همه نمایش داده شد SQL می باشد. بنابراین هر زمان که شما با استفاده از SQL، شما کسانی که در دسترس داشته باشد. یک مدعو: بازگشت به آزمونها گذشته - بود سوالی است که با آن برخورد وجود دارد اگر شما تا به حال یک جدول و به خواست وارد کردن نمرات آزمون در یک و قرار دادن نام و نام خانوادگی خود را به طوری که شما آن را نمی خواهد اجازه [نامفهوم] نمره آزمون دوست شما. چگونه شما این کار را با قرار دادن؟ ZAMYLA CHAN: بنابراین سوال در مورد یک سوال قبلی میان مدت. من از آن آگاه نیست یکی آن را در حال حاضر است. شاید پس از آن، اگر شما می خواهید آمد و به من نشان می دهد، پس من می توانم مطمئنا شما راهنمایی می دهد. اما سخن گفتن از چیزهایی قرار دادن، مانند گرفتن نمره کسی را در هنگام باید نه، اجازه دهید بحث در مورد حملات SQL تزریق. پس از حمله تزریق SQL است که در اصل که در آن کسی را می گیرد استفاده از امنیت کم از راهی که شما در حال بدست گرفتن در داده ها. پس در اینجا، درست مثل در امور مالی CS50، هنگامی که ما وارد شده، ما می توانیم در یک وارد کنید نام کاربری در فرم لاگین، در جعبه متن اول، و پس از آن در یک رمز عبور را وارد کنید. شاید کد PHP ما ممکن است نگاه چیزی شبیه به این، که در آن $ نام کاربری است که نام کاربری پس از داده ها و رمز عبور رمز عبور پس داده است. و پس از آن ما فقط پرس و جو را اجرا، می گویند، OK، خوب، پرس و جو ما در حال رفتن به از کاربران ما را انتخاب کنید، که در آن نام کاربری یکی که آنها را مشاهده کنید. و رمز عبور رمز عبور است، به این معنی که کلمات عبور مطابقت داشته باشد. حالا اگر به جای آن از واقع ارسال رمز عبور واقعی، مانند 12345 و حدس زدن در چنگک صاف کردن است که می گوید: رمز عبور و تلاش برای هک خود حساب، چه می شود اگر به جای آنها این را مشاهده کنید. آنها می توانند در نوع شاید حدس در رمز عبور. و سپس آنها را به پایان برساند اعلان پس از آن در نوع و یا 1 = 1. که به طور مستقیم به SQL سرعت پرس و جو که به دنبال چیزی شبیه به این. انتخاب از کاربران که در آن نام کاربری = شاخک های و رمز عبور برابر زنبق و یا 1 = 1. بنابراین یا رمز عبور است به درست یا 1 = 1، است که همیشه درست است. بنابراین در این مورد، در واقع، کاربر می تواند استفاده از این و فقط وارد شوید خود را در و هک حساب کسی. به همین دلیل ما می خواهیم برای جلوگیری از کسی نیاز به انجام این کار. اما خوشبختانه، تابع پرس و جو توسط عبور در متغیرهایی خواهد شد مراقبت از این برای شما. همچنین، شما به طور معمول هرگز می خواهم در واقع ارسال کلمه عبور خود. به همین دلیل ما درهم سازی یا رمزگذاری آنها را در امور مالی CS50. یک مدعو: مسابقه گذشته صحبت کردیم در مورد رشته های فرار داده. آیا ما باید در مورد آن نگران؟ ZAMYLA CHAN: این سوال خوبی است. رشته ها فرار خروجی زیر است قطعا تابع که در پرس و جو ما مورد استفاده قرار گرفت. اما قطعا به آن نگاه کنید. من می خواهم بگویم که بازی منصفانه به دانستن است که شما می باید تماس بگیرید که کار در یک رشته است. آره، بلیندا؟ یک مدعو: چگونه شما می دانید زمانی که آن را به نقل از یک یا دو علامت؟ و همچنین، من در سخنرانی احساس شما چیزی در مورد داشتن ذکر [نامفهوم] و یا چیزی و یا دوم نقل قول تنها در پایان. من فکر می کنم او در سخنرانی اشاره کرد که شما قرار است به آپوستروف 1 و پس از آن آپوستروف ندارد و یا چیزی. یک مدعو: [نامفهوم]. رسید چیزی که در آخرین تک است نقل قول در وجود دارد که در جعبه دوم نه وجود دارد باید. [نامفهوم] از آنجا که شما را که آخرین تک نقل و مطابقت این برای مطالب که در آن رمز است، اگر شما که پرس و جو، یک اعلان تنها در وجود دارد در پایان در حال حاضر. شما می خواهید به استفاده از آن نقل قول تنها به عنوان یکی که از یک چهره [نامفهوم]. پس چه در واقع در آن متن جعبه باید که نیست. ZAMYLA CHAN: من را تغییر دهد. OK. اگر هر گونه سوال وجود ندارد، پس من با تصویب آن را به یوسف به بحث در مورد جاوا اسکریپت، و غیره. [تشویق حضار] JOSEPH ONG: بنابراین ما در حال اجرا هستند کمی پشت سر گذاشت. بنابراین اگر شما به ترک، که OK. اما ما می پرسند که شما سر خود را پایین نگه دارید اگر شما در وسط است، بنابراین شما دوربین را متوقف کند و شما با استفاده از خروج به عقب اگر شما به. من یوسف توسط راه هستم. سلام. تست، تست. دن، خوب این است که؟ دانلود. بنابراین این ویدئو نیز ارسال شود آنلاین برای کسانی که باید اینجا را ترک کن. بی دست و پا. OK. بنابراین بررسی مسابقه. این یک گربه است. در حال حاضر، جاوا اسکریپت، که شاید نه به عنوان AWW برای برخی از شما بچه ها. OK. به طوری که برای اولین بار از Zamyla به یاد می آورند. بخاطر داشته باشید که PHP است اجرا بر روی سرور. و تعداد زیادی از بار، شما بچه ها حلقه ها نوشت در PHP به نسخه قابل چاپ کردن HTML، درست است؟ پس یک بار که کد اجرا، که خروجی HTML که شما نسخه قابل چاپ کردن می شود به کاربر ارسال می شود. و یک بار که اتفاق می افتد، دیگر نیازی به PHP می تواند شود، مگر اینکه شما بارگذاری مجدد صفحه، از البته، که reexecutes PHP. اما هنگامی که شما که HTML نسخه قابل چاپ، شما نمی توانید به هرجایی بروید. به طوری که HTML است را به کاربر فرستاده می شود، است که مرورگر در اینجا، که در آن میلو است با استفاده از کامپیوتر است. و تا به خوبی، چند چیز وجود دارد زمانی که ما به کاربر ارسال HTML. گاهی اوقات ما می خواهیم برای انجام کاری مانند هنگامی که شما بر روی چیزی کلیک کنید، ما می خواهیم جعبه های هشدار را به ظاهر، آن نوع از تعامل، مانند وقتی که شما فشار کلید، هنگامی که شما چیزی در را کلیک کنید صفحه، من می خواهم چیزی اتفاق می افتد. خوب، شما می توانید PHP reexecute نمی کد یک بار که HTML تنظیم شده است. پس چگونه شما این کار؟ ما یک زبان جدید به نام معرفی جاوا اسکریپت، که در مرورگر اجرا می شود که اجازه می دهد تا شما را به انجام کارهای به اچ شما بعد از دریافت آنها را از سرور. و این است که ما آن را به یک سمت سرویس گیرنده تماس بگیرید زبان های برنامه نویسی. این بر روی کامپیوتر شما کار می کند - مشتری. هر گونه سؤال در مورد که تا کنون؟ این پارادایم را حس می کند به مردم؟ OK. خوب. بسیار خوب. بنابراین اولین چیزی که به یاد داشته باشید است جاوا اسکریپت PHP است. آنها ترکیب های مختلف، که ما را به. و آنها را استفاده می کند بسیار متفاوت است. جاوا اسکریپت، دوباره، برای شما مرورگر، برای مشتری. سرور اجرا می شود در جایی در شخص دیگری کامپیوتری است که اطلاعات را ارسال می کند به شما، درست است؟ بنابراین اگر ما از شما می خواهیم به نوشتن کد PHP در سوال امتحان، آیا نوشتن نیست جاوا اسکریپت و بالعکس. شما فقط می خواهید از دست دادن امتیاز، و آن را نمی خواهد به سمت راست. بنابراین اجازه دهید به برخی کنید تفاوت نحو - جاوا اسکریپت در سمت چپ و PHP در سمت راست. اولین چیزی که شما متوجه با جاوا اسکریپت، ما متغیر با اعلان کلیدواژه var - V-A-R. PHP علامت دلار استفاده می شود، به عنوان Zamyla قبل از آن بحث شده است. اگر می خواهید به اعلام انجمنی آرایه، ما به نحو آشنا را در در سمت راست با PHP. در سمت چپ، به جای شما با استفاده از آکولاد. و سپس کلید خود را در سمت چپ می باشد. سپس شما یک روده بزرگ است. و سپس شما را از ارزش که شما می خواهید. پس این است که چگونه شما می توانید آن را در PHP انجام در سمت راست با دوم خط که در میلو شروع می شود. و این است که چگونه شما می توانید آن را در انجام سمت چپ در جاوا اسکریپت اگر شما می خواهید آنچه که ما یک شی تماس بگیرید. و اشیاء در جاوا اسکریپت می باشد فقط آرایه های انجمنی. بنابراین اگر شما می خواهید برای دسترسی به مخاطب، در PHP به شما استفاده از این ترکیب نحوی براکت. و به این ترتیب، شما می توانید جابهجا این زمینه صاحب به لورن. خوب، در جاوا اسکریپت، اگر می خواهید دسترسی به یک میدان و آن را تغییر دهید، شما می توانید استفاده از نقطه را میسازد. شما همچنین می توانید نحو براکت استفاده کنید. اما شما می توانید استفاده کنید نقطه را میسازد در PHP. این کار نخواهد کرد. تنها در PHP کار می کند. و در نهایت، به چاپ همه چیز به کنسول استفاده می کنید console.log، که شما بچه ها استفاده زیادی در pset8. شما می توانید console.log که. اگر شما می خواهید برای چاپ یک آرایه در PHP، شما مجبور به استفاده از چاپ R. و در سمت راست، شما می بینید من هش الحاق رشته بیش از وجود دارد. کسی که پیش از آن پرسید. من استفاده از یک به علاوه در جاوا اسکریپت. اگر من می خواهم به الحاق چیزی در PHP، من با استفاده از نقطه. این متفاوت است. اگر شما در حال نوشتن کد PHP، یک به علاوه استفاده کنید. اگر شما در حال نوشتن جاوا اسکریپت کد، به یک نقطه ارسال نشده است. این اشتباه خواهد بود. و شما غمگین می شود. تفاوت بنابراین نحو. بدانید نحو خود را، چرا که اگر شما به ارسال نامه سوال و شما با استفاده از نحو از زبان اشتباه، آن کار نخواهد کرد. و این اشتباه خواهد بود. بنابراین اجازه دهید در مورد برخی از کنترل صحبت تفاوت جریان، نحوه استفاده از حلقه در هر یک از آنها. Zamyla بیش از سمت راست رفت. مسائل در سمت راست باید آشنا باشد. اجازه دهید نگاه کنید در سمت چپ. وقتی که شما برای N حلقه در جاوا اسکریپت استفاده کنید، متغیر حلقه خود را، ور من بیش از وجود دارد، حلقه بر، کلیدهای آرایه. بنابراین نام، خانه، و نقش شما را ببینید. اگر من من console.log، من نام و نام خانوادگی، خانه، و نقش. این کلید می باشد. در جاوا اسکریپت، حلقه foreach می رود بیش از مقادیر این آرایه. بنابراین شما متوجه هر دو آنها من است. اما در اینجا در کنار پی اچ پی، آن را چاپ از میلو، CS50، و طلسم. این مقادیر در PHP می باشد. بنابراین این که چگونه این دو متفاوت است در زبان های مختلف. بنابراین اگر شما با استفاده از حلقه foreach حلقه، فرض نکنید که آن را به به شما کلید. و اگر شما با استفاده از برای n حلقه، نمی فرض کنیم آن را به شما می دهد ارزش. آیا این را حس تا کنون؟ اسلاید بعدی است که به شما نشان می دهد چگونه می توانید در مقابل در دسترسی هر یک از آنها. خوب، اگر شما کلید در جاوا اسکریپت و شما می خواهید ارزش از، شما فقط صفحه اول را به آرایه با آن. بنابراین میلو از من آنچه کسب می کنید شما می خواهید - ارزش. به این نحو مختلف در PHP وجود دارد. اگر شما واقعا می خواهید آن را می دانم، من نیست فکر می کنم ما آن را به شما نشان داد ام هنوز. اما اگر شما علاقه مند هستید، شما می توانید استفاده کنید این دستور های دیگر در سمت راست طرف است که در واقع به شما اجازه دریافت کلید ها در PHP هنگامی که شما با استفاده از حلقه foreach. پس فقط کمی از چیزهای بی اهمیت اگر شما علاقه مند است. به طوری که فقط برای نشان دادن تفاوت بین این دو حلقه. آنها را مخلوط نیست تا زمانی که شما برنامه نویسی یک سوال. هر گونه سؤال در مورد آن. دانلود. بسیار خوب. جاوا اسکریپت اشیاء. من در مورد آنها صحبت کردیم. آنها مانند آرایه های انجمنی هستند. یک چیزی که من می خواهم شما را به یاد داشته باشید در اینجا است که یک مقدار در یک انجمنی آرایه می تواند هر چیزی در جاوا اسکریپت. حتی می تواند یک تابع، مانند بیش از وجود دارد. من یک تابع است که یک مقدار از یک کلید است. و اگر من می خواهم به تماس است که تابع، من فقط پوست دسترسی پیدا کنید. و پس از آن من پرانتز قرار داده بعد از آن. و این کار می کند. بنابراین هر گونه سوال؟ هیچ؟ OK. خوب. جاوا اسکریپت، مانند PHP، است از نوع بی قاعده. به چه معنا است؟ این دستگاه از نوع. اما زمانی که شما اعلام جاوا اسکریپت متغیر، به شما می گویند ور من. شما آن را می گویند نیست. این یک چیز نیست. شما فقط می گویند که یک متغیر است. و سپس جاوا اسکریپت رسیدگی خواهد شد انواع زیر کاپوت برای شما. ما آزادانه می تواند بین تبدیل انواع به خاطر این. پس من شروع می شود به عنوان یک عدد در این مورد. و پس از آن من یک رشته است. و من من به آن اضافه کنید. و من آن را جابهجا دوباره به من. پس در آن خط اول، من تعداد است. در خط دوم، من در حال حاضر تبدیل به یک رشته پس از من انجام انتقال. و در اینجا، من فقط الحاق این تعداد را بر روی رشته است. پس می بینید که حتی اگر من بود عدد صحیح در بخش اول، این نوع از مثل این است که به یک تبدیل رشته و سپس افزوده بر روی آن رشته سلام. و بنابراین، این چیزی است که منظور من با تایپ کردن شل. این که شما بین تبدیل انواع راحتی. و آن هشدارهای پرتاب در دوست دارید C می کند. بنابراین من در حال حاضر شامل سلام 123 به رشته. بعدی. ما همچنین می تواند آزادانه مقایسه بین انواع. بنابراین اگر شما فقط استفاده از ==، بسیار مانند PHP، جاوا اسکریپت می کند یک چیز مشابه است. رشته 123 همان تعداد است 123 هنگام استفاده از برابر دو برابر شود. هنگامی که برابر سه گانه استفاده می شود، آن را نیز می خواهد مطمئن شوید که نوع همان است. بنابراین دلیل است که یک رشته است و آن این است تعداد، حتی اگر آنها هر دو هستند 123، هنگام استفاده از سه برابر است، شما نادرست است. در دو برابر مورد، شما درست است، چرا که برابر دو برابر می کند در مورد نوع مراقبت. برابر سه گانه در مورد نوع مراقبت. سوالات؟ OK. و یک چیز دیگر در مورد جاوا اسکریپت است دامنه نوع جهانی است مگر اینکه شما در یک تابع. و این کار به همان راه در PHP در واقع. بنابراین اجازه دهید از طریق این مثال بروید. I من به 999 تنظیم شده است. و بعد من را به این حلقه بروید. پس اگر من چاپ من در این حلقه، من انتظار دارم 0، 1، 2، 3، 4. من به من = 4 دریافت کنید. این افزایش من در حال حاضر به 5 در در پایان از حلقه for. و سپس آن را خارج از حلقه می شکند، چرا که تحقق نیست شرط دیگر. شما چه فکر می کنم که آینده console.log چاپ؟ بنابراین این چیزی است که آن را در C. انجام در C، چرا که اگر شما مثل ور من خارج و شما باید ور من در داخل یک حلقه، مانند برای حلقه، سپس آن را می سازد آن را به طوری که آن مورد نظر است که دو من متفاوت است. در جاوا اسکریپت، آن را فقط خواهد شد به عنوان همان من به آن بپردازد. من 5، چرا که ارزش بود پس از آن از حلقه خارج. بنابراین کسانی که من را می همان من. آیا این را حس؟ خوب، آن را حس می کند از نقطه نظر جاوا اسکریپت. اما الگوی مشابه نمی کند حمل به C. آنها قوانین حوزه های مختلف. بله. یک مدعو: [نامفهوم] در خارج از تابع [نامفهوم]؟ JOSEPH ONG: پس از خارج که به تابع؟ پس من به که در یک ثانیه دریافت کنید. بنابراین ما تولی تماس بگیرید (من). این عبور من را به تولی، افزایش آن، و سپس آن را سیاهههای مربوط. پس از آن 5 بود. پس از آن می شود 6. اما آنچه من صحبت کردن در مورد است که من در آن تابع. از آنجا که آن پارامتر، آن را به که تابع مورد نظر است. پس یک بار من در واقع از آن دریافت کنید تابع، آن را در حال حاضر رفتن به به من قدیمی است. که من تنها مورد نظر است چرا که آن را در یک تابع است. و ما باید دامنه و توابع. اما ما دامنه خارج ندارد از توابع در جاوا اسکریپت. آیا این را حس؟ بله. سوال. یک مدعو: همان [نامفهوم]؟ JOSEPH ONG: پس آره. در PHP، آن را به همان نوع از چیزی نیست. یک ظرافت اندکی در واقع وجود دارد. اما شما می توانید به من در مورد سوال که پس از بررسی. شما واقعا نیاز به دانستن که ظرافت برای مسابقه. برای تمام مفاهیم و اهداف، مانند متغیر جهانی و PHP، مگر اینکه آنها در یک تابع است، همان چیزی که در جاوا اسکریپت. بله. یک مدعو: چرا این در اجازه جاوا اسکریپت و هیچ که در آن دیگری؟ JOSEPH ONG: پس چرا آن را مجاز در جاوا اسکریپت و نه در C؟ این فقط هر کس با آمد جاوا اسکریپت تصمیم گرفت که این OK در بود جاوا اسکریپت. پس از آن درست مانند یک زبان برنامه نویسی کنوانسیون که ما می گویند. بله. رسید: پس چرا آن را به 6-5؟ JOSEPH ONG: پس از 6 رفت تا 5، چون وقتی که من من را به تولی به تصویب رسید، که من در داخل مواد غذایی در حال حاضر به تولی مورد نظر است، چون دامنه در توابع در وجود دارد جاوا اسکریپت. اما یک بار من از اینجا دریافت کنید، چرا که آن را به تابع مورد نظر بود، من فقط با استفاده از i به طور منظم است که در داخل بود بقیه کنترل جریان. را حس؟ آیا من می توانم در حرکت؟ بسیار خوب. دانلود. پذیرش این اشیاء است توسط مرجع منتقل می شود. شما می دانید که چگونه زمانی که شما عبور یک آرایه را به C شما می توانید در واقع آرایه را تغییر دهید؟ این همان چیزی که در جاوا اسکریپت است. اگر من یک شیء، در این مورد، من میلو به این تابع catify گذشت. میلو شروع می شود. نام او میلو موز است. که جسم عبور من را به یک تابع به این دلیل که یک شی، انجمنی است آرایه در جاوا اسکریپت. وقتی که من انجام یک عملیات در این تابع، آن را در واقع شیء را تغییر دهید. پس این فقط برای اشیاء اتفاق خواهد افتاد در جاوا اسکریپت، درست مثل آن اتفاق می افتد برای آرایه های داخل نام C. بنابراین میلو است در واقع گربه تبدیل در حال حاضر. آیا این را حس؟ پس این فقط برای اشیاء کار می کند. اشیاء توسط مرجع منتقل می شود. بله. یک مدعو: پس شما می گویید که در مقابل به متغیر من. JOSEPH ONG: آره. کدام متغیر من فقط بود تعداد، درست است؟ آن را مانند در C زمانی که شما تصویب عدد صحیح، آن را می سازد کپی کنید. و هنگامی که شما تصویب یک آرایه، آن را در واقع تغییر آرایه واقعی در C. همین کار را با اتفاق می افتد جاوا اسکریپت در این مورد. بسیار خوب. و بعد، میلو غم انگیز است چرا که او در حال حاضر یک گربه. که در واقع پس از میلو برخی از سفر به دامپزشک. پس چگونه ما استفاده از جاوا اسکریپت در یک صفحه وب؟ ما می توانیم آن باشد. این کد HTML با برچسب نوار است. بنابراین من برچسب نوار وجود دارد. سپس من مقداری جاوا اسکریپت کد در تگ script. و سپس آن را در این اجرا می کند. وقتی که من فقط آن را انجام دهید مانند این، آن را به نام جاوا اسکریپت درون خطی. این نوع از کثیف است، چرا که جاوا اسکریپت است که در واقع در HTML. راه بهتری برای انجام این کار، بسیار بهتر، برای نوشتن جاوا اسکریپت خود را در فایل های خارجی و پس از آن ارائه تگ اسکریپت را با یک منبع. و این به آن فایل جاوا اسکریپت به و خواندن کد های جاوا اسکریپت از فایل هایی که به جای. و به این ترتیب، شما بسیاری از ندارد جاوا اسکریپت در آغاز خود را فایل HTML که باعث می شود واقعا کثیف. شما فقط آن را در جایی دیگر. و سپس آن را به آن را از آنجا به عنوان خوانده شده. آیا این را حس می کند؟ مسائل مربوط به قرار دادن. در این مورد خاص، اسکریپت قبل از بدن است. بنابراین، هنگامی که من اجرا است که، وجود دارد هیچ چیز در بدن است. شاید این کمی بیشتر خواهد شد حس وقتی که من این بخش بعدی نشان می دهد. در این مورد، اسکریپت پس از دیو. بنابراین DIV در واقع به نظر می رسد در صفحه اول. حق در اینجا در این دایره کوچک قرمز رنگ، شما می بینید که متن به نظر می رسد. و پس از آن با هوشیاری نشان می دهد تا. در مورد اول، به دلیل اسکریپت قبل از DIV بود، هشدار برای اولین بار نشان می دهد تا. و پس از آن DIV نشان می دهد تا پس از شما در جعبه اخراج. پس از اعدام مهم است. بنابراین ما این را در ذهن داشته باشیم. این مهم خواهد بود در کمی. OK. بنابراین خوب، چگونه می توانم شما را تا زمانی که منتظر کل صفحه است و سپس قبل از اینکه شما لود شده برخی از کد اجرا؟ ما را به این کمی کنید کمی بعد از آن بیش از حد. اما فقط نگه داشتن این قرار دادن مسائل در ذهن زمانی که ما به اسلاید دیگر آمده است. بنابراین ما در حال حاضر به DOM دریافت کنید. و چه DOM است؟ بنابراین اگر شما در کد HTML نگاه کنید، آن را فقط یک دسته از متن بر روی صفحه نمایش. پس چگونه جاوا اسکریپت می دانیم که این یک عنصر HTML است؟ بنابراین ما باید به برخی از حافظه نمایندگی از این ساختار که ما داشته باشد. و هر زمان که ما این را در حافظه نمایندگی در جاوا اسکریپت، ما تماس بگیرید که DOM. و آن را تنها یک راه است که مردم تصمیم است که ما باید این نشان دهنده ساختار HTML به عنوان. و چه DOM شبیه؟ خوب، در نمایندگی های حافظه، ما را به این متن. و ما آن را به حافظه نمایندگی. پس این است که HTML است. بنابراین ما برای اولین بار از پیدا کردن که هر درخت DOM دارای یک سند است. آن را مانند یک درخت به نظر می رسد. و سند شامل HTML برچسب، در واقع همه چیز در داخل از این در حال حاضر. برچسب HTML دارای دو فرزند. این سر. این سر، اگر شما در دندانه نگاه بیش از وجود دارد که چگونه آن را ساخت یافته بین تگ نزدیک، سر تا به کودکان. کودک عنوان شده است. دقیقا. در حال حاضر، ما باید یک کودک بدن است. و پس از آن که بدن کودک به نام خانواده. و این خانواده دارای سه فرزند - قدیمی ترین، متوسط، و جوانترین. بنابراین شما باید بدانید که چگونه برای رسم یک نمودار مثل این زمانی که ما از شما می خواهیم که چگونه برای رسم یک نمودار زمانی که ما را شما HTML در سمت چپ. بدانید که چگونه برای تولید درخت DOM. و در داخل از این چیزها، فقط وجود دارد برخی از متن، که من نشان داده ام جعبه به عنوان کم است. آیا این ساختار درختی DOM را حس و چه DOM است؟ پس چه P برای ایستادن؟ در اینجا، ص بیش از وجود دارد در این تگ نشان دهنده یک برچسب پاراگراف در HTML. بنابراین شما می توانید آن را به بالا نگاه کنید. اما این فقط بدان معنی است که برخی از فضا برای برخی از متن. و آن را تا به برخی از پیش فرض یک ظاهر طراحی شده CSS، به دلیل آن است که یک تگ پاراگراف است. اما واقعا نگران آن بخش بیش از حد. فقط می دانم آن را به یک حفره یا سوراخ است برای برخی از متن. بله. سوال؟ بله. یک مدعو: شما فقط CSS ذکر شده است. خانواده هش و مخلوط تمام چیزهای که اساسا نمایندگی شناسه در CSS؟ JOSEPH ONG: بله، دقیقا. من به آنچه که این رشته هش را دریافت کنید معنی در یک ثانیه. زمانی که آنجلا بیش از CSS رفت، او در مورد انتخاب CSS صحبت کردیم. این انتخاب CSS است که او در مورد صحبت شد. بله، راب؟ ROB BOWDEN: من هم که نظر که DOM داخل تگ عنوان یک گره متن است. JOSEPH ONG: راست. بنابراین در داخل تگ عنوان، من به برخی از DOM متن. پس در واقع، این عنوان باید مانند یک دارند جعبه کوچک آینده خاموش از آن را به عنوان خوب. اما آن واقعا مهم نیست بیش از حد در این مورد. ما واقعا در مورد گره های متن مراقبت، که ما آنها را، بیش از حد. OK، کار می کنیم. ظاهرا، کار می کنیم. و من ثابت خواهد کرد که زمانی که من دوباره آن را بارگذاری کنید. آیا این را حس؟ پس چگونه ما با DOM کار می کند؟ هر زمان که شما با DOM مقابله در جاوا اسکریپت، دو مرحله وجود دارد. شما یک عنصر DOM را انتخاب کنید. و سپس شما را انجام کارهای به آن. بنابراین در این مورد، انتزاعی، من عنصر وسط انتخاب شده است. و سپس یک نمونه از کاری انجام میدن به این امر می تواند تغییر متن. استفاده می شود که به باب. در حال حاضر، آنچه که من به آن بود I تغییر باب به میلو در این مورد. پس چگونه ما در واقع انجام این کار؟ چگونه ما انجام انتخاب؟ و چگونه ما کاری انجام میدن به چیزی که یک بار ما آن را گرفته اید؟ خوب، راه را به شما بچه ها را آموخته اند در این کلاس است با استفاده از چیزی است که ما به نام جی کوئری. پس چه jQuery است؟ jQuery یک کتابخانه است که باعث است جاوا اسکریپت آسان تر به نوشتن. بنابراین کسی که در زمان زمان و نوشت: از jQuery. جی کوئری است که در واقع نوشته شده است در جاوا اسکریپت. و پس از آن به خاطر آنها این در حال حاضر، ما یک دسته کامل از توابع است که ما می توانیم استفاده از آن را ما زندگی واقعا آسان است. پس چه برخی از می همه چیز آن را ندارد؟ این باعث می شود انتخاب عناصر آسان تر است. این کار باعث تغییر HTML، اضافه کردن کلاس ها آسان تر است. این باعث می شود آژاکس آسان تر است. ما به که در یک ثانیه دریافت کنید. و این شبیه به کتابخانه های C. بنابراین شما شامل string.h، شما strlen. شما دریافت می کنید strcpy، همه این چیزها. هنگامی که شما شامل جی کوئری، شما به خوبی دریافت راه هایی برای انتخاب عناصر به تغییر همه چیز، و غیره. شما قابلیت های اضافی که جاوا اسکریپت به شما نمی دهد. پس از jQuery است جاوا اسکریپت نیست. jQuery یک کتابخانه که در نوشته شده است جاوا اسکریپت است که باعث می شود جاوا اسکریپت آسان تر به نوشتن. پس از jQuery است برنامه نویسی نیست زبان. اما جاوا اسکریپت است. را. مطمئنا شما اصطلاحات خود را دریافت کنید. هر گونه سؤال؟ بله. این است که یک سوال؟ بسیار خوب. پس چگونه شما با استفاده از جی کوئری؟ خوب، هنگامی که شما در حال نوشتن برخی از کد جاوا اسکریپت و شما عبارتند از: jQuery را در بالای فایل خود را به عنوان یک فایل اسکریپت، شما علامت دلار استفاده در حال حاضر برای دسترسی به جی کوئری. و این متفاوت است علامت دلار در PHP. این همان نماد شما است تایپ در صفحه کلید بزنید. اما آنها معانی بسیار متفاوت است. علامت دلار در PHP به معنی این این است که چگونه من یک متغیر اعلام کنند. در جاوا اسکریپت، هنگامی که شما را گنجانده ام جی کوئری، آن را برای جی کوئری است. بنابراین باشید که در ذهن داشته باشند. پس چگونه ممکن است عناصر DOM ما را انتخاب کنید؟ خوب، هنگامی که شما این کار را زشت جاوا اسکریپت راه، شما دسترسی به مستند متغیر جهانی است. و سپس شما عنصر دریافت شده توسط خانواده ID. این است که واقعا طولانی و دارای اطناب و نه خیلی خوب. یا شما می توانید تمام عناصر کنید که یک تگ p. این کار بیش از حد در جاوا اسکریپت. اما ما واقعا هرگز نشان داد شما به نحو بیش از حد. آنچه ما نشان داد که شما از jQuery بود. به طوری که کل انتخاب وجود دارد که در جاوا اسکریپت بیان شد فقط می شود فشرده این دلار بسیار زیبا ثبت نام خانواده hashtag. و $ P، تنها جایی که آن را مانند که. اگر می خواهید را انتخاب کنید تمام تگ های P در داخل یک خانواده، ما یک فضای قرار داده میان این دو. و در حال حاضر، ما تمام P برچسب در داخل یک خانواده. و نگاه آشنا؟ خوب، آنجلا در مورد صحبت انتخاب CSS. من یک ثانیه را. و بنابراین، به منظور انتخاب یک عنصر، شما فقط از همان چیزی که شما که با انتخابگر CSS انجام دهد. اگر شما قرار داده یک رشته هش در مقابل از آن، آن را توسط ID انتخاب می کند. نقطه های کلاس انتخاب می کند. اگر شما فقط باید چیزی را بدون رشته هش و یا نقاط، آن را به کسانی که برچسب انتخاب می کند. سوالات. بله؟ یک مدعو: در صورت استفاده از نقطه در ما HTML است، از jQuery که نه؟ JOSEPH ONG: نقطه در HTML ما چیزی که جاوا اسکریپت است. این یک چیز jQuery است نیست. راه شما بچه ها آن را با آموخته jQuery است استفاده کنید. HTML. و سپس شما آن گذشت هر HTML است برای رفتن به. پس من به در فقط دوم در واقع. پس چگونه ما انجام مسائل به عنصر یک بار ما آن را انتخاب کردید؟ به طوری که به عنوان مثال از این انتخاب یک عنصر. بنابراین در حال حاضر، ما می خواهیم به انجام مسائل به آن. بنابراین در این مورد، به من اجازه رفتن به عقب به اسلاید قبلی. قبل از آن باب بود. و من می خواهم به تغییر آن در داخل HTML به میلو. بنابراین من تابع HTML تماس بگیرید از این عنصر میباشد. این تابع HTML غیر فعال است یک روش عنصر. و بعد من آن چه را من می خواهم HTML می شود. و آن را فقط جایگزین آنچه در داخل از که برچسب با هر آنچه من آن را به شما بدهد. بله. سوال؟ یک مدعو: hashtag استفاده شده است تنها از jQuery. [نامفهوم] ما استفاده از آن نیست. JOSEPH ONG: بله، دقیقا. اما بیش از حد نگران نباشید جاوا اسکریپت مورد خالص است. من فقط می خواهم به شما بچه ها به در تمرکز چگونه شما آن را با jQuery، چرا که که برای رفتن به مهم بخشی در مسابقه. راست. دقیقا. بنابراین شما که hashtag را مشاهده کنید، به طوری که مربوط به انتخاب عناصر با وسط ID دلیل که hashtag. Hashtag به معنی ID. و این عنصر دارای یک ID از وسط. به طوری که عنصر ما را انتخاب می کند. یک مدعو: [نامفهوم]. علامت دلار hashtag [نامفهوم]؟ JOSEPH ONG: بنابراین هیچ. سوال این است که می تواند شما را استفاده کنید. مقدار است. و ارزش فقط بر روی عناصر کار می کند که ورودی می باشد. در jQuery، این امر می تواند . VAL، ارزش نیست. پس من به یک نمونه کوچک که نشان می دهد که این همه در ترکیب در یک ثانیه. اما من فکر می کنم این اقدام یک قطعه کوچک را حس می کند به مردم تا کنون. آیا می خواهید به تغییر HTML، روش HTML تماس بگیرید. بله. یک مدعو: آیا می توانید توضیح دهید روش دوباره؟ JOSEPH ONG: بنابراین یک روش است که فقط یک تابع است که متعلق به یک، در این مورد، یکی از این عناصر DOM، چرا که شما من را ببینید برای اولین بار انتخاب عنصر. در واقع، به من اجازه دهید با استفاده از ماوس. من برای اولین بار این عنصر انتخاب شده است. و پس از آن من این HTML به نام تابع است که آن را به حال. و از آنجایی که این تابع متعلق به این چیزی که ما آن را به یک روش تماس بگیرید. این فقط یک نام فانتزی برای آن است. دوباره بگو. بنابراین به یاد داشته باشید، ما انتخاب شده این عنصر در حال حاضر. و ما آن را در داخل از قرار داده ام متغیر عنصر. درست است؟ بنابراین، هنگامی که ما می خواهیم به تغییر HTML در در داخل، به دلیل آن را قبل از باب بود، شما می خواهید به تغییر است که متن را به میلو. بنابراین ما HTML تماس بگیرید. و ما آن را به آنچه که HTML در داخل که عنصر هم اکنون باید باشد. و پس از آن تغییر به میلو، چرا که من به آن میلو. رسید به طوری که آنها در حال کار با هم. [نامفهوم] JOSEPH ONG: آره، آره. آنها در حال کار با هم. بنابراین یکی از آنها را انتخاب عنصر اول است. و دوم می کند چیزی به آن. بله. یک مدعو: [نامفهوم]. اگر این روش متفاوت در HTML است شما باید از روش برابر واقعی. JOSEPH ONG: آره. این یک روش متفاوت است. این یک روش متفاوت است. و ما می توانیم در یک ثانیه را پوشش که زمانی که ما به عنوان مثال دریافت کنید. من می خواهم تا مطمئن شوید که ما سرعت از آنجا که ما در حال اجرا خارج از زمان. اما ما راه در طول زمان اجرا در حال حاضر. OK. دانلود. بنابراین اگر شما می خواهید برای اضافه کردن یک کلاس، وجود دارد همچنین یک روش کلاس اضافه کنید. این فقط نمونه ای از آنچه است شما می توانید با jQuery انجام دهد. که فقط می افزاید: یک کلاس. اگر می خواهید آن را حذف کنید، شما می توانید حذف تماس بگیرید. این تنها چیز دیگری که شما می توانید انجام دهید. نمونه های بیشتری از کارها را انجام دهید. بنابراین می توان فقط آن را در بالا مثل این؟ جوان ترین حذف. اگر من فقط اجرا که جاوا اسکریپت در بالای فایل من، که کار خواهد کرد؟ راست. از آنجا که متوسط ​​هنوز موجود نیست. پس این است که به کار. حکم اعدام. آن را به بالا می رود اول. چه؟ یک مدعو: جوان هنوز وجود ندارد؟ JOSEPH ONG: آره. جوانترین هنوز موجود نیست. دقیقا. یک مدعو: شما گفت: متوسط. JOSEPH ONG: متاسفم. جوانترین هنوز موجود نیست. و چیز دیگری است من ندارد شامل جی کوئری فایل SRC اسکریپت بپرسید. به طوری که قصد ندارم به کار می کنند. در واقع، این کار را نکردم که در اسلاید بعدی، که قرار به تعمیر که یا. اما راه ما این کار را انجام جاوا اسکریپت است است رویداد محور. پس چه کار می کنیم این است که ما با استفاده از یک رویداد کنترل را به این اتفاق می افتد. و من سند را انتخاب کنید اولین مجموعه. من می گویم، OK، زمانی که سند است آماده، اجازه دهید من یک تابع را اجرا کنید. به طوری که تمام معنی نحو است. من سند انتخاب شده است. در حال حاضر، زمانی که سند است آماده، اجرای تابع. و به این ترتیب بیش از زمانی که سند است آماده، که به معنی همه HTML است بارگذاری شده، پس من از تابع اجرا که حذف عنصر. و به این ترتیب در حال حاضر، زمانی که من این تابع را اجرا کنید که من به آماده گذشت، من تضمین شده که همه HTML در صفحه در حال رفتن برای اولین بار وجود داشته باشد. بله. سوال؟ یک مدعو: کلمه کلیدی رویداد است. در تابع؟ JOSEPH ONG: به طوری که کلمه کلیدی رویداد در تابع تنها یک پارامتر است که می شود به تابع منتقل می برای هر رویداد. این تنها چیزی است که شما به صورت رایگان دریافت کنید. هنگامی که شما با استفاده از گرداننده های کلیدی در pset8، که رویداد می تواند به شما بگویم، برای به عنوان مثال، که شما کلیدی را فشار داده در. در این مورد، برای یک رویداد آماده، در واقع فوق العاده مفید است. اما برای یک رویداد مهم پایین، آن را بیشتر مفید است، چون شما می دانم که کلیدی شما را با دسترسی به کلید فشرده کد خاموش که شی رویداد. درست است؟ آیا این را حس؟ OK. بله. سوال؟ رسید بنابراین می تواند به شما قرار داده و برچسب اسکریپت پایین تر؟ JOSEPH ONG: پس آره. شما می توانید اسکریپت قرار داده برچسب پایین تر. اما پس از آن را فقط می شود واقعا کثیف. و ما می خواهم برای متمرکز کردن همه کد ما را در یک مکان. و این به ما اجازه خواهد آن را انجام دهد. به یاد داشته باشید قبل از من گفت: یک بهتر وجود دارد راه برای اطمینان حاصل شود که عناصر می باشد در صفحه قبل از کد اجرا؟ و این تنها یک راه خوب است شما می توانید انجام رساندن آن. یک مدعو: [نامفهوم]. JOSEPH ONG: آره. شما هنوز هم به، درست است؟ از آنجا که به یاد داشته باشید، شما شامل فایل در بالای صفحه استفاده کنید. بنابراین آن را به اجرا قبل از شما را به پایین صفحه دریافت کنید. OK. بنابراین شما نیز می توانید یک های مختلف اضافه نوع گرداننده رویداد. این یکی فقط فرآیندهای کلیک. وقتی که من با کلیک بر روی جوان، پس از آن آن را با یک هشدار تا موسیقی پاپ. این فقط یک متفاوت نوع رویداد. همانطور که به این رویداد آماده مخالف، شما هم اکنون هنگامی که شما دریافت خواهید کرد استفاده از رویداد کلیک کلیک بر روی یک عنصر. و به این ترتیب در این مورد، به یاد داشته باشید، کلیک کنید کنترل به جوانترین وصل شده است. پس از آن تنها زمانی اتفاق می افتد من با کلیک بر روی جوانترین. و در یک دیگر، این رویداد آماده به سند متصل شد. پس از آن برای سند منتظر آماده می شود. را حس؟ من فکر می کنم من می توانم در حرکت می کند. بله. سوال؟ یک مدعو: [نامفهوم]. در این مورد به شما استفاده از [نامفهوم]. JOSEPH ONG: اوه، بله، چرا که در این مورد، من باید برای جوانترین صبر کنید عنصر را بر روی صفحه نمایش ظاهر می شود اولین قبل از من می توانم یک برنامه کنترل کلیک کنید به ضمیمه آن، همین دلیل است که من آن را در داخل یک سند آماده. OK. و بعد، پس این یک مثال بزرگ است چگونه شما می توانید همه چیز را ترکیب. این فقط یک مثال اعتبار سنجی فرم است شما در سخنرانی دیده می شود. بنابراین آن را گام به گام به عنوان را شما از طریق این صفحه بروید. و از آن خواهد شد کاملا OK. فقط آن را از بالا به پایین به عنوان خوانده شده. من یک فرم پایین. هنگامی که سند آماده است، I ضمیمه ارائه کنترل به فرم، به طوری که وقتی که من ارسال فرم، I مقادیر کنید در داخل هر یک از این ورودی ها. و من چک کنید اگر آن را خالی بگذارید. اگر آن را خالی، I نادرست بازگشت، به دلیل من نمی خواهم به ارسال فرم، چرا که به صورت اشتباه است. اگر کلمه عبور خالی است و یا آن را کمتر از هشت حرف، من نفرستید فرم، چرا که هم غلط است. و نادرست بازگشت فقط مانع فرم از ارسال و رفتن به صفحه جدید. و امیدوارم، این را حس می کند. من فکر می کنم شما بچه ها باید از طریق راه رفتن این کد را گام به گام در خود تغییر دهید. و یک بار شما را در درک آنچه را که انتخاب کنید عناصر و انجام مسائل به آن در واقع مستلزم، این کار را بسیاری از حس به شما. بله؟ رسید چه نام = معنی نام کاربری؟ JOSEPH ONG: بنابراین نام = نام کاربری و نام = رمز عبور فقط بدان معناست که در نگاه ویژگی های هر تو تکی. و پس از آن است که برای مطابقت. بنابراین ما به ثبت نام بروید. و پس از آن ما در تمام ورودی ها نگاه و ثبت نام. و سپس ما را انتخاب کنید که در آن نام ویژگی به نام کاربری برابر است. به طوری که انتخاب اولین و تنها انتخاب ورودی نام کاربری. و این انتخاب دوم انتخاب رمز عبور یکی است، چرا که کسانی که به آنها ویژگی های نام خود را به عنوان آنچه که آنها به قرار باشد. سوال؟ رسید در ارسال، چگونه قسمت پایین حل و فصل قسمت بالای؟ JOSEPH ONG: پس این دلیل از رویداد. بنابراین ما در حال انتظار برای یک رویداد ارسال کنید که می شود از فرم بخوره. و این همه است که ارائه شده است. چرا تماس بگیرید من ارسال کند وجود دارد؟ این گزارش می گوید، هنگامی که فرم ارسال می شود، من یک رویداد ارسال کنید. پس بذار رهگیری که و سپس این کد را به جای اجرا شود. بله؟ یک مدعو: چرا شما به رویداد تابع؟ چرا شما فقط [نامفهوم]؟ JOSEPH ONG: از آنجا که در جاوا اسکریپت، شما مجبور به اعلام عملکرد. که فقط چگونه کار می کند در جاوا اسکریپت. شما باید بگویم آن را برای اجرای یک تابع. بنابراین شما آن را به گفتن است که شما انتظار یک تابع در اینجا به جای فقط آکولاد. رسید و عملکرد است هر چه شرح زیر است؟ JOSEPH ONG: آره. تابع است هر آنچه در داخل آکولاد پس از که کلمه کلیدی عملکرد. بله؟ یک مدعو: [نامفهوم]. JOSEPH ONG: برای ارائه؟ یک مدعو: نه، برای تابع بدون رویداد. JOSEPH ONG: آره. بنابراین بدون این رویداد، شما می توانید که. اگر شما از این رویداد لازم نیست، سپس شما فقط می توانید آن را حذف. اما اگر شما انجام دهید، پس از آن شما فقط آن را وجود دارد. بله. سوال؟ یک مدعو: [نامفهوم]. JOSEPH ONG: آره. چون چیزی که شما باید انجام دهید، document.ready در فقط می گوید صبر برای همه HTML در صفحه را به بار اول است. و معمولا، شما می خواهید عناصر خود را در محل قبل از هر کد را اجرا می کنید. بسیار خوب. ما باید به آژاکس. ما زمان زیادی ندارد. بنابراین جوانب مثبت و منفی. جاوا اسکریپت امتحان کنید آسان تر است ارسال با jQuery. اما جی کوئری از نوع آرام است. آن را مانند PHP کند تر از C است، چرا که آن را تفسیر می شود. و jQuery است کمی آهسته تر از جاوا اسکریپت، چرا که بسیاری از همه چیز در زیر هود. و به این ترتیب اگر شما با استفاده از جی کوئری، آن را فقط کمی کندتر از جاوا اسکریپت، حتی اگر آن را به شما ظرافت آرزومندیم. و در نهایت، آژاکس. تا کنون با آژاکس، شما آژاکس دیده نمی شود از نظر pset7 در عین حال، به دلیل هنگامی که شما انجام دهید، به شما ارائه یک فرم را برای نقل قول. این بار یک صفحه جدید. بنابراین شما این فلش بزرگ سفید در صفحه حالی که بارهای صفحه دوم، درست است؟ این امر می تواند واقعا خوب اگر شما این فلش ندارد. مانند فیس بوک، اگر شما فقط به حرکت پایین، آن را اضافه می کند مطالب جدید بدون طراوت کل صفحه. بنابراین چیزی شبیه به این امر می تواند خوب. این کد جاوا اسکریپت است در سمت چپ. شما دریافت می کنید آنچه که در داخل آن ورودی می باشد. شما می توانید از اطلاعات ذخیره شده از یاهو! و پس از آن شما را به یک رشته بزرگ است که می گوید، OK، این پیام را من می خواهم است به بر روی صفحه نمایش نشان می دهد. و پس از آن شما است که پیام را در داخل برخی از عناصر HTML می شود که نمایش داده شده بر روی صفحه نمایش. به طوری که همه که در اینجا اتفاق می افتد است. بنابراین اساسا، به دلیل این است که همه جاوا اسکریپت و شما لازم نیست که برای اجرای دیگر PHP، با این کار مطمئن شوید که صفحه مورد نظر تازه کردن نیست. بنابراین این فقط یک ایده انتزاعی که من در اینجا گفت: در حال حاضر. ایده انتزاعی است که اگر شما آن را انجام دهید همه در جاوا اسکریپت، شما لازم نیست تازه کردن صفحه. اما چگونه می توانم شما در واقع انجام این کار؟ خوب، در واقع، اجازه دهید بحث در مورد مشکل با اولین بار از این. مشکل این است که در جاوا اسکریپت، اعدام همزمان است. بنابراین شما باید برای یک منتظر به خط پایان پیش از شما اجرای خط بعدی. و چه می شود اگر من بیش از رفتن به یاهو، و سرور های خود را واقعا آهسته، و آنها را سه ثانیه طول می کشد تا به من می دهد که اطلاعات سهام؟ وقتی که من ضربه که خط قیمت، اگر اعدام همزمان است، به عنوان آن است به طور پیش فرض، آنچه در آن فقط رفتن برای انجام شده است مرورگر شما رفتن به غرفه برای سه ثانیه صورت گرفت. و از تو نخواهد بود قادر به انجام هر چیزی در حالی که از آن می شود که داده ها. آن را به یخ زده شود. و این بد است. شما یک کاربر به را نمی خواهم از یک صفحه وب یخ زده. درست است؟ که فقط بد است. هر کس موافق است؟ اگر شما در حال دیدن فیس بوک و یخ و شما می توانید هر چیزی را انجام دهید، به شما واقعا نا امید. بنابراین راه حل این است که ما را به چیزی ناهمزمان به جای. بنابراین تمام این چیز های آسنکرون، می گوید: است، من قصد دارم به درخواست این URL برای برخی از داده ها. و سپس من قصد دارم به رفتن ادامه دهید. من فقط رفتن به نگه داشتن اجرای هر کدی که پس از آن بود. و پس از آن هر زمان که داده آماده است، پس من آن را پردازش کند. که همه آن را می گوید است. یک مدعو: آژاکس فقط باعث می شود کد ناهمزمان؟ JOSEPH ONG: این ناهمزمان است راه داده واکشی. بنابراین اولین چیزی که در مورد آژاکس است امکان می دهد تا به من داده از یک وب سایت خارجی. و نکته دوم این است که آن اطمینان حاصل می کند آن صفحه من اختصاص غرفه در حالی که من دلربا که داده ها. این بخش ناهمزمان از آن است. از آنجا که آن را خاموش می رود در جایی دیگر، چون من می گویم من را ادامه دهم در حالی که آن دلربا که داده ها، که باعث می شود آن ناهمزمان. من را اجرا. به طوری که غیر همزمان نگه دارید ایده در ذهن. و من به شما نشان می دهد چه تفاوت است. نسخه همزمان است در سمت چپ. نسخه ناهمزمان است که در سمت راست. در اعداد نگاه کنید تا ببینید که مراحل متناظر چه اجرا در هر خط. بیش از وجود دارد، با هوشیاری برای اولین بار نشان می دهد تا. از آنجا که گرفتن اطلاعات سهام از یاهو! سه ثانیه طول می کشد، آن را به اصطبل به مدت سه ثانیه صورت گرفت. و سپس آن را هشدار قیمت پس از آن سه ثانیه صورت گرفت. بنابراین در حال حاضر، این هشدار را نشان می دهد در آن زمان - سه ثانیه شوید و سپس آن را هشدار های پس از آن. پس از آن تنها می رود گام به گام. آن را مانند آنچه که شما بچه ها است قبول، درست است؟ با اعدام ناهمزمان، برای اولین بار شما هشدار. سپس شما را در رفتن به این URL. و به شما می گویند، من قصد دارم فقط برای داده ها بپرسید. و سپس من قصد دارم بعد از پردازش آن. بنابراین آن را بلافاصله اجرا خط بعدی پس از من است که درخواست ناهمزمان. بنابراین 0.001 ثانیه، شما سلام هشدار ها را ببینید. اجرای آن تابع، خداحافظ هشدار. و از آنجایی که من ساخته شده به وعده که من می داده بعد از پردازش، چه اتفاق می افتد زمانی که داده ها می آید سه ثانیه بعد، پس از آن من اجرا که تابع است که من بیش از وجود دارد. بله؟ رسید می توانید مشخص کنید و یا روشن کردن آنچه آژاکس به معنی؟ JOSEPH ONG: پس از آژاکس راهی است که اگر من نیاز به داده زمانی که من در یک وب سایت هستم و من نمی خواهند به روز کردن صفحه، و سپس من استفاده از این تکنولوژی به نام آژاکس. که در اصل به معنی، به بهانه اطلاعات را از وب سایت دیگر. و آن را در راه است که فقط به این صفحه وب من متوقف نمی شود. یک مدعو: پس این است که ذاتی بخشی از جاوا اسکریپت و jQuery JOSEPH ONG: پس کسی که یک راه برای انجام این نوشته این در جاوا اسکریپت خیلی وقت پیش. در یک نقطه، آن وجود نداشت. و به این ترتیب کسی ابداع این روش به مردم اجازه می دهد به این درخواست داده در این مد. و آنها برخی چیزهای نوشت این کار را برای شما خواهد شد. و jQuery فقط به شما می دهد این راه بسیار خوبی برای انجام آن با این $. دریافت عملکرد. سوالات؟ من می توانم سوال در مورد پاسخ آژاکس پس از آن بیش از حد. من اینجا خواهم بود. پس از آن اجازه دهید به ما داده واکشی بدون نمایش می گذارد. و اجازه دهید ما انجام این کار در یک روش غیر همزمان که آیا این صفحه مسدود نیست. بیش از حد طولانی، به عنوان خوانده اگر که توضیح بیش از حد طولانی برای شما بود. پس در نهایت، کراس سایت حملات برنامه نویسی. ما این کار را با Zamyla دیدم. اگر در بانک اطلاعاتی کسی که من این نام، که این برچسب اسکریپت، و من برخی از کد را در صفحه من که چاپ از نام های مردم در یک ردیف، و یا من برخی از کدهای جاوا اسکریپت که درج این نام به صفحه، آنچه HTML تولید می شود؟ خوب، من نسخه قابل چاپ کردن تگ HTML. من نسخه قابل چاپ کردن همه از این برچسب ها. من به بخشی که در آن من چاپ هستم کنید با دوستانم بیرون. من چاپ لورن است. آن را چاپ میلو است. و پس از آن نام من در پایگاه داده اسکریپت ارسال شده است وضعیت فیس بوک unflattering. از آنجا که من این را در صفحه قرار داده شده به دلیل آن را مانند جاوا اسکریپت، به نظر می رسد هنگامی که این صفحه می شود به کاربر فرستاده می شود، آن می شود به عنوان جاوا اسکریپت اجرا می شود. و این چیزی است که ما تماس بگیرید کراس سایت اسکریپت حمله. کسی قرار می دهد اطلاعات مخرب در پایگاه داده خود را که می تواند به متناظر برخی از رشته های اضافی و یا برخی از رشته جاوا اسکریپت. و هنگامی که آن را می شود به چاپ صفحه در این مد، پس چه اتفاق می افتد این است که کد بد اجرا می شود که من قصد برای آن تا عمل کند. و این تمام متقابل سایت حمله به برنامه نویسی است. و راه را در اطراف شما این مثل Zamyla گفت. شما فقط قرار دادن همه چیز در کاراکتر های خاص HTML. و این HTML کاراکتر های خاص PHP است تابع است که این نوع جلوگیری از از چیزی که از این اتفاق، به شما اگر شما یک مخرب رشته را در بانک اطلاعاتی شما. این فقط آن را فرار، به طوری که آن را نمی کند دریافت به عنوان HTML تفسیر می شود. این جایگزین براکت کمی با آنچه که ما اشخاص تماس بگیرید. و ما بیش از این در سخنرانی بیش از حد رفت. بنابراین من فکر می کنم شما بچه ها باید درک خوبی بر روی آن. سوالات؟ بله. یک مدعو: پس چگونه خواهد بود [نامفهوم]؟ JOSEPH ONG: دوباره بگو. یک مدعو: چگونه مانیتور - JOSEPH ONG: راست. بنابراین شما باید چیزی است که می گوید، هنگامی که من ثبت نام، نوع به نام من. من فقط در این زمینه نوع، نام من است stript پست unflattering فیس بوک وضعیت نزدیک برچسب اسکریپت. و این فقط می شود به قرار پایگاه داده، چرا که من نمی توانم بگویم کسی در جهان آیا نام نشده با فلش سمت چپ در آن و یا اسکریپت کلمه در آن است. که واقعا حس نمی کند. پس من فقط باید مطمئن شوید که I اصول بهداشتی عمل کردن مسائل قبل از من آن را چاپ را به خارج از صفحه. رسید بنابراین کارت های ویژه HTML مانع از تگ script؟ JOSEPH ONG: آره. پس از آن برچسب اسکریپت جلوگیری نمی کند. این فقط باعث می شوید که برچسب اسکریپت می کنید تفسیر به عنوان HTML و یا - آره. این فقط می آید تا به عنوان آنچه آن واقع است. بسیار خوب. به طوری که بررسی مسابقه بود. دانلود. [تشویق حضار]