JAVASCRIPT

getElementById()を計ってみる その2

同じコードをFirefoxで計ってみたら、それほど差がなかった。

link:JavaScriptでメモ化

http://d.hatena.ne.jp/sawat/20060804 キャッシュする関数ばかり書いてたら、汎用的なメモ化機能が欲しくなったので調べてみた。 メモメモ。

link:Debugging JavaScript in Your Applications

http://www.codestore.net/store.nsf/unid/DOMT-5UBUVW?OpenDocument http://www.microsoft.com/downloads/details.aspx?familyid=2F465BE0-94FD-4569-B3C4-DFFDF19CCD99&displaylang=en 無料でダウンロードできるScript Debuggerを使った、IEでのJavaScript…

隠れたeval

prototype.jsのAjax.RequestとかのevalScripts――正式な名称はよく知らないけど、レスポンスで返されたJavaScriptを評価する機能――には、たまにひどい目にあわされる。 ごく普通の<script>〜</script>で囲まれただけのスクリプトのふりをするから、どんどんシステムに浸透して…

続・動かすやつ

http://storehouse.sakura.ne.jp/drag.html 動きがぎこちないなぁ…と思っていたら、mousemoveをハンドルするオブジェクトの問題だった。 documentのmousemoveをハンドルするようにしたら、もう少し軽快になった。 <html> <head> <script type="text/javascript"> function add_event(element, type, hand</head></html>…

Search Plus!: パネルをドラッグできるようにした

http://storehouse.quickvps.net/search_plus/search?query=%E3%82%82%E3%81%94%E3%82%82%E3%81%94 以下のようなコードで、パネルをドラッグできるようにしてみた。 function handle_drag_event() { var result_panel = $('result_panel'); var base_top = 5…

もう少し汎用化してみる

http://storehouse.sakura.ne.jp/drag.html こんな感じで。 <html> <head> <script type="text/javascript"> function add_event(element, type, handler, flag) { function handler_wrapper(e) { e = e || event; return handler(e); } if (element.addEventListener) { element.addEventListener(type,</head></html>…

グローバル…

プログラミングの習慣で、JavaScriptでもグローバル変数…というかグローバルオブジェクトに変数を作らないようにしているけど、それがいいことなのか悪いことなのかいまいち不明。世間のコードを見渡してみると、window.ほげほげな変数は見かけるし、関数も…

Search Plus!: 検索結果をタブ化したいな…

なんか、ブラウザのタブがどんどん増えていくので…

多重代入?

var foo, bar = func(); 上記のようなコードがあって、JavaScriptに多重代入なんかあったかしら?、と思っていたら、barに初期値を与えているだけだった。こんなコード、書かないで欲しい…

Search Plus!: ダブルクリックでパネルを閉じる

http://storehouse.quickvps.net/search_plus/search?query=%E4%B8%80%E8%A8%80%E3%81%84%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%8B パネル上の適当な場所のダブルクリックで、パネルを閉じるようにしてみました。 Operaはなんかうまくハンドルできない…

Search Plus!:ホイールイベントをハンドル

http://storehouse.quickvps.net/search_plus/search?query=Erlang以下のページを読んで、ホイールイベントをハンドルしてみた。 Mouse wheel programming in JavaScript http://adomas.org/javascript-mouse-wheel/ function add_wheel_event(handler) { fu…

勝手属性を取得する

こんな感じ。 <html> <head> <script> </script> </head> <body> <a href="#" foo="bar" onclick="alert(this.getAttribute('foo'));">@</a> </body> </html> WindowsのIE6/FF2/OP9では属性fooを取得できた。 HTML的にアレだけど、spanやdivを追加するよりはこっちのほうがいいなぁ。

キーイベントハンドルのsnippet

LDRをパクった参考にした。 とりあえず、IE/FF/Operaで動作確認。MacとSafariは不明。 Firefoxの「キー入力時に検索を開始する」はstop_eventで抑止。 <html> <head> <script> function add_event(obj, type, handler, flag) { function handler_wrapper(e) { e = e || event; re</head></html>…

link: キーイベント関連

「JavaScript@Keynavi.Net」 キーイベント処理の工夫 JavaScriptバグ&回避法リスト : 4. イベント(キー入力)編 Javascript keyCode checker tool あっちを立てればこっちがたたずで…うーん。おまけに、自分のキーボードのバインディングを変えてたりするし…

link:InterActive DHTML Tutorial 11

http://www.useractive.com/learning/dhtml/ わかりやすそうなのでメモ。 後で読もう。

xhr()

適当に。 var xhr = (function() { var func = null; var funcs = [function() { return new XMLHttpRequest(); }, function() { return new ActiveXObject('Msxml2.XMLHTTP'); }, function() { return new ActiveXObject('Microsoft.XMLHTTP'); }] for (var…

Venkmanに助けられた

癖がありすぎて使えないなーとおもってたVenkmanに助けられた。 ステップ実行は強力だな…

末尾再帰をwhileに

function fib(a, b) { return (a > 10) ? a : fib(b, a+b); } function fib2(a, b) { var _a; while (a < 10) { _a = a; a = b; b = _a + b; } }

link: Multi-threaded execution of code. Javascript threads.

http://www.javascript-examples.com/javascript-threads あとで読む。

ATF JavaScript Debugger Demo

http://www.eclipse.org/atf/flash/index4.php 今日も今日とてprintfデバッグの日々。Venkmanに慣れない…なので、また探してみる。 RadRailsと連携できるかは不明。どんなもんだろ?

Venkman

Venkman JavaScript Debugger project page(和訳 Venkman 早わかり(Walkthrough) Venkman のブレークポイント使用法 Venkman JavaScriptデバッガ 日本語パック JavaSriptデバッガ。

forwardable.js

ラッパーのメソッド/変数をDOMオブジェクトにディスパッチしてみる。forwardable.jsがこんな感じ。 def_delegator = function(self, accessor, method_or_variable, ali) { if(!ali) ali = method_or_variable; var receiver = accessor[method_or_variable]…

ifilter

よく分かんないので、コードを読む。 function (pred, seq) { var m = MochiKit.Base; seq = MochiKit.Iter.iter(seq); if (pred === null) { pred = m.operator.truth; } return {repr:function () { return "ifilter(...)"; }, toString:m.forwardCall("re…

imap

コードを読む。 function (fun, p, q) { var m = MochiKit.Base; var self = MochiKit.Iter; var iterables = m.map(self.iter, m.extend(null, arguments, 1)); var map = m.map; var next = self.next; return {repr:function () { return "imap(...)"; },…

grepの高速化

APIリファレンスのインクリメンタル検索は、keyup毎に全divを検索しているので、前回の検索結果をキャッシュするように修正してみた。 追記 さらに修正。 var headers = null; var stack = []; function Grep(keyword, elements, then_fn, else_fn) { this.k…

MochiKit API Reference

http://storehouse.sakura.ne.jp/mochikit_reference/reference/ MochiKitの練習ということで、インクリメント検索できるMochiKitのAPIリファレンスをRailsで作ってみました。 ヒマな方は使ってみてください。 ソース一式 http://storehouse.sakura.ne.jp/ha…

いくつかメモ

XML.com: Tuning AJAX Main Page - Ajax Patterns

Rhino

テストは通った。 とりあえず使えるようにする。 cat Base.js DateTime.js Format.js Iter.js Logging.js MochiKit.js > /foo/bar/MochiKit.jsという感じで、てきとーにまとめて load('/foo/bar/MochiKit.js'); 「sum」とか叩くとソースが表示されるのがよい…

exampleを読む

AJAX Tables Color Wheel Draggable Interpreter Key Events Logging Pane MochiRegExp Rounded Corners Sortable Tables view-source 一番、参考になりそうなので、ぼちぼち読んでいく予定。