ラベル jquery の投稿を表示しています。 すべての投稿を表示
ラベル jquery の投稿を表示しています。 すべての投稿を表示

2015年12月6日日曜日

jsDelivrから 最新の各種JavaScirpt / CSSフレームワークを読みこむ URL

jsDelivrから最新のJavaScirpt/CSSフレームワークを読みこむURLのメモ。

下記の「短縮形」は本来は複数ファイルをまとめる機能だが1ファイルでも使える。(URLが短くなり、キャッシュ期間が長くなる。)


■ jQuery

https://cdn.jsdelivr.net/jquery/latest/jquery.min.js
短縮形 https://cdn.jsdelivr.net/g/jquery

v3.0.0-alpha1

https://cdn.jsdelivr.net/jquery/2/jquery.min.js
短縮形 https://cdn.jsdelivr.net/g/jquery@2

v2.1.4

https://cdn.jsdelivr.net/jquery/1/jquery.min.js
短縮形 https://cdn.jsdelivr.net/g/jquery@1

v1.11.3


■ jQuery UI

CSS
https://cdn.jsdelivr.net/jquery.ui/latest/jquery-ui.min.css

JS
https://cdn.jsdelivr.net/jquery.ui/latest/jquery-ui.min.js
短縮形 https://cdn.jsdelivr.net/g/jquery.ui

JSをjQuery(v2.X)と合わせて1ファイルにする
https://cdn.jsdelivr.net/g/jquery@2,jquery.ui

CSSでテーマを指定する場合
https://cdn.jsdelivr.net/jquery.ui/latest/themes/flick/jquery-ui.min.css
テーマを指定しないと"UI lightness"になる(参考:http://jqueryui.com/themeroller/#themeGallery


■ jQuery Mobile

CSS
https://cdn.jsdelivr.net/jquery.mobile/latest/jquery.mobile.min.css

JS
https://cdn.jsdelivr.net/jquery.mobile/latest/jquery.mobile.min.js
短縮形 https://cdn.jsdelivr.net/g/jquery.mobile

JSをjQuery(v2.X)と合わせて1ファイルにする
https://cdn.jsdelivr.net/g/jquery@2,jquery.mobile


■ Bootstrap

CSS
https://cdn.jsdelivr.net/bootstrap/latest/css/bootstrap.min.css

JS
https://cdn.jsdelivr.net/bootstrap/latest/js/bootstrap.min.js
短縮形 https://cdn.jsdelivr.net/g/bootstrap

JSをjQuery(v2.X)と合わせて1ファイルにする
https://cdn.jsdelivr.net/g/jquery@2,bootstrap


■ Bootswatch


https://cdn.jsdelivr.net/bootswatch/latest/cerulean/bootstrap.min.css
テーマもたくさん → https://www.jsdelivr.com/?query=bootswatch


■ Pure.css

https://cdn.jsdelivr.net/pure/latest/pure-min.css
短縮形 https://cdn.jsdelivr.net/g/pure


■ Normalize.css

https://cdn.jsdelivr.net/normalize/latest/normalize.min.css
短縮形 https://cdn.jsdelivr.net/g/normalize


■ Font Awesome

https://cdn.jsdelivr.net/fontawesome/latest/css/font-awesome.min.css
短縮形 https://cdn.jsdelivr.net/fontawesome/latest/css/mainfile

https://cdn.jsdelivr.net/g/fontawesome だとうまく表示されなかった。(フォントファイルへの相対パスがおかしくなる?)



ブラウザキャッシュ期間は1週間。
ただし、複数ファイルをまとめると max-age=15724800(約6ヶ月)になった。


【HTTP Response Header(抜粋)】

Server: nginx
Content-Type: application/x-javascript; charset=utf-8
Vary: Accept-Encoding
X-Version: 3.0.0-alpha1
Cache-Control: public, max-age=604800
access-control-allow-origin: *
X-Cache: HIT
x-edge-location: jptk
Content-Encoding: gzip
X-Firefox-Spdy: h2



ファイル名は"mainfile"でも代替可。minのJSまたはCSSになる。



参考:パブリックなCDNはjsdelivrかcdnjsでいいじゃん。 | Sorry for Team KILLing

2015年6月29日月曜日

JavaScript, CSSライブラリの CDN



たくさんのライブラリをホスティングしているところ

RawGit
・(cdn.rawgit.comの方は)by MaxCDN
・Github上のライブラリが対象

jsDelivr
・by MaxCDN and CloudFlare

cdnjs
・by CloudFlare

OSSCDN
・by MaxCDN



特定のライブラリのみホスティングしているところ(と言ってもGoogleとMicrosoftはそこそこ揃ってる)

Google Developers Hosted Libraries
・by Google
・AngularJSあり

Microsoft Ajax Content Delivery Network
・by Microsoft
・Bootstrap、Knockoutあり

jQuery CDN
・by MaxCDN
・jQeuryファミリーのみ

Bootstrap CDN
・by MaxCDN
・Bootstrap、Font AwesomeとBootswatchのみ

Yahoo! Developer Network
・by Yahoo
YUIPure.cssのみ
・HTTPS不可


MaxCDNがんばってる


参考
floatingdays: JavaScriptフレームワーク/ライブラリの CDNいろいろ


2013年5月1日水曜日

CDNから 各種JavaScriptライブラリを読み込むサンプルコード

下記のJavaScript(/CSS)ライブラリをCDNから読み込むためのサンプルコード。
  • jQuery
  • jQuery Mobile
  • jQuery UI
  • Twitter Bootstrap

共通事項として、URLのスキーム(http等)を省略すればhttpでもhttpsでも使える。
が、
CSSでスキームを省略するとIE8以下が2回サーバにアクセスするという問題があるので、下記ではCSSも使う場合はスキームをhttpにした。httpsで使いたい場合はhttpsにするか、上記の問題を無視していいならスキームを省略すればよい。


jQuery

cdnjs (by CloudFlare)
<script src=”//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js”></script>

Microsoft (Ajax Content Delivery Network)
<script src=”//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js”></script>

Google (Hosted Libraries)
<script src=”//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js”></script>
常に1.x系の最新版にする場合(※なぜか”2”や”1.9”という指定だと404 Not Foundになる)
<script src=”//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js”></script>

jQuery (CDN by Media Temple)
(https不可)
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
常に最新版にする場合(現時点の最新版の2.0.0ではなく1.9.1がロードされた)
<script src="http://code.jquery.com/jquery.min.js"></script>


jQuery Mobile

cdnjs (by CloudFlare)
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.1/jquery.mobile.min.css" />
<script src=”http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js”></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.1/jquery.mobile.min.js"></script>

Microsoft (Ajax Content Delivery Network)
(現時点の最新版の1.3.1がまだ無い)
<link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.3.0/jquery.mobile.structure-1.3.0.min.css" />
<script src=”http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js”></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

jQuery (CDN by Media Temple)
(https不可)
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css"/>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
常に最新版にする場合
(”1.4.0pre”になる。アルファ版未満のバージョン?)
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>


jQuery UI
テーマが”start”の場合(※cdnjsを除く)。

cdnjs (by CloudFlare)
(テーマは”lightness”と”smoothness”しかない?CSSに”custom”が付いているのはなぜ?i18nが無い)
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.2/css/smoothness/jquery-ui-1.10.2.custom.min.css" />
<script src=”http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js”></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>

Microsoft (Ajax Content Delivery Network)
(Datepikcerの日本語化もする場合)
<link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.2/themes/start/jquery-ui.min.css" />
<script src=”http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js”></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.2/jquery-ui.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.2/i18n/jquery.ui.datepicker-ja.min.js"></script>

Google (Hosted Libraries)
(Datepikcerの日本語化もする場合)
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/start/jquery-ui.min.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/i18n/jquery.ui.datepicker-ja.min.js"></script>
常に最新版にする場合
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.min.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script>

jQuery (CDN by Media Temple)
(https不可。i18nが無い。常に最新版にすることもできないようだ)
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/start/jquery-ui.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.min.js"></script>


Twitter Bootstrap
レスポンシブにして、Font Awesomeも併用した場合。

cdnjs (by CloudFlare)
(Bootswatchは無い)
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.0.2/css/font-awesome.min.css" />
<!--[if IE 7]>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.0.2/css/font-awesome-ie7.css" />
<![endif]-->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>

BootstrapCDN (by NetDNA)
Bootswatchも併用した場合。Font Awesomeを使わない場合は、no-iconsではなく通常のCSSを読み込むようにする。jQueryはBootstrapCDNからは供給されていないので例としてGoogleからにした)
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootswatch/2.3.1/united/bootstrap.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.min.css" />
<!--[if IE 7]>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome-ie7.css" />
<![endif]-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
常に最新版にする場合
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/latest/css/bootstrap-combined.no-icons.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/latest/css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootswatch/latest/united/bootstrap.min.css" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" />
<!--[if IE 7]>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/latest/css/font-awesome-ie7.css" />
<![endif]-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/latest/js/bootstrap.min.js"></script>


余談
URLがのきなみ長いのは、MicrosoftやcdnjsがGoogleに合わせてしまったからか。GoogleのURLが長いのは歴史的経緯の影響が大きいだろう。 (何回か名前が変わったが、URLのパス部分は変えなかった。今なら js.gapi.com/jqeury/1/jquery.min.js とかにできるだろうに。)
また、BootstrapCDNのPopular Files Overviewは興味深い。


参考

2013年4月28日日曜日

JSの CDNの速度比較 (2013年版)

jQueryとTwitter Bootstrapをhttpで3回ロードし、その平均値を比較してみた。


Library
CDN
load時間
https
最新版取得
jQuery 1.9.1 (min)
Google
0.215
○(メジャーバージョン番号ごと)

jQuery CDN
0.550
×
○(Nightly Build?)

Microsoft
0.139
×

cdnjs
0.069
×
Bootstrap 2.3.1 (min.js)
cdnjs
0.087
×

BootstrapCDN
0.243

以前測ったときはGoogle Hosted Libraries(当時はGoogle Ajax Librariesとかそんな名前だった気がする)が今回のcdnjs並みに速かったが、なぜかMSより遅くなっていた。CDNの拠点お日本から撤退させたのだろうか?(cdnjsは東京にも拠点がある。)

cdnjsはHTTPSも使えるし、GoogleにないjQuery MobileやFont Awesomeもあるから、今後はcdnjsでいいのかもしれない。
ただ、以前はライブラリのバージョンアップが遅かった気がするので、そのあたりは気になる。
それからBootswatchはBootstrapCDNにしかなかった。

また、jQueryの本家CDNでjQuery Mobileのlatestを取得したら1.4.0preというバージョンになった。アルファより前ということなのかな?

2012年4月11日水曜日

JavaScriptライブラリ備忘録

使ってたり、使ったことがあったり、使うことがありそうなJavaScriptライブラリを忘れないようにメモ。


2011年12月25日日曜日

2011年を振り返って

2011年も残りあとわずか。このブログに投稿した内容を振り返ってみて、今年気になったキーワードのベスト5と、それに関連する投稿を挙げてみる。


5. Android

今年は予想されていたとおり、スマホ元年になった。そしてアメリカの状況を追うように、日本でもAndroidがiPhoneを上回りシェアを伸ばしている。
”Yahoo!”や”IE”を使っていた人たちがスマホを使うようになってきた、これは個人向けのサービスだけでなく企業向けのシステムをも飲み込んでいくのだろう。
タブレットも含めたスマホ以外へのAndroidの展開については、まだなんとも言えないけれど。(むしろこちらが来たら革命的に状況が変わるかも。)



4. Amazon EC2

今年は満を持してAWSのデータセンターが日本に上陸した。もともとシンガポールでもそんなに問題はなかった(アメリカは体感できるくらい遅かった)けど、やはり東京にあるに越したことはない。
その他にもAWSは立て続けに機能が追加されている。個人的にはAmazon Linux AMIの登場が良かった。CentOSよりyumでインストールできるパッケージのバージョンが新しいし。
以前は「突然落ちる!」という話が蔓延して大丈夫かなと思ってたけど、実際に使ってみて大丈夫な部分もそうでない部分も分かってきた。
来年は色んな環境をEC2へ移行していこうかなと夢想中。



3. jQuery UI

これは今年登場したわけではないけど、個人的に今年から本格的に使い始めたのでランクイン。
いわゆる”デザイン”ができない自分にとって、jQuery UIはまさに福音だった。classを指定するだけで簡単にそれらしいサイトができあがるし、その上バラエティに富んだテーマを選ぶことができる。企業向けのWebアプリならこれで充分でしょう。
はやくGridがリリースされないかな。



2. jQuery Mobile

そしてjQuery UIの弟分ながら既に兄貴とは比べものにならないくらいメジャーになり、(自分の中では)デファクトスタンダードにまでなっているjQeury Mobile。
jQuery UIのCSS Frameworkで実装されたclassさえ指定しておけばよいというやり方をさらに進化させ、data-*属性により動きまで指定するというやり方は黒魔術的だが、覚えてしまえば手軽に使うには便利。Ajax(実際にはHijax)による遷移も含めて、もうMobileだけじゃなくてPC向けにも取り入れればいいんじゃないかと思う。
とここまで書いて気づいたが、このブログではまともにjQuery Mobileについて書いたことがなかった。マニュアルを見れば他に調べる必要もないからか。



1. Titanium Mobile

1位に輝いたのはTitanium。チタニウムではなくタイタニウム。日本ではチタンに引っ張られてチタニウムと読みたくなるが、それでもどうしてもタイタニウム。
まだ発展途上の感は強いが、JavaScriptで、AndroidとiPhoneの両方のアプリが作れるというのは便利。
フォーラム等で回答をしたり見やすいAPI Documentも作ってくれたmasuidriveさんの活躍に負うところも大きいと思う。参考情報(日本語ならなお良し)の探しやすさは往々にしてソフトウェアがブレイクするかどうかにおいて、ソフトウェアの出来よりも影響が大きかったりする。来年も期待してます。



こうして見ると、やっぱりスマホの年だったと実感する。あとはJavaScriptか。
でも、ここでは出てこなかったけど、なんだかんだで個人的には今年もPHPが中心だったなあ。でもPHPは身近過ぎて、「今年」気になったキーワードという感覚にはならないんだよなあ。

2011年9月28日水曜日

JavaScriptフレームワーク/ライブラリの CDNいろいろ


prototype.jsとかは、もういいや。


プロダクト別CDN

(2013/3/19 追記)
(追記終わり)


CDNごとの特徴
  • Google Libraries API
    • HTTPS可
    • マイナーバージョン(もしくはリビジョン番号)を省略すると、指定したメジャーバージョン(もしくはマイナーバージョン)内で最新のファイルをロードする
    • 他にもprototype.jsやDojo、Ext core等メジャーなJavaScriptフレームワークがいくつかある
  • Microsoft Ajax Content Delivery Network
    • HTTPS可
    • 他にもメジャーなjQuery Pluginがいくつかある
  • jQuery CDN (jQuery CDNjQuery CDN (jQeury Mobile)
    • HTTPS不可
  • YUI (YUI ConfiguratorYUI 2: Dependency Configurator
    • HTTPS不可
    • 複数のファイルを結合して1ファイルとしてロードできる
  • cdnjs.com
    • HTTPS可
    • 最新バージョンの適用タイミングは遅いかも?


結論


おまけ
以下のCDNは更新されていないようだ。


関連

2011年1月18日火曜日

jQuery UI Tabsでタブのリンクを静的リンクにする方法

jQuery UI Tabsでタブのリンクに普通のURLを書くと、ページ遷移なしでそのURLのHTMLを読み込んでタブ内のコンテンツとして表示してくれる。スムーズでよいが、そのままでは静的なリンクにはできない。

また、タブのリンクのURLをハッシュ(「#」で始まる文字列で、要素のidを指定する)にすると、ページ内の該当要素のみをタブ内のコンテンツとして表示してくれるが、別のページへの遷移としては使えない。


なので、タブの見た目だけを使いたくて、リンクは普通に静的リンクにしたい場合はこんな感じにする。

page1.html

<div id="tabs">

<ul>
<li><a href="#tab-content">タブ1に表示するラベル</a></li>
<li><a href="page2.html">タブ2に表示するラベル</a></li>
</ul>

<div id="tab-content">
ページの内容
</div>

</div>

page2.html
<div id="tabs">

<ul>
<li><a href="page1.html">タブ1に表示するラベル</a></li>
<li><a href="#tab-content">タブ2に表示するラベル</a></li>
</ul>

<div id="tab-content">
ページの内容
</div>

</div>

JavaScript
$('#tabs').tabs({
    //Ajaxで読み込むのを阻止
    select: function(event, ui) {
        var url = $.data(ui.tab, "load.tabs");
        if (url) {
            location.href = url;
            return false;
        }
        return true;
    },
    //選択状態にするタブのindex
    selected: 0 // ← 1つ目のタブなら0、2つ目のタブなら1というように動的に変える
});

ポイント
  • tabs()のselectオプションでタブクリック時は普通にページ遷移するようにする
  • tabs()のselectedオプションで表示中のページのタブを選択状態にする
  • 表示中のページのタブのhref属性はURLではなくハッシュ(#xxxx)にすることにより、そのページのコンテンツを表示する


参考

2010年10月29日金曜日

jQuery UI 1.8.6の Minified CSS

jQuery UIのバージョン1.8.6がリリースされていた。

jQuery UI - Documentation: UI/Changelog/1.8.6

Change Logに「Minify CSS」と書いてある。
jQuery/jQuery UIは、JavaScriptはMinifyされたものも用意されているが、jQuery UIのCSSはなぜかMinifiyされたものが提供されていなかった。
これはちょっと嬉しいかもなので調べてみた。


変更内容はこんな感じらしい → Commit af582b97a70e955432fdf4123891b75d2f2c68c5 to jquery's jquery-ui - GitHub
テーマ「base」にminifiedなCSSが追加されたようだ。

Google Codeで確認してみた → jquery-ui - Project Hosting on Google Code
確かに追加されている。

GoogleのCDNで見てみた → http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/minified/jquery-ui.min.css
(最初のコメント以外は)1行で書いてある。


良い方向だと思うが、「base」以外のテーマはMin版が無いのが残念。(なぜbaseだけ?)

また、アイコンの背景画像のURLが「images/...」から始まっているので、そのままではimageディレクトリへの参照にならない。
minifiedディレクトリの中身をbaseディレクトリの中に移動してから使えということかな?(Google等の)CDNを使っている場合は参照が正しくないのでアイコンが表示されなくなる。

あと、minifiedというディレクトリに入ってるのに、ファイル名に「.min.css」って付けているのが冗長だと思うが、上記のようにファイルの移動をした時に上書きしないようにということかな。

2010年9月22日水曜日

フリーで使えるJavaScriptと CSSの CDNいろいろ

httpsが使えるのはGoogleとMSのみ。
httpsに拘らないならCached Commonsがライブラリ豊富で便利そう。
でも使いたいライブラリがGoogle Libraries APIで間に合うならGoogle Libraries APIでいいんじゃないかな。レスポンス速度が速いし。
(レスポンス速度はminファイルのロード時間を4回計った2~4回目の平均値。状況によって変わってくるだろうから、参考程度に。)


Google Libraries API

  • 主要なJavaScriptライブラリをホスティングしている
  • バージョン指定でメジャーバージョンのみの指定や、マイナーバージョンまでの指定等が可能
  • https可
  • YUIはバージョン2しかない
  • ブラウザキャッシュは1時間 or 1年間(参考:floatingdays: Google AJAX Libraries APIのブラウザキャッシュ期間
  • レスポンス速度
    • jQuery:0.069秒 
    • YUI 2 YUI Loader:0.066秒


Microsoft Ajax Content Delivery Network - ASP.NET Ajax Library
  • ASP.NET関連以外ではjQuery関連の3つをホスティングしている。Validationプラグインは便利かも?
    • jQuery
    • jQuery UI
    • jQuery Validationプラグイン
  • https可
  • ブラウザキャッシュは1年間(max-ageとExpiresが違う気がする?)
  • レスポンス速度
    • jQuery:0.161秒


YUI
  • httpsは使えない
  • JavaScript、CSSをそれぞれ1つずつにまとめられる(Combine Files)のは便利
  • ブラウザキャッシュは10年間
  • レスポンス速度
    • YUI 2 YUI Loader:0.181秒


Cached Commons


JsLoad: Remote loading API of JavaScript library
  • Google App Engineで作られている
  • 2008年10月から更新されていないようだ


JavaScript Host(←※リンク切れ)
  • 閉鎖しちゃったみたい


(2010/10/19 追加)
jQuery Code Server
  • jQuery自身によるjQueryのホスティング
  • ダウンロード用のファイルをそのままhotlinkしてよいことにしたようだ
  • jQuery UIとかプラグインは提供しないのかな?



参考

2010年7月5日月曜日

jQuery UIの Datepickerで日本語のカレンダーを表示する方法

(2010/07/05追記:年月選択のオプションと、その見た目の調整のCSSを追加した。)
(2013/05/01変更:CSSがmin対応したので変更した。)

必要なJavaScriptとCSSは、全てGoogleがホスティングしてくれてた。
(2010/10/12追記:日本の祝日を表示するGCalendar HolidaysだけはGoogleはホスティングしていない。)


サンプルコード

<!DOCTYPE html>
<html lang="ja">
<head>
<title>Datepicker</title>

<!-- jQuery UIのCSSファイルの読み込み -->
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.min.css" />

<!-- 見た目の調整 -->
<style>
.ui-datepicker td span, .ui-datepicker td a {
    text-align: center;    /* 日付はセンタリングの方が好き */
}
/* 2011/4/25 削除 (土日の背景色はGClendar Holidaysが付けてくれる)
.ui-datepicker-week-end .ui-state-default {    / * 土日の背景を変える * /
    background-image: none;
    background-color: #b4ebfa;
}
*/
.ui-datepicker select.ui-datepicker-year, .ui-datepicker select.ui-datepicker-month {
    width: auto;    /* そのままだと改行してしまう */
}
.ui-datepicker select.ui-datepicker-month {
    margin-left: 1em;    /* ちょっと離すほうが好き */
}
</style>

</head>
<body>

<input id="test" type="text" />


<!-- JavaScriptファイルの読み込み -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>

<!-- 日本語カレンダーを表示するにはこれも要る -->
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script>

<!-- こちらなら日本だけでなく全てのローカライズができるが、ファイルサイズが大きい
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery-ui-i18n.min.js"></script>
-->

<!-- 2010/10/12追記:日本の祝日も表示 -->
<script src="gcalendar-holidays.js"></script>

<script>
$(function() {
    //テキストボックスにカレンダーをバインドする(パラメータは必要に応じて)
    $("#test").datepicker({
        //regional: "ja",    //日本語化 (2011/4/25 削除、要らなくなったみたい)
        showButtonPanel: true,    //「今日」「閉じる」ボタンを表示する
        firstDay: 1,    //週の先頭を月曜日にする(デフォルトは日曜日)
      
        //年月をドロップダウンリストから選択できるようにする場合
        changeYear: true,
        changeMonth: true,
      
        //選択可能な日付の範囲を限定する場合(月は0~11)
        minDate: new Date(2010, 6 - 1, 16),
        maxDate: new Date(2010, 8 - 1, 15)
    });
});
</script>

</body>
</html>

jQuery UIのテーマ(外観のデザイン)はjQuery UI - ThemeRollerで見られる。


Datepickerのローカライズ用ファイルは、Google AJAX Libraries APIjQuery UI on Google Codeと同じディレクトリ構成だったので見つけられた。(余談だがi18nディレクトリには今のところDatepickerのローカライズ用ファイルしか無いようだ。)
Google Codeの方には最小化されたファイル(xxx.min.js)は無かったが、AJAX Libraries APIの方にはあった。(ローカライズ用JSファイルは最小化してもそれほどファイルサイズが小さくならないけど。)CSSはminは無いようだ。
ちなみにjQuery UI本家のDatepickerのデモでもGoogle AJAX Libraries API(きちんとmin.jsの方)のを使っていた。


Google AJAX Libraries APIを使う場合にバージョンアップで突如使えなくなるのを回避したいなら、jQueryとjQuery UIのバージョンはリビジョンまでしっかり指定しておいた方が無難。


(2010/08/19追記)
GCalendar Holidaysを使えば、Datepickerのカレンダー上に日本の祝日を表示できる。(2011/4/25 さらに追記:土日の背景色も表示してくれる。)
サンプル:GCalendar HolidaysでjQuery UI Datepickerに祝日を表示するのサンプル - ゼロと無限の間に
(追記終わり)


参考

2010年5月8日土曜日

HTML5のテンプレート例

(2010/05/28 変更:Google Analytics非同期版が正式リリースされたので、Beta版から正式版に変えた)
(2010/08/30 変更:div構造を少しすっきりさせた)
(2010/11/04 変更:Google Analyticsのコードをhead要素内へ移動)
(2011/04/25 追加:IEの条件付きコメント(Conditional Comments)の例を追加)

Google Analytics非同期版YUI 2 Grids CSSjQueryを組み込んだHTML5の例。
header要素等のHTML5の新要素は使わない。(今のところあまりメリットを感じないので、)

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>{{ TITLE }}</title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="alternate" type="application/rss+xml" href="{{ RSS_URL }}" title="{{ FEED_TITLE }}" />
<link rel="alternate" type="application/atom+xml" href="{{ ATOM_FEED_URL }}" title="{{ FEED_TITLE }}" />
<link rel="stylesheet" href="{{ STYLESHEET_URL }}" />

<style>
{{ STYLE }}
</style>
<!--[if lt IE 9.0]>
<style>
{{ STYLE for IE8- }}
</style>
<![endif]-->

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-{{ GOOGLE_ANALYTICS_ID }}']);
_gaq.push(['_trackPageview']);
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>

<!-- @see http://developer.yahoo.com/yui/grids/builder/ -->
<body id="doc4">

<div id="hd">
{{ HEADER }}
</div><!-- #hd -->

<div id="bd">
{{ MAIN_CONTENT }}
</div><!-- #bd -->

<div id="ft">
{{ FOOTER }}
</div><!-- #ft -->

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="{{ JAVASCRIPT_URL }}"></script>
<script>
{{ JAVASCRIPT }}
</script>

</body>
</html>

使うときに不要な要素は減らす。
{{ }}のところは置き換える。

PHPの場合、default_charsetを設定してあれば<meta charset="UTF-8" />は無くても大丈夫。

YUI 2 CSS Toolsはcommon.cssとか作ってその中でimportした方が変更に強い。

Google Analyticsは外部JavaScriptファイルにした方がすっきりするけど、そのためだけにHTTPアクセスを1回増やすのもどうかと思う。
「http://www.google-analytics.com/ga.js#UA-XXXXXXX-X」の形で呼び出せるようにすればいいのに。
(ただし静的なHTMLに埋め込む場合は、変更が発生したときに全部変更するのは大変なので外出ししておいた方がよい。)

jQueryはプラグインをいろいろ使うならマイナーバージョン(1.4とか)まで指定しておいた方が無難。


(2010/11/04 追記)
Google Libraries APIのCDNから読み込むJavaScriptが複数ある場合は、google.load()を使って非同期で読み込んだ方が少し早くなる場合がある。
<!-- 例:jQueryとjQuery UIを非同期で読み込む -->
<script src="//www.google.com/jsapi?key={{ GOOGLE_LOADER_API_KEY }}"></script>
<script>
google.load("jquery", "1");
google.load("jqueryui", "1");
google.setOnLoadCallback(function() {
    $(function() {
        //初期処理
    });
});
</script>

注意点としては、google.load()を使うには先に http://www.google.com/jsapi 読み込む必要がある。これを読み込むコストを考えると、必要なJavaScriptが1つしかないならgoogle.load()を使ってもそれほど効果はないか、逆に遅くなる。


(2011/03/15 追記)
シンプル版も書いておく。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>HTML5 Simple Template</title>
<link rel="stylesheet" href="stylesheet.css" />
<style>
/* STYLE */
</style>
</head>
<body>

CONTENT

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="javascript.js"></script>
<script>
/* JAVASCRIPT */
</script>
</body>
</html>

ブログ アーカイブ

tags