TinyMCE Compressor 的 bug
有在 Twitter follow 我的人大概上週五會看到 這篇 ,會發出這樣的叫喊其實要回朔到五個月前,那時無知的我還在快樂的試著玩 TinyMCE Compressor,這東西可以減少 TinyMCE 的 HTTP Request 數,減少 loading 時間、頻寬,還可以讓使用者體驗更好,不過那時的我怎樣弄就是弄不成功,沒有錯誤訊息,但是用 FireBug 之類的開發工具檢查 HTTP Request 就是會看到多餘的那些 Request ,百思不得其解,直到上週五經過更嚴密的交叉比對後,終於茅塞頓開,發現問題的癥結,也跟著從內心喊叫出:「 幹,split 完要 trim 一下啊!! 」這句肺腑之言啊。
狀況是這樣的, TinyMCE 裡面有個地方用來記錄哪些 plugin 已經呼叫過,如果還沒呼叫過,那需要用到時就會建立 Request 來跟 server 要檔案,TinyMCE Compressor 自然也會需要對這個地方作些處理,它會把已經包在檔案內的 plugin 都標註為已經呼叫過的狀態,問題就出在這,我本來用下面的設定:
tinyMCE_GZ.init({
plugins : 'style, layer, table, save'
});
每個逗點後面都有個空白,我覺得這樣的 coding style 也比較好,結果 TinyMCE Compressor 在做 plugin 呼叫註記的時候,沒把空白去掉(不過 php 端可以正確把 plugin 包進來),接著到了正式初始 TinyMCE 時用一樣的 pluing 設定:
tinyMCE.init({
plugins : 'style, layer, table, save'
});
這裡卻有把空白去掉,結果它自己認為這些 plugin 沒呼叫過,就重新呼叫了一次...orz,目前是有去回報 bug ,不過不知道會不會受理,總之有要用 TinyMCE 的就小心逗點後面不要加空白吧。