PDA

View Full Version : Refresh کردن صفحه از طرف Server



hm1984ir
یک شنبه 28 مرداد 1386, 12:03 عصر
سلام به همه دوستان:
من می خواستم ببینم می شه صفحه ای که سمت Client برای کاربر به نمایش گذاشته شده با اتفاق افتادن یک Event طرف سرور به یک باره Refresh بشه.
یعنی کدی وجود داره که صفحه طرف Client رو refresh کنه؟
خیلی ممنون از اینکه تجربیات خدتون رو در اختیار من می گذارید.
حمید مقدم.

Behrouz_Rad
یک شنبه 28 مرداد 1386, 18:18 عصر
بله. در این حالت باید از AJAX استفاده کنی.
در فواصل زمانی مشخص به سرور Round-trip داشته باشی و ببینی که اون رویداد فراخوانی شده یا خیر.
در اون حالت میتونی از document.location برای هدایت کاربر به همان صفحه استفاده کنی.
یک چیزی مثل Web Chatting که در موردش سوال پرسیده بودی. (مثلا برای به دست آوردن لیست گفتگوها یا افراد آنلاین)

موفق باشید.

hm1984ir
دوشنبه 29 مرداد 1386, 09:05 صبح
تشکر می کنم که اینقدر زود رسیدگی کردید
اما در مورد راهنمایی که کردید باید عرض کنم من با استفاده از Atlas Timer قبلا این کار رو که شما گفتید پیاده سازی کردم اما الان می خواهم با استفاده از SqlNotification (که در هنگام تغییر در DataBase یک Event طرف سرور WebApllication من را صدا می زنه)این عمل Update رو انجام بدم ولازم نباشه یکسره به چک کنم تغییر انجام شده یا نه.
مشکل اینه که()UpdatePanel1.Update عمل Update رو در هنگام وقوع رخداد عمل نمی کنه اما اگر این ()UpdatePanel1.Update به وسیله رخداد Click یک کنترل مثل Button صورت بگیره مشکلی وجود نداره و عمل Update انجام خواهد شد.
به هر حال از شما متشکرم.
خوشحال می شوم از نظرات شما استفاده کنم.
حمید مقدم.

Behrouz_Rad
دوشنبه 29 مرداد 1386, 09:21 صبح
ماهیت وب و ویندوز در این مورد کاملا متفاوته.
در SQL Notification با استفاده از متد Start کلاس SqlDependency شما در حالت Monitoring هستید. در وب چنین چیزی معنا نداره!
تنها راه، چک کردن در فواصل زمانی مشخص هست.
Monitoring رو کلاینت باید انجام بده نه سرور!

موفق باشید.

hm1984ir
دوشنبه 29 مرداد 1386, 09:34 صبح
ولی من از SqlDependency در وب استفاده کردم وجواب هم گرفتم به این صورت که هر موقع رخداد OnChange مربوط به Dependency اتفاق می افتاد یک متغییر استاتیک رو True می کنم و رخداد مربوط به Atlas Timer من هر موقع اتفاق می افتاد اگر متغیر مربوطه True بود یعنی در DataBase تغییری انجام شده وبعد عمل Binding مجدد به GridView رو انجام می دادم نه اینکه هر دفعه عمل Binding رو یکسره انجام بدم چون فکر می کنم اینجوری Performance به شدت بیاد پایین؟؟؟

Behrouz_Rad
دوشنبه 29 مرداد 1386, 09:52 صبح
ولی من از SqlDependency در وب استفاده کردم وجواب هم گرفتم به این صورت که هر موقع رخداد OnChange مربوط به Dependency اتفاق می افتاد یک متغییر استاتیک رو True می کنم و رخداد مربوط به Atlas Timer من هر موقع اتفاق می افتاد اگر متغیر مربوطه True بود یعنی در DataBase تغییری انجام شده وبعد عمل Binding مجدد به GridView رو انجام می دادم
جایی در پست من پیدا می کنی که گفته باشم نمیتونی از Sql Dependency در وب استفاده کنی؟
دقیقا توضیحات بنده رو مجددا به شکل دیگه بیان کردی.
من هم گفتم که Monitoring باید در سمت کلاینت باشه. ATLAS Timer هم یک تکه کد جاوا اسکریپت رو بر روی صفحه قرار میده که همون تابع setTimeout هست.

موفق باشید.

hm1984ir
دوشنبه 29 مرداد 1386, 09:55 صبح
خیلی ممنون از راهنمایی هاتون

ar_monti@
دوشنبه 28 آبان 1386, 09:59 صبح
سلام
مسشه طرز استفاده از این روش یا یک تکه کدی که بشه در فواصل معینی صفحه را Refresh کرد برای من نمایش دهید.
ممنون

el_abdollahi
دوشنبه 28 آبان 1386, 11:00 صبح
میشه لطفا لینک یه مقاله آموزشی در این مورد رو بزارید

Behrouz_Rad
دوشنبه 28 آبان 1386, 11:14 صبح
سلام
میشه طرز استفاده از این روش یا یک تکه کدی که بشه در فواصل معینی صفحه را Refresh کرد برای من نمایش دهید.
کجاش رو نمیتونی پیاده سازی کنی؟ در پست 2 کاملا توضیح دادم.

میشه لطفا لینک یه مقاله آموزشی در این مورد رو بزارید
در مورد هر مطلب ساده ای که مقاله پیدا نمیشه عزیز جان...! ;)

موفق باشید.