web前端异步数据交互(长连接)
Workers异步任务
开始(注册):
divobjx=document.getElementsByTagName("div")[0];
var workdong=new Worker("dong.js");//创建work对象
workdong.onmessage=function(ee){
var resx=ee.data;//得到数据
divobjx.innerHTML=resx;//数据显示
}
任务文件(dong.js):
var conutx =0;
function confun(){
postMessage(conutx);//发送消息
conutx++;
setTimeout(confun,1000);//递归调用
}
confun();
停止任务:
if(workdong){
workdong.terminate();
workdong=null;
}
获取服务器实时数据
客户端实现EventSource,定时访问(一般在2-3秒频率)服务器以刷新页面,每次访问会执行完服务器脚本的所有内容,服务器可以使用ob_flush();flush();进行一次访问数据的多条分别输出。
客户端:
divobjx=document.getElementsByTagName("div")[0];
divobjx1=document.getElementsByTagName("div")[1];
//异步任务开始
var ev=new EventSource("dong.php");
ev.onopen=function(e){
divobjx1.innerHTML="链接打开中";
} //获取数据方法一
//ev.onmessage=function(e){
// var resx=e.data;//得到数据
// divobjx.innerHTML=resx;//数据显示
//} //获取数据方法二
ev.addEventListener("newdong",function(e){
divobjx.innerHTML=e.data;
});
ev.onerror=function(e){
divobjx1.innerHTML="链接错误或当次执行完毕";
}
服务器:
<?php
header('Content-Type: text/event-stream');
for($i=0;$i<5;$i++){
//事件名,如果使用方法一进行数据获取,则必须省略此句
echo "event:newdong\n";
//数据
echo "data:dongxioadong东东".$i."\n\n";
//刷新,实现逐条发送
ob_flush();
flush();
sleep(1);
}
?>
web前端异步数据交互(长连接)的更多相关文章
- web前后端数据交互
前后端数据交互是每一名web程序员必须熟悉的过程,前后端的数据交互重点在于前端是如何获取后端返回的数据,毕竟后端一般情况下只需要将数据封装到一个jsonMap,然后return就完了.下面通过一个li ...
- 当web应用包含了websocket长连接,如何在web应用前加一层nginx转发
1 通过在web应用的前面加一层nginx ,可以实现一台主机部署多个应用,每个应用都可以用不同的域名去访问,并且端口都是80 2 nignx 转发websocket长连接 1 每个web应用,他们运 ...
- spring controller获取web前端post数据乱码解决
web.xml文件加上如下代码<!-- post请求乱码拦截器 --><filter> <filter-name>CharacterEncodingFilter&l ...
- web实现数据交互的几种常见方式
前言 在当今社会,作为一名前端程序猿,并不是一昧的去制作静态页面就可以满足滴:你说你会制作网页,好吧,只能说你算是一个前端程序猿.但这是你作为一个程序猿最基本的能力,并不会为你进行加分: 我们都明白, ...
- 前端与后端数据交互的方式之ajax
前端与后端数据交互的方式之Ajax 对于前端学习而言,CSS+HTML+JavaScript的学习在自我学习的情况下掌握也不是很难,但是想要实现前后端的数据交互在没有指导的情况下学习会是一头雾水.接下 ...
- web服务器长连接
web服务器都提供长连接的方式,所谓长连接就是客户端一次请求完后,不关闭连接,保持一段时间的连接,下次此客户端再次请求时,不用创建新连接,复用所保持的连接即可.从理论上,长连接可以免去大量建立和关闭连 ...
- web前端基础学习路线
1.HTML和CSS的基础知识,完成网页的初步设计 2.JavaScript基础知识和DOM.BOM的学习 3.前端基础框架:CSS框架Bootstrap.JavaScript框架jquery的熟悉使 ...
- HTTP的长连接和短连接——Node上的测试
本文主要从实践角度介绍长.短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP.Ajax做客户端请求测试,最后简单涉及WebSocket. 关键字:长连接.短连 ...
- TCP长连接与短连接、心跳机制
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
随机推荐
- WinForm DotNetBar 动态添加DataGridView
DataGridView dgv = new DataGridView(); dgv.Dock = DockStyle.Fill; dgv.Location = new System.Drawing. ...
- T-SQL流程控制语句
文章目录 if else语句 简单case语句 搜索式case语句 while语句 if else语句 格式: IF 布尔表达式 BEGIN END ELSE BEGIN END 示例: DECLAR ...
- Unity Button事件的简洁处理
看到很多人依然还是通过最原始的方法给button绑定事件并处理,这种通过Find往子集一个个的查找,获取到后再绑定事件这种操作很费事,有些人则是对查找对象写了个方法自动往子集遍历更方便获取对象,但还是 ...
- pycharm设置文件编码
原文链接
- C#动态设置webServer路径
using BD.SD_BJXYZY_PRO.WsbxService;using System;using System.Collections.Generic;using System.Linq;u ...
- mongooDb链接javaapi
mongodb链接有多种:所以不同链接下的api也不太一样. 1.api比较全面 public void query2(){ String mondburl = Config.getInstance( ...
- Leetcode——Two Sum(easy)
题目:Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1] 代码: ...
- Linux 云计算运维之路
搭建中小型网站的架构图 s1-2 Linux 硬件基础 s3-4 linux 基础 文件系统 用户权限 s5-6 Linux 标准输出 系统优化 目录结构 w7 rsync-备份服务器 w8 NFS服 ...
- mathematic语法基础
1. 注释,用 (*这是注释*) 2.清除空间变量 Clear["`*"] 3. 求方程组.这个方程组比较特殊,有五个方程,六个变量,求其中五个变量(因变量)用另外一个变量(自 ...
- shell脚本学习-分支结构
跟着RUNOOB网站的教程学习的笔记 if语法格式 if condition then command1 command2 ... commandN fi 写成一行(使用于终端命令提示符): ]; t ...