• <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.¢%

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

            Flash Remoting的核心技術(shù)——AMF
            AMF是什么?它的優(yōu)點(diǎn)中是什么?Flash Remoting為什么選擇了使用AMF而放棄了SOAP與Flash 播放器通信呢?

            Flash 5開(kāi)始就可以以XML或者“變量/值”配對(duì)輸出格式向服務(wù)器傳送數(shù)據(jù)。雖然這些數(shù)據(jù)能通過(guò)Flash編譯器自動(dòng)解析或者通過(guò)開(kāi)發(fā)人員自行編寫(xiě)的代碼手動(dòng)解析, 但解析的速度慢。因?yàn)樵诮馕鲞^(guò)程中,XML需要按節(jié)點(diǎn)逐層處理數(shù)據(jù)。而且使用XML和“變量/值”配對(duì)格式處理的數(shù)據(jù)類型只能是字符型,數(shù)字也不例外。而Flash Remoting卻能處理復(fù)雜數(shù)據(jù)類型, 比如對(duì)象、結(jié)構(gòu)、數(shù)組,甚至可以是數(shù)據(jù)集,配合DataGrid組件可以很方便地顯示數(shù)據(jù)。

            為了處理復(fù)雜數(shù)據(jù)類型,采用一種獨(dú)有的方式使Flash與應(yīng)用服務(wù)器間可以來(lái)回傳送數(shù)據(jù)勢(shì)在必行。于是AMF應(yīng)運(yùn)而生。AMF是Adobe獨(dú)家開(kāi)發(fā)出來(lái)的通信協(xié)議,它采用二進(jìn)制壓縮,序列化、反序列化、傳輸數(shù)據(jù),從而為Flash 播放器與Flash Remoting網(wǎng)關(guān)通信提供了一種輕量級(jí)的、高效能的通信方式。如下圖所示。

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

            注意:Flash Remoting需要瀏覽器支持Binary POST,F(xiàn)lash 播放器在Netscape 6.x.環(huán)境下運(yùn)行Flash Remoting會(huì)不起作用(Flash Remoting調(diào)用沒(méi)有效果也不返回錯(cuò)誤), Netscape 7已經(jīng)糾正了這個(gè)bug 。對(duì)于早期Safari和Chimera版的蘋(píng)果機(jī)也有這個(gè)問(wèn)題。

            同樣是輕量級(jí)數(shù)據(jù)交換協(xié)議,同樣是通過(guò)調(diào)用遠(yuǎn)程服務(wù),同樣是基于標(biāo)準(zhǔn)的HTTP和HTTPS協(xié)議, Flash Remoting為什么選擇了使用AMF而放棄了SOAP與Flash 播放器通信呢? 有如下原因:

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

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

            久久久久久夜精品精品免费啦| 久久噜噜电影你懂的| 久久精品国产精品亚洲| 精品综合久久久久久88小说| 久久精品国产福利国产秒| 久久免费视频网站| 精品国产99久久久久久麻豆| 日产精品久久久一区二区| 99久久www免费人成精品| 久久婷婷是五月综合色狠狠| 国产精品亚洲综合专区片高清久久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产精品成人久久久久三级午夜电影| 亚洲人成电影网站久久| 精品人妻伦九区久久AAA片69 | 国产69精品久久久久9999| 久久久久久久久久久精品尤物 | 久久成人国产精品免费软件| 亚洲狠狠久久综合一区77777| 国产精品一区二区久久精品涩爱 | 国产精品女同久久久久电影院| 久久精品国产亚洲5555| 国内精品久久久久影院免费| 久久这里的只有是精品23| 午夜视频久久久久一区| 久久AⅤ人妻少妇嫩草影院| 青草影院天堂男人久久| 久久精品无码一区二区无码| 日韩人妻无码精品久久免费一| 国产精品免费久久久久影院 | 欧美激情精品久久久久| 久久精品蜜芽亚洲国产AV| 亚洲国产美女精品久久久久∴| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | A级毛片无码久久精品免费| 三级片免费观看久久| 久久人人爽人人澡人人高潮AV | 日韩AV毛片精品久久久| 无码国内精品久久人妻麻豆按摩| 久久精品国产精品亚洲艾草网美妙 | 久久久久99精品成人片牛牛影视|