【问题标题】:ASP - Page Not Loading until SendEmail function has ranASP - 页面在 SendEmail 函数运行之前不加载
【发布时间】:2014-09-24 08:33:23
【问题描述】:

我有一个 ASP 页面,它通过表单从前一页面接收数据。

ASP 页面:

  1. 连接到数据库
  2. 更新数据库
  3. 加载 HTML 以表明您的表单已提交
  4. 发送确认的电子邮件例程。

但是,在电子邮件例程运行之前,页面不会加载,即使它是最后一个被调用的例程。

在加载 HTML 后立即调用位于页面底部的 Sub 中的调用“SendEmail”例程

</html>

<%

Call SendEmail

Sub SendEmail

End Sub
%>

任何帮助将不胜感激。

干杯

约翰

【问题讨论】:

  • 当然不是 - ASP 是服务器端的,因此您的所有代码都将在服务器上运行,然后再将响应发送给客户端。

标签: html asp-classic subroutine


【解决方案1】:

经典的 ASP,如 ASP.NET、PHP 等,都是服务器端语言。这意味着填充页面的脚本在响应发送到客户端之前执行。举个例子:

<html>
    <head></head>
    <body>
        <div><h1>This is a test</h1><p>Some random Lorem Ipsum in a box.</p></div>
        <%Response.Write("This is also a test<br/>")%>
        <p>Some other gobbledegook.</p>
        <%Response.Write("37 + 59 = " & (37+59))%>
        <%SendMail("Whatever message.")%>
    </body>
</html>
<%Response.Write("Something else here.")%>

所有这些代码将在服务器端执行,然后返回如下内容:

这是一个测试

盒子里有一些随机的 Lorem Ipsum。

这也是一个测试

其他一些 gobbledegook。

37 + 59 = 96 ...(SendMail 将在此处执行)... 这里有别的东西。

如果您希望部分同步运行,则必须考虑使用 JavaScript、jQuery 或其他类似的基于 JavaScript 的插件调用它们,或者使用 (cough) 选择的 @987654322 @s(哎呀!讨厌!)。

【讨论】:

    【解决方案2】:
    </html>
    
    <%
    Response.Flush 'sends buffered HTML output immediately.
    Call SendEmail
    
    Sub SendEmail
    
    End Sub
    %>
    

    【讨论】:

    • 我现在认为这可能更多地与服务器有关而不是代码,因为简单的缓冲区/刷新例程也不起作用
    • 刷新缓冲区根本无法解决这个问题——这完全取决于对页面执行方式的期望。
    • 我推测体内会有 ASP
    猜你喜欢
    • 2017-01-13
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2021-05-26
    • 2021-04-08
    • 2011-08-05
    相关资源
    最近更新 更多