• 关于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(int randnumber){
            if(dimensionService.isexist(randnumber)){
                return "trues";
            }else{
                return "falses";
            }
        }

    后台是用spring MVC的

    这里重点贴出一下dimensionService中caozuo

    public Dimension getById( int id){
            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(); 
            return dimension;
        }

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

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

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

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

  • 相关阅读:
    22:django 配置详解
    21:序列化django对象
    20:django中的安全问题
    19:django 分页
    HTML 标签(一)
    流程图学习绘制
    HTTP原理
    终端的颜色代码
    Python 进程 线程总结
    Python Select模型
  • 原文地址:https://www.cnblogs.com/ouzilin/p/5052584.html
Copyright © 2020-2023  润新知