Quelqu'un a des idées pour résoudre le “n éléments restants” problème sur Internet Explorer?

Dans mon ASP.Net app, javascript et jQuery lourd, mais utilise également les pages maîtres et les .Net Ajax morceaux, je suis constamment voir sur la barre d'état d'internet explorer 6 (et, occasionnellement, IE 7) le message "2 éléments restants" ou "15 éléments restants" suivi de "chargement somegraphicsfile.png|gif ." Ce message ne va jamais loin et peut ou ne peut pas empêcher certaines fonctionnalités de page à partir de l'exécution (il semble ralentir, mais je ne suis pas positive).

Je peut causer cela se produise 99% du temps par seulement rafraîchissant, une .aspx âge, mais le nombre d'éléments et, parfois, le fichier il mentionne varie. Habituellement, il est de 2, 3, 12, 13 ou 15.

J'ai Googlé pour les réponses et il y a plusieurs suggestions ou des explications. Certains d'entre eux n'ont pas travaillé pour nous, et d'autres ne sont pas pratique pour nous de mettre en œuvre ou d'essayer.

Voici quelques idées/théories:

  • IE n'est pas mise en cache des images, de sorte qu'il demande à plusieurs reprises pour la même image, si l'image est reproduite sur la page et le serveur suppose qu'il doit être mis en cache localement, puisqu'elle est déjà servi dans ce contexte de la page. IE affiche les images correctement, mais s'assied et attend une réponse du serveur qui ne vient jamais. Généralement, le fichier qu'il dit qu'il est en attente sur est répété sur la page.

  • De la page en utilisant les images PNG avec de la transparence. En effet, il est, mais ils sont jQuery-UI Themeroller graphiques générés qui, selon le jQuery-UI les gens, sont IE coffre-fort. Le jQuery-composants de l'INTERFACE utilisateur sont les seules choses à l'aide de Png. Tous nos PNG références sont dans le CSS, si cela aide. J'ai changé certains des graphiques à partir de PNG, GIF, mais il est tout aussi probable que de dire qu'il est en attente pour somegraphicsfile.png que c'est pour somegraphicsfile.gif

  • Images sont spécifiées dans le CSS et/ou JavaScript, mais sur des choses qui ne sont pas actuellement affiché (display: none des éléments par exemple). Cette peut être vrai, mais si c'est le cas, je pense que le préchargement d'images de travail, mais jusqu'à présent, l'ajout d'un preloader ne fait pas de bien du tout.

  • IIS de la politique de mise en cache est la confusion entre le navigateur. Si c'est vrai, c'est que Microsoft serveur SW avoir des problèmes avec le navigateur de Microsoft (ce qui ne m'étonne pas du tout). Malheureusement, je n'ai pas beaucoup de contrôle sur la configuration IIS qui sera l'hôte de l'application.

Quelqu'un a vu cela et a trouvé un moyen de la combattre? En particulier sur ASP.Net apps avec jQuery et jQuery-UI?

Mise à JOUR

Un autre point de données: sur au moins l'une des pages, tout en commentant le jQuery-UI Datepicker d'installation de composant à l'origine du problème pour s'en aller, mais je ne pense pas (ou du moins je ne suis pas sûr) si cela résout toutes les pages. Si elle ne se "fixer", je vais avoir à échanger des modules, car cette fonctionnalité nécessite d'être là. Il ne semble pas y avoir de questions ouvertes à l'encontre de jQuery-UI sur IE6/7 à l'heure actuelle...

Mise à JOUR 2

J'ai vérifié les paramètres IIS et "activer l'expiration de contenu" a été pas défini sur aucun de mes dossiers. De la désactivation de ce paramètre a été une proposition commune pour la résolution de ce problème.

Je en avoir une autre, plus simple, la page que je peux créer l'erreur. Je suis à l'aide de jQuery-UI 1.6rc6 fichier (bien que j'ai aussi essayé de jQuery-UI 1.7.1 avec les mêmes résultats). Le problème se produit uniquement lorsque j'actualise la page qui contient le jQuery-UI Datepicker. Si j'en commentaire le Datepicker de l'installation, le problème disparaît. Voici quelques petites choses que j'ai remarqué lorsque je fais ceci:

  1. Cette page dit toujours "(1 point) le Téléchargement de l'image http:///images/Calendar_scheduleHS.gif", mais seulement en cas de rechargement.
  2. Quand je regarde HTTP enregistrement, je vois qu'elle demande à ce que l'image à partir du serveur à chaque fois qu'il est dynamiquement allumé, sans égard à la mise en cache.
  3. Toutes les demandes de ce graphique sont à remplir et retourner le graphique correctement. Aucun sont marqués code 200 ou 304 (indiquant que le serveur est révélateur, c'est à dire utiliser la version en cache). Pourquoi il est dit en attente sur le graphique lorsque toutes les demandes ont terminé je n'ai aucune idée.
  4. Il y a un seul autre graphique sur la page (l'un de l'INTERFACE utilisateur des fichiers PNG) qui a un code 304 (Non Modifiée). Sur une autre page où j'ai réussi à connecter le trafic HTTP avec "2 éléments restants", deux graphiques différents fichiers (UI Png) avait un 304 ainsi (mais ni a été l'un de ceux énumérés comme "Téléchargement".
  5. Cette erreur n'est pas anodin - la page n'est pas totalement responsive. Par exemple, si je clique sur un des boutons qui doit s'exécuter côté client de l'action, l'actualisation de la page.
  6. À s'éloigner de la page et de revenir à ne pas produire de l'erreur.
  7. J'ai déplacé le script de script et de références au fond du contenu et cela n'affecte pas ce problème. Le script est encore en cours d'exécution dans le $(document).prêt () (il est trop poilu à diviser, à moins que je dois absolument).

DERNIÈRE MISE À JOUR ET DE RÉPONDRE À

Il y avait beaucoup de bonnes réponses et les suggestions ci-dessous, mais aucun d'entre eux étaient exactement notre problème. Le plus proche (et le seul qui m'a conduit à la solution) a été l'un concernant les temps d'exécution de JavaScript, j'ai donc reçu le bounty il y a (je suppose que je pourrais avoir répondu à moi-même, mais je préfère récompenser info qui conduit à des solutions).

C'était notre solution: Nous avons eu plusieurs jQueryUI datepickers qui ont été créés sur le $(document).prêt événement dans le script inclus à partir de la ASP.Net page maître. Sur cette page client, un script local de $(document).prêt événement avait script qui a détruit le datepickers sous certaines conditions. Nous avons dû utiliser "détruire" parce que la version précédente de datepicker avait un problème avec les "désactiver". Lorsque nous avons mis à niveau vers la dernière version de jQuery UI (1.7.1) et a remplacé le "détruire"s "désactiver"s pour le datepickers, le problème a disparu (ou presque s'en alla - si vous faites les choses trop vite alors que le chargement de la page, il est toujours possible d'obtenir le "n éléments restants" statut).

Ma théorie de ce qui se passait va comme ceci:

  1. Le contenu de la page charge et a 12 ou
    si les zones de texte avec le datepicker
    classe.
  2. La page maître script crée
    datepickers sur ces zones de texte.
  3. IE files d'attente des demandes de chacun
    calendrier graphique de façon indépendante
    parce que IE ne sait pas comment
    correctement cache d'image dynamique
    les demandes.
  4. Avant les requêtes traitées,
    la zone client de script détruit
    ceux datepickers pour les graphismes
    ne sont plus nécessaires.
  5. IE est à gauche avec un certain nombre de
    orphelins de demandes qu'il n'a pas
    savoir quoi faire avec.
  • Pouvez-vous fournir un lien vers le site? Peut-être que c'est vous seul qui en est à l'origine du problème en raison de certains paramètres locaux?
  • Que faire si pas de Javascript est impliquée à tous (j'ai désactivé les scripts dans IE8 pour s'assurer)? En outre, si le site web est hébergé par le biais de Visual Studio ASP.NET Serveur de Développement? C'est complètement aléatoire. Parfois, ces pages web se chargent de l'amende, d'autres fois ils décrochent jamais avec "1 point".
InformationsquelleAutor CMPalmer | 2009-04-09