日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

google suggest 剖析

 grantbb 2005-07-13

去年年底,Google推出了一項新的服務Google Suggest,可以提供和你搜索關(guān)鍵字相關(guān)的關(guān)鍵字建議。目前還只有英文的beta版本,網(wǎng)址在這里:http://www.google.com/webhp?complete=1&hl=en。

比如我在搜索框中輸入java,效果圖如下:

提示效果的實現(xiàn)原理,我們大概可以猜到,很有可能是利用js通過xmlhttp獲得google后臺整理出來的索引數(shù)據(jù),并動態(tài)生成一個layer或者iframe顯示出來。

這個效果具體是怎樣的一個流程呢?對google 的技術(shù)的崇拜促使我決心去弄清楚。通過查看該頁源碼,我發(fā)現(xiàn)其加載了一個腳本 ac.js,下下來一看,一頭霧水,因為幾乎所有的腳本都被混淆了,滿眼看到的是與亂碼無異的abcd。經(jīng)過耐心的(我都被自己感動)抽絲剝繭,基本清楚了套路。

與我最初的猜測一致,確實是通過xmlhttp,js將關(guān)鍵字提交到如下的地址:

http://www.google.com/complete/search?hl=en&js=true&qu=java

最后的 qu=java 就是我鍵入的搜索關(guān)鍵字 java。那么google返回的是什么呢?請看:

sendRPCDone(frameElement, "java", new Array("java", "javascript", "java download", "java games", "java virtual machine", "java script", "java api", "java in a nutshell", "java tutorial", "javanoid"), new Array("132,000,000 results", "42,000,000 results", "14,500,000 results", "7,210,000 results", "2,890,000 results", "4,730,000 results", "3,960,000 results", "452,000 results", "5,320,000 results", "23,400 results"), new Array("")); 

出乎我的意料,google 沒有返回 xml 數(shù)據(jù),而是直接返回了一段 javascript,這段javascript是執(zhí)行一個名為 sendRPCDone 的方法,這個方法其實早已定義在ac.js中。其后的參數(shù)我想大家都明了了。調(diào)用這個方法的結(jié)果我們用腳底也可以想到,一定是將數(shù)據(jù)寫入動態(tài)產(chǎn)生的iframe中,然后popup。

讓我感興趣的是,通常js+xmlhttp的應用都是傳遞xml格式的數(shù)據(jù),google直接返回javascript的方式,我想它的用意是為了省卻了解析xml的消耗并提高兼容性,畢竟解析DOM是比較消耗內(nèi)存的,而且在各種瀏覽器中處理DOM的語法還沒有完全統(tǒng)一。

我不禁想到,xmlhttp 這個名字以xml開頭也許限制了我們的想像,使我們習慣或者盲目的硬要帶上xml來解決問題。不光如此,很多時候,我覺得xml被濫用了,一些項目或者產(chǎn)品,很簡單的屬性都要用xml來配置。很多時候我更愿意看到一個 properties 文件。

向大家推薦一個東東,JSON-RPC-Java : javascript 與 java 進行 rpc 調(diào)用。底層通訊當然仍舊是xmlhttp。我以為用它,Google Suggest會更完美。我會用連載的形式比較詳細的介紹它。本文算是一個引言吧。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多