问题描述
我使用 express 和 node.js
我一直在努力让加载条正常工作,我终于想出了使用 res.flush() 因为 res.write() 由于压缩中间件而不起作用(据我所知) .
现在当我将它上传到服务器时,我遇到了同样的问题。流不会刷新,加载栏只会在 res.end() 上更新。应该连续发送的所有其他进度也在 res.end() 上发送(一次性发送)。 由于 res.flush() 不像在我的电脑上那样工作,我不知道该怎么做,因为我无法在服务器上调试。
我在客户端有一个 EventSource 监听加载条的更新,但在实时服务器上唯一的更新是在调用 res.end() 时。
<div class="block">
<div class="level-1">
<div class="super-wrapper">
<div class="wrapper">
<div class="wrapper-initial">
<div class="initial">X</div>
</div>
</div>
</div>
</div>
</div>
最重要的是让它在服务器上工作,但我也很想知道将加载进度发送到路由器的好方法是什么。
解决方法
在斯蒂尔帕克的帮助下,我设法找出了问题所在。
生产服务器在 iis 上运行,我所要做的就是将 reponseBufferLimit=0 设置为默认值 4194304。
可以通过添加来完成
<handlers>
<add name="iisnode" path="app.js" verb="*" modules="iisnode" responseBufferLimit="0" />
</handlers>
到 web.config 文件。