PDA

View Full Version : گفتگو: مزایا و معایب استفاده از کنترل های(Update panel,timer و سایر کنترل های ajax)



naser2009
دوشنبه 02 فروردین 1389, 12:17 عصر
سلام دوستان من می خواستم بدونم استفاده زیاد از ajax در سایت و یا استفاده از کنترل update panel توصیه میشه یا نه ؟یا بهتره از طریق کد های جاوا خودمون بنویسیم ؟
مثلا به روز رسانی یک گرید که داخل یک update panel است خیلی راحتره تا بدون update panel بخواهی از طریق کدهای جاوا این کار رو انجام بدی!!

reza_62
دوشنبه 02 فروردین 1389, 12:32 عصر
سلام دوست من زیاد جالب نیستن این کنترل ها هم حجم صفحه رو زیاد می کنند هم کنترل کامل نداری روشون سعی کن از jquery استفاده کنی ( شاید سخت تر باشه ولی بعدن می فهمی که چه قدرتی بهت می ده)

mohsen_zelzela00
دوشنبه 02 فروردین 1389, 12:54 عصر
من به شخصه دوست دارم خودم کد بنویسم (با اینکه تا الان نتونستم به نتیجه برسم مثلاً یک ماه است که می خواهم بدونم که چطوری می تونم یک لیست که به کمک xmlhttprequst از بانک sql خوندمم رو در grid نمایش بدم ولی ... . با این وجود باز هم دارم سعی می کنم تا ببینم که چی میشه)

مهدی کرامتی
سه شنبه 03 فروردین 1389, 00:22 صبح
بستگی داره بخواهی دقیقا چه کاری انجام بدی.

استفاده بی مورد از Ajax مفید نیست، اما اگر موضوع کارت رو دقیقا مشخص کنی بهتر میشه تصمیم گرفت.

mohsen_zelzela00
سه شنبه 03 فروردین 1389, 00:37 صبح
بستگی داره بخواهی دقیقا چه کاری انجام بدی.

استفاده بی مورد از Ajax مفید نیست، اما اگر موضوع کارت رو دقیقا مشخص کنی بهتر میشه تصمیم گرفت.

مثلاً من درون grid خودم یک button دارم برای حذف یک رکورد که می خوام این عملیات بدون postback انجام بشه و پس از حذف آن رکورد اطلاعات grid من Refresh بشه

به نظر شما من بهتره از UpdatePanel استفاده کنم؟؟؟
من از دوستان شنیدم که قرار دادن grid درون UpdatePanel کار درستی نیست

naser2009
سه شنبه 03 فروردین 1389, 11:23 صبح
من از دوستان شنیدم که قرار دادن grid درون UpdatePanel کار درستی نیست
کی گفته آخه به چه علت ؟

alireza_s_84
سه شنبه 03 فروردین 1389, 11:32 صبح
مثلاً من درون grid خودم یک button دارم برای حذف یک رکورد که می خوام این عملیات بدون postback انجام بشه و پس از حذف آن رکورد اطلاعات grid من Refresh بشه

به نظر شما من بهتره از UpdatePanel استفاده کنم؟؟؟
من از دوستان شنیدم که قرار دادن grid درون UpdatePanel کار درستی نیست
سلام دوست عزیز:
اینکار هیچ ایرادی نداره و دوستان سختگیرانه به مسئله نگاه میکنن. Updatepanel نسبت به Ajax دستنویس خودمون یک ایراد داره و اون هم اینه که زمان ارسال مقدار کل کنترلها رو به سمت سرور میفرسته (شبیه سازی پست بک) در حالیکه با ایجکس دست نویس ما فقط محتویات یک یا چند کنترل مشخص رو پاس میدیم ولی در هر حال اونجوری که جناب DelphiAssistant گفتن نباید استفاده بیمورد کرد و اینکار شما جز بیموردها حساب نمیشه پس با خیال راحت استفاده کنید.
موفق باشید

naser2009
سه شنبه 03 فروردین 1389, 11:32 صبح
1) مثلا فرض کنید من یک گرید دارم که در صفحات مدیریتی(سمت مدیر) میخواد هر چند ثانیه یک بار update بشه و لیست کاربران آنلاین رو نشون بده آیا در این مورد استفاده از یک گرید به همراه update panel و Timer ایجکسی اشتباهه یا راه بهتری هم هست؟

2) یا مثلا میخام اطلاعات یک گرید رو ویرایش یا حذف کنم یک گرید با چند تا دکمه میندازم داخل update panel و کدهاشو مینویسم وتمام (بدون پست بک)

3) یا مثلا در آزمون آنلاین یک datalist رو میندازم داخله یک update panel و دکمه های next و pre را داخل آن تعبیه می کنم در این حالت کاربر بدون داشتن پست بک های طولانی می تونه روی سوالات حرکت کنه و به اونا جواب بده ؟

نظر شما چیه؟

مهدی کرامتی
سه شنبه 03 فروردین 1389, 14:06 عصر
من از دوستان شنیدم که قرار دادن grid درون UpdatePanel کار درستی نیست
درست شنیده اید.
UpdatePanel قبل از ارسال Request به سرور کلیه عناصر درون خود را پیمایش می کند تا لیستی از آنهایی که بباید به روزرسانی شوند تهیه کند. این عناصر شامل هرگونه Element موجود در Html شامل ردیف ها/ستون های یک جدول، پاراگراف ها، Span ها، Div ها و ... می شود.
همچنین پس از دریافت Response از سرور پیمایش فوق مجددا جهت به روز رسانی و نمایش تغییرات انجام می شود.
حالا یک گرید با 1000 عنصر (Element) را تصور کنید (چنین Grid ای می تواند با یک DataSet شامل 10 ستون و 50 ردیف به وجود بیاید)، قبل از CallBack و بعد از آن ممکن است چند ثانیه زمان Freeze شدن محسوس را مشاهده کنید.

این اشکال در مورد هر کنترلی با جزئیات زیاد صادق است، اما گاهی وقت ها چاره ای جز قرار دادن چنین عنصری داخل UpdatePanel نیست.


مثلا فرض کنید من یک گرید دارم که در صفحات مدیریتی(سمت مدیر) میخواد هر چند ثانیه یک بار update بشه و لیست کاربران آنلاین رو نشون بده آیا در این مورد استفاده از یک گرید به همراه update panel و Timer ایجکسی اشتباهه یا راه بهتری هم هست؟
لازم نیست حتما از یک کنترل پر جزئیات مانند Grid برای نمایش لیست اعضا استفاده کنید، از معادل های سبک تر مانند DataList نیز می توان استفاده کرد.