PDA

View Full Version : AJAX نهایتا اره یا نه



didaaa
شنبه 09 بهمن 1389, 12:18 عصر
بچه ها بخدا من گیج شدم یه نفر با سواد بیاد بگه که این کاری که من میخوام بکنم درسته یا نه من یه فرم دارم که کاربر بعد از ورود به سایت میتونه اونو پر کنه حالا هر کاربر میتونه روزی صدتا از این فرمها پرکنه دیگه خودتون حساب کنید روزی میتونه چند هزار رکورد ثبت بشه! شوال من اینکه من تو فرمم ده تا drop down دارم که لیست استان ، شهرستان و مرکز داخل خودش نگهمیداره و غیره من برای اینکه هر drop down مرتبط با قبلی اطلاعاتش پر بشه یا باید به صفحه پست بک میدادم و یا از AJAX به همراه یه وب سرویس استفاده میکردم که نهایتا دومیرو انتخاب کردم میخوام بدونم ایا کارم درست بوده یا نه اگه شما بودید چیکار میکردید؟ با JQuery میشه همچین کاری کرد که حجم صفحه بالا نره؟ دوستان اگه لینکی هم داشتید ممنون میشم.

aserfg
شنبه 09 بهمن 1389, 12:42 عصر
سلام
پیاده سازی ajax همون طور که می دونید روشهای مختلفی داره 1-msajax یا با جاوا اسکریپت یا با جی کوئری
بهترین اونا استفاده از جاوا اسکریپته که البته گاها برای بعضی کارا می طلبه کمی جاوا اسکریپت مسلط باشی مثلا باید یاد داشته باشی بعد از اینکه اطلاعات رو از یه drop down گرفتی چطوری باید به بعدی اضافه بشه البته کاری نداره و تو همین فروم توضیح داده شده . هم ajax با جاوا اسکریپت هم پر کردن یه drop down .

در کل ajax راهکاری فوق العاده برای کاهش حجم تبادلات بین سرویس گیرنده و سرویس دهنده است که باعث افزایش کارائی برنامه خواهد شد .

پس نهایتا بلیبه شرط استفاده صحیح .

موفق باشید .

didaaa
شنبه 09 بهمن 1389, 14:58 عصر
دوست عزیز ممنون از پاسختون یه نکته دیگه این که من الان صفحه ام 1.5 مگ شده چون از کامپوننتهای devexpress دارم استفاده میکنم تازه مسترپیجم دارم و jquery ولی به نظرم بشه لود اولیه سایتو فدای postback های اون بشه.

Javad_Darvish_Amiry
شنبه 09 بهمن 1389, 16:26 عصر
دوست عزیز سلام. یه واقعیتی که ما دات نت کارا متاسفانه هیچ وقت در نظر نمیگیریم، اینه که خیلی از این تکنولوژی هایی که ما میبینیم، اساسا برای ما ساخته نشدن. یک و نیم مگابایت یعنی دانلود به زبان عامیانه. یعنی ما ها وقتی میخوایم صحبت کنیم میگیم "اااااههههه، دیشب یک و نیم مگابایت دانلود کردم..." ما تو استفاده از هر تکنیکی باید اینو در نظر داشته باشیم که این تکنیک برای اینترنت دایال آپ 56 که سرعت واقعیش خیلی وقتها حتی به 3 و 4 هم نمیرسه ساخته شده، یا برای 3 مگ پهنای باند در خونه؟؟؟!!! من فکر نمیکنم کاربرای زیادی حاظر باشن که برای یه صفحه یک و نیم مگابایتی، پشت مانیتور بشینن (و دکمه ضربدر قرمز رو نزنن). به عنوان توسعه دهنده وب (تو هر بخشی، گرافیک، کلاینت، چینش، کدنویسی، معمار...) اولین و مهمترین وظیفه ما اینه که کاری کنیم که کاربر دکمه قرمزه رو نزنه.
یه نکته دیگه اینه که کامپوننت هایی که میگیرید اگه برای استفاده تجاری ازشون استفاده کنید (یعنی سایتتون رو نت نصب و راه اندازی بشه) از نظر لایسنس براتون مشکل ایجاد نکنند. devexpress یه سری کامپوننت رایگان هم داره ولی بیشترش پولیه. شما از کدوم استفاده کردید و اگه پولی هستن، آیا پولشو پرداخت کردید یا نه. مواظب باشید خدای نکرده برای سایتتون مشکلی پیش نیاد (البته اگه از سرور های ایرانی استفاده کنید که هیچ).
اما در مورد ایژکس. دوست عزیز ایژکس یه تکنیک و فن هستش. یه شیوه برقراری ارتباط بین سرور و کلاینت و هیچ ربطی به میکروسافت و کنترل های ایژکس که تو ویژوال استودیو میبینیم نداره. اونها هم صرفا یه تلاشین (ناموفق و شکست خورده و سرخورده) (و کنار گذاشته شده) برای پیاده سازی این تکنیک. کنترل تولکیت دیگه ورژن جدیدی نخواهد داشت و بروز رسانی هایی هم که انجام میشن، منبعد صرفا در حد رفع باگ ها هستن نه امکانات جدید یا بهینه سازی که البته اونم فقط تا یه تایم مشخصی ادامه داره (تاریخش یادم نیست اما تو msdn میتونید گزارش های کاملو پیدا کنید). هسته تولکیت در حالت دیباگ حدود 500 کیلو بایت و در حالت ریلیس حدود 240 کیلو بایته که با کنترل هایی هم که استفاده میشن این عدد (برای ما بی اینترنت ها) نجومی میشه. مخصوصا کنترل آپدیت پنل دیوانه کننده است و از طرفی هیچ کار مهمی هم انجام نمیده که نشه به سادگی با چند خط جاوا اسکریپت یا از اون بهتر کتابخونه هایی مثل جی کوئری انجام داد.
از یه طرف دیگه، هیچ سایت حرفه ای و معروفی رو نمیتونید پیدا کنید (حداقل من تا حالا ندیدم، جز فوروم خود asp.net) که از این تولکیت یا کامپوننت هایی مشابه استفاده کرده باشه. دلیلش هم اینه که سایت باید در دسترس باشه و این کامپوننت ها عملا دسترسی به سایت رو برای خیلی از مردم جهان که دسترسی به نت پرسرعت ندارن غیر ممکن میکنه (مثلا تو افغانستان، هزینه خط 128 حدود سه هزار دلار در ماهه!!!). از طرف دیگه کتابخونه های کلاینت رایگان انقدر رشد کردن و قوی شدن که نیاز به خریدن کامپوننت های چند صد دلاری تا چند هزار دلاری رو عملا از بین بردن.
پیشنهاد من به شما (به عنوان برادر کوچکترتون) یاد گرفتن یه کتابخونه کلاینته (اولش یه خورده جاوااسکریپت، نمیخاد توش حرفه ای بشید، یه آشنایی مقدماتی) که باز معروفترینش فعلا جی کوئریه. حجم نسخه نهاییش 70 کیلوبایته، نسخه 1.2.6 حدود 29 کیلوبایته و خیلی از قابلیت های مورد نیاز رو در خودش داره. بعد از اون هم کتابخونه dojo که حجم هسته اش 30 کیلو بایته. هر دوشون هم تو متود های ایژکس و هم تو توسعه رابط کاربر واقعا محشرا و امکاناتی بهتون میدن (با کمترین هزینه توی توسعه و حجم صفحه نهایی) که با تولکیت حتی تو خواب هم نمیشه دید.
ببخشید پرحرفی کردم. پاینده باشید.

aserfg
شنبه 09 بهمن 1389, 17:28 عصر
دوست عزیز ممنون از پاسختون یه نکته دیگه این که من الان صفحه ام 1.5 مگ شدهاین یعنی فاجعه!
استفاده از هر کنترلی حتی کنترلهای سرویس دهنده معمولی asp.net تا جایی که بشه اونا رو با کنترلهای html جایگزین کرد ممنوع!!


به نظرم بشه لود اولیه سایتو فدای postback های اون بشه. اشتباه !
دلیل :
عناصر بسیار پر اهمیتی مانند table معمولی اچ تی ام ال چون تا زمانی که محتوای داخلشون به صورت کامل بارگیری نشن در صفحه نمایان نمی شوند باعث شد انقلابی در طراحی صفحات وب تحت عنوان table less یعنی طراحی و layout صفحه با div ظهور کند .
که این اهمیت لود اولیه رو نشون می ده .

موفق باشید .

Alireza_Salehi
شنبه 09 بهمن 1389, 20:41 عصر
بچه ها بخدا من گیج شدم یه نفر با سواد بیاد بگه که این کاری که من میخوام بکنم درسته یا نه من یه فرم دارم که کاربر بعد از ورود به سایت میتونه اونو پر کنه حالا هر کاربر میتونه روزی صدتا از این فرمها پرکنه دیگه خودتون حساب کنید روزی میتونه چند هزار رکورد ثبت بشه! شوال من اینکه من تو فرمم ده تا drop down دارم که لیست استان ، شهرستان و مرکز داخل خودش نگهمیداره و غیره من برای اینکه هر drop down مرتبط با قبلی اطلاعاتش پر بشه یا باید به صفحه پست بک میدادم و یا از AJAX به همراه یه وب سرویس استفاده میکردم که نهایتا دومیرو انتخاب کردم میخوام بدونم ایا کارم درست بوده یا نه اگه شما بودید چیکار میکردید؟ با JQuery میشه همچین کاری کرد که حجم صفحه بالا نره؟ دوستان اگه لینکی هم داشتید ممنون میشم.


بین استفاده از MS Ajax و jQuery Ajax قطعا دومی کارایی و سرعت بالاتری دارد.

حجم صفحه شما با 10 عدد DropDown بسیار بالاست. نمونه کدهاتون رو قرار بدهید تا راهنمایی بیشتری بتوان کرد. حجم صفحه شما بسیار زیاد است.

daffy_duck376
یک شنبه 10 بهمن 1389, 08:50 صبح
البته دوستان حرف همه درست ولی اینقدر به حجم صفحه گیر ندید . همه میدونیم که به محض اینکه بخوایم از تکنولژی ajax در صفحه استفاده کنیم حجم بالا میره . ایشون از ابزار های شرکت devexpress استفاده کرده و حجمش یک و نیم مگ شده . خوب اما اگه توی ویب کانفیگش دقت کنه میبینه یه ماژول فشرده سازی هست که همراه ابزار های این شرکت اضافه میشه و حجم صفحه ایشون رو به حدود 500 k کاهش میده

V0R73X
یک شنبه 10 بهمن 1389, 09:26 صبح
دوست عزیز چرا از Wizard استفاده نمیکنید؟؟
با استفاده از ویزارد هر بار صفجه مجبور نیست که کل محتوا رو بالا بیاره. حالا میشه از خود کنترل ویزارد استفاده کرد، یا MultiView، یا کلا کاربرو از صفحه ای به صفحه دیگه هدایت کنید و اطلاعات رو هم با QString منتقل کنید.
بعدشم میتونید برای رضایت کاربر و جلوگیری از Postback هر مرحله Wizard، از AJAX استفاده کنید!
بعدشم میتونید خودتون آستین بالا بزنید و چند خط کد JQuery بنویسید تا کارتونو راه بندازه، به جاش از Devexpress استفاده نکنید.

Alireza_Salehi
یک شنبه 10 بهمن 1389, 18:20 عصر
البته دوستان حرف همه درست ولی اینقدر به حجم صفحه گیر ندید . همه میدونیم که به محض اینکه بخوایم از تکنولژی ajax در صفحه استفاده کنیم حجم بالا میره . ایشون از ابزار های شرکت devexpress استفاده کرده و حجمش یک و نیم مگ شده . خوب اما اگه توی ویب کانفیگش دقت کنه میبینه یه ماژول فشرده سازی هست که همراه ابزار های این شرکت اضافه میشه و حجم صفحه ایشون رو به حدود 500 k کاهش میده
10 تا DropDown اصلا قابل محاسبه نیست که بخواد حجم صفحه 1.5 مگابایت بشه، ضمن این که فشرده سازی سربار پردازشی بر روی سرور ایجاد میکنه تا جایی که ممکنه باید صفحه بهین هسازی شود و در آخرین مرحله فشرده سازی انجام پذیرد.

Javad_Darvish_Amiry
یک شنبه 10 بهمن 1389, 18:44 عصر
خوب اما اگه توی ویب کانفیگش دقت کنه میبینه یه ماژول فشرده سازی هست که همراه ابزار های این شرکت اضافه میشه و حجم صفحه ایشون رو به حدود 500 k کاهش میده

10 تا DropDown اصلا قابل محاسبه نیست که بخواد حجم صفحه 1.5 مگابایت بشه، ضمن این که فشرده سازی سربار پردازشی بر روی سرور ایجاد میکنه تا جایی که ممکنه باید صفحه بهین هسازی شود و در آخرین مرحله فشرده سازی انجام پذیرد.
تازه باید این رو هم دید که آیا ۵۰۰ کیلو بایت واقعا برای همچین صفحه ای حجم خوبی به حساب میاد؟!؟!؟!

V0R73X
یک شنبه 10 بهمن 1389, 23:29 عصر
راستی یه کار دیگه هم میشه کرد: کل صفحه رو واسه 2-3 ساعت Cache کنی!!!!!!!
اتفاقا اصلا عجیب نیست به نظر من راه خوبیه البته دوست دارم نظر اساتید رو هم بدونم.

مهدی کرامتی
دوشنبه 11 بهمن 1389, 02:54 صبح
1.5 مگابایت حجم برای یک صفحه کمی عجیب به نظر میرسه، اما ممکنه تم ها و اسکریپت های مورد استفاده در صفحه در مجموع چنین حجمی را ایجاد کرده باشند. همچنین حجم تصاویر و دیگر منابع مورد استفاده به صفحه اضافه میشه. اول ببین چی باعث افزایش حجم صفحه میشه، و سپس سعی کن یک راهی برای کاستن حجم پیدا کنی. اگر سایتت رو جایی آپلود کردی آدرس بده تا بررسی کنیم.

Ajax برای جاهایی خوبه که می خواهی تعداد PostBack رو کاهش بدهی، مثل سناریو Casecade DropDown که در صفحه شما وجود داره.

mahsa.n
دوشنبه 11 بهمن 1389, 09:17 صبح
برای پر کردن dropdown هات میتونی از jquery استفاده کنی

دنبال jquery+cascadingdropdownlist بگرد مثل این لینک :http://www.codedigest.com/Articles/jQuery/224_Building_Cascading_DropDownList_in_ASPNet_Usin g_jQuery_and_JSON.aspx