Flash против JavaScript для интерактивных карт - PullRequest
2 голосов
/ 05 ноября 2010

Я занимаюсь разработкой веб-приложения, которое должно отображать наземный трафик в реальном времени в любой части мира.В течение пары месяцев я разрабатывал его с использованием JavaScript и OpenLayers (http://www.openlayers.org) framework.

). К сожалению, это решение кажется неэффективным. На карте есть сотни (200-300) объектов, которыеобновляется каждые пару минут. Сама операция обновления и рендеринга занимает значительное количество времени, что делает приложение менее пригодным для использования (медленная чувствительность к действиям пользователя).

В данный момент я рассматриваю возможность изменения технологии. Adobe Flexкажется наиболее разумным решением. В нем написано, по крайней мере, одно приложение, которое делает то же самое, что и мое (http://casper.frontier.nl/).

Тем не менее, у меня есть пара вопросов относительно Flex:

  • Может ли он быть легко интегрирован с частью приложения на основе HTML / CSS / JavaScript (например, графический интерфейс должен быть согласованным, когда речь идет о стилях и цветах)?
  • Я получаюТакое впечатление, что с последними браузерами (в основном Chrome 9.0) JavaScript и CSS становятся лучшеболее эффективный.Каковы шансы, что через пару месяцев JavaScript + CSS позволят реализовать эффективное, похожее на flash, многофункциональное интернет-приложение?(Здесь необходимо отметить: знаменитый тег Canvas не является решением моей проблемы, по крайней мере, пока. Рендеринг объектов на карте с помощью canvas оказался менее эффективным, чем в традиционном SVG, потому что размер холста действительно большой -все окно браузера)
  • Каковы шансы, что технология Flash будет оставлена ​​(политика Apple, растущая поддержка HTML5 и т. д.) в ближайшем будущем (через пару лет)?
  • Возможно, мой клиент хотел бы просмотреть это приложение на мобильных устройствах, включая iPhone.
  • Любое другое решение для интерактивных веб-карт?

Кто-нибудь может решить эти проблемы?

Ответы [ 4 ]

1 голос
/ 09 ноября 2010

Репост ленивых комментариев:

Я использовал Google Maps JavaScript API + пользовательский слой листов холста (см. здесь и здесь ) для рисования карт с маркерами 10k +, очень быстро, Возможно, вам просто нужно переосмыслить свой конкретный подход, а не переписывать карты полностью.

1 голос
/ 05 ноября 2010

JavaScript, работающий в современном браузере (скажем, IE7 или более поздней), должен легко обрабатывать 200 или 300 обновлений объектов каждые несколько минут.Конечно, если вы хотите сделать все 300 обновлений одновременно, все может стать немного медленнее.Но если эти обновления происходят в течение этого периода, у вас не должно быть никаких проблем.

Существуют игры астероидов и 3D-шутеры, написанные на JavaScript, и в них можно играть.Они производят десятки обновлений в секунду.

Я бы заподозрил вашу фреймворк (я ничего не знаю об OpenLayers) или то, как вы делаете обновления, прежде чем я заподозрил платформу.

Мойопыт работы с Flash был менее положительным.Хотя он будет взаимодействовать с JavaScript, есть некоторые странные крайние случаи, которые вас удивят.И мой опыт показывает, что почти невозможно не опрокинуть эти крайние случаи, если то, что вы делаете, не является действительно тривиальным.И, конечно же, отсутствие поддержки Flash на iPad и iPhone сделает невозможной поддержку этих платформ.

Я думаю, что маловероятно, что Flash будет заброшен в ближайшее время, так как естьслишком много клиентов, которые продолжают верить в глупое представление о том, что Flash - это способ создания интерактивных веб-приложений.Хотя это почти наверняка было так четыре года назад, браузеры, компьютеры и методы JavaScript продвинулись до такой степени, что в настоящее время я использую только Flash для воспроизведения видео.И это использование исчезнет в ближайшие несколько лет, когда видео HTML5 станет более распространенным.Благодаря видеоформату Google WebM и ожидаемым высококачественным инструментам для создания WebM Flash становится практически неактуальным проигрывателем фильмов, за исключением старого контента.

Мой совет - внимательно взглянуть на текущую реализацию.изучите некоторые другие приложения JavaScript, которые часто обновляются, и определите, действительно ли именно платформа, а не то, как вы ее используете, вызывает проблемы с производительностью.

0 голосов
/ 07 ноября 2010

Удивительная вещь в архитектуре MVC заключается в том, что, если вы храните свою доменную логику отдельно от бизнес-логики и пользовательского интерфейса, то относительно легко создавать приложения для платформы, которые обращаются к одним и тем же данным. Например, вы можете создать один и тот же пользовательский интерфейс для запуска в веб-браузере (через html / javascript или flash player), на рабочем столе (через Air) и на iPhone / iPad (через iOS), которые все подключаются к одному серверу. скрипты Все зависит от вашего личного выбора, какую платформу вы выберете. Если в будущем платформа выйдет из моды, вы просто создадите новый интерфейс на другой платформе.

0 голосов
/ 06 ноября 2010

Не знаю, сколько объектов вы можете управлять и обновлять в js, но в моей компании (flashmaps.com) мы создали флэш-карты, которые обрабатывают многие тысячи объектов. Ключевой вопрос во многих случаях на самом деле заключается в том, что карта полностью перекрывается маркерами. Мы используем, чтобы рекомендовать фильтрацию маркеров в этих случаях. У нас огромный опыт в создании карт на основе flash / flex, поэтому не стесняйтесь задавать мне любые вопросы по этому поводу.

Кстати, я не думаю, что Flash скоро выйдет из строя. Стратегия Apple по контролю над приложениями для iPhone / iPad (настоящая причина запрета Flash) доставляет массу хлопот веб-разработчикам, которым нужно создавать конкретные версии своих сайтов для этих устройств, это безумие. Но я уверен, что Apple когда-нибудь разрешит Flash, вероятно, когда многие планшеты появятся на улицах, поддерживающих Flash. Посмотрим.

...