我有一个页面循环了多个唯一的id,并使用ajax将信息加载到与数据库表中的行相对应的div中。因为有相当多的div需要创建,每个div都包含大量的信息,这需要相当长的一段时间。我想要做的是在每个div附加到dom后动画/显示每个div,允许循环在创建时继续附加/显示更多div。使用jquery动画/显示div而ajax加载更多结果
我的代码看起来是这样的:
// loop section unique IDs
$.each(uniqueIDs, function(key, uniqueID)
{
// call AJAX synchronously
// append resulting information to page
// show newly appended div
$("#" + uniqueID).slideDown();
});
我遇到的问题是,动画是很不一致。有时第一个div是动画的,而所有后续的div只是没有动画就显示出来。有时候所有的div都只显示没有动画。我敢肯定,必须有这样做更严格的方式...
编辑我一直在呼吁AJAX同步保持的div按照正确的顺序(否则的div追加到DOM顺序他们完成)。我很乐意找到一个解决方案,它使用异步的ajax调用来保存原始顺序。
Ajax是异步的,所以你需要在ajax函数的回调中做滑动的东西,而且你可能不应该同步地使用ajax。 – adeneo
为用户做很多同步ajax调用的速度比用户异步执行要慢得多。你应该做异步并将slideDown代码放入ajax调用的成功部分。 – Timm
如果我异步运行ajax,div是不按顺序创建的(即按照异步ajax调用的完成顺序)。有没有办法避免这种情况,然后使用回调? – adekom