http://programming-10000.hatenadiary.jp/entry/20140105/1388920615
の添削です。
JS のみ記載、未実行なので、何かしらバグがあるかも?
$(function() {
var timerId = 0;
// jQuery オブジェクト生成はコストが高いので極力減らす。繰り返し使うときは変数に保持。
// $ で始まる変数名は jQuery オブジェクトっていう命名ルールは単に好みの問題。
var $input = $('#input');
var $result = $('#result');
// 今どきの jQuery なら on を使いたい。
var $stopBtn = $('#stopBtn').on('click', function() {
clearTimeout(timerId);
// 連打対策の解除。
$startBtn.prop('disabled', false);
});
var $startBtn = $('#startBtn').on('click', function() {
// 1000 ミリ秒待ち中に連打された時の対策
// $stopBtn.trigger('click');
// こっちの連打対策の方がカッコイイかも。prop と attr の違いに注意。
$startBtn.prop('disabled', true);
$.post('/ajax', {
'input': $input.val()
}, function(res) {
$result.append(
'SESSION ID:' + res.session + ' ||| ' +
'MY NAME:' + res.name + '<br />'
);
timerId = setTimeout(function(){
// 1000 ミリ秒後にまたスタートボタンをクリックする。
$startBtn.trigger('click');
}, 1000);
});
// 初回に trigger する事で、ページロード完了時に1回スタートボタンをクリックしたのと同等。
}).trigger('click');
});