#6535

もうひとつの機種依存


web制作

昨日に引き続き期間限定ランキングの不具合対応をしていました。
すごく頭を悩ませたのが、機種依存の問題。
Macbook購入でこれも克服できるようになったらいいなと思うのですが、
やっぱり手元にない端末特有の問題ってリリースまで気付かないことが多いんですよね。
そして、そういう問題にかぎってユーザーにとってわりと致命的だったりする。
今回も、macOSから正常にページが表示されないという報告をもらい、
とはいえ自分は現時点でMacを持っていないので、
同じ現象が起きていると思われるiPhoneのインスペクターを起動して診断してみることに。

しかし、iPhone上のwebサイトメンテナンスはなかなかクセがあるんですよね。
そもそもこの端末単体でキャッシュクリアってできるのか?
設定からサイトデータを削除しても古いjavascriptが実行されていたりするので、
挙動が読めずもどかしいところがあります。
それで今回macOS/iOSで起きた不具合は、Ajax通信をしてくれないというもの。

そもそもAjaxとは、ユーザーの端末で動くjavascriptから、
ユーザーが意図することなく外部と通信をしてデータを引っ張ってくる機能です。
これは考えようによっては悪いことに使えるので、
webブラウザでは送信元と受信元のドメインが異なる場合、通信ができないようになっています。
その設定基準がどうやらApple系統とそれ以外で異なるらしいのですが、
軽くググったかぎりではそれを解説しているサイトに行き着かないので実際はわかりません。

いろいろと試行錯誤した結果、
受信元が作成するヘッダーに「Access-Control-Allow-Headers: *」の値を入れ、
なおかつ送信元のURL指定からパラメータを削除したことでエラーは消えました。
しかし、依然として受信元が作成するデータを正常に読み取ってくれない。
結果的に受信データを加工する部分のjavascriptの挙動がおかしくなってしまっています。
すごく不思議なのは、部分的には正常にデータを受け取れていること。
全部受け取れないなら受信に失敗していると推測することもできるのですが、
一部は成功しているので受信失敗でもない、でも一部のデータは正常に受け取れていない……。
マルチバイトでもないから文字化けでもないと思いますが、
そうなると原因に思い当たりがありません。謎すぎる。
ピクチャレ大会開発は定期的に自分のスキルを越える高い壁にぶち当たりますね……。
去年最大の壁だったクッキー問題はいまとなっては乗り越えた感がありますが、
web屋さん界隈は乗り越えても乗り越えても新しい壁が出てくるのでキリがありません。
まあそこにやり甲斐を見出してしまった自分が悪いのですが。

web制作が楽しいのは間違いないんですが、機種依存問題はあんまり楽しくないですね。
世界的な流れでFirefoxが切り捨てられつつあるのも分かります。
動作テストをしなくてはいけないブラウザが1つ減るだけでどんなに楽か。
現状だと外せないのはChrome(Windows/Android)、Safari(iOS/macOS)の4つですかね。
このうち3端末はすでに持っているので、Macbookで最後の穴を埋めたいところです。
こう考えると、web屋さんを続けていくかぎり結局Windowsも手放すことはできないのかな……。
まぁMacはWindowsも動くらしいのでそれで対応していくつもりですが。
あとは携帯端末のインスペクターをもうちょっと使いやすくしてほしいと思う今日この頃。

今日は03時就寝15時起床。
不具合対応以外に急いでやる大きなタスクがなかったので、
ひさびさにでかけずにがっつり惰眠を満喫しました。
でも、でかけないとそれはそれで身体を持て余している感がして嫌なんですよね。
こういうときはあえて隣町で夕食を済ませる、散歩する程度のことはした方がいいのかも。
そういえばピクミンブルームも今日は全然手を付けられなかったので明日は頑張ります。

コメントを残す