PDA

View Full Version : زنده نگه داشتن یک وب پیج



afg_javan
یک شنبه 03 اردیبهشت 1391, 20:08 عصر
سلام
می خواستم بدونم در asp.net چه جوری می شه یک صفحه وب رو زنده نگه داشت
برای مثال سایت تویئتر

اگه بخوام یک همچین سایتی رو پایه ریزی کنم باید چه کارهایی انجام بدم
منظورم همون زنده نگه داشتن صفحه

صفحه اصلی توئیتر بدون اینکه دوباره لود بشه یا درخواستی انجام بشه کار آپدیت رو انجام می ده
اگر راههایی دیگری غیر از استفاده از آپدیت پنل و تایمر دارید، ممنون می شم اونو به اشتراک بگزارید
:قلب::قلب:

Beginner2013
یک شنبه 03 اردیبهشت 1391, 20:17 عصر
سلام
می خواستم بدونم در asp.net چه جوری می شه یک صفحه وب رو زنده نگه داشت
برای مثال سایت تویئتر

اگه بخوام یک همچین سایتی رو پایه ریزی کنم باید چه کارهایی انجام بدم
منظورم همون زنده نگه داشتن صفحه

صفحه اصلی توئیتر بدون اینکه دوباره لود بشه یا درخواستی انجام بشه کار آپدیت رو انجام می ده
اگر راههایی دیگری غیر از استفاده از آپدیت پنل و تایمر دارید، ممنون می شم اونو به اشتراک بگزارید
:قلب::قلب:

از کجا فهمیدید که بدون اینکه درخواستی رخ بده،سایت آپدیت میشه؟

afg_javan
دوشنبه 04 اردیبهشت 1391, 08:15 صبح
شما چه فکر می کنید؟

d_derakhshani
دوشنبه 04 اردیبهشت 1391, 08:48 صبح
ببینید تکنیک اصلی استفاده از Ajax هست. منظورم update panel و ... نیست. بهترین روش استفاده از JQuery هست. باید Request ها رو به صورت Ajax به سرور بفرستید و با دریافت پاسخ با JQuery و جاوا اسکریپت تغییرات لازم رو اعمال کنید.
راه دیگه که راه نصفه نیمه کاریه هست استفاده از فریمه. اما چون در این مورد روش خوبی نیست دیگه توضیح نمی دم

sasansara
دوشنبه 04 اردیبهشت 1391, 09:04 صبح
استفاده از jquery و ajax درسته. اما مسئله مهم به نظر من اینه که از سمت کلاینت ، با استفاده از تایمر باید سرور رو چک کرد؟ اینطوری اگه سایت مثل توییتر و فیسبوک تعداد کاربراش زیاد بشه واقعا سرورها دچار مشکل میشن. به خصوص دیدیدین که شما تو فیسبوک یه مطلب میذارید، یک ثانیه بعد یکی لایک میکنه و یک ثانیه بعدترش! نوتیفیکیشن اون لایک واسه شما نشون داده میشه. به نظر نمیاد تایمر باشه.
راه دیگه ای که بعضی جاها مطرحه اینه که اگه اتفاق جدیدی افتاد سرور به کلاینت ها آلارم بده! البته من واقعا نمی دونم اینکار چطور باید انجام بشه و فرصت نکردم برم دنبالش.

d_derakhshani
دوشنبه 04 اردیبهشت 1391, 09:21 صبح
دوست عزیز فیس بوک هم از ajax استفاده می کنه اما نه با تایمر بلکه یک کانکشن باز نگه میداره و اگه تغییراتی در سرور رخ داد برای کلاینت push down میکنه. در واقع از پترن publisher/subscriber به همراه duplex communication استفاده می کنه. برای مطالعه بیشتر در مورد Comet تحقیق کنید

afg_javan
دوشنبه 04 اردیبهشت 1391, 10:28 صبح
همانطور که آقای d_derakhshani فرمودند ، رفتم تحقیق کردم.
الان متوجه شدم که این سایت ها با فناوری jsonp یا json padding کار می کنند.
حالا می خواستم بدونم دوستان کتابهای فارسی آموزش jsonp و json که با ای اس پی کار کنه چی رو معرفی کنند؟

afg_javan
دوشنبه 04 اردیبهشت 1391, 16:38 عصر
????????????

aminghaderi
دوشنبه 04 اردیبهشت 1391, 19:19 عصر
همانطور که آقای d_derakhshani فرمودند ، رفتم تحقیق کردم.
الان متوجه شدم که این سایت ها با فناوری jsonp یا json padding کار می کنند.
حالا می خواستم بدونم دوستان کتابهای فارسی آموزش jsonp و json که با ای اس پی کار کنه چی رو معرفی کنند؟ تحقیق یه ساعته ....
فکر کنم نتایج رو اشتباه بدست اوردید.
تا جایی که اطلاع دارم جیسون یه فرمت استاندارد هست که خراک اصلی اجکس است ، چون نسبت به xml از خلاصه تر است (البته اشتباه نشود در این مقوله xml کاربردش کمی کمتر از Json هست والا که برای خودش قطبی هست).


دوست عزیز فیس بوک هم از ajax استفاده می کنه اما نه با تایمر بلکه یک کانکشن باز نگه میداره و اگه تغییراتی در سرور رخ داد برای کلاینت push down میکنه. در واقع از پترن publisher/subscriber به همراه duplex communication استفاده می کنه. برای مطالعه بیشتر در مورد Comet تحقیق کنیدضمن تشکر از توضیحات خوبتون.
چطور می تونم کانکشن رو باز نگه دارم؟
xmlHttp.setRequestHeader("Connection", "close");

یعنی به جای Close باید از Open استفاده کرد؟؟
بعد سمت سرور چطور باید رفتار کنم؟؟
string OrgnalRequest = context.Request.Form.ToString();
System.Threading.Thread.Sleep(2000);
context.Response.ContentType = "text/plain";
context.Response.ContentType = "HeloIran";

یعنی در همان کلاس اجکسی بیایم یه تایمر(timer /task / or ...) تعریف کنیم و عملا از اون صفحه خارج نشیم تا کاربر دکمه خروج مرورگر رو بزنه و ارتباطش رو با سرور قطع کنه و در هین اتصال مادام Response و Request داشته باشیم؟؟درست متوجه شدم؟؟

afg_javan
چهارشنبه 06 اردیبهشت 1391, 14:57 عصر
تحقیق یه ساعته ....
فکر کنم نتایج رو اشتباه بدست اوردید.
تا جایی که اطلاع دارم جیسون یه فرمت استاندارد هست که خراک اصلی اجکس است ، چون نسبت به xml از خلاصه تر است (البته اشتباه نشود در این مقوله xml کاربردش کمی کمتر از Json هست والا که برای خودش قطبی هست).

ضمن تشکر از توضیحات خوبتون.
چطور می تونم کانکشن رو باز نگه دارم؟
xmlHttp.setRequestHeader("Connection", "close");

یعنی به جای Close باید از Open استفاده کرد؟؟
بعد سمت سرور چطور باید رفتار کنم؟؟
string OrgnalRequest = context.Request.Form.ToString();
System.Threading.Thread.Sleep(2000);
context.Response.ContentType = "text/plain";
context.Response.ContentType = "HeloIran";

یعنی در همان کلاس اجکسی بیایم یه تایمر(timer /task / or ...) تعریف کنیم و عملا از اون صفحه خارج نشیم تا کاربر دکمه خروج مرورگر رو بزنه و ارتباطش رو با سرور قطع کنه و در هین اتصال مادام Response و Request داشته باشیم؟؟درست متوجه شدم؟؟

نمی دونم والا
یعنی نمی دونم که درست متوجه شدم یا نه؟
اما به هر حال آدرس منبع تحقیقم http://en.wikipedia.org/wiki/JSONP است.
البته ناگفته نماند سطح زبان انگلیسی ام هم خیلی پایینه.
شاید درست متوجه محتویات مقاله نشدم :متفکر::متفکر:
اما به هر حال اگه از دوستان آموزش json دارند یا می تونند فیلمی ، کتابی رو معرفی کنند ممنون میشم آن را با دوستان علاقه مند به این موضوع به اشتراک بگزارند.:قلب:

aminghaderi
پنج شنبه 07 اردیبهشت 1391, 00:17 صبح
جیسون یه فرمت عزیزم مثل متن زیر :

a:salamIran;b:Amin
که a,b یه متغیر است و بقیه هم مقدار و علامت ; هم جدا کننده متغیر ها.
اون اصلی اجکس هست که حقیقت بحثش یکم طولانی هست داخل سایت مطالب زیاد هست اگر سرچ کنید به نتایج خوبی می رسید.

afg_javan
دوشنبه 25 اردیبهشت 1391, 07:25 صبح
بالاخره تونستم با asp.net اینکار رو انجام بدم
من الان یک وب پیج زنده دارم که بدون رفرش صفحه اطلاعات جدید رو از دیتابیس می خونه
:چشمک::چشمک::چشمک::چشمک::چشمک: :چشمک::چشمک::چشمک::چشمک::چشمک:

farhud
دوشنبه 25 اردیبهشت 1391, 13:19 عصر
توضیح بده چیکار کردی تا دیگران هم یاد بگیرند.

afg_javan
دوشنبه 25 اردیبهشت 1391, 13:45 عصر
من با استفاده از یک وب سرویس ، جاوااسکریپت ، اسکریپت منیجر اینکار رو کردم.
در واقع کاری که من کردم به اینصورت است که یک کانکشن باز با وب سرویس و خود وب سرویس هم به دیتابیس ایجاد کردم و اومدم توسط جاوااسکریپت و اسکریپت منیجر از این ارتباط استفاده کردم.

الان می تونم مشخص کنم دیتاها از کدوم جدول دیتابیس خونده بشه بنابراین می تونم هر چیزی رو سلکت بگیرم
در حال حاضر من این کار رو روی یک پروژه انجام دادم و به محض اینکه کاربر یک پیام برای مدیر بگذارد، مدیر توسط یک آهنگ و نمایش تعداد پیام های جدید باخبر می شود.

توضیح دادنش یک مقدار سخته چون تازه این کار رو انجام دادم ولی ساختار کلی کار همینطور بود که نوشتم.
باز هم اگه سوالی بود که بتونم جواب بدم در خدمت هستم.