【问题标题】:Page reload after form submit is taking a long time表单提交后页面重新加载需要很长时间
【发布时间】:2021-12-06 10:35:09
【问题描述】:

我的网站上有一个用户输入页面,他们在同一页面上通过各种表单登录。每次提交表单时,页面都会重新加载。这是迄今为止的所有形式。但是,添加的最后一个有一个错误。单击“提交”时,页面加载 45 - 75 秒,最后仅重定向。

我调查了错误日志和访问日志,我可以看到表单数据是立即发布的,但需要一些时间才能收到响应。我不知道是什么让它变慢了,因为页面不会立即运行(我在页面上添加了错误消息)。

那段时间没有数据被处理,即页面没有尝试处理表单数据,它还没有表单数据。

如果我返回并重试相同的表单提交(或尝试将帖子重新发送到页面),它会非常快,因此它可能是一个缓存库,或者 302 重定向第二次找到了正确的页面。

代码中有一些地方我更改了 Location 标头以移动到不同的页面(这发生在处理最终表单之后),因此这可能是 302 的来源,但我也与其他页面一起执行此操作表单的版本,没有很长的等待时间。

我的 .htaccess 也确实将 http 切换到 https,这可能会导致 302,但我没有明确调用 http 并且标题显示 scheme:https

这些是我发出的错误消息。第一个是表单提交前的最后一行,第二个是页面重新加载时的第一行。

我认为在帖子等待期间我编写的任何代码都没有运行,如果您认为有,我很乐意添加更多错误日志。

【问题讨论】:

  • 可以是任何东西,从未优化的数据库查询到等待第三方工具的一些响应。
  • I added error messages on the page...你有没有想过在输出这些消息的时候加上时间戳,这样你就可以看到代码的每个部分需要多长时间。这可能是缩小范围的第一步。
  • 表单不应该只是导致页面重新加载吗?我的意思是帖子被发送到它所在的页面。表单数据在加载后会很快得到处理,但只会在最后加载。没有数据库查询,第三方工具应该在第一次时就被缓存了,不是吗?
  • @ADyson 是的,我做到了,它们很快就发生了,即在表单数据加载的那一刻,它得到了非常快速的处理,同时页面只是没有加载。我可以将这些日志添加到问题中
  • 您尝试过什么解决问题的方法?你被困在哪里了?像 Blackfire 这样的东西可以帮助检查问题

标签: php post http-status-code-302


【解决方案1】:

@Justinas 是对的,这是一个未优化的数据库查询。在我的数据库查询返回之前,错误日志由于某种原因没有输出。这使得所有错误日志看起来像是根据时间戳在毫秒内相互输出的。我修复了查询,现在页面加载速度很快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2011-05-21
    相关资源
    最近更新 更多