اشتراکها
ممنون - مطلب کاربردی و مفیدی بود
شخصا این Captcha را به انواع دیگر ترجیح میدم چرا که:
1- شخصی سازی شده
2- ارجاع به سایت واسطی نداره
3- هیچ گونه سرباری نداره
4- اعمال هر گونه تغییر و اصلاح مناسب با فرهنگ و کشور و یا حتی نوع سایت قابل انجام است
بازهم تشکر میکنم
نظرات مطالب
تغییر اندازه تصاویر #2
بله حق با شماست.
1-بله درسته، حواسم به چنین متدی نبود، در کد پست اعمال کردم.
2- بله میتوان اینکار را کرد و حتی بهبودهای بیشتری روی آن داد. اما قصد اموزش یک مبحث بود والا میتوانستیم کل ifها و switchها را حذف کنیم.
3- بله درسته حذفش میکنم.
4- این متد نوشته من نیست و من ارجاع دادم به منبع اصلی.
موفق باشید
1-بله درسته، حواسم به چنین متدی نبود، در کد پست اعمال کردم.
2- بله میتوان اینکار را کرد و حتی بهبودهای بیشتری روی آن داد. اما قصد اموزش یک مبحث بود والا میتوانستیم کل ifها و switchها را حذف کنیم.
3- بله درسته حذفش میکنم.
4- این متد نوشته من نیست و من ارجاع دادم به منبع اصلی.
موفق باشید
اگر شما در زمینه طراحی وب سایت و برنامههای کاربردی تحت وب فعالیت دارید حتماً با ابزارهایی مانند Firebug آشنا هستید. معمولاً فرآیند بررسی مشکلات رابط کاربری و موضوعات مشابه آن بصورت زیر بوده است:
توجه داشته باشید که یک صفحه وب که در مرورگر به نمایش در میآید، برآیند فایلهای جاوا اسکریپت، شیوه نامه ها، User control ها، صفحات ASPX و Master Pageها و ... است. افزون بر این آنچه در مرورگر نمایش داده میشود با چیزی که ما در محیط طراحی (Visual Studio.NET (Design View میبینیم متفاوت است.
تمام مشکلات و سختیهای بالا دست به دست هم دادند تا در نسخه جدید نرم افزار Visual Studio.NET شاهد ابزار جادویی با عنوان Page Inspector باشیم.
این ابزار بصورت Real-time امکان نگاشت (mapping) عناصر موجود در نتیجه نهایی برنامه وب را با سورس کد مهیا میکند. بدین معنا توسط Page Inspector با حرکت ماوس روی عناصر صفحه در مرورگر، Visual Studio.NET بخشی را که آن عنصر را تولید کرده است (User Control, Master Page, View, و ...) نمایش میدهد و شما میتوانید بلافاصله پس از اعمال تغییرات جدید بر روی سورس کد، نتیجه را روی مرورگر ببنید. البته عکس این موضوع نیز صادق است و شما میتوانید با حرکت در سورس کد، نتیجه بصری و عناصر HTML ی که در نتیجه تولید میشوند را مشاهده کنید. (عناصر متناظر به حالت Select در میآیند.)
از دیگر قابلیتهای این ابزار نمایش CSSهای متناظر هر عنصر است. شما میتوانید هر یک از قوانینی که در Style هر عنصر تعریف کرده اید را فعال و یا غیر فعال کنید. همچنین امکان ویرایش آنها وحود دارد.
همچنین از طریق گزینه File میتوان لیست تمام فایلهای سورس صفحه را مشاهده کرد.
با وجود چنین ابزاری یقیناً داشتن دو مانیتور برای برنامه نویسان و توسعه دهندگان وب کاملاً حیاتی است. چراکه Visual Studio.NET به شما این امکان را میدهد تا Page Inspector را در یک مانیتور و نمای سورس را در مانیتور دیگر به نمایش در آورید.
نکته:
جهت استفاده از تمام امکانات این ابزار باید دستور زیر را در تگ appsettings فایل web.config اضافه کنید:
<add key="VisualStudioDesignTime:Enabled" value="true" />
پیشنهاد میکنم برای درک بهتر این ابزار و آشنایی با آن ویدئو مربوطه در کانال 9 را از دست ندهید.
بازخوردهای دوره
مثال - نمایش بلادرنگ میزان مصرف CPU و حافظه سرور بر روی کلیه کلاینتهای متصل توسط SignalR
با سلام؛ من مراحل بالا رو بطور کامل انجام دادم ( از ورژن 2 SignalR استفاده کردم )
البته مثالهای دیگه ای انجام دادم و جواب گرفتم ولی اینجا با این خطا روبرو شدم. ممنون میشم راهنمایی کنید
همانطور که پیشتر در این مطلب نیز توضیح داده شد symbol یک primitive data type مانند number و string است. حین کار کردن با سمبلها باید این نکات را در نظر بگیرید:
- منحصربفرد و immutable (غیرقابل تغییر) هستند.
- همانند رشتهها میتوان از آنها به عنوان کلیدی برای پراپرتیها یک شیء استفاده کرد.
بنابراین از سمبلها بیشتر جهت توکنهای منحصر به فرد برای استفاده و به عنوان کلید در پراپرتیهای اشیاء استفاده خواهد شد. در اینجا میتوانید لیستی از سمبلهای رایج را مشاهده کنید.
Iterators and Generators
یک شیء زمانی قابلیت پیمایش را خواهد داشت که یک پیادهسازی از Symbol.iterator را داشته باشد:
var myIterable = {} myIterable[Symbol.iterator] = function* () { yield 1; yield 2; yield 3; };
for (let item of myIterable) { console.log(item); }
تفاوت حلقهی for..of با حلقهی for..in
هر دوی این حلقهها یک لیست را پیمایش میکنند. با این تفاوت که حلقهی for..in کلید هر آیتم را بر میگرداند اما for..of مقدار هر آیتم را بر میگرداند:
let list = [4, 5, 6]; for (let i in list) { console.log(i); // "0", "1", "2", } for (let i of list) { console.log(i); // "4", "5", "6"
به عنوان مثال کد زیر را در نظر بگیرید:
let numbers = [1, 2, 3]; for (let num of numbers) { console.log(num); }
اگر target را به ES5 و یا ES6 تنظیم کرده باشید، کد تولید شدهی یک حلقهی for را به اینصورت برایتان تولید خواهد کرد:
var numbers = [1, 2, 3]; for (var _i = 0, numbers_1 = numbers; _i < numbers_1.length; _i++) { var num = numbers_1[_i]; console.log(num); } //# sourceMappingURL=app.js.map