タグ

ブックマーク / tokkono.cute.coocan.jp (16)

  • defer/asyncチェックツールを作りブラウザ対応状況を確認してみた | ゆっくりと…

    ちょっと前に 「scriptのdefer/asyncを理解し、ページの高速化方法を探る」 というエントリーを書きましたが、はてなのブックマーカー edvakf さんから 「Opera は defer も async も対応してないはず」 というご指摘を頂きました (edvakf さん、ありがとうございます)。 こちら と こちら (2012年11月16日:Google のドキュメントが削除されました) の表を 「対応状況」 としてそのまま流用してしまったのが失敗でした。英語をよく読めば、You can use the defer/async attribute on the following elements と書いてあります。つまり 属性は使えるけど、動作は別 とも読めるわけで…。 ということで、「defer/async チェッカー (仮)」 を作ってリベンジすることにしました。 1.

  • scriptのdefer/asyncを理解し、ページの高速化方法を探る | ゆっくりと…

    Yslow ルールでは、スクリプトはページの最後尾、つまり </body> 直前に置け、と言っています。なぜなら、スクリプトの読み込みや実行により、他のページ要素の読み込みやレンダリングがブロックされてしまうからです。 一方、古くは IE4 の時代から Microsoft はこの問題に対処するため、defer 属性という独自の解決策を実装してきました。これは HTML 4.01、XHTML 1.0、1.1 で仕様として採用され、HTML5 にも発展する形で引き継がれています。 IE 以外のブラウザも既に対応されており、IE の独自仕様という色合いが濃かった従来と異なり、これからは広く利用されていくのではないかと思います。 下のビデオは、スクリプトの位置と defer 属性のあり/なしによる、ページの読み込み/表示速度の違いを Pagetest.com でテストしてみたもので、明らかな差異が

  • データ可視化のためのグラフ描画JavaScriptライブラリ20選 | ゆっくりと…

    SixRevisionsでオンラインでグラフを描画する場合に活躍しそうなJavaScriptライブラリの特集がありましたので、紹介します。個人サイトではあまり役に立たないかもしれませんが、観ているだけで楽しくなります。元記事に敬意を表し、なるべく趣旨が異ならずかつ変な日語にならないよう心がけたつもりですが、訳に間違えがありましたら容赦願います。 2010年1月17日 by Jacob Gube 退屈な数値データを美麗かつインタラクティブに解り易く可視化するためのJavaScriptライブラリは数多くあります。通常はHTMLテーブルで表現するデータを、JavaScriptを使って可視化し美しく見せる事ができればあなたのデータはアクセシビリティーの優れたものとなるでしょう。私は2008年にデータのグラフ化&チャート化のためのJavaScriptを書き上げましたが、今回再び単なるデータに生命を

  • サイト高速化の「戦略」と「戦術」- GradeAのその先へ | ゆっくりと…

    サイト高速化をネタにした記事は星の数ほどありますし、YSlow や PageSpeed、あるいは両方同時にチェックできる GTmetrix のおかげで、アドバイスに従って問題点を一つ一つ潰し込んでいけば、着実にスコアを「Grade A」に近づけられるようになりました。 またベスト・プラクティスなんて知らなくても、「CloudFlare 導入、一発 OK!」なんていうお手軽なサービスもあります。 一方、これら個々の Tips、テクニックを断片的に積み上げていくアプローチやブラックボックス方式では、サイト全体を通して「当に最適なの?」という疑問も生じます。 別な言い方をすれば、「Grade A は取ったけど… その先は?」に対する処方箋が必要なんじゃないかと思っています。 そこで今回は、「スコア」だけでは見えてこない、サイト高速化の「戦略」と「戦術」の話にチャレンジしてみたいと思います。これ

    サイト高速化の「戦略」と「戦術」- GradeAのその先へ | ゆっくりと…
  • IPアドレスの地理的位置情報が引ける無料RESTful API集 | ゆっくりと…

    IP アドレスからサーバーの地理的位置情報(Geolocation)を調べてくれるオンライン・サービスは、ちょっと検索すればすぐに見つかりますし、有料のサービスも山ほどあります。が、サーバーから任意の IP アドレスが引ける無料のサービスとなると、ちょっと時間をかけて検索しなければなりません。 今回は、海外からのコメント・スパムをブロックする WordPress プラグインを作りたくて、タイトルの様なサービスを調べてみました。 IP Geolocation の歴史も調べてみましたので、雑学系としてもご覧ください。 IP Geolocation の歴史 IP アドレスから ISP の位置情報を推定する技術は、1990年後半から研究されていました。DARPA がメインスポンサーの非営利団体 CAIDA(インターネット・インフラの発展のために、産学官が管理面・技術面で協力し合う非営利団体)が N

    IPアドレスの地理的位置情報が引ける無料RESTful API集 | ゆっくりと…
  • そのコード、本当にjQueryが必要ですか?ネイティブ関数の代替Tips集 | ゆっくりと…

    sitepoint から「当にjQueryが必要ですか?」とタイトルのついた3の記事を紹介します。 Do You Really Need jQuery? Native JavaScript Equivalents of jQuery Methods: the DOM and Forms Native JavaScript Equivalents of jQuery Methods: Events, Ajax and Utilities 言うまでもなく著者の Craig Buckler さん の趣旨は、「jQueryを使うのは止めよう」ではありません。ネイティブ関数で代替えできるのは、古い IE のサポートが必要なく、ごく簡単なケースに限られます。その代わりに得るものは「速さ」です。そこで、どの程度「速い」のかを所々 jsperf の結果で補ってみたいと思います。 また JavaScri

  • プログレッシブレンダリングでUXを向上させるJS非同期読み込みのベストプラクティス | ゆっくりと…

    ブログでは、サイトの高速化に直結する「JavaScript 非同期読み込み」の話題を多数取り上げてきました。タイトルに釣られてこの記事を見てくれている方なら Google Analytics の非同期コードスニペット はご存知でしょうし、規模の大きいサイトやアプリ用に RequireJS などのフレームワークを使っている方もいるでしょう。 GA も RequireJS も、動的に生成したスクリプト要素を DOM に埋め込む「DOM 挿入法」が用いられています。さらに遡れば、Steve Souders が 2009年4月の記事 ノン・ブロッキングなスクリプト読み込み で、6つの手法に分類しています。 果たしてこれらの方法は、サイトの高速化にとってベストなのでしょうか? 答えは2012年12月の海外記事にありました。そこでエントリーでは、日ではほとんど取り上げられていない Frame i

  • CSS/JavaScriptのAsynchronous Loadingをめぐる熱い論議 | ゆっくりと…

    2011年2月21日 追記 $script も新規参戦してきました。高々 643 バイトで、非同期読み込みや依存性の制御などができるそうです。いずれ紹介したいと思います。← 「新参の超軽量JavaScript非同期ローダー3種を徹底比較」で紹介しました! これらのローダーのうち、LABjs の作者が 「On Script Loaders」 で HeadJS と ControlJS について意見をしていて、面白そうです。そのうち日語訳や各ローダーの比較を行ってみたいと思います。 ローディング・スクリプトをめぐる議論 さてさて、エントリーの題は前述のローダーではありません。「Prefer asynchronous resources」 や Google Analytics のスニペット に示されているような、ローディング・スクリプトの変遷をまとめてみます。 これらのスクリプトのごく初期は

  • document.writeを使った遅いブログパーツ(例えばzenback)を非同期化してサイトを高速表示する方法 | ゆっくりと…

    広告やソーシャル系のサードパーティー製ブログパーツを張りたいんだけど、サイトの表示速度が遅くなるのって我慢なりませんよネ。こういったブログパーツの多くが JavaScript で作られています。自サーバーに設置したスクリプトならまだ手の打ちようはあるし、サイトでも JavaScript 読み込みを高速化するための非同期化ネタを幾つか扱ってきました。例えば Google Analitics の非同期トラッキングスニペット や LABjs、HEAD JS などの非同期ローダーが有名なところでしょう。 ところが困ったことに、こういったサードパーティ製スクリプトに document.write が使われていると、Google Analitics のようなテクニックや非同期ローダーでは、ほとんどの場合でページが白紙となってしまい使えません。Twitter や Facebook など超有名どころは既

  • 脱GitHub初心者を目指す人のREADMEマークダウン使いこなし術 | ゆっくりと…

    README がキチッと書かれているプロジェクトって、どんなに小さくても立派に見えますよネ。 GitHub の場合、大抵はマークダウン記法で書かれた README.md とか README.markdown とかいう名前のファイルが、HTML に変換 (マークアップ) されて表示されていることはご存知でしょう。 マークダウン記法自体はとても簡単なのですが、GitHub では GitHub Flavored Markdown (略して GFM) という GitHub 用にアレンジされたマークダウン・エンジンが採用されていて、一般のマークダウン・エディタでチェックしてからコミットしても、意図通りの見た目にならないことが多々あります。私 (もちろん GitHub 初心者です!) の場合、README ファイルだけで10回以上もコミットしてしまいました。「マークアップ (レンダリング) を気にして

  • クッキーによるトラッキングをリアルタイムで可視化するFirefoxアドオン | ゆっくりと…

    ネットサーフィンを楽しんだ後に、ブラウザの胃袋いっぱいにべさせられたクッキーを見てみると、「こんなに!」 と思った事ありませんか? おそらくこれらのクッキーは、どこから来て、どこを訪れたのか、私たちの行動をトラッキングをしていたんだろうなぁ、と漠然とは思っても、現実感がイマイチわかないのはなぜでしょうか? Collusion は、クッキーによるトラッキングをリアルタイムでグラフとして可視化してくれる Firefox 5 のアドオンです。これをインストールしてネットサーフィンをしてみて下さい。思わずゾッとするほど、グラフが成長しているのを見る事になるでしょう。 Collusion をインストールする と、Firefox の最下段のアドオンバー右下に 「COLLUSION」 という小さなアイコンが出現しますので、それをクリックしてみましょう。新しいタブが開き、Collusion が現れます。

  • GoogleのPage Speedサービスが教えてくれるサイト高速化の秘訣 | ゆっくりと…

    Page Speed といえば Google Chrome や Firefox のエクステンションにはじまり、同様にページの問題点を解析するオンライン・サービス Page Speed Online やその APIJavaScriptCSS ファイルの結合や圧縮、画像の最適化などを動的に実行する Apache モジュール mod_pagespeed など、サイトを高速化するためのシカケを提供してくれていましたが、ついにというか、Google の高速化ノウハウが詰まった代理サーバー自体を提供するというサービスが始まりました。 このサービスは、自サイトのサーバーで DNS CNAME(Canonical Name) エントリーを ghs.google.com に設定し、リクエストを Google のサーバーに転送、リソースの読み込み先が Google のサーバーに書き換えられた HTML

  • WordPressよりjekyllで本格的ブログを作りたくなる、かもしれないまとめ | ゆっくりと…

    ここ最近、jekyll に関する記事を目にする事が多くなりました。 以前から WordPress でオリジナルなブログを作ってみたいと思いながらも、なかなか重い腰が上がらなかった私が、なんとなく jekyll でブログを作り始めてみたら、以外にオモシロかった、という話をまとめてみたいと思います。 来生まれも育ちも違う、WordPress と jekyll を比べる こと自体はナンセンスなので、jekyll でどこまでできるかが記事のメイン・テーマです。 大抵は 「ブログなら、最低このぐらいの機能が欲しいよネ」 というのがあると思います。例えば、私も使っている Octopress では、カテゴリとタグを使い分けることが出来ません。またカテゴリを階層化したい人もいるでしょう。「続きを読む」的な機能だって、欲しいですよネ。 一方海外では、「WordPress から jekyll に乗り換えま

  • Respond.jsとレスポンシブWebデザインをめぐるベストプラクティス議論 | ゆっくりと…

    2012年2月、Modernizr 2.5 の カスタム・ビルダー から Respond.js が外されました。理由は、HTML5 Boilerplate (以下 H5BP) コミュニティでの決定です。Respond.js は、IE8 以下などのメディアクエリ未対応なブラウザにもその代替え機能を提供するスクリプトで、レスポンシブ Web デザイン を支えるスクリプトとして、H5BP に長らく (8ヶ月) 採用されてきた経緯があります。 ではなぜ、Respond.js は外されたのでしょう? 今回は、その決定を下した長~い議論 Issue #816: Revert mobile-first media queries and remove respond.js から、ベスト・プラクティスの要点と、Paul Irish の考える H5BP の理想像を読み解いてみたいと思います。 ヘタクソで読み

  • jsFiddleをとことん楽しむために知っておくと良い15の事 | ゆっくりと…

    「fiddle」 には、「いじくる, もて遊ぶ」 とか 「暇・時間をつぶす」 などの意味があるようです。「jsFiddle」 はご存知の通り、HTML + CSS + Mootools、jQuery、Prototype、Dojo などの各種 JavaScript フレームワークで、遊んでみようというサイトです。日には、「jsdo.it」 という、楽しいサイトもあるのですが、jsFiddle はまだαバージョン。次のβバージョンでは機能追加が数多く予定されており、個人的には期待大なのです。また jsdo.it にはない機能もありますので、必要に応じて使い分けるのが吉だと思います。 今回はそんな魅力が伝えられるよう、まとめてみたいと思います。 1.Firebug Liteの組み込み クロス・ブラウザのチェックも含めて、console 系のデバッグ出力 を使いたい場合、Firebug Lite

  • jQueryのDeferredとPromiseで応答性の良いアプリをー実践編 | ゆっくりと…

    前回 は、「Creating Responsive Applications Using jQuery Deferred and Promises」 の記事と jQuery のリファレンスを翻訳し、Deferred の解説をお届けしました。が、今一歩、Deferred オブジェクトの うれしさ をお伝えできていなかったように思います。今回はその反省をふまえ、単なる翻訳ではなく、元記事の文脈に沿って、Deferred オブジェクトをどのように使うと/何がうれしくて/どうしあわせになるのか、私が学習して得た事をお伝えしたいと思います。 今回は、4jsfiddle を記事に埋め込んでいます。jsfiddle 上で自由に編集してテストしてもらえばうれしいのですが、4すべて実行すると1.4MBものリソースを読み込む事になり、ブラウザに優しくありません。すぐに タブや をクリックせずに、 タブ

  • 1