رفتن به مطلب

مشکل کروم با 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);

});

 

 

لینک به ارسال

سلام

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

لینک به ارسال

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

    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())

    });

 

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...