我有一个网站,可以在登录时获取用户数据。
mysql将这些数据保存为字符串,并用ajax调用此字符串后,我通过js函数str.split()拆分了数据。
这将返回一个包含我要检查的所有btns ID的数组,并使用“ .each”调用检查所有匹配的btns。
最大的问题是此过程在本地服务器上大约需要10秒钟。
有没有更好,更快的方法来获取用户数据?
附:我们讨论了用户登录时的数百个btn。
这是代码:
function get_saved_list(){
$.ajax({
type: "post",
url: "ajax/get_saved_list.php",
success: function(data){
list=data.split(";");
for(j=0; j<list.length-1; j++){
$(".content #"+list[j]).siblings('a').trigger('click');
}
setTimeout("$('#save').hide()", 1);
}
});
}
一些html包含触发的“ a”:
<ul class="content"><li>
<a class="third_cat_chb cat_chb_off"></a><span>page</span>
<button id="page_<?php echo $row['page']."Z"; ?>chapter_<?php echo $row['s_id'];?>" style="width: 20px; margin-right: 5px;" class="page_chooser"></button></li></ul>
对格式错误感到抱歉:)
最佳答案
不要在您的ID选择器前面加上类。这禁止jQuery使用本机的getElementById(),而是使用较慢的getElementsByClassName()。
尝试使用以下选择器:$("#"+list[j])
我能够遍历1000个项目并在大约1秒钟内触发一次点击,而不是先上课需要4-5秒。
如果您可以将ID放在要单击的实际<a>
上,这样也将有所帮助,这样可以避免调用siblings(),这会增加额外的开销。
关于javascript - 管理JavaScript数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10078324/