XIAOBAIMAO233(留言 | 贡献) 无编辑摘要 |
XIAOBAIMAO233(留言 | 贡献) 无编辑摘要 |
||
| 第1行: | 第1行: | ||
( function () { | ( function () { | ||
var el = document.getElementById( 'xh-server-status' ); | function run() { | ||
var el = document.getElementById( 'xh-server-status' ); | |||
if ( !el ) return; | |||
var ctrl = new AbortController(); | |||
var timer = setTimeout( function () { ctrl.abort(); }, 6000 ); | |||
fetch( 'https://api.mcsrvstat.us/3/game.xhcity.top', { | |||
signal: ctrl.signal, | |||
cache: 'no-store' | |||
} ) | } ) | ||
.then( function ( r ) { | |||
clearTimeout( timer ); | |||
if ( !r.ok ) throw new Error( r.status ); | |||
return r.json(); | |||
} ) | |||
.then( function ( data ) { | |||
if ( data.online ) { | |||
var online = data.players ? data.players.online : 0; | |||
var max = data.players ? data.players.max : '?'; | |||
el.innerHTML = '<span style="color:#17b3a8; font-weight:700;">● 服务器运行中</span>' + | |||
' · 在线人数:<b style="color:#111827;">' + online + '</b> / ' + max; | |||
} else { | |||
} ); | el.innerHTML = '<span style="color:#d22; font-weight:700;">● 服务器已离线</span>'; | ||
} | |||
} ) | |||
.catch( function () { | |||
el.innerHTML = '<span style="color:#9ca3af;">● 状态暂时无法获取</span>'; | |||
} ); | |||
} | |||
/* 等首屏空闲后再请求,避免和页面渲染抢资源 */ | |||
if ( 'requestIdleCallback' in window ) { | |||
requestIdleCallback( run, { timeout: 3000 } ); | |||
} else { | |||
setTimeout( run, 1500 ); | |||
} | |||
} )(); | } )(); | ||
2026年9月23日 (三) 20:06的版本
( function () {
function run() {
var el = document.getElementById( 'xh-server-status' );
if ( !el ) return;
var ctrl = new AbortController();
var timer = setTimeout( function () { ctrl.abort(); }, 6000 );
fetch( 'https://api.mcsrvstat.us/3/game.xhcity.top', {
signal: ctrl.signal,
cache: 'no-store'
} )
.then( function ( r ) {
clearTimeout( timer );
if ( !r.ok ) throw new Error( r.status );
return r.json();
} )
.then( function ( data ) {
if ( data.online ) {
var online = data.players ? data.players.online : 0;
var max = data.players ? data.players.max : '?';
el.innerHTML = '<span style="color:#17b3a8; font-weight:700;">● 服务器运行中</span>' +
' · 在线人数:<b style="color:#111827;">' + online + '</b> / ' + max;
} else {
el.innerHTML = '<span style="color:#d22; font-weight:700;">● 服务器已离线</span>';
}
} )
.catch( function () {
el.innerHTML = '<span style="color:#9ca3af;">● 状态暂时无法获取</span>';
} );
}
/* 等首屏空闲后再请求,避免和页面渲染抢资源 */
if ( 'requestIdleCallback' in window ) {
requestIdleCallback( run, { timeout: 3000 } );
} else {
setTimeout( run, 1500 );
}
} )();