我知道的作法是透過ajax當keyup的時候去load一隻ajax把符合的結果送回來
所以當keyup時基本上一直在送值
可是我使用firebug去觀察Google跟Yahoo的搜尋,瀏覽器的狀態列有在變動
但Firebug並沒有catch到他們送出Ajax的行為
不知道有沒有人知道他們是怎麼做的?
你仔細觀察啦。他是用動態載入script的方式來做的,不是用ajax。
我還沒開firefox,所以用chrome來觀察。你會看到每次有autocomplete動作時,都會動態載入 "http://clientX.google.com/complete/search?....." 這個網址的javascript,這個script會用autocomplete的資訊來呼叫window.google.ac.h()來產生autocomplete的效果。
每天都在用的google,完全沒留意到運作,
被fillano這麼一點,
原來這麼有趣:
<pre class="c" name="code">curl http://clients1.google.com.tw/complete/search?hl=zh-T9,25174\&q=har\&cp=5=17259
window.google.ac.h(["har",[["harvard university",0,"0"],["harrods",0,"1"],["harvard",0,"2"],["harry potter",0,"3"],["hario",0,"4"],["harvard business review",0,"5"],["harley davidson",0,"6"],["hartford",0,"7"],["harman kardon",0,"8"],["hare",0,"9"]]])
在那 q= 的地方塞東西,就馬上丟回這些東西;
好像可以怎麼來用這樣的機制嗎?
或者 google 是否有什麼 API 提供這樣的機制?