javascript - Firefox 有时会拆分 Express 响应 readableStream
问题描述
我正在尝试使用一系列 response.write 从我的 Express 后端流式传输 HTML 字符串,以实现实时更新,因为我在中间执行了一些 HTTP 请求,然后将它们附加到 DOM。我正在从给定的 Wiki 页面中提取伪代码片段,作为我对上下文的响应的一部分。
在 Chrome 中一切正常,但 Firefox 似乎有时会将流分成两部分,显然无法解析 HTML 字符串,因为它在标签中途被分割。
同样,有时 Firefox 将较大的响应作为一个整体并运行良好,但大多数情况下它会拆分它。
这与 Firefox 对 readableStream 与 Chrome 的阅读有关吗?或者我在我的代码中遗漏了什么?
编辑: 流如何被拆分(代表太低而无法嵌入)
正在发送的流:
res.write(`<p class="update">→ Fetching page content...</p>`);
//Querying Wiki API here (code not shown)
//returning parsed HTML
parsed_frag = parsed_frag.replace(/\\n/g, '<br />');
res.write(`<p class="program">→ Fragment ${frag_num + 1} for ${response.data.parse.displaytitle}:</p>`);
res.write(`<div id="0" class="result">${parsed_frag}</div>`);
res.write(`<p class="program">→ (C = copy to clipboard, N = next fragment, R = restart)</p>`);
res.write(`<div class="program">~/pseudo-fetcher<div id="key-input" class="input key-input" contenteditable="true"></div></div>`);
res.status(200).end();
parsed_frag 变量将提取的 HTML 保存在字符串中。我希望将整个内容作为一个单独的部分来阅读,而不是在阅读时随机拆分。由于我事先使用 res.write,因此 res.send 没有用。
解决方案
推荐阅读
- java - 从 sqlite 中的另一个表复制时,表记录被替换
- image - 2sxc 自定义模板显示预览图标或图像
- laravel - 运行 laravel 队列时,SupervisorD 生成过程不断
- c++ - CMake + GoogleTest 在小型库的集合中给出了重新定义错误
- jquery - jQuery add :checked 到一个类
- c++ - 如何在 QTextEdit 中禁用光标?
- typescript - 为什么 audio.pause() 不能使用 TypeScript,但是 audio.play(); 效果很好?
- reactjs - 从生成器函数内部调用函数
- sql-server - 如何在 centos7 主机上使用 docker-compose .yml 将 JBoss 服务器容器与 SQL 服务器一链接?
- java - Set 引用变量中的 TreeSet 实例