رفتن به مطلب

مشکل کروم با setinterval


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

سلام
در جی کوئری وقتی از setinterval استفاده می کنم مثلا برای ساخت اسلایدر، در مرورگر کروم زمانبندی درست انجام نمی شود. یعنی وقتی مثلا نیم ساعت سیستم رو رها می کنم و برمیگردم میبینم اسلایدر داره تند اجرا می شود. بنظرتون برای ساخت اسلایدر از چه راهی استفاده کنم که این مشکل پیش نیاد؟

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

لینک به ارسال

سلام

ببینید شما تو جی کوئری 2 تا گزینه بیشتر نداری. یا setinterval یا settimeout که عموما خودم از دومی استفاده می کنم. اما در کل مشکلی که شما میگید باید به نوع کدنویسی تون ربط داشته باشه. اگه لینک آنلاین کدتون رو بدید دقیق تر می تونم راهنمایی کنم. چون شما در حین کار سرعت interval رو که دست کاری نمی کنید! 

لینک به ارسال

مشکل من عینا در اینجا مطرح شده ولی نتونستم حلش کنم:

https://stackoverflow.com/questions/6951727/setinterval-not-working-properly-on-chrome

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

https://adsl.tci.ir/panel/

پ ن : ست تایم اوت هم همین مشکل ست اینتر ول رو داره.

این هم کدهای خودم:

$(document).ready(function () {

    var left = $('#slider').find('.left');
    var nav = $('#slider .right').find('a');
    var itemNext = 1;

    function slider() {
        if (itemNext > left.length) {
            itemNext = 1;
        }
        left.hide();
        left.eq(itemNext - 1).fadeIn(500);
        nav.removeClass('active');
        nav.eq(itemNext - 1).addClass('active');
        itemNext++;
    };
    $('#slider .right a').click(function () {
            var index = $(this).index();
            itemNext = index + 1;
            slider();
        }
    );
    slider();
    setInterval(slider, 2500);

});

 

 

لینک به ارسال

سلام

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

  • امتیاز 1
لینک به ارسال

این کارو کردم. ولی چرا جواب نمیده؟ اشکال کارم کجاست؟

    var next = 0;
    function slider() {
        if (next < 4) {
            $('img').hide();
            $('img').eq(next).show();
            next++;
        } else {next = 0;}
    }

    window.addEventListener('focus', function () {
        document.title = 'focused';
        setInterval(slider, 1000);
    });
    window.addEventListener('blur', function () {
        document.title = 'not focused';
        clearInterval(slider())

    });

 

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...