为什么每次调用执行多个 ajax 调用的时间都会增加


Why time to execute multiple ajax calls increases for each call?

我有一个带有谷歌地图的页面。在页面加载时,只有一个标记,用户可以使用表单动态添加标记。

我使用 AJAX 调用检索数据库中的坐标。每次调用返回 150 个标记。因此,如果我必须检索更多标记,我会执行其他调用,直到所有标记都显示在地图上。

我注意到(加载 2500 个标记和 firebug)每次调用执行服务器端操作的时间都会增加。

任何人都可以解释我为什么以及是否有办法修复它(因为最后,电话大约需要 30 秒)?

编辑:

每次调用的执行时间(尝试检索大约 2500 个标记):

request 1  : 2.54s
request 2  : 1.83s
request 3  : 1.25s
request 4  : 1.31s
request 5  : 1.4s
request 6  : 1.81s
request 7  : 2.86s
request 8  : 8.25s
request 9  : 20.06s
request 10 : 19.25s
request 11 : 23.33s
request 12 : 25.86s
request 13 : 26.62s
request 14 : 27.85s
request 15 : 32.37s
request 16 : 34.91s
request 17 : 35.82s
request 18 : 36.7s

对于每个调用和返回值具有相同类型和相同长度的函数完全相同。

我做了很多调用,以便用户可以在加载标记时继续在地图上工作。

如果在被调用脚本中使用session_start,则只能同时执行单个调用,因为会话文件被锁定,直到第一个调用脚本终止并释放该锁定,或者通过调用 session_write_close() 手动释放,下一个排队的调用可以依次运行并锁定文件。

使用单个调用

一次性检索所有标记数据可能更容易,而不是对每组 150 个标记条目进行大量单个调用......这将绕过任何会话锁定问题,因为只执行一个脚本;并且对网络开销也更有效