【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);
}
});なのでやはりサーバー側でちゃんと対応しないとダメだねということで対応しました。以上です。