ABテストを実装するにあたりブラウザに来訪した際cookieのKEYTestAB
にランダムにAorBを与え出し分けをしたいと考えています。
JavaScriptでcookieを使う想定をしていますが保持時間をすぎていないのにブラウザをリロードする度にTestAB
の値が書き換わってしまいます。こちらは何故なのでしょうか?
node.jsでローカルサーバを立ち上げ確認しております。
JavaScript
1var rand = Math.floor(Math.random() * 2); 2if (rand) { 3 var ab = 'A'; 4} else { 5 var ab = 'B'; 6} 7var limit = '100'; //cookie保持時間 8 9document.cookie = "TestAB=" + ab + ";path=/;max-age=" + limit; 10 11// 確認 12console.log(rand); 13console.log(document.cookie);
追記
「cookieがあったときの処理」を考慮していなかったため毎回リロードの度にcookieが上書きされていたのでページ読み込み時に毎度indeOf()でTestAB
をcookieが所持しているかの確認を行うことにしたがなぜか毎回返り値に-1が返ってきてしまう。
JavaScript
1(function () { 2 var cookie = document.cookie; 3 var keystr = "TestAB="; 4 var matchPos = cookie.indexOf(keystr); 5 6 // 確認 7 console.log("-1 はcookie,TestABを持っていない: " + matchPos); 8 9 if (matchPos == -1) { 10 var rand = Math.floor(Math.random() * 2); 11 if (rand) { 12 var ab = "A"; 13 } else { 14 var ab = "B"; 15 } 16 var limit = "100"; //cookie保持時間 17 18 cookie = "TestAB=" + ab + ";path=/;max-age=" + limit; 19 } 20 21 // 確認 22 console.log(rand); 23 console.log(cookie); 24}());
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/08 03:01 編集
2019/11/08 17:41
2019/11/10 07:24