スクリプトが読み込まれるまで画像の読み込みがブロックされている - 同ブログより抜粋 WebページパフォーマンスツールであるYSlowの主要開発者でありYahoo! Exceptional Performanceの開発者であるStoyan Stefanov氏がNon-blocking JavaScript Downloadsというタイトルで、ページの読み込み速度を向上させるテクニックを簡潔にまとめている。これはブロックが発生するJavaScriptの読み込みを並列化することでページの読み込み時間を短縮しようというもの。Webページの読み込み高速化に効果的な手法なのでWebデベロッパは一度目を通しておきたい。 JavaScriptの読み込み中はほかの読み込み処理がブロックされる。これをDOM経由で動的にロードするように書き換えてやれば並列して読み込まれるようになる。Non-blocking
JavaScript malaさんからコメント頂きました。 連結する文字列の長さによると思います。巨大な文字列を+=で連結すると特にIEでかなり遅くなります。[a,b,c].join("")とかstr.push(a,b,c)とか、メソッドの呼び出し回数を減らすようにすれば殆ど多くのケースでArray#push+joinの方が早いと思います。 そうか!なんか自分でArray#push&joinを使うと遅いのに、みんなそっちが速いといってるのは、str.push(a,b,c)で一度に詰めるからなんですね。でもループの中で一個ずつ詰めていったり、ちょこっとした文字列だったり、アプリケーションのメインターゲットのブラウザがFirefoxだったり、やっぱり状況によって利用すべきテクニックは結構違うのかなぁと思います(負け惜しみ)。Firefoxは、str[4]みたいにキャラクターを取れるところとか、
Movable Type 用に公開しているサイドメニューのツリー化スクリプト(改)を FC2 ブログで適用する方法です。このカスタマイズを行うことで、スクリーンショットのようにツリー化の表示が可能になります。ツリー化が可能なリストは「最近のエントリー」「カテゴリーリスト」「アーカイブリスト」「リンク」です。 なお当サイトで公開している Movable Type ツリー化スクリプトを FC2 ブログに適用するとツリーがきれいに表示されません。その点に関しましては8項を参照ください。 1.maketree.js ダウンロード 下記のリンクをクリックしてスクリプトのページへジャンプしてください。そこで maketree.js をクリックし、同じファイル名でご自身のPCに保存してください。 download 本スクリプトはUTF-8で記述していますので、ブログで使用している文字コードがUTF-8以
以下のスクリプトを他のすべてのスクリプトよりも前に読み込む。 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
先日、こんな記事を読みました。 fladdict.net blog: オンライン上swfの天才的デバッグ方法 http://www.fladdict.net/blog-jp/archives/2005/06/swf_2.php トレース使う代わりに、アウトプットしたい情報をクリップボードに送れ!! System.setClipboard(ここにデータ); 頭よすぎ。 まさに目から鱗のデバッグ方法。そんなことできるとは。 これ読んで、ふと、もしかしたら、長年不便に思ってたことを解消できるかもしれないと思い立ちました。 RakuCopy や amazie など、一度クリップボードを経由して、メールやBlogにペーストするツールを作っていると、たいていボタン一つでクリップボードに転送する機能をつけたくなります。 これは、Windows 版 IEでは可能なのですが、それ以外のブラウザでは、Java
かなりターゲットの狭いTips。役に立たない。 prototype.jsというRuby on Railsなんかのフレームワークで使われている有名なJavaScriptのライブラリがあって、これが色々と使えそうな処理を綺麗に詰め込んであり、デファクトスタンダート的な地位を確立しているのだけれど、ちょっと微妙だなーと思うところがあって、それはObject.prototypeを拡張してしまう点。 実際の弊害はこういう。 http://d.hatena.ne.jp/nazoking/20050425/1114374966 要は連想配列として使うときに困るって話。 多分prototype.jsはJavaScriptの側でロジックを組むことをあまり想定していないため、この辺の問題にあんまり配慮していないのではないかと思うのだけれど、とりあえず無理やり回避する方法を思いついたので書いてみる。 http:
昨日のonsubmit で submit ボタンを disable にしてユーザビリティを良くするにはちょっとした罠があって、それに気付かずに使うとはまってしまうかもしれないので、それもちょっと書いておく、というか今日僕自身がはまったわけだが。 罠というのは、type="submit" な input 要素、つまりは submit ボタンを onsubmit ハンドラで disable するまでは良いのですが、このとき <input type="submit" name="foo" value="bar">としていて、foo=bar という値が渡ってくることを期待し、それを内部の処理に使っていると嫌な目に逢う、という話です。先のやり方では input 要素が disable になって GET なり POST なりされるので、押したボタンに対応するパラメータが渡ってこない、というわけです。一
JavaScriptには、コレクションを列挙する"for~in"構文があります。 これはC#のforeachや、Visual BasicのFor Eachに相当する素敵でラクチンな機能か……と思いきや。検索してみると、使用している事例を全く見かけません。 その理由(?)らしきものを調べたので、まとめておきます。 class Class1 { [STAThread] static void Main(string[] args) { string srcDoc = "<html><p>line1</p><p>line2</p><p>line3</p></html>"; XmlDocument doc = new XmlDocument(); doc.LoadXml( srcDoc ); XmlNodeList pCollection = doc.GetElementsByTagName("p
ドメインウェブの設定が見つかりません 考えられる原因 ドメインウェブの設定がまだ行われていない。 ドメインウェブの設定がまだ反映されていない。(反映には数時間~24時間かかることがあります) ドメインウェブ・DNSの設定が誤っている。 アカウントが存在しない、契約が終了している、削除されている。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く