PDA

View Full Version : سوال: ارسال پیام با استفاده از AJAX



meisam12
پنج شنبه 12 مرداد 1391, 13:08 عصر
سلام دوستان
من می خواهم یک برنامه بنویسم که مثلاً مدیر سایت خواست یک پیام و یا هر چیز دیگری به اعضا داد این پیغام به کاربر اعلان شود من شنیدم که باید از تکنولوژی AJAX استفاده کرد.
می شود یک راهنمایی کنید.
ممنونم.

smhz777
پنج شنبه 12 مرداد 1391, 14:00 عصر
سلام
دوست عزیز AJAX کارش اینه که به شما امکان میده به جای تمام صفحه با استفاده از کدها و افکت های جاوا یک قسمت کوچک صفحه رو از سرور باز خوانی کنی
در کل شما اول باید برنامه ای که در نظر داری با asp بنوسی وبعد با ajax بهش زیبایی و افکت ... بدی

meisam12
پنج شنبه 12 مرداد 1391, 14:19 عصر
من می خواستم سورسش را بدانم چگونه می شود نوشت

سلام
دوست عزیز AJAX کارش اینه که به شما امکان میده به جای تمام صفحه با استفاده از کدها و افکت های جاوا یک قسمت کوچک صفحه رو از سرور باز خوانی کنی
در کل شما اول باید برنامه ای که در نظر داری با asp بنوسی وبعد با ajax بهش زیبایی و افکت ... بدی

meisam12
پنج شنبه 12 مرداد 1391, 21:18 عصر
سلام دوستان
من می خواهم پروژه ای بنویسم که فرضاً یک پیام خصوصی به کاربر x بدهم مشکل من این است که چگونه و با چه دستوری می شود این کار را کرد.
سیستم پیام خصوصی همین سایت برنامه نویس این گونه است یعنی اگر پیام جدیدی بیاید یک گزینه ای می آید و می توان پیام را دید. در واقع یک نوع سیستم اعلان می باشد.
اگر می شود کمک کنید؟

meisam12
جمعه 13 مرداد 1391, 13:27 عصر
سلام دوستان
کسی نمی تونه راهنمایی کنه . خیلی حیاتیه ؟

M.KH-SH
جمعه 13 مرداد 1391, 18:14 عصر
دوست عزیز الان شما 2 راه حل داری 1) استفاده از ایمیل : یعنی اینکه شما به کاربری که میخوای ایمیل ارسال کنی
2) یک جدول بسازی و در اون ستون هایی با این موارد باشه ::: id,id_user_send,if_user_recive_,subject,body,readi ng و شما میتونی با توجه به خواسته خودت اینا رو زیاد کنی

حالا باید چی کار کنی :: شما یک بخش رو طراحی میکنی که کاربران به هم پیغام ارسال کنن مثل همین سایت و بتونن پیام های ارسالی رو مدیریت کنن

حالا شما میایی برای هر کاربر که یک id داره استفاده میکنی به این شکل مثلا کاربر شما 200 به کاربر شماره 35 پیغام ارسال کرده و این در بانک به ثبت میرسه (در این روش نمیشه پاک کرد اگه میخوای قابلیت اینو هم بدی پیام ها هم پاک بشه باید 2 تا جدول درست کنی و اینرجوین بدی)

دوست عزیز کلا با یک شرط میتونی مدیریت کنی مثلا ایدی شما 200 و ایدی من 35 هستش که اول کد شما برای نمایش پیغام میشه :::

select * from tb_mail where id_user_send=200
کد بالا تمام پیغام های ارسالی شما رو نمایش میده
select * from tb_mail where id_send_recive=200
این کد هم تمام پیغام های ورودی شما رو نمایش میده

حالا با بخش reading که نوشتم هم میتونی با یک 0و 1 ساده یا true , false نمایش بدی که این پیغام خوانده شده یا نه

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


این توضیح خیلی کوتاه برای یک سیستم ارسال پیغام در سایت بود که من پیشنهاد می کنم از سیستم 2 جدول استفاده کنی چون مدیریت خیلی راحت تری به کاربر میدی اینجوری کاربران میتونن پیغام های ارسالی خودشونو پاک کنن ولی در روش اول به محض پاک کردن مثلا ارسال کننده دیگه دریافت کننده قادر به دیدن پیام نیست و بلعکس

اگه هم از ایمیل خواستی استفاده کنی که یا خودت بنویس کدش رو یا اگه نه از http://www.tellbook.ir استفاده کن و کارت رو سریعتر راه بنداز

نمونه برنامه هم داخلش هست برای پر کردن متد ها

سئوال بود در خدمت هستم

meisam12
شنبه 14 مرداد 1391, 00:46 صبح
سلام
از جوابتان متشکرم
اما سوال من در مورد نحوه ساخت جدول و یا ارسال ایمیل نبود.
سوال من این است که اگر فرضاً یک پیام من به شما بدهم یک اعلان یا پیغامی مبنی بر اینکه که اگر فرضاً دکمه ok را کلیک کنید شما را به صفحه پیغام ارسال کند.
در واقع همین سایت از این تکنیک استفاده می کند و من هم دقیقاً می خواهم از این روش استفاده کنم.
من فکر می کنم که از تکنیک ajax استفاده کرده اند چون بدون اینکه صفحه postback شود یک جاوا اسکریپت اجرا می شود.
اگر ممکن است باز هم مرا راهنمایی فرمایید.
متشکرم از لطفتان.

دوست عزیز الان شما 2 راه حل داری 1) استفاده از ایمیل : یعنی اینکه شما به کاربری که میخوای ایمیل ارسال کنی
2) یک جدول بسازی و در اون ستون هایی با این موارد باشه ::: id,id_user_send,if_user_recive_,subject,body,readi ng و شما میتونی با توجه به خواسته خودت اینا رو زیاد کنی

حالا باید چی کار کنی :: شما یک بخش رو طراحی میکنی که کاربران به هم پیغام ارسال کنن مثل همین سایت و بتونن پیام های ارسالی رو مدیریت کنن

حالا شما میایی برای هر کاربر که یک id داره استفاده میکنی به این شکل مثلا کاربر شما 200 به کاربر شماره 35 پیغام ارسال کرده و این در بانک به ثبت میرسه (در این روش نمیشه پاک کرد اگه میخوای قابلیت اینو هم بدی پیام ها هم پاک بشه باید 2 تا جدول درست کنی و اینرجوین بدی)

دوست عزیز کلا با یک شرط میتونی مدیریت کنی مثلا ایدی شما 200 و ایدی من 35 هستش که اول کد شما برای نمایش پیغام میشه :::

select * from tb_mail where id_user_send=200
کد بالا تمام پیغام های ارسالی شما رو نمایش میده
select * from tb_mail where id_send_recive=200
این کد هم تمام پیغام های ورودی شما رو نمایش میده

حالا با بخش reading که نوشتم هم میتونی با یک 0و 1 ساده یا true , false نمایش بدی که این پیغام خوانده شده یا نه

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


این توضیح خیلی کوتاه برای یک سیستم ارسال پیغام در سایت بود که من پیشنهاد می کنم از سیستم 2 جدول استفاده کنی چون مدیریت خیلی راحت تری به کاربر میدی اینجوری کاربران میتونن پیغام های ارسالی خودشونو پاک کنن ولی در روش اول به محض پاک کردن مثلا ارسال کننده دیگه دریافت کننده قادر به دیدن پیام نیست و بلعکس

اگه هم از ایمیل خواستی استفاده کنی که یا خودت بنویس کدش رو یا اگه نه از http://www.tellbook.ir استفاده کن و کارت رو سریعتر راه بنداز

نمونه برنامه هم داخلش هست برای پر کردن متد ها

سئوال بود در خدمت هستم

M.KH-SH
شنبه 14 مرداد 1391, 00:53 صبح
دوست عزیز شما در هر فرم لود باید کوئری بنویسی به این صورت :::: select count(id) from tb_mail where id_user_recive=id_karbar and reading=false رو بگیری و اگه یک مقدار از 0 بیشتر بود خوب مقدار رو در یک پیام نمایش بده و لینک صفحه پیام ها رو هم در دکمه ok بنویس اگه هم نه به کارت ادامه بده

راستی یادم رفت بگم که این reading رو به معنای پیام خوانده شده اینجا نوشتم و پیام خوانده شده مقدار true و خوانده نشده false هستش

meisam12
شنبه 14 مرداد 1391, 03:14 صبح
باز هم منظور من این نبود.
این چیزی که شما می گید در رویداد لود صفحه بنویسم زمانی است که عمل postback انجام گیرد ولی من نمی خواهم فقط با عمل postback انجام بگیرد . چون شاید کاربر دارد در صفحه ای مطالبی می خواند و در همان لحظه ای که صفحه postback نمی شود یک پیام بیاید و کاربر هم به مدت طولانی در آن صفحه بخواهد بماند من می خواهم بدون عمل postback یک پیغام مبنی بر اینکه یک پیام جدید آمده است به او بدهد و او از اینکه پیام برایش آمده مطلع گردد.
با تشکر

دوست عزیز شما در هر فرم لود باید کوئری بنویسی به این صورت :::: select count(id) from tb_mail where id_user_recive=id_karbar and reading=false رو بگیری و اگه یک مقدار از 0 بیشتر بود خوب مقدار رو در یک پیام نمایش بده و لینک صفحه پیام ها رو هم در دکمه ok بنویس اگه هم نه به کارت ادامه بده

راستی یادم رفت بگم که این reading رو به معنای پیام خوانده شده اینجا نوشتم و پیام خوانده شده مقدار true و خوانده نشده false هستش

M.KH-SH
شنبه 14 مرداد 1391, 10:34 صبح
خوب از تایمر و updatepanel استفاده کن مشکل حل میشه بخش پیغام رسانی هم دیگه خودت بنویس اون چیزی نداره 2تا دستور هستش

meisam12
شنبه 14 مرداد 1391, 12:47 عصر
با تشکر از شما دوست عزیز که این قدر در جواب دادن سوالات کوشا هستید.

خوب از تایمر و updatepanel استفاده کن مشکل حل میشه بخش پیغام رسانی هم دیگه خودت بنویس اون چیزی نداره 2تا دستور هستش

meisam12
شنبه 14 مرداد 1391, 16:13 عصر
ببخشید این قدر سوال می کنم
ولی اگر از timer استفاده کنم که خیلی به هاست فشار وارد می کند. چون به ازای هر صفحه باید تایمر مدام فعال باشد و چک کند آیا پیامی آمده است یا نه؟
من می خواهم این آگاه سازی از سوی کسی که پیام می فرستدباشد.
ممنون می شوم اگر راهنمایی بیشتری کنید.

خوب از تایمر و updatepanel استفاده کن مشکل حل میشه بخش پیغام رسانی هم دیگه خودت بنویس اون چیزی نداره 2تا دستور هستش

M.KH-SH
شنبه 14 مرداد 1391, 18:15 عصر
دوست عزیز خواهش میکنم
این مورد برمیگرده به برنامه نویسی شبکه که فکر نکنم به دردسر این مورد بی ارزه ولی میتونی با استفاده از سوکت نویسی برنامه نویسی سرور کلاینت این کار رو انجام بدی

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

mahmood_4246
سه شنبه 17 مرداد 1391, 02:41 صبح
comet >> تکنولوژی که برای آگاه سازی آنی کاربر هست مثل گوگل فیسبوک و یاهو تو همین سایت 1 یا 2ماه پیش یکی از دوستان تایپکی براش زده بوده و کامل با سورس توضیح داده بود .

M.KH-SH
سه شنبه 17 مرداد 1391, 11:22 صبح
comet<< فشاری بر روی سرور نمییاره؟
اونم سرور های اشتراکی؟
به هر حال همه چیز باید از روی بانک لود بشه و خوانده بشه در نتیجه باید یک واکشی اطلاعات از بانک باشه
درست نمی گم؟

mahmood_4246
شنبه 21 مرداد 1391, 02:34 صبح
این پست رو ببین
http://barnamenevis.org/showthread.php?339317-Comet-%DA%86%D8%B7%D9%88%D8%B1-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D9%85%DB%8C%D8%B4%D9%88%D8%AF-%D8%9F&highlight=comet