我正在使用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的专家,从我读到的这个,在过去的三天里,寻找解决方案 - 一切都准备好了。它应该完美,不应该吗?