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的廣泛線索)。