2009-05-24 6 views
2

Je développe un site Web ASP.NET qui devra prendre en charge des utilisateurs non Flash.Test de la capacité Flash côté serveur

Si le navigateur de l'utilisateur ne prend pas en charge Flash ou si Flash est désactivé, je souhaite télécharger une grande image de démarrage dans le navigateur.

Cependant, je ne veux pas gaspiller la bande passante à télécharger si le clignote correctement.

Donc, est-il possible de tester, du côté serveur en utilisant le code .NET, si le navigateur supporte le flash? J'ai regardé l'objet 'Request.Browser', mais je n'ai rien trouvé de pertinent pour Flash.

Répondre

1

Vous pouvez essayer d'utiliser un serveur var:

'HTTP_ACCEPT' contre 'application/x-shockwave-flash'

ne suis pas sûr .NET mais il fonctionne la plupart du temps en php. Cela ne fonctionne pas dans Safari, mais pour ce que vous faites cela devrait aller. Vous économiserez de la bande passante 95% du temps. exemple PHP (pas .NET, mais vous voyez l'idée):

if (strstr($_SERVER['HTTP_ACCEPT'], 'application/x-shockwave-flash')){ 
    $hasFlash = true; 
} 
1

Compte tenu de votre condition je ferais mieux d'utiliser un script de détection Flash qui permet de détecter les capacités de Flash sur le client et rediriger l'utilisateur vers une autre page au lieu de télécharger le fichier SWF. Vous pouvez trouver de nombreux scripts sur Kirupa ou vous pouvez utiliser celui qui est généré dans la boîte de dialogue d'options de publication Flash

1

La détection flash côté client est probablement la meilleure solution. Cependant, gardez à l'esprit que vous pouvez avoir des utilisateurs avec JavaScript désactivé, comme les personnes utilisant le plugin NoScript. Vous avez trois choix de base pour faire face à ce que je peux voir.

  1. Ignorez-le. Peut-être que vous ne vous sentez pas assez de gens dans cette situation pour être digne de s'inquiéter.

  2. Vérifiez pour cela, et demandez à un indicateur de demander à l'utilisateur d'activer JS pour une meilleure expérience sur ce site. Cela est généralement effectué en affichant la notification dans la page et en ayant le code JS pour désactiver ou masquer le rendu de cet élément.

  3. Tentative de prise en charge d'un fonctionnement de site raisonnablement bon sans JavaScript. Cela impliquerait probablement d'avoir la grande charge d'image par défaut, et d'arrêter ce chargement avant qu'il ne commence. Cela pourrait être difficile.

3

Vous ne devriez pas avoir affaire à cela côté serveur. La plupart des scripts de détection/intégration de Flash effectuent ce type de comportement par défaut. Je recommande fortement SWFObject.

  • Créer une <div> avec votre image (ou tout HTML que vous voulez vraiment) à l'intérieur
  • Donnez-lui une carte d'identité par exemple: <div id="flash">
  • Dites SWFObject pour remplacer ce bloc div avec un lecteur Flash

S'ils ont désactivé, ils voient le code HTML inchangé.S'ils ont javascript activé mais pas de plugin Flash, ils voient aussi le html. Fondamentalement, ils verront le Flash seulement s'ils ont javascript et le plugin Flash.

C'est à peu près aussi bon que ça.

1

Il y a certainement des raisons pour lesquelles vous voulez détecter le flash côté serveur. Nous avons besoin que certaines pièces soient complètement remplacées ou laissées sur une page si le flash n'est pas disponible. Ce n'est pas aussi simple que d'afficher un contenu alternatif à l'endroit exact où le flash était. Nous devons remplacer la structure html plus haut. Et nous devons faire cela même si Javascript n'est pas disponible. Ce n'est pas vraiment une option pour laisser javascript réécrire la page SI Flash est disponible et nous ne pouvons pas simplement rediriger vers une autre page.

+0

Cela ne répond pas à la question. C'est plus une reformulation de la question –

0

Les navigateurs ne semblent pas envoyer

application/x-shockwave-flash 

dans l'en-tête Accept. Ils viennent envoyer */*

IE semble envoyer

x-flash-version 

demandes flash pour une raison stupide ...

Questions connexes