آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

یه سوال در رابطه با ajax فصل 9 ؟

hamid_sub7  11 سال پیش  11 سال پیش
0 0

سلام دوستان چرا وقتی استاد مثلا داره userName رو با ajax به سرور میفرسته تا بررسی بشه و برگرده و true یا false رو نشون بده استاد تو کنترل input مربوط به userName در فرم خیلی راحت و بصورت عادی تایپ میکنن و مشکلی نداره. اما تو پروژه من مشکلی وجود داره! البته منم عین استاد نوشتم و جواب رو درست میده یعنی کاملا درست کار میکنه اما من مثلا میخوام تایپ کنم hamid من تایپ میکنم تموم شده اما میبینم تو input فقط h  رو در لحظه اول و بعد مکث کوتاه a و سپس m و همینطور ادامه میده تا آخر... میدونم بخاطر request و response هایی هست که بین کلاینت و سرور صورت میگیره اما کاملا ایراد بزرگی هست و نمیدونم کجای کار من اشتباه هست. امیدوارم متوجه منظورم شده باشید و خواهشا راهنمایی کنید.

ممنون %

0 0
من متوجه نشدم منظورتو..بیشتر توضیح بده. (11 سال پیش)
0 0
شما ببین یک اینپوت دیگر بساز بدون وصل کردن به دیتابیس ببین باز هم همین مشکل را داری یا خیر؟ حال اگر مشکلکت این نبود سورس برنامه رو بذار فکر میکنم توی خوندن از اس کیو ال ایراد داره (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
hamid_sub7  11 سال پیش
0 0

دوست عزیز BiDak سعی کردم واضح توضیح بدم منظورم اینه که سرعت تایپ شدن تو input text خیلی خیلی کندتر از تایپ با دست من هست! دوست عزیزم mbm124 نه تو input text  دیگه اینطور نیس! و من مطمنم چون دارم به سرور request میدم بصورت همزمان همین باعث مشکل شده است! اما خب من درست عین خود استاد نوشتم و منطقی هستش باز سورس سمت سرورم رو میذارم ببینید و در ضمن درست کار میکنه ها اما کند بسیار کند تایپ میشه !!!

     public function freeNickName(){
        $nickName = $_POST['nickName'];
        $db = new DB();
        $result = $db->query("SELECT * FROM users WHERE nickName='$nickName'");

        $outout = array();


        if(count($result) > 0){
            $outout['isFree'] = false;
        }else{
            $outout['isFree'] = true;
        }

        echo json_encode($outout);
    }
0 0
این سورس خیلی ساده و روان هست فکر نکنم ایراد این باشه باز ممنون میشم راهنمایی کنید % (11 سال پیش)
0 0
دوستان async رو true کردم مشکلم حل شد اما خب چرا استاد false کرده بود اونطوری نبود !؟ (11 سال پیش)
پاسخ به سوال 
کاشی زاده  11 سال پیش
+2 0

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

البته استاد فقط مثالی برای ajax زدن و لزومی نداره شما با وارد کردن هر کارکتر یک درخواست به سرور بزنید .

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

0 0
خیلی ممنون بابت توضیحتون با راهنماییتون کاملا قانع شدم و اینکه گفتید کاملا تایپ بشه و بعد بررسی هم خیلی خوب بود و کاملا منطقی. اما اینکه چرا واسه استاد تو تایپ تاخیر نداشت و واسه من داشت منو اصلا قانع نکرد! میدونم مثال زدن فقط اما خب ماهیت مثال استاد با کار من فرقی نداره آخه! بازم ممنون (11 سال پیش)
+2 0
اینکه مال استاد تاخیر نداشت یکی از علت هاش سرور لوکال بود ، علت دومش تعداد رکورد های کم هست . البته من نمیدونم شما هم روی سرور لوکال کار میکنید یا نه (11 سال پیش)
0 0
من هم رو سرور لوکال و شاید 4 تا رکورد کار کردم و سیستم منم core i 7 و ram 6 هست فکر نمیکنم مشکل سیستمی باشه داداش اینکه گفتید چون بخاطر هر کاراکتر یه request به سرور ارسال میشه response دریافت میکنه قبول دارم دلیلش هم همینه ولی موندم آخه چرا واسه استاد ایجوری نبود؟! به استاد اگه دسترسی دارین ممنون میشم ازشون بپرسید... (11 سال پیش)
+1 0
async بصورت غیر همزمانه.وابسته به سرور نیست و منتظر نمیمونه و هر موقع جواب سرور کامل شد , میفرسته واسه کاربر. یعنی ادامه ی کدها اجرا میشه حتی اگه هنوز جوابی از سمت سرور نیومده باشه. اما اگر false باشه مثل رفرش کردن صفحه میمونه..اسکریپت زمانی ادامه پیدا میکنه که جوابی از سمت سرور دریافت کرده باشه. بنظرم بهتره قسمت اعتبار سنجیو (همون قرمز یا سبز شدن بک اینپوت) بصورت یک فانکشن بنویسی و در قسمت done خود ajax بنویسی. (11 سال پیش)
+1 0
در قسمت done خود ajax اون فانکشنو صدا بزنی. (11 سال پیش)
0 0
دوست عزیز تمام این حرف و توضیحات شما رو میدونم و داداش گلمون محمد حسین هم فرمودند اما حرف من یه چیز دیگه است! میگم چرا استاد از async رو که false کرد اینگونه نشد؟!!! (11 سال پیش)
+1 0
درستشم false بود.async غیر همزمانه... اگه جوابی از سمت سرور هم دریافت نکنه ادامه ی کد اجرا میشه.توو این مدل نوشتن باید sync باشه. در ادامه هم گفتم راه بهترش اینه که بصورت function در بیاری و در قسمت done خود اجاکس اون تابع صدا زده بشه. و async رو هم میتونی true کنی. (11 سال پیش)
0 0
دوست عزیز ممنون از اینکه جواب میدید اما واقعا جواب سوال من این میتونه باشه ؟ من اصلا با درست و غلطش کاری ندارم و دقیقا هم معنای async رو درک کردم اما حرف من چیز دیگه بود! من میگم چرا استاد که اون اشتباه رو کرده بود اونجا true کرده بود باز با کندی تایپ مواجه نشد؟! همین. (11 سال پیش)
0 0
دوست عزیز ممنون از اینکه جواب میدید اما واقعا جواب سوال من این میتونه باشه ؟ من اصلا با درست و غلطش کاری ندارم و دقیقا هم معنای async رو درک کردم اما حرف من چیز دیگه بود! من میگم چرا استاد که اون اشتباه رو کرده بود اونجا true کرده بود باز با کندی تایپ مواجه نشد؟! همین. (11 سال پیش)
+1 0
خوب من اون قسمتو کدشو نگاه کردم. دیگه این ماجرایی که شما میگیدو ندیدم.چون این مبحثو بلد بودم فیلمو میزدم جلو.هنوزم نفهمیدم منظورت چیه.یعنی کسی که اون فیلمو ندیده باشه سخته بفهمه سوالت چی هست. در ضمن true به این معنی نیست که تو این مثال جواب درستو نده.اگر جواب در همون لحظه از سمت سرور برسه با مشکلی مواجه نمیشه. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .