JavaScript tiene muy poco soporte para datos binarios en bruto. En general, es mejor vivir dentro de esta restricción. Sin embargo, hay un truco que estoy considerando intentar para un proyecto mío que implica manipular mapas de bits enormes para hacer operaciones de conjunto en una base de datos OLAP. Esto no funcionará en IE.
La idea básica es la siguiente: coaccionar los datos binarios en un PNG para enviarlos a JavaScript, por ejemplo, un mapa de bits puede ser un PNG en blanco y negro, con el negro siendo 100% transparente. Luego use las operaciones de Lienzo para hacer la manipulación de datos en modo bit.
El HTML5 Canvas incluye un pixel array type, que permite el acceso a bytes en una imagen. Canvas también admite operaciones de composición, como XOR. Aligerar y oscurecer debería ser capaz de hacer AND y OR. Es probable que estas operaciones estén bien optimizadas en cualquier navegador que las admita, probablemente utilizando la GPU.
Si alguien lo intenta, dígame qué tan bien funciona.
me siento obligado a señalar que esta respuesta se ha quedado desfasado en 2012. Ahora tiene _Typed Arrays_ http://www.khronos.org/registry/typedarray/specs/latest/ Ex: 'arr var = Uint8Array (nuevo ArrayBuffer (1000)); ' – lenkite
@lenkite - ¿Es una posible extensión, o es algo disponible en la mayoría de los navegadores actuales (considere que la mayoría de los navegadores de los usuarios tienen una marca de 2/3 años)? –
@DannyStaple: disponible en un número alentador de navegadores de hoy, además de (por supuesto) IE: http://caniuse.com/#feat=typedarrays –