enhance

IE9RC で document が const になり再定義が不可能になった

IE9RC の挙動を調べています。 IE9RC では @amachang さんの /*@cc_on var doc = document; eval('var document = doc'); @*/ が封印されてるhttp://twitter.com/#!/uupaa/status/35942322231320576 残念ながら、 @amachang さんの発案した方法がIE9で封印さ…

innerHTML = "" まとめ

HTML5をサポートしていないIE6〜IE8で、node.innerHTML = "..."; のように HTML5 で追加された新要素含んだ文字列を innerHTML に与えると、次のいずれかの条件が成立した場合に親子関係の崩れたサブツリーを生成してしまいます。 innerHTML の前に document…

$("div").append("section") できないらしいので色々調べてみた

追記: jQ的には解決していませんが、素の JavaScript を使った回避方法がわかりました。IE8以下では、オンザフライで作成した要素に対して innerHTML すると謎要素が作成されてしまうといった現象がでるため、一度要素片を、DOMツリー( body とかね ) にぶら…

HTML5の新要素をinnerHTMLで生成できないバグを回避する

IE6〜IE8のinnerHTMLには問題が多く、そのひとつに、HTML5の新要素を食わせると悪夢のようなDOMツリーを生成するというものがあります。 var div = document.createElement("div"); div.innerHTML = "<section>section</section>"; document.body.appendChild(div); 上記のコー…

RegExp#test + parseInt vs RegExp#exec + plus operator

CSSValue な "12em" や "123px" から 単位がpx の場合に 123 という数値を素早く取り出すには、 RegExp#test でテストしてから parseInt で取り出す RegExp#exec してから +(matchedValue) で数値として取り出す のどちらが効率的なのか気になったのでベンチ…

uu.ready("href:url/dispatcher", callback, ...) impl

条件成立でコールバックする関数を登録しておく機能 uu.ready() の条件に、ページのURLが一致する場合にコールバックする機能を追加しました。このようにして利用します。同じものを http://jsdo.it/uupaa/2011-01-19 にあげてあります。 // jsdo.it のコー…

msgpack.js を改善しました

version 1.05 を github と、Google Code においてあります。ベンチマーク もGoogle Code に置きました。10万要素のJSONデータの読み込みに時間かかることがありますが、気長にお待ちください。 # IE9用はこっちです http://uupaa-js-spinoff.googlecode.com…

msgpack.js を改善しました

https://github.com/uupaa/msgpack.js 速度を改善 JITの最適化を促進する方法をピコーンしたので、IEEE754周りの速度を改善しました。Opera(右上)で特に効果が見られます。 IEEE754ベンチ: https://github.com/uupaa/msgpack.js/blob/master/test/IEEE754.be…

最適化前後のコードを一緒に配布し技術共有を促進する(BaseCode)

数ヶ月前までは、Google Chrome に実装されている JSON よりも、お手製の msgpack.js のほうが速かったりした事もありました。でも気がついたら、いつの間にか Google Chrome 9 dev にぶっちぎられていました。で、速度差を挽回すべくコードをいじりだして、…