結構古いサイトに対する追加改修で、リアルタイムで変動するデータを折線グラフ化して見せたいという要望がありました
とりあえずJQueryのライブラリflotを使って実現
https://www.flotcharts.org/
ただし、一部ユーザがガラケーで、そのユーザ向けにどうしても対応したいとの相談。
今更ガラケー対応ですか?と思いつつ、お金をいただけるのであれば調べましょう
まずガラケーなのでJQueryはまともに動かない
なのでグラフを画像化して表示すればよさそうなことはすぐに思いついたが、個人ごとにグラフデータが異なる仕様。しかも結構リアルタイムなグラフ情報が欲しいのです。
調べた挙句PhantomJSのスクリーンショット機能を使ってグラフをPNG画像にすることで対応した
PhantomJSというのはJSで動くスクリプトブラウザです。
http://phantomjs.org/
このブラウザ経由させるとアクセスしたページを画像に変換できるので、flotで描画されたグラフをPNG画像にしてやることで解決
つまりどうゆうことかと言うと、
1・ガラケーがPHPページにアクセス
2・PHPがサーバ内部でPhantomJSをキック
3・PhantomJSがflotのグラフページにアクセス
4・グラフ画像生成
5・ガラケー向けのHTMLレスポンスに生成グラフ画像のイメージタグを記載
但し画質は悪く、一部AUの端末でPNGが使えなかったので、GIF画像でも描画することにしたが、GIFはさらに画質が悪いというスパイラルに。
お客様と相談した結果、折線グラフを超シンプルにすることで対応