In the Making of Mnjul’s Intimate Home 4931 (X)

上一篇在這裡喔。

最近又有點時間,就把網站的上次還沒做完的,比較耗工的改動弄完。

  • 增進了 Fragments 跟 Shards loading 的流暢度( 但整體速度是下降的 )。我之前的作法是,算瀏覽器每次給我 requestAnimationFrame 時隔多久,就用那個「多久」來決定我一次可以花多少時間在 loading 上面( 然後就用 setTimeout 把掌控權還給瀏覽器 )。想想不對啊,如果這個時間隔很久,代表瀏覽器很忙,沒辦法讓 client js 一直畫圖,那不就代表我也不應該花很久的時間來load 那些 DOM elements?所以就需要用新的辦法。結果,跟以前 Mozilla 的同事討論了以後,我發現我要做的事情根本是「在 cooperative multitasking OS 下面,有一個 process 想要吃掉所有的 CPU,又不想讓別的 process 發現變慢;但又拿不到別的 process 到底會多吃 CPU」--所以我懶得去想夠棒的 heuristic,就隨便設了一些 timeout 了。
  • 最近發現 Firefox 也支援了 -moz-osx-font-smoothing,用 grayscale 值,可以達到跟 -webkit-font-smoothing: subpixel-antialiased 一樣,在黑底白字時文字粗細比較細的效果。萬!歲!
  • 動態載入 webfont 的 code,會把 encode 好的 base64 webfont 取代進我 CSS 的某個字串;本來這個字串就只是一行在 rule block 裡面像是 UBUNTU_FONT 的字串,不過因為這樣 CSS syntax check 會爆掉,所以現在改用比較搞剛的像是:-mih-webfont: ubuntu;
  • 至於為什麼會有 CSS syntax check?因為我也開始用 css linter 跟 js linter 來讓自己的東西變得更 robust 啦。當然我都是 lint 還沒有 minify 的結果。
  • 所有的 id 跟 class identifier naming convention 也採用主流的 lowercase-delimited-by-hyphen。
  • 另外,重寫了Arraybuffer to base64 converter。
  • 也再度最佳化 jQuery selector 使用,並且減少無意義的 class。像是 Fragments 有兩百個項目,不用每個項目都掛 fragments-item class,而用 parent > child selector 選。
  • text-shadow 現在有 transition 了。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *