Ajax снижает производительность? - PullRequest
1 голос
/ 19 сентября 2008

Влияет ли чрезмерное использование AJAX на производительность? В контексте веб-приложений большого размера, как вы обрабатываете запросы AJAX для управления асинхронными запросами?

Ответы [ 9 ]

9 голосов
/ 19 сентября 2008

чрезмерное использование чего-либо снижает производительность; использование AJAX там, где это необходимо, улучшит производительность, особенно если альтернативой является полный обход страницы на сервер [«обратная передача» в терминологии asp.net]

4 голосов
/ 19 сентября 2008

У этой истории есть две стороны.

AJAX обычно повышает производительность с точки зрения клиента. Вместо загрузки всей страницы с сервера запрашивается меньшее количество данных, когда это необходимо. Учитывая, что страница HTML часто ссылается на множество зависимых файлов (изображения, CSS, JavaScript и т. Д., Каждый из которых требует обращения от сервера (или кеша)), производительность клиента при разумном использовании AJAX может быть замечательной.

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

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

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

1 голос
/ 19 сентября 2008

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

Очень легко злоупотреблять AJAX, чтобы перегружать сервер тоннами несерьезных запросов, и это также может быть нагрузкой на ЦП клиента. И наоборот, AJAX также может использоваться для доставки небольших кусочков HTML и другого кода, а не целой страницы для каждого запроса, что, по меньшей мере, является менее обременительным для сервера.

1 голос
/ 19 сентября 2008

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

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

Затем, если вы делаете что-то, что требует больше информации, оно отправляется и получает это из сети.

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

Я предпочитаю смешивать методы Ajax для передачи данных и библиотеку на стороне клиента, такую ​​как jQuery, для красивого интерфейса.

1 голос
/ 19 сентября 2008

Сам AJAX (будучи асинхронными запросами) .. Нет, вообще нет.

Однако, если у вас множество javascript и разметки, и у вас есть большие объемы данных, переданных через ваши xmlhttprequests, тогда да, вы можете увидеть снижение производительности. Это действительно зависит от того, как вы хотите, чтобы ваш веб-сайт функционировал, и любой деградации, как правило, можно избежать, если вылеплены правильно.

0 голосов
/ 22 сентября 2008

Я бы согласился с несколькими другими постами здесь. Если вы используете его разумным образом (то есть не используете ajax каждые 30 секунд), тогда все будет хорошо. Я использую ajax на своем веб-сайте (и есть также бесплатная версия js), и с точки зрения клиентов, версия ajax загружается в любом месте с почти равных скоростей в четыре раза быстрее. Все зависит от дизайна (графики и другого содержимого) сайта и того, что вы обновляете.

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

0 голосов
/ 19 сентября 2008

AJAX, как и любая технология, может быть хорошей или плохой, в зависимости от ситуации и того, как она реализована. Если у вас есть особая потребность в асинхронном процессе, тогда это хороший инструмент для использования. Однако, если вы используете его безответственно, вы можете попасть в беду. Если вы используете его, попробуйте найти хорошую платформу, которая выполняет большую часть тяжелой работы, и помните о некоторых недостатках AJAX ... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax.shtml

0 голосов
/ 19 сентября 2008

Если сайт занят, то он, в конце концов, убьет сервер, если вы не в ферме. Что касается самого сайта, то он не должен .

0 голосов
/ 19 сентября 2008

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

Если важна масштабируемость, я уверен, что вы также смотрите на горизонтальное масштабирование системы путем добавления большего количества веб-серверов в ферму. То же самое касается даже не-Ajax веб-приложений.

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