Client側JavaScriptでのQueuingのSample

前回の投稿で、個人的に使用しているキューイングのコードを記載した。

blog.umibashira.com

書いていて、色々改善点があるなぁと思ったので、改良版を作ってみた。 記事の末尾に記載した、ループ変数等、キュー生成時の値を使用する場合に色々と工夫しないといけない点が、こちらの方が自然に解決できているように思う。

以下がサンプル。

<!DOCTYPE html>
<html><head></head><body><script language="javascript">
<!--
"use strict";

/*** QUEUE ***/
var $Q = [];
var interval = 0;
function qClear() { $Q = [] }

Function.prototype.qLast = function() {
   this.args = arguments;
   $Q.push(this);
}

Function.prototype.qFirst = function() {
   this.args = arguments;
   $Q.unshift(this);
}

/*** TIMER ***/
function ontimeout() {
   try {
       if ($Q.length>0) {
           var f = $Q.shift();
           f.apply(null, f.args);
       }
   } catch (e) {
       console.log(['ontimeout:', e.description].join(''));
   }
}
window.setInterval(ontimeout, interval);

/*** Test Code ***/
function test() {
   for ( var i=0; i<10; i++ ) {
       for ( var j=0; j<10; j++ ) {
           +function(i, j) {
               console.log([i,j].join(':'));
           }.qLast(i, j);
       }
   }
}

window.onload = test;
-->
</script></body></html>
© 2009-2017 Osajiru All Rights Reserved.