同じ値をセットする際のベストプラクティス

posted Aug 22, 2010, 8:02 AM by Makoto Shimizu   [ updated Sep 3, 2010, 2:35 AM ]

同じ値を複数の変数にセットする場合、通常は

s.eVar1=s.prop1="xxxxxxxxxxxxx";

または

s.eVar1="xxxxxxxxxxxxx";
s.prop1=s.eVar1;

とJavaScriptでセットしますが、最終的にSiteCatalystサーバーに送られるリクエストのURLが長くなるので、実はあまり良い書き方ではありません。

imageリクエストURLの一部:
...&v1=xxxxxxxxxxxxx&c1=xxxxxxxxxxxxx

IEはURLの長さが2083バイトを超えると計測できなくなるため、ダイナミック変数を使って「prop1にはeVar1と同じ値を入れる」という指示をセットするのがおすすめです。

元の値をまずeVarにセットし、他の変数にダイナミック変数を使ってコピーします。

例:
s.eVar1="xxxxxxxxxxxxxxx";
if (s.eVar1) s.prop1="D=v1";

imageリクエストURL(の一部)はこうなります。
...&v1=xxxxxxxxxxxxx&c1=D%3dv1
  • セットする順番は無関係です。ダイナミック変数でコピーされた後に、eVarは255バイト、propは100バイトにカットされます
  • prop1の値が空になる場合はダイナミック変数もセットしないようにすると、imageリクエストのURLを「&c1=D%3dv1」の10バイト分節約できます。

最初の値もダイナミック変数でセットできる場合は、もっとシンプルでokです。順番は関係ありません。

s.eVar1=s.prop1="D=g";
Comments