技术开发 频道

基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究

  性能:

  在下面数据中,列出了每种方案的性能比较,强调的是内存共享aspsession池最快小型用户可以使用,采用数据库的话

也会增加额外的开支,增加成本(除非你很有钱)。减 少网络回传,服务器请求是提高性能的唯一方法,微软的Web应用程

序压力工具,是用来执行测试压力水平的25个线程为1分钟的时间从表中可以明显的看出用内存存储aspsession比另外两种方

式更快。
Method Get Data (ms) Set Data (ms) 5 values 1 value 5 values 1 value In-memory ASP Sessions 46 9 34 7 ASP/ASP.NET web service individually 4321 864 3397 679 ASP/ASP.NET web service grouped 711 142 990 198 ASP/ADO database individually 346 69 841 168 ASP/ADO database grouped 163 33 860 172
   代码描述ASP机制,在asp中创建sessioni 如下:

  Session("Sky") = "Blue";
  在其他的页面中访问这些值采用:
  var skyString = Session("Sky");

  新的API语法:

  下面的语法将会代替原来的asp session 语法,目的是在桥的使用中javascript 函数可以进行封装
  设置一个关键值对;
  设置一个kye-value 类型session 数据,语法和值钱的asp Session 语法很相似,采用下面的代码可以把现有的设置asp  session代码替换;

  设置sessioni数据:
  SetSessionValue("Sky", "Blue");
  获取 session :
  var SkyString = GetSessionValue("Sky");
  这种方法建议在设置比较少的情况下用
  设置多个key-valus对值
  这些方法的最大开销在于设置每一个key-value,然后返回给webservice,推荐用以下方法来设置(当超过3对以上的key-values)
  设置session
var sessionInfo = NewSession(); sessionInfo.Add(“Sky”, "Blue"); sessionInfo.Add(“Grass”, “Green”); SetSession(sessionInfo);
  获得session
var sessionInfo = GetSession(); var skyString = sessionInfo.Item(“Sky”); var grassString = sessionInfo.Item(“Grass”);
  Java Script Example
<%@ Language="JScript" %> <script language="JScript" runat="server" src="ASPSessionWS.js" /> <% var sessionInfo = NewSession(); sessionInfo.Item("Sky") = "Blue"; sessionInfo.Item("Grass") = "Green"; SetSession(sessionInfo); var retrievedSession = GetSession(); var sSky = retrievedSession.Item("Sky"); var sGrass = retrievedSession.Item("Grass"); Response.Write(sSky + "<br>"); Response.Write(sGrass + "<br>"); %> Visual BASIC Example <%@ Language="VBSCRIPT" %> <script language="JScript" runat="server" src="ASPSession.js" /> <% Dim sessionInfo Set sessionInfo = NewSession() sessionInfo.Item("Sky") = "Blue" sessionInfo.Item("Grass") = "Green" SetSession(sessionInfo) Dim retrievedSession Set retrievedSession = GetSession() Dim sSky sSky = retrievedSession.Item("Sky") Dim sGrass sGrass = retrievedSession.Item("Grass") Response.Write(sSky & "<br>") Response.Write(sGrass & "<br>") %>
0
相关文章