[Bootstrap] モーダルを表示している間に一定時間処理を実行する方法

Boostrapで構築しているアプリで、モーダルを表示している間(一定時間)処理を実行する必要がありました。

#一定時間実行するコード

var time = 600000; // 1分毎
var timer;

// モーダルが開かれた場合
$('.modal').on('show.bs.modal', function() {
    console.log("open");
    uploadDuration();  // first run
    timer = window.setInterval(uploadDuration, time);
});

// モーダルが閉じられた場合
$('.modal').on('hide.bs.modal', function() {
    clearInterval(timer);
    console.log("close");
});

function uploadDuration() {
    console.log("-- start --");
    console.log( new Date() );
    console.log("-- end --");
}

#フックイベント

モーダルウィンドウの動作フックするイベントがあります。
必要に応じて、hidehiddenshowshownを使い分けるといいです。
(以下、Boostrapの公式ドキュメントから引用)

Event Type Description
show.bs.modal This event fires immediately when the show instance method is called. If caused by a click, the clicked element is available as the relatedTarget property of the event.
shown.bs.modal This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the relatedTarget property of the event.
hide.bs.modal This event is fired immediately when the hide instance method has been called.
hidden.bs.modal This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete).
loaded.bs.modal This event is fired when the modal has loaded content using the remote option.