1、Cache有3种过期策略。第一种:没有时间限制。Cache.Add(key,value)或者Cache.Insert(key,value);不加任何时间限制,增加的数据是不会过期的。Add方法重复键值是不会在增加的,Insert数据是会覆盖重复的键值。
2、第一种情况,间隔后台刷新多次,仍能取到值。C#aspx的后台Pageload方法给Repeater控件赋值DataTable。DataTable的获取从Cache里面。
3、if (Sessio艘绒庳焰n["wwewew"] == null || Session["wwewew媪青怍牙"].ToString() == "") { Session["wwewew"] = wwewe; if (!string.IsNullOrEmpty(wwewe) && wwewe == "1") { DataTable ds = new DataTable(); DataRow deru = ds.NewRow(); DataColumn qwkop = new DataColumn(); qwkop.ColumnName = "1"; ds.Columns.Add(qwkop); DataColumn qwkopq = new DataColumn(); qwkopq.ColumnName = "2"; ds.Columns.Add(qwkopq); DataColumn qwkopr = new DataColumn(); qwkopr.ColumnName = "3"; ds.Columns.Add(qwkopr); deru[0] = "1"; deru[1] = "2"; deru[2] = "3"; ds.Rows.Add(deru); Cache.Insert("Data", ds); }
4、第二种情况,隔断时间过期,过10秒后再刷新页面就取不到值了。 else if (鲐扼敲行!string.IsNullOrEmpty(wwewe) && wwewe == "2") { DataTable ds = new DataTable(); DataRow deru = ds.NewRow(); DataColumn qwkop = new DataColumn(); qwkop.ColumnName = "1"; ds.Columns.Add(qwkop); DataColumn qwkopq = new DataColumn(); qwkopq.ColumnName = "2"; ds.Columns.Add(qwkopq); DataColumn qwkopr = new DataColumn(); qwkopr.ColumnName = "3"; ds.Columns.Add(qwkopr); deru[0] = "33"; deru[1] = "45"; deru[2] = "66"; ds.Rows.Add(deru); Cache.Insert("Data", ds, null, DateTime.Now.AddSeconds(10), TimeSpan.Zero); }
5、第三种情况,连续过10秒没有访问这个键值就过期,后台取不到值了。 else if (!string.IsNullOrEmpty(wwewe) && wwewe == "3") { DataTable ds = new DataTable(); DataRow deru = ds.NewRow(); DataColumn qwkop = new DataColumn(); qwkop.ColumnName = "1"; ds.Columns.Add(qwkop); DataColumn qwkopq = new DataColumn(); qwkopq.ColumnName = "2"; ds.Columns.Add(qwkopq); DataColumn qwkopr = new DataColumn(); qwkopr.ColumnName = "3"; ds.Columns.Add(qwkopr); deru[0] = "7"; deru[1] = "8"; deru[2] = "9"; ds.Rows.Add(deru); Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10)); }
6、前端页面:<body> <form id="form2" runat="server"> <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" style="height:300px;width:500px;"></asp:TextBox> </form> <form id="form1" action="Default.aspx"> <input type="text" value="" id="qwqwqw" name="qwqwqw" /> <input type="submit" value="永不过期" /> <input type="submit" value="绝对时间过期" /> <input type="submit" value="变化时间过期" /> </form> <div style="margin-top:30px;">输入框中后端会根据数值判断:1-永不过期;2-绝对时间过期;3-变化时间过期</div> <table> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td><%#Eval("1")%></td> <td><%#Eval("2")%></td> <td><%#Eval("3")%></td> </tr> </ItemTemplate> </asp:Repeater> </table></body>