JavaScript---Beacons图片信标发送数据
2017-09-08 20:53
134 查看
简介
这项技术非常类似动态脚本注入. 使用JavaScript创建一个新的Image对象, 并把src属性设置为服务器上的脚本URL. 该URL包含了我们要通过GET传回的键值对数据. 请注意并没有创建img元素或把它插入DOM.var url = '/status_tracker.php'; var params = [ 'step=2', 'time=1248027314' ] (new Image()).src = url + '?' + params.join('&');
服务器会接收到数据并保存下来, 它无需向客户端发送任何回馈消息, 因此没有图片会实际显示出来. 这是给服务器回传信息最有效的方式. 它的性能消耗很小, 并且服务端的错误完全不会影响到客户端.
图片信标很简单, 但也意味着它能做的事情是有限的. 你无法发送POST数据, 而URL的长度有最大值, 所以你可以发送的数据的长度被限制得相当小. 你可以接收服务器返回的数据, 但只局限于非常少的几种方式. 一种方式是监听
Image对象的
load事件, 它会告诉你服务器是否成功接收数据. 你还可以检查服务器返回的图片的宽度和高度(如果是图片的话)并使用这些数字通知你服务器的状态. 举个例子, 宽度为1表示”成功”, 为2表示”重试”.
如果你不需要在响应中返回数据, 就应该发送一个不带消息正文的204 No Content状态码, 它将阻止客户端继续等待永远不会到来的消息正文.
例子
var url = '/status_tracker.php'; var params = [ 'step=2', 'time=1248027314' ] var beacon = new Image(); beacon.src = url + '?' + params.join('&'); beacon.onload = function( ) { if (this.width == 1) { //成功 } else if (this.width == 2) { //失败 } } beacon.onerror = function() { //出错 }
相关文章推荐
- javascript将base64编码的图片数据转换为file并提交
- 有关于用javaScript点击一次提交数据却发送了两次或者多次的问题
- 利用javascript从数据库取数据来实现CSDN首页图片的切换效果
- 使用原生JavaScriptAjax以及jQuery的Ajax结合SpringMVC发送和获取json数据
- javascript将base64编码的图片数据转换为file并提交
- 使用JavaScript在图片热点按钮提交表单数据
- 基于对象的JavaScript实现无刷新页面发送和获取数据Ajax.js
- javascript将base64编码的图片数据转换为file并提交
- 纠错:基于FPGA串口发送彩色图片数据至VGA显示
- JavaScript - AJAX 通过 FormData 上传 form 表单中的所有数据(text 文本,files 图片等二进制文件)
- Ajax+JavaScript 发送数据
- [ActionScript 3.0] AS利用ByteArray向PHP发送二进制数据生成图片
- javascript发送表单文件,ajax异步,不刷新页面上传PDF文件,并写入数据库,得到异步数据,提示上传成功或失败
- 使用xutils发送POST请求,携带json和图片二进制文件数据获取服务器端返回json数据
- C#远程发送和接收数据流生成图片的方法
- 区块链开发教程: 使用Javascript发送数据到区块链
- javascript基础——图片切换以及模拟短信发送
- 利用javascript从数据库取数据来实现CSDN首页图片的切换效果
- (转载)javascript将base64编码的图片数据转换为file并提交