• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Flash Remoting的核心技術——AMF簡介

            Posted on 2010-01-25 11:59 S.l.e!ep.¢% 閱讀(1153) 評論(0)  編輯 收藏 引用 所屬分類: A·M·F·3

            Flash Remoting的核心技術——AMF
            AMF是什么?它的優點中是什么?Flash Remoting為什么選擇了使用AMF而放棄了SOAP與Flash 播放器通信呢?

            Flash 5開始就可以以XML或者“變量/值”配對輸出格式向服務器傳送數據。雖然這些數據能通過Flash編譯器自動解析或者通過開發人員自行編寫的代碼手動解析, 但解析的速度慢。因為在解析過程中,XML需要按節點逐層處理數據。而且使用XML和“變量/值”配對格式處理的數據類型只能是字符型,數字也不例外。而Flash Remoting卻能處理復雜數據類型, 比如對象、結構、數組,甚至可以是數據集,配合DataGrid組件可以很方便地顯示數據。

            為了處理復雜數據類型,采用一種獨有的方式使Flash與應用服務器間可以來回傳送數據勢在必行。于是AMF應運而生。AMF是Adobe獨家開發出來的通信協議,它采用二進制壓縮,序列化、反序列化、傳輸數據,從而為Flash 播放器與Flash Remoting網關通信提供了一種輕量級的、高效能的通信方式。如下圖所示。

            AMF最大的特色在于可直接將Flash內置對象,例如Object, Array, Date, XML,傳回服務器端,并且在服務器端自動進行解析成適當的對象,這就減輕了開發人員繁復工作,同時也更省了開發時間。由于AMF采用二進制編碼,這種方式可以高度壓縮數據,因此非常適合用來傳遞大量的資料。數據量越大,Flash Remoting的傳輸效能就越高,遠遠超過Web Service。至于XML, LoadVars和loadVariables() ,它們使用純文本的傳輸方式,效能就更不能與Flash Remoting相提并論了。

            注意:Flash Remoting需要瀏覽器支持Binary POST,Flash 播放器在Netscape 6.x.環境下運行Flash Remoting會不起作用(Flash Remoting調用沒有效果也不返回錯誤), Netscape 7已經糾正了這個bug 。對于早期Safari和Chimera版的蘋果機也有這個問題。

            同樣是輕量級數據交換協議,同樣是通過調用遠程服務,同樣是基于標準的HTTP和HTTPS協議, Flash Remoting為什么選擇了使用AMF而放棄了SOAP與Flash 播放器通信呢? 有如下原因:

            1. SOAP將數據處理成XML格式,相對于二進制的AFM太冗長了;
            2. AMF能更有效序列化數據;因為AMF的初衷只是為了支持Flash ActionScript的數據類型,而SOAP卻致力于提供更廣泛的用途;
            3. AMF支持Flash 播放器 6只需要瀏覽器增加4 KB左右(壓縮后)的大小,而SOAP就大多了;
            4. SOAP的一些頭部文件請求在Flash 播放器 6不支持。那Flash 播放器 6為什么能訪問基于SOAP的Web服務呢?原來Flash Remoting網關將SOAP請求在服務器端與轉換成AFM格式,然后利用AFM與Flash 播放器通信。另外,AMF包中包含onResult事件(比如說response事件)和onStatus事件(比如說error事件),這些事件對象在Flash中可以直接使用。

            AMF從Flash MX時代的AMF0發展到現在的AMF3。AMF3用作Flash Playe 9的ActionScript 3.0的默認序列化格式,而AMF0則用作舊版的ActionScript 1.0和2.0的序列化格式。 在網絡傳輸數據方面,AMF3比AMF0更有效率。AMF3能將int和uint對象作為整數(integer)傳輸,并且能序列化ActionScript 3.0才支持的數據類型, 比如ByteArray,XML和Iexternalizable。
            請閱讀原文:http://www.riafan.com/article.asp?id=37

            91久久婷婷国产综合精品青草| 久久99精品久久久久子伦| 久久免费精品视频| 国产精品久久久天天影视香蕉| 久久久久无码国产精品不卡| 久久AV高清无码| 国产精品18久久久久久vr| 国产午夜精品久久久久免费视| 精品久久人人爽天天玩人人妻| 久久久久免费精品国产| 久久伊人五月丁香狠狠色| 久久久久久亚洲精品不卡| 久久久久久国产精品免费免费| 亚洲欧美另类日本久久国产真实乱对白| 91秦先生久久久久久久| 久久久久久久久久久免费精品| 性高朝久久久久久久久久| 99久久国产亚洲综合精品| 国内精品久久久久伊人av| 亚洲一区二区三区日本久久九| 久久丝袜精品中文字幕| 亚洲精品无码久久久影院相关影片| 久久99国产综合精品| 国产精品熟女福利久久AV| 久久精品国产亚洲AV久| 99久久无色码中文字幕| 久久夜色撩人精品国产| 亚洲国产另类久久久精品| AA级片免费看视频久久| 久久精品卫校国产小美女| 久久天天躁狠狠躁夜夜不卡| 18岁日韩内射颜射午夜久久成人| 久久精品国产亚洲AV无码娇色| 精品无码久久久久久久动漫| 久久亚洲精品成人无码网站| 国产高清美女一级a毛片久久w| 麻豆精品久久久久久久99蜜桃| 青青草国产精品久久久久| 久久久无码精品亚洲日韩蜜臀浪潮| 精品国产综合区久久久久久| 精品综合久久久久久888蜜芽|