PDA

View Full Version : سوال: هنگ نکردن سایت در زمان بازدید بالا



sadegh.te
دوشنبه 18 آبان 1394, 09:21 صبح
سلام اساتید محترم خواستم بدونم اگه بازدید یه سایت خیلی بالا بره مثلا در هر ساعت 6000 بازدید داشته باشه. برای اینکه سایت هنگ نکنه و پیج خطا رو نشون نده باید چیکار کنیم؟ منظورم اینه که با همون 6000 هزار نفر آنلاین بازم سایت در حالت عادی باز بشه آیا باید عملیات خاصی رو انجام بدیم ؟ مثلا عملیاتی رو دیتابیس یا هاست و...؟
ممنون.

EnKamran
دوشنبه 18 آبان 1394, 12:47 عصر
سلام.
این سوالی كه پرسیدی كلی هست دوست عزیز شما به خیلی از چیزها باید دقت كنی مثلا هاستت باید این قابلیت رو داشته باشه جاهایی كه لازمه از بانك استفاده كنی بسنجی كه كدوم راه ارتباط با بانك سریعتره و ...

aminmousavi
سه شنبه 19 آبان 1394, 02:01 صبح
سلام دوست عزیز .
1- باید از کامپوننت و اجزایی که باعث سنگین شدن سایت میشه استفاده نکنی ، مثلا من خودم تجربه gridview خود asp رو داشتم که بشدت سرعت رو میاره پایین ، دیگه ازش استفاده نکردم و از هیچ کامپوننتی استفاده نمیکنم تا جایی که امکان داشته باشه .

2- باید جداول sql ات خوب طراحی شده باشه ، یعنی افزونگی ، پیچیدگی ، بار زیاد نداشته باشه ، یکجورایی باید تو طراحی فکر performance اش رو کرده باشی ، نه بعد از اینکه 6000 نفر اومدن تو سایت تازه یاد performance بیفتی

3- عکس های استفاده شده تو سایت کم حجم شده باشن ، فایل های سنگینی نزارین برای دانلود (اگر فایل برای دانلود دارین که حجم زیادی دارن رو یک سرور دیگه آپلود کنید)

4 - کدنویسیت باید خوب و بهینه باشه .

گزینه تغییر سرور همیشه باید آخرین گزینه باشه ، برای پردازش و بازدید بالا نیاز به سرور خوب دارین به شرطی که خوب هم طراحی کرده باشن ! در غیر اینصورت قوی کردن سرور مثل یک مسکن عمل میکنه .

( یک نکته هم دوستانه مطرح میکنم اگر قصد دارین سایتی طراحی کنید که در لحظه باید 6000 نفر رو سرویس بده، یک سبک سنگین کنید ببینید از پس تجزیه و تحلیل و طراحی اون سیستم بر میاید یا نه ، برای کسب تجربه باید قدم به قدم جلو رفت ، اگر دیدید هنوز به اون توانایی نرسیدید پیشنهاد میکنم خودتون رو درگیر نکنید)

sadegh.te
سه شنبه 19 آبان 1394, 17:13 عصر
یکجورایی باید تو طراحی فکر performance اش رو کرده باشی ، نه بعد از اینکه 6000 نفر اومدن تو سایت تازه یاد performance بیفتی



با سلام ممنون از پاسختون آقای موسوی ولی این قسمت رو متوجه نشدم . میشه بگید performance چیه ؟
ممنون.

aminmousavi
سه شنبه 19 آبان 1394, 17:16 عصر
یعنی کارایی سیستم ، که مهمترین معیارش در طراحی سایت سرعت اونه که در حداقل زمان ممکن درخواست کاربر رو جواب بده .

sadegh.te
سه شنبه 19 آبان 1394, 17:23 عصر
یعنی کارایی سیستم ، که مهمترین معیارش در طراحی سایت سرعت اونه که در حداقل زمان ممکن درخواست کاربر رو جواب بده .

من میخوام یه سایت مثل بیتوته و... باشه بنظرتون چه چیزهایی رو باید رعایت کنم؟

aminmousavi
سه شنبه 19 آبان 1394, 17:56 عصر
دوست عزیز برای طراحی سایتی که بازدید بالایی داره تمامی مواردی که گفتم رو باید رعایت کنید ، اینها مباحث مهندسی و طراحی نرم افزار هست مثل یک خط کد نیست که بتونم بگم اون قسمت اینکارو بکنید .

emilly
چهارشنبه 20 آبان 1394, 22:37 عصر
سلام دوست عزیز .
1- باید از کامپوننت و اجزایی که باعث سنگین شدن سایت میشه استفاده نکنی ، مثلا من خودم تجربه gridview خود asp رو داشتم که بشدت سرعت رو میاره پایین ، دیگه ازش استفاده نکردم و از هیچ کامپوننتی استفاده نمیکنم تا جایی که امکان داشته باشه .

2- باید جداول sql ات خوب طراحی شده باشه ، یعنی افزونگی ، پیچیدگی ، بار زیاد نداشته باشه ، یکجورایی باید تو طراحی فکر performance اش رو کرده باشی ، نه بعد از اینکه 6000 نفر اومدن تو سایت تازه یاد performance بیفتی

3- عکس های استفاده شده تو سایت کم حجم شده باشن ، فایل های سنگینی نزارین برای دانلود (اگر فایل برای دانلود دارین که حجم زیادی دارن رو یک سرور دیگه آپلود کنید)

4 - کدنویسیت باید خوب و بهینه باشه .

گزینه تغییر سرور همیشه باید آخرین گزینه باشه ، برای پردازش و بازدید بالا نیاز به سرور خوب دارین به شرطی که خوب هم طراحی کرده باشن ! در غیر اینصورت قوی کردن سرور مثل یک مسکن عمل میکنه .

( یک نکته هم دوستانه مطرح میکنم اگر قصد دارین سایتی طراحی کنید که در لحظه باید 6000 نفر رو سرویس بده، یک سبک سنگین کنید ببینید از پس تجزیه و تحلیل و طراحی اون سیستم بر میاید یا نه ، برای کسب تجربه باید قدم به قدم جلو رفت ، اگر دیدید هنوز به اون توانایی نرسیدید پیشنهاد میکنم خودتون رو درگیر نکنید)


سلام آقای موسوی بابت راهنمایی های خوبتون ممنونم

شما که میفرمایید از کامپوننت استفاده نکینم منظورتون کامپوننت هایی مثل گرید ویو که اطلاعات رو از دیتابیس واکشی میکنن هست یا کامپوننت هایی مثل پنل و اینا رو هم شامل میشه ؟؟؟؟؟؟

یکی هم اینکه نظرتون راجع به کامپوننت دیتالیست چیه ؟؟؟؟؟؟؟؟؟؟؟؟/آیا اونم سرعت رو پایین میاره ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

میشه یه راهنمایی کوچیک بفرمایین که به جای دیتا لیست و ریپیتر چطور میتونیم چنین عملیاتی رو که نیاز به تکرار دارن رو پیاده سازی کنیم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟/

تشکر:خجالت:

ahmad156
چهارشنبه 20 آبان 1394, 23:23 عصر
به شخصه به هیچ عنوان از کامپوننت های ASP.NET استفاده نمیکنم. کلاً Toolbox رو حذف میکنم از صفحه و از کنترل های HTML جهت نمایش و Ajax جهت تراکنش ها استفاده میکنم.
کنترل هایی مانند GridView چند عیب دارند:
1-از لحاظ SEO کارایی لازم رو ندارن
2-حجم ViewState رو بالا میبرن (در بعضی موارد تا چند مگ هم دیدم)
3-کنترل کاملی به خروجی HTML اون ندارین

aminmousavi
پنج شنبه 21 آبان 1394, 00:35 صبح
سلام دوست عزیز . نه هر کامپوننتی ، خودم فقط از کنترل های asp اینها رو استفاده میکنم : Literal , Textbox, Checkbox, RadioButton , Button
شما هم بهتره جای استفاده از دیتاگیرید یا هرچیز دیگه ای که کنترل برای خودتون بسازین که مشکلتون رو حل کنه . برای اینکار هم کافیه ابتدا قالب شکلی که میخواین داشته باشه رو اول توی html طراحی کنین . بعد با کدهای C# اطلاعاتون رو در اون html قرار بدین و تمامش رو بریزین توی یک Lieteral که نمایش بده .

sadegh.te
پنج شنبه 21 آبان 1394, 08:25 صبح
سلام دوست عزیز . نه هر کامپوننتی ، خودم فقط از کنترل های asp اینها رو استفاده میکنم : Literal , Textbox, Checkbox, RadioButton , Button
شما هم بهتره جای استفاده از دیتاگیرید یا هرچیز دیگه ای که کنترل برای خودتون بسازین که مشکلتون رو حل کنه . برای اینکار هم کافیه ابتدا قالب شکلی که میخواین داشته باشه رو اول توی html طراحی کنین . بعد با کدهای C#‎ اطلاعاتون رو در اون html قرار بدین و تمامش رو بریزین توی یک Lieteral که نمایش بده .

سلام آقای موسوی به نظر شما این کار سرعتو پایین نمیاره؟

aminmousavi
پنج شنبه 21 آبان 1394, 13:14 عصر
همه چیز در سریع تحویل دادن کار نیست ! مهم کیفیت کار و رضایت مشتریه که معمولا با استفاده از کامپوننت زیاد بدست نمیاد .
درسته اولش سخته اما بعدش خودتون برای هر نیازتون یک کنترل ساختید مثل دیتاگیرید و ... . اون موقع دیگه به سرازیری کار رسیدید .

sadegh.te
پنج شنبه 21 آبان 1394, 16:36 عصر
همه چیز در سریع تحویل دادن کار نیست ! مهم کیفیت کار و رضایت مشتریه که معمولا با استفاده از کامپوننت زیاد بدست نمیاد .
درسته اولش سخته اما بعدش خودتون برای هر نیازتون یک کنترل ساختید مثل دیتاگیرید و ... . اون موقع دیگه به سرازیری کار رسیدید .

آقای موسوی منظورم سرعت تحویل دادن کار نیست سرعت لود سایتو میگم؟

اگه خودمون طراحی کنیم سرعت لود پایین نمیاد؟

مثلا برای نمایش داینامیک منو ریپیتر بهتر یا اینکه خودمون با generic control درستش کنیم؟

ممنون.

aminmousavi
پنج شنبه 21 آبان 1394, 17:12 عصر
نه دوست عزیز . نیازی به generic control هم نیست میتونین همه رو توی یک رشته ذخیره کنید و انتساب بدید به یک Literal

string datagrid="";
datagrid+="<table>";
datagrid+="<tr>";
datagrid+="<td>امین</td<";
datagrid+="</tr>";
datagrid+="</table>";
Literal1.Text=datagrid;