当我使用jquery的$ .post ajax函数时,页面冻结2-3秒然后收到数据。冻结时间可以根据收到的数据而变化。
我该如何防止这种情况?
编辑:
我正在使用的COED,它实际上收到非常大的数据
$.post("../ajax_updates.php", { time: last_update }, function(data) {
if (data) {
if (data != "") {
$("#news_feed").prepend($(data).fadeIn('slow'));
}
}
});
答案 0 :(得分:10)
如果您通过JavaScript加载大量数据,这是正常的,问题是由于您的请求为synchronous
而导致浏览器在执行任何其他操作之前等待此请求结束。
您需要提出asynchronous
P.S。在某些情况下,使用$ .get而不是$ .post从服务器获取信息 - 特别是如果您在Windows IIS下编码工作,您将收到相关错误。
P.S-1。有意义的是,$ .get用于从服务器获取数据,$ .post用于发送数据。
试试这个:
$.ajaxSetup({
async: true
});
$.get("../ajax_updates.php", { time: last_update }, function(data) {
if (data && data != "") {
$("#news_feed").prepend($(data).fadeIn('slow'));
}
});
答案 1 :(得分:2)
发送ajax请求时,请确保将async设置为true。如果设置为false,浏览器将冻结,直到收到响应。