kako si kej ?

Archive for 十月 2006

jQuery 1.0.2

In 程式設計 on 2006 年 10 月 12 日 at 22:37

手上的某個專案因為歷史的關係:?:,所以先後分別用了 prototypejQuery 兩個 JavaScript library,今天想了一下,還是決定統一用一個 library 就好了;由於 jQuery 看起來較輕薄短小(其實 pack 起來後兩個差不多大),加上 Chainable、支援 XPath 等一些像我這種懶人喜愛的特性的緣故,決定全部使用 jQuery。

程式都改完、測試好之後才想到該去 jQuery 官網看看,發現 10/9 剛發佈了新的 1.0.2 版,於是就下載回來更新(之前是用 1.0.1 版),沒想到一更新之後所有 $.ajax callback 的部份全都失效了,查了一下 API 發現原來在 $.ajax 的地方是這樣寫的:

(Function) error – A function to be called if the request fails. The function gets passed two arguments: The XMLHttpRequest object and a string describing the type of error that occurred.

(Function) success – A function to be called if the request succeeds. The function gets passed one argument: The data returned from the server, formatted according to the ‘dataType’ parameter.

(Function) complete – A function to be called when the request finishes. The function gets passed two arguments: The XMLHttpRequest object and a string describing the type the success of the request.

而我的程式在 success 時的 callback function 卻也是以回傳一個 XMLHttpRequest 物件的方式來寫的,因此當事實上回傳的已經是一個字串時,也就不會有 responseText 囉(因為回傳值本身就是responseText),然後 callback function 就理所當然的死掉了。

當我再把 1.0.1 版蓋回去測試時,卻發現程式跑起來一切正常,一丁點錯誤訊息也沒有;原來 1.0.1 版 success 的部份的確是回傳一個 XMLHttpRequest 物件,所以或許是在 1.0.2 版有作更改了吧,不過我怎樣也找不到哪邊有 change log 提到這點,也找不到舊版的 API 文件來作對照,但是經過一連串的交叉測試之後應該可以確定是這樣子沒錯。所以這下子有兩個選擇:一個是把 success 改成 complete,這樣就不用去更動 callback function,另一個是將 callback function 內的 XMLHttpRequestObject.responseText 改成直接用 responseText,亦即將

function successCallBack(XMLHttpRequestObject){
eval("var jsonVars = " + XMLHttpRequestObject.responseText);
………
}

改成

function successCallBack(responseText){
eval("var jsonVars = " + responseText);
………
}

而我選的是後者。

喔,其實還有另一個選擇,就是用舊版 library,但,何必咧?

真不知道為什麼要將 success 的部份設計的跟另外兩個狀態不一樣啊……

2006-10-14 update :
jQuery 的官方部落格今天提到了這點:其實這項 API 的變動,原本是預計等到 1.1 版的 major release 時才會變更的,結果「不小心」在 1.0.2 時就先用了,然後又順便忘了提到這點……

只要有心,人人都可以是預測大師 XD

In 閒聊瞎扯, 電腦網路 on 2006 年 10 月 11 日 at 00:15

今天(過了半夜12點了,嗚)昨天的大消息:儘管有些反對及不看好的聲音,Google 還是以16.5億美金的價格買下了 YouTube,一舉成為目前全球最大的網路影音平台。

一些 link :

這個收購案,本人在年初就早已經預測到了,請看此圖以及上面第一篇link (Boing Boing)的文章附圖,而 GooTube 這個字眼早就大喇喇的掛在我的網站上當了十個多月的 TITLE 啦。

因此,為了慶祝:?: Google 買下 YouTube(謎之音:人家收購關你屁事),GooTube FLV Retriever 的核心解析程式碼即日起開放下載;有下有推,方便的話請在下載的時候留個言一下吧(讓我爽一下)。XD

p.s. 「預測」一詞僅為玩笑,請勿介意。

Lucida Grande 的全形冒號 (:) 問題

In 電腦網路 on 2006 年 10 月 09 日 at 11:45

一個後知後覺的問題。

最近這幾天在公司看網頁的時候,發現有些站的全形冒號在顯示上有點問題,變成了一個奇怪的符號:
original Lucida Grande font (1)
lucida2original Lucida Grande font (2)

用咕狗大神找了一下很快的就找到了答案

使用了修正後的 Lucida Grande 字型後就可以正常顯示了。
fixed Lucida Grande font (1)
fixed Lucida Grande font (2)

公司的電腦是灌 WinXP Home,印象中我自己灌 WinXP Professional 的筆電好像沒這個問題,晚一點再確認一下。

update : 原來我的筆電沒有 Lucida Grande …

近日雜感

In 閒聊瞎扯 on 2006 年 10 月 03 日 at 00:02
  • Web 2.0 國際研討會:
    • 講的東西大部分都是老梗了,不過觀察外國講者跟國內講者的台風、動作等,實在是一件有趣的事。看到國內的講者我就會回想起在前一家公司報告時被老闆糾正的情景,可真是歷歷在目。
    • 午餐便當不錯吃,不過不太懂為什麼限量八百個的理由居然是「座位不足」?便當在哪邊都能吃吧…
    • 以後要去國際會議中心的朋友請注意:若有國外主講人並且現場有即時口譯的話,強烈建議請自備耳機,千萬不要跟我一樣笨笨的花兩百台票去櫃台租借耳機,然後才發現它跟一般耳機沒啥兩樣。
    • Web 2.0 果然是行銷用語,與技術無關。
  • 全球華文部落格大獎:
    • 我第一個且唯一想到的一句話,就是小潘說過的:「真正的高手是不需要比賽來證明的。」(你們怎麼捨得把你們的 blog 拿給那些評審去評判呢?)
    follow me on Twitter