管理javascript数据

管理javascript数据,javascript,jquery,ajax,performance,Javascript,Jquery,Ajax,Performance,我有一个网站,可以获取登录时的用户数据。 mysql将此数据保存为字符串,在使用ajax调用此字符串后,我使用js函数:str.split()拆分数据。 这将返回一个数组,其中包含我要检查的BTN的所有id,以及“.each”调用,我将检查所有匹配的BTN。 最大的问题是这个过程在本地服务器上大约需要10秒钟。 是否有更好更快的方法获取用户数据? p、 s:我们讨论了数百个用户登录的BTN 代码如下: function get_saved_list(){ $.ajax({

我有一个网站,可以获取登录时的用户数据。 mysql将此数据保存为字符串,在使用ajax调用此字符串后,我使用js函数:str.split()拆分数据。 这将返回一个数组,其中包含我要检查的BTN的所有id,以及“.each”调用,我将检查所有匹配的BTN。 最大的问题是这个过程在本地服务器上大约需要10秒钟。 是否有更好更快的方法获取用户数据? p、 s:我们讨论了数百个用户登录的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);
        }
    });     
}
函数获取保存的列表(){
$.ajax({
类型:“post”,
url:“ajax/get_saved_list.php”,
成功:功能(数据){
list=data.split(“;”);

对于(j=0;j不要在ID选择器前面加上类。这会禁止jQuery使用本机getElementById(),而是使用getElementsByCassName(),这会更慢

请尝试此选择器:
$(“#”+list[j])

我能够循环浏览1000个项目,并在大约1秒的时间内触发一次点击,而不是通过先上一堂课来触发4-5秒的点击


如果您可以在实际要单击的
上放置一个ID,这样您就可以避免调用兄弟(),这会增加额外的开销。如果您可以控制服务器,那么使用
checked=“true”将节省大量时间
html属性,在php中有条件地设置它,而不是触发单击事件

$("#"+list[j]).siblings('a').attr('checked');
如果您一直使用Javascript:我不确定,但是设置
checked
属性可能比单击它更快,因为这样您就不会触发“click”事件

虽然我还没有测试过,但应该可以用


真的,如果可以的话,在服务器上设置它是一个好办法。

用户登录时有数百个BTN…你是认真的吗?你有多个相同id的按钮吗?这10秒钟花在哪里?是等待ajax?还是检查按钮?你能提供一个html示例吗?你还可以提供这些按钮的jquery吗你触发点击的原因是什么?与问题无关,但你真的应该用
setTimeout($('#save').hide(),1);
替换为
setTimeout(function(){$('#save').hide(),1);
()。当你点击锚时会发生什么?点击锚时,
$(“.content#”+列表[j])。兄弟('a')。触发('click'))
do?这是一个链接。为什么它会有一个checked属性?哇,在读了“check”这个词之后,我完全误读了代码在这个问题上,我想他是想勾选一些复选框。因为为什么会有人以编程方式点击数百个链接?我可能会删除这个答案。我点击数百个btn,因为每次点击都会对页面上的大量数据进行更改。必须点击每个btn,并且每个选中的btn都会被删除ld会影响其他BTN,所以,是的,这些点击是有原因的!但是,为什么:它会做什么样的数据修改?你是在用点击链接的次数来影响页面颜色吗?你是在每次点击事件上修改一些数据结构吗?我想不出直接做事情会有什么效果dn不会比点击数百个链接更快。你的情况是什么?“数百”在计算方面几乎为零。你应该能够在不到50毫秒的时间内完成所有这一切。4-5秒很可能是荒谬的,这表明你对数据或算法的思考不正确。好的。给我输入id的想法节省了3秒:)但我一直在寻找一个更强大的解决方案。谢谢jordanok。将id放入的想法为我节省了很多时间。我为此添加了一个id,并决定删除许多“函数”当点击这个btn时,我将最后一个结果添加到数据库中,并在最后一次点击事件中将其恢复。现在我有大约3秒钟的时间加载页面,多亏了大家
$("#"+list[j]).siblings('a').attr('checked');