Тестирование возможности Flash на стороне сервера - PullRequest
2 голосов
/ 24 мая 2009

Я занимаюсь разработкой веб-сайта ASP.NET, который должен поддерживать пользователей без флэш-памяти.

Если браузер пользователя не поддерживает Flash или у него отключена Flash, я хотел бы загрузить большое изображение-заставку в браузер.

Однако я не хочу тратить трафик на загрузку, если Flash правильно отображает .

Так можно ли на стороне сервера проверить с помощью кода .NET, поддерживает ли браузер flash? Я просмотрел объект Request.Browser, но не смог найти ничего, имеющего отношение к Flash.

Ответы [ 6 ]

3 голосов
/ 24 мая 2009

Вы не должны иметь дело с этим на стороне сервера. Большинство сценариев обнаружения / встраивания Flash выполняют такое поведение по умолчанию. Я настоятельно рекомендую SWFObject .

  • Создайте <div> с вашим изображением (или любым HTML, который вы действительно хотите) внутри него
  • Дайте ему идентификатор, например: <div id="flash">
  • Скажите SWFObject переопределить этот блок div с помощью проигрывателя Flash

Если они отключены, они видят неизмененный html. Если у них включен javascript, но нет плагина Flash, они также видят html. По сути, они увидят Flash только в том случае, если у них есть JavaScript и плагин Flash.

Это примерно так же хорошо, как и получается.

1 голос
/ 16 сентября 2010

Конечно, есть несколько причин, по которым вы хотите обнаружить флэш-память на стороне сервера. Нам нужно, чтобы некоторые детали были полностью заменены или оставлены на странице, если флэш-память недоступна. Это не так просто, как показ альтернативного контента в том месте, где была вспышка. Нам нужно заменить структуру HTML дальше. И мы должны сделать это, даже если Javascript недоступен. На самом деле нельзя позволить javascript переписать страницу, если Flash доступен, и мы не можем просто перенаправить на другую страницу.

1 голос
/ 24 мая 2009

Обнаружение вспышки на стороне клиента, вероятно, является лучшим способом. Однако имейте в виду, что у вас могут быть отключены пользователи JavaScript, например люди, использующие плагин NoScript . У меня есть три основных варианта решения этой проблемы, которые я вижу.

  1. Игнорировать это. Возможно, вы чувствуете, что в этой ситуации недостаточно людей, о которых стоит беспокоиться.

  2. Проверьте это, и появится индикатор, предлагающий пользователю включить JS для улучшения работы на этом сайте. Обычно это делается путем отображения уведомления на странице и использования кода JS для отключения или скрытия отображения этого элемента.

  3. Попытка поддержать достаточно хорошую работу сайта без JavaScript. Вероятно, для этого потребуется загрузка большого изображения по умолчанию и прекращение загрузки до его запуска. Это может быть сложно.

1 голос
/ 24 мая 2009

Учитывая ваше требование, я бы лучше использовал скрипт обнаружения Flash, который будет определять возможности Flash на клиенте и перенаправлять пользователя на другую страницу вместо загрузки SWF-файла. Вы можете найти множество скриптов на Kirupa или использовать тот, который сгенерирован в диалоге параметров публикации Flash

1 голос
/ 24 мая 2009

Вы можете попробовать использовать серверную переменную:

'HTTP_ACCEPT' против 'Применение / х-ударно-вспышка'

Не уверен насчет .NET, но он работает большую часть времени в php. Это не работает в Safari, но то, что вы делаете, должно быть хорошо. Вы будете экономить себе пропускную способность в 95% случаев. Пример PHP (не .NET, но вы поняли):

if (strstr($_SERVER['HTTP_ACCEPT'], 'application/x-shockwave-flash')){
    $hasFlash = true;
}
0 голосов
/ 27 апреля 2013

Браузеры не отправляют

application/x-shockwave-flash

в заголовке Accept. Они просто отправляют */*

IE, кажется, отправляет

x-flash-version

с флэш-запросами по какой-то глупой причине ...

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