【发布时间】:2017-07-13 09:32:58
【问题描述】:
我有一个函数,它使用 jquery .each() 选择器通过获取具有特定类的每个跨度的 id 来填充表,然后将该 id 传递给 Ajax 函数。
function populate(){
$('#thelist span').each(function()
{
let id = this.id;
let url = `importer.php?id=${id}`;
$.ajax(
{
url: url,
success: function(result)
{
$("#"+id).html(result);
}
});
})
};
我的问题是如何提高性能。我知道 .each() 导致延迟。有没有更好的方法来写这个?
【问题讨论】:
-
使用基准测试差异解决方案:jsperf.com/foreach-vs-jquery-each/9
-
编辑您的后端以一次接受所有 ID,并返回适当的内容,然后执行 一个 ajax 请求
-
问题是太多的同时 ajax 请求(如果你的 importer.php 中有一个会话开始,那么你也有这个锁)。尝试将所有请求归为一组并执行一个批量请求(例如 importer.php?ids=1,2,3,4,5)
-
更好的方法是在 span 上放置一个类 - 目前它必须查找具有 id 的元素,然后查找所有子 span,可能会有所帮助,但作用不大跨度>
标签: javascript jquery