写这篇博客的起源是在div.io上的一篇文章<你所不知道的JavaScript数组>by 小胡子哥下的评论中的讨论. 因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那样无所适从,随着Canvas/WebGL等新技术逐渐开始进入大众视 野,也会用到一些字节数组或者16位.8位整数等东西.在node.js刚刚发布的4.0版本中,Buffer的底层使用了更符合JS标准的Uint8Array来实现,浏览器和node.js再次向相同的目标靠近了一点点,所以对于JS中处理二进制,我就…
ASP.NET MVC 提供与访问 Web Api 一.提供一个 Web Api 新建一个项目,类型就选 "Web Api".我用的是MVC5,结果生成的项目一大堆东西,还编译不过,真操蛋.用nuget装了好一阵才跑通.我估计MVC Web项目也可以的,甚至Web Form应该都行. 下面是一个Action.主要是想返回json数据. public ContentResult GetUser() { return new ContentResult { ContentEncoding…
本文主要参考:MDN 分析并操作 responseXML属性 如果你使用 XMLHttpRequest 来获得一个远程的 XML 文档的内容,responseXML 属性将会是一个由 XML 文档解析而来的 DOM 对象,这很难被操作和分析.这里有五种主要的分析 XML 文档的方式: 使用 XPath 定位到文档的制定部分. 使用 JXON 将其转换成 JavaScript 对象树. 手工的 解析和序列化 XML 为字符串或对象. 使用 XMLSerializer 把 DOM 树序列化成字符串或…
平时习惯了用js操作dom树来与html页面进行交互,基本都是通过web API接口实现的,最近看闭包和原生js的知识点比较多,昨天无意中看到了onclick中的this指向问题,遂用native js方式模拟了onclick再html标签里的this和js事件里的this,详见上一篇博客:用js的eval函数模拟Web API中的onclick事件 下文中的js均为javaScript的缩写. 模拟完之后突然好奇,原生的web API中的onclick是怎么实现的呢?难道是也是跟我一样扩展了H…
对于一些返回数据非常简单的 Web API,比如我们今天遇到的“返回指定用户的未读站内短消息数”,返回数据就是一个数字,如果通过 http response body 返回数据,显得有些奢侈.何不直接通过 http headers 返回呢?节能又环保.于是今天在 ASP.NET Web API 中实际试了一下,证明是可行的. 在 Web API 服务端借助 HttpResponseMessage ,可以很轻松地实现,代码如下: public class MessagesController :…
  二进制数据包的解析一般是借助C#等语言,在通讯程序中解析后形成字段,再统一单笔或者批量(表类型参数)提交至数据库,在通讯程序中,存在BINARY到struct再到table的转换. 现借助CLR提供基本的INT2HEX(小端)等函数,在SQL中直接解析数据包.   基本函数 [Microsoft.SqlServer.Server.SqlFunction(Name = "Time2UTCBin")] public static SqlBinary Time2UTCBin(DateTi…
Node.js之使用Buffer类处理二进制数据 Buffer类可以在处理TCP流或文件流时处理二进制数据,该类用来创建一个专门存放二进制数据的缓存区. 1. 创建Buffer对象 1.1 直接创建: bur = new BUffer(123) //123 为bur缓存区长度 1.2 初始化缓存区内容可以用fill属性: bur.fill(value,[offset],[end]) //value:为必填参数,数值为需要写入的数值 第二个参数为数据写入的起始位置,默认为0 第三个参数为数据写入的…
Blob 在项目中涉及到要对html原生的audio组件进行样式复写,因此需要重新实现audio的一些功能,比如下载.实现一个下载大致的思路是服务端返回一段音频的二进制数据,客户端将其存放在Blob中,再通过URL.createObjectURL将其转换成blob url,最后动态创建a标签,添加download属性,模拟点击事件来实现下载.代码比较简单,我们重点来看看Blob是何方神圣. const saveExcelFile = (blob, filename) => { if (windo…
HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件. 使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要处理的文件或数据. 创建实例 var reader = new FileReader(); 方法 方法定…
0.前言 对于前端程序员来说,平时很少和二进制数据打交道,所以基本上用不到ArrayBuffer,大家对它很陌生,但是在使用WebGL的时候,ArrayBuffer无处不在.浏览器通过WebGL和显卡进行通信,它们之间会发生大量的.实时的数据交互,对性能的要求特别高,它们之间的数据通信必须是二进制的才能满足性能要求,而不能是传统的文本格式.文本格式传递一个 32 位整数,两端的 JavaScript 脚本与显卡都要进行格式转化,将非常耗时.类型化数组的诞生就是为了能够让开发者通过类型化数组来操作…