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

  • どうしても眠いときのための JavaScript - IT戦記

    どうしても眠いときは、 20 分くらいの仮眠がいいといわれています。 というわけで、めざまし JavaScript を書いてみた。 javascript:var remain = 60 * 20; setInterval(function() { document.body.innerHTML = '残: ' + remain-- + ' 秒'; if (!remain) location.href='http://www.youtube.com/watch?v=b60YjaARb34'; }, 1000); void(0); というわけで、おやすみなさい。

    どうしても眠いときのための JavaScript - IT戦記
    yorihito_tanaka
    yorihito_tanaka 2009/03/04
    Mozilla Firefox 3.0.6で動作を確認した
  • Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記

    はじめに 皆様 JavaScript のスピード競争が激化し、 ECMAScript 3.1 の仕様の策定が進むなど、激動の JavaScript 時代をいかがお過ごしでしょうか。 さて今日は、今、ちまたで大ブレイクの兆しを見せている DOM Storage という仕様を紹介したいと思います。 DOM Storage とは何か まず、 DOM Storage とはどんなものなのでしょうか。 とても簡単に言ってしまえば、とてもたくさんのデータが保存できてサーバーに自動で送られない Cookie みたいなものです。 さらに、 Cookie とは違って JavaScript からとても扱い易く作られています。 では、この DOMStorage の具体的なソースコードを見てみましょう。 <!DOCTYPE html> <html> <head><title>DOMStorage の使い方</tit

    Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記
    yorihito_tanaka
    yorihito_tanaka 2008/09/24
    Cookieでない、クライアントサイド保存
  • IT戦記 - ベンチマークツール公開

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

    IT戦記 - ベンチマークツール公開
  • インターネットで手に入れられても良さそうなのに手に入らない情報まとめ - IT戦記

    以下の質問の反応をまとめてみます。 役に立ちそうな情報で、インターネットで手に入れられても良さそ… - 人力検索はてな 質問の回答、はてブ、トラックバック、ダイアリーのほうについたはてブ、コメント、などを集計しています。 まとめ ニュースのその後 (id:jane) 雑誌の記事検索 (id:natumi0128) 「SPA!」「読売ウイークリー」「AERA」は出来る → http://news.nifty.com/cs/entame/showbizddetail/fuji-320080417006/1.htm (id:muddydixon) タバコの製品情報(電話でのユーザ登録が必要なため困難。不可能ではない)→ https://www.jtad.jp/members/login/ (id:n-styles) 新聞折込チラシ (id:n-styles) スーパーの特売情報 (id:n-st

    インターネットで手に入れられても良さそうなのに手に入らない情報まとめ - IT戦記
    yorihito_tanaka
    yorihito_tanaka 2008/04/22
    スーパーのチラシは見られるが、そのスーパーが頑張ってそういうことをやっているというのが前提になる。雑誌バックナンバーは所属組織が契約していれば見られる
  • 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 を高速化する方法
  • mixi 新デザインでグリモン作ったり、スクレイピングしたり、しやすくなった - IT戦記

    今回の mixi のデザインのポイントは 全ページで prototype.js の 1.5.0_rc0 が読み込まれている 新しいデザインのページはテーブルレイアウトじゃない 新しいデザインのページは id class 付きまくり いろいろ試してみた prototype.js が読み込まれているか確認する alert(Prototype.Version); // 1.5.0_rc0 ページ内に id が何個あるか alert($$('*[id]').length); // トップページに 52 個! ページ内に class が何個あるか alert($$('*[class]').length) // トップページに 239 個! おおすごい! 試しに日記一覧ページから日記の URL を抽出するワンライナー $$('#bodyMainAreaMain dt a').filter(/view_

    mixi 新デザインでグリモン作ったり、スクレイピングしたり、しやすくなった - IT戦記
    yorihito_tanaka
    yorihito_tanaka 2007/10/01
    こうなってみると実はidやclassがスクレイピングにとってあまり重要でない、と気づいた
  • 要素をキャッシュして $ 関数をちょっと高速化 - IT戦記

    prototype.js の $ 関数で あっちこっちで、$、$、ってやるとその都度ノード探索発生してうざいので ↓prototype.js 1.5 の $ 関数 function $() { var results = [], element; for (var i = 0; i < arguments.length; i++) { element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); results.push(Element.extend(element)); } return results.length < 2 ? results[0] : results; } キャッシュしてみますた。 でも、IDがダイナミックに変更される場合(あんまな

    要素をキャッシュして $ 関数をちょっと高速化 - IT戦記
  • Prototype.js を使った JavaScript OOP 講座 #01

    社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()

    Prototype.js を使った JavaScript OOP 講座 #01
    yorihito_tanaka
    yorihito_tanaka 2006/03/17
    IT戦士
  • IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。

    以下のスクリプトを他のすべてのスクリプトよりも前に読み込む。 var nativeSetInterval = window.setInterval; _setInterval = {}; window.setInterval = function(process, delay) { var entry; if(typeof process == 'string') { entry = new _setInterval.Entry(function(){eval(process);}, delay); } else if(typeof process == 'function') { entry = new _setInterval.Entry(process, delay); } else { throw Error('第一引数が不正です。'); } var id = _setInterv

    IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。
  • 1