ورود

View Full Version : مبتدی: هدایت خودکار صفحه بعد از چند ثانیه



farhud
پنج شنبه 28 مهر 1390, 16:25 عصر
ابتدا بگویم که جستجو کردم ولی پیدا نکردم. شاید کلمات جستجو درست نبوده است.

هنگامی که در این سایت نام کاربری و گذرواژه را وارد می کنید، به شما پیام وارد شدن به سایت را می دهد و به صورت خودکار بعد از چند ثانیه به صفحه بعدی هدایت می شوید.

من چیزی مشابه این را می خواهم طراحی کنم. با استفاده از C#.

در رویداد Load چک می شود که آیا کاربر مشخصات خود را ثبت کرده یا نه؟ اگر ثبت نکرده باشد با یک پیام مناسب به صفحه ثبت مشخصات هدایت شود.

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

raziee
پنج شنبه 28 مهر 1390, 21:26 عصر
با سلام.
برادرم sleep ای که شما استفاده کردید در سرور یک وقفه ایجاد میکنه.
یعنی چی؟
یعنی وقتی کاربر درخواستی رو میفرسته(حالا هر درخواستی) رمانی که به sleep میرسه در thread جاری یک وقفه ایجاد میشه و بعد از اتمام اون وقفه پردازش های بعدی صورت میگیره و درنتیجه پاسخ به کلاینت ارسال میشه.
شما باید این وقفه یا تاخیر رو در کلاینت پیاده کنید و طبیعی هست که باید با یکی از زبان های تحت کلاینت مثل جاوا اسکریپت به این هدف برسید!!!
این لینک (http://www.sean.co.uk/a/webdesign/javascriptdelay.shtm) و این لینک (http://api.jquery.com/delay/) رو ببینید.

farhud
شنبه 30 مهر 1390, 13:41 عصر
سپاس آقای رضیئی

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

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

برای حل این مشکل چه باید کرد؟

farhud
شنبه 30 مهر 1390, 14:18 عصر
پاسخ این پرسش به صورت زیر است که در این وبلاگ (http://nice-tutorials.blogspot.com/2009/12/redirection-after-some-time-delay-in.html) توضیح داده شده:

این کار به سه روش امکان پذیر است که بنده روش سوم را ترجیح می دهم:

1- استفاده از تابع جاوا اسکریپت در کدهای سی شارپ:
protected void btnRedirect_Click(object sender, EventArgs e)
{
string redirectionScript = "<script language='javascript'>" +
"function Delayer(){"+
"setTimeout('Redirection()', 5000);"+
"}"+
"function Redirection(){" +
"window.location = 'yourpage2.aspx';" +
"}" +
"Delayer()" +
"</script>";
Page.RegisterStartupScript("Startup", redirectionScript);
}



2- استفاده از متاتگ ها در کدهای سی شارپ

protected void btnRedirect_Click(object sender, EventArgs e)
{
Page.Header.Controls.Add(new LiteralControl("<meta http-equiv='refresh' content='5; url=yourpage2.aspx'/>"));
}

3- استفاده از Response

protected void btnRedirect_Click(object sender, EventArgs e)
{
Response.AddHeader("REFRESH", "5;URL=yourpage2.aspx");
}