Implement online user statistics with ASP.NET

xiaoxiao2021-03-06  40

First, the user shows the use of the page

First, let's take a look at how the number of access users of the current website, the program code is as follows:

<% @ Page language = "c #" debug = "true"%>

Language = "c #" runat = "server">

Private Void Page_Load (Object Sender, System.EventArgs E)

{

Visitors.Text = "This site is currently: " Application ["user_ssssions"]. TOSTRING () " " <"<";

}

</p> <p>Online User </ Title></p> <p></ HEAD></p> <p><Body></p> <p><Asp: label id = "visitors" runat = "server" /> <br></p> <p></ Body></p> <p></ Html></p> <p>It can be seen that the above procedures are particularly simple, that is, call Application. Of course, we don't have to design a page to display the number of online users, any page of the website, we can directly call Application ("User_SESSIONS"). ToString () to display the current number of users.</p> <p>Second, the global.asax file implementation</p> <p>The role of the global.asax file We don't have to say, now we are directly to see how the current online user is implemented:</p> <p><Script language = "c #" runat = "server"></p> <p>Protected void Application_Start (Object Sender, Eventargs E)</p> <p>{</p> <p>Application ["User_SESSIONS"] = 0;</p> <p>}</p> <p>Protected Void Session_Start (Object Sender, Eventargs E)</p> <p>{</p> <p>Application.lock ();</p> <p>Application ["User_SESSIONS"] = (int) Application ["user_ssions"] 1;</p> <p>Application.unlock ();</p> <p>}</p> <p>Protected void session_end (Object Sender, Eventargs E)</p> <p>{</p> <p>Application.lock ();</p> <p>Application ["User_SESSIONS"] = (int) Application ["user_ssions"] - 1;</p> <p>Application.unlock ();</p> <p></ Script></p> <p>The above code is easy to understand, when the website starts service (when Application Start), the program sets Application ["User_SESSIONS"] is zero, then, when the user enters the website (when the session begins), lock Application, then, then, Add Application ("User_SESSIONS"), when the user exits the website, Application ("User_SESSIONS") is reduced. In this way, it is very clever to realize the statistics of online users.</p> <p>Third, a little discussion</p> <p>The above statistics, concise, and the procedure is easy to implement. However, if we carefully consider, it is found that this method has certain limitations, and the number of online users may be slightly a bit error. Because we are in the above programs, we have subtracted from the number of people to the number of people based on the user, and we know that if the user does not close the browser, then enter another website, then this session is in certain Time will not end, this time we can set it through Timeout, general, we set it 20 minutes. Therefore, at the quantity statistics, there is still a little error.</p> <p>Also, we know that in the ASP, if the user sets the cookies above the browser to "disable", then session can no longer be passed, obviously, this setting will make the above statistical procedure. However, in ASP.NET, we have a solution. In the config.Web file, we set <sessionState cookieless = "false" />, but also, do not use cookies to pass the session. In this way, our program can run smoothly in different visitor environments.</p> <p>Fourth, summary</p> <p>The above statistical procedures are particularly simple, but the details we don't necessarily think that this is also what we need to consider in programming.</p> <p>Author: ENET * heart * Dream excerpts</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-63039.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="63039" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.041</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'CWJeFQEYLI3Mr6VUB_2BQIb95dxG3ganWh6xD8WS54a8FrhxkheKbjSB02Mq07v3GtDZjlj_2BdAZfGnPzN0q6Yv8Q_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>