【javascript】iPhoneでpagehideが2回呼ばれたときの対応
今回やりたかったことは、ページから離れるとき(リンクとか)にその内容をサーバーに通知したいということ。pagehideで実装したのだが、なぜかiPhoneだとこれが2回呼ばれる現象だった(safari、chromeともに)。
以下のようなコードで確認したところ、2回送信されるのを確認。おそらく全く同時刻にランダム文字列が生成してるためかrandの部分が同じものが送信される。
var flg = true; window.addEventListener("pagehide", function() { if (flg) { flg = false; var rand = ランダム文字列を生成 var img = new Image(); img.src = "https://xxx/?rand=" + rand document.body.appendChild(img); } });
なのでやはりサーバー側でちゃんと対応しないとダメだねということで対応しました。以上です。