我有一个由我的一个客户使用的管理界面,当通过 Web 界面启动进程时,服务器会在后端服务器上处理大量记录。然后,网页仅使用简单的 HTML(不是任何 AJAX 或其他 JS)更新来提供更新,如下所示:
Processing All Records:
000000 to 000099: ....................................................................................................
000100 to 000199: ....................................................................................................
//... More Records Processed Here ...
009700 to 009799: ....................................................................................................
009800 to 009899: ..............................
Data processing complete: 9830 total records processed
此处理可能需要一个多小时。在我使用的浏览器(IE 和 Crome)中,页面继续接收更新并在处理它们时显示它们。 问题是,对于我的客户(使用多个浏览器和计算机),他的屏幕在几分钟后停止显示更新,即使他等到处理应该完成(让他的浏览器在一夜之间打开),他永远不会收到“数据处理完成”通知。基本上,他的浏览器只是超时,即使处理在服务器上继续并且该过程确实完成。
HTML 输出(使用经典的 ASP...我知道,ugg)Response.Write(".")
在处理每条记录后通过简单的方式完成。除了标准的 HTML<head>
</head>
<body>
</body>
标记之外,没有应用其他格式并且所有 Response.Writes 都在正文中完成(因此浏览器不会等待正文标记以外的任何结束标记)。
我意识到我可以重写代码并使用一些花哨的 JS 和 AJAX 调用进行更新,或者转移到具有电子邮件更新的异步服务,但我想找到不需要我太多更改代码的最简单的解决方案。
所以,我的问题是,当我测试的所有浏览器继续接收数据时,他的浏览器/网络中的什么设置会导致他的浏览器超时?
如果有帮助,这里是输出的原始 HTML:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" type="text/css" href="\css\normal.css">
</head>
<body>
Initiating data retreival at: 8/23/2012 11:02:59 AM<br>
<hr>
Processing All Records:
<br>000000 to 000099:....................................................................................................
<br>000100 to 000199:....................................................................................................
<br>000200 to 000299:....................................................................................................
<!-- More Lines Here -->
<br>009800 to 009899:..............................<hr>
Data import complete: 9830 total records processed<br>
</body>
</html>