タグ

*javascriptと*tipsに関するgan2のブックマーク (34)

  • JavaScriptを高速化する6つのテクニック | エンタープライズ | マイコミジャーナル

    Thomas Fuchs, author of the script.aculo.us user interface JavaScript library, a member of the Prototype core team and a Ruby on Rails core alumnus. Thomas Fuchs氏が6 easy things you can do to improve your JavaScript runtime performanceにおいてJavaScriptの実行パフォーマンスを改善するための6つのテクニックを紹介している。Thomas Fuchs氏はscript.aculo.usの開発者であるとともにPrototypeコアチームのメンバーも務めている。またRuby on Railsでコアチームで開発を担当していたこともある。 JavaScriptエンジン

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

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 高速なgetElementsByClassName - 素人がプログラミングを勉強していたブログ

    追記:ちょっとコードを短くした。 メモ化、正規表現を使わない工夫、メソッド呼び出しを減らすなど、地味に努力した。 けっこう速いと思う。 引数には、順不同で複数のクラス名を渡せる("foo bar"、"bar foo"みたいに)。 if (typeof HTMLElement.prototype.getElementsByClassName!="function") HTMLElement.prototype.getElementsByClassName=function(className) { var names=className.split(/\s+/), all=this.getElementsByTagName("*"), memo={}, ret=[]; for(var i=0,l=all.length,elem,iname,flag;i<l;i++) { elem=all[i

    高速なgetElementsByClassName - 素人がプログラミングを勉強していたブログ
  • codeなにがしのソース表示ウィジェット制作ノウハウ - WebOS Goodies

    個人的にいろいろと立て込んでいて時間が経ってしまいましたが、 5 月にcodeなにがしがリニューアルしました。実は私も少しお手伝いさせていただきまして、ソースコード・ノウハウッ!のソースコード表示部分の JavaScript ウィジェットを制作しました。そこで、日は新版codeなにがしのご紹介とともに、ソースコード表示ウィジェットの制作ノウハウなどを公開します。まあ、高度なことをやっているわけではありませんが、実例として多少は世の中の役には立つかな、と思っています(^^ゞ なお、これらの情報は OpenType 様の許可をいただいて掲載しています。情報公開を快諾してくださった OpenType 様に感謝いたします。 codeなにがしについてご存じない方もおられると思いますので、簡単にご紹介を。codeなにがしはソフトウェア技術者向けのノウハウ共有サービスで、主にユーザー間の FAQ コー

  • Firefox Tips: jsファイルが直接見れなくなってしまったときの解決法 - mayokara note

    jQueryのgzip圧縮されたjsファイルをダウンロードしたら、普通のjsファイルの中身も全部見れなくなった。 耐えられない。 これの解決法。 プロファイルフォルダのmimeTypes.rdfに <RDF:Description RDF:about="urn:mimetype:externalApplication:text/x-c" NC:prettyName="" NC:path="" /> <RDF:Description RDF:about="urn:mimetype:text/x-c" NC:value="text/x-c" NC:editable="true" NC:fileExtensions="js" NC:description="JScript スクリプト ファイル"> <NC:handlerProp RDF:resource="urn:mimetype:handle

  • (function(){})() と function(){}() - IT戦記

    自分用メモ // JavaScript でクロージャを書くときこう書く事が多い (function() {})() // 何故なら // function() {}() // と書くと // function() {} が式ではなく、文として解釈されてしまうからだ。 // 文として解釈されないためには、文の途中(最初以外)に function と書いてやる必要がある // なので、まず開きカッコを書いてやる。 ( // の後に function() {} // と書いてやると function は式になる ) // 正確には、カッコの対は The Grouping Operator という演算子である。 // カッコ以外にも var a = // のように代入演算子のあとでもいい function() {} // つまり、以下のような記述も可能である。 var b = function()

    (function(){})() と function(){}() - IT戦記
  • ウノウラボ Unoh Labs: 画像の遅延読み込み

    yamaokaです。 webページの表示を高速化する手法にはいろいろありますが、 その一つとして遅延読み込みという手法があります。 初期状態で表示する必要のない要素については読み込まず、 必要になったタイミングで読み込み、表示するようにする手法です。 ページの読み込みにかかる時間の大半を 画像の読み込みが占めている場合が多いので、 画像の読み込みを遅延させるという手法が多く取られます。 検討するべきケース では、画像の遅延読み込みはどのような場合に検討されるべきでしょうか。 最初から表示されている必要がない画像が存在し、その画像のサイズが大きかったり、 そうした画像の数が多い場合は検討してみる価値があると思います。 例えば、次のようなケースです。 初期状態では表示されないブロックに属する画像が存在し、 JavaScriptで表示するかしないかを切り替えているような場合 ページのずーっと下の

  • JavaScriptによるブラウザの種類とバージョン判断

    [訳註] Linkタイトルも一部和訳しましたが、実際のLink先に和訳があるとは限りません。和訳が用意されている場合でも、文書での和訳と異なる題名となっていることがあります。 Sniffer と Detection : 前者は"嗅ぎ分け"と直訳されることが多いですが、あまり好きな表現ではないので(^^; 前者を"判別"とし、後者は"判断"というように使い分けました。 以下、このような緑色の小さな文字(要CSS対応)となっている部分が訳註です。 究極の JavaScript クライアント判別, Version 3.03 JavaScriptによってブラウザのベンダ、バージョン、オペレーティングシステムを判断 ウェブページの作成にあたっては、閲覧者が多くのベンダーによる様々なバージョンのブラウザを使用している可能性を考慮に入れる必要があります。プラグインを必要とするような特定のページ

    gan2
    gan2 2008/01/13
    すごく細かく分かる。
  • array.push(obj) より array[array.length] = obj の方が高速である - IT戦記

    事実どのブラウザでも 1.5 倍程度高速である。でも、カッコ悪いよなぁ。。赤面しちゃうよ。 書き換える?う〜ん。。。書き換える!

    array.push(obj) より array[array.length] = obj の方が高速である - IT戦記
    gan2
    gan2 2008/01/09
    「のブラウザでも 1.5 倍程度高速」「pushが使えないブラウザもある」
  • オブジェクト指向 JavaScript で陥りやすく見つけにくいミス。 - IT戦記

    まあ意味の無いクラスですけど以下のようなコレクションクラスを作ります。 var Container = function() {}; Container.prototype = { length: 0, buffer: [], add: function(obj) { this.length++; this.buffer.push(obj); }, toString: function() { var stringBuffer = ['Length is ', this.length, '. Contents are [', this.buffer, '].']; return stringBuffer.join(''); } };以下のように使います。 var firstContainer = new Container(); var secondContainer = new Cont

    オブジェクト指向 JavaScript で陥りやすく見つけにくいミス。 - IT戦記
    gan2
    gan2 2008/01/09
    教訓:初期値の設定はプロトタイプに頼らずにコンストラクタなどでする。
  • for 文 2.0(笑) - IT戦記

    まぁ、かなり知られてる話ですが JavaScript は .(ドット) の計算がかなり遅い。まぁ、簡単なスクリプトなら問題にならないが。web2.0的には大違いなのであります。ちなみに、.(ドット) の計算に比較演算の 3 倍のコストがかかる(IEはとくに)。 ということで、for 文は下のように(比較に .(ドット) を使わない)書くくせをつけましょう。地道な差が大きなパフォーマンスを生みます。 // for 文 2.0 for(var i = 0, len = array.length; i < len; i++) { .... }各種ライブラリの for 文 1.0 を for 文 2.0 化するだけで、CPU 使用率がけっこう下がりました。 予断ですが、間違っても .(ドット) を避けるために with 文を使うようなことはやめてください。 with 文のコストは 比較演算の 8

    for 文 2.0(笑) - IT戦記
    gan2
    gan2 2008/01/09
    「for(var i = 0, len = array.length; i < len; i++)」。比較するときはドットを使わないようにする。
  • ハタさんのブログ(復刻版) : javascriptを初めて学ぶ人についてのおさらい。その2

    前回のエントリが700users突入しました。ありがとうございます。参考になれば幸いです。 ということで、その2になります。 前回書いた通り、C/Javaについてはある程度の知識がある人なので、クラスなどのオブジェクト指向はちゃんと理解されているようですが、プロトタイプ指向は初めて学ぶようです。 javascript(ECMAScript)のプロトタイプは他のプロトタイプ指向言語とはひと味違う動作をするので、その点も含めておさらい プロトタイプとはなんですか?プロトタイプとは継承パターンの一つでしかないです プロトタイプは単なる継承パターンであり、単一の方向への継承しか行わない点についてはクラスベースと同じです。 var Hoge = function (){}; Hoge.prototype.methodA = function (){ return "this is methodA

    gan2
    gan2 2008/01/09
    「同一名プロパティ(slot)はプロトタイプできないのです」の手前までは読んだ
  • ハタさんのブログ : javascriptの暗黒面

    javascript の暗黒面については、ちょっと書かれているので何も言わずもがな。なのですが、最近こういった質問が増えてきたので少し書く。 via - JavaScript の暗黒面を覗く nullはオブジェクトだ! nullは歴史的理由からobjectです。なので、typeofするとobjectって返ってきます。 alert(typeof null); // object なので、この事に気がついている方は次のようなコードを書きます。 if(typeof hoge == 'undefined' || hoge == null){ // do something } たとえば、次のようなコード var hoge = function (a){ if(typeof a == 'number'){ // was number // 数値計算とか return a + 1; } if(type

    gan2
    gan2 2008/01/09
    「thisはキーワード」のところがよく分からない。
  • Function.applyを使って、クラスをMix-in - nothing but trouble

    Firebugのコードを読んでから、apply廚になりはじめている。 var Foo = function() { this.name = "Foo"; this.foo = "foo"; this.hage ="foo"; } var Bar = function() { this.name = "Bar"; this.bar = "bar"; this.hage = "bar"; } var Hoge = function() { this.name ="Hoge"; } new Hoge(); // Object name="Hoge" Foo.apply(Hoge.prototype); new Hoge(); // Object name="Hoge" foo="foo" hage="foo" Bar.apply(Hoge.prototype); new Hoge(); // O

    Function.applyを使って、クラスをMix-in - nothing but trouble
    gan2
    gan2 2008/01/08
    Foo.apply(Hoge.prototype) で Hoge に Foo のプロパティが追加される。ただし、Hoge が元々もっているプロパティは上書きされない。
  • 論理演算子(&& と ||)を応用する - てっく煮ブログ

    javascript, asjQuery のソースコードを見ていて面白いのがあった。 function add(a, b){ addImpl(b && a, b || a); } function addImpl(a, b){ // ... } 理解するためには、論理演算子を詳しく理解する必要がある。論理演算子詳細JavaScript(というか ECMAScript)の論理演算子は、評価結果が true/false で返される訳ではなく、結果が確定した時点で評価した値が返される。まずは、|| を試してみよう。 alert(2 || 0); // 2 alert(2 || 3); // 2 alert({} || null) // [object Object] alert(0 || 3); // 3 alert(0 || 0); // 0 alert(0 || undefined); //

    gan2
    gan2 2007/12/29
    jQueryのソースを読んでみようかなと思ってたところに。読んでてPerlのor dieが浮かんだ
  • Emacs で JavaScript のシンタックスエラーを検出する ― ありえるえりあ

    Recent entries 宣伝:C/C++のための開発補助ツール、GCCSenseをリリースしました matsuyama 2010-04-15 宣伝:Rubyのための開発補助ツール、RSenseをリリースしました matsuyama 2010-03-21 Emacsは死んだ matsuyama 2010-02-22 WebアプリケーションをiPhoneに対応させるための技術メモ matsuyama 2009-10-13 tokyo-emacs#x02の個人的レポート matsuyama 2009-09-07 Recent comments replica louis vuitton Anonymous User 2010-12-22 Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました Anonymous User 2010-12

  • javascript: escape(), encodeURI(), encodeURIComponent() 比較 (groundwalker.com)

    « DoBeDo 2.5 | メイン | javascript で Query String » javascript: escape(), encodeURI(), encodeURIComponent() 比較 javascript の escape(), encodeURI(), encodeURIComponent() 関数群について、どの文字がエンコードされてどの文字がエンコードされないのか分かりにくいのでまとめておく。 まずは、対象範囲 %20(半角スペース)〜%7E(チルダ~) 元データ !"#$%&'()*+,-./ 0123456789 :;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_` abcdefghijklmnopqrstuvwxyz {|}~ escape() %20%21%22%23%24%25%26%27%28%29*+%2C-

  • FireBugで使える役立つ関数テクニック色々:phpspot開発日誌

    Seifi.org Blog Archive FireBug Tips and Tricks There is so much power packed into this little FireFox plug-in. FireBugで使える役立つ関数テクニック色々。 FireBugをインストールしていても、多くの機能を使っていない方が多いのではないでしょうか? 次のような、便利な関数がFireBugには用意されています。 console.log 関数の sprintf 風使い方(次のように、sprintf 風に使えます) var x = "fubar"; var y = 543; console.log("value of x is %s and value of y is %d", x, y); console.info 関数 で情報アイコン付きでメッセージ表示 console.in

  • 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 を高速化する方法
    gan2
    gan2 2007/10/10
    すご!
  • javascriptを理解するためのたった2つの大切なこと:改

    9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を

    javascriptを理解するためのたった2つの大切なこと:改
    gan2
    gan2 2007/10/10
    最後の方にある obj.do(); は間違い? 引数nがない