Yahoo! UI Library3(YUI3)の標準オブジェクト
Yahoo! UI Library Ver.3 を使ってみよう(3)
ダウンロード サンプルファイル (4.5 KB)
待ち行列処理
待ち行列に関する処理はモジュールyuiのクラスQueueにまとめられています。Queueは先入れ先出し方式で行列を作ります。バス停などの行列のように、先に並んだ人が先に乗る(目的を達成する)ことができる行列です。
データの入力するところが2箇所以上あり、入力データによる計算処理は1箇所でしかできない場合など、先に来たデータから処理をしたいとき待ち行列が使われます。待ち行列の処理は入力タイミングと出力タイミングが同期しなくても処理ができるメリットがあります。
待ち行列処理の一覧
Queueクラスに含まれるメソッドは、以下の通りです。
| メソッド | 引数 | 概要 |
|---|---|---|
| add(o) | o:オブジェクト | 要素を待ち行列に追加 |
| next() | なし | 取り出せる要素を取得 |
| remove() | なし | 取り出せる要素を除去する |
| size() | なし | 現在待ちの要素数を取得 |
待ち行列に要素を追加したり、取り出したり、除去などを行うメソッド類です。
待ち行列処理の書き方
4個の要素を順不同にクリックして、クリックした順に取り出す例題を考えてみました。下図は実行画面と4個の要素をクリックしたところです。


YUI().use('node', function(Y) {
var button1 = Y.one('#button');
var d1 = Y.one('#demo1');
var d2 = Y.one('#demo2');
var d3 = Y.one('#demo3');
var d4 = Y.one('#demo4');
var o = Y.one('#out');
var q =new Y.Queue(); //(1)
var s="";
var d;
//(2)
d1.on('click', function(e) {q.add(d1); s=s+d1.get('text'); o.set('text',s); });
d2.on('click', function(e) {q.add(d2); s=s+d2.get('text'); o.set('text',s); });
d3.on('click', function(e) {q.add(d3); s=s+d3.get('text'); o.set('text',s); });
d4.on('click', function(e) {q.add(d4); s=s+d4.get('text'); o.set('text',s); });
button1.on('click', function(e) {
s="";
if(q.size() !=0){
d=q.next(); //データの取り出し(3)
o.set('text',d.get('text'));
}else{
o.set('text',s);
}
});
});
</script>
...中略...
<body>
<input type="button" value="押してください" id='button'><br>
<div id='demo1'>東</div>
<div id='demo2'>西</div>
<div id='demo3'>南</div>
<div id='demo4'>北</div>
<br>
<div id=out>セットデータ</div>
</body>
(1)はQueueの宣言です。今回qとしました。(2)以下で要素をクリックする時、待ち行列に追加しています。ボタンを押すと、(3)でデータを取り出しています。
例題は4個クリックして後、ボタンを4回押して確認するものです。
この記事は参考になりましたか?
- Yahoo! UI Library Ver.3 を使ってみよう連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 横塚 利津子(ヨコツカ リツコ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
