html - 防止接收大量数据时浏览器超时

标签 html browser timeout

我有一个供我的一个客户使用的管理界面,当通过 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>

最佳答案

没有可靠的、定义明确的方法来做到这一点,因为它完全取决于浏览器、网络连接、路由器、操作系统……而不是希望你碰上运气,而是控制环境。

最简单的方法是重构一个脚本来处理一小批项目,然后继续使用 AJAX 获取该脚本(保持偏移量),直到它报告它已完成。这比希望找到某种神奇的技术更稳健、定义更明确,据您所知,这种技术可能会在未来发生变化。

关于html - 防止接收大量数据时浏览器超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097047/

相关文章:

html - 垂直居中标题中的各种文本?

javascript - <br/> 不处理来自 mysql 查询的文本

javascript - 浏览器是立即启动 AJAX 调用,还是等待当前操作完成?

ios - 有没有办法在原生 iOS 应用程序中完全控制浏览器?

mysql - 如何防止大型 MySQL 导入的连接超时

html - 网站在手机屏幕底部的黑色空间

html - Chrome 18 无法在禁用的多选框中查看所选文本

php - 使用 PHP 模仿网络浏览器提交表单?不 curl

delphi - 取消 ADO 连接的连接尝试吗?

sql - 为 SQLITE 指定 SELECT 超时