紫影基地

 找回密码
 立即注册
查看: 133|回复: 0

[JavaScript] 用JavaScript写Session的两种方法

[复制链接]
阅读字号:

2001

主题

2116

帖子

21万

积分

超级版主

Rank: 8Rank: 8

积分
210086
发表于 2024-4-25 12:17:09 | 显示全部楼层 |阅读模式

方法一:

使用postback

复制代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        // Insure that the __doPostBack() JavaScript method is created
        this.ClientScript.GetPostBackEventReference(this, string.Empty);

        if (this.IsPostBack)
        {
            string eventTarget = (this.Request["__EVENTTARGET"] == null) ? string.Empty : this.Request["__EVENTTARGET"];
            string eventArgument = (this.Request["__EVENTARGUMENT"] == null) ? string.Empty : this.Request["__EVENTARGUMENT"];

            if (eventTarget == "SetSessionPostBack")
                this.Session["SessionValue"] = eventArgument;
        }
        else
        {
            this.Session["SessionValue"] = "Original value";
        }

        this.Response.Write("SessionValue: " + this.Session["SessionValue"].ToString() + "<br>");
    }


</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script type="text/javascript">
        function setSessionValue(newValue) {
            __doPostBack('SetSessionPostBack', newValue);
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <input id="Button1" type="button" value="button" /><div>
    </div>
    </form>
</body>
</html>
复制代码


方法二:

使用AJAX

复制代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        if (!this.IsPostBack)
        {
            this.Session["SessionValue"] = "Original value";
        }

        this.Response.Write("SessionValue: " + this.Session["SessionValue"].ToString() + "<br>");
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script type="text/javascript">

        function makeAjaxCall(webUrl, queryString) {
            var xmlHttpObject = null;

            try {
                // Firefox, Opera 8.0+, Safari

                xmlHttpObject = new XMLHttpRequest();
            }
            catch (ex) {
                // Internet Explorer

                try {
                    xmlHttpObject = new ActiveXObject('Msxml2.XMLHTTP');
                }
                catch (ex) {
                    xmlHttpObject = new ActiveXObject('Microsoft.XMLHTTP');
                }
            }

            if (xmlHttpObject == null) {
                window.alert('AJAX is not available in this browser');
                return;
            }

            xmlHttpObject.open("GET", webUrl + queryString, false);
            xmlHttpObject.send();

            var xmlText = xmlHttpObject.responseText;

            return xmlText;
        }

        function setSessionValue(newValue) {
            var webUrl = 'AjaxPage.aspx';
            var queryString = '?SessionValue=' + newValue;
            var returnCode = makeAjaxCall(webUrl, queryString);
            //alert(returnCode);
            <%= ClientScript.GetPostBackEventReference(this, string.Empty) %>;
        }

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <input id="Button1" type="button" value="button" /><div>
    </div>
    </form>
</body>
</html>
复制代码


方法二中,设置session需要一个额外的aspx页面:



复制代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        string sessionValue = (this.Request["SessionValue"] == null) ? string.Empty : this.Request["SessionValue"];
        string returnValue = "Sesson value changed to " + sessionValue;

        this.Session["SessionValue"] = sessionValue;

        this.Response.ClearHeaders();
        this.Response.Clear();
        this.Response.Write(returnValue);
        this.Response.End();
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    </div>
    </form>
</body>
</html>


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫影基地

GMT+8, 2025-1-12 08:45 , Processed in 0.083385 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表