《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 2.3 示例程序

简介:

本节书摘来异步社区《Web异步与实时交互——iframe AJAX WebSocket开发实战》一书中的第2章,第2.3节,作者: 赵振 , 王顺 , 于梦竹 , 李泽 , 侯法超 , 刘备 , 时国森 , 李照耀 , 王世军,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 示例程序

下面使用iframe模拟异步交互技术,使用轮询的方式,实现数字累加功能。

2.3.1 客户端关键代码
客户端代码主要包含3个部分:定时向服务器端发送请求、接收服务器端返回的信息及展示服务器端返回的信息。

关键代码如下所示:

<html>
 <head>
  <script type="text/javascript">
  function addMessage(counts){ //将服务器端发送回的信息更新到文本框
    var messageElement = document.getElementById("message");//获取id为message的文本框
    messageElement.innerHTML += counts; //将新信息添加到文本框
  }
  function f(){
    if(true){
     var iframeElement = document.getElementById("iframe");
     iframeElement.src = iframeElement.src;
     setTimeout(f, 30*1000);
    }
  }
  setTimeout(f, 30*1000); //定时器,实现每30秒调用一次函数f
  </script>
 </head>
 <body>
    <iframe id="iframe" src="test"></iframe>//通过src指向一个Servlet类,实现对服务器端的请求
    <style="display:none">
    <div id="message" style="height:400px; width:100%; overflow:scroll;"></div>
  </body>
</html>```
为实现客户端定时向服务器发送请求,通过在客户端添加一个定时器,定时时间为30×1000(以毫秒计算时间,即30秒)。当时间到达30秒后,通过调用函数f来更改iframe的src属性,重新向服务器发送请求,也就实现了轮询。

服务器返回给客户端的是一段js代码,该js代码调用了addMessage函数。该函数的作用是将新信息添加到id为message的div中。

####2.3.2 服务器端关键代码
服务器端的关键代码主要是在Servlet中,通过doGet方法来处理来自客户端的请求。

关键代码如下所示:

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++;
   }
}`
接收到来自客户端的请求后,首先会通过response.getWriter()方法来获得一个响应的输出流,然后将counts计数信息连同包含它的js代码发送回客户端,客户端通过执行调用主页面的addMessage函数将counts信息进行显示。

2.3.3 案例系统运行效果

程序开始运行后,运行效果如图2-1所示。

51f90c80b82c8e5d3c2b79ed42c8921998f23598

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

c607eae195896553dd1089f73dcf19d166fa99c1

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

0f7612575f8d6f55775b23866c8243013cc66f69
相关文章
|
3月前
|
前端开发 JavaScript API
Ajax技术的秘密揭秘:异步传输,高效交互
Ajax技术的秘密揭秘:异步传输,高效交互
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0
|
3月前
|
JSON 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
|
3月前
|
XML 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)
|
3月前
|
设计模式 开发框架 前端开发
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
|
5月前
ajax+json模拟一个页面多个统计图数据交互
ajax+json模拟一个页面多个统计图数据交互
24 1
|
7月前
|
安全 中间件 API
详解Django请求与响应:深入理解Web Http交互的核心机制
详解Django请求与响应:深入理解Web Http交互的核心机制
73 0
|
8月前
|
JavaScript 前端开发 Java
【JCEF】如果用JCEF对项目进行web交互
【JCEF】如果用JCEF对项目进行web交互
267 0
|
8月前
|
前端开发
【JCEF】后端通过技术进行web交互
【JCEF】后端通过技术进行web交互
163 0
|
9月前
|
XML 前端开发 JavaScript
ajax 异步
Ajax(异步JavaScript和XML)是一种用于创建优雅的、可交互的Web内容的技术。它使用XMLHttpRequest对象作为后台与服务器端通信的桥梁,并使用JavaScript处理和展示从服务器端返回的数据。 Ajax可以使用户界面更加实时和响应迅速,因为它只需要通过JavaScript处理和展示从服务器端返回的部分数据,而无需重新加载整个页面。这也意味着,用户可以在不必等待整个页面重新加载的情况下,就可以获取和操作服务器端的数据。 Ajax的工作原理是,当用户触发某个操作时,JavaScript代码会向服务器发送一个HTTP请求,并在服务器端返回响应后,使用JavaScript处理
39 0