use animation best practices in dbmon

This commit is contained in:
Leo Horie 2016-12-02 20:44:03 -05:00
parent 2f7c4983f3
commit 4a4bd7a548
8 changed files with 48 additions and 2299 deletions

View file

@ -4,48 +4,48 @@ perfMonitor.startMemMonitor()
perfMonitor.initProfiler("render")
var vm = new Vue({
el: '#app',
data: {
databases: [],
},
methods: {
update: function () {
this.databases = ENV.generateData().toArray()
setTimeout(this.update.bind(this), ENV.timeout)
el: '#app',
data: {
databases: [],
},
methods: {
update: function () {
requestAnimationFrame(this.update.bind(this))
this.databases = ENV.generateData().toArray()
if (renderStage === 0) {
renderStage = 1
perfMonitor.startProfile('render')
}
},
},
updated: function () {
if (renderStage === 1) {
renderStage = 0
perfMonitor.endProfile('render')
}
},
template: '<div>' +
'<table class="table table-striped latest-data">' +
'<tbody>' +
'<tr v-for="db of databases">' +
'<td class="dbname">{{ db.dbname }}</td>' +
'<td class="query-count">' +
'<span v-bind:class="[ db.lastSample.countClassName ]">' +
'{{ db.lastSample.nbQueries}}' +
'</span>' +
'</td>' +
'<td v-for="q of db.lastSample.topFiveQueries" v-bind:class="[ q.elapsedClassName ]">' +
'{{ q.formatElapsed }}' +
'<div class="popover left">' +
'<div className="popover-content">{{ q.query }}</div>' +
'<div className="arrow"></div>' +
'</div>' +
'</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
'</div>',
if (renderStage === 0) {
renderStage = 1
perfMonitor.startProfile('render')
}
},
},
updated: function () {
if (renderStage === 1) {
renderStage = 0
perfMonitor.endProfile('render')
}
},
template: '<div>' +
'<table class="table table-striped latest-data">' +
'<tbody>' +
'<tr v-for="db of databases">' +
'<td class="dbname">{{ db.dbname }}</td>' +
'<td class="query-count">' +
'<span v-bind:class="[ db.lastSample.countClassName ]">' +
'{{ db.lastSample.nbQueries}}' +
'</span>' +
'</td>' +
'<td v-for="q of db.lastSample.topFiveQueries" v-bind:class="[ q.elapsedClassName ]">' +
'{{ q.formatElapsed }}' +
'<div class="popover left">' +
'<div className="popover-content">{{ q.query }}</div>' +
'<div className="arrow"></div>' +
'</div>' +
'</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
'</div>',
})
vm.update()