代码之家  ›  专栏  ›  技术社区  ›  Shyju

大量记录的ASP不输出

  •  -1
  • Shyju  · 技术社区  · 17 年前

    我有一个ASP页,它将查询数据库表中的记录并进行一些处理,然后在浏览器中呈现一个HTML表。我的表中有16000多行。当我使用studentstbl中的studid,studname来运行prigram时,它运行得很好,但是当我使用studid,studname from studentstbl时,它没有显示任何输出。我在while循环中每50条记录后都使用response.flush()。有人能告诉我如何解决这个问题吗?提前谢谢


    实际上,我将通过添加响应来从此ASP页创建一个Excel文件。contenttype=“application/vnd.ms excel”这是我需要一次生成所有数据的原因。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Juliet    17 年前

    根据您对问题的描述,我敢打赌您正在使用IE作为测试浏览器。响应.flush()) 输出HTML,但它不会立即显示,因为IE不知道如何递增地呈现表。相反,IE在将整个表绘制到浏览器窗口之前等待其输出。你的剧本不是问题.

    这么说的话,我想指出你的设计从根本上是有缺陷的。从可用性的角度来考虑您的脚本:您没有理智的理由需要同时输出16000行数据。 Page your recordset in SQL 或者使用top子句将记录集限制为前1000行。

        2
  •  0
  •   AnonJr    17 年前

    尝试将其作为一个表输出到浏览器-我打赌您会收到一个“脚本超时”错误。

    最好的办法是增加超时时间间隔。您可以在脚本开始时使用一些代码来完成这项工作,也可以作为全局服务器设置来完成这项工作。我推荐前者。

        3
  •  0
  •   Espen    17 年前

    server.scriptTimeout=3939393

    把它放在你页面的顶部(我只是选择一个随机的高数字)。我想你从IIS那里得到了一个超时。默认值为90秒。

    去掉response.flush,它只会使速度变慢,因为服务器必须每x ms向客户机输出一次。缓冲整个页面(应在IIS中设置为默认值以获得更好的性能)。

    如果仍然失败,错误是什么?也许你的数据库很慢。

    推荐文章