আমার কাছে setInterval
30 সেকেন্ডে 30 বার কোড চলছে। এটি দুর্দান্ত কাজ করে, তবে যখন আমি অন্য ট্যাবটি নির্বাচন করি (যাতে আমার কোড সহ ট্যাবটি নিষ্ক্রিয় হয়ে যায়), setInterval
কোনও কারণে অলস অবস্থায় সেট করা থাকে।
আমি এই সরলীকৃত পরীক্ষার কেসটি তৈরি করেছি ( http://jsfiddle.net/7f6DX/3/ ):
var $div = $('div');
var a = 0;
setInterval(function() {
a++;
$div.css("left", a)
}, 1000 / 30);
আপনি যদি এই কোডটি চালান এবং তারপরে অন্য ট্যাবে স্যুইচ করেন, কয়েক সেকেন্ড অপেক্ষা করুন এবং ফিরে যান, অ্যানিমেশনটি অন্য পাতায় স্যুইচ করার সময় যখন ছিল তখনই এটি অবিরত থাকবে। সুতরাং ট্যাবটি নিষ্ক্রিয় থাকলে সেকেন্ডে 30 বার অ্যানিমেশন চলমান না isn't setInterval
ফাংশনটি প্রতি সেকেন্ডে যে পরিমাণ সময় বলা হয় তা গণনা করে এটি নিশ্চিত করা যায় - ট্যাবটি নিষ্ক্রিয় থাকলে এটি 30 হবে না তবে কেবল 1 বা 2 হবে।
আমার ধারণা, পারফরম্যান্সের উন্নতি করতে ডিজাইনের মাধ্যমে এটি করা হয়েছে তবে এই আচরণটি অক্ষম করার কোনও উপায় আছে কি? এটি আমার দৃশ্যে আসলে একটি অসুবিধা।
Date
। যাতে অন্তরগুলি যখন দ্রুত জ্বলে না যায় (এই বা অন্যান্য কারণে) অ্যানিমেশনটি কেবল ধীর হয়ে যায়, ধীর হয় না।
Date
অবজেক্টের সাথে একসাথে হ্যাক না করেন তা দেখতে সত্যিই কোন সময় কেটে গেছে।