【发布时间】: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