让你的网站心跳起来

news/2024/5/20 12:28:36/文章来源:https://blog.csdn.net/weixin_33827731/article/details/85449137

    有时候你希望你的页面“一直活着”。也就是说,如果一个用户填写一个复杂的表单,在用户完成之前。你一定不希望session过期。否者用户可能因此变得非常恼怒。
    这也不是简单的加长session过期时间的事情。如果你这样做,当访问页面的用户离开这个网站,session将会仍旧存活在服务器的内存中很长一段时间。增加session过期时间是一个解决办法,但是它不是一个很好的解决办法。
    我的目标是:一旦网页在客户端被打开,session就一直激活。即使没有任何回发来重设session的时间。当网页关闭的时候,session将自然结束。
    我这样来实现这个解决方案:在客户端每隔一段时间就去"ping"服务端,这个时间少于session的过期时间。这就是Heartbeat设计模式。
麻烦的设置:  
     为了达到测试的目的。我在web.config中设置session超时时间为2分钟。

1 <system.web>
2   <sessionState timeout="2">
3   </sessionState>
4  </system.web>

    为了追踪具体发生了什么,使用一个公用的函数ODS(在MiscUtilities类中)

1 // ---- ODS (Output Debug String) ----------------------
2 public static void ODS(string Msg)
3 {
4     String Out = String.Format("{0}  {1}", DateTime.Now.ToString("hh:mm:ss.ff"), Msg);
5     System.Diagnostics.Debug.WriteLine(Out);
6 }
7 

    为了观察session的状态事件,我在global.asax中添加用于调试的字符串。

 1 <%@ Application Language="C#" %>
 2 <script RunAt="server">
 3       
 4     void Application_Start(object sender, EventArgs e)
 5     {
 6         MiscUtilities.ODS("****ApplicationStart");
 7     }
 8     void Session_Start(object sender, EventArgs e)
 9     {
10         MiscUtilities.ODS("Session_Start");
11     }
12     void Session_End(object sender, EventArgs e)
13     {
14         MiscUtilities.ODS("Session_End");
15     } 
16 

    下面是详细步骤:由于我们需要在服务端有一个方法供客户端调用。故使用一个WebMethod方法。
1、在页面上我们必须有一个ScriptManager
2、ScriptManager 的EnablePageMethods 必须设置成true
3、WebMethod 方法必须是public和static的
4、WebMethod 方法必须将EnableSession属性设置成true

1 <asp:ScriptManager ID="ScriptManager1" runat="server" 
2     EnablePageMethods="true">
3 </asp:ScriptManager>

 

1 public partial class _Default : System.Web.UI.Page
2 {
3     [WebMethod(EnableSession=true ) ]
4     public static void PokePage()
5     {
6         // called by client to refresh session
7         MiscUtilities.ODS("Server: I am poked");       
8     }
9 

    我们需要有一个客户端的JavaScript定时地去调用服务端的方法。

 1 <script type="text/javascript">
 2     var HeartBeatTimer;
 3     function StartHeartBeat()
 4     {
 5         // pulse every 10 seconds
 6         if (HeartBeatTimer == null)
 7             HeartBeatTimer = setInterval("HeartBeat()"1000 * 10);
 8     }
 9     function HeartBeat()
10     {
11         // note: ScriptManger must have: EnablePageMethods="true"
12         Sys.Debug.trace("Client: Poke Server");
13         PageMethods.PokePage();
14     }
15 <body id="MyBody"  onload="StartHeartBeat();">
16 

    没有"心跳"的,输入如下:

1 10:22:43.03 ****ApplicationStart 
2 10:22:45.13 Session_Start 
3 10:25:00.00 Session_End 

    有"心跳"的,输出如下:

 1 10:26:06.10  ****ApplicationStart
 2 10:26:08.05  Session_Start
 3 Client: Poke Server
 4 10:26:18.93  Server: I am poked
 5 Client: Poke Server
 6 10:26:28.95  Server: I am poked
 7 Client: Poke Server
 8 10:26:38.96  Server: I am poked
 9 Client: Poke Server
10 10:26:48.98  Server: I am poked
11 
12     . . . (lines deleted)
13 
14 Client: Poke Server
15 10:29:59.45  Server: I am poked
16 Client: Poke Server
17 10:30:09.47  Server: I am poked
18 Client: Poke Server
19 10:30:19.48  Server: I am poked
20 
21     . . . (lines deleted)
22 

    这样看起来客户端闲置的时候,session仍然活着,也就是网站“心跳”着。 (有点扯淡)

原文:AH-Ah-ah-ah-Staying-Alive-Staying-Alive



(全文完)


以下为广告部分

您部署的HTTPS网站安全吗?

如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

SSL检测评估

快速了解HTTPS网站安全情况。

安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

SSL证书工具

安装部署SSL证书变得更方便。

SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

SSL漏洞检测

让服务器远离SSL证书漏洞侵扰

TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_814250.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET开发人员必知的八个网站

当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一&#xff0c;或者想要成为其中之一的话&#xff0c;我下面将要列出的每一个站点都应该是你的最爱&#xff0c;都应该收藏到书签中去。 对于不熟悉.NET技术的朋友&#xff0c;需要说明一下&#xff0c;.NET提供…

网站分析

1、www.qq.com 在pc端和移动端是分为两套代码来写的。 pc端&#xff1a; 布局&#xff1a;整体的布局是从上往下的布局方式&#xff0c;没有特定的两栏、三栏布局&#xff0c;而是从上到下交错式排列。 整体的思想是width固定为1000px&#xff08;无响应式&#xff09;&#xf…

使用python3批量下载网站图片

0x01 Code import shutil import requests import os from bs4 import BeautifulSoupurlhttps://www.woyaogexing.com/touxiang/fengjing/def download_tupian(image_url,image_localpath):response requests.get(image_url,stream True) #下载文件需要设置stream为trueif r…

webmatrix mysql_WebMatrix教程(一) (关注Microsoft 的最新武器:建立你的第一个WebMatrix网站)...

“除非你睡着了或刚刚从一个长假回来&#xff0c;你应该已经注意到了&#xff0c;…&#xff0c;微软重新进入到了高效率开发者’的圈子中。” – Scott Willhite – Director of Community Programs from DotNetNuke微软是这样定义WebMatrix -- 一个全新的网络开发工具&#x…

60个抢眼的企业网站设计案例

企业网站设计的共同点是如何使潜在客户的注意他们的产品。换句话说&#xff0c;它定义了一个企业网站的设计的关键要素是突出企业特点和可访问性。为了更好地了解企业的​​设计要点&#xff0c;今天给大家推荐60个醒目的企业网站设计&#xff01;希望大家喜欢

25个惊艳的复古网站设计欣赏

复古风格通过古典格调的形状、色彩、纹理、字体等组合&#xff0c;给予视觉上全新的感受&#xff0c;很容易从网页中脱颖而出&#xff0c;从而吸引用户。今天我们为大家带来25个精彩的复古网站设计&#xff0c;希望能给予你设计灵感。 visualrepublic forefathersgroup beautif…

网站图标ICO

效果图&#xff1a; 代码&#xff1a; 123456<head>...<link rel"shortcut icon" href"/favicon.ico" /><link rel"bookmark" href"/favicon.ico" type"image/x-icon" />...</head>转载于:https:/…

python爬取安居客二手房网站数据

之前没课的时候写过安居客的爬虫&#xff0c;但那也是小打小闹&#xff0c;那这次呢&#xff0c; 还是小打小闹 哈哈&#xff0c;现在开始正式进行爬虫书写 首先&#xff0c;需要分析一下要爬取的网站的结构&#xff1a; 作为一名河南的学生&#xff0c;那就看看郑州的二手房信…

网站备案是否真的需要关闭网站?

近期有好几个手上的单&#xff0c;本来已经有很好的收录和排名了&#xff0c;但是突然访问不了了&#xff01; 询问之下&#xff0c;原来是在申请备案&#xff0c;空间商强制关闭了网站&#xff01; 难道备案真的必须关闭网站&#xff1f;&#xff01;&#xff01;我们幸苦做出…

网站建设之关键词精准定位

为什么80%的码农都做不了架构师&#xff1f;>>> 你是否能在切图中关键词精准的定位呢&#xff1f;请运用“主谓宾定状补”去思考问题&#xff0c;从而去解读下来文章内容&#xff0c;感谢你的光临&#xff01; 关键词精准定位。做民营医院的网站已经有一年了&#…

分析网站原始访问日志

分析网站原始访问日志 Ludou 人气: 3,844 次我要评论( 21 )我要投稿文章目录 1、注意那些被频繁访问的资源 2、注意那些你网站上不存在资源的请求 3、观察搜索引擎蜘蛛的来访情况 4、观察访客行为 应敌之策 1、封杀某个IP 2、封杀某个浏览器类型&#xff08;Agent&#xff09; …

推荐几个知名顶级的文献网站

有人在后台给我留言&#xff0c;让我推荐几个查找文献的网站&#xff0c;周末特别花了点时间整理了一下。在这里推荐给大家&#xff0c;希望对大家有帮助&#xff01;本文总共分为2篇&#xff0c;一篇为国内的网站&#xff0c;一篇为国外的网站 。喜欢的朋友&#xff0c;记得长…

Android利用Jsoup解析html 开发网站客户端小记

这些天业余时间比较多&#xff0c;闲来无事&#xff0c;想起了以前看过开发任意网站客户端的一篇文章&#xff0c;就是利用jsoup解析网站网页&#xff0c;通过标签获取想要的内容。好了废话不多说&#xff0c;用到的工具为 jsoup-1.7.2.jar包&#xff0c;具体jsoup的相关文档&a…

Jsoup开发网站客户端第二篇,图片轮播,ScrollView兼容ListView

最近一段日子忙的焦头烂额&#xff0c;代码重构&#xff0c;新项目编码&#xff0c;导致jsoup开发网站客户端也没时间继续下去&#xff0c;只能利用晚上时间去研究了。今天实现美食网首页图片轮播效果&#xff0c;网站效果图跟Android客户端实现如图&#xff1a; 从浏览器开发者…

开发任意网站Android客户端教程

程序已经完成,源码下载: Yangtze.zip (2 MB, 下载次数: 5337) 2012-12-19 09:05 上传点击文件名下载附件 下载积分: 下载豆 -2 登陆是需要账号的,账号可能还要留着后续开发.而 我已经毕业了, 要是被改了我还真没法改回来了...所以就不提供了.如果有人特别想要登陆看看的,可以在…

一步步教你为网站开发Android客户端

本文面向Android初级开发者&#xff0c;有一定的Java和Android知识即可。文章覆盖知识点&#xff1a;HttpWatch抓包&#xff0c;HttpClient模拟POST请求&#xff0c;Jsoup解析HTML代码&#xff0c;动态更新ListView背景介绍&#xff1a;客户端&#xff08;Client&#xff09;或…

Android模拟登陆带验证码的网站客户端

首先获取验证码并保存Cookie&#xff0c;登陆时将Cookie和账号密码一同发送出去&#xff0c;返回状态码200&#xff0c;登陆成功&#xff0c;接下来再去访问其他需要登录权限的页面时附上Cookie发送出去即可。 要实现模拟登陆&#xff0c;首先需要了解登陆网站时请求中都包含什…

使用jsoup做任意网站的客户端

jsoup是一个解析网页源码的开源库&#xff0c;他能按照给定的规则提取出一个网页中的任意元素&#xff0c;和其他网页解析库不同的是&#xff0c;他提取网页内容的方式和css、jquery的选择器非常相似。因此如果你懂得前端的知识&#xff0c;只需根据以下的代码样例就可以在3分钟…

原来我们不懂百度seo排名和百度竞价

2013年即将结束&#xff0c;高富白美在欢乐着自己的年假和年终奖&#xff0c;而我等只能继续苦逼的为梦想坚持到除夕放假&#xff0c;或许这是假日组在淬炼我们的精神吧&#xff0c;笑一笑有啥&#xff0c;切入主题。网络营销千千万&#xff0c;我们今天只看百度系&#xff0c;…

免费主机备案带宽_怎样自己建立一个网站,免费建站靠不靠谱

一、网站的组成网站主要由域名、服务器、网页三个部分组成。如果把网站比作一个房子的话&#xff0c;那么域名&#xff1a;相当于网站的地址&#xff0c;或者说是门牌号&#xff0c;用来找到网站&#xff0c;网站上的网页都是以网站的域名开头的&#xff0c;例如网站域名是www.…