Почему мои файлы javascript не загружаются "последовательно" в IE7?
В том, что кажется случайным вхождением, файлы javascript не загружаются.
Я считаю, что этот диагноз верен, потому что у меня есть код для проверки, б) я прошел через код и c) я получаю ошибку "myfunction" undefined ", когда используются функции в этих файлах.
Иногда это не происходит в течение часа, иногда это происходит каждый раз, когда я загружаю страницу, иногда это происходит каждый раз, когда я загружаю страницу. Кажется, каждый раз, когда я идентифицирую последовательное поведение, поэтому я могу повторить его и диагностировать, он меняется!
Кто-нибудь знает, что может быть причиной этого?
Я использую:
- IE версия 7.0.5730.11 (имеет &
удаленная бета-версия IE8)
- VS2008
Прямо сейчас, похоже, это происходит только с моим коллегой и мной в наших средах разработки.
Существует один script, который, как представляется, отсутствует больше, чем любой другой. Здесь тег script.
<script language="javascript"
type="text/javascript"
src="js/Ajax.Utility.js?<%= ConfigurationManager.AppSettings["WebApp.JavaScript.FileVersion"].ToString() %>"></script>
Что оценивается
<script language="javascript"
type="text/javascript"
src="js/Ajax.Utility.js?090324a"></script>
Параметр строки запроса версии не имеет никакого эффекта ни с тех пор, как я был, и не имел проблемы сразу после его изменения.
Ответы
Ответ 1
Просто FYI для тех, кто имеет ту же проблему.
Это никогда не было разрешено, но теперь я полагаю, что это как-то связано с Visual Studio Development Server, и я сомневаюсь, если бы это произошло, если бы я использовал IIS. К сожалению, я больше не работаю над этим проектом, поэтому я не могу его протестировать.
Ответ 2
У меня была эта проблема дважды. Это всегда синтаксическая ошибка в коде Javascript. Скорее всего, дополнительный кронштейн или отсутствует. Все остальные браузеры пропустили это, но IE7 не было.
Испытание и ошибка (удаление кусков и фрагментов кода) привели меня к поиску решения.
Надеюсь, это поможет: -)
Ответ 3
На всякий случай полученные ответы не сработали -
IE7 по умолчанию не загружает Javascript из локальных файлов. Обычно вы снижаете панель информации и указываете это. Вы должны нажать на панель и выбрать "Разрешить заблокированное содержимое", а затем IE7 перезагрузит страницу с включенным Javascript.
Такое поведение является последовательным. Однако, если некоторые системы отключили отображение информационной панели, теперь вы можете узнать, в чем проблема.
Мое предложение состоит в том, чтобы добавить <noscript> вверху вашей HTML-страницы и стилизовать его с жирным красным фоном с помощью CSS, чтобы вы не могли его пропустить. StackOverflow использует эту технику.
Таким образом, вы обязательно узнаете, не загружается ли Javascript из-за соображений безопасности.
Ответ 4
У меня была такая же точная проблема, как и у оригинального плаката, и я попробовал многие из решений, предоставленных безрезультатно.
Я, наконец, исправил его, обновив дату и время на машине, на которой запущен сервер Apache. Это было отключено на пару дней (результат прерывания работы в виртуальной машине)
Надеюсь, это поможет кому-то.
Ответ 5
Вместо src="js/AjaxTry.Utility.js"
попробуйте это:
src="<% ResolveUrl("~/path/from/root/to/js/Ajax.Utility.js") %>
Ответ 6
Другая мысль: вы очищаете кеш браузера между тестами? Браузер полностью свободен от кеширования сценариев по своему усмотрению, если этого не предотвращать - обычно вы заметили только редактирование скриптов и таблиц стилей и изображений
Ответ 7
Вы проверили с помощью инструмента, такого как Fiddler, что вызов этого .js файла делается либо на сервер, либо на браузера, и что браузер фактически получает файл правильно, а не получает 404 или некоторые такие?
Вы должны проверить это на странице, которая на самом деле вызывает данный метод - поскольку ваш путь является относительным URL (т.е. не начинается с "/" ), существует ли какая-либо возможность, чтобы страница, с которой вы вызываете ее не находится под папкой js, но, возможно, рядом с ней?
Представьте структуру сайта, как это, из корня сайта:
/page1.aspx
/folder/page2.aspx
/js/Ajax.Utility.js
Если на странице 1 и на странице 2 есть ваш вызов в .js файле, только страница 1 действительно сможет правильно его восстановить - стр. 2 будет эффективно искать:
/folder/js/Ajax.Utility.js
Ответ 8
У меня была такая же проблема с IE7, проблема заключалась в том, что я использовал "супер" как свойство, которое является зарезервированным ключевым словом, и IE7 молча загрузил страницу.
Ответ 9
Большинство браузеров кажутся толерантными к дополнительным запятым, например, в определении списка свойств объекта:
var obj = {prop1: 'value',
prop2: 'value',};
Internet Explorer не терпит запятой. Всякий раз, когда у меня была эта проблема, она ВСЕГДА оказывалась из-за дополнительной запятой. Более того, отладчик IE не помечает проблему с исходным кодом, он просто выводит пропущенные определения из файла, который не был загружен должным образом.