2008-01-01から1年間の記事一覧
2009-11-12 ナビ子記法について追記しました 本文 今日は、amachangさんの記事 http://d.hatena.ne.jp/amachang/20071010/1192012056 を 1mm だけ掘り下げ、IE 以外のブラウザでも document へのアクセスを速くする方法がないか、色々試してみます。 # 記事…
jQuery1.3β みた(jQueryのコードをまじめに見たのは、これが初めてかも) 比較演算子(==)が厳密比較演算子(===)に jQuery の CSSセレクタが、Sizzle 0.9 になった。 以前の Sizzle に存在した“Firefox,Operaでクエリ結果をキャッシュする機能”が、Sizzle 0.9 …
今後の uupaa.js の形を決めました。 これまで uupaa.js ファイルに必要と思われる機能をギチギチに詰め込んでる。 コードの可読性が低い + version間でdiff取れない(弄りすぎ)。 uu.module() でモジュールを読み込むと色々機能が増えるみたいだけど、実用性…
とある方曰く、以下のコードはもっと短縮できるとか function piyo() { for (var i = 0; i < 10; i++) { } } piyo(); 曰く「"var " は削れる。これでマイナス3バイトです」 function evil(i) { // 引数 i を追加した for (i = 0; i < 10; i++) { // var を削…
思えば、JavaScript を学び始めて、最初に立ちふさがった壁が「IEと他のブラウザで動きが違う」「include すら無い」でした。 これって、プログラミング初学者に誤解を与えるには十分な威力です。それゆえ「文字を点滅、広告を次々に表示、画面を揺らす」な…
JavaScript のソースコードの圧縮にYUI Compressor 使ってます。 # 他のコンプレッサーに浮気したことが無いので、他のはよくわかりません。ずっと、2.3.5 を使っていたのですが、2.4.2が出ていました。2.4.1以上で 11.1kB(11370byte) のソースコードを Mini…
高木先生のブログで「楽天が :visited を使いユーザの履歴を盗み見ている」とあった(要約)。CSS セレクタ作者として「いつかは…」と思ってましたが意外に早かった。 嫉妬混じりの批評もあるみたいだし。このような用法に対しては事前に考える時間があったの…
<html><head><title>ohige</title> <script type="text/xaml" id="xaml"><?xml version="1.0"?> <Canvas xmlns="http://schemas.microsoft.com/client/2007"></Canvas></script> <script src="http://uupaa-js-spinoff.googlecode.com/svn/trunk/uupaa-color.js/uupaa-color.mini.js"></script> </head></html>
リリースしました。 uupaa-selector.js Version 2.0 (ChangeLog) uupaa-mutationevent.js Version 0.1 (ChangeLog) uupaa-excanvas.js Version 0.1 (ChangeLog) uupaa-detect.js Version 1.0 (ChangeLog) uupaa-color.js Version 3.0 (ChangeLog) 内訳は世界…
ここ数日は、CSSセレクタ(uupaa-selector.js)の高速化と同時に、DOM Level2 Mutation Events をサポートする小さなライブラリ(uupaa-mutationevent.js)を作っていました。uupaa-mutationevent.js は、 CSSセレクタにキャッシュを導入するなら、DOMツリーの改…
function _fakeMutationEvents(elm) { elm.style.behavior = "none"; (function(n) { var fn = n.removeChild; n.removeChild = function(oldChild) { // DOMNodeRemoved uuClass.Selector.clearCache(); return fn(oldChild); } })(elm); elm.attachEvent("…
セレクタ(id, tag, class, css, xpath)の実行速度を改善するには、2つの方法があります。 ロジックを改善する キャッシュを使う 今日は2の方法について検討したことを書き残します。 心配事 キャッシュを使う上での心配事は「キャッシュが古くなったらどうす…
このエントリは、IE8での変化点一覧 + 備忘録 - latest logの続きです。 IE8モードで、CSS expression が無視される。 バグ回避や、max-width などを実装するため必要不可欠だった expression 構文は廃止される。 ただし、IE7モードとQuirksモードでは下位互…
2008-11-23追記: http://app.blog.livedoor.jp/sourcewalker/tb.cgi/51408207 で紹介されていたので、peppy と sizzle を追加 peppy と sizzle がキャッシュを使ってて(なんかズルイ)ので、彼らに負けじと謎の技術を惜しげもなくぶち込んでみた。JavaScript…
11/1 の思いつきから始まった「Silverlight + VML = HTML5::Canvas」も、やっと一段落しました。 実装済みの機能 clearRect, beginPath, moveTo, lineTo, bezierCurveTo, quadraticCurveTo, rect, strokeRect, fillRect, closePath, drawImage(キャンバスの…
VMLモードで clip を実装できないかと try 〜 error を繰り返しています。VMLにはクリッピング用途に使える機能がほとんど見当たりませんし、ExplorerCanvasの開発チーム(Googleの中の人 × 3名様)が出来なかったことを(clipに限らず色々と)やろうとしている…
VMLモードのレンダリングを改善しました。細かなことは昨日の日記などをご覧下さい。 Silverlightモードの変更箇所 fillText(), strokeText() を実装 (ただし strokeText() は fillText() と同じレンダリングを行う)。 A canvas fillText and strokeText exa…
追記: サンプルを追加しました。 実装済みの機能 clearRect, beginPath, moveTo, lineTo, bezierCurveTo, quadraticCurveTo, rect, strokeRect, fillRect, closePath, createLinearGradient, createRadialGradient, stroke, fill, arc, save, restore, trans…
必須と思われる機能をあらかた実装できました。 実装済みの機能 clearRect, beginPath, moveTo, lineTo, bezierCurveTo, quadraticCurveTo, rect, strokeRect, fillRect, closePath, createLinearGradient, createRadialGradient, stroke, fill, arc, save, …
長さが 32598 だと問題なしで、33533 だとエラーが発生するため、32768 辺りに境界が有ると思われる。 # MSDNにはその手の記述はなし。この制限により、https://developer.mozilla.org/samples/canvas-tutorial/5_2_canvas_translate.html の右上と中央の図…
現状 デモ バウンドするドット excanvas.js(ver0.2)でレンダリング VMLモードでレンダリング Silverlightモードでレンダリング 回転するボックス excanvas.js(ver0.2)でレンダリング VMLモードでレンダリング Silverlightモードでレンダリング # IE以外のブ…
「Silverlight で HTML5::Canvas を実現できないか」から早5日(うち3日はサボり)。ぼちぼち動くようになってきました。 今回書いたライブラリは、Silverlightがインストールされている環境ではSilverlightを使い、インストールされていなければ、VMLでレンダ…
調べながら書いてるので、どんどん追記していきます。 とりあえずSilverlight2.0 の SDK をインストール SDKをインストールすると、Silverlight.js というファイルが手に入る。 Silverlight.js は SWFObject.js 的なもの。500行と結構ボリュームはあるけど中…
2008-11-27追記: version 2.0 が最新になります。uupaa.js (ver 0.7)に実装されているCSSセレクタの機能を、単体で動作可能にパッケージしなおしたJavaScriptライブラリ(uupaa-selector.js)の最新版をリリースしました。今回は、 使用可能な場合は、DOM Elem…
IE限定になりますが、Silverlight で描画のためのフロントエンド(描画API)を組めないか考えてました。 excanvas.js を最終手段としておいて、使える環境なら Silverlight を使ってしまおうかと。 HTML5::Canvas と Silverlight Silverlight は、MS 発の Flas…
IE6のベンチスコアを追加 補足を追加 アイコンやウインドウをつかんでずずっと移動する。 この動作をもっともっとスムーズにするために、何ができるか考えてました。以下はサンプルコードです。 uuClass.MyDrag = uuClass.Generic(); uuClass.MyDrag .protot…
IE8 ではかなりの数のメソッドやプロパティが増えているようです。書き残します。 element.getAttribute について追記しました。 window.toStaticHTML window.toStaticHTML は、XDomainRequest や postMessage で受け取った文字列(HTML)をサニタイズ(消毒)す…
uupaa-color.js は例によりuupaa.js の一部を切り出し、単体で動作可能な形にリパックしたスクリプトです。一見あまり意味のない(ニーズが無い)ように見えるスピンオフなんですが、 単体リリースしておけば、Core(uupaa.js)に入れたままだと気が付きにくい問…
ノードをDOMツリーに追加するには、2つの異なる方法がありますが、 DocumentFragment 経由で追加する方法 (method1) 直接追加する方法 (method2) Opera9.5以降でDocumentFragmentを経由すると画面が再描画されません。 # Opera9.52, Opera9.61 で現象を確認…
2008-10-21 追記 この日記は、こんな流れで修正やら追記がされてます。 Firefox3で動いていたコードがFirefox3.1β1で動かないんが → 3.1でどっか変わった? 「ちがくね?」と指摘を受ける 検証し直してみると、実は createContextualFragmentは一部のブラウザ(…