Я собираюсь добавить другой ответ, чем тот, который был дан выше.Это крайний случай, с которым я столкнулся совсем недавно.
В моем случае у меня возникли проблемы с синхронизацией при загрузке моих скриптов.Это означает, что в Google Chrome мой скрипт загружается нормально и имеет доступ к методам WebService.Однако в IE11 мой скрипт не загружается, потому что он загружается до загрузки ScriptManager, и поэтому IE11 не может видеть пространство имен для доступа к методам WebService.
Есть 2 возможных предложенияо том, как исправить эту проблему времени.Оба не являются надежными серебряными пулями для этой редкой проблемы.
Добавление ScriptReference к ScriptManager
Как уже упоминалось в MSDN :
РегистрацияПользовательский сценарий
Используйте элемент управления ScriptManager для управления ресурсами, которые вы создали для элементов управления, которые участвуют в частичных обновлениях страницы.Ресурсы включают скрипты, стили, скрытые поля и массивы.Коллекция Scripts элемента управления ScriptManager содержит объект ScriptReference для каждого сценария, доступного для браузера.Вы можете указать сценарии декларативно или программно.Элемент управления ScriptManager также предоставляет методы регистрации, которые можно использовать для программного управления клиентским скриптом и скрытыми полями.При регистрации сценария или скрытых полей, которые поддерживают частичное обновление страницы, необходимо вызвать методы регистрации элемента управления ScriptManager.(Чтобы зарегистрировать сценарии, которые не нужны для частичного обновления страницы, вы используете методы класса ClientScriptManager.)
Другими словами, вы должны добавить свои сценарии следующим образом:
<asp:ScriptManager ID="scriptManager" runat="server">
<Services>
<asp:ServiceReference Path="BackgroundService.asmx" />
</Services>
<Scripts>
<asp:ScriptReference Path="Scripts/jquery-3.1.1.js" />
<asp:ScriptReference Path="Scripts/customScript.js" />
<asp:ScriptReference Path="Scripts/test_script_for_lulz.js" />
</Scripts>
</asp:ScriptManager>
Это так, что ScriptManager может ссылаться на ваши скрипты, когда он загружается.
Добавление ваших скриптов после ScriptManager
Другой способ сделать это - добавить ваши скрипты послеScriptManager, внутри вашего элемента <form runat="server">
, например:
<asp:ScriptManager ID="scriptManager" runat="server">
<Services>
<asp:ServiceReference Path="BackgroundService.asmx" />
</Services>
</asp:ScriptManager>
<%-- Your scripts come after ScriptManager --%>
<script type="text/javascript" src="Scripts/jquery-3.1.1.js"></script>
<script type="text/javascript" src="Scripts/test_script.js"></script>
<script type="text/javascript" src="Scripts/lulz_script_again.js"></script>
Таким образом, ваши скрипты загружаются после завершения загрузки ScriptManager, благодаря тому, как язык разметки читается браузером.
Опять же, нет никаких гарантий, какое решение лучше другого.Это проблема времени, с которой я столкнулся, вот и все.