php - 节流/延迟或其他优化以避免 jQuery 请求出现停顿/错误 500 秒

标签 php jquery mysql

我有一个页面,它根据用户可以执行的一些操作使用 jQuery 进行更新。

我注意到请求可能会停止或者服务器只是给出 500 错误。这可能表明同时发生的请求过多。

可以执行以下操作:

  • 用户点击图像的评级按钮,jQuery 更新新的评级。
  • 用户点击“下一步”按钮,jQuery 获取新随机图像的 JSON 描述,jQuery 更新一些 html 属性以显示新图像。
  • 用户激活无限滚动图库的滚动条,jQuery 监视最后一个图像的位置,并在每次达到限制时获取新随机图像的描述。
  • 用户单击缩略图,jQuery 更新属性以显示完整尺寸的图像。
  • 用户在字段中输入文本以发表评论,点击按钮,jQuery 更新数据库。
  • 用户点击收藏夹按钮,jQuery 使用用户的收藏夹更新数据库。
  • 除此之外,URL 重写可将图像请求重定向到图像大小调整脚本,该脚本获取原始图像并根据最大高度/宽度调整其大小,然后将其缓存在目录中。

可能发生的事情之一是用户可以重复按下一个按钮或连续操作滚动条。这反过来又会导致大量请求“堆积”。

我可以做些什么来延迟操作(禁用按钮?在请求之间添加最小间隔?...)以及可以使用哪些其他形式的优化?

最佳答案

首先,您不仅可以获取下一张图像,还可以在一次请求中获取 10 张图像。 当用户重复单击“下一步”时,不要对每个“下一步”触发请求。使用 0.5 秒的 setTimeout() 发出请求,清除之前的超时。您可以记录单击“下一个”的次数,以便检索正确数量的图像。对于评分、收藏和评论来说,逻辑是完全有效的,所以你应该只确保服务器端的这些操作尽可能快。

User activates the scrollbar of an infinite scrolling gallery, jQuery monitors the position of the last image and fetches the description of a new random image each time a limit is reached.

再次强调,不要一一获取它们,而是分组获取它们

关于php - 节流/延迟或其他优化以避免 jQuery 请求出现停顿/错误 500 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827021/

相关文章:

php - shell_exec 在 namecheap 上托管时不提供任何输出

php - 在收到请求时在 Yii2 中的 $_POST 中设置值?

javascript - 从 HTML 元素中删除值后保留变量值

jquery - 在事件背景上添加淡入淡出效果

jquery - 如何使所有 AJAX 调用顺序进行?

mySQL MATCH AGAINST 包含的字符串

php - 登录后其他页面中的 Codeigniter session 数据不可用

php - get the key parameter is not a valid public key 错误在 openssl_public_encrypt()

mysql - SQL使COUNT()返回查询中的总行数

mysql - 查询在mysql中花费了很多时间,但在oracle中却没有