تبلیغات :
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 6 از 6

نام تاپيک: چطور وقتي ميل باكسم بازه با ورود ايميل جديد در inbox من بدون refresh كردن ميتونم ببينمش؟

  1. #1
    کاربر فعال انجمن فوتبال داخلی Pejvak61's Avatar
    تاريخ عضويت
    Apr 2006
    محل سكونت
    شهر باران
    پست ها
    1,602

    پيش فرض چطور وقتي ميل باكسم بازه با ورود ايميل جديد در inbox من بدون refresh كردن ميتونم ببينمش؟

    سلام.

    هميشه برام جاي سئوال بوده كه وقتي دارم inbox مثلاً gmail خودمو ميبينم بدون اينكه refresh كنم به محض دريافت ايميل جديد مياد و در ليست inbox من قرار ميگيره. البته من ميدونم كه اين از امكانات AJAX هستش اما طريقه اين كارو درك نميكنم. آيا در فواصل زماني مشخص اقدام به اجراي دستوري ميشه يا اينكه امكانات ديگري هست.

    من طي تحقيقي كه انجام دادم متوجه شدم كه AJAX از شيئي به نام XMLHttpRequest براي رد و بدل كردن ديتا با سرور در پشت صحنه استفاده ميكنه و با responsetext هم خروجي مربوطه را توليد ميكنه. اما اين كه چه طور اين كار انجام ميشه را درك نميكنم به خصوص زماني كه متدهاي open و send بعد از دستور responsetext در كد نويسي قرار ميگيره. حالا در مورد ايميل هم همينطور كي اين فراخواني انجام ميشه كه به محض ورود ايميل جديد در صفحه وب بدون refresh نمايش داده ميشه.

    مثلاً در كد زير :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by Pejvak61; 02-12-2014 at 17:39.

  2. #2
    کاربر فعال انجمن فوتبال داخلی Pejvak61's Avatar
    تاريخ عضويت
    Apr 2006
    محل سكونت
    شهر باران
    پست ها
    1,602

    پيش فرض

    همونطور كه ميدونيد xmlhttp.readyState يك property است كه وضعيت ارتباط را نشون ميده و تابعي كه موقع رخداد onreadystatechange فراخواني ميشه كار اصلي را انجام ميده.

    من با بررسي هايي كه انجام دادم متوجه شدم به شرط وجود يك ارتباط سالم اين رخداد (onreadystatechange) به تعداد 4 بار به وقوع مي پيونده. و تنها در صورتي كه در حالت 4 باشه و وضعيتش هم OK باشه ميشه واكشي اطلاعات را انجام داد.

    اما هيچگاه نديدم كه از سرور به طور مكرر اطلاعاتي درخواست كنه و سرور هم بهش پاسخ بده. به محض تمام شدن ارتباط ديگه همه چي راكد ميمونه.
    گمان ميكنم در اينصورت بايد به طور تصنعي اين پرس و جو را مكرراً ايجاد كنيم كه اون هم با استفاده از دستور window.setTimeout انجام ميشه. در حقيقت تابعي كه اطلاعات را به روز ميكنه توسط اين دستور هر x ميلي ثانيه يك بار اجرا ميشه.

    ولي اين روش چندان ايده آل نيست. من انتظار داشتم راهي وجود داشته باشه كه مثلاً منتظر پاسخ سرور بمونه تا سرور بهش اطلاعات بده نه اينكه در پريود زماني مشخصي تابعي را كه كار واكشي اطلاعات را برعهده داره فراخواني كنيم.
    Last edited by Pejvak61; 06-12-2014 at 14:16.

  3. #3
    آخر فروم باز vahid78's Avatar
    تاريخ عضويت
    Mar 2008
    محل سكونت
    yazd.php
    پست ها
    1,895

    پيش فرض

    درود.

    از تکنیک Comet برای این نوع موارد استفاده میشه.
    Comet در واقع یک راه حل برای دریافت Event از سمت سرور هست
    Comet برای باز نگه داشتن طولانی کانکشن جهت ارسال داده از سرور به مرورگر (یعنی برعکس درخواست های متداول) استفاده میشه و الان هم خیلی از سرویس ها از این روش استفاده میکنند

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  4. این کاربر از vahid78 بخاطر این مطلب مفید تشکر کرده است


  5. #4
    کاربر فعال انجمن فوتبال داخلی Pejvak61's Avatar
    تاريخ عضويت
    Apr 2006
    محل سكونت
    شهر باران
    پست ها
    1,602

    پيش فرض

    درود.

    از تکنیک Comet برای این نوع موارد استفاده میشه.
    Comet در واقع یک راه حل برای دریافت Event از سمت سرور هست
    Comet برای باز نگه داشتن طولانی کانکشن جهت ارسال داده از سرور به مرورگر (یعنی برعکس درخواست های متداول) استفاده میشه و الان هم خیلی از سرویس ها از این روش استفاده میکنند

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

  6. این کاربر از Pejvak61 بخاطر این مطلب مفید تشکر کرده است


  7. #5
    آخر فروم باز vahid78's Avatar
    تاريخ عضويت
    Mar 2008
    محل سكونت
    yazd.php
    پست ها
    1,895

    پيش فرض

    ممنونم دوست عزيز. به شكرانه ي باز شدن اين دريچه ي ارزشمند در صورت پياده سازي موفقيت آميز قطعاً نمونه كدي را جهت يادگيري ديگر دوستان در اينجا قرار خواهم داد.
    پیشتر یکی از دوستان یک نمونه از موارد Comet را انجام داده بودند
    اگر به درد میخوره از این لینک دانلود بفرمایید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. این کاربر از vahid78 بخاطر این مطلب مفید تشکر کرده است


  9. #6
    کاربر فعال انجمن فوتبال داخلی Pejvak61's Avatar
    تاريخ عضويت
    Apr 2006
    محل سكونت
    شهر باران
    پست ها
    1,602

    پيش فرض

    بسيار ممنونم. عالي بود.
    Last edited by Pejvak61; 07-12-2014 at 20:09.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •