Asp classic 类ASP-Response.ContentType与进度条冲突

Asp classic 类ASP-Response.ContentType与进度条冲突,asp-classic,Asp Classic,我的响应有问题。ContentType与进度条冲突。基本上,我试图在将记录集保存到CSV文件时显示一个弹出式进度条 我在下面的任意位置使用这两行调用进度条,并在页面底部将其关闭,因此它可以在没有响应的情况下使用常规页面(Response.AddHeader“Content Disposition”,“attachment;filename=export.csv”) 有没有办法绕过或欺骗它,这样我就不会与“Response.ContentType=“text/csv”冲突 提前感谢, 此代码是所有

我的响应有问题。ContentType与进度条冲突。基本上,我试图在将记录集保存到CSV文件时显示一个弹出式进度条

我在下面的任意位置使用这两行调用进度条,并在页面底部将其关闭,因此它可以在没有响应的情况下使用常规页面(Response.AddHeader“Content Disposition”,“attachment;filename=export.csv”)

有没有办法绕过或欺骗它,这样我就不会与“Response.ContentType=“text/csv”冲突

提前感谢,

此代码是所有过程发生的地方:

If SOViewSQL <> "" Then
    set rs1 = conn.execute(SOViewSQL)

    response.write("<script language=""javascript"">ProgressStart();</script>")
    response.flush()    

    Write_CSV_From_Recordset RS1
    Response.ContentType = "text/csv"
    Response.AddHeader "Content-Disposition", "attachment;filename=export.csv"

    Response.Write("<script>ProgressDestroy()</script>")
    'response.flush()


    set rs1 = nothing
    conn.close
    set conn = nothing

End If
如果SOViewSQL为“”,则
设置rs1=conn.execute(SOViewSQL)
response.write(“ProgressStart();”)
response.flush()
从\u记录集RS1写入\u CSV\u
Response.ContentType=“text/csv”
Response.AddHeader“内容处置”、“附件;文件名=export.csv”
Response.Write(“ProgressDestroy()”)
'response.flush()
设置rs1=无
康涅狄格州
设置连接=无
如果结束

您必须重写页面脚本,以便在将任何内容(标题或页面内容)发送到客户端之前完成所有处理,然后确保在调用
响应之前发送所有标题。编写
或使用
%>

像这样:

Dim showProgressScripts
showProgressScripts = False

If SOViewSQL <> "" Then

    Set rs1 = conn.Execute(SOViewSQL)

    Write_CSV_From_Recordset RS1
    Response.ContentType = "text/csv"
    Response.AddHeader "Content-Disposition", "attachment;filename=export.csv"


    Set rs1 = Nothing
    conn.close
    Set conn = Nothing

    showProgressScripts = True

End If %>

<p>my page content here</p>

<% If showProgressScripts %>
<script>ProgressStart();</script>
<script>ProgressDestroy();</script>
<% End If %>
Dim showProgressScript
showProgressScripts=False
如果是SOViewSQL“”,则
设置rs1=conn.Execute(SOViewSQL)
从\u记录集RS1写入\u CSV\u
Response.ContentType=“text/csv”
Response.AddHeader“内容处置”、“附件;文件名=export.csv”
设置rs1=无
康涅狄格州
设置连接=无
showProgressScripts=True
如果%>
我的网页内容在这里

ProgressStart(); 进行销毁();

当然,您的脚本看起来像是将HTML作为CSV文件提供—我认为您需要重新考虑您正在做的事情。

谢谢您的建议。我按照上面的代码建议进行了尝试,它会提示CSV下载,但进度条永远不会显示。在(Response.ContentType=“text/CSV”)之前执行(ProgressStart();)还有其他建议吗?您的响应可以是CSV文件,也可以是HTML,但不能同时是两者。
If SOViewSQL <> "" Then
    set rs1 = conn.execute(SOViewSQL)

    response.write("<script language=""javascript"">ProgressStart();</script>")
    response.flush()    

    Write_CSV_From_Recordset RS1
    Response.ContentType = "text/csv"
    Response.AddHeader "Content-Disposition", "attachment;filename=export.csv"

    Response.Write("<script>ProgressDestroy()</script>")
    'response.flush()


    set rs1 = nothing
    conn.close
    set conn = nothing

End If
Dim showProgressScripts
showProgressScripts = False

If SOViewSQL <> "" Then

    Set rs1 = conn.Execute(SOViewSQL)

    Write_CSV_From_Recordset RS1
    Response.ContentType = "text/csv"
    Response.AddHeader "Content-Disposition", "attachment;filename=export.csv"


    Set rs1 = Nothing
    conn.close
    Set conn = Nothing

    showProgressScripts = True

End If %>

<p>my page content here</p>

<% If showProgressScripts %>
<script>ProgressStart();</script>
<script>ProgressDestroy();</script>
<% End If %>