当我使用jquery的$.post ajax函数时,页面冻结了2-3秒,然后收到数据。冻结时间可以根据接收到的数据而改变。
我如何防止这种情况发生?
编辑:
我使用的COde,它实际上接收非常大的数据
$.post("../ajax_updates.php", { time: last_update }, function(data) {
if (data) {
if (data != "") {
$("#news_feed").prepend($(data).fadeIn('slow'));
}
}
});发布于 2012-04-03 06:13:07
如果你通过JavaScript加载大量数据,这是正常的,问题是因为你的请求是synchronous,这会使你的浏览器等待这个请求结束,然后再做任何其他事情。您需要将请求设置为asynchronous
附注:使用$.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'));
}
});发布于 2012-04-03 06:12:20
发送ajax请求时,请确保将async设置为true。如果设置为false,浏览器将冻结,直到收到响应。
http://api.jquery.com/jQuery.ajax/
https://stackoverflow.com/questions/9984538
复制相似问题