本节书摘来异步社区《web异步与实时交互——iframe ajax websocket开发实战》一书中的第2章,第2.3节,作者: 赵振 , 王顺 , 于梦竹 , 李泽 , 侯法超 , 刘备 , 时国森 , 李照耀 , 王世军,更多章节内容可以访问云栖社区“异步社区”公众号查看。
下面使用iframe模拟异步交互技术,使用轮询的方式,实现数字累加功能。
2.3.1 客户端关键代码
客户端代码主要包含3个部分:定时向服务器端发送请求、接收服务器端返回的信息及展示服务器端返回的信息。
关键代码如下所示:
public class testservlet extends httpservlet{//子类testservlet继承父类httpservlet
private int counts = 0; //私有成员变量counts
@override//覆盖父类的方法
protected void doget(httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception {
printwriter out = response.getwriter();//输出内容到客户端,就是用户的网页
out.println("");//调用show中的addmessage
counts++;
}
}<code>`</code>
接收到来自客户端的请求后,首先会通过response.getwriter()方法来获得一个响应的输出流,然后将counts计数信息连同包含它的js代码发送回客户端,客户端通过执行调用主页面的addmessage函数将counts信息进行显示。
程序开始运行后,运行效果如图2-1所示。

当程序运行30秒后,数字增加1,运行效果如图2-2所示。
程序每运行30秒,数字增加1,运行效果如图2-3所示。