Как заставить IE9 «видеть» самый последний JavaScript при использовании отладчика? - PullRequest
3 голосов
/ 28 апреля 2011

Я использую IE9 для отладки веб-приложения. Я сделал некоторые изменения в JavaScript после загрузки страницы. Я не могу заставить IE9 остановиться на новом коде. Сообщение « Код в документе не загружен ». Я могу установить точки останова, когда я не отлаживаю, но они не будут действительными, когда я начну отладку. Я использую режим браузера IE7, режим документа IE7.

Вещи, которые я пробовал:

  • закрыть окно инструментов разработчика, открыть заново
  • прекратить отладку, начать отладку
  • Ctrl R в окне инструментов разработчика (аналогично кнопке Clear Browser Cache)
  • Ctrl R на веб-странице IE9
  • Ctrl F5 на веб-странице Ie9
  • Очистить кеш браузера для этого домена
  • Проверить (установить) Всегда обновлять кэш с сервера

Следующей попыткой (я полагаю) будет полное закрытие IE. Это исправление для этого? Если так, черт. У меня уходит пара минут, чтобы настроить страницу, поэтому после каждого изменения JS все воняет. Я могу использовать FF4 для разработки JS, но проблема JS, которую я вижу, специфична для IE7, поэтому я должен сделать это таким образом.

>> Как заставить IE9 (работающий в режиме IE7) надежно отлаживать самый последний JS с сервера?

Ответы [ 4 ]

3 голосов
/ 28 апреля 2011

Эта проблема не была связана с кэшированием и т. Д. В IE9 произошла ошибка скрипта (отсутствует закрывающая область) в новом коде и не было разрешено устанавливать точки останова в любом месте скрипта.IE, казалось, очень тихо об ошибке скрипта, хотя.В любом случае, исправление ошибки скрипта устранило проблемы с точками останова / кэширования.

2 голосов
/ 28 апреля 2011

Если у вас есть доступ к коду:
В ссылку на файл javascript добавьте строку запроса, примерно такую:

<script src="Scripts/main.js?v=1" type="text/javascript"></script>

И каждый раз, когда вы изменяете файл js, меняйте v значение для чего-то другого, например, браузер почувствует, что это новый файл, и получит его.

1 голос
/ 05 июля 2014

Я нашел этот вопрос на основании сообщения об ошибке «Код в документе не загружен». Я не использую режим документа IE7 или любой другой, просто IE9.

Как и jcollum, моя проблема не была связана с кэшированием.

Я использую MVC.Net, и кто-то настроил часть JavaScript, чтобы полагаться на строку в ViewBag. Я изменил пару вещей, и эта строка ViewBag исчезла, поэтому полученный javascript выглядел примерно так:

if(!()) {
    // Some code
}

Javascript умер прямо здесь и не будет обрабатывать остальную часть кода в блоке. Это сбивало с толку, поскольку он все еще пытался выполнить javascript в другом наборе тегов сценария, но который полагался на набор переменных в другом блоке, который он не загружал.

Таким образом, в основном, синтаксическая ошибка была введена странным образом, и отладчик отказался загружать часть кода, который последовал за ним. Еще один урок об опасностях ViewBag.

1 голос
/ 22 октября 2013

Добавьте это:

window.applicationCache.addEventListener('updateready', function (e)
{
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY)
  {
    window.applicationCache.swapCache();
    if (confirm('A new version of this site is available. Load it?'))
     window.location.reload();
  }
}, false);

Я нашел это решение где-то в сети.Извините, но я не помню автора.Это работает для меня, когда я отлаживаю Web App с помощью JavaScript в Visual Studio и использую IE.

...