PDA

View Full Version : اعلان یک پیغام به کاربر در صورت داشتن پیام



sg.programmer
یک شنبه 25 آبان 1393, 16:26 عصر
سلام
یک صندوق پیام دارم در برنامه ام که میخوام در صورت داشتن پیام یک پیغام به کاربر داده شود؟ مثلا در هر 1دقیقه و یا بیشتر؟

چطوری و با چه کامپوننتی این عمل را انجام بدم؟

Mohammad_dn
یک شنبه 25 آبان 1393, 17:03 عصر
میتونید با ایجکس پیاده کنید....مثلا هر دو دقیقه چک کنید ببینید پیام جدیدی داره یا نه

sg.programmer
یک شنبه 25 آبان 1393, 20:04 عصر
میتونید با ایجکس پیاده کنید....مثلا هر دو دقیقه چک کنید ببینید پیام جدیدی داره یا نه


میشه بگید با ایجکس چطوری اینکار را بکنم؟
و بدون ایجکس چطوری میشه اینکار را کرد؟

Mohammad_dn
یک شنبه 25 آبان 1393, 20:07 عصر
با ایجکس میتونید از update panel خود asp.net استفاده کنید...البته جی کوئری هم هست....راه دیگش singleR هست(که من اطلاعات کاملی در رابطه با پیاده سازیش ندارم)
البته فکر میکنم همون ایجکس کفایت کنه

sg.programmer
دوشنبه 26 آبان 1393, 16:02 عصر
مهندس میتونید بیشتر توضیح بدید چطور با update panel بشه کاری کردی که در زمان خاصی فعال بشه و یک کویری را اجرا کنه؟

Mohammad_dn
دوشنبه 26 آبان 1393, 18:04 عصر
یه تایرمر میزاری داخل آپدیت پنل..که مثلا هر یک دقیقه از بانک کوئری بگیره ببینه کاربر پیامی داره که خونده نشده باشه یا نه

sg.programmer
دوشنبه 26 آبان 1393, 22:06 عصر
تشکر مهندس جواب داد
ولی سوال )
این روش صحیح هست؟ آیا سرعت برنامه کم نمیشه؟ پردازشش چطور؟
آیا سایت های دیگه هم از این روش استفاده میکنه ؟

Mohammad_dn
دوشنبه 26 آبان 1393, 22:13 عصر
اول این که اگه میخوای از ایجکس استفاده کنی..سعی کن از جی کوئری ایجکس استفاده کنی نه ASP.NET AJAX ...و دوم اینکه...مدت زمان رو بیشتر کن...مثلا هر 3 دقیقه یه درخواست و یا بیشتر...
توجه کن کن که ایجکس راه مناسبی برای ساخت جت روم یا اینجور چیزار نیست چون فشار خیلی زیادی به سرور و مخصوصا به دیتابیس میاره...فکر میکنم singleR بهتر باشه...البته باید بیشتر در موردش تحقیق کنید چون من اطلاعات کاملی ندارم اما برای ساخت برنامه های بدون درنگ میتونید از این استفاده کنید

پیام حیاتی
دوشنبه 26 آبان 1393, 22:23 عصر
سلام
پیشنهاد بنده
singleR :

http://www.farinsoft.com/shop/details/7796/17/?keyword=%D8%A8%D9%84%D8%A7%D8%AF%D8%B1%D9%86%DA%A F

sg.programmer
سه شنبه 27 آبان 1393, 16:06 عصر
اول این که اگه میخوای از ایجکس استفاده کنی..سعی کن از جی کوئری ایجکس استفاده کنی نه ASP.NET AJAX

من میخوام هر از چند مدتی از دیتابیس یک count بگیرم ببینم پیامی بین کاربران رد و بدل شده یا خیر؟ برای این موضوع از چه روشی استفاده کنم؟

آیا منظورتون از جی کوئری ایجکس همون جی کوئری هست؟ چطور تایمر را با اون راه اندازی کنم؟

Mohammad_dn
سه شنبه 27 آبان 1393, 20:49 عصر
شما باید یه فیلد توی تیبل پیاماتون داشته باشید....که نشان دهنده ی خونده شدن یا نشدن پیام باشه
مثلا اگه True بود یعنی خونده شده و اگه False بود یعنی خونده نشده

حالا شما میای نگاه میکنی که مثلا کاربر Mohammad_dn چند تا پیام داره که اون فیلدش False هست یا به عبارتی خوتنده نشده هست

sg.programmer
چهارشنبه 28 آبان 1393, 17:55 عصر
شما باید یه فیلد توی تیبل پیاماتون داشته باشید....که نشان دهنده ی خونده شدن یا نشدن پیام باشه
مثلا اگه True بود یعنی خونده شده و اگه False بود یعنی خونده نشده

حالا شما میای نگاه میکنی که مثلا کاربر Mohammad_dn چند تا پیام داره که اون فیلدش False هست یا به عبارتی خوتنده نشده هست

منظورم این نبود میدونم که چطور باید از دیتابیس بخونم.

آیا منظورتون از جی کوئری ایجکس همون جی کوئری هست؟ یا چیز دیگه؟ چطور تایمر را با اون راه اندازی کنم؟

Mohammad_dn
چهارشنبه 28 آبان 1393, 18:24 عصر
منظورم جی کوئری ایجکس هست که با استفاده از جی کوئری پیاده میشه

کد تایمر:

setInterval(function () {

}, 10000);

sg.programmer
چهارشنبه 28 آبان 1393, 21:39 عصر
تشکر مهندس از بابت جواب های که ارسال میکنید.(چیز زیادی از جستجوم نتونستم پیدا کنم).

اگه ممکنه بگید که چطور میتونم داخل این فانکشن : ابتدا یک دستور کوئری را اجرا کنم و به دیتابیس متصل بشم
و چطور میتونم به خصوصیات کنترل های asp.net ( مثلا text در lable ) دسترسی داشته باشم

Mohammad_dn
جمعه 30 آبان 1393, 10:28 صبح
سلام



اگه ممکنه بگید که چطور میتونم داخل این فانکشن : ابتدا یک دستور کوئری را اجرا کنم و به دیتابیس متصل بشم


$(document).ready(function () {
$("#btnsend").click(function () {
var strname = $("#txtname").val();
var stremail = $("#txtemail").val();
var strcomment = $("#txtcomment").val();
$("#loader").css({ visibility: "visible" });
$.post("Ajax/Send.aspx", { name: strname, email: stremail, comment: strcomment }, function (data) {
$("#loader").css({ visibility: "hidden" });
$("#lblres").text(data);
});
});
});


این یه کد ایجکس هست که من برای خودم نوشتم....اگه توجه کنید اینجا اطلاعات(name: strname, email: stremail, comment: strcomment) به صفحه ی Ajax/Send.aspx پست میشن...وقتی اطلاعات پست شدن در سمت سرور و در قسمت کد صفحه ی Send.aspx باید اطلاعات پست شده رو بخونیم و جواب رو دوباره ارسال کنیم.


string strName = Request.Form["Name"];
string strEmail = Request.Form["Email"];
string strComment = Request.Form["Comment"];
if (strName != null && strEmail != null && strComment != null && strName != "" && strEmail != "" && strComment != "")
{
Response.Write("نظر شما ثبت شد");
}
else
{
Response.Write("پارامتر های ارسالی صحیح نیستند");
}
}
catch (Exception err)
{
Response.Write(err.Message);
}



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

چطور میتونم به خصوصیات کنترل های asp.net ( مثلا text در lable ) دسترسی داشته باشم
برای این که سمت کلاینت به کنترول های سمت سرور دسترسی داشته باشید باید خاصیت StaticMode (نمیدونم دقیقا همینه یا نه) کنترول رو فعال کنید(رو کنترول کلیک کنید توی قسمت پروپرتیس)

amir_T_2008
جمعه 30 آبان 1393, 17:23 عصر
سلام




$(document).ready(function () {
$("#btnsend").click(function () {
var strname = $("#txtname").val();
var stremail = $("#txtemail").val();
var strcomment = $("#txtcomment").val();
$("#loader").css({ visibility: "visible" });
$.post("Ajax/Send.aspx", { name: strname, email: stremail, comment: strcomment }, function (data) {
$("#loader").css({ visibility: "hidden" });
$("#lblres").text(data);
});
});
});


این یه کد ایجکس هست که من برای خودم نوشتم....اگه توجه کنید اینجا اطلاعات(name: strname, email: stremail, comment: strcomment) به صفحه ی Ajax/Send.aspx پست میشن...وقتی اطلاعات پست شدن در سمت سرور و در قسمت کد صفحه ی Send.aspx باید اطلاعات پست شده رو بخونیم و جواب رو دوباره ارسال کنیم.


string strName = Request.Form["Name"];
string strEmail = Request.Form["Email"];
string strComment = Request.Form["Comment"];
if (strName != null && strEmail != null && strComment != null && strName != "" && strEmail != "" && strComment != "")
{
Response.Write("نظر شما ثبت شد");
}
else
{
Response.Write("پارامتر های ارسالی صحیح نیستند");
}
}
catch (Exception err)
{
Response.Write(err.Message);
}



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

برای این که سمت کلاینت به کنترول های سمت سرور دسترسی داشته باشید باید خاصیت StaticMode (نمیدونم دقیقا همینه یا نه) کنترول رو فعال کنید(رو کنترول کلیک کنید توی قسمت پروپرتیس)

دوست عزیز اگر براتون مقدوره لطفا یک سورس هم قرار بدید چون مطمئنم خیلی ها دنبال همچین آموزشی هستن

ممنون

Mohammad_dn
جمعه 30 آبان 1393, 17:42 عصر
اینو من قبلا برای یه نفر دیگه درست کرده بودم...اینجا میزارم شاید به دردتون خورد

sg.programmer
جمعه 30 آبان 1393, 17:53 عصر
تشکر مهندس عالی بود