Как быстро работает jQuery? - PullRequest
16 голосов
/ 01 января 2011

У меня довольно большое приложение, которое на стороне администратора занимает несколько секунд для загрузки страницы из-за всех просмотров страниц, которые она должна загрузить в объекты, прежде чем что-либо отобразить.Немного сложно объяснить, как работает система, но несколько других моих вопросов объясняют систему очень подробно.Основное различие между тем, что они говорят, и текущей системой заключается в том, что клиентский интерфейс больше не загружает все просмотры страниц в объекты, когда клиент впервые просматривает страницу - он просто добавляет просмотр страницы в базу данных и создает объект в несинхронизированном списке.Проще говоря, когда клиент просматривает страницу, он больше не загружает все просмотры страниц в объекты;но интерфейс администратора по-прежнему работает.

Я недавно работал над некоторыми инструментами администратора в интерфейсе клиента, поэтому, если администратор щелкнет по описанию элемента в каталоге, то в правом столбце отобразятся статистика и доступно.действия для выбранного элемента.Для этого страница, которая загружается (через $('action-container').load(bla bla bla);) в правый столбец, должна пройти через ВСЕ просмотры страниц - это в конечном итоге означает, что ВСЕ просмотры страниц загружаются в объекты, если они еще не были.По какой-то причине это загружается действительно очень быстро.Разница в скорости всего лишь секунда на моем сайте разработчиков, но на живом сайте тысячи просмотров страниц, поэтому разница довольно большая ...

Итак, мой вопрос: почемуэто то, что интерфейс администратора загружается так медленно при использовании $(bla).load(bla); так быстро?Я имею в виду тот метод, который использует jQuery, не могут ли браузеры использовать этот метод и загружать страницы очень быстро?Очевидно, не так, как кто-то сделал бы это сейчас - но мне интересно знать, почему разница настолько велика ... это просто моя система или есть большая разница в скорости между браузером, получающим страницу, и jQuery, получающимстраница?Другие люди испытывают такие же различия?

Ответы [ 3 ]

11 голосов
/ 01 января 2011

Я имею в виду тот метод, который использует jQuery. Разве браузеры не могут использовать этот метод и загружать страницы слишком быстро?

jQuery имеет в своем распоряжении только то, что предоставляет браузер (API DOM). Ничего более. jQuery не приносит ничего лишнего и не выполняет никаких фокусов.

Это просто слой над этим API, поэтому на самом деле он медленнее , чем если бы вы просто использовали API напрямую.

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

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

Если бы вы критиковали jQuery, я полагаю, что за вас бы проголосовали некоторые пользователи.

8 голосов
/ 01 января 2011

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

См. Их технологию "BigPipe", объясненную здесь: http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

2 голосов
/ 01 января 2011

Не видя некоторого кода, трудно предположить, но я подозреваю, что если вы запустите свои тесты в Firefox / Firebug или IE / Fiddler, вы увидите, что многие http-соединения открываются, когда вы просматриваете каждую «страницу страницы» напрямую , Когда вы загружаете каждую «часть страницы» с помощью jQuery, вы загружаете только содержимое «части страницы», а не файлы CSS, JS или изображения.

...