我建立了一个public.js的文件,里面写有一个函数fun_ajax,这个函数是操作数据库的,且通过setInterval周期调用这个函数fun_ajax.
我在整个项目的所有页中都引用了public.js 这个文件,但顾虑的问题是,同时打开多个页面,而每个页面都会去周期调用fun_ajax这个函数,这样一来就对服务器增加了很多压力。请问,有没办法解决这个问题呢,比如同时打开A、B、C页面,但这3页面中只允许一个页面所调用的PUBLIC.JS来执行setInterval周期调用,请大虾门赐教,不胜感激 ,顺祝新年快乐!

解决方案 »

  1.   

    参考session的概念
    前端js是调用后台的
    那么调用者要提供一个身份证明
    比如提供一个字符串 那么每个页面onload都会首先从后台拿到session字符串(每次随机生成不同)
    然后大家拿着这个session去后台调用方法
    后台认为拥有某个session的访问已经在调用了(比如首次调用者的session被认可了) 则这个session字符串的值作为一个执行许可证
    然后拥有这个session的页面调用后台才被允许执行最后要考虑执行结束的处理
    后台的这个执行是有状态的 
    请求状态:则发送session
    执行状态:则执行拥有指定session的页面的调用(这个状态要给以个结束的出口 让该状态返回到请求状态)
      

  2.   

    以上都不是我想要的,不过还是谢谢大家,我继续等我是要做用户在线的东东,每个页面都调用那个Public.js,便于时时更新用户登陆时间,比如1分钟执行一次,这样我就可以在Global里写程序,如果用户的更新时间大于1分的,说明他掉线了。注:这个是必须每个页都要调用的,固定在一个页调用,那样他关闭那个页,打开其他页就不能更新了
      

  3.   

    JS设置Cookie做一个计数,Public.js在执行前判断一下
      

  4.   

    我说过的,那个JS在所有页面,且每个页面都不许调用的,不是对于单一的某个页面,就即使每个页面通过iframe加载一个放有JS的public.html,那打开多个文件他还是会各司其职周期的去调用。