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

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

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

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
    function __flash__arrayToXML(obj) {
        
    var s = "<array>";
        
    for (var i=0; i<obj.length; i++) {
            s 
    += "<property id=\"" + i + "\">" + __flash__toXML(obj[i]) + "</property>";
        }
        
    return s+"</array>";
    }
    function __flash__argumentsToXML(obj,index) {
        
    var s = "<arguments>";
        
    for (var i=index; i<obj.length; i++) {
            s 
    += __flash__toXML(obj[i]);
        }
        
    return s+"</arguments>";
    }
    function __flash__objectToXML(obj) {
        
    var s = "<object>";
        
    for (var prop in obj) {
            s 
    += "<property id=\"" + prop + "\">" + __flash__toXML(obj[prop]) + "</property>";
        }
        
    return s+"</object>";
    }
    function __flash__escapeXML(s) {
        
    return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
    }
    function __flash__toXML(value) {
       var type = typeof(value);
        if (type == 
    "string") {
            return 
    "<string>" + __flash__escapeXML(value) + "</string>";
        } else if (type == 
    "undefined") {
            return 
    "<undefined/>";
        } else if (type == 
    "number") {
            return 
    "<number>" + value + "</number>";
        } else if (value == null) {
            return 
    "<null/>";
        } else if (type == 
    "boolean") {
            return value ? 
    "<true/>" : "<false/>";
        } else if (value instanceof Date) {
            return 
    "<date>" + value.getTime() + "</date>";
       } else if (value instanceof Array) {
           return __flash__arrayToXML(value);
       } else if (type == 
    "object") {
           return __flash__objectToXML(value);
       } else {
            return 
    "<null/>"; //???
        }
    }
    function __flash__addCallback(instance, name) {
      instance[name] = function () { 
        return eval(instance.CallFunction(
    "<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
      }
    }
    function __flash__removeCallback(instance, name) {
      instance[name] = null;
    }

    啥都甭說了,看看上面這幾個“+=”,已經把啥都說了。剛看到youyee同學定位到一個嚴重性能瓶頸并表情上面把這段flash往頁面里面注入的代碼貼出來的時候,emu簡直無法相信。
    還好大家都是干這行的,在flash注入完上述腳本后再覆蓋(一開始誤為重載了,感謝jee等同學的)掉這幾個函數并不為難,最多就是為之難受罷了。
    posted on 2010-01-16 13:09 emu 閱讀(3717) 評論(7)  編輯  收藏

    評論

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-01-16 20:39 匿名
    還好大家都是干這行的,在flash注入完上述腳本后再重載掉這幾個函數并不為難,最多就是為之難受罷了。

    重載和覆蓋都分不清,不過是五十步笑百步  回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-01-17 00:28 jee
    javascript里對字符串不能用+=嗎?javascript又不是java(java里面這樣用才實效率低下)。
    你對重載的理解有誤,樓上的已經指出了。  回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-01-17 09:25 xpf7622
    前天我匆匆的看了一下,沒仔細看,我以為JS里+=操作效率低下,也就沒有仔細看。是啊,重載和覆蓋(c++,Java)都涉及,這個弄不明白,就有些問題了。
    網上好象沒有人說JS里+=效率低下。如果有高見,不妨說一下。
      回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-01-17 10:55 Feenn
    這是對的,這個確實影響效率,網上可以找到其他人做的測試。http://topic.csdn.net/t/20051214/15/4459147.html  回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-01-18 10:02 emu
    @匿名
    @jee
    批評的對呵呵,有5年沒寫java了(c++更不要說了)。
    當時腦子里面閃過了一下,override中文怎么說的來著,沒細想就寫成重載了。
    其實這個地方并不是面向對象編程中所謂的重載或者覆蓋了,不涉及到類的繼承,純粹就是一個函數覆蓋一個函數。確實應該用“覆蓋”的。

    @xpf7622
    不是“+=”效率有問題,是對字符串連續的“+=”有性能問題。在IE8以前的IE瀏覽器中,字符串拼接有和java中一樣的問題。因此不建議在循環中對字符串使用“+=”  回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-03-12 00:05 yukon
    不大肯定清楚as里+=會不會有效率問題,
    但同個祖宗的js用字符串大量+=的確是有效率問題。
    因為ECMAscript中字符串是值類型而不是引用型。一般解決方法是把每個字符串放入一個數組的數組項,再拼接這個數組。  回復  更多評論
      

    # re: flash player往頁面注入的腳本表現了adobe的臨時工水平 2010-03-12 00:16 emu
    @yukon
    一些新瀏覽器的javascript引擎對這個問題有一些優化,但是現在瀏覽器的主流還是IE6,字符串拼接效率低是無疑的。  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 欧美三级在线电影免费| 国产婷婷成人久久Av免费高清 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 在线观看免费毛片| 亚洲无吗在线视频| 成人片黄网站A毛片免费| 久久精品a亚洲国产v高清不卡| 久久青青草原国产精品免费| 亚洲情XO亚洲色XO无码| 国产一级在线免费观看| 久久夜色精品国产亚洲| 野花香高清在线观看视频播放免费 | 国产精品亚洲专区在线播放 | 美女巨胸喷奶水视频www免费| 日日噜噜噜噜夜夜爽亚洲精品| 国产精品免费久久久久影院| 亚洲午夜久久久影院伊人| 永久免费av无码网站yy| 亚洲日本一区二区三区| AV大片在线无码永久免费| 亚洲熟妇无码一区二区三区导航| 成人在线免费观看| 香蕉视频在线观看免费| 亚洲国产另类久久久精品黑人 | a毛片基地免费全部视频| 亚洲 日韩 色 图网站| 日本不卡在线观看免费v| 黄色网址免费在线| 亚洲AV永久纯肉无码精品动漫 | 国产成人免费一区二区三区| 特黄特色的大片观看免费视频| 亚洲日韩aⅴ在线视频| 久久国产乱子伦免费精品| 亚洲高清视频在线| 亚洲AV网站在线观看| 男人的天堂网免费网站| 2020天堂在线亚洲精品专区| 免费观看亚洲人成网站| 成人久久免费网站| 中文字幕亚洲码在线| 黑人精品videos亚洲人|