2004-12-12
ua.indexOf("MSIE") != -1 ?
- Reference URI
- http://lowreal.net/logs/2004/12/12/1
- Written Time
- 2004-12-12T00:40:50+09:00
- Tags
-
- prog
- web
UA 文字列を Javascript から得るにあたり検索をかけてみたのだけど、UA 文字列にある文字列 (eg. “MSIE”) があるか調べるときに String.prototype.indexOf の結果が -1 であるかを調べているのが多かった。これはやっぱ String.prototype.match だと遅いとかそういう問題があるからなのだろうか……なんかダサいので今回自分は String.prototype.match を使ったけど、どうなんだろ。
if (navigator.userAgent.indexOf("MSIE") != -1)
// do something for MSIE
if (navigator.userAgent.match(/MSIE/))
// do something for MSIE
さらに && とか使おうとすると演算子の優先順位 (よく忘れる) とか考えることになって面倒臭い……
Trackback URI: http://lowreal.net/logs/2004/12/12/1.trackback
code をクライアント側で着色
- Reference URI
- http://lowreal.net/logs/2004/12/12/2
- Written Time
- 2004-12-12T03:00:30+09:00
- Tags
-
- prog
- web
pre に現れるコードを Javascript で着色 (Javascript でやってるのはマークアップ) してみる。重い?
少し前からこれがやってみたかったので class 属性に使用してる言語を書いていたりした。言語ごとにトークンを使いわけたようと思ってたわけだけど、実際そこまでやるのってどうなのよ、とか思い始めた。そのうちやってみて、いけそうだったら採用してみよう。
現状でもかなり重い気が……長くとれるトークンを増やせば (ループ量が減って) 軽くなるかもしれないけど微妙。実際一文字ずつループまわしてるからなぁ。やりすぎか。
Inserted at 2004-12-12T03:05:35+09:00
Ruby と ECMAScript は別のトークンテーブル使うようにしてみた。別にパースしてるわけじゃない (スキャンだけ) なので微妙にアレな状況が既にいくつか思いつくわけですが……例えば式展開の引数で括ってるクオーテーションつかっちゃうとかが絶対おかしくなる。
それとループ回数を減らすために /[a-z][a-z0-9]*/i は identifer ってことにしてスキップしてる。
Inserted at 2004-12-12T03:42:25+09:00
Lisp と XML もすっごい適当に加えた。
Inserted at 2004-12-12T05:33:42+09:00
サンプル 重いので移した。
正規表現はブラウザ毎の違いが殆どない気もする。気付いてないだけかもしれないけど。
FF で右クリックから View Selection Source すると内部 DOM の内容もソースとして出てくるのが役に立った……
そもそもスキャナの実装が激しく間違ってたので修正。根本的な部分を変えたのでバグがあるかもしれない。
Inserted at 2004-12-14T13:54:12+09:00
Trackback URI: http://lowreal.net/logs/2004/12/12/2.trackback
Audioscrobbler で他人のやつ混ざる
- Reference URI
- http://lowreal.net/logs/2004/12/12/3
- Written Time
- 2004-12-12T20:01:44+09:00
- Tags
-
- web
Audioscrobbler で最近 Recent Tracks に聞いてない曲が混ざることがある。バンプ が車輪の唄のシングルカットしてたなんてそもそも知らないのに、それのカップリングのやつが Recent Tracks に混ざっていたりする。
無作為に混ざっているわけじゃないらしく?同じアーティスト聞いてると混ざるみたい?
Trackback URI: http://lowreal.net/logs/2004/12/12/3.trackback
NULL
Generated with Taglibro
この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。
Comments (0)