Zend Framework 응용 프로그램이 있습니다. IE8과 jQuery에 문제가있는 것처럼 보입니다. jQuery는 여러 (많은) 게시물 이후에 절정에 이릅니다. 즉, 글의 수가 증가함에 따라 더 나 빠지게됩니다. 페이지를 다시로드하지 않고 데이터 항목을 작성한 후 잠시 후에 페이지를 다시 탐색하거나 페이지를 다시로드하려고하면 IE8이 실제로 이상하게 작동하지만 때로는 시도 할 수있는 모든 작업을 시도하고 시도 할 것이라고 말합니다. 페이지를로드하십시오. 거기에서 다시로드하면 리셋되고 모든 것이 잠시 작동하여 다시 빌드됩니다.IE8 jQuery AJAX weirdness
IE8에서 몇 가지 다른 탭이 열려 있다고 가정 해 봅시다. 응용 프로그램에서 다른 페이지로 이동하려고하면 IE8이 다시로드되기 전에 다른 탭과 깜박임을 표시합니다. 페이지를 표시하고 표시합니다. 이 시점에서 내가 다시로드하면 일반적으로 기대하는대로 작동합니다. 이 시점에서 다시로드하지 않으면 다음에 불량이 다시 생겨서 다시로드하려고 할 때 IE8에서 더 이상 시도하지 않을 것이라고 말하고 수동으로 탐색 모음에 URL을 입력해야합니다 응용 프로그램으로 돌아가십시오.
나는 그것이 내 키 누르기 바인딩과 관련이 있다는 느낌이 들지만, 나는 그 이유를 모르겠습니다. 다른 사람이 이것을 경험하고 잘못 된 것이 무엇인지 알아 냈습니까? 바인딩의 키가 발생한 경우 여기
내$(document).ready()
기능입니다 :
$(document).ready(function(){
running = false;
offset = $("#quantity").html();
$("#boxNumber").focus();
$(document).bind("keypress" , function(e){
var firstName = document.getElementById('firstName');
var middleName = document.getElementById('middleName');
if (e.which == 13 && (!$("#notes").is(":focus")) && (!$("#submit").is(":focus"))) {
if (running == false) {
running = true;
middleName.value = middleName.value.toUpperCase();
firstName.value = firstName.value.substring(0, 1).toUpperCase() +
firstName.value.substring(1, firstName.value.size);
submitForm();
return false;
} else {
return false;
}
} else if (e.which != 13 && $("#middleName").is(":focus") && $("#middleName").val() != '') {
firstName.focus();
firstName.value = firstName.value + " " + middleName.value.toUpperCase();
middleName.value = '';
}
});
bindTdClick();
bindAutoComplete('oof_name');
bindAutoComplete('pro_title');
bindAutoComplete('tags');
$("#submit").click(function(){
if (running == false) {
running = true;
submitForm();
} else {
return false;
}
});
});
문제는 또한 submitForm()
기능에있을 mght :
function submitForm() {
$.post("/ajax/files" , $("#files").serialize(), function(data){
filesReset();
if (data != "") {
$("#lastInsert table tbody:last").prepend(data);
$("#lastInsert table tbody:last tr:first").find("td").hide();
$("#lastInsert table tbody:last tr:first").find("td").fadeIn(1000, function(){ bindTdClick(); });
$("#lastInsert table tbody:last tr:first").effect("highlight" , {"color": "aqua"}, 1000);
$("#lastInsert table tbody:last tr:last").remove();
} else {
alert("Insert rejected by the server: either inadequate criteria or the server is down.");
$("#hidden").click();
}
running = false;
});
}
또는 어쩌면 filesReset()
기능 :
function filesReset(){
var lastName = $("#lastName").val();
if (lastName.indexOf(',') != -1) {
lastName = lastName.substring(0, lastName.indexOf(','));
}
$("#lastName").val(lastName).focus().select();
$("#firstName").val("");
$("#middleName").val("");
$("#fil_will_recorder_rec_id").val("");
$(".errors").remove();
$("#lastInsert table").css({"border-right":"1px solid #D9D9D9"});
$("#notes").val("");
//$("#tags").val("");
$("span").html("");
}
나는 더 나은 것을 모르기 때문에 나는 추측한다. – tjb1982
아마도 jQuery IS js 때문일 수 있습니까? 네이티브 자바 스크립트는 실제로 대부분의 경우 더 빠릅니다. 어떤 종류의 질문이 ... – SteamDev
한눈에 아무 것도 보이지 않지만 코드의 어느 시점에서 뭔가 동일한 동작 (반복적으로 keypress)에 묶여 있다고 의심됩니다. 반복적으로 호출되는 세그먼트를 확인하기 위해 몇 가지 경고 또는 방화 광구 중단 점을 추가 한 다음 테스트를 위해 IE로 돌아갈 수 있습니다. – Dave