We'll be back soon! Our site is currently undergoing maintenance. Please check back later.

Is your JavaScript SLOW JavaScript? Amy Hoy氏およびThomas Fuchs氏がIs your JavaScript SLOW JavaScript?において、JavaScriptアプリケーションのパフォーマンスをチェックするためのチェックリスト [PDF]を公開している。印刷して利用できるように工夫されたチェックリストで、31のチェック項目がある。紹介されているチェック項目は次のとおり。 scriptタグは正しい位置に記述されているか DOM MonsterブックマークレットでDOMを分析しパフォーマンス問題を明かにする キャッシュヘッダを正しい状態にする 結合、インライン、事前キャッシュ ミニファイ、Gzip圧縮 Smush、CSS Script、Favicon フレームワークの確認 ラナウェイタイマの管理 DOMコード効率の最大化 ノードセレ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
GoogleがWeb全体のスピードアップにいよいよ本格的に着手, 一社だけではできないと強調 からリンクのあった、 http://code.google.com/intl/ja/speed/articles/optimizing-javascript.html が日本語かと思ったら日本語じゃなかった・・・・。 いやー、意外とというか文字列については、全然知らんかった。 Closureって便利だし、「おぉ〜俺って使ってるジャン」みたいな気になれるからついつい使っちゃうんだけど、高コストなのね・・・・。反省。 ということで、超適当翻訳。どっかの誰かが書いてるかも。 前おき 著者: Google Chromeのエンジニア Gregory Baker, Software Engineer on GMail & Erik Arvidsson 推奨される経験:JavaScriptの実践的な知識 クライ
タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー
JavaScriptjQuery は機能が豊富なので、しばらく使わないと忘れてしまう。ここでは、jQuery と配列の関係に絞って目的別に逆引きできるようにしておく。配列から jQuery オブジェクトを作成$ 関数に渡せばOK $([1,2,3]) NodeList のような配列っぽいものを渡しても解釈してくれる。 $(document.getElementsByTagName("div")) // $("div") と同じ ※内部的には setArray メソッドが呼ばれてるが、外から使うことは稀。jQuery を配列のように扱う要素数を取得するlength プロパティを使えばOK。 $("div").length // document.getElementsByTagName("div").length と同じ jQuery のメソッドを使って操作する限りは、適切に length
更新履歴 2010-01-21 本エントリの内容も含めた最新の情報は下記エントリをご参照ください。 jQuery の位置・サイズ関連メソッドまとめ - Cyokodog::Diary サイズの取得 煩雑になるので height の記述しかありませんが、width に置き換えれば幅もとれます。 普通のボックス要素 height() メソッドで取得できる値には、padding や border の分の高さを含みません。 CSS の height と同じなので、css('height')メソッドで取得してもよさそうですが、こちらの場合ブラウザの種類や CSS の定義の仕方で取得される値が異なる(クロスブラウザとしての機能が完全でない)ので、純粋に px 単位の高さを取得したい場合は height() メソッドを使用した方が無難です。 スクロールバー付きボックス要素 clientHeight には
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
jQueryのコードを良くする5つのTIPS 5 Tips for Better jQuery CodeでjQueryのコードを良くする5つのTIPSが紹介されています。 DOM中にデータを保存できるdataメソッドを使おう $('selector').attr('alt', 'this is the data that I am storing'); // then later getting that data with $('selector').attr('alt'); 「alt」などのHTMLにデータを保存しておくと後で取り出せなくなってしまうことがあるから良くない。 $('selector').data('meaningfllname', 'this is the data I am storing'); // then later getting the data with
jQuery のプラグイン jquery.hotkeys.js を試してみたよ。 ダウンロードは js-hotkeys - Google Code から。 落としてきたものを展開するんだけれども、 カレントディレクトリに散乱してしまうのでディレクトリを掘った方が良いと思う。 展開した中に入っている jquery.hotkeys.js がそれ。 一緒に入ってる jQuery は 1.1.4なものの、 1.2.1もサポートされているみたいなので気にせず1.2.1で動かす。 サンプル的な動きは Live Demo を見るのが良いと思う。 インターフェイスはこうなってるらしい。 // イベント設定。 $.hotkeys.add(KEY, OPTIONS, CALLBACK); // イベント削除。 $.hotkey.remove(KEY, OPTIONS);
前回に引き続き、自分がよくあるブラウザ上での単純作業をFirebugコンソールで片付けている方法の紹介です。前回はブラウザに表示されているデータをこっち側に持ってくる作業をどうやっやるかでした。今回はブラウザの向こう側のデータをFirebugで操作するにはどうするかです。 ボタンをクリックさせる ウェブのサービスを使っていて、今までに投稿したものを全部消したくなったり(でもアカウントは消したくないとか)することがあります。管理画面で投稿を消すことはできるけど、いちいちクリックしていかないといけなくて面倒.... という時にはFirebugでフェイクのクリックイベントを作って送れば、自動でクリックさせることができます。 Twitterのfavoritesを全部外したい、というのを例としてあげます。TwitterのfavoritesはAPIがあるのでAPIを使う手もありますが、サービスによって
追記:ベンチマークをコメントを元に修正 文字列から要素を作りたい場合、 var temp = document.createElement('div'); temp.innerHTML = '<span>foo bar fizz buzz!</span>'; とやることが多い。 だが、不要なdiv要素ができて気持ち悪いし、for文でchildNodesをひとつずつ処理する必要があって、不便。 divの中にhead要素を入れることはできないので、innerHTML=''としても、要素は作られない。 RangeのcreateContxtualFragmentを使うと、こういった問題を避けることができる。 例えば、上のコードをcreateContextualFragmentを使って書き直すと、 var range = document.createRange(); range.createCon
クロスドメイン通信方法のまとめ - nopnopの日記の補足です。 ブックマークコメントでちょろっと書いたけど、nopnopさんが書いている以外の方法としてwindowのname属性を使う方法とHTML5のpostMessageがあります。 window.name これは単純な方法(その分、クロスブラウザであり割と古いブラウザでも動作する(追記:)と、思ったけどIEの動作は微妙かもしれない)で、例えばwindow.open('http://example.com/','hogehoge');といったJavaScriptでウィンドウ(タブ)を開くと、hogehogeというウィンドウが開かれます。インラインフレームなどにも同様にwindowにnameをつけることができます。この名前はwindowを作る側が設定することが出来て、作られる側はドメインなどに関係なく設定されたnameを読み取ることが
配列の中から必要な要素を抜き取りたい事は良くある。そんな時、filterメソッドが便利だ。 説明がCore JavaScript 1.5 Reference:Global Objects:Array:filter - MDCに載っているが、ちょっと複雑な例が載っていないので理解しにくい。 ちょっと複雑な例ってのはどういうのかというと、用例では要素の値が 10 以上と限定されているが、任意の数値に変えて判定させたい様な場合だ。 var array = [ 7, 8, 9, 10, 11, 12, 8, 20 ]; function isBigEnough( element, index, array ){ return element >= this; } var hoge = array.filter( isBigEnough, 9 ); // hoge = [ 9, 10, 11, 12
AutoPagerize | Google グループでの話題をきっかけに、任意のURLをベースとして、相対パスを絶対パスに変換する方法を模索してみました(IE7・Firefox2.0.0.13・Opera 9.27・Safari3.1で確認)。 ■ソース(動作サンプル) var pathToURL=(function(){ var wimg=new Image(); var work=document.createElement('iframe'); work.style.display='none'; document.body.appendChild(work); var wdoc=work.contentWindow.document; return function(path,base){ var url=path; if (!base) { // default: loc
もう2年ほど前に話題になったアレなんですけど、今更ながらあるサービスでこの仕組みの導入を検討しています。 onsubmit で submit ボタンを disable にしてユーザビリティを良くする - naoyaのはてなダイアリー submit ボタン disable 技の罠 - naoyaのはてなダイアリー onsubmit で submit ボタンを < disable にしてユーザビリティを悪くするのはやめてください - のヮの うんこ♥ onsubmit で disable にするやつ - 鷹の島 onsubmit の disable 化ですが既に議論が終わっているように、onsubmit disable の実装方法として、 onsubmit イベント発生時に submit 要素を disable にして値をサーバへ渡すための hidden 要素を生成する方法 setTimeou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く