加载数据后,Ajax会冻结页面

时间:2014-11-09 10:20:21

标签: jquery ajax django freeze

我正在使用django服务器在django项目上使用C9 IDE。我需要使用Ajax请求更新三个部分。大多数情况下,这可以正常工作,但有时(十分之一)新数据可见(因此,请求成功)网站完全冻结(甚至不是F5工作)。 Freez影响所有部分,而不仅仅是请求更新的部分。浏览器不会抛出任何错误,我看到数据,所以没有出错。但除了滚动之外没有任何反应。刷新仅在重新输入网址时有效。

不知道该向您展示什么,因为没有错误,所以我在home.html上加载了这样的jquery:

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<html>

Ajax请求如下所示:

function get_sid(go2url) {
var wait_sid = document.getElementById('wait_sid');
wait_sid.style.display = "initial";

//$('#sidebar').fadeTo(250,0.25);
$.ajaxSetup({ 
 beforeSend: function(xhr, settings) {
     function getCookie(name) {
         var cookieValue = null;
         if (document.cookie && document.cookie != '') {
             var cookies = document.cookie.split(';');
             for (var i = 0; i < cookies.length; i++) {
                 var cookie = jQuery.trim(cookies[i]);
                 // Does this cookie string begin with the name we want?
             if (cookie.substring(0, name.length + 1) == (name + '=')) {
                 cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                 break;
             }
         }
     }
     return cookieValue;
     }
     if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
         // Only send the token to relative URLs i.e. locally.
         xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
     }
 } 
});
var currentRequest = null;
currentRequest = $.ajax({
    type: "GET",
    url: go2url,
    data: {},
    async:  true,
    timeout: 15000,
    beforeSend : function()    {
        if(currentRequest != null) {
            currentRequest.abort();
        }
    },
    success: function(data){
        $('#sidebar').load(go2url);
        //$('#sidebar').fadeTo(350,1);
        wait_sid.style.display = "none";     
    }, 

    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert('Loading seems to have encoutered an error. Please try 

again.'+textStatus);wait_sid.style.display = "none";//$('#sidebar').fadeTo(350,1);

    }
});
}

起初我一直认为淡入淡出功能已被破坏,但删除后问题仍然存在。如果请求是同步或异步不会改变freez出现。超时也没有帮助(我希望它会破坏任何冻结浏览器的东西,但它没有)。我不是ajax或jquery的专家,从我读到的这个,在过去的三天里,寻找解决方案 - 一切都准备好了。它应该完美,不应该吗?

0 个答案:

没有答案