ajax联系人数,setInterval定时调用ajax实现在线人数统计
index页面把onLineCount.jsp给include进来,onLineCount.jsp每隔一段时间刷新一次从数据库中统计数据,很显然这个方法非常的错误,onLineCount.jsp每次刷新的同时index整个页面也要刷新,首页数据量大的情况下肯定不行。而且还出现了一个我更郁闷的问题
:用户a登录后页面显示a的相关信息,用户b
登录后应该显示b的相关信息,如果把刷新的间隔时间设的短假如10秒钟,那么在服务器反映慢的情况下,如果a
已经登录并显示a的内容,但是刚好在b登录的时候,a页面正好刷新,等b登陆成功后b的页面显示b的信息,但这个时候a的页面也显示了b的信息,如果我把这个间隔的时间设长,加入1分钟,即使服务器再慢1分钟应该反映的过来吧,这样就没有出现乱套的问题,如果间隔时间为10秒,服务器反映够快,也不会出现乱套的情况。
于是还得想办法,ajax以前经常听说,实际中也没用过那么就用这个试一下,结果发现还真的像传说中的那么好用
Count.jsp
language="java" %>
import="cn.sh.guanghua.mediamex.common.CountServlet"%>
import="cn.sh.guanghua.mediamex.db.dataunit.MonitorServer"%>
import="cn.sh.guanghua.mediamex.common.Db"%>
import="java.util.List"%>
import="cn.sh.guanghua.monitor.SnmpValueObject"%>
import="java.util.Hashtable"%>
import="cn.sh.guanghua.mediamex.common.OnlineCounter"%>
long monitorServer_Id=1;
MonitorServer monitorServer=(MonitorServer)
Db.monitorServer().getObject(monitorServer_Id);
String strIp;
String strCommunity;
long port;
long type;
long timeout;
long version;
strIp=monitorServer.getMonitorServerIp();
strCommunity=monitorServer.getMonitorServerCommunity();
port=monitorServer.getMonitorServerSnmpPort();
type=monitorServer.getMonitorServerType();
timeout=monitorServer.getMonitorServerTimeout();
version=monitorServer.getMonitorServerVersion();
List
result=Db.monitorItem().getSnmpValue(type,port,strIp,strCommunity,version,timeout);
SnmpValueObject snmp=null;
//onlineUsercount
// int
onlineUserCount=OnlineCounter.getOnline();
int
onlineUserCount=Db.sivaUsers().geOnlineCount();
%>
var
getOnline=setInterval("send_request()",2000);
var http_request = false;
function send_request()
{//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla
浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { //
IE浏览器
try {
http_request = new
ActiveXObject("Msxml2.XMLHTTP");
} catch (e)
{
try {
http_request = new
ActiveXObject("Microsoft.XMLHTTP");
} catch (e)
{}
}
}
if (!http_request) { //
异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange
= processRequest;
//
确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open("post",
'getCount.jsp',
true);
http_request.send(null);
}
// 处理返回信息的函数
function processRequest()
{
if
(http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { //
信息已经成功返回,开始处理信息
//alert(http_request.responseText);
onlineCount.innerHTML=http_request.responseText;
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
文章转载请注明来源。新辉网主页 > 网页基础 > Javascript/Ajax >
标题:setInterval定时调用ajax实现在线人数统计
地址:http://www.a55.com.cn/a/1662.html
关键词:setInterval定时调用ajax实现在线人数统计_无梦
ajax联系人数,setInterval定时调用ajax实现在线人数统计相关推荐
- jQuery ajax请求两次问题,jquery ajax请求了两次问题
页面有一个请求form: 订单编号 用户帐户 发货状态 请选择 未发送 已发送 查询 JavaScript请求部分: function showdatalist() { var username = ...
- c ajax定时获取,ajax的定时调用每5秒调用一次
这篇文章主要介绍了关于ajax的定时调用,本例为每5秒调用一次,大家可以根据自己的需求更改 代码如下: function initXMLRequest(){ if (window.ActiveXObj ...
- Ajax基石脚本异步并发调用参数传递
在Ajax开发框架中,最基本的划分是服务器端和客户端.服务器端相对来说比较简单,只要是可以开发动态网页的语言都可以胜任:客户端浏览器就是JScript/JavaScript的天下了,好像没有看到有VB ...
- ajax和rxjs,javascript – RxJS 5 Observable和Angular2 http:调用ajax一次,保存结果,随后的ajax调用使用缓存结果...
下面的代码是我目前拥有的简化版本: name.service.ts@Injectable() export class NameService { const nameURL = "http ...
- ajaxsetup获取ajax的url_跨域调用接口的方法之一:$.ajaxSetup()
跨域查询接口的数据,之前在公司时有发生过,产生的原因是,本地请求的域名或IP地址不一致,解除方法,也是修改域名和IP地址.比如: 接口中的数据来自IP地址:192.168.1.23/get.php 如 ...
- ajax获取jsp数据,如何使用ajax调用从servlet到jsp获取arraylist数据
我通过widow.load()事件上的ajax调用来调用servlet.但是当我想在警报框中显示ajax调用成功后获得的值时,它显示[object XMLDocument]我不知道为什么.这是第一次我 ...
- 关于IOS无法在微信浏览器页面关闭时调用ajax问题
经测试,以下方法为监听ios页面关闭的方式 window.addEventListener('pagehide', function () {//页面关闭时触发 }); 但上述方法内无法调用ajax. ...
- ajax使用总结-ajax的配置-ajax的调用-ajax的中文乱码-ajax的表单提交
·jquery的使用 0.必须优先引入jquery.js 否则无法调用jquery框架 1.js区分大小写,起名字的时候要注意 2.jquery根据div的id属性获取页面text的 ...
- javascript-前后端交互-异步调用Ajax与Promise比较
javascript-前后端交互-异步调用Ajax与Promise比较 目录 文章目录 1.异步调用 1.1.使用场景 1.2.Ajax使用 1.2.1.启动后台 1.2.2.编写前端测试页面 1.3 ...
最新文章
- 图论 ---- 启发式合并 + 并查集模拟 + 证明 F. Phoenix and Earthquake
- 【机器视觉】 dev_set_paint算子
- 开源绘画应用 Pinta 已移植到GTK 3和.NET 6
- OGNL、EL表达式——Struts
- 这一项经典功能即将回归!手机厂商们都后悔了...
- HDU1754 I Hate It (线段树单点修改+区间查询)
- 短文本相似度比较:simHash简介以及java实现
- 泰坦尼克号python数据分析统计服_Python数据分析及可视化实例之泰坦尼克号存活预测(23)...
- eBay SOA开源平台
- python饼图 立体_【Python基础】惊叹,Pyecharts绘制饼图原来可以如此漂亮!
- 初体验 | 购买激活Typora软件
- Mac的最新版本JDK下载失败的解决方法
- mybatis plus 格式话_MyBatisPlus学习整理(二)
- 京东2015校园招聘笔试编程题
- 复旦经管院李若山教授故事摘要
- iOS - 定制多样式二维码
- 科学前沿,AI共创 ┃ AI for Science 助力各行业高质量发展
- 【Rust日报】2021-08-30 如何来看待 unwrap
- ld 无法找到项目符号 链接失败_中海南联石化(D30环保优质溶剂油)PowerPoint 2003应用技术 08...
- 《网安学习之道》第一季计算机基础18_生成树协议STP
热门文章
- leetcode 446. Arithmetic Slices II - Subsequence | 446. 等差数列划分 II - 子序列(动态规划)
- Spring 源码讲解:bean 的创建流程 - 公开课笔记
- ZooKeeper实战(三):ZooKeeper实现分布式配置中心、分布式锁、Reactive响应式模型
- 算法设计与分析(第四周)同时选最大和最小 优化解法
- HTTP系列之:HTTP中的cookies
- Hadoop2调优(一):如何控制job的map任务和reduce任务的数量
- linux用的那国语言,在linux上可以使用什么变成语言
- 函数式接口@FunctionalInterface使用示例
- springmvc 注解总结
- kotlin学习目录