当前位置: 代码迷 >> 综合 >> flush=true 的含义
  详细解决方案

flush=true 的含义

热度:29   发布时间:2023-12-14 03:14:04.0
设置flush为true,就是说,如果你的缓冲区的内容很多了,就将数据读出,以免数据泄漏,造成错误。 服务器端页面缓冲,大致的意思是,在将生成的HTML代码送到客户端前,先在服务器端内存中保留,
因为解释JSP或Servlet变成HTML是一步步进行的,可以在服务器端生成完HTML或生成一部分HTML(所占用字节数已达到指定的缓冲字节数)后再送到客户。   
如果不缓冲,就会在后台解释好一次性输出到前台
  
在同一个 JSP 中,如果不断 include 自己(源文件),在逻辑上会形成死循环。若默认情况下,服务器会等待该文件被读到底端,然后才输出到客户端,并且销毁该次访问的 request 和 response。而当把 flush 属性赋为真值时,在缓存累积了一定数据时,服务器会先提供一部分数据给浏览器,并等待后续内容。
由此可以得出结论,在简单页面中,该属性不纳入考虑,而在页面包含大量数据时,为缩短客户端延迟,可将一部分内容先行输出。该属性在 Servlet 中也有对应的应用。
在以上提及的实验中,默认 flush=false 的情况下用户将看到白屏,直到服务器崩溃;而 flush=true 的情况下用户能看到源源不断输出的内容。 个人小结:flush为true在页面内容较大时,后台可以缓冲式的输出,如果为false,就不能缓冲式的输出,而是一下子输出
  相关解决方案