当ajax发布工作时,页面冻结了几秒钟

时间:2012-04-02 22:09:53

标签: ajax jquery

当我使用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'));
    }
    }
    });

2 个答案:

答案 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,浏览器将冻结,直到收到响应。

http://api.jquery.com/jQuery.ajax/