1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // 此文件在worker环境下运行。
- importScripts('md5.js');
- var fr = new FileReader();
- var Md5File = (function() {
- /*var throttle = 3,
- pool = [],
- wating = [];
- function _tick() {
- var avaibles = [],
- i, fr, cb;
- for ( i = 0; i < throttle; i++ ) {
- fr = pool[ i ];
- fr && fr.readyState === 2 && avaibles.push( fr );
- }
- while ( avaibles.length && wating.length ) {
- fr = avaibles.shift();
- cb = wating.shift();
- fr.onload = fr.onerror = null;
- cb( fr );
- fr.onloadend = _tick;
- }
- }
- function getReader( cb ) {
- var fr;
- if ( pool.length < throttle ) {
- fr = new FileReader();
- pool.push( fr );
- cb( fr );
- fr.onloadend = _tick;
- return;
- }
- wating.push( cb );
- _tick();
- }*/
- return function( file, cb ) {
- var reader = new FileReader();
- reader.onload = function() {
- cb( md5( this.result ) );
- reader.onload = reader.onerror = null;
- reader.readAsBinaryString( new Blob() );
- reader = null;
- };
- reader.onerror = function( e ) {
- reader = reader.onload = reader.onerror = null;
- };
- reader.readAsBinaryString( file );
- }
- })();
- onmessage = function( e ) {
- var file = e.data;
- Md5File( file, function( ret ) {
- postMessage( ret );
- });
- }
|