IE 8 - скрипты не всегда загружаются - PullRequest
3 голосов
/ 29 февраля 2012

Это была обычная проблема для моей команды некоторое время. По понятным причинам, IE8 иногда загружает только скрипты. Я использую asp.net mvc3, и некоторые скрипты загружаются через _layout.cshtml (который похож на главную страницу, которую наследуют все мои другие страницы). Другая группа скриптов загружается только при необходимости. Я должен упомянуть, что я начал использовать Head.js для загрузки своих скриптов. Я действительно надеялся, что это решит проблему загрузки скриптов IE8.

Эти проблемы не возникают в Firefox или Chrome (это еще один мотив, я уверен, что это происходит только в IE). И, как кажется, если в IE8 происходит разрыв одного сценария, этот разрыв распространяется через другие сценарии.

Я понимаю, что это может быть слишком широкой проблемой, чтобы ее можно было решить только с помощью вышеупомянутой ситуации. Так что я хотел бы знать, была ли у вас такая проблема? Если да, что вы сделали, чтобы решить эту проблему? Я действительно ценю некоторые указания, так как мне нужно использовать IE.

Вот сценарии, которые загружаются на _layout.cshtml, в порядке загрузки:

  • Head.js;
  • JQuery-1.5.1.min.js;
  • Modernizr-1.7.min.js;
  • JQuery-щ-1.8.11.min.js;
  • jquery.ui.datepicker-пт-BR.js;
  • jquery.validate.unobtrusive.min.js;

Вот некоторые другие скрипты, которые я использую на некоторых страницах (это не в их порядке):

  • JQuery-blockUI.js;
  • jquery.jqGrid-4.1.2.min.js;
  • jquery.orbit-1.2.3.min.js;
  • jquery.jqplot.min.js (и некоторые его рендеры);
  • jquery.form.wizard-min.js;
  • ZeroClipboard.js;

EDIT

Как Т.Дж. попросил какой-то кусок кода, поскольку трудно было бы идентифицировать проблему только с использованием имени используемых сценариев, вот оно.

Скрипты, загруженные в _layout.cshtml

<head>
<script src="@Url.Content("~/Scripts/head.min.js")" language="javascript"  type="text/javascript"></script>

//Lots of css files loaded mostly through document.write

<script type="text/javascript" language="javascript">
        //        if (head.browser.mozilla || head.browser.webkit || head.browser.opera ||
        //      (head.browser.ie && (head.browser.version == '9.0'))) {
        head.js('@Url.Content("~/Scripts/jquery-1.5.1.min.js")')
                .js('@Url.Content("~/Scripts/modernizr-1.7.min.js")')
                .js('@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")')
                .js('@Url.Content("~/Scripts/jquery.ui.datepicker-pt-BR.js")')
                .js('@Url.Content("~/Scripts/jquery.validate.min.js")')
                .js('@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")');
        if (screen.width == 1024) {
            head.js('@Url.Content("~/Scripts/resolucao1024.js")');
        } else {
            head.js('@Url.Content("~/Scripts/resolucaoMaior1024.js")');
        }
</script>
@RenderSection("Header", false)
</head>

Скрипты, загруженные на страницу графиков и графиков

@section Header{
<script type="text/javascript" language="javascript">
        head
        .js('@Url.Content("~/Scripts/jquery-blockUI.js")')
        .js('@Url.Content("~/Scripts/jqGridMVC/grid.locale-pt-br.js")')
        .js('@Url.Content("~/Scripts/jqGridMVC/jquery.jqGrid-4.1.2.min.js")')
        .js('@Url.Content("~/Scripts/jquery-ConfigAjax.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jquery.jqplot.min.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jqplot.highlighter.min.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jqplot.dateAxisRenderer.min.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jqplot.pieRenderer.min.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jqplot.donutRenderer.min.js")')
        .js('@Url.Content("~/Scripts/jqPlot/jqplot.cursor.min.js")');
    </script>
}

РЕДАКТИРОВАТЬ 2

Oh! я забыл упомянуть, что каждый раз, когда я вызываю некоторые функции javascript, я использую head(function() {}) вместо $(function(){}) (рекомендуется на сайте head.js).

РЕДАКТИРОВАТЬ 3

Как спросил Зета, я предоставляю распечатку с консоли IE (это из моих диаграмм и графической страницы).

enter image description here

Так как я бразилец, он на португальском. Однако это легко понять: это означает, что 'jqplot' имеет значение null или не является объектом. Как будто jqplot никогда не загружался или имел некоторые проблемы во время загрузки.

Ответы [ 2 ]

2 голосов
/ 26 октября 2012

Я решил сделать это:

head.js("js/jquery-1.7.1.min.js",
 function() {
   head.js("js/script.js");
   head.js("js/script1.js");
   head.js("js/script2.js");
   head.js("js/script3.js");
});

Надеюсь, это поможет

1 голос
/ 29 февраля 2012

Широкий вопрос, поэтому я не могу обещать, что это все исправит.

Но я думаю, что около года назад у меня была проблема с IE8 и тегами скрипта, которые звучат так же, как у вас.заметил, что если в теге скрипта не было всех добавленных дополнений:

type = "text / javascript" language = "javascript"

и сервер не отправил заголовок http -> тип содержимого: text / javascript

Это не сработало.

Дайте ему чек, но это все, что я получил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...