【学芸不精シリーズ】自家製簡易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;">&nbsp;</div>

    </form>

</body>

</html>