ajax 短轮询_关于ajax的短轮询问题

利用前台的ajax不断向后台服务器请求,后台服务器不断查看数据库里的信息是否变化。若变化将信息返回前台,并执行一些操作

前台ajax代码

注意要加上cache这一项,如果是post请求的化,可以免了。不然的化会一直从缓存中找数据,不能及时更新。

function ink(){

var a=$("#randnumber").val();

$.ajax({

type:"get",

async:true,

cache:false,

url:"student.do",

data: {method:"reg3",randnumber:a},

success:function(msg){try{if(msg=="trues"){

window.location.href='success.jsp';

}

}catch(e){

alert('服务器繁忙!请稍后再试!');

}

}

});

}

$(function(){setInterval("ink()",1000);});

后台代码

@RequestMapping(params="method=reg3")public @ResponseBody String reg3(intrandnumber){if(dimensionService.isexist(randnumber)){return "trues";

}else{return "falses";

}

}

后台是用spring MVC的

这里重点贴出一下dimensionService中caozuo

public Dimension getById( intid){final int randnumber=id;

System.out.println("dimension dao ing");

Session session=hibernateTemplate.getSessionFactory().openSession();

session.setFlushMode(FlushMode.AUTO);

Query q=session.createQuery("from Dimension where randnumber=?");

q.setInteger(0,randnumber);

Dimension dimension=(Dimension)q.uniqueResult();

session.close();returndimension;

}

这段代码是根据前台返回的randnumber进行返回数据库对应的dimension。

做的时候由于没有加session.close();这一句。出现了各种八阿哥,还好我及时参拜雍正。找出了。草,费煞人也。

短轮询来说太浪费了,请求的基本是无用的请求。大大损耗了性能。

这里最好是用长轮询来做,是推送模式。还在研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值