タグ

ブックマーク / amachang.hatenablog.com (17)

  • Safari 3.1 に実装された「Client-side database storage (SQL API)」とは何か? - IT戦記

    はじめに Safari 3.1 には Client-side database storage (SQL API とも呼ばれています。)という新しい仕様が実装されました。 というわけで、この新しい API について色々調べたことを簡単にまとめておきます。 Client-side database storage が使えるブラウザ 2008 年 03 月 27 日現在では、 Safari 系のブラウザのみです。 Safari 3.1 WebKit Nightly Client-side database storage とは Selectors API とは HTML5 で定義された仕様です。詳細に関してはこちらをどうぞ。 簡単に説明すると JavaScript 内でリレーショナルデータベースを使えるということです。 もっと簡単にイメージするために、実際のコードを示すとこんな感じです。 va

    Safari 3.1 に実装された「Client-side database storage (SQL API)」とは何か? - IT戦記
    teahut
    teahut 2008/03/28
    >tx.executeSql('INSERT INTO link VALUES(NULL, ?, ?)', [elmLink.href, elmLink.textContent])... データは、クライアントサイドに保存されます... ブラウザを再起動しても失われません... 同じドメイン内で有効です... 非同期に呼び出される
  • Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記

    この XPath 使いたい>< って思うことよくありませんか? サイト見てて、あ、このボタンにグリモンであんな機能やこんな機能付けたい><!って思うこととかありますよね! そんなときに、いちいち要素の位置とか考えずに右クリックで XPath をコピペできたら嬉しいですよね>< ってことで 作ってみた イメージはこんな感じです。 これをクリックすると、右クリックされた要素の XPath がクリップボードにコピーされます。 この機能を Firebug に実装する手順 1. Firefox のプロファイルディレクトリに行く 環境 プロファイルディレクトリ WinVista C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ WinXP C:\Documents and Settings\[ユーザ名

    Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記
    teahut
    teahut 2007/11/26
    >サイト見てて、あ、このボタンにグリモンであんな機能やこんな機能付けたい><!って思うこととかありますよね!そんなときに、いちいち要素の位置とか考えずに右クリックで XPath をコピペできたら嬉しいですよね
  • JavaScript-XPath の jQuery 用のプラグインと Prototype.js 用のプラグインを公開しました - IT戦記

    以下のサイトからダウンロードしてお使いください。 Prototype.js 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/Prototype jQuery 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/jQuery 使いにくいところがあれば すぐになおしますので、コメントやブックマークなどで教えていただければ嬉しいです。 他のライブラリのプラグインに関して そのうち、開発したいなあとは思っているのですが。 そのライブラリの空気感(コンセプト)を読めないと、なかなか使いやすいプラグインは書けないので時間がかかりそうです。 もし 誰か書いてくれる人がいればとてもありがたいなあ。。。とか思っています。 いませんよねいませんよね><? 「こんな、感じで

    JavaScript-XPath の jQuery 用のプラグインと Prototype.js 用のプラグインを公開しました - IT戦記
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
    teahut
    teahut 2007/10/10
    >IE では document にそのままアクセスすると window オブジェクトの内部メソッドが実行されてしまいます。これが非常に重い... eval で var 宣言することでスコープ途中から変数を生成
  • IT戦記 - XPath は実用に耐えうるかの考察と xpath.js

    背景>< Safari 3 系から DOM Level 3 XPath が実装されました!!!キタコレ!!! Firefox 2 系は DOM Level 3 XPath が実装されている。 Opera 9 系は DOM Level 3 XPath が実装されている。 XPath 1.0 in JavaScript • Cameron McCormack's blog (以下、 xpath.js)なるものがあり Internet Explorer 6 および 7 のような DOM Level 3 XPath を実装していないブラウザでもそれ相当の機能を実装することができる ということで、以下のことを試してみたい!! Safari, Firefox, Opera の XPath のパフォーマンスはどうか? xpath.js のパフォーマンスはどうか? xpath.js は XPath 1.0

    IT戦記 - XPath は実用に耐えうるかの考察と xpath.js
    teahut
    teahut 2007/08/28
    >xpath.jsなるものがありInternet Explorer 6/7のようなXPathを実装していないブラウザでも... かなり重い(ネイティブ実装ブラウザの 200 倍)
  • JavaScript の関数を「引数そのまま返す化」

    関数を「引数そのまま返す化」 // sonomama の s Function.prototype.s = function(arg) this(arg); // 来の処理 return arg; // そのまま返す } 例1 hoge.method(); // ← この hoge を調べたい alertだけ alert(hoge); hoge.method(); 改行めんどいー。 console.logだけ console.log(hoge); hoge.method(); 改行めんどいー。 alert + そのまま返す化 alert.s(hoge).method(); // 1 ステートのまま console.log + そのまま返す化 console.log.s(hoge).method(); // 1 ステートのまま 例2 function hoge() { // ...略...

    JavaScript の関数を「引数そのまま返す化」
    teahut
    teahut 2007/05/20
    >Function.prototype.s = function(arg) { this(arg); return arg; }; console.log.s(hoge).method(); return console.log.s(fuga());
  • Firebug の monitorEvents unmonitorEvents がバグってる件とそのバグ修正方法 - IT戦記

    以下のエントリーを見て FirebugのmonitorEventsが動かない - Enjoy*Study で、実際はどうなんだろうと試してみた。 ちなみに monitorEvents とは Firebug のコンソールで >>> monitorEvents(document.body) と打ち込むと document.body にあがってきた全てのイベントをモニタリングできる >>> monitorEvents(document.body, 'click') と打ち込むと document.body にあがってきたクリックイベントをモニタリングできる >>> monitorEvents($('target')) もちろん document.body 以外もできる そんな機能 たしかに、現在の Firebug 1系 ではこれがバグっててまったく機能してない! なんで今まで気がつかなかったんだ

    Firebug の monitorEvents unmonitorEvents がバグってる件とそのバグ修正方法 - IT戦記
    teahut
    teahut 2007/05/10
    >Firebug のコンソールで>>> monitorEvents(document.body)と打ち込むと document.body にあがってきた全てのイベントをモニタリングできる... >>> monitorEvents(document.body, 'click')...現在の Firebug 1系 ではこれがバグっててまったく機能してない
  • MochiKit-1.3.1 と dojo-0.3.1 との連携 - IT戦記

    今日 d:id:Voluntas:20061004 さんからトラックバックをいただいたので試してみました。 たとえば それぞれ、こんな感じで解凍したまんま配置します。 sample.html の内容は こんな感じにしてみました。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Language" content="ja" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>hoge</title> <meta h

    MochiKit-1.3.1 と dojo-0.3.1 との連携 - IT戦記
    teahut
    teahut 2007/05/06
    >var MochiKit = { __compat__: true } という記述は、 MochiKit の様々なクラスをグローバル領域にエクスポートするためのものです
  • JavaScript で簡単にスタックトレースを取るテクニック

    Firebug を使うと console.trace(); これだけでスタックトレースを取ることが出来ます。 でも、 XUL の開発とか、人のブラウザで Firebug が入ってない時とかは出来ないので、 そういう時は、 alert(Error().stack); これだけで出来ます。まあ Firefox only ですが。

    JavaScript で簡単にスタックトレースを取るテクニック
    teahut
    teahut 2007/05/02
    >console.trace();
  • MochiKit を dojo toolkit の管理下に置く際の注意 - IT戦記

    MochiKit を dojo toolkit で管理しようと思った http://svn.mochikit.com/mochikit/trunk/MochiKit/MochiKit.js if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') { if (typeof(dojo) != 'undefined') { dojo.provide('MochiKit.MochiKit'); dojo.require("MochiKit.*"); }MochiKit はその辺も考慮されて作られているようだ。 しかし、実際に使ってみると <script type="text/javascript" src="/js/dojo.js"></script> <script type="text/javascript"> // <!

    MochiKit を dojo toolkit の管理下に置く際の注意 - IT戦記
  • IT戦記 - ベンチマークツール公開

    最近 またしても、JavaScript のベンチマークを取らなければならない仕事が来たので、 ツールをキレイにしました。 それを公開します。(ダウンロードは一番下にあります。) 使い方 script タグで benchmark.js を読み込んで、以下のように連想配列の関数群を渡すだけです。 benchmark({ 'ほげほげの計測': function() { ...... }, 'ふがふがの処理の計測': function() { ...... } }); 結果は以下のように表示されます。 *** ほげほげの計測 *** result : 0.0011[ms] *** ふがふがの処理の計測 *** result : 0.111[ms] 表示された秒数は 関数の中身を一回だけ実行する時間です。 関数呼び出しのコストは差し引かれています。 また、FireBug を使っている場合は benc

    IT戦記 - ベンチマークツール公開
    teahut
    teahut 2007/04/12
    >script タグで benchmark.js を読み込んで、以下のように連想配列の関数群を渡すだけです
  • それすぐ実行!JavaScript! - IT戦記

    思った JavaScript はすぐに実行してみましょう! ブラウザの URL 入力欄に javascript:(function() { /*実行したいコードを書く*/ })()FireBug を使ってる人は、コンソール開いて実行したいコードを書く。 たとえばこんなことができます。 これらの例は僕が日頃使っているものです。 グローバルで使える関数を列挙する(Firefox Only) FireBug用 for(var n in window) if(typeof window[n]=='function')console.log(n); URL用 javascript:(function(){var b='';for(var n in window)if(typeof window[n]=='function')b+=n+"\n";alert(b)})() Object.prototyp

    それすぐ実行!JavaScript! - IT戦記
    teahut
    teahut 2007/04/12
    >Object.prototype の汚染を調べる このオブジェクトってどんなだっけ? スクリプト読み込んでも大丈夫? ドキュメント内で起こったイベントを監視
  • Shibuya.es の資料 - IT戦記

    いまから発表します。 http://usrb.in/amachang/static/shibuyaes/

    Shibuya.es の資料 - IT戦記
  • IT戦記 - ActionScript の勉強会で話してキタ!

    この勉強会でしゃべってきました! http://www.wcan.jp/index.php?ID=92 名古屋ということで、ちょっと遠かったですが行って良かったです。めっちゃ楽しかった ^^ 資料を置いておきます。 ※左右キーでページ送りできます。一気にページ送りをしたいときは、スクロールバーでしてください。 ※印刷スタイルがものすごい中途半端です。(発表までに間に合わずorz)すみません。 http://usrb.in/amachang/static/wcan200701/ 今回の趣旨 まだ ActionScript 始めたばっかりで、とにかく勉強会に参加したかった。というのと、東京以外でのコミュニティってどんなものなのかなあと思って参加してみました。 名古屋の人はやさしいなあと思いました。 参考 http://un-q.net/2007/01/actionscript_2.html

    IT戦記 - ActionScript の勉強会で話してキタ!
  • IT戦記 - CSS の勉強会をしました

    2007 CSS Study Meeting http://artcode.g.hatena.ne.jp/keyword/2007%20CSS%20Study%20Meeting 発表をしましたので資料を置いておきます。 http://usrb.in/amachang/static/cssstudy/200701/ Firefox で動きます。IE でもぎりぎりうごきます。あ、でも、横長な表示域じゃないと崩れる可能性大です。 左右キーで操作してください。また、ソースは実行できるようになってるので、実際に実行しながら読んでいっていただけるとうれしいです。 他に事前に CSS のセレクタのバグリストとプロパティ一覧を作りました。 プロパティ一覧は element.style に辞書アタックを掛けて各種ブラウザから抽出したプロパティです。 http://usrb.in/amachang/stat

    IT戦記 - CSS の勉強会をしました
  • こんなに JavaScript やってるのに知らなかった基本文法「if in」 - IT戦記

    if 〜 in なんてあったのね。。。 知らなかった! 使い分け 3番めが if in オブジェクトが真か偽か if (obj.property) { // ... } オブジェクトにプロパティがあるかは置いといて undefined ではないことを確かめる if (typeof obj.property == 'undefined') { // ... } オブジェクトにプロパティがあるか。 if ('property' in obj) { // ... } オブジェクト自体(プロトタイプを含まない)にプロパティがあるか if (obj.hasOwnProperty('property')) { // ... } まとめ いっぱいあるなあ。 大抵、一番上のでいいがいろいろ細かい条件があるとたまにどれも必要になるときがある。 いままでは、if in を知らなかったので困ったこともあったなあ

    こんなに JavaScript やってるのに知らなかった基本文法「if in」 - IT戦記
    teahut
    teahut 2007/01/17
    >オブジェクトにプロパティがあるか。if ('property' in obj) { ... }
  • 1