Подобно тому, что сказал Джеймс Блэк, не прыгать прямо вперед и отрываться заменить все, Flash, прежде чем вы выясните, где узкое место (если оно существует).
Я думаю, вы могли бы также быть пропущены некоторые части изображения, судя по некоторым из комментариев ...
Я хочу, чтобы выложить все слои в ваших сообщениях, просто чтобы сделать вещи ясно - точка , его маловероятно, ВСЕ это проблема, и вы лучше смотрите на проблемный слой.
- Код клиента - в настоящее время javascript, который асинхронно вызывает следующий уровень. Если вы оптимизируете Flash, эта часть может быть более отзывчивой, а ее «богаче».
- TCP/IP (обычно не ниже этого) - это ВСЕГДА с сохранением состояния, поскольку TCP - stateful. По крайней мере, на уровне соединения ... Это означает, что обычно TCP-соединение остается открытым в течение длительного времени, и вы не открываете новый по каждому запросу. Вы не будете изменять это в приложении для браузера ...
- HTTP-stateless в принципе, но, как правило, обход через некоторые формы файлов cookie и серверную сессию. Кроме того, это не эффективный протокол MOST, особенно для двоичных данных, поскольку он основан на тексте и накладные расходы. Хотя технически возможно пропустить этот протокол, его крайне не рекомендуется делать в браузере, потому что (а) его неожиданно с точки зрения пользователя и (б) его не очень дружелюбный к брандмауэру.
- XML - если вы обнаружите, что ваше узкое место находится в количестве переданных данных, вы можете просто отключить формат полезной нагрузки, поскольку XML довольно подробный. Например, JSON была бы отличной альтернативой здесь. Или, может быть, просто обрезать XML-схему ...
- Приложение на стороне сервера - часто узкое место будет здесь, независимо от того, что происходит по течению.
Итак, подведем итог - переход вашего клиента на Flash может иметь две возможные выгоды: сам клиент может работать быстрее (в зависимости от вашего клиента), и он позволяет вызывать сокеты непосредственно в обход 3 выше (http) , Опять же, обратите внимание, что второе преимущество в лучшем случае сомнительно: преимущество сомнительно, и есть явные недостатки.
Если узким местом является код отображения клиента, вам лучше переключиться на JSON (или другой формат данных) или оптимизировать код сервера. Как только вы профилируете и выясняете, где проблема, вы лучше знаете, где сосредоточить свои усилия. Мне очень маловероятно, что Flash справится с этим. (опять же, поскольку это игра, вам может понадобиться улучшенный дисплей).
У меня есть сомнение вопрос. Действительно ли связь AJAX медленнее, обеспечиваемая вспышкой? – Isaac
AJAX по-прежнему отправляет дополнительные лишние данные, потому что это протокол без учета состояния. – Thinker
Как вы определили, что вызовы ajax медленнее, чем соединения tcp/ip? Были ли переданы одни и те же основные данные? –