PDA

View Full Version : وب سایت با Ajax



ajaxman
دوشنبه 04 تیر 1386, 17:00 عصر
سلام خدمت تمام دوستان

اگه میشه منو راهنمایی کنید چون کارم به شدت گیره

من می خوام با Ajax سایتی راه بندازم که تمام صفحات بدون Refresh شدن لود بشن

یعنی وقتی مثلا از صفحه اصلی به صفحه تماس با ما می رویم Refresh صورت نگیرد

من تا حدی پیش رفتم تا جایی که صفحه مثلا تماس با ما رو توی یک Div لود می کنم و
همینطور صفحات دیگر

یعنی در اصل به چیزی که می خواستم رسیدم

فقط یک مشکلی هست و اونم اینکه

اول اینکه اگر تو صفحه مورد نظر (مثلا تماس با ما ) کنترل ASP.NET باشه وضعیت XMLHTTP برابر 200 نمیشه
و دوم اینکه وقتی حتی صفحه هم لود میشه و مثلا در صفحه لود شده یک لینک داریم که بهیک Event سمت سرور اشاره می کنیم در صورت کلیک صفحه PostBack شده و به حالت اولیه برمی گردد ( خوب این منطقیه )

اگه با Atlas هم میشه این کار رو کرد ممنون می شم

اگه میشه کمکم کنید کارم گیره

(من با ASP.NET2 کار می کنم)

می خوام سایتی مثل این درست کنم http://www.hostiran.net/

با تشکر فراوان از شما

azmoodeh
دوشنبه 04 تیر 1386, 17:10 عصر
سلام
refresh نشدن صفحه که دیگه مربوط به نحوه طراحیتون میشه ، اما برای راحتی کار به http://ajax.asp.net یه سر بزنید. آخرین کنترل ها به همراه سورس و مستندات رو کامل گذاشته که می تونه همه نیازت رو برطرف کنه .
برای جلوگیری از refresh شدن صفحات ( البته به نظر اومدن اینکه صفحه refresh نمیشه ) می تونید تگHTML زیر رو اول فایلهای ASPX اضافه کنید


<meta http-equiv='Page-Exit' content='progid:DXImageTransform.Microsoft.Fade(du ration=.25)' />


مقدار duration هم بین صفر تا یک قابل تغییره . تستش کنید . جالبه

موفق باشید

ajaxman
دوشنبه 04 تیر 1386, 17:30 عصر
دوست من

من کل سایت http://ajax.asp.net (http://ajax.asp.net/) رو زیر رو رو کردم و تمام کنترل ها و سمپل ها و مستنداتشو دیدم ولی نتونستم مشکلم رو حل کنم

azmoodeh
دوشنبه 04 تیر 1386, 17:39 عصر
دوست عزیز
این کنترلها به شما کمک می کنه که تکنولوژی Ajax رو پیاده کنید ، اما اگه در مورد صفحه می خواید که من هم اطلاع ندارم چجور میشه با Ajax جلوی Refresh موقع انتقال از یک صفحه به صفحه دیگه رو گرفت (و فکر هم نمی کنم اینکارو انجام بده ، چون با مفهوم Ajax یکم همخونی نداره) . ولی متا تگی که بهتون دادم میتونه اینکارو واستون شبیه سازی کنه

از طرفی شما می تونید با لود کردن کنترلها و پنلهای مختلف با کارهای متفاوت از طریق Ajax توی یک صفحه این کار رو انجام بدید(همون که گفتم مربوط به نحوه طراحیتون هم میشه ) دقیقا همین کار رو توی www.hostiran.net هم انجام میده و صفحه عوض نمی کنه . برای این کار هم توی سایت ajax.asp.net کنترل خیلی جالبی هست . اگه اشتباه نکنم animation

موفق باشی

ajaxman
دوشنبه 04 تیر 1386, 18:01 عصر
عزیز من اگه دقت کنی بنده اطلاعات رو در یک صفحه لود می کنم و پیمایشی بین صفحات ندارم

در این امر هم موفق بودم و فقط مشکل اینجاست که وقتی اطلاعات صفحه عوض می شه در اطلاعات جدید اگه یه دکمه سمت سرور داشته باشیم مشکل پیش میاد

اونم به خاطر PostBack هست

حالا می خوام ببینم سایتی که در بالا گفتم سیستمش چه طوریه ؟؟

azmoodeh
دوشنبه 04 تیر 1386, 18:05 عصر
فکر می کنم بهتره شما قسمتهای مختلفی رو که می خواید تغییر کنه به صورت UserControl طراحی کنید و Ajax ی بودن این قسمتها(مثل دکمه) رو توی همون UserControl انجام بدید

حالا مجددا توی صفحه اصلی سایت UserControl ها رو با Ajax لود کنید .

ajaxman
دوشنبه 04 تیر 1386, 18:13 عصر
ببینید بذارید یه مثال دیگه بزنم

شما فرض کن ما دو تا User Control داریم

تو اولی یه دکمه هست که خبرنامه ارسال می کنه

تو دومی هم یه دکمه هست که عملیات لاگین رو انجام میده

وقتی وارد صفحه اصلی سایت می شویم UserControl اول که مربوط به خبر نامه هست به صورت پیش فرض در یک Panel لود شده

حالا یه لینک داریم که این لینک UserControl فعلی پانل رو توسط تکنیک های Ajax با UserControl لاگین عوض می کنه

تا اینجا مشکلی نیست

حالا وقتی می خوایم روی دکمه لاگین UserControl دوم کلیک کنیم تا متد سمت سرور اون اجرا بشه

اون متد اجرا نمیشه و error جاوا میده

خب منطقیه چون PostBack انجام میشه و UserControl اول که خبرنامه بوده Valid هست

حالا من سوالم اینه که سایت های دیگه روششون چیه که این PostBack لعنتی رو دور می زنن

azmoodeh
دوشنبه 04 تیر 1386, 18:16 عصر
شما خود UserControl ها رو هم Ajax Based نوشتید یا معمولی هستن و فقط توی صفحه اول با Ajax لود میشن؟

ajaxman
دوشنبه 04 تیر 1386, 18:18 عصر
فقط توی صفحه اول با Ajax لود میشن

اگه می خواید بگید اونا رو هم Ajax ی کنید کار می کنند

بگم که این کار رو هم کردم ولی باز مشکل بوجود اومد

من می دونم یه نکته ای این وسط هست که نمی دونم اگه بدونم تا تهش می رم

ajaxman
سه شنبه 05 تیر 1386, 10:21 صبح
کسی نبود جوب ما رو بده

Amir Taghavi
سه شنبه 05 تیر 1386, 10:30 صبح
ببین عزیز برادر! اگه بخوای از Ajax استفاده کنی باید کنترلت رو در AJAX Panel بذاری. حالا هر کنترلی که می خواد باشه. ایجوری دیگه چیزی بنام PastBack وجود نداره.
اینو هم بگم که جالب نیست برای هر کاری از AJAX استفاده کنی. بعضی مواقع لازمه که Page حتما PostBack بشه امتحان کن خودت متوجه میشی.

aliraad
سه شنبه 05 تیر 1386, 14:14 عصر
از ajax tab strip استفاده کن
البته چیزی که تو میخوای زیاد خوب نیست چون اول باید همه صفحات لود بشه بهد یکی یکی نشون بده

azmoodeh
سه شنبه 05 تیر 1386, 14:17 عصر
کار چندان سختی نیست ، ظاهرا این دوستمون دنبال سورس کد آماده هستند.با یکم تلاش میشه حلش کرد

aliraad
سه شنبه 05 تیر 1386, 14:20 عصر
البته راه حل ساده تری هم خست و اون استفاده از updat panel البته اگه بخوای تلاش کنی و گرنه...

oxygenws
جمعه 08 تیر 1386, 19:59 عصر
تیتر نامناسب.
به من pm بده و تیتر مناسب و لینک همین مطلب رو برام بفرست تا تاپیک رو باز کنم.