зацикливание функции, которая использует Ajax.Сбой только в IE.Любой другой браузер работает - PullRequest
0 голосов
/ 02 марта 2012

Этот javascript, который у меня есть, должен быть очень простым.Это так, но IE не делает это вообще.Я сделал 2 сообщения здесь, пытаясь исправить это и НИЧЕГО.Я работаю над этим в течение 2 недель.Я все погуглил, миллион раз использовал отладчик и НИЧЕГО.То, что я пытаюсь сделать, это иметь функцию, которая вызывает php-файл на моем сайте, который получает процент загружаемого файла.Поэтому он использует ajax для вызова страницы и получения пользовательского заголовка, который дает процент, а затем изменяет ширину элемента div.Просто верно?Ну, IE застрял на 0% во всех версиях IE (включая 9).

Вот сценарий: http://pastebin.com/RBLygM9H

Я читал, что это может быть из-заспособ, которым я вызываю функцию изначально.Это называется так:

onchange="checkForm(this.form, 'This is a just a random ID');"

Я использовал функцию наблюдения с отладчиком IE, приостановил ее и проверил, получает ли функция даже правильные переменные, и это так.Я также проверил заголовки, и он отправляет только один заголовок в начале и никогда не делает это снова.Всякий раз, когда я делаю паузу, отладчик всегда останавливается на этом:

setTimeout(function(){ prog_bar(upload_id); }, 1000);

, но он никогда не заявляет об этом как об ошибке, это только когда я его приостанавливаю.Я проверил вкладку «Консоль», «Точки останова», «Местные жители», «Наблюдение» и «Стек вызовов». В них нет ничего, кроме стека вызовов.Все, что он говорит, является анонимной функцией и не дает мне больше информации.Кроме того, у меня есть, чтобы изменить процент раньше, но я понятия не имею, что вызвало это, и это происходит случайно.Также я получаю эту ошибку раньше:

Точка останова недопустима.с этой строкой не связано ни одного исполняемого кода.

Я не совсем уверен, что это значит, но я так и не смог его воспроизвести.

1 Ответ

3 голосов
/ 02 марта 2012
  1. Перекодируйте это, используя JQuery или какой-либо другой фреймворк, это действительно так помощь.
  2. Попробуйте вставить несколько предупреждений, посмотрите, где на самом деле случается.
  3. Это IE, добавьте некоторую форму взлома кеша, используя datetime http://blog.4webby.com/posts/view/10/ajax_how_to_prevent_ie_from_caching_ajax_get_requests
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...