Мы создаем удобный для мобильных устройств сайт для совместной работы с интернет-сайтом MOSS 2007 нашего клиента.Мы должны иметь возможность перенаправлять пользователей, которые посещают домашнюю страницу и используют мобильное устройство.
Наше первоначальное намерение состояло в том, чтобы добавить пользовательский элемент управления в макет страницы домашней страницы, который бы обнаруживал устройство текущего пользователя и перенаправлялна мобильный сайт соответственно.Мы быстро поняли, что это не будет работать, поскольку мы используем функциональность кэширования вывода, предоставляемую SharePoint / Asp.Net.Это означает, что код обнаружения будет выполняться только для первого посетителя домашней страницы, пока не истечет срок действия кэша.
Нашей следующей идеей было создать собственный модуль HTTP и обработать обнаружение там.Однако мы обнаруживаем, что кэширование вывода тоже не позволяет этого.Если кеш устанавливается во время посещения мобильного устройства, все браузеры впоследствии перенаправляются на мобильный сайт (до истечения срока действия кеша).
Если мы отключим кэширование вывода, оно будет работать нормально, но мы не можем отключить кэширование вывода, особенно для домашней страницы.Мы исследовали замещение (пончик), но это не работает из-за того, что мы фильтруем ответ Asp.Net в другом модуле HTTP, который приводит в порядок визуализированный HTML по причинам совместимости XHTML.Я также экспериментировал с профилем выходного кэша, установив для него свойство варьировать по заголовку «User-Agent», но я получаю смешанные результаты и также обеспокоен последствиями для памяти при кэшировании многоязычных версий страниц (у нас уже естьпроблемы с памятью время от времени).
Возможно, мы могли бы запустить код перенаправления в JavaScript, но тогда мы рискуем не обнаружить множество устройств, на которых JavaScript не включен.Это правительственный веб-сайт, поэтому использование JavaScript должно соответствовать правилам доступности.
Есть ли у кого-нибудь еще идеи относительно того, как мы можем решить эту проблему.Кто-нибудь делал это раньше?Возможно по-другому?
Надеюсь, вы сможете помочь, спасибо.
ps Я также задал этот вопрос по SharePoint.SE , но хотел как можно больше взглянуть на это.