34 lines
856 B
JavaScript
34 lines
856 B
JavaScript
const Banner = {
|
|
data: function () {
|
|
return {
|
|
url: 'https://neckbeard.xyz',
|
|
imageUrl: '/static/banner.png',
|
|
imageSrc: '/static/banner.png',
|
|
timer: ''
|
|
}
|
|
},
|
|
created () {
|
|
this.updateBanner()
|
|
this.timer = setInterval(this.updateBanner, 300000)
|
|
},
|
|
beforeDestroy () {
|
|
clearInterval(this.timer)
|
|
},
|
|
methods: {
|
|
updateBanner () {
|
|
const componentThis = this
|
|
const req = new XMLHttpRequest()
|
|
req.addEventListener('load', function () {
|
|
const json = JSON.parse(this.responseText)
|
|
componentThis.url = json.bannerUrl
|
|
console.log('new banner: ' + componentThis.url)
|
|
componentThis.imageSrc = componentThis.imageUrl + '?bustcache=' + (new Date()).getTime()
|
|
})
|
|
req.open('GET', '/static/config.json')
|
|
req.send()
|
|
}
|
|
}
|
|
}
|
|
|
|
export default Banner
|