【问题标题】:form.submit() takes too long [closed]form.submit() 耗时太长[关闭]
【发布时间】:2016-06-23 14:54:53
【问题描述】:

我有一个提交表单的经典 ASP 应用程序。问题是当我尝试提交表单时(这是一个包含很多值的相当大的表单),大约需要 25 秒才能提交。

知道有哪些最佳做法可以缩短提交时间,或者为什么提交时间过长?

【问题讨论】:

  • 你能发一些代码吗
  • 如果我们看不到任何代码,我们无法知道为什么要花这么长时间。表单提交的总时间分为上传数据和服务器处理数据的方式。除非您要上传数兆字节的数据,否则它不是网络。处理这些数据的是您的服务器。
  • 25秒是否包括上传文件?它是否包含来自 API 的响应?它是否包含大量验证或其他内容?
  • @MikeC 抱歉,我无法发布代码。它有很多输入。
  • @Sebastian 那么没有人可以帮助你。您正在上传大量数据,这意味着您受到网络的限制,或者您的服务器处理它的时间太长。在不知道您如何处理它的情况下,我们无法给您任何建议。

标签: javascript forms asp-classic


【解决方案1】:

由于您没有提供代码示例或其他特定信息,因此您有很多选择,例如重构服务器和客户端脚本:

客户端:您可以使用 JavaScript 序列化您的表单数据并以响应式方式发送,而不是传统的提交表单,这样您的用户就会注意到传输并耐心等待它完成。这样,您可以显示活动指示器或设置超时。此外,您可以过滤不需要提交的数据(submit() 不会这样做)。您还可以将要上传的数据拆分为一些请求,以减少每个请求的时间。

服务器:这看起来不像是特定于 ASP 的问题,而您的服务器端可能是瓶颈。如果您的服务器脚本具有复杂的处理例程或必须执行耗时的操作,您可能会考虑开始优化,例如仅根据请求保存数据并安排服务器端处理。关于服务器,你的网络拓扑甚至可能存在问题,这种情况下,仅靠程序员是无能为力的。

同样,您没有提供足够具体的信息。对于表单提交,25 秒是永恒的。您传输什么样的数据(纯文本、二进制)?究竟什么是“有很多价值的大表格”?你不能分别分享你的客户端和服务器代码的一部分吗?您是否测量了时间(解决、提交、处理等)?

【讨论】:

  • 感谢您的回答。看来问题确实出在vbScript部分。我们希望对提交给服务器的所有内容进行编码,并且我们使用一个对请求进行包装的 COM 对象。这个请求是一个不可编辑的集合,为了进行一些解码,我们必须创建另一个字典,这需要大约 40 秒的 INT 时间。我们必须为此找到解决方案,但您的答案是导致此问题的答案。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
  • 2018-02-27
  • 2013-05-28
  • 2014-05-30
相关资源
最近更新 更多