紫影基地

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

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

[复制链接]
阅读字号:

2002

主题

2117

帖子

21万

积分

超级版主

Rank: 8Rank: 8

积分
210303
发表于 2024-4-25 07:22:39 | 显示全部楼层 |阅读模式
  1. 用JavaScript写Session的两种方法
  2. 方法一:

  3. 使用postback

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

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

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

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

  16.             if (eventTarget == "SetSessionPostBack")
  17.                 this.Session["SessionValue"] = eventArgument;
  18.         }
  19.         else
  20.         {
  21.             this.Session["SessionValue"] = "Original value";
  22.         }

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


  25. </script>

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

  29.     <script type="text/javascript">
  30.         function setSessionValue(newValue) {
  31.             __doPostBack('SetSessionPostBack', newValue);
  32.         }
  33.     </script>

  34. </head>
  35. <body>
  36.     <form id="form1" runat="server">
  37.     <input id="Button1" type="button" value="button" onclick="setSessionValue('hello');" /><div>
  38.     </div>
  39.     </form>
  40. </body>
  41. </html>
  42. 复制代码


  43. 方法二:

  44. 使用AJAX

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

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

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

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

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

  61.     <script type="text/javascript">

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

  64.             try {
  65.                 // Firefox, Opera 8.0+, Safari

  66.                 xmlHttpObject = new XMLHttpRequest();
  67.             }
  68.             catch (ex) {
  69.                 // Internet Explorer

  70.                 try {
  71.                     xmlHttpObject = new ActiveXObject('Msxml2.XMLHTTP');
  72.                 }
  73.                 catch (ex) {
  74.                     xmlHttpObject = new ActiveXObject('Microsoft.XMLHTTP');
  75.                 }
  76.             }

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

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

  83.             var xmlText = xmlHttpObject.responseText;

  84.             return xmlText;
  85.         }

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

  93.     </script>

  94. </head>
  95. <body>
  96.     <form id="form1" runat="server">
  97.     <input id="Button1" type="button" value="button" onclick="setSessionValue('Lance Zhang');" /><div>
  98.     </div>
  99.     </form>
  100. </body>
  101. </html>
  102. 复制代码


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



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

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

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

  112.         this.Session["SessionValue"] = sessionValue;

  113.         this.Response.ClearHeaders();
  114.         this.Response.Clear();
  115.         this.Response.Write(returnValue);
  116.         this.Response.End();
  117.     }

  118. </script>

  119. <html xmlns="http://www.w3.org/1999/xhtml">
  120. <head runat="server">
  121.     <title></title>
  122. </head>
  123. <body>
  124.     <form id="form1" runat="server">
  125.     <div>
  126.     </div>
  127.     </form>
  128. </body>
  129. </html>
  130. 复制代码
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 12:06 , Processed in 0.098409 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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