mootools: я хочу реализовать архитектуру, похожую на Big pipe в Facebook

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

http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

В facebook функция javascript вызывается при получении любого ответа сервера для обновления экрана данных пользователя. (см. скриншот)

http://img815.imageshack.us/img815/5154/facebookna.jpg

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

может ли кто-нибудь предоставить мне такую ​​​​базовую модель?

До сих пор я разработал архитектуру, в которой response_data хранится в глобальной переменной, а затем вызывается функция для обновления данных на экране пользователя (здесь используется синхронный запрос), который очень медленный.

так какой метод лучше «синхронный или асинхронный»?


person Vinay Jeurkar    schedule 07.02.2011    source источник


Ответы (1)


Во-первых, спасибо за чтение, это был очень интересный пост в блоге.

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

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

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

person David Tang    schedule 07.02.2011
comment
Этот проект gitHub действительно великолепен... Я также создал аналогичный и достаточный для моих нужд код. Спасибо за помощь!! - person Vinay Jeurkar; 09.02.2011