PDA

View Full Version : مشکل با Timer



el_abdollahi
یک شنبه 25 آذر 1386, 01:33 صبح
سلام .
من توی سایتم بنا به شرایطی بایستی به کاربرم هشدار بدم.
برای این کار از کنترل تایمر استفاده کرده ام و هر چند ثانیه یکبار در رویداد اون برقراری شروط هشدار رو بررسی می کنم و در صورت برقرای شرط ، تصویر مربوطه رو نمایش میدم. زمانی که کاربر روی تصویر کلیک میکنه صفحه پاسخ گویی به اون هشدار باز میشه و تصویر اون هشدار هم با کد جاوااسکریپت مخفی میشه (display=none) . تا اینجا همه چیز خوب کار میکنه و تصویر هم مخفی میشه . ولی مشکل اینجاست که دفعه بعد که رویداد تایمر فراخوانی میشه ، تصویر دوباره پیدا میشه . در صورتیکه اصلا دستور نمایش تصویر اجرا نمیشه . ( در ضمن من از iframe برای نشان دادن صفحاتم در یک قالب استفاده کرده ام و تصویر ها و تایمر داخل update panel قرار دارند و visible تصویر ها در حالت طراحی مقدار false دارند . ).
لطفا کمک کنید . من نمیخوام که تصویر هشدار پس از کلیک روی اون نشون داده بشه .)

el_abdollahi
یک شنبه 25 آذر 1386, 16:48 عصر
لطفا کمک کنید . یعنی هیچ کس تا حالا سایتی اینجوری نساخته ؟؟؟؟
خوب راهنماییکنید دیگه . شاید اصلا روش من روش درستی نبوده . خوب لطفا روش درستش رو به من بگین .
خواهش میکنم .

hamedgh
دوشنبه 26 آذر 1386, 00:06 صبح
سلام این تایمرت اگر اجاکسی است و از authentication َاستفاده می کنی بی خیالش شو
چون خیلی بی جنبه است به ازای هر تیکی یک کانکشن در دیتا بیس برای احراز هویت می زند

احتمالا مشکل از شرط است که بعد از نمایش پیغام خطا ان را غیر فعال نمی کنی
اگر کاریر خطا را دید تمامی شروط را بردار تا دوباره نمایش داده نشود
!!!!!!!!!!نمی دانم منظورت را فهمیدم یا نه

el_abdollahi
دوشنبه 26 آذر 1386, 08:57 صبح
سلام.
فکرنمیکنم اشکال از شرط ها باشه . اونها رو بررسی کردم و حتی چندین با ر با F10 و ّF11 امتحان کردم . اصلا دستور نمایش تصاویر اجرا نمیشه ولی تصاویر خود به خود نمایش پیدا میکنه .
در ضمن پیشنهاد شما برای رفع این مشکل چیه ؟ میتونین کمکم کنید .
با تشکر

hamedgh
دوشنبه 26 آذر 1386, 11:40 صبح
من دقیقا نفهمیدم چیکار می خواهی بکنی که کمکت کنم
ولی من گفتم که مشکل ازشرط ها ست که بعد از true شدن و نمایش ان دیگر false نمی شود
یعنی اگر کاربر دید انها را false کنی اگر کدت را بزاری بیشتر می توانیم کمکت کنیم این طوری
تشخیصش سخت است

el_abdollahi
دوشنبه 26 آذر 1386, 14:38 عصر
این از کد Timer :

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim cls As New clsStaff

Dim new_m_id As String = cls.get_last_message(Session("s_id")).Trim
If new_m_id <> Session("hidm_id").Trim Then
Session("hidm_id") = new_m_id
Me.img_message.Visible = True
End If
End Sub
و این کد تصویر :

<asp:UpdatePanel ID="UpdatePanel2" runat="server" >
<ContentTemplate >
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" style="BORDER-BOTTOM: #69573d 1px solid; background-color:#e0c6af; ">
<img src="~/Images/msg.gif" alt="" runat="server" id="img_message" onclick="javascript:E1();" style="border:0;" visible="false" />
</td>
</tr>
</table>
<div visible="false"><asp:Timer ID="Timer1" runat="server" Interval="3000" > </asp:Timer></div>
</ContentTemplate>
</asp:UpdatePanel>
واین هم تابع مخفی کردن تصویر :


function E1()
{
str="message/show_message.aspx?show_message=recive|" + document.getElementById("hidm_id").value + "";
if (document.getElementById("hidm_id").value>0 )
{
window.open(str,"bottom");
document.getElementById("img_message").style.display="none";
}
}
امیدوارم منظورم رو فهمیده باشید .

hamedgh
دوشنبه 26 آذر 1386, 22:14 عصر
البته من وی بی بلد نیستم ولی زور خودم را زدم که چیزی بفهمم
اول از همه معلوم میشه پست من را با دقت نخواندی بگذار بیشتر توضیح بدهم
شرط به هر دلیلی true می شود پیغام می اید کاربر بر روی ان کلیک می کند
در تیک بعدی تایمر شرط هنوز true است !!!!!!!! کجا فالسش کردی که دیگر نشان داده نشود
پیشنهاد من این است در شرط تایمر بعد از این

Me.img_message.Visible = Trueشرط را فالس کن نمی دانم

خوب حالا اگر از FormsAuthenticaion استفاده می کنی
بد نیست یک نگاهی به profiler اس کیو ال بیندازی
که از تایمر اجاکسی پشمان شی

اگر پیشمان شد ی و خواستی تابع جاوا اسریپتی برای ان بنویسی
کاری ندارد به جای سیشن از فایل هیدن استفاده میکنی و شورطت در
تابعی که هر چند ثانیه تکرار می شود را چک می کنی
و نمایشش بدهی ......................

ehsan2007
دوشنبه 26 آذر 1386, 23:04 عصر
همون طوری که دوستمون گفتن با جاوا اسکریپت این کارو انجام بدی بهتره
و به جای اینیکه هشدارتونو توی یک جدول میگذاری توی یک لایه بگذار و اون لایه رو مخفی کنی بهتره

el_abdollahi
سه شنبه 27 آذر 1386, 01:11 صبح
به جای سیشن از فایل هیدن استفاده میکنی و شورطت در
تابعی که هر چند ثانیه تکرار می شود را چک می کنی
و نمایشش بدهی ......................
راستش من هم از حرف های شما زیاد نمیفهمم .:افسرده: میشه بیشتر توضیح بدین .:قلب:
در ضمن با این کد
Session("hidm_id") = new_m_id
شرط هم false میشه و دیگه توی این شرط وارد نمیشه . این رو کنترل کردم.:گیج:

hamedgh
سه شنبه 27 آذر 1386, 09:44 صبح
راستش من هم از حرف های شما زیاد نمیفهمم . میشه بیشتر توضیح بدین .

کلا منظورم این بود که از جاوا اسکریپت استفاده کنی
ارزش اجاکس را ندارد با این سرعت اینترنت زغالی

ehsan2007
سه شنبه 27 آذر 1386, 10:01 صبح
اینو که خودم درست کردمو نگاهی بکن شاید بتونه مشکلتونو حل کنه یه چیزی شبیه همونه که توی ذهن شما میخواد انجام بشه
www.box.irking.ir (http://www.box.irking.ir/)