傳統 <applet> 標籤在 JVM 啟動、類下載、驗證、初始化期間,瀏覽器會顯示一塊難看的灰色矩形,用戶無法得知載入進度,體驵極差。
<body onload="init()">
<!-- 第 1 層:載入提示,初始可見 -->
<div id="loading" style="position:absolute; left:150px; top:10px;">
正在載入 Java Applet,請稍候...
</div>
<!-- 第 2 層:Applet 容器,初始隱藏 -->
<div id="myapplet" style="position:absolute; left:150px; top:10px; visibility:hidden;">
<applet code="charts.charts.class" archive="charts.jar"
width="600" height="400" viewastext>
<param name="xValue" value="...">
<param name="yValue" value="...">
</applet>
</div>
</body>
<script language="JavaScript">
function init() {
// IE: document.all 在頁面所有資源(含 Applet)下載完成後為真
if (document.all) {
document.all.loading.style.visibility = "hidden";
document.all.myapplet.style.visibility = "visible";
document.applets[0].repaint(); // 強制重繪
}
// Netscape 6+ / Mozilla
else {
document.loading.visibility = "hide";
document.myapplet.visibility = "show";
}
}
</script>
left/top 必須完全一致,實現無縫切換。document.layerName.visibility;現代瀏覽器建議改用 document.getElementById() 統一 API。<object> + deployJava.js(Oracle 官方部署工具)實現更豐富的載入進度條、版本檢測、自動安裝 JRE。loading 層內嵌入動畫 GIF 或 CSS 動畫提升視覺反饋。