日期:2014-05-18  浏览次数:20588 次

java 后台调用前台ajax方法
java web 怎么在action中调用前台的ajax方法,情况是这样的,别人系统中数据一旦发生改变,调用我的后台方法,然后在我的页面上作出相应(执行ajax方法),或者有什么办法后台推送前台
java 推送 后台调用js

------解决方案--------------------
首先说明一点,用JAVA有一个JAR包是可以执行JS代码的,但是这不能满足你的需求。这跟HTTP协议有关,HTTP不同于SOCKT,他要数据时请求,请求完了马上断开连接,所以你无法在后台控制前台。要实现个思路有两个。1,如果数据是存数据库的你可以用2#说的定时查询来实现。2,如果数据不存数据库你还是要用AJAX来实现,只不过不是定时而是AJAX“服务器推送技术”。其实两种都是轮询别被“服务器推送”这几个字迷或了。
------解决方案--------------------
后台基本是没机会主动去请求页面ajax刷新页面的,可以反过来想
1.页面建立定时器(setInterval)定期请求后台监控某个状态,此状态可以是数据库里面的数据也可以是静态变量
2.一旦此状态发生变化,刷新页面。
你这个【别人系统中数据一旦发生改变,调用我的后台方法】
如果是你这边的接口,可以设一个静态变量,如果此变量发生变化,js定时器响应ajax
------解决方案--------------------
你看看使用dwr行不行
------解决方案--------------------
简单做就页面写个interval定时轮询后台,复杂的需要comet,就是服务器推技术
------解决方案--------------------
浏览器发起一个ajax请求,后台action将请求挂起等到满足触发条件时再返回数据。

为防止后台过多的挂起可以给请求设置超时时间,页面检测到超时就立刻再发送一个请求。

你可以参考下微信网页版登陆界面。用个http抓包工具就可以看到他每隔一段时间就会发一个请求到后台,超时重发,直到你扫描了二维码,服务器通知页面改变为止