【学芸不精シリーズ】自家製簡易Cookieデータメモリ
15734 ワード
なぜなら、あるWebアプリケーションにおけるCookieの使用数を減らすためであり、結局、IE 6はドメインごとに約20個のキーしかサポートしていないからである.そこで、WebアプリケーションのすべてのCookie変数をJson文字列に統合して格納します.
<html>
<head>
<title>Cookie </title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<%if (false) { %><script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script><%} %>
<script src="Scripts/jquery.cookie.js" type="text/javascript"></script>
<script src="Scripts/jquery.json-2.3.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function () {
$.cookie("dbc", "{}"); // Cookie
$("#divdbc").html($.cookie("dbc")); // div Cookie
$("#btnSet").click(function () {
fnSet($("#txtKey").val(), $("#txtValue").val());
$("#txtKey").val("");
$("#txtValue").val("");
$("#divdbc").html($.cookie("dbc"));
});
$("#btnGet").click(function () {
alert(fnGet($("#txtKey").val()));
});
});
//
function fnSet(key, value) {
var dbc = eval("(" + $.cookie("dbc") + ")"); // Json
dbc[key] = value;
$.cookie("dbc", $.toJSON(dbc));
}
function fnGet(key) {
var dbc = eval("(" + $.cookie("dbc") + ")");
return dbc[key];
}
</script>
</head>
<body style="font-family: , ,Arial; font-size: 13px;">
<form id="form1" runat="server">
:<br />
<input id="txtKey" type="text" /> = <input id="txtValue" type="text" /><br />
<input id="btnSet" type="button" value=" " /><input id="btnGet" type="button" value=" " /><br />
Cookie :
<div id="divdbc" style="border: 1px solid black; width: 400px; height: 200px; font-family: Consolas; font-size: 12px;"> </div>
</form>
</body>
</html>