现在是使用一个 form 的 target 指向一个 iframe,当表单提交的时候 iframe 会请求 controller 并拿到生成的 js
for (String host :remoteHost){
writer.print("<script>");
writer.print("parent.add("+object+");
writer.print("</script>\r\n");
writer.flush();
}
这是目前自己写的东西在用的代码,在本地测试的时候是能实现 print 一条 js 就能马上执行
然而放到服务器上之后却还是需要所有的 js 代码 print 完才能一次性全部执行。
有木有更好的解决办法
1
xiangyuecn 2018-12-02 22:20:19 +08:00 1
也许哪里把数据给拦截了,导致 flush 并没有实际发送给客户端,比如 ngnix 层的 gzip 就会等我们的程序所有数据发送完成后才会发送给客户端
|
2
tusik OP @xiangyuecn 非常感谢,找到问题就在 nginx,直接用端口访问的话就不会出现这个问题,但是就算 gzip 是 off 也还是不能成功 flush
|
3
zjp 2018-12-02 23:40:18 +08:00 via Android 1
应该是反向代理的 cache 或者 buffer 的原因,nginx 有个 proxy_buffers 参数
|