利用XMLHttpRequest同步和异步下载二进制文件的解决方案。

2023-11-09

在XMLHttpRequest2里支持二进制数据的下载了,现分别以同步和异步两种方式分别介绍。

异步的方式下载:

 

 
     xmlRequest.open("GET", "0.jpg", true);
     xmlRequest.responseType = "blob";//这里是关键,它指明返回的数据的类型是二进制
     xmlRequest.onreadystatechange = function(e) {
         if (this.readyState == 4 && this.status == 200) {
             var response = this.response;
             img.src = window.URL.createObjectURL(response);
         }
     }
     xmlRequest.send(null);

同步的方式下载:

 

 
xmlRequest.open("GET", "0.jpg", false); xmlRequest.overrideMimeType('text/plain; charset=x-user-defined');//这里是关键,不然 this.responseText;的长度不等于文件的长度 xmlRequest.onreadystatechange = function(e) { if (this.readyState == 4 && this.status 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用XMLHttpRequest同步和异步下载二进制文件的解决方案。 的相关文章

  • Webgl 跨源图像不起作用

    我在跨源图像方面遇到了一些问题 希望您能提供帮助 这里是行为 我有 2 个域 例如 域名1 com 域名2 com 在domain1上我放了很多html5游戏 该域只是游戏的存储库 Domain2是真正的网站 wordpress网站 用户可
  • 使用 ShaderMaterial 复制 MeshLambertMaterial 会忽略纹理

    我注意到 THREE js 在内部使用着色器来创建核心材质 例如 MeshLambertMaterial 因此我决定将 Three js 代码中的兰伯特着色器复制到新的着色器中并在其上进行构建 这是我得到的代码 忠实地从 Three js
  • 使用画布(三.js)覆盖画布(WebGL)

    我有两块画布 第一个应该是背景 其内容通过原始 WebGL 3D 渲染 第二个画布应该覆盖第一个画布 并且主要是透明的 它的内容通过 Three js 3D 内容 呈现 不幸的是 第二个画布不是绘制在第一个画布的上面 而是绘制在它的旁边 如
  • webgl 中的多个对象

    我正在尝试将一些对象渲染到画布上 但我在理解哪些内容不起作用时遇到了一些困难 我目前正在构建两个对象 它们代表我想要渲染的两个网格 如果我创建一个网格 代码可以正常工作 所以我认为问题在于 当我构建两个或更多网格时 数据会被搞砸 这是网格数
  • 如何在 GLSL / WebGL 中将 1 个 32 位整数打包为 4 个 8 位整数?

    我正在寻求并行化一些复杂的数学 而 WebGL 看起来是实现这一目标的完美方法 问题是 您只能从纹理中读取 8 位整数 理想情况下 我希望从纹理中获取 32 位数字 我的想法是使用 4 个颜色通道来获得每像素 32 位 而不是 4 乘以 8
  • canvas 与 openGL 的功能是什么?

    我知道如果你向 openGL 发送静态且很少变化的纹理 例如像图块一样 openGL 会产生奇迹 但当你有不断变化的精灵时就不行了 是否有可能纯粹从画布上创建类似绑架这样的游戏 它的性能如何 可以使用画布创建诸如绑架之类的游戏 但最终您将在
  • 未捕获的类型错误:无法解析模块说明符“三/示例/jsm/loaders/GLTFLoader.js”

    我很难理解为什么我的程序由于这个错误而崩溃 未捕获的类型错误 无法解析模块说明符 三 示例 jsm loaders GLTFLoader js 相对引用必须以 或 开头 我正在尝试使我的 html 文件与我创建的 serial js 文件进
  • int gl_VertexID 导致 Three.js 出错

    我一直在使用内置顶点索引的 gl VertexID 时遇到问题 通过使用in 与 Three js 一起使用 我不知道为什么 因为文档说它适用于所有版本的 OpenGL http www opengl org sdk docs mangls
  • 为什么此 WebGL 帧缓冲区使用会抛出 FRAMEBUFFER_UNSUPPORTED?

    我正在尝试创建一个 WebGL 选择缓冲区 有人能看到我在这里做错了什么吗 我在 Mozilla 5 0 X11 Linux x86 64 rv 2 0b3pre Gecko 20100724 Minefield 4 0b3pre 和 Ch
  • Three.js中是否有一个容器类型对象来转换一组孩子?

    Three js 中是否有一个容器或节点对象 可以将多个网格添加为子对象 以便它们可以一起转换 一个不可见的容器 允许对组中的所有子对象执行转换 thanks Example http mrdoob github com three js
  • 在 WebGL 中与 HTML 背景混合

    我正在将平面颜色和纹理绘制到 WebGL 画布中 我的颜色和纹理具有不同的 alpha 值 我希望它们能够正确混合 我想要透明背景 它们应该与画布下的 HTML 内容混合 在 WebGL 中 我使用 gl clearColor 0 0 0
  • OpenGL 和 WebGL 的 Alpha 渲染差异

    I m rendering the same scene using the same exact C code once to native OpenGL on windows and once using Emscripten to W
  • Three.js 使用 WebRTC 并应用 Shader

    我不知道如何将着色器应用于具有视频纹理的 Three js 对象 我一直在使用 webRTC 和 Three js 并使用标准材质成功将视频纹理映射到网格上 var material new THREE MeshBasicMaterial
  • WebGL/OpenGL:根据设备方向旋转相机

    我有一个 Web 应用程序 我试图在 3D 空间中显示地图图像图块的平面 我希望无论设备如何旋转 平面始终保持水平 最终效果类似于这个航海罗盘演示 http people opera com richt release demos orie
  • 如何添加标签/标签以显示在多个对象的顶部,以便当用户单击对象时标签始终面向相机?

    本质上 我想说的是 我想创建一个出现在对象顶部 表面上的标签或标签 以便当用户单击对象时 即使对象旋转 标签也始终面向相机 我该如何去做呢 我被告知要使用正交相机 但我不确定如何 和 CSS 作为标签 请参阅上一篇文章 如何使我的文本标签始
  • 如何从 dxf 文件解析 nurbs 曲面?或者你知道用于解析它的库(对于js,如果存在或任何其他语言)?

    我正在尝试解析 autocad nurbs 曲面并使用 JavaScript 中的 webGL 进行三角测量绘制 我已经在寻找 bjnortier 的 dxf 解析器 它支持大多数实体 如直线 圆弧 3Dface 折线 lwpolyline
  • 如何在 WebGL 中创建合适的圆角矩形?

    我试图实现答案这个问题 https stackoverflow com questions 43970170 bordered rounded rectangle in glsl但似乎有点问题 如果您打开他们的 ShaderToys 并尝试
  • 在 Fabric.js 中真正旋转等边三角形的中心

    使用 Fabric js 我无法真正围绕其中心点旋转三角形 或者至少我认为应该是中心点 我创建了一个jsFiddle http jsfiddle net UW8Be 这表明 三角形很简单 我用了originX center 原点Y 也是如此
  • WebGL2 FBO 深度附件值

    我只是尝试使用 WebGL2 渲染场景的深度值 如下所示 Texture depthTexture gl createTexture gl bindTexture gl TEXTURE 2D depthTexture gl texImage
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加

随机推荐