رفتن به مطلب
iranwebserver میزبانی وب
irpcpro

مشکل در فشاراومدن به سرور در ارسال Ajax

پست های پیشنهاد شده

سلام .

من یه کد ساده php و ajax و mysql نوشتم ، ک از دو کاربر متن هاشونو میگیره و داخل دیتابیس ذخیره میکنه (سیستم چت آنلاین بین دو کاربر)

همه چیز اوکی هست و کامل کدها نوشته شده .

ولی یه قسمت کد که مربوط به چک کردن داعم دیتابیس هست ک اگه هروقت پیام جدید ارسال شد ، اونو بیاد نمایش بده .

این چک کردن رو هر 3 ثانیه یکبار انجام میده . ولی اینکار فشار سنگینی روی سرور ایجاد میشه .

 

داخل ajax قسمت error هم یه متن نوشتم ک هروقت از سمت سرور مشکلی پیش اومد اون متن رو نمایش بده :

error: function () {
	alert('خطا در سرور . صفحه را مجددا بارگذاری نمایید 70');
}

وقتی سیستم درحال چک کردنه (سایت بازه) ، صفحه رو رفرش میکنم این پیام رو نمایش میده ..

 

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

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

شما سورس رو نزاشتی که بشه بررسی کرد. اما بهترین راهکار برای این مواقع وب سوکت هست

یک آموزش مناسب با PHP گذاشتند در یوتیوب  ، پیشنهادش میکنم. (سورس هم در توضیحات آموزش قرار دادند)

محتوای مخفی

    برای مشاهده لینک ها می بایست در وب سایت عضو باشید!

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون .

بله ، آخه کد چیز خاصی نداره . میخواستم بدونم الگوریتم دقیقش به چه صورت هست برای اینکه به سرور فشار نیاد و همش درخواست به سرور ارسال نشه .

این کد jq هست :

function chat_check_updates(){
    toUserId = 0;
    if($("* div#eachPerCmFromUserDU").length)
        toUserId = $("* div#eachPerCmFromUserDU.activeThisChat").data('iddu');

    $.ajax({
        url         :   ajaxurl,
        type        :   'POST',
        dataType    :   'json',
        cache       :   false,
        data: {
            action  :   'loadingChat',
            'doctor':   DUDI,
            'user'  :   toUserId,
        },
        success: function (response) {
            if(response.msgch != "" && response.msgch != null){
                $("#bgBoxChatsTextDU div#beforeMeAddBox").before(response.msgch);
                ScrollDownChat();
                playSound('get');
            }
            setTimeout(() => { chat_check_updates(); }, 5000);
        },
        error: function () {
            alert('خطا در سرور . صفحه را مجددا بارگذاری نمایید 70');
        }
    });
}

بعد قسمت php هم برای اینکه کامل کل دیتابیس رو جستجو نکنه ، تنها یک table رو بررسی میکنه ک اگه اون مقدار 1 شد ، بفهمه آپدیت جدید هست و کل دیتابیس رو لود کنه .

از این طریق یکم فشار روی سرور رو برداشتم ، ولی نمیدونم کد ajax درست هست ؟

با اینکه درست کار میکنه ، احساس بدی دارم و حتی وقتی صفحه رو رفرش میکنم یا روی لینکی کلیک میکنم (که بره یه صفحه دیگه ) آلرت error رو نمایش میده .

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×