タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとJavascriptとscriptingに関するyouzのブックマーク (67)

  • 文字列からDOMの構築にかかる時間 « ku

    tumblr経由でGreasemonkeyスクリプトのGM_xmlhttpRequestとかで取得したhtmlとかxmlをいじる場合はxpathだと遅いことが多いかも - さらさら宇宙忍法帖を読んで というのと、実際の時間は2000ms vs 200msほどなんで、2秒待てる処理なら多少遅くたっていいじゃん、ってのもあるかもしれないです。いや2秒と0.2秒は体感できる違いだなぁ。。 体感でさすがに2秒もかかってない気がした(DOMの構築は同期的に行われるのでその間UIがフリーズするはずだけど、そういうストレスを感じてない)けどどれくらいかかっているのかも知らなかったので調べてみました。 実験 評価環境 2.16GHz/Core2Duo OSX10.4+Firefox3beta3 評価方法 AutoPagerize 0.23で文字列からDOMを構築しているcreateHTMLDocument

  • MochiKit.Async.Deferredで非同期処理の同期処理を直感的に書く « ku

    LDRize minibuffer reblog commandは中身の95%がTumblrにポストするJSActionsスクリプト、2007/6/10版 - 実用で出来ていて、今後のメンテナンス性(というかいかに自分は何もしないかという意味だけど)を考えるとTomblooのコードベースに移行しないといけないのでTomblooのコードを読みました。0.0.9のやつです。 Tombloo、0.0.7 - 実用に15日かけてリファクリタングしたと書かれていますが、読んで感動。ShareOnTumblrのときは大きく変わって各サービスをみんなおんなじインターフェイスでtumblrにpostできるような抽象化層が作られていて、ぜんぶ extract -> post っていうメソッド呼び出しで完結するようになってました。readしてwriteすれば実体がなんであろうと読めて書けるみたいなかんじです。

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Post by @malblue · 1 link

    結果はわかるんだけど、メカニズムがぴんとこなかった。以前 tombloo の人 がやってたような。 つまり obj.method(args) と method.call(obj,args) が等価だから "  TRIM ".replace(/^\s+|\s+$/g, "") "".replace.call("  TRIM ", /^\s+|\s+$/g, "") // 最初の "".replace の実体は String.prototype.replace (function(){}).call.call("".replace, "  TRIM ", /^\s+|\s+$/g, "") // 最初は [[Call]] を持つ(関数呼び出し可能な)オブジェクトなら何でもいい と変換したってことか。2 から 3 がありなのが面白い。 1 と 3 でコンテキストというかスコープは変わらない気が…

    Post by @malblue · 1 link
    youz
    youz 2008/10/01
    Date.call.call("".replace, " TRIM ", /^\s+|\s+$/g, "") //-> "TRIM" の解説
  • Kanasan.JS CodeReading #3: Days on the Moon

    Kanasan.JS の Prototype.js CodeReading #3 (参加者のブログ記事一覧) に行ってきた。今回は告知が開催間際だったせいか人数はやや少なめだったけど、内容的にはこれまでと変わらぬ濃さ。範囲としては Prototype.js 1.6.0.2 の 1352 行目から 1650 行目付近まで。 コードリーディング 無線ネットワークが提供されているはずが私のマシンでは利用できず。LAN ケーブルをお借りして有線で接続。それにしても私がこれまでに参加した Kanasan.JS でネットワーク関係の不備に陥ること 4 回中 4 回。何か呪いでもかけられているのかと疑いたくなる。 例外処理の有無 Ajax.Response#getStatusText などは try 文による例外処理を行っているのに、Ajax.Response#getResponseHeader および

  • Route 477(2008-03-03)

    ■ [biwascheme] wait-forを使って、イベント処理も同期的に書けるようにした http-requestでAjaxを同期的に書けるようにしたのに続き、 ボタンのクリック等も同期的に書けるようにしてみた。 例 (begin (print 1) (wait-for ($ "foo") "click") (print 2)) <input id="foo" type="button" value="click to proceed"> これを実行すると、まず1が表示され、ボタンが押されたあとに2が表示される。 やってることは単純で、wait-forが呼ばれたときにインタプリタの状態を保存し、 ボタンが押されたときに再開するというだけ(あと、2回実行されないように、stopObervingも行う) だけど、実際動いてみるとインパクトあるわ。 以下wait-forのソース。 defi

    Route 477(2008-03-03)
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • http://www.fitzblog.com/tabid/17782/bid/2127/Nine-Javascript-Gotchas.aspx

  • InteractiveJS その2 - nak2kのブログ

    前回のエントリが思ってた以上に反応が良かったので拡張してみました。 起動時にスクリプトのあるディレクトリに lib サブディレクトリがある場合、その中の拡張子が js のファイルを読み込んで eval します。lib ディレクトリにあらかじめ便利なスクリプトを入れておくと色々と楽できると思います。 // Interactive JavaScript. // http://d.hatena.ne.jp/nak2k/ function print(s) { WScript.StdOut.Write(s); } (function () { try { var fso = WScript.CreateObject("Scripting.FileSystemObject"); var scriptPath = fso.GetParentFolderName(WScript.ScriptFullNa

    InteractiveJS その2 - nak2kのブログ
  • Douglas Crockford's Javascript

    JavaScript Actual JavaScript Engine Performance JavaScript: The Wrrrld's Most Misunderstood Programming Language The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language A Survey of the JavaScript Programming Language Code Conventions for the JavaScript Programming Language The Little JavaScripter Private Members in JavaScript Prototypal Inherita

    youz
    youz 2008/10/01
    JSON.orgの中の人。チュートリアル、コラム、Tips、リンク色々。
  • 行数の数え方: Days on the Moon

    行数を数えているのですが、コメント欄他のstr.split(/\n/).lengthはかっこいいけどoverkill 404 Blog Not Found:javascript - String.prototype.tr() released 当でしょうか? 実際に試してみましょう。変数 s が対象文字列を指しているものとします。 // charAt var lines = 1; for (var i = 0, n = s.length; i < n; i++) if (s.charAt(i) == "\n") lines++; // Array var lines = 1; var chars = s.split(""); for (var i = 0, n = chars.length; i < n; i++) if (chars[i] == "\n") lines++; // sp

  • 時間差を設定し、最後にセットした関数だけを実行する - os0x.blog

    重たい処理があるんだけど、連続して実行したい場合にメイン処理の実行を遅延させて、最後にセットされた処理だけを実行するようなメソッドを書いてみた。例えば、コマンド入力にも使えるかも? 追記:使えそうなケース はてなスターを連打している間はカウントだけして、連打が切れたらPOSTを行うみたいな処理がすっきり書けるはず。たぶん。 var TimeLag = function(){this.initialize();}; TimeLag.prototype ={ initialize:function(ms){ this.ms = ms; this.exe = null; } ,set:function(func,obj){ if (this.exe && !this.exe.complete) { this.exe.cancel(); } return this.later(func,obj);

    時間差を設定し、最後にセットした関数だけを実行する - os0x.blog
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • プリミティブ値でもプロトタイプ的継承: Days on the Moon

    書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 404 Blog Not Found:javascript - プロトタイプ的継承 (元記事: Prototypal Inheritance) より。継承という言葉は意味が広いので、この操作に対してはチャイルドの作成といったほうが個人的にはわかりやすい。 さて、元記事で紹介されているコードではプリミティブ値からのチャイルドの作成 (継承) ができなかった。これはなぜかといえば、オブジェクト作成の際、プリミティブ値をプロトタイプ ([[Prototype]] 内部プロパティ、__proto__ プロパティ) に設定することはできないからである。 そこで、プリミティブ値が渡された場合は、それをラッパオブジェクトに変換することにする。といっても場合分けの必要はない。Object 関数を使えば、プリミティブ値

  • http://nanoflops.net/js/listc.html

    youz
    youz 2008/10/01
    Haskell等にあるリスト内包表記をJSで。["x + y|x y"].lisc(); //[5,7,9]
  • forEach色々とベンチマーク - os0x.blog

    cho45さんがCodeReposにあげていたJSEnumeratorに付随していたベンチマークでちょっと遊んでみました。 肝心なことを書き忘れていた。はっきりと差が出ているのは、10回のループをさらに1000回ループさせているからで、大抵の場合はどのメソッドを使っても体感できるほどの差は出ないと思います。 jQuery、prototype.js、MochiKit、fLDR、JSEnumeratorなどで使われているforEach関数の速度比較です。recursive eachは一応オリジナルです。 以下、実験ページ http://ss-o.net/jsenumerator/benchmark/10.html http://ss-o.net/jsenumerator/benchmark/100.html 結果 とりあえずWindowsのみmacは後で面倒だか、じゃなくて、windowsと大

    forEach色々とベンチマーク - os0x.blog
  • 無限リストと遅延評価: Days on the Moon

    IT 戦記で Haskell のリストを JavaScript で書くというのをやっている。これは面白い。ただ、そのまま書くと無限リストが無限再起に陥ってしまうので、遅延評価を行わなくてはいけない。 関数式を使った遅延評価 JavaScript で遅延評価を行うにはどうすればいいか。その答えのひとつが関数式だ。リストの各セルを、先頭の値と後続のリストという構造ではなく、先頭の値と後続のリストを返す関数という構造にしてやれば、リストの最初のセルを評価した時点で残りのセルがすべて評価されるという事態を防げる。 具体的には、リスト構築の際、後続のリストそのものの代わりにリストを返す関数を渡し、後続のリストを得るときは関数呼び出しを伴うようにすればよい。なお、ここでは空リストを表現するのに nil という特殊な値を用いる。nil は先頭の値も後続のリストも nil 自身であるリストである。 var

  • John Resig - Untold JavaScript Secrets

    I might as well come right out and say it: I’m starting work on my second JavaScript book. My first one was something of a success; it has gotten great reviews and is in its 3rd or 4th printing (I lose count). I’m in the process of pulling together materials, building outlines, and talking with publishers to make this next one happen. I have another question, related to my previous one, that’ll he

  • セッターの中で値を返す - FAX

    セッターの中で値を返す JavaScript Firefoxでは、ゲッター/セッターを使える。 すごく便利。 コードが短くなる。 セッターの中では、最後にその値を返すといい。 var obj = [ set value(value){ return this._value = value; }, get value(){ return this._value; } } さもないと以下のような、フィルター的なコードが動かない。 var value = obj.value = 'TEXT'; Permalink | コメント(0) | トラックバック(0) | 08:22