2
我们希望使用javascript来操作二进制数据。虽然这可以通过ArrayBuffer来完成,但旧版浏览器不支持ArrayBuffer,那么您会如何推荐这样做?javascript中的跨浏览器二进制数据处理
我们希望使用javascript来操作二进制数据。虽然这可以通过ArrayBuffer来完成,但旧版浏览器不支持ArrayBuffer,那么您会如何推荐这样做?javascript中的跨浏览器二进制数据处理
您拥有的一个选择是将二进制数据存储在数组中并编写函数以与ArrayBuffers和UintXArrays相同的方式进行访问。这也可能是对DataView的一种补偿。
这不应该是一个太困难的任务,仍然合理地执行。
一个例子:
function getInt8(byteOffset)
{
return (byteArray[byteOffset] << 24) >> 24; // moves sign bit to bit 32
}
function getUint8(byteOffset)
{
return byteArray[byteOffset];
}
function getUint16(byteOffset)
{
return byteArray[byteOffset] | byteArray[byteOffset + 1] << 8;
}
function setUint8(byteOffset, value)
{
byteArray[byteOffset] = value & 0xff; // make sure to mask values
}
// etc...
这需要一些位魔法,但你应该能够与一些谷歌的数字出来。
还有很多关于IE如何处理二进制数据的内容(例如this关于XMLHttpRequests的广泛线索)。