【问题标题】:(PHP) MySQL creates two rows instead of one in Chrome(PHP) MySQL 在 Chrome 中创建两行而不是一行
【发布时间】:2017-07-20 23:30:04
【问题描述】:

我已经查看了其他问题,但找不到这个特定问题的答案,因为它似乎与 Chrome 浏览器有关。

我删除了我的代码来调试这个问题,我现在唯一执行的是加载我的数据库并执行INSERT

但是它总是插入两行而不是一行。

然后我用 Firefox 测试了这个,没有问题。我还禁用了我所有的 Chrome 扩展程序,它仍然没有改变。我不知道还有什么可能导致这种情况。就像我说的,它适用于其他浏览器。

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 我建议您阅读 what topics you can ask about here,然后阅读 how to ask perfect question,然后阅读 how to create Minimal, Complete and Verifable example。然后相应地编辑您的问题以吸引更多关注并获得可能的帮助。
  • 服务器端代码因浏览器而异,嗯,我什至不想看到那个代码:-D
  • 什么?不,我不想要代码。我想要解释。我只是没有发布我的代码,因为很明显我告诉你我的文件正在执行:db-connect + Insert。而已。我还向您介绍了有关 Chrome 浏览器的全部内容。那你还想要什么代码呢?
  • 喜欢phlare 指出了它的一个已知问题/错误:stackoverflow.com/questions/4460661/… 这个问题与我的非常相似,而且我不是新来的,所以我不明白你的存在- is-no-code-I-have-to-downvote-attitude。

标签: php google-chrome


【解决方案1】:

有一些关于 chrome 发出多个请求的讨论here

要点似乎是有一些事情可能会导致 chrome 发出额外的请求,包括(但不限于):

  • 链接标签的 href 属性为空 <link rel="shortcut" href="">
  • 图像、iframe 或带有空或“#”src 属性的脚本标签<img src="#">
  • chrome 获取网站图标

这些都适用吗?

无论导致双重 GET 的原因是什么,一个好的解决方案是遵循标准的 Web 开发最佳实践:不要因为 GET 调用而更改应用程序状态。需要 POST。

【讨论】:

  • 在插入本身中您是否保存日期和 user_Id ?您可以使表格在这两列的组合上独一无二,以帮助防止重复
【解决方案2】:

服务器端代码(例如 PHP 脚本)不依赖于您的浏览器。因此它在不同浏览器中的行为不会有所不同。

但是是的,在某些情况下,您的代码可能会针对单页命中执行两次。

假设您有一个代码,每次访问您的页面时都会插入新行(例如:老式访问计数器)。使用 Google Chrome 时,您可能会感到惊讶,因为每次点击单个页面都会插入两行。发生这种情况是因为谷歌浏览器第二次请求页面只是为了获取网站图标。

其他可能性是您的代码中的一个奇怪的条件。例如。 if it is chrome, do something else/more

【讨论】:

  • 不,当用户使用 Chrome 浏览网站时,没有任何代码可以做特殊的事情。
猜你喜欢
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
相关资源
最近更新 更多