读取在具有IE的工作程序中生成的对象URL
reading an object URL produced in a worker with IE
我有一个webworker,它正在生成用于下载的CSV,为了节省内存,我只让它返回它从blob生成的URL。。我的工作者代码看起来像::
var blob = new Blob([ResultOfSomeWork()],{type:'text/csv'});
URL.createObjectURL(blob);
self.postMessage({url:blob.url});
我的目标是能够在firefox和chrome中下载它,这非常容易,因为我可以设置一个不可见的<a>
,然后点击它下载
对于IE10,我想使用msSaveBlob
,但我需要一个我不想传输的blob。如何在IE10中下载对象数据URL?
所以我找到了一个有效的解决方案。显然,我可以XHR并在我的主线程中读回内容。
worker.onmessage = function(event){
var url = event.data.url;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType='blob';
xhr.onload = function(){
msSaveBlob(xhr.response, fileName +'.csv');
};
xhr.send();
}
虽然这感觉非常复杂,但在实践中效果很好,速度也很快。
相关文章:
- 在URL中传递JS对象
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 如何仅在对象URL's已下载
- Mapbox JS,来自URL的GeoJSON featureCollection对象只添加了一个标记
- Android上的Chrome无法播放来自对象URL的录制音频
- 读取在具有IE的工作程序中生成的对象URL
- 将URL字符串${userid}替换为javascript对象中的实际用户id
- 如何使用 Backbone 读取通过同一 REST URL 返回的两个不同对象
- 我的 AJAX 请求对象无法正确解析 URL 的协议部分
- 向jQueryajax调用添加参数,最好添加到URL或对象中
- 从url对对象进行角度编码和解码
- 如何使用API URL的JSON.parse将JSON字符串更改为Javascript对象
- 如何从每个对象获取jQuery的“title”和“url”值
- 如何用php url返回的JSON对象填充表
- 如何从JSON对象部分获取URL
- 将模型/对象放在Http Get-URL上
- 将参数传递给 BLOB 对象 URL
- chrome/ff中带有createObjectURL的对象URL的数据URI
- 为什么我的AJAX文件下载,使用基于Blob的对象url,破坏文件
- 类似于对象URL的方式在Chrome for Android中播放本地音频文件