熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

優化Java applets 加載過程

2013-11-23 19:30:20  來源: Java核心技術 

  大家知道在java applet還沒有全部加載的時候IE或Netscape會在applet對應的區域顯示一塊灰色的區域您有沒有想過用其他的方式代替它呢?
  本文介紹了如何利用JavaScript 實現在加載java applet時候顯示一段消息比如請稍候之類的話該段代碼可以在IE和Netscape運行
  下面的代碼就可以解決這個問題
  <html>
  <head>
  <title>Your Title Here</title>
  </head>
  <script language=JavaScript
  <! Hide script from old browsers
  function init()
  {
  // Microsoft Internet Explorer
  if (documentall)
  {
  documentallloadingstylevisibility=hidden;
  documentallmyappletstylevisibility=visible;
  documentapplets[]repaint();
  }
  // Netscape Navigator
  else
  {
  documentloadingvisibility=hide;
  documentmyappletvisibility=visible;
  }
  }
  //
  </script>
  
  <style type=text/css
  #loading {
  position:absolute;
  left:;
  top:;
  }
  #myapplet {
  position:absolute;
  left:;
  top:;
  visibility:hide;
  }
  </style>
  <body onLoad=init()
  <div id=loading
  <p>Please wait while Java applet loads</p>
  </div>
  <div id=myapplet
  <applet archive=appjar code=appclass align=baseline width= height=
  <p>Requires a browser that supports Java</p>
  </applet>
  </div>
  </body>
  </html>
  解釋
  首先讓我們來看看我們真正想做的是什麼 其實我們只不過希望把下載java程序過程中的不雅觀的灰塊去掉以一些消息如正在載入請稍候之類的畫面蓋住原來的灰色區域而一旦java加載完畢馬上把該區域恢復為applet可見
  上面的javascript代碼就是實現了這個目的的一個實例
  下面讓我來逐條解釋一下我們是如何實現的
  首先請看以下部分
  <div id=loading
  <p>Please wait while Java applet loads</p>
  </div>
  <div id=myapplet
  <applet archive=appjar code=appclass align=baseline width= height=
  <p>Requires a browser that supports Java</p>
  </applet>
  </div>
  正如您所見到的我用了個層第一個層(id為loading)可以寫上一些提示消息而第個層(id為myapplet)在一開始是不可見的當applet下載好了馬上把第個層顯示出來並把第一個層設為不可見因此只要這個層大小位置必須完全一致就可以實現我們的目標下面是對不同的層的屬性描述代碼
  <style type=text/css
  #loading {
  position:absolute;
  left:;
  top:;
  }
  #myapplet {
  position:absolute;
  left:;
  top:;
  visibility:hide;
  }
  </style>
  好現在我們只差最後一個問題需要解決如何知道applet已經完全下載了呢?在IE和netscape中都有提供documentall這個屬性當應頁面的全部內容(包括applets圖片聲音等)已經下載後該屬性為真這樣我們只需監測documentall是否為真如果是那就可以把消息所在的層設為不可見而applet所在的層設為可見並刷新applet的顯示(因為先前applet的顯示被隱藏了)否則則相反處理
  這是處理後的代碼
  <script language=JavaScript
   function init()
   {
    if (documentall)
    {
     documentallloadingstylevisibility=hidden;
     documentallmyappletstylevisibility=visible;
     documentapplets[]repaint();
    }
    else
    {
     documentloadingvisibility=hide;
     documentmyappletvisibility=visible;
    }
   }
  </script>
  大功告成其實用這個辦法同樣適用於用含有圖片蓋住applet直到applet開始運行為止如何處理我想聰明的你一定已經知道答案了
  
  
  
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26997.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.