2012-02-29 4 views
3

Cela fait un moment que mon équipe est confrontée à un problème courant. Pour aucune raison, IE8 ne charge que les scripts parfois. J'utilise asp.net mvc3 et certains scripts sont chargés via _layout.cshtml (qui ressemble à une page maître héritée de toutes mes autres pages). Les autres scripts ne sont chargés que lorsque cela est nécessaire. Je dois mentionner que j'ai commencé à utiliser Head.js pour charger mes scripts. En fait, j'espérais que cela réglerait le problème de chargement des scripts IE8.IE 8 - Les scripts ne sont pas toujours chargés

Ces problèmes ne se produisent pas sur Firefox ou Chrome (ce qui est un autre motif je suis certain que cela se produit uniquement sur IE). Et comme il semble, si un seul script se brise sur IE8, cette pause se propage à travers d'autres scripts. Je comprends que ceci peut être un problème trop large pour être résolu avec la seule situation mentionnée ci-dessus. Donc, ce que je voudrais savoir est avez-vous eu un problème comme ça? Si oui, qu'avez-vous fait pour le résoudre? J'apprécie vraiment certaines directions, puisque je dois utiliser IE.

Voici les scripts qui sont chargés sur _layout.cshtml, dans l'ordre de chargement:

  • Head.js;
  • jquery-1.5.1.min.js;
  • modernizr-1.7.min.js;
  • jquery-ui-1.8.11.min.js;
  • jquery.ui.datepicker-pt-BR.js;
  • jquery.validate.min.js;
  • jquery.validate.unobtrusive.min.js;

Un Voici quelques-uns des autres scripts que j'utilise sur certaines pages (ce n'est pas dans l'ordre):

  • jquery-blockUI.js;
  • jquery.jqGrid-4.1.2.min.js;
  • jquery.orbit-1.2.3.min.js;
  • jquery.jqplot.min.js (et certains de ses moteurs de rendu);
  • jquery.form.wizard-min.js;
  • ZeroClipboard.js;

EDIT

Comme T.J. demandé un morceau de code, car il serait difficile d'identifier le problème avec seulement le nom des scripts utilisés, le voici.

Scripts chargés sur _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> 

Scripts chargés sur des graphiques et des graphiques Page

@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> 
} 

EDIT 2

Oh!J'ai oublié de mentionner que chaque fois que j'appelle une fonctionnalité javascript, j'utilise head(function() {}) au lieu de $(function(){}) (il est recommandé sur le site head.js).

EDIT 3

Comme Zeta a demandé, je suis un imprimé de la console IE (il est de mes tableaux et graphiques) la page.

enter image description here

Depuis que je suis brazilian, il est en portugais. Simple à comprendre cependant: cela signifie 'jqplot' est nul ou n'est pas un objet. Comme jqplot n'a jamais été chargé ou a eu quelques problèmes pendant le chargement.

+0

** S'il vous plaît citation ** le code et le balisage qui charge les scripts . Juste nous dire ce qu'ils seront probablement ne suffira pas à continuer. –

+0

Est-ce que cela se produit en production ou lorsque vous utilisez Visual Studio Development Server? – Niklas

+0

J'ai fait face à ce problème si souvent avant. Mais c'est arrivé à localhost. Tout va bien avec le vrai serveur. –

Répondre

1

Grande question, donc je ne peux pas promettre que cela va le réparer.

Mais je pense qu'il y a environ un an, j'ai eu un problème avec IE8 et les tags de script qui sonne comme le vôtre.

je remarquai que si la balise de script n'a pas tous les extras ajoutés:

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

et le serveur n'a pas envoyé http tête- > type de contenu: text/javascript

Cela n'a pas fonctionné.

Donnez-lui un chèque, mais c'est tout ce que je suis

+0

Si tel est le cas, ce serait un nouveau bug ** énorme ** dans IE8. Je pense que c'est extraordinairement improbable. (Et notez que l'attribut 'language' est obsolète depuis au moins une décennie, il n'y a jamais de raison de l'inclure.) –

+0

Non, j'ai ajouté le type et la langue dans tous mes scripts d'appel. Quoi qu'il en soit, merci pour la réponse. – AdrianoRR

+0

Je suis au courant de la chose dépréciée. Mais c'est ce qui est arrivé. Je ne dis pas que la langue était ce qui l'a fait ou l'a brisé. J'ai énuméré trois choses que j'ai changé pour transformer IE8 de ne pas télécharger/analyser au téléchargement/analyse. –

2

Je résolus de faire ceci:

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"); 
}); 

Hope it helps

+0

Je vais vérifier. Merci pour le conseil. – AdrianoRR

Questions connexes