【會議筆記】20100410_百度技術沙龍_WEB數據交互的藝術(黃方榮)

1. Server 的數據推送
  01. 輪循
    比如第一代文字版聊天室,定時從客戶端請求服務器端。
    Ajax 和 XSS 等技術實現。
  02. 長連接
    WEB 版在線會議
    IE 的 new Active Object('htmlfile'); //從 gtalk 開始
    Mozilla 的 XmlHttpRequest 的 readyState == 3 時。
    Flash 雙向 Socket。
  03. 僞長連接
    Server 端數據推送“comet”。
    Ajax 和 XSS。
    Server 端等待請求,然後將 http 請求 hold 住。
  04. 應用
    輪循:文字聊天室、Session 延時。
    長連接:WebIM、文件上傳、語音視頻傳輸、網頁遊戲。
    僞長連接:WebIM、WebQQ。
    之所以使用僞長連接是因爲長連接超過 90 秒時在某些環境會被代理服務器掐斷,而僞長連接 comet 控制在 30 - 60 秒內,更爲合理。

2. 異域服務器數據交互
  01. Html 嵌 JavaScript 文件
    <script language="javascript" src="xxx.js"></script>
  02. JavaScript 動態創建
    <script language="javascript">
     xxxxxxxx
    </script>
    實例:百度 cpro 廣告腳本、網頁數據採集、數據服務。
  03. 網頁直接通訊
    iframe 嵌 iframe:
      
www.aaa.com/index.htmwww.bbb.com/index.htm,若想從 bbb.com 訪問 aaa.com 的數據。
      直接在 bbb.com 動態創建 aaa.com 域名下的 iframe,通過 url 帶信息從而通過 parent.parent 傳遞到頂層頁面。

3. 客戶端網頁跨瀏覽器的數據交互
  flash 本地同步信息(flash 97% 的覆蓋支持率)
  比如用來存儲網頁即時通訊的聊天記錄,多瀏覽器要保持數據一致性。

4. 數據的壓縮處理
  01. YUI Compressor
  02. gzip //很成熟的技術,佔不了多少服務器資源。
  例:百度地圖 YUI 壓到 300k 左右,使用 gzip 到 100k。

5. Web 前後端交互的數據格式
  01. 早期純文本
    使用特殊字符比如“|”分隔的固定格式文本,現在在證券軟件還在使用類似存儲和傳輸方式。
  02. XML
    不同瀏覽器解析差異很大
    opera 8.5 之前不支持,IE 是使用 Active Object 實現,FireFox 直接由核心支持。
  03. Json
    05 年左右開始,js 中可直接使用的數據格式,與 XML 映射也比較方便。

6. 數據的客戶的存儲
  01. UserData(IE)
    IE5.0 起支持,只有 IE 支持,每域名本地有 640K 存儲空間,單個文件支持 64K,不過可以設置,比如局域網可以設爲 10M。
  02. LocalStorage
    2006 或 2007 開始出現,FF、Sofari、Opera 支持,IE 直到 IE8 尚未支持。
    可能發展成類似 SQL 查詢的性質。
  03. Flash
    每域名默認 128K,大小用戶可設置。
  用途:
    本地存儲、離線存儲、離線功能開發。

7. 數據交互推動着 WEB 的發展
  01. 聊天室和 WebIM 的需要:Server 數據推送
  02. 腳本投放和開放 API 需要:跨域腳本
    例如:網絡在線輸入法、百度搜索下拉提示
  03. 跨域數據服務需要:Callback
  04. 網頁多媒體通訊需要:長連接
  05. Web2.0 需要:Ajax
  06. Web3.0 需要:????
    推測:html5、flash + serverlet,更多在使用長連接、數據主動推送、數據雙向推送等技術方面發展。

不侷限於某一種技術,根據產品線應用。

會後問答總結:
  百度使用優化過的 Linux、Apache,自己用 C 語言寫的一些東西。1 臺優化過的服務器一般負責承受 1 萬左右併發,其實 2 - 3 萬併發也可以承受。
  Server 將 http 請求 hold 住,比如暫停或放於堆棧,不同語言處理不同。
  數據交互通過 json 來做。
  IE6 一個瀏覽器只支持兩個長連接,再多就不行了,這是在使用一個域名的情況下,解決的辦法是用多個域名來突破限制。

 

 

百度:黃方榮聯繫方式:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章