iPad でフォントが明朝体になる問題

iPad向けのアプリを作っていて、font-familyで
ゴシック体を指定しているのに、明朝体が表示される、という問題がありました。

これはブラウザのフォントのデフォルトが、ゴシック体だったのが、
アップデートで途中から明朝体に切り替わった、というのが原因らしいです。

つまり、元々は指定していなかったフォント、
あるいは、指定したつもりで適用できていなかったフォントが、
ある日アップデートで明朝体で表示されてびっくりする、という訳です。

面倒くさいようですが、プログラムの世界では、
何でもきちんと指定しておいた方が良い結果を生むようです。

変数は、宣言 + 初期化しておいた方が処理が早くなるし、
imgタグは、幅と高さが指定されている方が表示が早くなります。

今回の件は、Create.js(Easel.js)を使っていたのですが、
元々が

new createjs.Text(this.hoge,"10px Arial Bold","#000000");

だったのですが、 Arialが適用されていませんでした。
下記のように「Hiragino Kaku Gothic ProN」を指定することで
表示されました。

new createjs.Text(this.hoge,"10px Hiragino Kaku Gothic ProN Bold","#000000");

2014年4月9日、あと1週間でWindowsXPのサポートが切れ、悪名高き
InternetExplorerの旧バージョンとの決別を果たすことが出来ると
期待していますが、ブラウザとの戦いはまだまだ続くようです。

iPad で画像のキャッシュがどうしても消えない場合

新しい画像を用意したのに、どうしても反映されない…。
ブラウザ(Safari)のキャッシュをクリアしても
新しいデータが反映されない場合の解決法です。

ちなみに、iPad、iPhoneのSafariのキャッシュのクリア方法です。

設定→ Safari→ 「履歴を消去」
設定→ Safari→ 「Cookieとdデータを消去」

これではいくらやっても消えません…。
PCでは反映されているのですが。

画像名にスタイルシートやJavaScriptでよくやる、
タイムスタンプを追加することで何とか解決しました。

image.src = this.FileNm + '?' + new Date().getTime();

少し古くなっていますが、こちらの記事が参考になりました。
iPad上でWEB開発してて、なぜか画像が出ない時に確認したら良さそうなこと

Safariでは、「一画面での最大画像サイズは6.5M」だそうです…。
imgにキャッシュした場合、ガベージコレクションが正常に行われないなど、
JavaScript でアプリを作っていると悩ましい問題が山積しているようです。

<2014.04.02追記>
この記事を書いてしばらくしてから気づいたのですが、
他のプログラマが作ったアプリ(WebView)上で、
キャッシュが消えずに悩んでいました。
WebViewだけの問題かなと思って調べると、
案の定、下記の記事が見つかりました。

【[XCODE] UIWebViewでHTML,CSS,JSなどをキャッシュさせない方法】

分担して仕事をしていると気づかないかも知れませんね。
いずれWebViewも使うことになると思うので、メモがてら追記しておきます。