PDA

View Full Version : حرفه ای: اجکس کردن سایت که قبلا به صورت مستر پیج ساخته شده؟؟



aminghaderi
یک شنبه 22 فروردین 1389, 18:45 عصر
با سلام خدمت اساتید و دوستان.
من یه پرتال قبلا درست کرده بودم که بدون اجکس کارمی کنه ، حالا می خام برای راحتی کاربران و مدیران سایت ، سیستم رو به برپایه اجکس ارتقاع بدم .
من از روش مستقیم (XmlHttpRequest) استفاده می کنم.
حالا مشکلی که پیش می یاد مسترپیج و صفحات سایت هست؟!
من اگه بخوام صفحه اخبار رو فراخونی کنم با اجکس ، چطوری باید اینکار رو انجام بدم؟؟؟
من فکر کردم اگه این کار شدنی نباشه ، یه متغیر استرینگ داشته باشم که جدول صفحه اخبار رو داخلش با Html طراحی کنم و بعد داخل Div وسط صفحه به صورت InneHtml فراخونی کنم؟؟؟
به نظرتون چطوره؟؟؟
اما یه مشکلی که این روش داره المت ها و اشیای دات نت براش شناخته شده نیست و من باید کل اشیا رو به اچ تی ام ال دوباره طراحی کنم؟! که البته فکر می کنم سیستم های تحت اجکس همه از اشیای HTML استفاده می کنند.

mehdi.mousavi
دوشنبه 23 فروردین 1389, 12:24 عصر
با سلام خدمت اساتید و دوستان. من یه پرتال قبلا درست کرده بودم که بدون اجکس کارمی کنه ، حالا می خام برای راحتی کاربران و مدیران سایت ، سیستم رو به برپایه اجکس ارتقاع بدم . من از روش مستقیم (XmlHttpRequest) استفاده می کنم. حالا مشکلی که پیش می یاد مسترپیج و صفحات سایت هست؟! من اگه بخوام صفحه اخبار رو فراخونی کنم با اجکس ، چطوری باید اینکار رو انجام بدم؟؟؟ من فکر کردم اگه این کار شدنی نباشه ، یه متغیر استرینگ داشته باشم که جدول صفحه اخبار رو داخلش با Html طراحی کنم و بعد داخل Div وسط صفحه به صورت InneHtml فراخونی کنم؟؟؟ به نظرتون چطوره؟؟؟ اما یه مشکلی که این روش داره المت ها و اشیای دات نت براش شناخته شده نیست و من باید کل اشیا رو به اچ تی ام ال دوباره طراحی کنم؟! که البته فکر می کنم سیستم های تحت اجکس همه از اشیای HTML استفاده می کنند.

سلام.
روش خیلی دشواری رو پیش رو گرفته اید که در نهایت منجر به تولید خروارها کد Boilerplate میشه. امروزه دیگه کسی مستقیما از XmlHttpRequest استفاده نمیکنه، مگر اینکه واقعا دلیل خاصی برای اینکار داشته باشه. شما دو راه دارید، که سریعتر از روشهای دیگه به نتیجه برسید. روش اول، استفاده از ساز و کار مایکروسافت برای انجام اینکارهاست.

توی ASP.NET و بکمک Client Callback ها، می تونید هر کد Server-Side ای رو از طریق JavaScript فراخوانی کنید. همچنین می تونید با استفاده از UpdatePanel و ScriptManager کار دشوار مدیریت محتوا در رفت و برگشت ها رو به دوش خود Framework بندازید. لطفا در مورد UpdatePanel ابتدا جستجو کنید و از چند و چون کار با این کنترل مطلع بشید. این قاعدتا سریعترین و راحتترین روش برای گذر از یک Classic Web App به Ajax Rich App هستش. در واقع این روش مناسب جاهایی هستش که خروارها اطلاعات باید روی صفحه Refresh بشن، در حالیکه کل صفحه دست نخورده باقی بمونه.

اما برخی اوقات، نیاز هستش که یک عدد، یک String یا کلا داده کمی رو از سرور بگیرید و روی نقطه خاصی از Client نشون بدید. برای اینکار هم میتونید از Page Method ها یا از وب سرویسها استفاده کنید. بعبارت دیگه، شما کد Server-Side ای خواهید داشت که با Client Callback ها داده ای رو دریافت می کنید و خودتون پس از دریافت داده توسط JavaScript اونو تو محل مناسب نمایش میدید. این روش برای جاهایی خوبه که اطلاعات دریافتی یا تغییرات روی صفحه کم هستش.

روش دوم، انتخاب یک JavaScript Framework برای اینجور کارهاست. jQuery انتخاب بسیار مناسبی هستش. jQuery با ابزارهایی که در اختیارتون قرار میده، امکان دریافت و نمایش خروارها اطلاعات رو در یک خط فراهم میکنه، بدون اینکه درگیر جزییات بشید یا کد Boilerplate ای بنویسید. البته پر واضحه که اینجا هم، شما باید کد Server-Side ای داشته باشید تا اطلاعات مورد نیاز رو براتون فراهم کنه و در اختیار کد Client-Side قرار بده، که بازهم، به همون Page Method ها و Web Service ها میرسیم.

برای اطلاعات بیشتر، میتونید ابتدا UpdatePanel رو مورد بررسی قرار بدید. اگر پاسخگوی نیاز شما نبود (که در اغلب موارد هست)، اونوقت به روشهای دیگه ای که خدمتتون عرض کردم روی بیارید.

موفق باشید.