<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    John Jiang

    a cup of Java, cheers!
    https://github.com/johnshajiang/blog

       :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
      131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
    更好的Applet體驗:海報幀
    本文是Joshua Marinacci的系列博客A Better Applet Experience中的第二篇,介紹了如何使用海報幀去加快頁面的加載。(2008.11.02最后更新)

        在本系列文章的第一部分中,我向你展示了如何使用設置加載時圖片,包括動態的GIF自旋體圖片。這次,我將向展示如何使用屏幕截圖或海報幀去加快頁面的加載。
        Quicktime電影就有海報幀的思想。電影中的一幀(經常就是其中的第一幀)將會放到該電影出現的地方。當用戶點擊海報幀時,實現的電影才會通過網絡被加載進來。這就能極大地加快該電影所在Web頁面的加載速度。使用少許JavaScript,完全可以為Java Applet實現相同的功能。

    Applet的海報幀
        在研究這個Demo之前,我必須要提到,我個人尚未在IE瀏覽器中測試過這個Demo。如果你發現這個Demo不能在某個瀏覽器中運行,請向錯誤信息發送給我,以便我能更新這個JavaScript。
        基本思想非常的簡單,創建一個div,它包含一個鏈接和一張屏幕截圖。當用戶點擊該鏈接時,我們使用一個新的applet元素去替換頁面中的aimg元素。一旦瀏覽器察覺到了這個新的applet元素,它將下載Java插件并啟動這個Applet。
        這就有一個例子:如果你點擊了這張圖片,一個Applet就會被加載到該圖片所在的位置,并會說"applet loaded"。

    JavaScript
        如下就是這個JavaScript腳本:
    <script>
    function generateInlineAppletTag(appletID, screenshotID) {
        
    var attributes =
     {
            code:'animatedstartup.MainApplet',
            width:
    100
    ,
            height:
    100
    ,
            archive:'http:
    //projects.joshy.org/demos/AnimatedStartup/AnimatedStartup.jar',

            id:'fooApplet'
        };
        
    var parameters =
     {
            image:'http:
    //projects.joshy.org/demos/AnimatedStartup.gif',

            centerImage:'true'
        };
        
        
        
    var appletTag = document.createElement("applet"
    );
        
        
    for (var attribute in
     attributes) {
            appletTag.setAttribute(attribute,attributes[attribute]);
        }
        
        
    if (parameters != '#ff0000' && parameters != null
    ) {
            
    for (var parameter in
     parameters) {
                
    var param = document.createElement("PARAM"
    );
                param.setAttribute(
    "name"
    ,parameter);
                param.setAttribute(
    "value"
    ,parameters[parameter]);
                appletTag.appendChild(param);
            }
        }
        
        
        
    var bodyRef =
     document.getElementById(appletID);
        
    var screenshot =
     document.getElementById(screenshotID);
        bodyRef.removeChild(screenshot);
        bodyRef.appendChild(appletTag);
    }
    </script>
    該腳本的第一部分初始化了兩個哈希表,它們包含了applet元素的屬性與嵌套的param標簽。然后,它會使用document.createElement()方法去創建這個applet,并配置其中的屬性與PARAM元素。到目前為止,還很直接。真正地奇妙之事發生在generateInlineAppletTag函數的最后四行。它使用傳入的appletID參數與包含著上述鏈接與圖片的div元素相聯在一起,然后它會找到并刪除該鏈接,而用新的applet元素去替代這個鏈接。

    HTML
    要使用上述javascript函數,你只需將它放到頁面的頂部,并通過那張屏幕截圖鏈接的href去調用它。在本例中,我使用了:
    <div id="appletDiv">
    <id="screenshot1" href="javascript:generateInlineAppletTag('appletDiv','screenshot1');">
    <img src="http://projects.joshy.org/demos/AnimatedStartup/applet_screenshot.png" border="0"
    />
    </a>
    </div>
    這個div被命名為appletDiv,鏈接被命名為screenshot1。該鏈接的href會調用上述javascript函數,并傳入div與鏈接的名稱。最后該圖片就只是顯示將要運行的Applet的一張屏幕截圖,該圖被一個播放按鈕覆蓋著。就這么簡單,在這里你可以看到完整的javascript和HTML語句。

    結論
    這個javascript只是一個開始。你還能很容易的擴展它,使圖片上能展現關于這個Applet的更多信息。你也可以把這個javascript重寫為一個更加可重用的形式,使它能夠被你的整個站點所共享。
    下次我將向你展示如何使用新的發布工具包去偵測當前已安裝的Java版本,并啟動更新程序。
    重復一遍,如果你在某個平臺或瀏覽器中發現了任何錯誤,請讓我知道,以便更新這個腳本。

    posted on 2008-11-02 10:57 John Jiang 閱讀(1634) 評論(2)  編輯  收藏 所屬分類: Java翻譯 、Applet 、GUI

    評論

    # re: 更好的Applet體驗:海報幀(譯) 2008-11-02 11:20 duduli
    翻譯的啊。 我看了英文就頭暈。并不是因為看不懂,是英文對英文有恐懼癥啦。  回復  更多評論
      

    # re: 更好的Applet體驗:海報幀(譯) 2008-11-02 13:26 Sha Jiang
    > 翻譯的啊。 我看了英文就頭暈。并不是因為看不懂,是英文對英文有恐懼癥啦。
    翻譯的一般,完全是出于學習的目的 :-)  回復  更多評論
      

    主站蜘蛛池模板: 亚洲欧洲日本在线观看| 国产精品亚洲色婷婷99久久精品| 成年人网站免费视频| 亚洲欧美熟妇综合久久久久| 亚洲精品视频在线观看你懂的| 99久热只有精品视频免费看| 国产区图片区小说区亚洲区| 久久亚洲国产成人精品性色| 国产公开免费人成视频| 久久精品中文字幕免费| 国产AV无码专区亚洲AV蜜芽| 久久亚洲精品中文字幕| 亚洲精品成人a在线观看| 精品久久久久成人码免费动漫 | 亚洲国产精品久久丫| 亚洲日本在线观看视频| 青娱乐免费在线视频| 免费人妻无码不卡中文字幕系 | 国产亚洲福利一区二区免费看| 粉色视频在线观看www免费| 亚洲精品一级无码鲁丝片| 国产成人无码区免费网站| 亚洲第一精品电影网| 成人毛片视频免费网站观看| 亚洲精品人成网线在线播放va | 亚洲精品视频在线看| 精品亚洲永久免费精品| 亚洲人成影院在线高清| 免费女人18毛片a级毛片视频| 最近免费中文字幕中文高清 | 亚洲特级aaaaaa毛片| 精品少妇人妻AV免费久久洗澡 | 亚洲中文字幕无码爆乳| 亚洲高清偷拍一区二区三区| 国产精品免费大片| 亚洲日韩av无码中文| 亚洲不卡中文字幕无码| 岛国片在线免费观看| 3344在线看片免费| 日本亚洲色大成网站www久久| 亚洲精品乱码久久久久久|