3 votes

ASP.NET / Problème de cache de l'iPad Safari ?

Nous avons une application web ASP.NET qui utilise ASP.NET Ajax. Nous l'ouvrons à partir de Safari sur l'iPad. Elle fonctionne correctement.

Nous l'enregistrons sur l'écran d'accueil sous la forme d'une icône distincte. Nous avons ajouté la balise méta qui la charge en plein écran, sans la barre de navigation de Safari. Cela fonctionne bien.

Plus tard, nous le rouvrons et constatons qu'il est cassé. Voici une partie du code HTML qui est rendu et qui montre ce qui ne fonctionne pas.

<a id="ctl00_Header1_btnHome" class="Button" href="javascript:__doPostBack('ctl00$Header1$btnHome','')" style="display:inline-block;font-size:Medium;height:35px;width:130px;">Main Menu</a>
  1. Les styles en ligne ne sont pas appliqués. (Ces styles sont insérés automatiquement par un fichier ASP.NET *.skin).
  2. Cliquer sur le lien ne fonctionne pas.

En rouvrant la page dans Safari normal, avec les outils de développement activés, je trouve une erreur JavaScript.

TypeError : Le résultat de l'expression 'Sys.WebForms' [undefined] n'est pas un objet.

D'après ce que j'ai compris, soit le fichier ScriptResource.axd correspondant est mis en cache et n'est pas rechargé, soit, lors du rechargement, un événement d'initialisation n'est pas réactivé.

Remarque : l'effacement du cache de Safari fait l'affaire. Parfois, une actualisation du navigateur fonctionne également. Fermer et recharger l'icône de l'écran d'accueil ne fonctionne jamais.

Avez-vous déjà résolu ce problème ?

Modifier : Je pense que cela se produit parce que nous interrogeons ScriptResource.axd avec des paramètres qui sont considérés comme non valides par le serveur web. Il répond donc par une page d'erreur. La raison pour laquelle le nouveau default.aspx serait rafraîchi m'échappe, mais il pointerait vers un ScriptResource.axd avec des paramètres invalides.

1voto

Jason Kealey Points 3860

L'ajout de ceci au web.config (pour désactiver la compression) semble fonctionner.

<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="false" enableCaching="true" />
</scripting>
</system.web.extensions>

1voto

Jason Kealey Points 3860

Il ne s'agit pas d'un bogue de mise en cache/compression. Voir Raisons pour lesquelles ASP.NET AJAX serait désactivé pour la bonne réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X