首页 > 解决方案 > Firefox 有时会拆分 Express 响应 readableStream

问题描述

我正在尝试使用一系列 response.write 从我的 Express 后端流式传输 HTML 字符串,以实现实时更新,因为我在中间执行了一些 HTTP 请求,然后将它们附加到 DOM。我正在从给定的 Wiki 页面中提取伪代码片段,作为我对上下文的响应的一部分。

在 Chrome 中一切正常,但 Firefox 似乎有时会将流分成两部分,显然无法解析 HTML 字符串,因为它在标签中途被分割。

同样,有时 Firefox 将较大的响应作为一个整体并运行良好,但大多数情况下它会拆分它。

这与 Firefox 对 readableStream 与 Chrome 的阅读有关吗?或者我在我的代码中遗漏了什么?

编辑: 流如何被拆分(代表太低而无法嵌入)

正在发送的流:


res.write(`<p class="update">&#8594; 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">&#8594; 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">&#8594; (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 没有用。

标签: javascriptexpressfirefoxfetch

解决方案


推荐阅读