Каковы (технические) плюсы и минусы Flash vs AJAX / JS?

мы предоставляем веб-приложение с интерфейсом, полностью разработанным в Adobe Flash. Когда мы выбрали Flash 6 лет назад, мы сделали это для его большого количества функций для взаимодействия с пользователем, таких как перетаскивание вещей, Открытие и закрытие меню, элементы навигации по дереву, всплывающие диалоги и т. д.

сегодня очевидно, что AJAX / JS предлагает примерно те же возможности, и из-за количества фреймворков, которые легко доступны, их очень возможно реализовать.

Is есть ли техническая причина, по которой нужно выбирать одну технологию над другой? Под "техническим" я подразумеваю производительность, безопасность, переносимость/совместимость и тому подобное. Я не имею в виду такие аспекты, как разработка не программиста во Flash или имеет смысл переключать приложение с одного на другое.

Как я только что объяснил другой вопрос, мне кажется, что JS намного впереди с точки зрения доли рынка, и мне интересно, не хватает ли нам некоторых важный момент, если мы будем придерживаться вспышки.

11 ответов


  • правильно разработанные приложения AJAX более googleable, чем Flash
  • правильно разработанные приложения AJAX более легко связываются, чем Flash
  • AJAX не требует плагина (Flash довольно вездесущ, поэтому это не очень важно)*
  • AJAX не контролируется одной компанией так, как Flash

изменить добавить: * За исключением iPhone, как указывает Абду.


в дополнение к тому, что говорили другие, Flash ограничен в "прямоугольнике" и не может быть добавлен на обычную html-страницу не навязчивым образом.

@Gulzar я думаю, что когда больше браузеров будут поддерживать тег видео, как mozilla 3.1, мы увидим еще больше принятия ajax / js через flash.


  • Adobe Actionscript-это статически типизированный язык, Javascript-динамически типизированный. В зависимости от вашей точки зрения, это может быть хорошо или плохо.
  • С Javascript/HTML / CSS вы отправитесь в кросс-браузерный ад совместимости, особенно если вы хотите поддерживать старые браузеры. Это может быть смягчено библиотеками, которые доступны, но это все еще большая головная боль. С Flash вы пишете код один раз, и он просто работает во всех броузеры.
  • даже с доступными библиотеками, пользовательские элементы управления Flash просто более продвинутые, чем все, что вы можете найти в мире Javascript/HTML. В Javascript вы не найдете ничего, что приближается к простоте и мощности пользовательского элемента управления databound, который предоставляет Flash.

Я не вижу, как Javascript имеет больше "доли рынка", чем Flash. Почти никому в веб-браузере установлен плагин Flash. Мне было бы любопытно знать сколько людей отключают Javascript, но имеют Flash-плагин.

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

это решение также имеет много общего с тем, что делает ваше приложение и кто ваша база установки.

Edit: я вижу, что люди упомянули, что iPhone не имеет поддержка Flash. Я ожидал бы, что это изменится с установкой базы iPhone - Adobe будет сумасшедшим, чтобы не поддерживать ее.


JS и Flash имеют большое присутствие в интернете с перекрывающимися возможностями. Одна область JS по-прежнему отсутствует в рендеринге видео.


вспышка, используемая хорошо, позволяет легкой локализации и интернационализации.

кроме того, гораздо проще использовать Flash доступным способом; вы можете кормить читателей экрана правильным текстом, вместо того, чтобы повторять их по всем возможным элементам формы.


Как я не могу принять два ответа, я собираюсь объединить Христос Апчерч и 17 из 26 по ответы в моем собственном посте. Я думаю, эти двое вместе в значительной степени подводят итог тому, что я хотел знать. Спасибо, ребята!


Я думаю, что Flash должен быть ограничен онлайн-играми, видео и анимацией. В противном случае используйте html и Ajax. Это веб-стандарт и поддерживается почти всеми устройствами. AFAIK, iPhone не поддерживает Flash. Это быстро растущий сегмент, который вы уже блокируете. Держите его простым и эффективным.


хотя flash довольно вездесущ в настольных браузерах, мобильная поддержка очень ограничена (flash lite? да, точно). Я очень расстроен, глядя на ресторан на моем телефоне, только чтобы найти весь сайт на основе flash, и я даже не могу получить номер телефона или адрес!


одним из преимуществ Flash является то, что у него есть несколько средств, которые помогут безопасно выполнять операции с междоменным типом, что может быть полезно. Flash также имеет (ограниченную) поддержку для некоторых аппаратных средств, что невозможно с Javascript.

лично я бы попытался использовать как можно больше Ajax, прежде чем переходить к чему-то вроде Flash. С точки зрения пользовательского интерфейса лучше, что элементы управления и базовая разработка немного более развиты. The Звука - это хорошо пример эффективного использования небольшого количества Flash при сохранении остатка в Javascript.


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


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