我就直接进入正题吧!
当用户提交搜索时,我的 javascript 向我的 PHP 文件发送大约 20 个 AJAX 请求以进行响应(通过外部 Web API)。结果存储在会话数组中的数组中。
我读到浏览器只允许同时向服务器发出 2 个请求。
我的第一个问题是,虽然仍有多个请求仍在等待响应,但 AJAX“添加到购物篮”请求将无法工作,因为它仍在等待其他请求完成。
我的第二个(也是更烦人的)问题是,同时处理的两个请求似乎互相过度写入,因此当所有响应完成时,只有一半在会话数组中。要么全部奇数,要么全部偶数,取决于最终请求是奇数还是偶数。
我不想单独发送请求(即仅在最后一个请求完成后才发送下一个请求),因为这会稍微减慢用户的速度。
是否有解决此会话覆盖的解决方案,或者我应该使用完全不同的方法?
谢谢大家!
Edit:
It's for checking domain availability. The user searches for "mydomain" and results for com, net, org, etc are eventually presented.
发送单个请求并让脚本一次性搜索所有 tld 意味着在所有结果都输入之前不会返回响应。某些 tld 的结果似乎需要长达 30 秒以上的时间,在此期间用户没有收到任何反馈保存为漩涡状图标和“请稍候”(这是未启用 JavaScript 时发生的情况)。
单独的请求允许我在域进入时显示域的可用性。
我目前正在考虑发送单个请求,然后使用 javascript 的 setinterval 重复检查会话,直到所有结果都输入。
我认为你应该开始重构你的解决方案:
- 所有性能指南都规定您应该最大限度地减少 HTTP 请求的数量。 20 太多了
- 如果您有共享资源,则需要锁定并解锁您操作它的部分,以防止两个或多个请求同时更新它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)