<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Screw-Axis</title>
	
	<link>http://screw-axis.com</link>
	<description>flexible, elastic and principled.</description>
	<lastBuildDate>Fri, 04 May 2012 16:52:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/screw-axis" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="screw-axis" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>“Connection reset by peer”が出る時</title>
		<link>http://screw-axis.com/2012/05/05/connection-reset-by-peer/</link>
		<comments>http://screw-axis.com/2012/05/05/connection-reset-by-peer/#comments</comments>
		<pubDate>Fri, 04 May 2012 16:52:52 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1195</guid>
		<description><![CDATA[連休を使って、負荷のキツくなってきたサーバを移転してるのですが。覚悟していたほどではないにしても、色々と問題が発生しました。そのうちのひとつが、Amazon S3への転送に失敗するようになったこと。途中で接続が切れる様子 [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>連休を使って、負荷のキツくなってきたサーバを移転してるのですが。覚悟していたほどではないにしても、色々と問題が発生しました。そのうちのひとつが、Amazon S3への転送に失敗するようになったこと。途中で接続が切れる様子。</p>
<pre>
$ s3cmd put bkup-data:xxxx.tar.gz /tmp/xxxx.tar.gz
Connection reset: Connection reset by peer
99 retries left
</pre>
<p>使っているのは、Amazon S3のRubyライブラリ。バージョンは1.2.6です。</p>
<p>今回はCentOS 5.3から6.2への移行。S3ライブラリや転送するデータサイズ、相手のバスケットなどは変えていないので、やっぱりカーネル関係なんだろうなと。しかし、なかなか原因が特定できず、結構ハマりました。<span id="more-1195"></span></p>
<p>以前は定期的に2G～3G程度のファイルを送っていたのですが、何度やっても切られるので断念。試しに2Mくらいのファイルを送ったら成功。50Mではアウト。割と早い段階で壁に当たってしまいます。最初はtarのまとめ単位を変えるなりsplitするなりして小さくして回避しようかとも思ったのですが、このサイズだと実際問題厳しすぎる。</p>
<p>で、まぁ色々やってみて、なんとなく特定できたのはLinuxカーネル2.6.17以降でTCP Windowバッファが自動チューニングされるようになっていると。コイツが、どうにかすると他のギアと干渉しあって接続を切るような挙動をしてしまうようです。実際にそうした干渉を確認できたワケではなく、そうらしいよという記述を<a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/59331">この辺</a>や<a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/89160">この辺り</a>で読んで調整入れたところで上手くいったので、そこで止めてしまった曖昧情報で申し訳ないのですが。</p>
<p>ともあれ上手くいったのは、ソケットのバッファ用メモリサイズを手動で設定すること。<br />
/etc/sysctl.conf に、次のような記述を追加します。</p>
<pre>
net.core.rmem_max = 1747600
net.core.wmem_max = 1747600
net.ipv4.tcp_wmem = 4096 87380 1747600
net.ipv4.tcp_rmem = 4096 87380 1747600
</pre>
<p>ファイルを書き換えたら、端末をリブートするか、次のコマンドを実行。</p>
<pre>
$ sudo sysctl -p
</pre>
<p>正直なところ、バッファサイズをどの程度にすれば良いのか、よく分かりませんでした。この10倍くらいに設定している例もあれば、半分以下のものもあり。試した人の記述では、転送するファイルの総量が大きいほどに値を下げると上手くいくとありました。もちろん、下げすぎればネットワークのパフォーマンスに悪影響が出ます。せっかく自動チューニングしてくれるのだから、そちらに任せたいのですが&#8230;残念。しばらく様子見ながら、値は調整するかもしれません。</p>
<p>恐らく、S3に限らずサーバからソケット繋いでファイル転送する色々なサービスで起きる問題なんじゃないかと。同様の問題に当たって変更される場合、あくまで自己責任でお願いします。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/05/05/connection-reset-by-peer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] 1.1.0公開</title>
		<link>http://screw-axis.com/2012/04/20/jquery-mobile-1-1-0/</link>
		<comments>http://screw-axis.com/2012/04/20/jquery-mobile-1-1-0/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 05:22:12 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1179</guid>
		<description><![CDATA[jQuery Mobile初のメジャーバージョンアップとなる1.1.0が公開されました。 幾つかの大きな変更が加えられたバージョン1.1ですが、特に重要なポイントとして、固定ツールバーの変更、ページ切り替え効果の完全再開 [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2012/02/29/jquery-mobile-1-1-0-rc1/' rel='bookmark' title='[jQuery Mobile] 1.1.0 RC1公開'>[jQuery Mobile] 1.1.0 RC1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2012/01/10/jquery-mobile-v1-1/' rel='bookmark' title='[jQuery Mobile] バージョン1.0.1から1.1へのロードマップ'>[jQuery Mobile] バージョン1.0.1から1.1へのロードマップ</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jquerymobile.com/wp-content/uploads/2012/04/jquery-mobile-11.png" alt="" class="alignright" style="height: 250px;" />jQuery Mobile初のメジャーバージョンアップとなる1.1.0が公開されました。</p>
<p>幾つかの大きな変更が加えられたバージョン1.1ですが、特に重要なポイントとして、固定ツールバーの変更、ページ切り替え効果の完全再開発、フォーム要素の洗練などが挙げられます。</p>
<p>また、当面は1.0と1.1が併用されることを想定し、それぞれのバージョン向けのテーマローラーが使えるようになっています。1.0で作られたテーマは、簡単に1.1へ変換できるようです。</p>
<p>更に、長い間リリースされると伝えられてきたダウンロードビルダーは、今週中にはアルファ版がリリースされる見込みだということです。</p>
<p><a href="http://jquerymobile.com/blog/2012/04/13/announcing-jquery-mobile-1-1-0/">主な変更点</a>は、次の通り。<br />
<span id="more-1179"></span></p>
<h3>固定ツールバーの抜本的書き換え</h3>
<p>以前から問題がありつつも、ブラウザの対応状況などが原因でスクリプトによる仮想的な固定ツールバーを実装していましたが、今回 position:fixed の対応状況が一定を超えたということで、晴れてネイティブな本当の意味での「固定ツールバー」実装に踏み切られています。スクロール中に一旦ヘッダ/フッタが消える苦肉の策も、もう無くなっています(<a href="http://dev.screw-axis.com/doc/jquery_mobile/components/toolbars/fixed_toolbars/">動作確認</a>)。</p>
<p>今回は、肝となる position:fixed に対応していないブラウザ上では、固定ツールバーではなく普通のヘッダ/フッタになるようになっています。もし、どうしても古いブラウザ上でも固定的に見せたい場合、以前のバージョンで実装していた仮想的な固定ツールバーを使うことも可能です。方法については、<a href="http://dev.screw-axis.com/doc/jquery_mobile/components/toolbars/fixed_toolbars/">リファレンス</a>の「古いブラウザでの対応」を参照してください。</p>
<p>また、これに伴って、以前「次期新方式」候補だった TouchOverflow は予告通り廃止されました。</p>
<h3>ページ切り替えの書き換え</h3>
<p>新バージョンに対応したサイトを見て、最初に変化に気づくのは、これではないでしょうか。こちらも方法をかなり根本的に変えて、高速化しました。また、効果のバリエーションも増えています。また、未対応だったFirefoxへの対応も、されています。<br />
&raquo; <a href="http://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/transitions/">ページ切替効果</a></p>
<h3>jQuery 1.7.1対応</h3>
<p>今回から、正式にjQueryコアの 1.7.1 に対応しています。以前の通り 1.6.4 もサポート対象のままです。</p>
<h3>ミニフォーム要素</h3>
<p>フォーム要素に、ミニバージョンが加えられました。ツールバーの中など、狭いスペースにフォームを置きたい場合に便利です。<br />
&raquo; <a href="http://dev.screw-axis.com/doc/jquery_mobile/components/forms/mini_gallery/">ミニフォームギャラリー</a><br />
&raquo; <a href="http://dev.screw-axis.com/doc/jquery_mobile/components/forms/compare_mini/">通常サイズとの比較</a></p>
<h3>フリップスイッチのデザイン向上</h3>
<p>画面幅いっぱいにとっていた<a href="http://dev.screw-axis.com/doc/jquery_mobile/components/forms/switch/">フリップスイッチ</a>のデザインが、変更されました。<br />
あわせて、スイッチがOnとOffの中間で止められてしまうような挙動も、なくなっています。</p>
<h3>スライダーの機能強化</h3>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/components/forms/slider/">スライダー</a>に関して、2つの機能追加があります。</p>
<p>まず、値の大小が直観的に分かるように、スライダーの左側部分に色をつけられるようになりました。色はテーマで決められた「アクティブ」の色で自由に変更することは出来ませんが。<br />
<img src="http://jquerymobile.com/wp-content/uploads/2012/02/slider-highlight-300x48.png" alt="" /></p>
<p>また、stepを指定することで増減値を規定することが可能になっています。例えばstepが25であれば、指定できる値は25の倍数のみになります。</p>
<p>他にも多くの変更点があります。詳しくは<a href="http://jquerymobile.com/blog/2012/04/13/announcing-jquery-mobile-1-1-0/">元記事</a>を。<br />
また、<a href="http://dev.screw-axis.com/doc/jquery_mobile/">日本語リファレンス</a>も概ね対応しました。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2012/02/29/jquery-mobile-1-1-0-rc1/' rel='bookmark' title='[jQuery Mobile] 1.1.0 RC1公開'>[jQuery Mobile] 1.1.0 RC1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2012/01/10/jquery-mobile-v1-1/' rel='bookmark' title='[jQuery Mobile] バージョン1.0.1から1.1へのロードマップ'>[jQuery Mobile] バージョン1.0.1から1.1へのロードマップ</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/04/20/jquery-mobile-1-1-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] 1.1.0 RC1公開</title>
		<link>http://screw-axis.com/2012/02/29/jquery-mobile-1-1-0-rc1/</link>
		<comments>http://screw-axis.com/2012/02/29/jquery-mobile-1-1-0-rc1/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 06:35:11 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1168</guid>
		<description><![CDATA[バグフィックス中心の1.0.1とは異なり、かなり大きな変更を含むバージョン1.1.0の公開が近づいています。今回は変化が激しいため、RCを挟むようです。 Announcing jQuery Mobile 1.1.0 RC [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/20/jquery-mobile-photoswipe/' rel='bookmark' title='[jQuery Mobile] PhotoSwipeプラグイン'>[jQuery Mobile] PhotoSwipeプラグイン</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>バグフィックス中心の1.0.1とは異なり、かなり大きな変更を含むバージョン1.1.0の公開が近づいています。今回は変化が激しいため、RCを挟むようです。</p>
<p><a href="http://jquerymobile.com/blog/2012/02/28/announcing-jquery-mobile-1-1-0-rc1/">Announcing jQuery Mobile 1.1.0 RC1</a></p>
<p>以下、主要な変更ポイントのまとめ。<span id="more-1168"></span></p>
<h3>固定ツールバーのスキーム変更</h3>
<p>jQuery Mobileの開発スタート当初は実用的なサポートがほとんどされていなかった position:fixed ですが、最近対応状況が良くなっていることから大々的に書き直したとのこと。実際にiOS5で<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/toolbars/bars-fixed.html">試して</a>みましたが、確かに劇的にスムーズです。スクロールする度に逐一消えていたツールバーも、表示されたままで自然な感じに。ただ、ページがオペレーション可能になるまでの時間が遅くなったようにも感じますが。</p>
<p>このネイティブな新固定ツールバーが動作するのは、次のブラウザ。</p>
<ul>
<li>iOS5 – iPhone and iPad</li>
<li>Android 2.2 and 2.3</li>
<li>Android 3.x tablets (Honeycomb)</li>
<li>Android 4.x (ICS)</li>
<li>Chrome for Android (beta)</li>
<li>BB Playbook 1-2</li>
<li>BB7</li>
<li>Nook Color/Tablet</li>
<li>Kindle Fire</li>
<li>Kindle 3</li>
<li>All modern desktop browsers (IE, Firefox, Safari, Chrome, etc.)</li>
</ul>
<p>これ以外の環境では、どうやら固定ツールバーとして設定しても、通常のページと一緒にスクロールされる形になるようです。1.0で実装されていたスクリプトによる動的なものは、廃止になったということですね。</p>
<h3>ページ切り替え機能の向上</h3>
<p>重いと言われることの多いページ切り替え機能も、かなり手を入れられました。スマートデバイス上での切り替え効果実装が何故難しいのかが色々と書かれていますが、つまりは遷移前のページと後のページ両方を描画したままアニメーションすることが、スクロールページ位置などの関係で大変だということで。今回は、現在表示中のページを一度ホワイトアウトさせてしまうことで、この辺の問題を解決することにしたようです。<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-transitions.html">実際に見てみると一目瞭然</a>ですが、特に不自然さは感じないので良いと思います。</p>
<p>もうひとつ強調されているのは、Androidプラットフォームのアニメーション描画性能の悪さ。色々頑張ったけれど充分なパフォーマンスを得るのは難しかったようで、結局、3DトランスフォームをきちんとサポートしていないAndroid2系の環境などでは、効果に何を指定しても一番軽いフェードアウト/インのページ切り替え効果にしてしまうようになりました。</p>
<h3>新たなページ切り替え効果2つ実装</h3>
<p>そんなページ切り替え効果ですが、サポートの良いプラットフォームでは更にリッチに使えるよう、新たに2つの効果が追加されています。&#8221;turn&#8221; と &#8220;flow&#8221; で、試してみるなら<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-transitions.html">こちら</a>から。</p>
<h3>ページ切り替え効果のFirefoxサポート</h3>
<p>-moz系の記述が入り、FFでもページ切り替え効果が動作するようになりました。これは切り替え効果へのニーズが低いPC端末向けではなく、いずれ出るFirefoxモバイルを睨んだものでしょう。</p>
<h3>Ajaxローダのデザイン変更</h3>
<p><img src="http://jquerymobile.com/wp-content/uploads/2012/02/jqm-loader.png" class="alignright" />「よりロードが速く感じる」デザインに変更したのだとか。どうでしょう。<br />
あわせて、ローディングメッセージを表示させるかどうかのオプションや、メッセージをメソッド呼び出しのその場で引数として指定できる機能も加えられた様子。動作確認は、<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/config/loadingMessageTextVisible.html">こちら</a>で。</p>
<h3 style="clear:both;">TouchOverflow機能の廃止</h3>
<p>書籍でも「今後デフォルトになっていくのでは」と書いたTouchOverflowですが、敢無く廃止となりました。iOS5以外ではサポートが進まなかった上、そこでの実装もバグだらけ。メンテの手間が大変なので、断念とのこと。</p>
<h3>jQuery 1.7.1のサポート</h3>
<p>これまでjQuery本体は1.6.4とされてきましたが、1.7.1も正式に対応バージョンとなるようです。今後はむしろ、1.7.1を使ってくれとのこと。</p>
<h3>ミニフォームの実装</h3>
<p>固定ツールバーなどを進めていると、ヘッダ/フッタにフォーム要素を入れたくなることも。しかし従来の拡張オブジェクトではレイアウトに入れるのが難しいということで、新たに<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/forms-all-mini.html">ミニ版</a>がつくられました。</p>
<p>これを使うには、要素に data-mini=&#8221;true&#8221; を指定するだけ。実際に従来のものとどれくらい異なるのかは、<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/forms-all-compare.html">こちら</a>を参照。</p>
<h3>フリップスイッチのデザイン変更</h3>
<p>つまみの部分が小さくなったり、最近のインターフェースを研究してデザインを改善したとのこと。確認は<a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/switch/">こちら</a>から。</p>
<h3>スライダーにハイライト機能の追加</h3>
<p><img src="http://jquerymobile.com/wp-content/uploads/2012/02/slider-highlight-300x48.png" class="alignright" /><a href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/slider/">スライダー</a>の左側に色をつける「ハイライト」機能が追加されました。確かに、直観的に大きさが分かりやすいかもしれません。</p>
<p>この機能を有効にするには、要素に data-highlight=&#8221;true&#8221; を指定。</p>
<h3>スライダーにステップ指定機能追加</h3>
<p>HTML5のrange要素には既にある、step属性の指定が可能になりました。デフォルトは1ですが、ここに例えば step=&#8221;25&#8243; と指定すれば、25おきにしか数値指定できなくなります。</p>
<h3>iOSでのズーム機能のバグに対応するスクリプト</h3>
<p>iOSでデバイスの回転とページのズームに関するバグに悩まされてきましたが、<a href="http://filamentgroup.com/lab/a_fix_for_the_ios_orientationchange_zoom_bug/">Scott Jehl氏のハック</a>で対応可能になったようです。これを取り込むため、新たに zoom.iosorientationfix.js という身も蓋もない名前のユーティリティを追加。</p>
<p>更に、セレクトボックスやインプット要素がフォーカスを得た際に発生する別のズーム問題を解決するための zoom.iosfocusfix.js も用意されました。</p>
<p>ユーティリティとして $.mobile.zoom が用意され、enable()/disable()メソッドでズーム機能を切り替えることもできるようですが、まだ試せていません。</p>
<h3>AMDモジュール対応</h3>
<p><a href="http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition">AMD</a>に対応し、実行時に動的に追加モジュールをダウンロードできるようになりました。既にjQuery本体ではサポートされている機能です。</p>
<h3>data-enhance=&#8221;false&#8221;属性</h3>
<p>フレームワークが自動的に全てのマークアップを拡張してしまうため、サードパーティ製のウィジェットやライブラリで用意された要素にも自動的に拡張され、意図した動作やデザインが上書きされてしまう問題がありました。それをシンプルに解決するため、要素に data-enhance=&#8221;false&#8221; が指定されている場合には自動初期化処理が行われない仕様になりました。</p>
<p>今日は時間が無く、ざっと。<br />
いずれ<a href="http://dev.screw-axis.com/doc/jquery_mobile/">日本語リファレンス</a>の方に対応を入れ、補足します。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/20/jquery-mobile-photoswipe/' rel='bookmark' title='[jQuery Mobile] PhotoSwipeプラグイン'>[jQuery Mobile] PhotoSwipeプラグイン</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/02/29/jquery-mobile-1-1-0-rc1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] 1.0.1公開</title>
		<link>http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/</link>
		<comments>http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 23:45:35 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1156</guid>
		<description><![CDATA[jQuery Mobile、正式版になって以降で初のアップグレードが行われました。 jQuery Mobile 1.0.1 Released とはいえ、以前予告があった通り、1.1への繋ぎとなるマイナーチェンジ。機能的に [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-1-0-reference/' rel='bookmark' title='[jQuery Mobile] 日本語リファレンス1.0に更新'>[jQuery Mobile] 日本語リファレンス1.0に更新</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>jQuery Mobile、正式版になって以降で初のアップグレードが行われました。</p>
<p><a href="http://jquerymobile.com/blog/2012/01/26/jquery-mobile-1-0-1-released/">jQuery Mobile 1.0.1 Released</a></p>
<p>とはいえ、以前<a href="/2012/01/10/jquery-mobile-v1-1/">予告</a>があった通り、1.1への繋ぎとなるマイナーチェンジ。機能的に大きく変わった点は無く、バグフィックスやサポートブラウザの拡張などのメンテナンスが行われたものが1.0.1として公開になっています。</p>
<p>1.1.0は、来月下旬に公開される見通し。<span id="more-1156"></span></p>
<h3>BadaとUC Browserの公式サポート</h3>
<p>Badaプラットフォームと、バンドルされているDolphin Browserが、Samsungの協力を得て正式にサポート対象となったようです。また、中国で広く使われているUC Browserにも対応されました。</p>
<p>どちらもレンダリング性能に優れたブラウザで、対応状況は元々かなり良好だった様子。</p>
<h3>テスト用ラボへの端末寄付</h3>
<p>jQuery Mobile検証用のテストラボでは、協力各社からテスト用端末が続々と集められていて、継続的に拡大中とのこと。しかしAndroid4.0系の端末が無く、現在はエミュレータで確認している状況なので、端末の寄付を募っています。協力いただける場合は連絡欲しいとのことなので、心当たりの方は元記事を。</p>
<p>最近は、より軽量のタブレット端末用サイト開発フレームワークが色々と登場していますが、こうした<a href="http://dev.screw-axis.com/doc/jquery_mobile/overview/supported_platforms/">広範囲のサポート体制</a>はjQuery Mobileの心強い点ですね。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-1-0-reference/' rel='bookmark' title='[jQuery Mobile] 日本語リファレンス1.0に更新'>[jQuery Mobile] 日本語リファレンス1.0に更新</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] ページイベント・チートシート</title>
		<link>http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/</link>
		<comments>http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 01:05:22 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1123</guid>
		<description><![CDATA[jQuery Mobileのマークアップ用チートシートに続いて、ページ関連イベントのチートシートをつくりました。 &#187; jQuery Mobile Page Event Cheat-sheet ページ遷移時のイ [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/17/jquery-mobile-30min/' rel='bookmark' title='[jQuery Mobile] 1時間でミニサイトをつくる'>[jQuery Mobile] 1時間でミニサイトをつくる</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.screw-axis.com/jqm/jQueryMobile-PageEventCheatSheet-ja.png" target="_blank"><img src="http://dev.screw-axis.com/jqm/jQueryMobile-PageEventCheatSheet-ja.png" alt="jQuery Mobile Cheat Sheet" title="jQuery Mobile Page Event Cheat Sheet" width="240" class="alignright size-full" style="margin-left: 10px;" /></a>jQuery Mobileの<a href="/2011/12/22/jquery-mobile-cheat-sheet/">マークアップ用チートシート</a>に続いて、ページ関連イベントのチートシートをつくりました。</p>
<p><a href="http://dev.screw-axis.com/jqm/jQueryMobile-PageEventCheatSheet-ja.png" target="_blank">&raquo; jQuery Mobile Page Event Cheat-sheet</a></p>
<p>ページ遷移時のイベントは数も多く、「どの順番で呼ばれるんだっけ？」と忘れてしまうことがよくあるので、パッと見られる形であると便利かなと。</p>
<p>実はこのシートは、拙著「<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829">jQuery Mobileポケットリファレンス</a>」(今日発売のハズ)に掲載した図の、体裁を整えたものです。各イベントの内容についても解説されていますので、よろしければお手元に(宣伝)。本家ドキュメントの意訳的なものは<a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/">日本語リファレンス</a>に載せていますが、書籍の方はもう少し噛み砕いたものになっています。<span id="more-1123"></span></p>
<p>ちなみに、jQuery使いの人は習い性になってるだろう document.ready は、ランディング時には一度発生する(書いていませんが、mobileinitの後)ものの、ページ遷移時には一切発火しません。1ページだけ作っていると上手くいったような気になり、後で他のページから遷移してくると上手くいかない&#8230;というのは、よく聞く失敗なので注意してください。代替は、大抵 pageinit がオススメです。</p>
<p>余談ですがこうして見ると、やはりページ遷移時に &#8220;pagebeforechange&#8221; イベントが2度出てくるのが分かりにくいなって思います。しかも(?)初回と2回目で渡される引数の型が異なるという&#8230; こういった仕様になったのには、ちゃんと理由があるんでしょうけど。一度ちゃんと確認してみたいものです。</p>
<p>チートシートはAPI版も少しだけですが要望いただいているので、いずれ作ってみる&#8230;かもしれません。</p>
<h4>2012.01.31追記</h4>
<p>外部からのランディング時に、mobileinit直後に発生するpagebeforechangeが記載されていませんでした。<br />
これはベータ2から正式版になった際に仕様が変わったもので、キャッチアップできておらず申し訳ありません。<br />
修正版に更新しましたので、お使いの方はリロードの上、再度ダウンロードお願いします。<br />
ご指摘いただいたAT-ATさん、ありがとうございました。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/17/jquery-mobile-30min/' rel='bookmark' title='[jQuery Mobile] 1時間でミニサイトをつくる'>[jQuery Mobile] 1時間でミニサイトをつくる</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] 1時間でミニサイトをつくる</title>
		<link>http://screw-axis.com/2012/01/17/jquery-mobile-30min/</link>
		<comments>http://screw-axis.com/2012/01/17/jquery-mobile-30min/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 09:27:31 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1088</guid>
		<description><![CDATA[jQuery Mobileは、慣れてしまえば非常に扱いやすいシンプルなライブラリなのですが、どうも「とっかかり」が難しいという話を聞きました。 そこで今回は、まだプライベート・ベータですがWYSIWYGでjQuery M [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/hsbc7s.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/hsbc7s-229x300.png" alt="" title="HSBC 7s" width="229" height="300" class="alignright size-medium wp-image-1089" style="margin-left: 10px;" /></a>jQuery Mobileは、慣れてしまえば非常に扱いやすいシンプルなライブラリなのですが、どうも「とっかかり」が難しいという話を聞きました。</p>
<p>そこで今回は、まだプライベート・ベータですがWYSIWYGでjQuery Mobileサイトを構築できる無料サービス &#8220;Codiqa&#8221; を使って、ちょっとしたサイトをサクッとつくってみます。端的にホームページビルダーのようなもので、あまりの簡単さにガッカリされてしまうかもしれませんが&#8230;</p>
<p>なお、サンプルとしてつくってみるのは、3月末に東京で開催されるラグビー7人制の世界大会「HSBCセブンズ・ワールドシリーズ」の特設サイトという態です。実に11年ぶりとなる日本開催なのですが、あまりにも情報が手に入らないため、せっかくなので少しまとめておこうかと。少しでも興味あれば、是非、秩父宮(秩父ではなく、国立競技場の近く)に足を運んでください。<span id="more-1088"></span></p>
<h3>Codiqa</h3>
<p>今回使った <a href="http://codiqa.com/beta/ref/uc7z1x65">Codiqa</a> は、現時点では申し訳ありませんが未だプライベート・ベータです。パーツを画面にドラッグ&#038;ドロップすることで簡単なサイトレイアウトをつくることが出来る、便利なWYSIWYGツールになっています。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/Codiqa01.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/Codiqa01-300x185.png" alt="" title="Codiqa" width="300" height="185" class="aligncenter size-medium wp-image-1096" /></a></p>
<p>まだ開発中のため、機能は大きく制限されています。使えるパーツの数もまだ少なく、作業状態を保存しておくことも出来ません。そして作ったサイトは、全て複数ページテンプレートとして1つのファイルに収まってしまいます。ですが今回は短時間でカンタンに作ってしまおうという企画なので、敢えてこのシンプルなツールで進めてしまおうと思います。それによって、jQuery Mobileのシンプルさが見えてくるのではないかと。</p>
<p>自分でも試してみたい方は、招待状の申請をしてみてください。トップページのテキストボックスにメールアドレスを登録すると、早ければ当日中にインビテーションが届くと思います。</p>
<h3>トップページの作成</h3>
<p>まずは、トップページをつくります。</p>
<p>左側にあるCOMPONENTSから、ヘッダやテキストなどを適当にドラッグ&#038;ドロップ。非常に直観的なので、何も難しいことは無いでしょう。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/codiqa02.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/codiqa02-300x194.png" alt="" title="codiqa02" width="300" height="194" class="aligncenter size-medium wp-image-1104" /></a></p>
<p>デザインについては、後でテーマローラを使ってまとめてやるので、今は気にしません。ポイポイ配置したら、右側のプロパティウインドウで中身を埋めてやります。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/codiqa03.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/codiqa03-300x194.png" alt="" title="codiqa03" width="300" height="194" class="aligncenter size-medium wp-image-1105" /></a></p>
<p>もう、なんとなくサイトになってきました。この時点でダウンロードしてしまっても、テンプレートとしては充分有用かと思います。</p>
<h3>ページの追加</h3>
<p>続いて、他のページを追加します。左側のPAGESにある「New Page」をクリックして、新規ページを作成しましょう。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/codiqa04.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/codiqa04-300x194.png" alt="" title="codiqa04" width="300" height="194" class="aligncenter size-medium wp-image-1107" /></a></p>
<p>このボタンをクリックすると、まず識別する名前をつけるダイアログボックスが表示されます。見分けがつくよう、適当な名前を入力してください。<br />
あるいは「Homeページの下に、このページ」というような階層構造をつくりたくなるかもしれませんが、現時点ではそうした機能はありません。一番上の&#8221;Home&#8221;以外は、総てフラットに横並びの「下位ページ」となります。</p>
<p>ここでも、また白紙ページに対して自由に配置してください。今回は、モバイル端末で読みやすいように &#8220;Collapsible&#8221; を使いました。これも、COMPONENTSからドラッグして、その内部に更に &#8220;Text Block&#8221; を配置することで簡単に実装できます。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/codiqa05.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/codiqa05-300x194.png" alt="" title="codiqa05" width="300" height="194" class="aligncenter size-medium wp-image-1108" /></a></p>
<p>同じ要領で、他のページも作っていけば完成です。</p>
<h3>ダウンロードと、更なるカスタマイズ</h3>
<p>ひと通りコンテンツが作成できたら、右上の「Download App」をクリックしてコードをダウンロードします。</p>
<p>ファイルはzip形式ですが、中身は mobile_website というフォルダに app.html というファイルが1つ入っているだけです。仮に10ページ作っていたとしても、この app.html が全てのページを含んだ単体のファイルとなります。これをブラウザで開けば、デザインした通りにサイトが作られているのがわかると思います。</p>
<p>これでも良いのですが、折角なので、もう少しカスタマイズしてみましょう。この app.html をエディタで開き、直接編集してしまいます。</p>
<p>まずは、ホーム以外のページヘッダに「Home」ボタンを付けます。各ページの header に、次のようにリンクを追加しました。</p>
<pre name="code" class="html">
&lt;div data-theme="a" data-role="header"&gt;
  &lt;h3&gt;
    大会概要
  &lt;/h3&gt;
  &lt;a href="/tokyo-sevens.php" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right"&gt;Home&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>他にも、Codiqaでは入力できなかった table や dl などの要素を追加していきます。また、必要に応じて空になっている title 要素を埋めたり、faviconを設定するなどすると良いでしょう。</p>
<h3>テーマの設定</h3>
<p>最後に、独自のテーマを作成します。自分でCSSを書くのは大変なので、テーマローラーでチョチョっと。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/ThemeRoller-t7.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/ThemeRoller-t7-300x169.png" alt="" title="ThemeRoller-t7" width="300" height="169" class="aligncenter size-medium wp-image-1112" /></a></p>
<p>テーマローラーについては、日本語リファレンスで説明しているので、そちらを参照のこと。</p>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/resources/themeroller/overview/">テーマローラー概要</a></p>
<p>出来上がったら、こちらもダウンロードします。</p>
<p>そして、先ほどの app.html に取り込み。<del datetime="2012-01-18T02:38:44+00:00">次の1行を、head要素内のjquery.mobile-1.0.min.cssを読み込んでいる行(おそらく8行目)の下に挿入します。</del>まずjquery.mobile-1.0.min.cssを、構造のみのjquery.mobile.<strong>structure</strong>-1.0.min.cssに切り替えます。そして、ダウンロードしたファイルへのリンクを挿入します。リンク先は、もちろんテーマローラーで作ったcssを配置した場所にしてください。</p>
<pre name="code" class="html">
&lt;link rel="stylesheet" href="/path/to/newtheme.css" /&gt;
&lt;link rel="stylesheet" href="//code.jquery.com/mobile/1.0/jquery.mobile.structure-1.0.min.css" /&gt;
</pre>
<p><strong>注：</strong>当初、こちらは単にテーマスタイルをデフォルトCSSの後に挿入するよう記述していました。実際は、デフォルトCSSを構造のみのものに変えて、テーマファイルと合せるのが正しい方法でした。</p>
<p>これで、おおよそ完成しました。ほぼ1時間。コンテンツの中身次第では、数十分で出来るはずです。</p>
<p><a href="http://rugby-worldcup.jp/tokyo-sevens.php"><img src="http://screw-axis.com/wp-content/uploads/2012/01/hsbc7s-229x300.png" alt="" title="HSBC 7s" width="229" height="300" class="aligncenter size-medium wp-image-1089" /></p>
<p><a href="http://rugby-worldcup.jp/tokyo-sevens.php">実際のサイト</a></p>
<h3>更なる拡張</h3>
<p>ついでに、セブンズラグビーの楽しさが少しでも感じられるように、<a href="http://rugby-worldcup.jp/tokyo-sevens-slide.php">フォトギャラリー</a>など作ってみました。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/7s-photos.png"><img src="http://screw-axis.com/wp-content/uploads/2012/01/7s-photos-294x300.png" alt="" title="7s-photos" width="294" height="300" class="aligncenter size-medium wp-image-1115" /></a></p>
<p>これは、先ほど Codiqa で作ったものとは別のファイルで作っています。テーマは、同じものです。こちらも写真はFlickrから持ってきて、インターフェースは以前に紹介した<a href="/2011/12/20/jquery-mobile-photoswipe/">PhotoSwipeプラグイン</a>を使っているので、あっという間です。</p>
<p>トップページにリンクを置けば、内包されたページでも、外部に置いたページでも、同じサイトになります。</p>
<p>いかがでしょう。極めて短時間でつくったサイトですが、PCでもスマートフォンでも閲覧でき、更に<a href="/2012/01/10/jquery-mobile-seo-usability/">SEOでも優位</a>(もちろん、キーワードの選定や被リンクを増やすなど、SEO的な手当は必要ですが)な点が強みです。出力された app.html は単なるHTMLですから、デザインもいくらでも手を入れられます。HTMLとCSS、それに、ほんの少しjQuery Mobileの知識があれば、キャンペーンなどで「特設サイト」が欲しい場合など、コストをかけずにKMSを作ることが出来ます。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/01/17/jquery-mobile-30min/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] バージョン1.0.1から1.1へのロードマップ</title>
		<link>http://screw-axis.com/2012/01/10/jquery-mobile-v1-1/</link>
		<comments>http://screw-axis.com/2012/01/10/jquery-mobile-v1-1/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 14:12:21 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1078</guid>
		<description><![CDATA[昨年暮れにようやく正式版1.0がリリースされたjQuery Mobile。先ほど、今後のロードマップとして次にバージョン1.0.1が、そして次にリビジョンが上がりバージョン1.1がリリースされることがアナウンスされました [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>昨年暮れにようやく正式版1.0がリリースされたjQuery Mobile。先ほど、今後のロードマップとして次にバージョン1.0.1が、そして次にリビジョンが上がりバージョン1.1がリリースされることがアナウンスされました。</p>
<p><a href="http://jquerymobile.com/blog/2012/01/10/upcoming-releases-1-0-1-1-1-and-beyond/">Upcoming Releases: 1.0.1, 1.1, and beyond</a></p>
<p>差し当って、要点をまとめ。<span id="more-1078"></span></p>
<h3>バージョン 1.0.1</h3>
<p>これは「メンテナンス・リリース」と位置づけられています。内容的にはバグフィックスと、1.1へ繋がるマイナーな機能強化ということ。&#8221;Coming soon&#8221;となっているので、数日中には公開されるでしょう。</p>
<h3>バージョン 1.1</h3>
<p>こちらは、かなりまた大きな変化が加えられているようです。詳しくはリリース時点でリリースノートを再確認したいですが、大きな柱として挙げられているのは、次の2つです。</p>
<ul>
<li><strong>ページ切り替え効果を、よりスムーズに向上</strong></li>
<li><strong>固定ツールバーの挙動向上</strong></li>
</li>
</ul>
<p>どちらも次のバージョンで「劇的に」強化されているとのこと。開発側が多少盛っているとしても、どちらも直観的にユーザビリティと繋がる部分なので期待は高いです。</p>
<p>ページ切り替えについては、Android端末のようなアニメーションに弱いプラットフォームなどではどうしても限界があること、スクロール位置の調整や保持に時間がかかりすぎることなどから、チューニングだけではなく根本的に切り替え方法を変えることにしたようです。スクロール位置を調整せずに一度切り替えを行い、次のページをフェードさせることで不自然さを解消したとか。興味のある人は、<a href="http://jquerymobile.com/branches/fade-out-in-transition/docs/pages/page-transitions.html">こちら</a>からとりあえずのデモを見ることができます。</p>
<p>その他、現時点で(おそらく)1.1に含まれるとされているのは、元々は正式版リリース時に実装されるとされていた<strong>ダウンロード・ビルダー</strong>。jQueryコアでは既にあるお馴染みのものですが、jQuery MobileでもAMD(JSファイルの依存関係を定義するCommonJSによる標準化仕様:<a href="http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition">参照</a>)対応を済ませたところで、遂にリリースとなる模様です。</p>
<p>意外だったのは、<strong>固定ツールバー機能強化に向けた最有望株だったはずの touchOverflow が deprecated にされた</strong>ことです。iOS意外でのサポートが進まないこと、未サポートの環境と2つの手法を平行して実装することで複雑さが増すことなどから、一旦手法として放棄することにしたようで。もうすぐ発売の <a href="http://www.amazon.co.jp/dp/4774149829/ref=as_li_ss_til?tag=paiitbla-22&#038;camp=1027&#038;creative=7407&#038;linkCode=as4&#038;creativeASIN=4774149829&#038;adid=1FR0DAFBB981FFGAR2WK&#038;&#038;ref-refURL=http%3A%2F%2Fscrew-axis.com%2F%3Fp%3D1078%26preview%3Dtrue">jQuery Mobileポケットリファレンス</a> でも「おそらくは次バージョンではデフォルトでONになってる」なんて書いてしまったように思いますが&#8230; 見事にハズレました。すみません。</p>
<p>このバージョン1.1は、2月中～下旬にリリース予定。それから、およそ3ヶ月おきくらいのペースでバージョンアップさせていく予定とのことです。</p>
<h3>バージョン 1.2</h3>
<p>というわけで、予定通りなら5～6月(もしかしたら、もっと早く)にリリースになるだろうバージョン1.2についても、チョロっと。</p>
<p>読んでの通りバージョン1.0.1、1.1は共に機能向上がメインで、いわゆる「新機能」は加えられていません(ダウンロード・ビルダーはライブラリとしての機能ではないですし)。バージョン1.2では、<strong>新しいウィジェットを加えていきたい</strong>ということです。</p>
<p>新ウィジェットは、たとえば既に<a href="http://filamentgroup.com/tests/popup/docs/pages/popup/index.html">(バグありの)デモ</a>が公開されている <strong>popup</strong> など。これは、ツールチップだけでなくポップアップメニューやログインフォーム、サムネイル表示など、なんでもポップアップにできるなかなか便利そうなウィジェットです。</p>
<p>他には <strong>fetch links</strong> という新機能が紹介されています。これはどうやら、リンク先のコンテンツの一部の要素を自動的にAjaxで取得し、その内容を手元のページの指定要素内にロードするようなものの様子。たとえばタブにこのfetch linkを指定してターゲットをメイン部分にすれば、コードを書かなくてもタブによりコンテンツ部分だけが切り替わるようになります。また、一覧にスニペットが表示されていて「続きを読む」というようなリンクをつけているような場合でも、この「続き」にfetch linkを指定しておけばページ遷移せずその場で続きの文書が出てくるようなことも。</p>
<p>いずれにしろ、これはまだ「次の次の次」。お楽しみにということで。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/01/10/jquery-mobile-v1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] SEOとユーザビリティを両立させるポイント</title>
		<link>http://screw-axis.com/2012/01/10/jquery-mobile-seo-usability/</link>
		<comments>http://screw-axis.com/2012/01/10/jquery-mobile-seo-usability/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 04:44:02 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1051</guid>
		<description><![CDATA[最近、海外のブログなどでも「スマートフォン向けサイトでのSEO」というキーワードが出てくることが増えてきました。SEOは常に正解の分からない得体のしれないオカルトに満ちた世界ですが、それでも今までの様々な試行錯誤から「定 [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>最近、海外のブログなどでも「スマートフォン向けサイトでのSEO」というキーワードが出てくることが増えてきました。SEOは常に正解の分からない得体のしれないオカルトに満ちた世界ですが、それでも今までの様々な試行錯誤から「定石」のようなものは出てきています。</p>
<p>そうした「SEOの定石」と、モバイルサイトでの「ユーザビリティ」を極力両立させるポイントについて、年明けにSEARCH ENGINE LANDで良い記事(<a href="http://searchengineland.com/how-to-improve-mobile-commerce-seo-using-jqm-106278">How To Improve Mobile Commerce SEO Using JQM</a>)があがっていました。そちらを参考に他の情報を加えつつ、jQuery Mobileを活用したサイト構築について少しまとめてみます。<span id="more-1051"></span></p>
<h3>モバイル端末でのユーザビリティ</h3>
<p>Webユーザビリティ研究の第一人者、ヤコブ・ニールセンのアラートボックスの記事(<a href="http://www.useit.com/alertbox/mobile-content.html">Defer Secondary Content When Writing for Mobile Users</a>)によると、やはりモバイル端末上の画面でユーザを惹きつけるポイントは<strong>まずファーストビューでページの最も伝えたいポイントをアピールし、次により詳細な内容に誘導する</strong>ことです。</p>
<p>ファーストビューの重要性はデスクトップ向けサイトでも繰り返し言われる基本的なことで「何を今更」かもしれません。しかし、モバイル端末(たとえばiPhone 3GSサイズ)ではデスクトップに比べて<strong>ページのコンテンツ内容把握が2倍難しい</strong>(<a href="http://www.useit.com/alertbox/mobile-content-comprehension.html">Mobile Content Is Twice as Difficult</a>)という調査もあり、従来以上に強く認識する必要のあるポイントです。そうでなくても、デスクトップスクリーンはワイドになっていっていて、情報は1ページに詰め込まれていく傾向が強くなっています。しかし、モバイル端末では(こちらもスクリーンの大型化は進んできているものの)過去のデスクトップ端末に比べても遙かに小さな画面です。</p>
<p>面白いのは、モバイル端末でのブラウジング目的の最たるものは「時間つぶし」であると予測されている(<a href="http://www.useit.com/alertbox/mobile-redesign.html">Optimizing a Screen for Mobile Use</a>)にも関わらず、多くのユーザはテキスト量の多いサイトを見せられることに対してデスクトップ端末での閲覧以上に短気である(<a href="http://www.useit.com/alertbox/mobile-writing.html">Mobile Content: If in Doubt, Leave It Out</a>)ことです。この一見矛盾する2つの調査結果を、ニールセンは &#8220;<a href="Information Foraging: Why Google Makes People Leave Your Site Faster">Information foraging theory</a>&#8221; と結びつけて、<strong>モバイルでのブラウジングは時間つぶしといっても時間を無駄にしたいわけではなく、むしろ少ないコストで多くの情報を得ることを目的としたゲーム感覚であって、そのためによりダイレクトな情報を欲するのではないか</strong>と推察しています。このことは、自分に当てはめても直観的に納得のいかないものではありません。</p>
<p>そうなると、モバイル端末向けページのあるべき姿が漠然と見えてきます。「ページあたりに情報量を詰め込みすぎず、それが何のコンテンツであるのかが一目でわかるような作りにすること」と「興味を惹いた後は、じっくりと時間をかけて読めるような内容のあるページにすること」という二律背反を解決するため、インデックス/検索結果ページ -> 概要ページ -> 詳細ページというような階層構造を明確にして、ユーザに「これは求めるコンテンツなのか」を早い段階で素早く判断させてやることでしょう。そして、携帯端末向けだからといって情報を削ぎ落してしまうのではなく、最終的には充分な情報を腰を据えて得られる満足度の高いページを用意することです。</p>
<p>たとえば、Amazonは昨年末からモバイル端末向けページをマイナーチェンジしました。従来1ページにおさめられていた商品ページを複数に分割しています。</p>
<p><a href="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012185584.jpg"><img src="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012185584-200x300.jpg" alt="" title="amazon1" width="200" height="300" class="alignleft size-medium wp-image-1054" /></a><a href="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012190562.jpg"><img src="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012190562-200x300.jpg" alt="" title="amazon2" width="200" height="300" class="alignleft size-medium wp-image-1055" /></a><a href="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012191482.jpg"><img src="http://screw-axis.com/wp-content/uploads/2012/01/i_2012011012191482-200x300.jpg" alt="" title="amazon3" width="200" height="300" class="alignleft size-medium wp-image-1056" style="margin-left: 20px;" /></a>
<div style="clear:both;"></div>
<p>つまり、最初の商品ページでは概要やユーザ評価、在庫の有無などを極力素早く見せておき、プロダクトについて更に詳細な情報が知りたい場合は、更にもうひとつ次のページ(ページの名前が「商品詳細」と「説明&#038;詳細」なのは、苦労の後が見えますが)で閲覧できるという具合です。</p>
<h3>SEO</h3>
<p>では、こうした構造をSEO的な観点から見ると、どうでしょう。これは、少し微妙なところです。</p>
<p>ページあたりの情報量を少なくしてコンテンツの視認性を優先した場合、そのページのキーワード量は当然ながら減ってしまいます。先ほどのAmazonを例にとっても、該当する製品を探しているユーザをランディングさせたいのは購入機能のある「商品詳細」ページであるはずです。しかし実のところ、製品名をダイレクトに検索しているのでない限り、製品に関連した検索に強いのは「説明&#038;詳細」ページの方でしょう。あるいは、それらをひとまとめにした旧来型の「詰め込み」ページの方が強くなると考えられます。</p>
<p>もちろん、インデックス量が増えるメリットも無いわけではないですし、ページ単位でなくサイト単位での強さは依然として保つことが出来ます。Amazonくらいの規模であれば、大きな意味でサイトを受け皿にして、そこからユーザビリティの良いサイトでユーザを誘導することに注力する方針で問題無いでしょう。しかし、これから地位を確立していかなければならないサイトにとって、30位くらいのページが複数できることよりも10位以内に入るようなページが1つ出来ることの方が遙かに重要です。そうした目的において、キーワードや被リンクの分散しやすいページ構造は望ましいものとは言い難いものです。</p>
<p>このように、モバイル端末向けサイトにおいてもSEOとユーザビリティは(歴史上何度も繰り返されてきたように)相反するものになってしまいそうです。しかしこうした問題を解決する方法が、あるいはjQuery Mobileには備わっているかもしれません。</p>
<h3>複数ページテンプレートの活用</h3>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/anatomy_page/">jQuery Mobileのページ機構</a>では、通常のシングルページテンプレートの他に、複数のページを単一ファイルにまとめたテンプレートを用いることも可能です。これは次のような構造でつくられます。</p>
<pre name="code" class="html">
&lt;body&gt;
&lt;!-- 最初のページ --&gt;
&lt;div data-role="page" id="foo"&gt;

  &lt;div data-role="header"&gt;
    &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;/div&gt;&lt;!-- /header --&gt;

  &lt;div data-role="content"&gt;
    &lt;p&gt;I'm first in the source order so I'm shown as the page.&lt;/p&gt;
    &lt;p&gt;View internal page called &lt;a href="#bar"&gt;bar&lt;/a&gt;&lt;/p&gt;
  &lt;/div&gt;&lt;!-- /content --&gt;

  &lt;div data-role="footer"&gt;
    &lt;h4&gt;Page Footer&lt;/h4&gt;
  &lt;/div&gt;&lt;!-- /footer --&gt;
&lt;/div&gt;&lt;!-- /page --&gt;

&lt;!-- 2番目のページ --&gt;
&lt;div data-role="page" id="bar"&gt;

  &lt;div data-role="header"&gt;
    &lt;h1&gt;Bar&lt;/h1&gt;
  &lt;/div&gt;&lt;!-- /header --&gt;

  &lt;div data-role="content"&gt;
    &lt;p&gt;I'm the second in the source order so I'm hidden when the page loads.
      I'm just shown if a link that references my ID is beeing clicked.&lt;/p&gt;
    &lt;p&gt;&lt;a href="#foo"&gt;Back to foo&lt;/a&gt;&lt;/p&gt;
  &lt;/div&gt;&lt;!-- /content --&gt;

  &lt;div data-role="footer"&gt;
    &lt;h4&gt;Page Footer&lt;/h4&gt;
  &lt;/div&gt;&lt;!-- /footer --&gt;
&lt;/div&gt;&lt;!-- /page --&gt;
&lt;/body&gt;
</pre>
<p>このページは、JavaScriptの動作しない環境では単一の大きなページに見えます。GoogleやYahooなど検索エンジンのクローラーから見ても、全体でひとつのページに見えるはずです。</p>
<p>つまり、たとえば前述のAmazonにおける「商品詳細」と「説明&#038;詳細」ページを単一のテンプレートに入れてしまえば、<strong>ユーザビリティとしては動作を保ったまま、検索エンジンに対してはキーワードの揃った有意義なページとして見られる可能性が高い</strong>ということです。</p>
<h3>階層化リストビューの活用</h3>
<p>同様に、jQuery Mobileのリストビューを活用することでSEOとユーザビリティを両立させることに近づけるかもしれません。この時に使用するのは、<a href="http://dev.screw-axis.com/doc/jquery_mobile/components/lists/nested/">階層化リストビュー</a>です。</p>
<p>jQuery Mobileでは、HTMLのリスト(ul, ol)をネストさせることで1ファイルでありながら自動的に複数のページをジェネレートし、ドリルダウン式のページ構造を実現することが可能になっています(詳しくは<a href="http://dev.screw-axis.com/doc/jquery_mobile/components/lists/docs/">日本語リファレンス</a>、あるいは近日発売の<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829">拙著</a>参照)。これも、前述の理由と同様に、<strong>検索エンジンに対して情報を1ファイルに集約させつつ、ユーザには断片化されたページを案内することでユーザビリティを保つことが出来るようになるはず</strong>です。</p>
<h3>期待と注意点</h3>
<p>ただし、この方法にも注意が必要です。元来複数ページテンプレートはSEO目的で用意されたわけではないためでもありますが、ファイル内のページ間リンクがアンカーの形式であるにも関わらず、実際にはリンク先のページ内アンカーが存在していない問題があります。たとえばGoogleに対しては &#8220;<a href="http://googleblog.blogspot.com/2009/09/jump-to-information-you-want-right-from.html">Google Section</a>&#8221; の概念が適用されてくれることを期待しているため、これはやはり解決すべき問題です。そのためには、ベースとなるHTMLにはアンカーを記述しておき、jQueryが発動する環境では<a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/page_initialization/pageinit/">pageinitイベント</a>でアンカーを削除するような工夫が望ましいかもしれません。</p>
<p>実際、そうした動作をするプラグインなどを作ることは容易です。あるいはjQuery Mobileのコアライブラリに組み込むことも出来るでしょう。今のところそうした動きを聞かないのは、やはりSEOの何が正解で、現実的にどの程度の効果があるのか不透明であるためだと思われます。ここで書いたことも、あくまで「期待」であり、「確実にそうなる」わけではないことをご理解ください。</p>
<p>特に複数ページテンプレートについては、リンクの貼り方などサイト構築方法自体が特殊になるため、当初自分は「jQuery Mobile黎明期の機能」であり、あまり使うべきでない構造と捉えていました。今月発売になる「<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829">jQuery Mobileポケットリファレンス</a>」でも、そのように紹介しています。しかし、今回SEOの観点から改めて考えた際に、この形式にも充分な利用価値がある可能性があると感じるようになりました。よく「jQuery Mobileは重い」と誤解を与える原因となるAjaxページロードを避ける目的以外にも、特定プロダクトのKiller Mini Site構築手法として活用できるかもしれません。</p>
<p>次は改めて、この複数テンプレートによるミニサイト構築について書きたいと思います。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/01/10/jquery-mobile-seo-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</title>
		<link>http://screw-axis.com/2011/12/22/jquery-mobile-bartender/</link>
		<comments>http://screw-axis.com/2011/12/22/jquery-mobile-bartender/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 09:49:16 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1026</guid>
		<description><![CDATA[jQuery Mobile用プラグイン(?) &#8220;Bartender&#8221; を試してみました。 これは、フッタなどツールバーのデザインをiOSのネイティブアプリ風にするためのものです。 プラグインと呼ぶ [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2011/12/jqm-bartender.jpg" alt="" title="jqm-bartender" width="240" height="134" class="alignright size-full wp-image-1028" style="margin-left:10px; border:1px solid #ccc;" />jQuery Mobile用プラグイン(?) &#8220;<a href="http://www.stokkers.mobi/valuables/bartender.html">Bartender</a>&#8221; を試してみました。</p>
<p>これは、フッタなどツールバーのデザインをiOSのネイティブアプリ風にするためのものです。</p>
<p>プラグインと呼ぶには少し抵抗があるのは、スクリプトを一切含まないスタイルシートだけの拡張機能であることです。もちろんそれは悪いことではなく、軽量で動作する望ましいことなのですが。</p>
<p>ともあれ、簡単な実装方法とデモを用意してみました。<span id="more-1026"></span></p>
<h3>デモ</h3>
<p>簡易的なデモページを、下に用意しました。</p>
<p><a href="http://dev.screw-axis.com/jqm/ref.php?id=bartender">&raquo; Bartenderプラグイン デモ</a></p>
<p>このデモでは、プラグインを適用してiOSアプリ風にしたツールバーを、固定フッタにしています。</p>
<h3>実装方法</h3>
<p>まずは <a href="https://github.com/frequent/bartender/">公式のGithub</a> から、ファイル一式を持ってきます。最低限必要なものはスタイルシートと、アイコン用のストライプ画像です。とりあえず、テストなので全部上げてしまいましょう。そして、フレームワークのストラクチャCSSの後で、プラグインのCSSを読み込みます。理由あって後でこのスタイルを修正する必要が出てくるため、ミニマイズしていない方のファイルを使います。</p>
<pre name="code" class="html">
&lt;link rel="stylesheet" href="//code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" /&gt;
&lt;link rel="stylesheet" type="text/css" href="/doc/js/jqm-plugins/bartender/bartender.css" /&gt;
</pre>
<p>このプラグインは、前述のとおりスクリプトを含みませんので、基本的にはこれだけです。もし独自のストライプ画像を用意していて、それをスタイルシートと別の場所に置いている場合は、CSSの中身を書き換える必要があります。</p>
<p>後は、もうマークアップするだけです。今回のデモは、フッタを次のように記述しています。</p>
<pre name="code" class="html">
&lt;div data-role="footer" data-id="bartender-footer" data-position="fixed"&gt;
  &lt;div data-role="navbar" data-grid="d"&gt;
    &lt;ul class="apple-navbar-ui comboSprite"&gt;
      &lt;li&gt;&lt;a href="/features.html" class="ui-btn-active ui-state-persist" data-iconpos="top" data-icon="features"&gt;機能&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="/brands.html" data-iconpos="top" data-icon="brands"&gt;ブランド&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="/fees.html" data-iconpos="top" data-icon="fees"&gt;価格&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="/contact.html" data-iconpos="top" data-icon="contact"&gt;コンタクト&lt;span class="ui-li-count"&gt;10&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="/about.lhtml" data-iconpos="top" data-icon="about"&gt;About Us&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;!-- /footer --&gt;
</pre>
<p>ul要素に指定している apple-navbar-ui というクラスが、このプラグインの肝になっています。その下にアンカー(a)を囲んだリストアイテム(li)を作っていけば、自動的にアプリ風のパネルになっていきます。</p>
<p>これで概ねは上手く動作するのですが、コンタクトに付加しておいた ui-li-count がおかしなことになっています。</p>
<p><img src="http://screw-axis.com/wp-content/uploads/2011/12/jqm-bartender-org.png" alt="" title="jqm-bartender-org" width="395" height="48" class="aligncenter size-full wp-image-1031" /></p>
<p>これは現在(2011年12月22日)の最新版がjQuery Mobileのベータ3にあわせて作られているためでした。現在の最新版(1.0)に合わせるためには、スタイルシートを少し変えてやる必要があります。そこで、bartender.cssの227行目からのNotification Iconsのブロックを、次のように変えてやります(体裁を見やすいように整えていますが、変更した箇所はそれほど多くありません)。</p>
<pre name="code" class="css">
/*   8. Notification Icons .ui-li-count */
.apple-navbar-ui li a .ui-li-count{
  color: #ffffff;
  left: 55%;
  font-size: 90%;
  text-shadow: none;
  font-weight: bold;
  font-family: arial;
  -moz-box-shadow: 0 1px 2px #999;
  -webkit-box-shadow: 0 1px 2px #999;
  box-shadow: 0 1px 2px #999;
  padding-bottom: 1px;
  border: 0.15em solid #ffffff;
  border-radius: 14px;
  -moz-border-radius: 14px;
  -webkit-border-radius: 14px;
  background-color: #900;
  line-height: 16px;
  display: inline-block;
  background-position: 0 0 !important;
  margin-top: -18px;
  background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0,#fcc),color-stop(1,#900));
  background-image: -webkit-linear-gradient(top, #fcc, #900);
  background-image: linear-gradient(top, #fcc, #900);
  background-image: -moz-linear-gradient(top, #fcc, #900);
  background-image: -o-linear-gradient(top, #fcc, #900);
  background-image: -ms-linear-gradient(top, #fcc, #900);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffcccc', EndColorStr='#990000');
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffcccc', EndColorStr='#990000')";
  position: absolute;
  top: 50%;
  padding: .2em .5em;
}
</pre>
<p>具体的には、まず最後の3行(position, top, padding)を追加しています。これで、当初のベータ3対応されていた状態には合わせられました。ただ、この状態では横幅を狭くした際にバルーンが中心より左に来てしまい、嬉しくありません。そこで right の指定を外して、代わりに left 指定を入れて、常にパネル中心部やや右にバルーンが配置されるよう変更しました。ついでに、バルーンの色をアラート風に赤く変更しています。これで、期待する形になりました(正直なところ、例によってIEでは残念な見栄えですが)。</p>
<p><img src="http://screw-axis.com/wp-content/uploads/2011/12/jqm-bartender-mod.png" alt="" title="jqm-bartender-mod" width="396" height="49" class="aligncenter size-full wp-image-1034" /></p>
<p>プラグインで用意されたアイコンはここで使ったものが全てですが、自分で追加することも難しくありません。<br />
また、レティーナディスプレイ用の高解像度アイコンにも対応しており、メディアクエリでディスプレイを見分けて切り替えるようにも出来ます。</p>
<p>フッタをスタイリッシュに作るのは意外と大変です。こうしたツールを使って実装するのも良いですね。</p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] Markup Cheat Sheet'>[jQuery Mobile] Markup Cheat Sheet</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/12/22/jquery-mobile-bartender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] Markup Cheat Sheet</title>
		<link>http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/</link>
		<comments>http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 05:55:23 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[jQuery Mobile]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1039</guid>
		<description><![CDATA[I&#8217;ve just created jQuery Mobile Markup Cheat-sheet. &#187; jQuery Mobile Markup Cheat-sheet This is alm [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.screw-axis.com/jqm/jQueryMobile-CheatSheet.png" target="_blank"><img src="http://dev.screw-axis.com/jqm/jQueryMobile-CheatSheet.png" alt="jQuery Mobile Cheat Sheet" title="jQuery Mobile Cheat Sheet" width="240" class="alignright size-full" style="margin-left: 10px; margin-bottom: 10px;" /></a>I&#8217;ve just created jQuery Mobile Markup Cheat-sheet.</p>
<p><a href="http://dev.screw-axis.com/jqm/jQueryMobile-CheatSheet.png" target="_blank">&raquo; jQuery Mobile Markup Cheat-sheet</a></p>
<p>This is almost just a &#8220;<a href="http://jquerymobile.com/demos/1.0/docs/api/data-attributes.html">Data- attribute reference</a>&#8221; of the official document, but I believe this can be still handy for both developers and designers <img src='http://screw-axis.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div style="clear:both;"></div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/12/22/jquery-mobile-markup-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

